存档

‘Linux’ 分类的存档

‘/svn’: 301 Moved Permanently

2009年6月22日 wd 没有评论

今天搭了一个svn,遇到了这个问题,这个问题在 subversion 的 FAQ 里面就有。不过看了半天没弄明白怎么回事,呵呵。后来糊里糊涂弄好了,也没明白。刚才突然明白了。。。

比如你的 documentroot 指向了 /www 下面, 而你的 svn 的 path 设置到了 /www/svn 下面,就会出这个问题。因为,用户如果访问的是 /www/svn/proj1 的时候,那应该是按照一个正常的目录处理呢,还是按照 svn 的一个项目处理呢?这可是不同的,因为如果是一个 svn 项目,那就交给 dav-svn 处理的,按照其它svn 项目一样,会显示这个项目的 reversion 什么的。但是如果是按照目录处理,那就交给了 apache 处理,他会在这里面找 directory index 等一些操作。这就会让 apache 很困惑。

解决的办法也比较简单,就是在 /www 下面不要出现你的 svn 的名字,也就是说,把你的 /www/svn 弄到 /www 之外去。这就没问题了。当然,如果哪天某个哥们无心的在 /www 下面建了一个 svn 文件夹,那这个又会出现,呵呵。

分类: Linux 标签:

升级系统杂记一篇

2009年6月21日 wd 1 条评论

受不了 kde 窗口管理器的问题,前段时间把系统切换到了 openbox。kde 的 kwin 下面,窗口总有点问题,比如 pidgin 里面设置了提取消息的快捷键,可就是不好用。比如有时候新开的窗口就不在最上面,还比如有些 gtk 程序最大化之后偏偏就不是最大的,上面还是下面来着有一条。另外 kwin 对 dual head 支持感觉也不爽。

kde 不用了,也懒得切回 gnome 了,就试试看 openbox 吧。目前已经用了一段时间的 ob 了,感觉还行。下面是用到的一些程序列表。

firefox 目前升级到了 3.5rc1,感觉不错,建议都升级一个,在 mozilla overlay 里面有

thunderbird 也用了 3.0beta2。本来用 kmail 其实挺好用的,里面的快捷键我觉得非常好,比如 r 回复作者,a 回复所有人,l 回复 maillist,有点在 mutt 里面的感觉了。不过 kmail 在 openbox 下的表现不是很爽,而且还有 kde 一陀依赖,用了一段时间还是不用了吧。支持 thunderbird 3.0 的 lightning 插件还没找到。另外,因为 thunderbird 不像 kmai 能在 tray 呆着,就自己写了一个程序,类似 mail-notification 的功能一样,呆在 tray,有 mail 的话点一下就启动 thunderbird。

tint2 这个支持透明,有 tray 支持,感觉挺好的。而且对 dual head 支持非常好,可以在不同的 moniter 显示不各自的 task,非常好。

fcitx 我使用二笔输入法,这个目前用的是感觉最好的,虽然新版越做越二,但是旧版也足够用了,建议此软件用户没事就不要升级了,升级可能随时会导致你的配置文件里面的配置不起作用了。

roxterm 这个 term 很像 gnome-terminal, gnome-terminal 是我用的非常爽的一个 term 了,尤其是加了去掉 close button 的 patch 之后。konsole 就别说了,我觉得他除了一些我用不到的功能外,比 gnome-terminal 差好多,不能 shift 连续选择文字,tab 标题会被切隔 etc,反正用的挺不爽的。roxterm 支持快捷键设置,颜色设置等一些比较实用的东西,还比较小。 Terminal, lxdeterminal 其实也比较小巧,不过功能设置上面什么的,我觉得都不如 roxterm 好。

xchat 用过 konversation 之后,这个好像看起来就没那么好了,呵呵。不过,其实也还是不错的,现在不太喜欢用 term 下面的 irc client 了,还是 gui 的好,呵呵。

stalonetray 之前因为 tint2 的 tray 支持还有点问题,tint2 crash 之后就可能导致有 tray 的程序也挂掉。之前总调整 tint2 设置的时候这个问题很不爽。尝试之后,在 trayer, stalonetray 还有几个别的里面选了 stalonetray, 因为 trayer 不能很明确的设置 tray 的位置。用单独的 tray 程序也有问题,tray 多的时候,不能很好的安排好 tray 的位置。所以还是用 tint2 自带的算了。

