128M内存VPS LNMP安装优化小记

重要通知:Log4D 的域名由 http://dddspace.com 迁移到 http://log4d.com 。 订阅地址现在改为 http://log4d.com/feedhttp://feeds.feedburner.com/dddspace 。(FeedBurner 的地址未发生变化)

这一次域名迁移的同时,我更换了服务器,由原先的虚拟空间迁移到独立 VPS。 现在使用的 VPS 是 PhotonVPS

月付5.95美元,使用优惠码 TENOFFPHOTONLEB 可以打7折, 换算汇率之后是26人民币每月。

这款VPS的内存只有128,我们就要精打细算考虑如何省内存。经过我几天琢磨, 我终于配置的可用率比较高,使用 siege -c 100 -t 100 时候可以保持 100% 可用率。 (其实做不到这么高的并发,大概10个并发每秒)下面就是我记录的安装配置过程。

more ...

jEmotion

重要通知:Log4D的域名由 http://dddspace.com 迁移到 http://log4d.com 。 订阅地址现在改为 http://log4d.com/feedhttp://feeds.feedburner.com/dddspace 。(FeedBurner的地址未发生变化)


白天工作时候需要一个功能,我搜了一下Google,没有找到合适的,就花了半天时间写了一个jQuery插件jEmotion。

jEmotion的主要功能是用来给输入框加入转义之后的表情代码,然后在页面显示时候可以重新将表情代码转回表情图片。

image

jEmotion的代码托管在GitHub上,地址是 https://github.com/alswl/jEmotion

demo地址是 http://lab.log4d.com/javascript ...

more ...

域名迁移

各位好,我将在一个星期之内完成dddspace.comlog4d.com域名的迁移。

Log4D的域名最早叫dddspace.cn,创建于2009年5月14日,再之后09年12月份某次cn域名爆发群体性拔线之后,我注册了dddspace.co m这个域名。

不知不觉Log4D博客已经走过了2个多年头,我也终于在守候1年多时间里面抢到了名正言顺的log4d.com域名。同时我在PhotonVPS购买了一个XEN VPS,128M内存,300G流量,我用来运行这个博客,同时配置了VPN用作它用,你们懂的。

顺便给PhotonVPS做个广告,我那款VPS每个月4.95美元,然后用优惠码打7折,差不多26块钱一个月。我之前使用的虚拟主机+VPN每个月也是26块钱, 何乐而不为呢。PhotonVPS速度还凑合(有些线路可能比较慢,江苏电信/江苏联通速度不错),128M内存小了一点,需要优化一下才能跑的很顺畅。有兴趣的可以 压力测试一下我的Log4D。

Log4D的主题也在紧锣密鼓的重写中,我现在使用Toolbox 1.3版本作为模板来写主题,新主题的源码在 https://github ...

more ...

新logo

策划了一年的博客改版终于跨出了第一步----新Logo。

image

有木有觉得帅气无比啊,这是用gimp做的,非PS出品。

ps:此乃山寨之作~

more ...

使用unison同步文件

1. 同步控

我是一个同步控,会妄想自己的文件遭遇不可修复性的毁灭, 因此经常丧心病狂的做备份。 比如每每备份到移动硬盘中, 比如每年一次的刻盘备份,又比如我现在要介绍的同步软件unison。

据我自己考察,这种对备份文件丢失的恐惧来自于小时候一次意外格式化F盘, 从而导致我搜集的所有《龙珠》漫画丢失而产生的。

另一个同步文件的需求来自于我的两台电脑:常驻家中的DELL 6400,是我的大房; 最近得宠的小蜜Thinkpad X201。其中6400是Win7系统, 而X200是Arch Linux主打的双系统,我希望两者的文件保持同步, 便于我两边使用时候都能检索资料。如何实现跨平台同步方案让我头疼了好久, 幸好有unison拯救了我。

2. 同步历史

