技术管理与政策随笔【第一篇】:技术管理
公司一些早期的项目,把所有工程都放到一个解决方案下了,导致整个解决方案编译很慢,而且也不便于类库的复用和维护。因此我们决定把工程按照功能划分到不同的解决方案里头,然后定期发布dll到TFS配置库上固定的TeamProject下面,以后应用程序引用时就不添加工程,而是采用添加dll的方式。但是现在遇到一个问题,发布dll一般会发布Debug和Release两个版本,那么应用程序应该引用哪个版本呢?
理想情况下,开发测试的时候应该使用Debug版本,这样抛异常的时候调试很方便。正式部署到生产环境的时候可以使用Release版本,这样性能好一些。但是添加dll的时候VS只允许选择一个版本。
我们知道,VS支持把工程不同的编译选项保存到不同的配置中,编译时根据当前使用的配置来决定采用什么样的编译选项。默认会新建Debug和Release这两个配置。开发时我们一般选Debug配置,发布时一般选择Release。
如果添加dll时也能根据当前配置引用不同路径的dll,那就好了。在stackoverflow上搜到了相关的信息,说可以修改csproj工程文件,使用VS宏变量来指定dll路径。用记事本打开研究了一番倒也挺简单的.找到引用类库的地方
技术管理与政策随笔【第二篇】:管理
仓库的组织管理形式这部分,应该说是版本管理工具设计上最核心的内容。对于仓库的内部管理机制,我了解得很少,只能从外部的表象上做一些简单的比较。
SVN属于中心式的仓库管理,完整的仓库数据,统一维护在服务器端的(当然,服务器也可以就是你的本机了)仓库中,对于客户端来说,本地取得的数据不是完整的仓库,只是仓库中特定版本的部分或全部数据,同时,客户端还负责维护本地数据的变更情况,在客户端并不拥有仓库完整的历史数据。本地的工作树和仓库是相对独立的。
对于Git来说,应该属于分布式的仓库管理,倒不是说仓库的内容分散在不同的server上,只是对仓库而言,没有中心仓库之说,所有的仓库都是平等的。对于一个仓库的不同工作拷贝,每个都拥有完整的历史数据,工作树和仓库基本是合二为一的。
在SVN中,从仓库checkout的一个工作树,每个子目录下都维护着自己的.svn目录,记录着该目录中文件的修改情况以及和服务器端仓库的对应关系。所以SVN可以局部checkout部分路径下的内容,而不用checkout整个分支。
Git仓库中,项目根目录下的.git目录统一管理了所有的仓库数据和当前工作树的相关信息。
在SVN中,默认采用FSFS的数据库格式,任何提交都是一个版本的递增,所谓分支,tag等概念都只是仓库中不同路径上的一个对象或索引而已,和普通的路径并没有本质的区别。在工作树中,可以同时checkout多个分支的内容。
在Git中,其内部的对象层级依赖关系或许和SVN类似,但是其工作树的视图表现形式和SVN完全不同。工作树永远是一个完整的分支,不同的分支由不同的head索引去构建,你不可能在工作树中同时获得多个分支的内容
技术管理与政策随笔【第三篇】:技术管理
周六将两个站点新建了两个中央站点,各一个前端池包括两台前端包括中介、AV功能,同时各包括一台后端DB服务器。
其他一个站点的两台前端和后端建立后在拓朴中查看状态及同步都正常,同时也可以进行LYNC用户从一个前端池迁到新建立的前端池上。
然而另一个中央站在建立好两台前端和后端后,在查看拓朴状态后,发现一台前端服务器服务状态正常,但同步状态显示红色“X",如下图右下角:
查看WINDOWS event log未发现有相对应的错误日志,同时前端池中的另一台正常,没有任何问题,怀疑是问题还是出在这台前端服务器上,通过使用lync logging tool对“XDS_Replica_Replicator"进行日志收集,发现一个错误”Query replica status sproc execution failed: Native Error: 2000, Exception: Could not connect to SQL server : “,其实对于该错误,也没有查询到有用的帮助,试图将后端和前端防火墙关闭也不解决。
在经过多次尝试后,想到防毒软件是否是一个原因?在将本地Trend Officescan 暂时退出后,再重启LYNC REPLICATION服务,再次查看拓朴状态,发现一切正常:
这可能是造成该类问题的一个原因,供各位参考。
技术管理与政策随笔【第四篇】:技术
首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态。
如果加入了for update, 则Oracle一旦发现(符合查询条件的)这批数据正在被修改,则不会发出该select语句查询,直到数据被修改结束(被commit),马上自动执行这个select语句。
同样,如果该查询语句发出后,有人需要修改这批数据(中的一条或几条),它也必须等到查询结束后(commit)后,才能修改。
for update nowait和 for update 都会对所查询到得结果集进行加锁,所不同的是,如果另外一个线程正在修改结果集中的数据,for update nowait 不会进行资源等待,只要发现结果集中有些数据被加锁,立刻返回 “ORA-00054错误,内容是资源正忙, 但指定以 NOWAIT 方式获取资源”。
for update 和 for update nowait 加上的是一个行级锁,也就是只有符合where条件的数据被加锁。如果仅仅用update语句来更改数据时,可能会因为加不上锁而没有响应地、莫名其妙地等待,但如果在此之前,for update NOWAIT语句将要更改的数据试探性地加锁,就可以通过立即返回的错误提示而明白其中的道理,或许这就是For Update和NOWAIT的意义之所在。
经过测试,以for update 或 for update nowait方式进行查询加锁,在select的结果集中,只要有任何一个记录在加锁,则整个结果集都在等待系统资源(如果是nowait,则抛出相应的异常
技术管理与政策随笔【第五篇】:信息技术管理
小学信息技术课接触到了Powerpoint,也就是我们俗话说的制作幻灯片。为此,我在开学初的一段时间,一直都在课上让学生接触到幻灯片,欣赏幻灯片,同时,也在教学生学习Powerpoint的使用方法。可是,几次下来,我却发现了其中存在着许多不足。
例如:教学《在Powerpoint中插入图片》这部分内容时,教学过程就是让学生跟着课本上的例题做:一、插入剪贴画、二、插入自选图形,例题完成后再进一步的熟练操作。一节课下来,觉得教学效果不好,虽然学生一直在动手实践,但是他们只是照着课本上的操作步骤一步步完成练习而已。学生的积极性无法充分调动起来,创新精神也就根本无从体现,顶多也就是一次计算机操作技能训练而已。
还有,我们的信息技术教材在教学制作Powerpoint时,使用的模板都是让学生介绍“颐和园”。而且,如何参观颐和园,都到过颐和园的哪些景点,这些文字和图片说明在教材中全部体现出来了,而我们要做的只是照着书本再复制一遍。事实上,许多学生根本没有去过颐和园,更谈不上利用Powerpoint向别人介绍颐和园了。这有些脱离了学生的客观实际情况,而在课堂教学中总是利用书本进行课堂教学,学生重复机械记忆,既无法调动学生的积极主动性,而且,在信息技术课上最能体现小组合作、小组交流的环节也被严重忽视了,这也严重偏离了我们教学的初衷,违背了我们教学的意愿。
为此,我对教学进行了反思。试想:为什么在课堂教学中不把学习的主动权交给学生,让学生自己去发现、探索呢?这样不是更能激起学生学习的兴趣和主动性了吗?于是我在课前重新修改了教学设计,设计了“主题幻灯片”这一主题。在教法设计上不再是“教师带着知识走向学生”,而是“教师带着学生走向知识”。
在课堂教学中:首先,我为学生创设了一个主动探究、积极进取、自主学习的良好氛围,这是发挥学生的主体性的基础。有了良好的氛围,原本单调的学习过程变成了一个充满乐趣、充满想象、不断创新的过程;其次,设计的任务具有很大的想象空间,学生们敢于独立思考,敢于大胆想象,并通过实践探索实现了自己的想法,这为学生的创造性提供了展示的舞台。