上面几个软件使用中的几个吧,别的觉得没什么好说的,就不说了。这么一弄之后,执行了 depclean 之后,就是下面的壮观结果了,呵呵。

Packages installed: 984
Packages in world: 147
Packages in system: 51
Required packages: 741
Number to remove: 243

好像好几个星期没 clean 了。

今天升级到了 xorg 1.6 感觉 keyboard repeat delay 有点长,g 了下,原来用 xset 就可以搞定,不得不说这个很强大。之前换了一个鼠标后,发现新的鼠标的移动速度快了好多,也是用 set 搞定的。

xset m 1.5 1 # 设置鼠标速度
xset r rate 180 # keyboard repeat delay

这是早先抓的图。 http://twitpic.com/6w6ym

分类: Linux 标签:

用 xelatex + beamer 做幻灯片

2009年6月11日 wd 没有评论

这篇文章里面写了怎么实现 latex 中文混排,使用 beamer 是基于那个的,所以先把那个搞定。

然后安装好 dev-tex/latex-beamer。

下面是一个例子文件。

\documentclass{beamer}
 
\mode<presentation>
{
%   \usetheme[blue,noshadow]{Trondheim}
%   \usetheme[blue,minimal]{Trondheim}
%  \usetheme[blue,compress,numbers,nonav]{Trondheim}
%\usetheme[sand,compress,numbers,nonav,innovation]{Trondheim}
%\usetheme[sand,compress,numbers,nonav]{Trondheim}
\usetheme{Berlin}
%\usecolortheme{ntnuold}
\usefonttheme[onlymath]{serif}
\setbeamercovered{transparent}
% 上面这段是使用 beamer 的哪个theme, 具体看 beamer 自带的例子里面的效果吧
}
 
\usepackage{fontspec}
\newfontfamily\zhfont[BoldFont=Microsoft YaHei]{Microsoft YaHei} %设置中文
\newfontfamily\zhpunctfont{Microsoft YaHei} % 设置中文
 
\setmainfont{Consolas}           %这里设置英文衬线字体
\setmonofont{Consolas}                     %英文等宽字体
\setsansfont{Consolas}               %英文无衬线字体
 
\usepackage{zhspacing}
\zhspacing
 
\title{测试标题}
\author{wd}
\institute{XXX Inc.}
\date{\today}
 
\begin{document}
 
\begin{frame}
  \titlepage
\end{frame}
 
\begin{frame}
  \frametitle{摘要}
  \tableofcontents
\end{frame}
 
\section{What do we have}
 
\begin{frame}
	\frametitle{what do we have}
	\begin{itemize}[<+-|alert@+>]
		\item have 1
		\item have 2
		\item have 4
		\item .......
	\end{itemize}
\end{frame}
 
\section{what do we need}
\subsection{need}
\begin{frame}
	\frametitle{what do we need}
	sth...
	\begin{itemize}[<+-|alert@+>]
		\item 1
		\item 2
	\end{itemize} 
	\hfill \\
	else ?...
\end{frame}
 
\subsection{pic}
\begin{frame}
	\frametitle{pic}
	\centerline{\includegraphics[height=6cm]{xx.jpg}}\label{phb}
\end{frame}
 
\section{else}
\begin{frame}
    \frametitle{else}
	\begin{center}\Huge{?}\end{center}
\end{frame}
 
\end{document}

然后用 xelatex 编译两次, 两次的目的的出那个目录,编译一次没目录。下面是效果。贴同麻烦,还是上像册看吧。

http://www.zooomr.com/photos/wd/7615829/

分类: Linux 标签: ,

eclipse 对 jdk 1.4 的依赖

2009年5月16日 wd 没有评论

首先日一下 bilbo,不小心按了一下 ctrl+z,内容居然都丢了,nnd,刚才都写完了。

言归正传。之前想安装 eclipse 的时候,发现他依赖 jdk 1.4,就没装。这次又想装了,就试着找找看哪个依赖 jdk 1.4.下面就是找的过程。

