Category Archives: Linux

A nice way to fuck gfw

转载自 : http://fuckgfw.jottit.com/ 本文将提供一种一劳永逸的翻墙方式(ssh -D),实施之后,那道墙——对你来说——将从此透明。 本文面向的用户:使用Windows作为操作系统并且使用Firefox作为常用浏览器。 第一步:免费获取拥有SSH权限的帐号和密码。 默认的免费获取方式:将本文转载到你自己的博客上,将转载后的文章网址发送到。 转载方式:拷贝文章代码至博客后台HTML编辑器中,直接发布即可,文章标题自拟,可在前后文插入自己的评论。 经过人工审核,你将收到一封附有五个拥有SSH权限的帐号和密码的电子邮件,你可以将它们赠与你自己的读者。 更多获取方式将在今后陆续激活,请关注帐号配送中心:https://friendfeed.com/rooms/fuckgfw-for-free 第二步:配置MyEntunnel软件 下载并安装MyEntunnel,该软件全名为My Encrypted Tunnel。 一键下载:https://dl.getdropbox.com/u/398/myentunnel.exe 按照上图将第一步收到的帐号信息填写到相应的地方后,点击按钮,再点击按钮。 第一次连接过程中会出现一个认证对话框,按照提示确认即可。以后的自动连接中将不再出现此认证对话框。 最后点击按钮,使对话框隐藏到系统任务栏中。 提示: 为MyEntunnel创建一个快捷方式,将其复制到系统的【启动】(C:\Documents and Settings\当前用户名(需要修改成你自己的)\「开始」菜单\程序\启动)文件夹中,今后开机便可自动启动软件,并自动连接服务器。 绿色代表连接成功且稳定;黄色代表正在连接或重新连接;红色代表连接失败。 第三步:配置Firefox浏览器 假设你正使用Firefox浏览器阅读本文。 一键安装:http://autoproxy.mozdev.org/latest.xpi 点击立即安装,安装后,重新启动Firefox。然后你会看到如下对话框,选择gfwlist (P.R.China)后,点击确定。 接着你会看到Firefox主界面右上角出现有一个“福”字图案,点击“福”。 点击“代理服务器——编辑代理服务器”。 随即出现如下画面,你会看到如GAppProxy、Tor和Your Freedom这样一系列代理服务器名称。 将GAppProxy一栏的参数修改为如下图所示。 修改完毕后,点击确定。至此配置已全部就绪。 获取更多帮助,请关注反馈中心:https://friendfeed.com/rooms/fuckgfw-feedback 第四步:支持fuckGFW 获取详情,请关注捐赠与推广中心:https://friendfeed.com/rooms/fuckgfw-donation-and-marketing 版权信息:您可以自由复制、传播、演绎本作品且无需署名、无需注明原始出处。

perl and fork

最近写程序用到了 fork ,记一下。 我在 perl 里面某个地方开始,fork 多个进程去操作 db,主进程等子进程完事后,再继续后面的操作。 use POSIX ":sys_wait_h"; my $thread_num = 5; my %pids = ();   # $dbi->{InactiveDestroy} = 1 用到 dbi 的话还要设置这个,要不子进程exit后,dbi # 连接就断了   # …..前面的程序 for ( 1..$thread_num ) { my $pid = fork; if (not $pid) { # 子进程 $pids{$pid} = 1; # blalbalbla… 子进程去干活 eixt 0; [...]

内核的 shmall 和 shmmax 参数

shmall 是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。 修改 /etc/sysctl.conf。 kernel.shmmax=15461882265 kernel.shmall=3774873 kernel.msgmax=65535 kernel.msgmnb=65535 执行 sudo sysctl -p 可以使用 ipcs -l 看结果。ipcs -u 可以看到实际使用的情况。 —— Shared Memory Limits ——– max number of segments = 4096 max seg size (kbytes) = 15099494 max total shared memory (kbytes) = 15097856 min seg [...]

去掉了 gnome-terminal 的 tab 上面的关闭按钮

