Capistrano 和 Mina 两个自动化部署工具, 总结一些个人的观点和经验. Capistrano Capistrano(下文简称 Cap) 特别适合于 Rails 应用的自动化部署, 特别是 Cap3, 整合了很多与
开放式家庭自动化总线(openHAB)项目旨在提供一个通用的集成平台,关于家庭自动化所有的东西。这是一个纯Java的解决方案,完全基于OSGi。Equinox OSGi 作为运行期,Jetty作为Web服务器建立运行的核心基础。
'j': 'J', 'k': 'K', 'l': 'L'})] pprint()格式化一个对象,并把它写至一个数据流,这个数据流作为参数传入(或者是默认的sys.stdout) 注意
Selenium是一个用于Web应用程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样。因此使用Selenium则可以实现模拟真实用户测试web应用程序。
NodeBox 是OS X上创建二维图形和可视化的应用程序。你需要了解Python程序,NodeBox与Processing类似,但是没有Processing的互动功能。 项目主页: http://www
php.fmt 是一个纯 PHP 实现的 PHP 代码格式化库,使用方法: /bin/sh ./php.fmt filename|directory [...] if // comment ($condition)
CasperJS是一个开源的导航脚本处理和测试工具,基于PhantomJS(前端自动化测试工具)编写。CasperJS简化了完整的导航场景的过程定义,提供了用于完成常见任务的实用的高级函数、方法和语法糖。
GNU Midnight Commander的是一个可视化的文件管理器。功能丰富的全屏幕文本模式应用程序,让您可以复制,移动和删除文件和整个目录树,搜索文件,并在子shell中运行命令。内部查看器和编辑器。
Google开源了Espresso,这是一种Android自动化测试框架,使测试人员可以在云中x86机器的多线程环境里运行测试,并解决了关于UI测试的并发问题。 示例测试代码: public void
伯恩的遗产的简书 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:
文首先给出个例子来探究下什么是 实例变量初始化器 ,什么是 实例初始化器 ,以及什么是 静态初始化器 。然后看看实例初始化器是怎么工作的。 1. 执行的顺序 先看看下面这段代码,你觉着哪部分会先被执行呢?
每次切换的时候,Fragment都会重新实例化,重新加载数据,这样非常消耗性能和用户的数据流量。 解决: 如何让多个Fragment彼此切换时不重新实例化? 翻看了Android官方Doc,和
Init帮助Android应用调度复杂的任务流(如应用初始化流程),如下一节图示的那种任务流,处理类型、优先级、多进程(像是每个进程都会执行application的onCreate),任务依赖,提高应用启动效率。
求; 压测工作简单来说就是利用压测应用,来测试一下服务器的响应性能参数;然后把这些工作全部自动化,集成到jenkins中来运行。 整个工作的子任务分解可以由下图来表示: 压测使用的是一个常
DynamicButton是一个强大的扁平化按纽,采用Swift开发。能够展示类似汉堡包风格的按钮,拥有更新过渡动画效果。 import DynamicButton let dynamicButton
WorldWind_DataVisualization 是基于 World Wind 的数据可视化相关组件。 基于开源数据可视化类库(MSChart、VTK、D3)实现的组件样例,并基于 World Wind 实现调用上述组件的功能插件。
Docker 里面的开发数据库提供版本控制功能,允许用户commit,reset和branch容器化数据库。 dvol 为 Docker 提供与 git 类似的功能,旨在帮助开发人员在实际进行生产
呢啊。 一条正经的分割线 微博粉丝服务平台在单元化架构方面的实践已经在QCon讲过,这次重又写起文章,我想传播知识已经不那么重要(单元化架构不是创新,稍后会详细介绍),更重要的是还是希望能够借
csdn.net/cuiran/article/details/50552689 Android插件化(使用Small框架) 框架源码 1. Create Project File->New->New
try{} catch(…){}以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:try { BYTE* pch ; pch = ( BYTE* )00001234 ;