:%s/^.\{-}] //g  #去掉前面的 [], .\{-} 相对于是 perl 里面的 .*?
:%s/\(\d\)\s\+.*$/\1/g #去掉结尾的没用的东西
:%s#/\(.*\)\(-\d\)#/\1/\1\2#   #把路径弄好
for l in $(cat ~/b);do echo "######$l"; egrep 'jre|jdk' /usr/portage/$l.ebuild;done

下面是结果中的部分。第一个 ebuild 里面这种是不会有问题的。就是第二个造成的依赖 jdk 1.4,给他加一个 java5 的 use 的就好了。

######dev-java/lucene/lucene-1.9.1.ebuild
DEPEND=">=virtual/jdk-1.4
RDEPEND=">=virtual/jre-1.4"
######dev-java/tomcat-servlet-api/tomcat-servlet-api-5.5.27.ebuild
DEPEND="java5? ( >=virtual/jdk-1.5 )
!java5? ( =virtual/jdk-1.4* )
RDEPEND="java5? ( >=virtual/jdk-1.5 )
!java5? ( =virtual/jdk-1.4* )"
分类: Linux 标签:

asm 和 python的扯淡 zz

2009年5月14日 wd 1 条评论

python: 兄弟,最近我手头紧,能借点不?

asm: 行,不过怎么你以前不是过得还滋润的,怎么现在混这么差,

python: 不知道啊,现在根本接不到什么项目,听说还有风声要收回我的开发资质。

asm: 你要改变观念,才会有市场。

python: 什么观念?

asm: 现在流行的是软件的要有科学性

python: 什么是软件的科学性?

asm: 我自己也不清楚,不知道哪位大神定义的科学的软件就是要有bug,现在的人们认为软件不可能没有bug,
否则就不是软件,所以bug越多越好,我就非常适合创造bug。搞好点三步一回头,搞不好一步三回头。

python:我不行啊,我开发的东西bug相对少得很多。

asm: 难怪别人不找你做项目。通常别人都认为软件这个东西啊就是通过不断消灭bug,不断创造bug,最终走
向稳定成熟的。你bug要是少了,客户会认为你蒙它,不科学。

python: 太阳啊,我设计出来就是为了减少软件开发少出bug的,这样不是要我的命?
那你开发项目时候弄出那么多bug,进度不是很慢,成本也很高?客户能接受?

asm: 这你不懂,这里的人就是人傻,钱多,你不这样干,他们还认为你是在蒙它,哪里有这么轻易就作出来的东西,
我的特点就是能把简单的东西弄复杂,而你呢,把复杂的东西简单化,显然不受常人的欢迎,人都是好奇的动物,
喜欢复杂的事情,越花花绿绿越好。你还不错了,看Lisp兄弟那惨样。

python: 那项目要是复杂了,规模大了你能应付?

asm: 管他,我也知道我对付不了大规模的项目,用人堆,人月算得高高的,到那个程度,我自己也糊涂了,
不知道要怎么整合了,bug比太平洋里头的珊瑚虫还多,根本做不下去。就给客户说目前技术水平只能达到
这个程度就行了,他们能接受,能将就用就用,不能用就宣告失败。

python: 不会吧,这种规模的东西在我看来并不难啊,项目失败他们不去告你?

asm: 也有告的,不过现在法律有规定,只要你能列出你开发时候的所有设计过程和调试信息,能证明你尽力了,
系统确实复杂到技术是无法解决的,就没事。
python: 你怎么提供?

asm: 我开发的特点你还不知道,代码量本身巨大,调试信息非常多,而且清楚得很,动不动就扔N个core出来,上次那个
破搜索项目我扔了几十T的core给客户,他们还屁颠地当宝一样永久保存

python: 搜索~~,太阳!这些家伙为什么就是不找我?

