使用Automator批量生成图标

因为设计师需要在完成图标设计后一次性生成各种尺寸的图标给工程师,使用Sketch虽然可以做到,但是还是很麻烦,所以决定给他写个脚本自动完成这个工作。 因为工作环境都是Mac,自动化肯定首选Automator,如果使用原生的Crop方法会很麻烦,而且自动化程度不够高,所以就想使用bash脚本,搜索了一下,发现Mac已经自带了图像处理的命令行工具sips,具体用法就不细说了,可以参考官方文档:sips ManPages 大致用法: sips [image-modification-functions] imagefile ... [--out result-file-or-dir] 然后就祭上Automator,创建一个Service,选择image files,然后添加Utilities->Run Shell Script,输入下面内容: sizes=(144...

Mac
全文约 204 字, 预计阅读时间为 1 分钟

使用CNPM搭建私有NPM

最近的Node项目中因为数据模型等问题,需要有一个对各个模块进行统一的管理,如果把私有的模型publish到公共的npm不太合适,所以决定使用cnpm搭建一个私有的npm,同时也可以对项目常用的npm模块做一个缓存,加快部署速度。 搭建的过程还是比较简单,参考cnpm的Deploy很快搭建起来,给大家分享一下。 服务器环境: Ubuntu Server 14.04 Node.js v0.12.0 MySQL 5.5 因为cnpm使用了--harmony参数,所以需要Node版本大于0.11.12,所以就直接上了最新的v0.12.0,没有MySQL也没关系,可以直接使用sqlite3。 Clone源码并导入SQL (MySQL用户名:root 密码:root,数据库名:cnpm,项目和数据放在~/cnpm) #...

服务器
全文约 316 字, 预计阅读时间为 2 分钟

博客正式从Wordpress迁移到Jekyll

从10年1月开始搭建自己的博客开始,一直都是用WP,随着Wordpress的发展走到了今天,终于受不了WP的臃肿,以前喜欢整天都是在弄所谓插件主题等各种折腾,现在没有那个时间和精力,只是想简简单单的写写博客,记录一下最近在弄的东西,与大家分享实践过程中遇到的问题。 加上习惯了用Markdown写东西后,很不习惯WP写博客的方式,富媒体编辑器排版,有时候还要自己去编辑一下HTML源代码,实在是受不了。加上自己的WP托管在香港的虚拟主机,速度一般,而且最近经常出状况,一进去post页面就会白屏,很久没弄php懒得去排查什么,所以最终下定决心迁移。 从二月底三月初开始计划迁移,寻找替代方案,从Ghost、Hexo到Jekyll,从动态博客的可玩性及便捷性中纠结,最后选定了Jekyll这样静态的博客程序,虽然功能没有WP那么强,但是胜在简洁方便,同时使用GitPage托管,省去折腾服务器。 然后是Jekyll的主题问题,看了挺多人做的主题都不是很满意,要不就是太复杂,要不就是部署各方面太麻烦,最终决定自己用Bootstrap自己写一个兼容桌面与移动客户端的主题,同时使用JQuery来实现一定的动态性,这样就又折腾了一个多星期。 最后就是折腾数据的导出和到Markdown的转换,考虑到SEO等等问题,希望文章的链接与之前的WP保持一致,所以先从WP导出了所有文章,用脚本转换成了Markdown文件,然后开始漫长的文章整理和重新排版,对之前博客的内容进行筛选,从导出的560篇博文中去掉没有用的转载和跟技术无关的文章,最后精简到现在的240篇,进而整理代码高亮、文章排版等问题。 最后就是整合调试和部署到Github和GitCafe上,利用七牛的CDN做静态资源的缓存,同时用DNSPod实现国内国外分流访问,具体的迁移过程和细节接下来会进一步写博文分享。 总而言之,今天正式完成博客的迁移,希望接下来可以更好的写更多东西~欢迎大家访问和提意见!

博客大事记
全文约 7 字, 预计阅读时间为 1 分钟

MongoDB2.6添加用户权限方法

使用Mongodb数据库,需要为各个数据库增加用户权限,查了一下发现下面代码: use test2 db.addUser( { user: "test", pwd: "admin", roles: [ "readWrite", "dbAdmin" ] }...

Node.js
全文约 225 字, 预计阅读时间为 1 分钟

iOS实时检测UITextField内容

想在用户输入内容的时候同时检测UITextField的输入并根据用户的输入内容响应页面上的事件,在这个例子中是实时检测用户输入的手机号码,当手机号码的位数达到11位同时满足手机号码的格式时,确定按钮变为可用状态。 代码如下: 先声明textfield然后添加下面方法: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *checkString; if (range.location ==...


全文约 240 字, 预计阅读时间为 1 分钟