gnome-terminal 上面有个红红的 叉叉,就是关闭按钮了。因为开 tab 多的时候会不小心按到,所以就想把他干掉。可惜 gnome 没提供去掉的选项,google 了下,发现不少人烦这个,可是 gnome 不理会这些声音,2007 年有人写了个补丁,可惜没转正。我琢磨琢磨改巴改巴把他弄到自己能用了。原来那个补丁还添加了 gconf 的配置项,我没那需求,就去掉了。这个是对 gentoo 里面的 gnome-terminal-2.24.2 打的补丁,别的版本没准还得改改。 diff -ur gnome-terminal-2.24.2.org/src/terminal-window.c gnome-terminal-2.24.2/src/terminal-window.c — gnome-terminal-2.24.2.org/src/terminal-window.c 2009-02-06 17:51:54.277755771 +0800 +++ gnome-terminal-2.24.2/src/terminal-window.c 2009-02-06 18:04:34.601756240 +0800 @@ -1929,7 +1929,7 @@   gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);   – close_button = gtk_button_new (); +/* close_button = gtk_button_new (); gtk_button_set_relief [...]

将 gnome 换成 kde 4.2

下面的步骤一定要明白干的是什么再操作,否则后果自负 。 1 修改 make.conf 里面的 use 为 kde4 -kde -gnome qt4 -qt3 -avahi -esd 这样。把 gnome 相关的 use 都 – 掉。我还有 -arts,看需要。使用 kde 这个use有时会导致安装 kde3,所以如果要使用最好在 /etc/portage/package.use 里面单独指定。如果不介意 kde + gnome 共存,那么 1,2 不是必须的。 2 emerge -uDN world 3 修改 /etc/portage/package.unmask ,加入 >sys-apps/portage-2.1, unmask portage 2.2 ,2.2 才支持 set 4 layman -a kde-testing 5 emerge [...]

写了一个 kde plasma applet

用 gnome 的时候,对 panel 上面的 cpu 等 applet 情有独钟。这个东西能让我对自己的系统有第一手信息,有时候某个程序出问题了 cpu 100% 了,这个时候系统反应不一定会变慢的,但是这个程序是必须要被干掉的,有了这个 applet 我就能知道第一时间知道出问题了。还有的时候看 firefox 里面的 flash 的时候也会出类似的情况,这时会导致看别的网页很慢,那就干掉他。 第一次装 kde 的时候发现没有那些东西,让我很失望。后来看到 ob 在 openbox 里面把 panel 设的短一点,然后用 conky 在空出来的地方显示一些信息,感觉豁然开朗啊,呵呵。 这次装好 kde,就弄了一个 conky,可是发现他的风格和系统不兼容。有点不爽,就琢磨自己能不能弄一个,因为需求实在太简单了。 昨天花了一个下午,总算弄好了。参考的文档 qt的类, pyqt4 turtorial,plasma python . 效果就这样。电池旁边那个就是。 代码 # from PyQt4.QtCore import * from PyQt4.QtGui import * from PyKDE4.plasma import Plasma from PyKDE4 [...]

使用 perl 来登录网页

应该不能用。。。只是为了记录 使用 LWP::UserAgent 可以简单的去访问网页,获取页面内容。例如 use LWP::UserAgent;   my $ua = LWP::UserAgent->new(); $ua->timeout(10); $ua->agent(’mozilla’);   my $r = $ua->get(’http::/www.google.com’); print $r->content; # or $r->decoded->content $r 的其它属性可以去 cpan 看看。这样就获取到了内容。但是,如果一个网页是需要登录的怎么办?可以用保存 cookie 的方式。 use LWP::UserAgent; use HTTP::Cookies; use Digest::MD5 qw(md5 md5_hex); # 用来生成 md5 的 use JSON; # 用来在 json 串和 perl 的 hash 串之间转换 use Data::Dumper;   my [...]

把硬盘的分区都换成了 ext4

我的分区都是 reiserfs 的。这次 ext4 吵的这么火爆,实在忍不住了,就换过去了。 我的磁盘比较小,转换还费了点功夫。先找一个和 / 分区差不多的分区,用来放 / 的数据。我找的是 /home ,然后把 / /home 之外的分区转换了。方法就是先把其中一个的数据弄到其它的上面,然后重新格式化,然后再把数据弄回来。 可以用 cp -p /source /dest 的方式,也可以用 tar cpf – –exclude=/home | tar xpf – 的方式,后面这个方法可以支持过滤掉某个目录不考。 这些都弄好之后就可以弄 / /home 了。先把 /home 的东西备分一下, tar cpf /data/home.tar ,/data 最好是一个单独的分区。 rc-update del xdm ,然后重启 root 登录。格式化 /home,再 mount 上他,用来复制 / 的内容过来。复制的时候需要注意下,先把 / /home 之外的那些分区都 [...]

在 gnome 中替换 wm

gnome 中的 window manger (wm) 是 metacity,有时候可能会用的不爽,换成 openbox ,或着 xfwm4 之类。 gnome 提供了简单的方法,就是设置 WINDOW_MANAGER 这个变量。如果用的是 dm,例如 gdm ,那么在 .profile 里面放上下面一句就可以了。startx 的话,放在 .xinitrc 里面。 export WINDOW_MANAGER=”/usr/bin/openbox” 用 gdm 的话,还可以在启动的时候选择 openbox-gnome-session 这个来使用 openbox 做为 wm,那个命令是个 shell 脚本,可以看看。 如果设置了不管用,可以看看 gconf 里面的 desktop/gnome/session/required_components/windowmanager 的值。/usr/bin/gnome-wm 这个程序可能会用这个,具体好像和 gnome 的版本有关,这个文件是 gnome-base/gnome-session 这个包里面的。 gdm 启动的时候,会运行 /etc/X11/gdm/Xsession 这个程序。可以试试看在这里面小小的 debug 一下。 最后郁闷一下,openbox 在 gnome 的 [...]

更新 kenerl 到了 2.6.28

之前用的是 tuxonice 的 kernel, 为了体验他的休眠。可是最近发现我基本就不用休眠。而且 tuxonice 的内核还一直停留在 2.6.26 上面。最近 2.6.28 火的不行,所以就给他升级了。 升级没遇到什么问题。新选择了 ext4 支持,等哪天把 fs 都修改到 ext4 去,不过好像有点折腾,呵呵。 gentoo-souces 也是支持的休眠的。想要在 gnome 下面休眠的话,安装一个 pm-utilus 这个包就可以了。在电源管理那里选休眠就可以了。不过发现 挂起 好像不支持,挂起了就不能唤醒了,很郁闷。我记得 tuxonice 下面挂起好像也不支持,不管他了。 那个号称革命性的 GEM 不知道什么时候能在 radeon 上面出现。等着吧。