asm: 现在的人不懂你那套,太玄,你的log绝大部分只记录你逻辑上的东西,现在的客户要求太高了,每一步都要知道CPU各寄存器的状态,
总线电压高低,内存的实时快照,多了。你还自动类型定义,自动类型转换,谁信。什么高阶函数,闭包都冒出来。
你的设计思想不错,我都想学习,不过很难学,至于客户,他们更搞不懂,云里雾里。上次Lisp大兄弟去接个基因分析项目被
人轰了出来,说什么一堆乱七八糟的括号太神秘,什么抽象语法树,语法还能自定义,简直胡扯,就是巫术,内存管理更
不透明。那些客户喜欢看到分配释放内存,很具体,很直观,Python兄弟你这个连内存管理都不给客户看的,也很难混日子。

pyton: 我自己带了gc,又不要他们考虑。

asm: 他们不会吃你gc这套的,你不明确给他们说分配多少字节内存出来,什么时候释放,他们不卖帐。

python: 我太阳,又不是所有项目都要这么控制精细的。

asm: 看我,我每一段代码都很明确,和机器结合得很紧密,写磁盘发个IO指令,让他们看得实在。你那个write太玄乎,到最后写盘还不知道隔了多少层
他们不放心。现在的人认死理,一个问题只能有一个答案,一种解决方法。你看你变化多端,谁都能搞得糊。不过不要紧,我做不下去的时候可以介
绍他们过来给你继续做。

python: 那真的很感谢,最近真的没米下锅,你是帮了我的大忙了。

asm: 没什么,不过我要告诉你的就是这类客户的开发经费被我榨得差不多了,到你那可能没多少钱付给你了。

python: 没关系,再少总比没有好。(哭)

asm: 最后告诉你一个秘密,人的弱点就是天生有奴性,贱,喜欢复杂的东西,好奇,盲从,注重眼前,捡芝麻丢西瓜。
对简洁的东西不感兴趣。因为他们通常认为简洁就是简单。书从薄读到厚,又从厚读到薄 的人没几个的。太相信
自己的眼睛,不相信自己的心。我猜可能是猪油吃太多了的缘故。 表面的东西他们非常热衷,看得到,实在。喜欢
追涨杀跌,所以股市里头为什么那么多人输钱,就是这样,你弄得越火热,价格越高,越多人买,生怕赶不上末班车,
价格越掉越不买,持币待购。我早期玩股票,学了点技术,觉得自己无所不能了,也来搞一把,也是整天盯着盘,
那个实时价格跳得我心都肿了,输得去穿strip,后来学乖了,抓住趋势,买入,中间不看了细节了,趋势没了就抛了,
最后挣钱了。前几年房价疯涨,多少人怕涨到天上去,砸锅卖铁,把下辈子的养老钱都预支出来去买,看现在,傻了吧。
所以有些复杂的东西,你越想从细节控制它,它越不听你的话,你和它对抗没用,早晚死它手里,要顺势。
明白了,今后你要挣这些人的钱,要抓他们的弱点。

分类: Linux 标签:

A nice way to fuck gfw

2009年4月1日 wd 1 条评论

转载自 : http://fuckgfw.jottit.com/

本文将提供一种一劳永逸的翻墙方式(ssh -D),实施之后,那道墙——对你来说——将从此透明。

本文面向的用户:使用Windows作为操作系统并且使用Firefox作为常用浏览器。

第一步:免费获取拥有SSH权限的帐号和密码。

默认的免费获取方式:将本文转载到你自己的博客上,将转载后的文章网址发送到f.ckgfw#gmail.com

转载方式:拷贝文章代码至博客后台HTML编辑器中,直接发布即可,文章标题自拟,可在前后文插入自己的评论。

经过人工审核,你将收到一封附有五个拥有SSH权限的帐号和密码的电子邮件,你可以将它们赠与你自己的读者。

更多获取方式将在今后陆续激活,请关注帐号配送中心:https://friendfeed.com/rooms/fuckgfw-for-free

第二步:配置MyEntunnel软件

下载并安装MyEntunnel,该软件全名为My Encrypted Tunnel。

一键下载:https://dl.getdropbox.com/u/398/myentunnel.exe

myentunnel

按照上图将第一步收到的帐号信息填写到相应的地方后,点击save按钮,再点击hide按钮。

第一次连接过程中会出现一个认证对话框,按照提示确认即可。以后的自动连接中将不再出现此认证对话框。

