Mac 神器之 Alfred

用一句话来说,Alfred是一款Mac下必不可少的神器! 首先,Alfred覆盖了Mac原生的Spotlight的功能,比如: 启动应用 查找文件 还有一些额外的小把戏: 计算器 放大显示(command+L) 不过,仅凭上面这些还远不足以让Alfred被赞为神器,workflows 才是Alfred最酷的功能。 workflows可以理解为允许开发者自己编写的Alfred插件。在Alfred中,你可以方便的定义插件的流程和触发方式,并支持通过多种语言来编写插件的具体逻辑。所以,我们可以将能想到的各种日常功能写成workflows集成到Alfred中。 快递查询 天气预报 翻译(有道) 网上有大量开源的workflows可以使用,我们也可以根据需要编写 自己的workflows,总之,祝大家玩得开心。…

Vagrant + PHPStorm 搭建虚拟化开发环境的实践方案

那么,在开始之前,我们先来思考几个问题 ... 为什么用虚拟机 当考虑需要在本地搭建一个独立的开发环境时,最传统的方式是,在自己的开发机上安装各种项目依赖的软件和库,以便项目能在本地环境中运行起来。而这种看起来最简单直接的方式却可能带来一些意想不到的麻烦: 1. 开发机可能和生产环境之间存在平台上的差异,比如多数开发者喜欢在Mac或者Windows上工作,而服务器多半是Linux。 2. 同时在多个项目工作时,不同项目所依赖的软件版本可能存在冲突,而不同版本的软件在表现上的差异可能导致项目中的错误。 3. 软件的安装方式、安装目录等可能存在差异。 4. 对于对项目还不太熟悉的新成员,要正确安装项目所需要的各种软件及完成配置,往往要花上不少的时间。 而所有这些可能存在的差异,最终可能表现为一个在传统的工作方式里十分常见的问题:It (not) works on my machine!【代码在我的电脑上是(不)正常的】。考虑到这一点,采用虚拟机来提供一个完全无差异的开发环境就成为了一个不错的方案。其实除了以上四点原因外,还有更重要的第五点: 作为一个有轻微洁癖的开发者,我绝不允许在我心爱的Mac上装一大堆乱七八糟的东西,哈哈。 这样,理由就更加充分了。 为什么用Vagrant 回答这个问题,首先我们要知道什么是Vagrant。 简单的理解,Vagrant是一个虚拟机(如VirtualBox)…

MongoDB日志分析工具 mtools

mtools 是一组用于分析mongodb日志文件的小工具集,它们的功能就和你想象中的一样。 mlogfilter: 帮助我们方便地从全部日志文件中筛选出部分数据,比如只看特定时间内的日志或者特定数据集合的日志 mplotqueries:根据条件生成对应的图表数据,比如对集合的查询操作随时间变化的分布及每次查询的扫表次数 mlogvis:和mplotqueries类似,不过是web版的 借助图表,我们可以更容易地观察到一些现象并得出结论,比如某种数据的查询次数随时间变换的规律,或者是发现某类查询的扫表次数特别的高,这也许是因为涉及的条件字段没有加索引导致的,诸如此类。 更多细节可以参考 官方文档…

芦苇少女

这几年外公的身体一直不是很好,今年春节我和我母亲留在成都,负责照顾外公。一方面因为老人年纪大了应该有人陪伴,另一方面因为前几年做过十二指肠溃疡的手术,最近又拔了牙(因为要重新装假牙),饮食上需要特别照顾。 我的草稿箱里已经积攒了4、5篇只写了标题的博客,每次想要动笔又被自己以各种借口往后拖延。拖得越久越打不起精神,也许乘着假期的清闲,我会下定决心,把其中感兴趣的一篇或者两篇补上内容。 假期最大的好处就是我可以有大量的时间来阅读,我读书的速度比以前快了不少,差不多二天一本,有的时候一口气读完一本。读书的习惯是昕猫离开后才养成的,我喜欢《小岛书店》里那段A.J.费克里再也没有说出来的话,“ 因为孤单,我们开始读书,因为读书,我们不再孤单”。我反反复复地读这一段,用力地揣摩其中的意味,觉得深得我心。 我很喜欢《撒哈拉的故事》这本书,三毛绝对算得上是个迷人的神经病,在这一点上,昕猫和她也是如出一辙。每每读到三毛说的那些疯话、做的那些疯事,我总是情不自禁地在脑子里将故事的主人公换成昕猫再读一遍。她们一个敢在异国他乡把房东赶跑,另一个五岁就能把隔壁阿姨骂哭;一个深更半夜跑到总督的庭院里偷花险些被击毙,另一个则在光天化日之下跳到学校的人工湖里(其实是湖边的石头上)砍了一大棵芦苇作为给自己的礼物;一个跑去偷看土著人洗澡被追着跑丢了凉鞋,另一个,我不知道,…

再见

我和昕猫终于还是没能走到最后. "我们还是分开吧", 她总是很坦然. "那好吧", 我希望我也能这样坦然的回答, 然而这并不是事实. 在那一刻, 我的情绪淹没了所有的理智, 我一句话也说不出来, 像是有什么东西哽在喉咙里. 不得不承认的是, 真实的我甚至比她口中的那个男孩还要幼稚可笑. 表面上看, 我似乎是比较懂得照顾人的那一个, 事实上, 只有我才知道自己对她是多么的依赖. 一直以来, 失去她对我来说都是一个不存在的选项. 我朋友很少, 昕猫除了是我曾经的爱人, 也是我最好的朋友. 值得庆幸的是, 我们之间作为朋友的关系在一定程度上还能得以保留, 她会笑着打电话问我饺子馅应该买哪种肉, 和面应该加多少水, 我也乐于告诉她小托最近又长胖了, 以前套肩膀的绳子现在只能套脖子. 她说, 她一直被我身上那种生活的气息所吸引, 跟我在一起也让她学会了如何更好地生活. 而我知道和这些比起来, 她带给我的惊喜要多得多. 我看见自己是怎样变成了一个更好的人, 我说的"更好", 指的是更快乐. 我们相互扶持着经历过了人生中最尴尬的阶段, 结束了学生时代, 步入社会, 既没本事也没钱, 租便宜的房子, 每隔几天就强迫症般地去查查银行卡上的余额. 她说, 我在她的人生里占据着一个不可取代的位置, 那个在她最糟糕最狼狈的日子里陪伴在她身边的人, 糟糕的日子已经过去了, 所以也不会再有一个这样的人. 对我来说, 也是一样. 小托昨天晚上拉肚子,…

Appium:移动端自动化测试之道

如果你曾接触过Selenium的话, 那么, Appium就是一个移动端的 Selenium, Appium通过调用Andriod SDK提供的API实现对应用的操作, 从而实现对各种功能的模拟测试. Android Test with Appium (written with python client) 环境准备(Android) Windows 1. 安装JAVA: 可从官网获取JDK1.8安装包 2. 安装ANDROID SDK MANAGER: 可从官网获取ANDROID SDK MANAGER安装包, 并配置环境变量 ANDROID_HOME 到 ANDROID SDK 安装目录, 如:D:\Program Files\Android\android-sdk 3. 通过ANDROID SDK MANAGER安装所需的版本的ANDROID SDK 4. 安装appium: 可从[…