与 Docker 一起使用 Rails

2015-07-02 08:28

最近 Docker 很火,好像只要是服务器端相关的东西都有要搬到 Docker 上的趋势, 似乎要把从开发,安装,部署,维护的问题全都要解决掉的那个意思。

按我的理解,Docker 架构在服务器之上,从服务器上多衍生出了一层, 所以可以跨平台运行在各个系统之上,达到一致的用户体验。 并且 Docker 可以快速导入一个定制好系统, 比如可以把开发人员的系统环境复制一份给测试人员使用,体验真的很好。

Docker 发展很快,但我觉得就目前的阶段还是不太适合商用环境, 毕竟真正商用时是多主机配合工作的,这点上 Docker 还有很大的空间需要完善。 作为一个开发,测试用环境或者小范围商用时是 Docker 的确带来了巨大的用户体验。

Read more

使用 GPG 加密数据

2015-01-09 16:18

什么是 GPG 加密,以下来自百度的解释

PGP加密系统是采用公开密钥加密与传统密钥加密相结合的一种加密技术。 它使用一对数学上相关的钥匙,其中一个(公钥)用来加密信息,另一个(私钥)用来解密信息。 PGP采用的传统加密技术部分所使用的密钥称为“会话密钥”(sek)。 每次使用时,PGP都随机产生一个128位的IDEA会话密钥,用来加密报文。 公开密钥加密技术中的公钥和私钥则用来加密会话密钥,并通过它间接地保护报文内容。

Read more

PostgreSQL Tips

2014-10-15 09:28

PostgreSQL 查询

PostgreSQL 后台进程状态

当一个 postgres 进程查询很花时间时,可以在后台看一下到底是什么处理导致慢。

SELECT datname,usename,procpid,client_addr,waiting,query_start,current_query FROM pg_stat_activity where procpid = $PID;

查询 PostgreSQL 存储过程源码

查询一个 PostgreSQL 的存储过程的源码。

Read more

配置主从PostgreSQL数据库

2014-09-05 16:47

背景

数据库的数据量开始增多,负载开始变高,需要做一个数据库主从配置。

数据量,单表超过了100万条数据,应用程序做读写分离,写到主数据库,读从从数据库。

步骤

  • 生成操作用的用户
  • 配置主数据库,激活备份模式
  • 关停从数据库,复制数据
  • 配置从数据库,从主数据库同步数据

生成操作用的用户

sudo apt-get install postgresql
sudo -s postgres
psql -c "CREATE USER rep REPLICATION LOGIN CONNECTION...
Read more

Using LVM striped logical volumn

2014-09-04 17:47

之前写过一篇关于 LVM 的博文。 今天要说的是有关 LVM 的一个应用。

原理

当系统需要很多读写操作,需要更高效率的磁盘读写能力,完全升级磁盘等级会没有太多意义。 因为无论多好的磁盘读写能力,总会达到峰顶。

这时候我们需要另一种的解法。

挂载更多的磁盘到一个目录,这样写到一个磁盘的数据会分散到各个磁盘中, 这样子理论上可以达到无限扩展。

能够实现这个技术的,有RAID0, LVM Stripe。这里我只说LVM。

操作

确认 vg 所有 物理盘数量

jxb@pg2:~$ sudo...
Read more

当 ActiveRecord 不够用时还有 Arel

2014-07-16 09:31

1. 取反运算符

SELECT * FROM posts WHERE title != 'Arel is cool'

ActiveRecord

Post.where.not(title: 'Arel is cool')

Arel

Post.where(Post[:title].not_eq('Arel is cool')

2. NULL 运算

SELECT * FROM posts WHERE title IS NOT NULL

ActiveRecord

Post.where...
Read more

详解Ruby里用到的比较函数(equal?, eql?, ==, ===)

2014-07-05 18:10

Ruby里面有4种比较方法,equal?, eql?, ==, ===,而且在不同的类里面表现的很不一样。在使用的时候也特别容易搞糊涂。 这篇博文将演示一些代码来讲解各个方法。

== - 类意义上的 相等,需要每个类自己定义实现

在特定类中觉得两个对象是否相同,需要看业务上的逻辑表象,所有由程序员覆盖该方法的定义,决定两个对象是否相同。

比如 String 类,他是来计较实际的文字串是否相同,而不在意是否来自同一个内存区域。

>> a = "abc"
#=> "abc"

>> b 
Read more

使用 chinacity 从国家统计局官网取最新城市数据

2014-06-30 20:09

最近项目里需要用到中国城市数据,看了几个Gem,发现数据都不是最新的,遂写了个Gem chinacity 用来从国家统计局取最新数据。

因为考虑到城市类基础数据一旦开始使用,id与别的数据关联后就比较难再更新数据了,所以就做成只取数据生成文件的简单小工具。

功能

  • 从国家统计局官网取最新数据。
  • 支持导出 JSON,CSV格式
  • JSON 数据 兼容 china_city Gem 的数据格式
  • 支持同时导出拼音缩写

用法

导出JSON格式

$ chinacity > areas.json...
Read more

独立博客,自媒体第一步

2014-04-28 00:27

自媒体

流行年年有,每年各不同。

自媒体应该是2013年的流行词之一了,搭上微信的强大功能可以说推动了整个自媒体运动。 而自媒体自然成了2013年的宠儿,有人断言自媒体是现在为止最为有效的营销手段。

博客也曾风靡一时,而后有了微博之后全民注意力转移到了微博,现在微信出来之后大家又把目光移到了微信上面。 我不否认微信的强大魅力,新生事物能够获得关注已经说明了他自身的价值。 但是我不觉得她能替代博客与微博,她们每个都有自己独特的适用场景。

  • 博客写长篇日志,做高质量内容
  • 微博适合营销传播,扩...
Read more

新版博客发布,使用Middleman做为博客引擎

2014-04-23 12:46

在使用 Octopress 写博客 2年之后,有很多的新技术涌现,我决定更新一下博客引擎,并重新设计界面。

需要的功能

  • 因为是个人博客,所以静态博客就可以了,不用买主机买空间,绿色环保
  • 支持独立域名,能自动分类,打标签
  • 以为有技术博客可能会贴些代码需要支持markdown,语法高亮
  • 支持Sass, CoffeScript,方便写样式,排版布局
  • 支持开发,商业代码分离(技术洁癖)
  • 方便发布,一个命令行搞定
  • 容易功能扩展,比方增加个热帖排行榜之类
  • 容易升级依赖包,使用最新技术
  • 开发友好,支持开发状态代码有改动时浏览器自动刷新(LiveReload)
Read more