Monthly Archives: January 2014

Ruby中生成QR Code(二维码)那些事

在程序中要想生成二维码,除了各种网络服务,还可以利用各种本地library。 在Ruby下有很多,这里只简单介绍三个:qrencoder,rqrencoder-magick和rqrencoder,rqrcode_png。 实际上这三个库,都需要qrencoder这个东西。 1. 安装qrencoder 我用的homebrew,安装如下: liubin:eventbox liubin$ brew install qrencode ==> Downloading http://fukuchi.org/works/qrencode/qrencode-3.4.2.tar.gz ######################################################################## 100.0% ==> ./configure –prefix=/usr/local/Cellar/qrencode/3.4.2 ==> make ==> make install /usr/local/Cellar/qrencode/3.4.2: 11 files, 196K, built in 17 second 2. 安装qrencoder(Ruby GEM) qrencoder主页:https://github.com/harrisj/qrencoder 这是对一个开源库的C扩展,当然主要是为了速度。 代码最后更新时间大概在两年之前。 安装qrencoder的话需要指定额外的include和lib路径,否则出错。 checking

Posted in Rails, Ruby, Tech Tagged with: , , , , , ,

COOKPAD所使用的技术 — 基础设施篇

序: 本系列文章主要基于日本技术评论社的杂志的《WEB+DB Press》(总)第66卷(2012年1月25日发行,数据有点老,2年了。)的专题“COOKPAD开发Know How大公开”整理而成,部分数据可能会根据网上能搜集到的信息加以修改。 本特辑主要分为5部分,分别是: 1. 严守200毫秒 — 基础设施篇 主要介绍采用AWS,图像分发、处理,异步加载,缓存等内容。终极任务:确保服务器响应时间在200毫秒之内。 2. 大规模项目快速开发流程 TDD(测试驱动),原型法,频繁发布 3. 以用户为中心的开发 model user,用户访谈,EOGS 4. 高效的智能机应用开发 如何选择App和Web?自己独自的库,code snippet 5. 跨公司的团队氛围 DevOps、全部门工程师体制、AARRR指标 本文主要是第一章,基础设施,也就是infrastructure。 COOKPAD是什么公司? COOKPAD网站是1998年上线的,当然,那时还没有Rails。2005年曾经一度尝试过使用过Rails,但是没有成功。直到2008年后,才开始逐渐的转移到Rails。我曾在Ruby Kaigi 2007上见过他们的演讲,当时还在招聘Rails工程师。直到现在,每次Ruby或者Rails的各种会议,都有他们招聘的身影。 选择Rails的原因 当初选择Rails主要基于以下两点: 1. DRY,编写风格良好的代码,利于复用。 2. 框架本身鼓励测试。 基础架构 系统工程师有5人,架构也很普通:反向代理+应用服务器+数据库。具体来说如下: ■ 负载均衡 使用了Amazon的ELB(Elastic

Posted in Rails, Ruby, Tech Tagged with: , , , , ,

使用Vagrant安装rails环境(rails-dev-box)

1. 什么是Vagrant 简单来说,Vagrant是一个虚拟机管理软件,你可以使用它脱离虚拟机容器(类似VirtualBox之类的软件)来管理(启动、停止、配置等)虚拟机(镜像文件)。使用它,你可以快速的进行在干净的环境下进行测试,部署等。(有点类似Docker,不过我感觉Docker比传统的虚拟机更高一层,灵活性更高,效率也会高很多。) 2. 安装 2.1. 安装VirtualBox 首先,需要安装VirtualBox,这个不多说,从官方(https://www.virtualbox.org/wiki/Downloads )下载即可。 我下载的VirtualBox-4.3.6-91406-OSX.dmg有118.6M。 除了Mac版的,还有Windows和Linux,以及Solaris版本的。 2.2. 安装Vagrant 接着,安装Vagrant。 从官方选择一个(100%的人会选择最新版吧)版本下载: http://downloads.vagrantup.com/ 我下的Vagrant-1.4.2.dmg有33.9M 2.3. 安装rails-dev-box rails-dev-box(https://github.com/rails/rails-dev-box )是一个为了开发Rails 本身而准备的环境,而不是为了开发普通的Rails应用程序。 安装方法见项目主页的说明,基本就是这样: $ git clone https://github.com/rails/rails-dev-box.git Cloning into ‘rails-dev-box’… remote: Reusing existing pack: 275, done. remote: Counting objects: 1, done. remote:

Posted in Rails, Ruby, Tech Tagged with: , ,

从代码里取todo信息提交到Gitlab

最近写了个小工具:gitlab_todo (https://github.com/liubin0329/gitlab_todo)。 这个工具的主要功能就是根据代码里写的注释,找出todo信息,在提交代码的时候,将新增加的todo,作为issue添加到Gitlab该项上的issue列表里。同时添加todo作为标签,将assignee设为自己。 当然,也支持在删除todo注释的时候,将相应的todo删除。 本工具不保存任何数据信息(比如todo和issue id的对应关系等),也不修改任何commit或者代码信息。所有信息匹配都是通过todo内容的字符串(todo:后紧跟的字符串,以及issue里title的值)。 1. 安装方法: 1.1. 将todo.rb拷贝到$PATH里,然后增加git的hook $ cat .git/hooks/post-commit todo.rb 如果不想把todo.rb放到PATH里,也可以在post-commit里写上绝对路径。 1.2. 设置gitlab的地址和private token export GITLAB_HOST = … export GITLAB_TOKEN = … 然后,在代码的注释里,按照这样的格式写todo就可以了: [TODO: xxxxx ] 其中,中括号和大写的TODO加冒号必不可少,xxx是todo内容,也是issue的title 2. 截图   2.1. 在代码里添加注释并提交 从diff可以看出,增加了注释并且包含TODO关键字 git commit后,会将此todo加入到issue里。 2.2.

Posted in Ruby, Tech Tagged with: , , ,

无觅相关文章插件,快速提升流量