很久很久以前,那时候我还喝三鹿,我开始用TotalCmd来做同步文件, 依稀记得那个功能是在 命令 里面的 比较文件夹 。 这个功能满足我当时简单粗糙的需求。只要把需要同步的文件夹分列TotalCmd两侧, 然后就可以通过命令自动查找相异的文件。

当时在我看来,尤其神奇的是文件过滤功能和按照 日期文件内容 比较功能。 着实帮了我很大忙。

再过了几年,TotalCmd不能满足我了,我不想每次都选择需要同步的文件, 再用肉眼比对,同步功能也偏少。我搜寻到一款老牌的同步工具 ...

more ...

网页渐进式载入图片

Question

为什么有的网页打开图片是从上到下逐行打开,有的则是先显示低分辨率图片再逐渐加入细节?

Answer

感谢@吴亚桐 回答给我找到线索,感谢提问者的好问题,我为这个问题曾经困惑了多年。这种渐进式载入方法容易和其他渐进式载入混淆。

我这里小总结一下几种渐进式载入办法。

下面是答案:


浏览器下载图片的时候渐进式载入,这样下载完一张图可以看到它的样子, 只不过只是不清楚的图,这样可以减少你等待看它的时间。

实际上有两种方式可以实现这种渐进式效果,一种是图像隔行扫描(Interlace), 中文可以成为交错,另外一种叫做图像渐进式扫描(Progressive)。

  1. 隔行扫描可以在gif/png中实现 ...
more ...

使用nose做测试

不做单元测试的程序员不是好程序员。最近我在Pylons下面做开发, 使用 nose 做单元测试,颇有心得, 在这里分享一下。

1. Pylons中依赖包

先简单介绍一下Pylons, Pylons与其说是一个框架,不如说是一堆框架的组合, Pylons在其中做到一个胶水的作用。Pylons依赖的包如下。

Pylons的测试主要使用的其中的 Paste / nose / WebOb / WebTest。 遇到问题的时候,可以去翻一翻上面的文档。

2. Pylons中测试目录结构

目录结构如下

├─config
├─controllers
├─lib
├─model
├─public
├─templates ...
more ...

使用pptpclient连接vpn网络[译文]

最近在ddwrt配置vpn,参考了arch的pptpclient配置文档Microsoft VPN client setup with pptpclien t,同时顺便花了一点时间翻译成中文,正文如下(使用wiky.js转换pe diawiki到html,原文会有更多的wiki模板样式便于查看,有问题请参照原文)。

pptpclient是一个实现Microsoft PPTP协议的程序。因此它能够被用来接入另一个Microsoft VPN网络,比如学校和单位。

安装PPTPClient

pptpclient由安装包pptpclient提供,运行下列命令可以安装:

pacman -S pptpclient

配置

你需要从网络管理员获取以下信息来配置pptpclient:

  • VPN服务器的ip或者域名
  • VPN隧道名称
  • Windows域(不是所有网络都需要)
  • VPN用户名
  • VPN密码

编辑配置文件

用你称手的编辑器打开/etc ...

more ...

使用NX替代VNC

NX 是 NoMachine 公司推出的下一代远程桌面技术,可以说是用来替换 VNC 的一个较好方案。

VNC is remote control software which allows you to view and fully interact with one computer desktop (the "VNC server") using a simple program (the "VNC viewer") on another computer desktop anywhere on the Internet.

VNC 是一个允许你从一台电脑(VNC 查看器)查看并且操作另外一台电脑(VNC 服务器)小程序 ...

more ...

TypeError: sequence item 22: expected string or Unicode, long found

Mako 下面开发时候,遇到这个问题

TypeError: sequence item : expected string or Unicode, long found

Trace 的情况大概这样(我的错误信息无法再现,这是某位外国友人的错误信息)

File '/Users/amaslov/Projects/dou-pylons/doupy/doupy/controllers/ root.py', line 239 in staticpage

return render('/pages/%s.html' % name)

File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- packages/Pylons-0.9.7-py2 ...

more ...