2013-03-08 04:31:58
本文介绍了如何对持久层和对象关系映射(ORM)进行测试。作者提供了一套Java版本的测试用例,包括保存所有属性、按名称模糊搜索等。测试用例使用了FEST assert库,并提供了生成随机数据的辅助方法。文章还讨论了在测试中处理实体间关系以及如何通过模拟或避免使用慢速技术(如Hibernate)来提高测试效率。
2013-03-08 04:31:58
本文介绍了如何对持久层和对象关系映射(ORM)进行测试。作者提供了一套Java版本的测试用例,包括保存所有属性、按名称模糊搜索等。测试用例使用了FEST assert库,并提供了生成随机数据的辅助方法。文章还讨论了在测试中处理实体间关系以及如何通过模拟或避免使用慢速技术(如Hibernate)来提高测试效率。
2013-03-07 21:00:00
这段HTML代码展示了一个简单的HTML元素,名为`<html-input>`。该元素可能用于创建一个输入框,用于用户输入数据。由于代码中没有包含任何属性或内容,无法确定输入框的具体用途或样式。整体上,这是一个基本的HTML结构,用于在网页上创建输入功能。
2013-03-07 21:00:00
在非GitHub托管代码的工作中,使用`gpr`命令可以轻松查看当前功能分支中尚未合并到基础分支的提交记录。通过在`~/.gitconfig`中添加特定别名,并在`~/.bashrc`或`~/.zshrc`中设置相应的别名,可以方便地使用`gpr`命令。此外,使用`hub`工具可以将代码关联到GitHub上的问题,进一步方便协作。
2013-03-07 14:59:00
Clojure语言实现康威生命游戏,通过一个仅137字符的函数完成。文章介绍了两种版本的代码,其中“糖化”版本使代码更易读,并支持矩形网格和局部更新。文章还提供了测试函数和几个生命游戏模式示例,供读者学习和参考。
2013-03-07 10:13:37
Stripe团队在调查一个服务内存泄漏问题时,通过多种调试工具和技术,最终发现泄漏源于EventMachine库中的C代码。具体来说,是`BIO_new`函数调用后未正确释放`BIO`对象,导致内存泄漏。通过分析核心文件和源代码,他们确定了泄漏的原因,并迅速修复了问题。
2013-03-06 22:00:00
在创建类库时,应明确成员的可见性,并区分对外暴露和隐藏的内容。例如,在名为“Base”的类库中,`ICommandHandler`和`CommandHandler`是公开的,而`IUndoRedoStack<T>`和`UndoRedoStack<T>`是内部使用的。测试时,需要确保内部成员对测试代码可见。为此,可以在测试项目中添加`InternalsVisibleTo`属性,使其对内部成员可见。对于使用Moq进行接口模拟的情况,需要将`DynamicProxyGenAssembly2`添加到`InternalsVisibleTo`中,以便Moq能够生成代理类。如果类库是强名的,还需要提供公钥。
2013-03-06 21:00:00
本文探讨了函数式编程中的两个重要概念:部分应用和柯里化。作者通过实例解释了部分应用是将多参数函数转换为少参数函数的过程,而柯里化则是将多参数函数分解为一系列嵌套的单参数函数。文章还介绍了如何通过柯里化实现部分应用,并讨论了两种应用方式(右柯里化和左柯里化)的区别。最后,作者鼓励读者进一步探索这些概念在函数式编程中的应用。
2013-03-06 18:51:00
Node.js的v0.9.12版本在HTTP、文件系统和TLS基准测试中表现优于v0.8版本。该版本作为0.10.0的候选版,提供了多项改进,包括对流的增强、错误处理优化、DNS查询支持等。用户可将其用于程序开发,并期待后续的正式发布。版本更新详情和下载链接可在Node.js官网找到。
2013-03-06 18:38:00
在Leicester的NSConference上,Evan Doll展示了为UIAlertView和UIActionSheet添加键盘支持的功能,旨在通过接受Esc和Enter键来加速在模拟器中的调试过程。这一功能主要针对蓝牙键盘支持,但使用私有API且可能随iOS版本变化,因此不建议在生产环境中使用。作者详细介绍了实现这一功能的代码,包括修改常量、拦截键盘事件和添加键盘处理程序。此外,还提供了相关的swizzling辅助函数,以实现方法替换。
2013-03-06 12:41:02
本次测试了将SSD作为交换分区时,Redis在处理大量数据时的性能。测试发现,当Redis数据集超过内存容量并使用SSD作为交换分区时,性能极差,读写操作速度大幅下降,系统响应缓慢。Redis设计初衷是运行在内存环境中,对随机访问内存速度要求较高,而SSD的随机读写性能无法满足其需求。因此,Redis在这种配置下几乎无法使用,需要SSD-aware的系统设计。
2013-03-05 22:00:00
Juri在DZone的采访中分享了他近期的工作,主要是在创建一个用于电子政务的全新基础架构,并转向使用JavaScript进行单页应用开发。他特别提到了Bitovi的JavaScriptMVC框架,认为它适合JavaScript初学者。此外,Juri对HTML5和JavaScript的发展表示兴奋,尤其是TodoMVC项目,并期待JavaScript在2013年得到更广泛的应用。他还提到了对微软对JavaScript投资的欢迎,并强调了开发工具的重要性。最后,Juri分享了他对武术Yoseikan Budo的热爱,以及它如何帮助他在日常生活中保持平衡。
2013-03-05 19:32:12
从2012年夏天开始,作者每晚给3.5岁的儿子读章节书,经过尝试和探索,他们阅读了包括《哈利·波特》、《查理和巧克力工厂》等在内的多种书籍。作者记录了他们的阅读经历,并分享了每本书的优缺点。通过这些书籍,儿子不仅增加了阅读兴趣,也从中学习了许多知识。作者强调,选择适合孩子年龄的书籍非常重要,并建议家长可以参考他们的阅读列表。
2013-03-04 22:31:00
本文探讨了如何使用Clojure语言解决Project Euler的第16题。题目要求计算2的1000次方的各位数字之和。文章首先回顾了如何计算数字的各位之和,然后介绍了如何生成2的幂次方序列,并解决了整数溢出的问题。作者通过使用`BigInteger`和自动类型提升两种方法来避免溢出,并最终得出了答案。文章还提醒读者注意自动类型提升可能带来的计算速度损失。
2013-03-04 21:00:00
Ruby 2.0引入了TracePoint新特性,允许开发者监听Ruby事件。作者通过编写TracePoint Rack Middleware,分析了Rails 4/Ruby 2应用处理请求时的行为。结果显示,一个简单的Hello World页面涉及250个类、750个方法和2704次方法调用。作者认为TracePoint是一个强大的工具,有望开发出更多实用工具,如生产环境死代码分析器等。最后,作者引用了Chad Fowler的话,强调抽象的代价随代码库的增大而指数级增加。
2013-03-04 21:00:00
约翰·卡马克在文章中深入探讨了虚拟现实(VR)中的延迟问题。他指出,VR体验的质量很大程度上取决于用户头部动作与头戴式显示器(HMD)更新之间的延迟。文章分析了系统延迟的来源,包括传感器、显示和主机处理,并提出了减少延迟的策略,如防止GPU缓冲、延迟帧调度、视图绕过和时间扭曲。卡马克强调,通过这些技术,可以显著降低延迟,从而提升VR体验的流畅性和沉浸感。
2013-03-04 19:19:19
本文探讨了图像处理中常见的难题——如何在不失真的情况下调整图像大小。文章介绍了“seam-carving”算法,该算法通过分析图像的梯度,智能地去除或添加像素,以保持图像的视觉连贯性。这种方法不仅适用于缩小图像,还能用于放大图像,甚至可以用于移除图像中的特定对象。文章详细解释了算法的数学原理和实现步骤,并通过实例展示了其效果。此外,还提到了seam-carving技术在视频处理中的应用。