最后点击hide按钮,使对话框隐藏到系统任务栏中。

提示:

为MyEntunnel创建一个快捷方式,将其复制到系统的【启动】(C:\Documents and Settings\当前用户名(需要修改成你自己的)\「开始」菜单\程序\启动)文件夹中,今后开机便可自动启动软件,并自动连接服务器。

tray

绿色代表连接成功且稳定;黄色代表正在连接或重新连接;红色代表连接失败。

第三步:配置Firefox浏览器

假设你正使用Firefox浏览器阅读本文。

一键安装:http://autoproxy.mozdev.org/latest.xpi

xpi-offical

点击立即安装,安装后,重新启动Firefox。然后你会看到如下对话框,选择gfwlist (P.R.China)后,点击确定。

gfwlist

接着你会看到Firefox主界面右上角出现有一个“福”字图案,点击“福”。

fu

点击“代理服务器——编辑代理服务器”。

edit

随即出现如下画面,你会看到如GAppProxy、Tor和Your Freedom这样一系列代理服务器名称。

before

将GAppProxy一栏的参数修改为如下图所示。

after

修改完毕后,点击确定。至此配置已全部就绪。

获取更多帮助,请关注反馈中心:https://friendfeed.com/rooms/fuckgfw-feedback

第四步:支持fuckGFW

获取详情,请关注捐赠与推广中心:https://friendfeed.com/rooms/fuckgfw-donation-and-marketing

版权信息:您可以自由复制、传播、演绎本作品且无需署名、无需注明原始出处。

分类: Linux 标签:

perl and fork

2009年3月7日 wd 没有评论

最近写程序用到了 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; # 要记得 exit ,要不子进程还会继续执行后面的。
	} else { # 主进程
		# balbalbal ... 如果没事做也可以不写
	}
}
 
while( keys( %pids ) ) {
	my $kid = waitpid(-1,WNOHANG);
	if ($kid >0) {
		delete $pids{$kid};
		print "$kid end.\n";
	} else {
		sleep 1; # 继续等,如果有时间限制,可以在这里去 kill 子进程
	}
}
 
# ....继续后面的程序

还可以参考这个 http://www.perlmonks.org/?node_id=619722

分类: Linux 标签: ,

内核的 shmall 和 shmmax 参数

2009年3月2日 wd 没有评论

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 size (bytes) = 1
 
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
 
------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 8192
DEFAULT max size of queue (bytes) = 16384
分类: Linux 标签:

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

2009年2月6日 wd 没有评论

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 (GTK_BUTTON (close_button), GTK_RELIEF_NONE);
   gtk_button_set_focus_on_click (GTK_BUTTON (close_button), FALSE);
   gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE);
@@ -1939,17 +1939,17 @@
   image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
   gtk_container_add (GTK_CONTAINER (close_button), image);
   gtk_box_pack_end (GTK_BOX (hbox), close_button, FALSE, FALSE, 0);
-
+*/
   sync_tab_label (screen, NULL, label);
   g_signal_connect (screen, "notify::title",
                     G_CALLBACK (sync_tab_label), label);
 
-  g_signal_connect (close_button, "clicked",
+/*  g_signal_connect (close_button, "clicked",
 		    G_CALLBACK (close_button_clicked_cb), screen_container);
 
   g_signal_connect (hbox, "style-set",
                     G_CALLBACK (tab_label_style_set_cb), close_button);
-
+*/
   gtk_widget_show_all (hbox);
 
   return hbox;
分类: Linux 标签:

将 gnome 换成 kde 4.2

2009年1月23日 wd 没有评论

下面的步骤一定要明白干的是什么再操作,否则后果自负 :)

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 -av @kdebase-4.2
其他想装的东西可以去 /usr/local/portage/layman/kde-testing/sets 里面看。比如 emerge -av @kdepim-4.2,或者装里面的某个包,emerge kde-base/kmail:4.2

6 修改 /var/lib/portage/world ,删掉里面的 gnome 的包,当然不介意 gnome 和 kde 共存的话后面的就不需要做了。

7 emerge –depclean -p 清理 gnome 的包。

分类: Linux 标签: ,