HTC Desire CDMA

今天花了 ¥1920 买了个 HTC Desire CDMA,其中邮费 ¥42,现在货到付款真是越来越贵了。。。卖家给送了用配套的屏幕膜和塑料套,武装起来感觉就是不一样,虽然有点丑了。

手机总体感觉非常不错,响应速度飞快,或许因为我长时候使用G1的原因吧,对比鲜明啊。

默认安装的 ROM 我不喜欢,发现有 root 权限,不用我费事啦,卖家很“体贴”啊。基于 CM 7.0.3 定制了一个适合我自己的 ROM,刷上效果不错。

我之前买了一个只能使用 CDMA 1X 的 ¥58 低消,送 300 小时上网的资费卡也派上大用场喽,测试发现以 CDMA 1X 的网速(稳定 15KB/s)使用 Skype for Android 打电话非常流畅。可以组合 Skype 的包月套餐了。准备使用如下组合:
费用:¥58 + ¥77
通话:1000 分钟
短信:580 条
上网时长:300 小时
上网流量:不限制

是不是很强大?

Over!

GtkWindow 无装饰模式单击移动窗口

/* example.c
 * Heiher <admin@heiher.info>
 * gcc -o example example.c `pkg-config --cflags --libs gtk+-3.0`
 */
 
#include <gtk/gtk.h>
 
static gboolean window_button_press_event_handler(GtkWidget * widget,
			GdkEvent * event, gpointer data)
{
	GdkEventButton * button = NULL;
 
	button = &event->button;
	if(1 == button->button) /* Left Click */
	{
		gtk_window_begin_move_drag(GTK_WINDOW(widget),
					button->button, button->x_root,
					button->y_root, button->time);
	}
 
	return FALSE;
}
 
int main(int argc, char * argv[])
{
	GtkWidget * window = NULL;
 
	gtk_init(&argc, &argv);
 
	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	if(GTK_IS_WINDOW(window))
	{
		gtk_window_set_decorated(GTK_WINDOW(window), FALSE);
		gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK);
		g_signal_connect(G_OBJECT(window), "button-press-event",
					G_CALLBACK(window_button_press_event_handler), NULL);
		gtk_widget_show(window);
 
		gtk_main();
	}
 
 
	return 0;
}

Over!

GtkCellRendererText 实现可选择单元格内容且不可编辑

GtkTreeView 构件中可以 Insert 类型为 GtkCellRendererText 的文本 Column,如果将 GtkCellRendererText 对象的属性 “editable” 设置为 True,则可以双击编辑单元格内容,在点击其它地方或按下回车后会认为编辑完成,触发 “edited” 信号,调用此信号处理函数,一般会在这个处理函数中调用 Model 的方法修改数据。
Continue reading GtkCellRendererText 实现可选择单元格内容且不可编辑

Automatic enable/disable toucpad via udev

Rules
1. Enable touchpad device while the external mouse deivce removed.
2. Disable touchpad device while the external mouse device added.

/etc/udev/rules/touchpad.rules

ACTION=="add", KERNELS=="input*", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_PATH}!="platform-i8042-serio-1", RUN+="/sbin/modprobe -r psmouse"
ACTION=="remove", KERNELS=="input*", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_PATH}!="platform-i8042-serio-1", RUN+="/sbin/modprobe psmouse"

Reload udev rules

sudo udevadm control --reload-rules

Over!

Remove Multi-Arch support for Ubuntu source packages

1. debian/control
Edit ‘debian/control’ file in source directory, remove all ‘Multi-Arch: same’ and ‘Pre-Depends: multiarch-support’.

2. debian/rules
Edit ‘debian/rules’ file in source directory, remove all ‘DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)’ and ‘$(DEB_HOST_MULTIARCH)’.

3. debian/*.install
Replace ‘/lib/*/’ to ‘/lib/’ in these files.

Over!

Forward Google Talk service on VPS

sudo iptables -t nat -A PREROUTING -d VPS_IP/32 -p tcp -m tcp --dport 5222 -j DNAT --to-destination 74.125.53.125:5222
sudo iptables -t nat -A POSTROUTING -d 74.125.53.125/32 -p tcp -m tcp --dport 5222 -j SNAT --to-source VPS_IP

Over!