Realm是一个开源的面向对象移动数据库。上个月,Realm的Android版本发布了,比iOS版本晚了三个月。
Realm是一个开源的面向对象移动数据库。上个月,Realm的Android版本发布了,比iOS版本晚了三个月。
我们之前已经报道过,Realm没有使用SQLite作为它的引擎,而是用C++写了自己的引擎,他们的目标是提供一个聚焦移动领域的SQLite的替代者。现在它的Android版本已经发布了。
Realm是一个开源的面向对象移动数据库。上个月,Realm的Android版本发布了,比iOS版本晚了三个月。
Realm是一个开源的面向对象移动数据库。上个月,Realm的Android版本发布了,比iOS版本晚了三个月。
我们之前已经报道过,Realm没有使用SQLite作为它的引擎,而是用C++写了自己的引擎,他们的目标是提供一个聚焦移动领域的SQLite的替代者。现在它的Android版本已经发布了。
本文是最近落幕的Atlassian峰会上关于Git的讨论的摘要。
Git是那种很容易入门,却很难精通的工具。在刚刚落下帷幕的Atlassian峰会(译者注:Atlassian是一家企业软件公司,著名产品有项目跟踪软件JIRA和团队协同软件Confluence)上汇总的视频和幻灯片,无论对于新手还是专家来说,都是很好的学习Git的资源。
如果你还在挣扎着证明Git适用于你的组织或企业,那么Tim Petersen关于Git商用案例的话题就是你想要的。在讨论中他谈到了完全分布式的代码仓库相对于集中式的代码仓库(比如SVN)的不同之处。他也谈到了拉分支、代码审查、合入请求(pull request)等问题,以及这些技术如何紧密结合,构建一个持续但管控良好的发布流程。最后他辩称,不使用Git才是一种商业风险。
近年来,GitHub的个人页面已经逐渐成为程序员的求职名片,它充分展示了程序员在笔试面试中很难展示的真正编程能力。甚至有企业在招聘广告中说,GitHub项目的星数只要达到一定数量,就免试录取。这也在一定程度上说明了问题——GitHub上的项目必须要有人用,才说明你做的软件是有价值的。那么去创建一个“有人用”的项目?来自纽约的Web开发者Barry Clark根据自己的经验给出了建议。
Barry Clark开发了Jekyll Now,很多人使用它在GitHub Pages上写博客。这个项目在GitHub上已经收到了1200多次fork。Barry Clark在自己的一篇博客总结了这个项目受欢迎的原因。
Clark认为首先要做用户需要的软件。Jekyll是GitHub Pages的后台博客引擎,但是它部署起来很复杂,使很多人望而却步。Clark抓住了用户的这个痛点,写了Jekyll Now。它大大地降低了使用Jekyll的门槛,用户不再需要使用晦涩的命令行工具来操作,也不再需要安装Ruby,Windows用户会感觉使用起来方便很多。
解决痛点“不需要打造一个完整的产品”,只要打造一个原型,足以让用户决定是否使用就可以了。然后尽快在同事、朋友中找一些长期受困于这个痛点的人试用,接受他们的反馈。当然,你是否能成功还是取决于用户是否会使用你的软件。
持续集成(Continuous Integration)一直被认为是敏捷开发的重要实践之一,但也有专业人士开始挑战这种观点。Yegor Bugayenko是teamed.io的联合创始人和CTO,他在最近的一篇博客中毫不客气地指出:“持续集成已死”。
持续集成的目的简单而明确。当有人向代码库的主分支提交代码的时候,后台的持续集成服务器会尝试去构建整个产品,包括编译、单元测试、集成测试、质量分析等等。结果只有两种:成功或失败。如果结果失败了,那就说明有人提交了对产品有害的代码。
单从技术上讲确实如此,但Bugayenko认为,从整个组织的角度来讲,这却是不合时宜的。他认为最大的问题在于:
如果构建失败,整个开发团队必须停下手里的工作,立刻修复他们的错误。
近日,业界领先的企业级Linux解决方案提供商Red Hat发布了其旗舰产品Red Hat Enterprise Linux的6.6版本。Red Hat在发布公告中说道:
无论你是使用裸机架构(bare metal)、构建虚拟基础设施(virtual infrastructure)或是利用开放的混合云(open hybrid cloud),Red Hat Enterprise Linux 6拥有增强的虚拟化技术、性能和系统管理工具,是部署和管理复杂的大型IT项目的不二选择。
Red Hat Enterprise Linux 6.6的亮点集中在以下三个方面:
Visual Studio对新编程语言的支持是非常强大的,但很少有人有能力并下决心去利用这个平台。David Golub却是其中之一,他为Visual Studio带来了对CMake的支持。
Visual Studio对新编程语言的支持是非常强大的,但很少有人有能力并下决心去利用这个平台。David Golub却是其中之一,他为Visual Studio带来了对CMake的支持。
最近,被类UNIX系统广泛使用的Bash软件曝出了一系列已经存在数十年的漏洞(Shellshock),在业界引起了非常大的影响。不少Linux发行版本连夜发布了修复版本的Bash,在服务器领域占有不少份额的FreeBSD和NetBSD已经默认关闭了引起漏洞的功能。InfoQ也及时带来了关于Shellshock的详细报道。
在这个漏洞的风波逐渐平息之余,不少业内人士也在思考,它为何波及如此之广,影响如此之大。InfoWorld的专栏作者Andrew C. Oliver在一篇文章中表达了自己看法,他认为CGI技术的普及是个错误,正是因为CGI技术的不合理之处,Shellshock才有机可乘。
CGI技术是Web技术刚兴起的时候发明的,它是最早的可以创建动态网页内容的技术之一。它会把一个HTTP请求转化为一次shell调用。而Shellshock的原理是利用了Bash在导入环境变量函数时候的漏洞,启动Bash的时候,它不但会导入这个函数,而且会误把函数定义后面的命令也执行一遍。在有些CGI脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用Shellshock漏洞的机会。对此,Oliver抱怨道:
为什么有人会认为,通过HTTP请求给一个陌生人访问shell(哪怕是受限的)的机会是一个好主意呢?我不理解。
Oliver把CGI技术比作“上了膛的武器”,程序员必须非常谨慎地使用它,写出优秀的脚本。但在现代的商业实践中,雇佣优秀程序员已经不是一个必选项,大量的廉价程序员很多时候也能合力完成工作。能写出考虑周全的CGI脚本的人越来越少,这也使得CGI技术更不合时宜了。
最近曝出的Bash漏洞最初是利用了一个远程执行的缺陷,这个缺陷很快被修复,并且在正式宣布之前就被有责任感的人揭露出来了。然后,最早的补丁发布后,又有其他缺陷被发现,成为0day(译者注:尚无解决方法的漏洞)安全威胁。Shellshock到底有什么问题?它真的被修复了吗?InfoQ给您带来背后的故事。
Bash软件中声名狼藉的bug,CVE-ID为CVE-2014-6271(译者注:CVE即Common Vulnerabilities and Exposures,这个系统为公开的信息安全漏洞提供参考信息),现在有了新的名字“ShellShock”(译者注:在英语中ShellShock是指弹震症,一种精神疾病,参考这里)。精心伪造的数据通过网络传到一台服务器上,直接或间接触发一个bash脚本,就可以远程执行恶意代码。最初的bug已经修复了,但引发了人们对Bash的解析程序可能产生0day漏洞的关切,随后又挖掘出了第二个漏洞CVE-2014-7169,这个漏洞也在前天得到了修复。但这种漏洞的根源到底是什么?同一类型的漏洞已经全部被消灭了吗?FreeBSD 和NetBSD已经默认关闭了自动导入函数的功能,以应对未来可能出现的漏洞。
这个问题的发生是因为Bash的一个功能(不是bug吗?),它允许在Bash的shell中使用环境变量来定义函数。函数的作用是把经常调用的代码封装起来,然后在其他地方复用,所有的shell脚本语言都有这个功能。Bash中函数的定义是这样的(大多数其他shell也是):
持续部署(continuous deployment)使企业能通过自动化的构建、测试和部署循环来快速交付高质量的软件。它使投资更容易得到回报,产品团队更早地得到用户反馈,也简化了部署流程。但从商业的角度看,持续部署也那么好吗?
持续部署(continuous deployment)使企业能通过自动化的构建、测试和部署循环来快速交付高质量的软件。它使投资更容易得到回报,产品团队更早地得到用户反馈,也简化了部署流程。但从商业的角度看,持续部署也那么好吗?