我的意思是我需要通过一些数字或字符串来识别一组应用的补丁,以快速检查我是否拥有与没有任何同步的其他人相同的代码版本.
是否有一些内置的darcs解决方案?
我最近负责管理公司的构建和发布.我们将产品既作为Web服务,也作为客户可以在其内部服务器上安装的许可产品.
我的工作涉及确保QA具有他们需要进行测试的构建,这可能来自主要开发分支或特定功能分支,具体取决于他们当前的重点,并且可能是两种不同产品之一.它还意味着在内部发布我们的产品用于dogfooding,这意味着我们部署到内部服务器.最后,我通过为内部安装的人创建新版本的安装程序,并为托管客户推送网站更新,为我们的客户削减官方版本.
到目前为止,我已经选择了实用程序员的船!并释放它!,两者似乎都很有用.我应该读些什么其他的书?是否有社区或知名博主,我应该特别关注构建,部署和运送Web服务到我们自己的服务器和客户内部服务器的挑战?
观察这种情况让我非常困惑:
Integer i = null;
String str = null;
if (i == null) { //Nothing happens
...
}
if (str == null) { //Nothing happens
}
if (i == 0) { //NullPointerException
...
}
if (str == "0") { //Nothing happens
...
}
Run Code Online (Sandbox Code Playgroud)
因此,我认为首先执行装箱操作(即java尝试从中提取int值null),并且比较操作具有较低的优先级,这就是抛出异常的原因.
问题是:为什么在Java中以这种方式实现它?为什么拳击优先于比较参考?或者为什么他们没有null在拳击前实施验证?
目前,当NullPointerException使用包装的基元抛出它时看起来不一致,并且不会抛出真正的对象类型.
最初我想问一个查询Datatable特殊行的最快方法.
我已经为他们的表现测试了5种不同的方法,结果令人惊讶(对我而言).
背景:我在MS Sql-Server 2005数据库中创建了一个View.此视图当前总计数为6318行.因为我必须经常检查这个视图中是否存在给定的id,我想知道什么是最有效的方法.我在强类型数据集中创建了一个DataAdapter,它返回所有行并填充数据表.我的第一种方法是创建一个共享的通用List(Int32),并在应用程序启动时用视图中的ID填充它.然后使用List.Contains检查当前ID是否在此List中.因为所有行都是不同的,所以我想知道使用SortedList及其ContainsKey -metod 是否更快.然后我还检查了使用Select-Method直接访问Datable的性能,它自动生成(当列被定义为主键时)FindBy-method和最后但并非最不重要的DatarowCollection.Contains -Method.所以我有5个方法来检查我的ID是否在该视图中(或映射的List/SortedList).
我使用System.Diagnostics.StopWatch测量了它们的性能并获得了一些有趣的结果.我认为SortedList.ContainsKey必须比List.Contains更快,因为它们是不同的和排序的,但反之亦然.但对我来说最令人惊讶的是DataRowCollection.Contains-Method(我第一次忘记了)是迄今为止最快的.它甚至比dataTable.FindBy方法快50倍.
结果 [1000000次迭代*]
Timespan 5 = DataRowCollection.Contains =Ø0.00638[ 1202.79735 ] ms
1.)
Timespan 1: 0,6913 ms
Timespan 2: 0,1053 ms
Timespan 3: 0,3279 …Run Code Online (Sandbox Code Playgroud)我被要求开发一个社交网站以配合游戏.该游戏采用Flash(仅作为.swf文件提供),并将托管在社交网站上.
在测试和开发过程中出现的一个问题是会话超时.我知道会话长度可以(理论上)使用,php.ini但在这种情况下它似乎没有工作,很可能是由于我们的托管服务提供商的限制.
会话暂停,因为游戏在弹出窗口中打开,如果访问者长时间停留在游戏窗口,关闭窗口然后尝试使用社交网站,下一页加载会提示他们登录.
因此,如果我将一个小的JavaScript代码段放到我的页面的头部,只是触发对网站上托管的文件的请求,这会持续会话吗?如果是这样,这种做法有什么缺点吗?
任何人都可以详细说明##*/如何在UNIX Shell脚本中工作.我已经看到它在Korn Shell中使用.它专门用于删除文件的扩展名.
例如func_write_app_log"o删除状态文件$ {CIE_STATUS_FILE ##*/}"
这里假设文件是CIE_STATUS_FILE.DAT,然后##*/将显示CIE_STATUS_FILE
我想开发孩子们将能够在屏幕上触摸画符的iPhone应用程序,我想知道如何用拼音的良好品格绘制的字符相匹配.我将如何比较两种形状(绘图和现有)任何想法?一些代码?
我有一个 std::vector 值,我知道其最大大小,但实际大小在使用过程中会有所不同:
void setupBuffer(const size_t maxSize) {
myVector.reserve(maxSize);
}
void addToBuffer(const Value& v) {
myVector.push_back(v);
if (myVector.size() == maxSize) {
// process data...
myVector.clear();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在 setupBuffer 中,我需要获取指向 myVector 数据开头的指针。我正在使用第三方库,我必须预先缓存该指针,以便在“处理数据...”部分期间进行的调用中使用。
void setupBuffer(const size_t maxSize) {
myVector.reserve(maxSize);
cachePtr(&(myVector[0])); // doesn't work, obviously
}
Run Code Online (Sandbox Code Playgroud)
我不想预先 resize() 向量,因为我想使用 vector.size() 来表示添加到向量中的元素数量。
那么,有什么方法可以在分配(reserve())之后但在它有任何元素之前获取指向向量缓冲区的指针吗?我想象缓冲区存在(并且只要我限制 push_back'd 值的数量就不会移动)......也许这不能保证?
我的域类具有如下所示的集合:
private List<Foo> _foos = new List<Foo>();
public virtual ReadOnlyCollection<Foo> Foos { get { return _foos.AsReadOnly(); } }
Run Code Online (Sandbox Code Playgroud)
这给了我readonly集合,可以从类中修改(即使用字段_foos).
此集合映射如下(Fluent NHibernate):
HasMany(x => x.Foos).KeyColumn("ParentClassId").Cascade.All().Inverse().Access.CamelCaseField(Prefix.Underscore);
Run Code Online (Sandbox Code Playgroud)
现在当我尝试使用这个系列时,我得到:
无法转换'NHibernate.Collection.Generic.PersistentGenericBag 1[Foo]' to type 'System.Collections.Generic.List1 [Foo]' 类型的对象.
根据Unable将NHibernate.Collection.Generic.PersistentGenericBag类型的对象强制转换为List,这是因为集合需要作为接口公开给NHibernate,以便NHibernate可以注入一个自己的集合类.
本文建议使用IList,但遗憾的是这个接口不包含AsReadOnly()方法,弄乱了我的计划,只向外部世界公开一个只读集合.
任何人都可以建议我可以使用哪种界面,一种满足相同要求的不同方法,或者不涉及这种挫折的另类职业?
谢谢
大卫
collections nhibernate fluent-nhibernate readonly-collection
collections ×2
vector ×2
.net ×1
ajax ×1
boxing ×1
c++ ×1
darcs ×1
datatable ×1
drawing ×1
gestures ×1
iphone ×1
java ×1
javascript ×1
jquery ×1
mootools ×1
nhibernate ×1
performance ×1
php ×1
session ×1
shell ×1
sql-server ×1
stl ×1
unix ×1