摘要: nethogs: 按进程察看流量占用iptraf: 按连接察看流量占用ethtool: 诊断工具tcpdump: 抓包工具其他:dstat, ifstat, slurm, nload, bmon 阅读全文
posted @ 2011-05-31 22:38 LI Daobing 阅读(980) 评论(0) 推荐(0) 编辑
摘要: http://blog.lidaobing.info/2008/12/ioc.html1. 通过数据层访问数据库最简单的模型,采用一个数据访问层,来隔离应用与数据库。public class MyDA {//...}public class MyApp {public MyApp() {da = new MyDA();}private MyDA da;//...}2. 面向界面编程,同时方便使用 Mock 方法测试public interface IMyDA {//...}public class MyDAimplements IMyDA{//...}public class MyApp {p 阅读全文
posted @ 2011-05-19 14:52 LI Daobing 阅读(1279) 评论(0) 推荐(0) 编辑
摘要: 某些时候,需要上传的包的依赖包还未出现在 debian 官方仓库中,比如你需要上传 input-pad 1.0.0-1 和 ibus-input-pad 0.1.4-1, 后者依赖于前者, input-pad 可以正常地安装和上传, 但 ibus-input-pad 却会出现编译失败,因为对应的 input-pad 1.0.0-1 还未出现在官方 Debian 仓库中, 这种情况的处理方法如下所示先按照在 Ubuntu 下构建 Debian 打包环境这篇配置好环境安装 apache, 激活 userdir, 创建自己的 debian 目录$ sudo apt-get install apac 阅读全文
posted @ 2011-03-24 23:28 LI Daobing 阅读(1551) 评论(0) 推荐(0) 编辑
摘要: 加入新文件: debian/source/format, 内容为3.0 (quilt)设定环境变量 (可以加到$HOME/.bashrc中)export QUILT_PATCHES=debian/patches运行如下的命令, 创建第一个补丁$ quilt new binutils-gold.patch # 新建补丁,名字叫 binutils-gold.patch$ quilt add CMakeLists.txt # 这个补丁需要修改CMakeLists.txt, 所以把CMakeLists.txt 加入列表$ viCMakeLists.txt...$ quilt refresh # 把更改 阅读全文
posted @ 2011-03-21 22:11 LI Daobing 阅读(1381) 评论(0) 推荐(0) 编辑
摘要: REST 优点就不多说了,大家也看了很多,这儿说一下缺点。1. 滥用 HTTP 返回码REST 推崇使用 HTTP 返回码来区分返回结果, 但最大的问题在于 HTTP 的错误返回码 (4xx 系列为主) 不够多,而且订得很随意。比如用 API 创建一个用户,那么错误可能有调用格式错误(一般返回 400,405)授权错误(一般返回 403)"运行期"错误用户名冲突用户名不合法email 冲突email 不合法。。。对于运行期错误,各家的处理也大不相同,用 400, 409, 412 都有, 也有的是混用这个对于客户端或SDK开发者来说, 带来了额外的痛苦, 因为他们要处理三个 阅读全文
posted @ 2011-03-04 00:32 LI Daobing 阅读(4677) 评论(1) 推荐(1) 编辑
摘要: 安装软件$sudo apt-get install bzr-builddeb下载源码包$ bzr clone lp:~lidaobing/ibus/ibus-hangul更新上游包$ cd ibus-hangul$ uscan --force-download合并到 bzr 仓库$ bzr merge-upstream ../ibus-hangul-1.3.1.tar.gz --version 1.3.1$ bzr commit查看 bzr log$ bzr log -n0 | less编译并安装$ debuild -i.bzr$ debc$ sudo debi调整 changelog$ d 阅读全文
posted @ 2011-02-27 17:14 LI Daobing 阅读(1721) 评论(0) 推荐(0) 编辑
摘要: Ruby 的延迟计算大家已经用得很多了, 下面就是一个范例class ApplicationController def current_user @current_user ||= User.where(:id => session[:user_id]).first endendclass FooController < ApplicationController def foo current_user current_user endend但这个范例有一个问题, 如果 current_user 不存在, 那么每次调用 current_user 时都会额外查询一次数据库, 优化 阅读全文
posted @ 2011-02-26 21:48 LI Daobing 阅读(1952) 评论(0) 推荐(0) 编辑
摘要: bug0一个 flash Web 应用,在 Windows 下 IE, Chrome 浏览器下正常, Linux 下 Firefox, Chrome 浏览器下正常, 只有在 Windows 下的 Firefox 不正常, 服务端不返回 200, 改返回 412 了。原因很简单, Windows 下 Firefox 发送的 HTTP 头是 "Content-length: 1234", 其他所有客户端发送的都是 "Content-Length: 1234", 根据 HTTP 标准[1], 这两个都合法, 但是服务器端没考虑 HTTP 头 Field Nam 阅读全文
posted @ 2011-02-23 23:23 LI Daobing 阅读(1348) 评论(0) 推荐(0) 编辑
摘要: 某些软件,比如 glib, gtk, 2.12.0 是稳定版, 2.13.1 是非稳定版,如果只想打包稳定版,又不想 debian/watch 因为检测到版本更高的非稳定版报警的话,可以用正则表达式排除非稳定版,范例如下所示version=3http://www.spice-space.org/download/releases/spice-protocol-(\d+\.\d*[02468]\.\d+)\.tar\.bz2 阅读全文
posted @ 2011-02-22 23:02 LI Daobing 阅读(1236) 评论(0) 推荐(0) 编辑
摘要: 环境: Ubuntu 10.10, amd64其他环境可以参考在 Ubuntu 下构建 Debian 打包环境问题用 pbuilder-sid 打包 gmchess 时失败,报告libudev0,x11-common 下载失败原因libudev0 已经发布了 166-1 版本,但 pbuilder-sid 试图下载 165-1 版本,下载失败可能是 Release 文件过期, 在 approx 的 cache目录/var/cache/approx/debian/dists/sid 确认 Release 文件已经过期删除过期的 Release 文件,运行 pbuilder-sid updat 阅读全文
posted @ 2011-02-20 18:46 LI Daobing 阅读(1481) 评论(0) 推荐(0) 编辑