Le's profileSomething like a home pa...PhotosBlogListsMore ![]() | Help |
|
February 29 zip包里含有中文文件名的处理刚刚同事发给我一个zip包,解开发现中文是乱码 于是上网搜了一下,发现了解决方法 顺便说一下,中文相关问题还是要用中文关键字搜,:-D http://bbs.chinaunix.net/archiver/tid-1002730.html 不过即便是此连接里提到的第二个方法也不是这个问题的解决方法,而只是一个workaround 但对于中文Linux用户,应该足够了 所以过一会我会把它放到china overlay里 PS: 我同事给我的文件用改过的unzip解压缩后,还是需要convmv,因为她用的是繁体windows,big5编码 -- Zhang Le, Robert http://r0bertz.blogspot.com http://zh.gentoo-wiki.com http://savannah.nongnu.org/projects/pgubook http://groups.google.com/group/gentoo-china http://groups.google.com/group/szlug February 28 在公司听家里局域网内机器上的歌——sshfs的应用解决方案当然很多,讲讲我现在使用的 实现的方式是,把家里机器硬盘上的目录挂载过来 我用的是sshfs 如果只是sshfs当然没有什么,网上资料很多 这里的难点在于,歌在家里的笔记本(目标机器)上,中间需要经龙芯盒子作跳板 其实这个方法也是搜索到的,不过忘记哪里了 $ cat /usr/local/bin/Atunnel #!/bin/bash ssh -q gco ssh -q "$@" gco就是我定义(在.ssh/config里)的盒子的机器名 在公司里机器上执行 sshfs -o ssh_command=Atunnel nb:/mnt/d ssh nb是目标机器名,要确保跳板上可以用这个机器名登录目标机器 ssh是本机上的目录 设置好密钥对认证,ssh-agent forwarding之后,全程不必输入密码 看了几张2008 Linux Symposium Beijing的照片 http://foka.debian.net/gallery2/d/10670-2/dscf6172.jpg 这里有两个我的前同事李云龙侯正鹏,中间的是陆首群 http://foka.debian.net/gallery2/d/11045-2/dscf6295.jpg Amy, Andrew Morton, Anthony Wong 找了两张同时有Alex和Anthony的 看Alex的怪异表情:http://foka.debian.net/gallery2/d/10433-2/dscf6083.jpg 俩人笑的多么灿烂:http://foka.debian.net/gallery2/d/10436-2/dscf6084.jpg 哎,如果我在北京,我应该也在那里 心痒痒的 February 27 龙芯2E盒子32位内核只能使用256内存的原因正式启用新翻译进度表因为一个css的问题,我还是把这个表放到了gentoo-cn.org上 http://www.gentoo-cn.org/trads/ 兄弟们可以干活了,:) -- Zhang Le, Robert http://r0bertz.blogspot.com http://zh.gentoo-wiki.com http://savannah.nongnu.org/projects/pgubook http://groups.google.com/group/gentoo-china http://groups.google.com/group/szlug February 24 发布我的trads脚本git repo http://www.gentoo-cn.org/gitweb/?p=trads;a=summary 使用git后,一个趋势是,你可能会把它用在任何你想应用版本控制的场合 因为使用起来太方便了 一个人怎么都得有10个20个git repo…… gentoo-cn.org上我只放了4个 其实我另外还有 未来陈冠希们的噩梦假如,注意仅仅是假如,有人效仿陈冠希。 不幸笔记本坏了,拿去修。 不过他吸取了陈冠希的教训,用了操作系统的磁盘加密功能。他可能以为万无一失。 他错了! 看这个 http://citp.princeton.edu/memory/ 原理是DRAM,就是我们使用的内存条(非cache所使用的SRAM),在断电后一段时间内仍能保留数据。而且随温度的降低,数据可保留时间会越来越长。液氮的温度下,零下196摄氏度,可以保持达几个小时。 而且更要命的是,据研究人员说,如此一来,磁盘加密程序将没有地方可以存放秘钥。 February 23 昨天那个部分英文文档不能显示版本号的问题之后续报道我加上了缺少的目录之后,cvs up 结果我忘记了我的.cvsrc里有cvs up -dP 结果那些目录又全给删掉了 !$@#$%#$%#$^#$%# 后来发现改脚本也可以 虽然ruby没有学过 不过不怕,有文档,:-D 加了个条件判断后搞定 if File.exist?("#{@ttrad.localcvs}/#{dd.path}/#{dd.ttrad.langto}/#{dd.subdir}#{dd.filename}") then lstf << "#{dd.path}/#{dd.ttrad.langto}/#{dd.subdir}#{dd.filename}" end 另外加上了除安装手册外所有的手册 http://dev.gentoo.org/~r0bertz/trads-zh_cn.xml xargs的-I参数真是相见恨“晚” 如果没有它,可以for i in `find xxx`; do yyyyyyyy; done 但这样的话,如果find的结果过长,会导致发生错误,Argument list too long——命令行参数保存在进程堆栈顶端,空间有限,其上方还有环境变量和auxiliary vector,再往上就到 0xc0000000了。 之前也看过xargs的manpage,不过没有仔细看 想想也是,这么好的功能,实现起来又不麻烦,肯定应该早被人实现了 修正了几个有关新进度表的问题首先,有很多英文文档里没有<!-- $Header$ -->,所以不能直接从文档里获得CVS版本号,所以我改了获取英文版本号的函数,加入了通过cvs命令获得版本号的功能。 # get version from cvs command open( FH, "cvs status $file |" ); while (<FH>) { if ( $_ =~ /Working/) { $_ =~ s/.*(\d+\.\d+)/$1/; chomp; return $_ ; } } 其实,发现有些英文文档不能显示出版本号,debug了一下发现竟然是因为对应的中文目录不存在。所以就都给加上。http://cia.vc/stats/author/r0bertz 还有,有的文档id(就是表格里第一列的内容)过长,所以就裁减了一下,不影响文档的识别。 February 22 写了个脚本,把所有非手册的gentoo文档都弄到进度表里了现在还在生成中 http://dev.gentoo.org/~r0bertz/trads-zh_cn.xml 等我睡醒应该好了 哎,本来想早睡的,可是一开了头,就停不下来了 下一步再整理手册,所有的gentoo手册,安装手册,安全手册,嵌入式手册,开发者手册。。。 #!/usr/bin/perl #=============================================================================== # # FILE: trads.pl # # USAGE: ./trads.pl # # DESCRIPTION: update trads.xml file # # AUTHOR: Zhang Le <r0bert@gentoo.org> # LICENSE: GPLv3 # VERSION: 1.0 # CREATED: 02/22/2008 02:57:38 AM CST # REVISION: --- #=============================================================================== use strict; use warnings; use Data::Dumper; use XML::Simple; my $ref = XMLin("metadoc.xml", ContentKey => '-content'); my $CVSDIR = "/home/zhangle/gentoo/xml/htdocs"; my $top_cat = (); my $cat = $ref->{categories}->{cat}; foreach my $key (keys %$cat) { unless ($cat->{$key}->{parent}) { $top_cat->{$key} = { content => $cat->{$key}->{content}} ; if ( grep(/$key/, ('faq', 'install', 'upgrade', 'desktop')) ) { $top_cat->{$key}->{prior} = 'C'; } elsif ( grep(/$key/, ('sysadmin', 'gentoo', 'gentoodev', 'project')) ) { $top_cat->{$key}->{prior} = 'I'; } else { $top_cat->{$key}->{prior} = 'N'; } } } sub get_group_and_prior { my ($leaf_cat) = @_; return { group => 'misc', prior => 'N'} unless $leaf_cat; if ( (ref $leaf_cat) eq 'ARRAY' ) { $leaf_cat = $leaf_cat->[0]; } my $root_cat = $leaf_cat; while ( $cat->{$root_cat}->{parent} ) { $root_cat = $cat->{$root_cat}->{parent}; } return { group => $root_cat, prior => $top_cat->{$root_cat}->{prior} }; } sub get_en_ver { my ($file) = @_; open (INFILE, $CVSDIR. "/". $file) or die "Can’t open file: $!"; while (<INFILE>) { if (/Header/) { s/(.*v )(\d\.\d+)(.*)/$2/; chomp; return $_; } } } sub get_zh_cn_ver { my ($file) = @_; return '' unless ( -f $CVSDIR. "/". $file); open (INFILE, $CVSDIR. "/". $file) or die "Can’t open file: $!"; while (<INFILE>) { if (/English CVS version/) { s/(.*English CVS version.*)(\d\.\d+)(.*)/$2/; chomp; return $_; } } } my @doc_array = (); my $files = $ref->{files}->{file}; my $docs = $ref->{docs}->{doc}; foreach my $key (keys %$files) { unless ( $files->{$key} =~ /handbook/ || $key =~ /handbook/ ) { my $doc = {}; $doc->{ID} = $key; my @array = split(/\//, $files->{$key}); my $subdir = join("/", @array[3..$#array-1]); $doc->{files}->{name} = $array[$#array]; $doc->{files}->{path} = "$array[1]"; $doc->{files}->{subdir} = $subdir if $subdir; $doc->{info} = get_group_and_prior($docs->{$key}->{memberof}); $doc->{info}->{nick} = ''; $doc->{rev}->{target} = get_en_ver("$array[1]/en/$subdir/$array[$#array]"); $doc->{rev}->{sync} = get_zh_cn_ver("$array[1]/zh_cn/$subdir/$array[$#array]"); push @doc_array, $doc; } } my $output = { documents => {'doc' => \@doc_array} }; my $xml = XMLout($output, KeepRoot => 1); print $xml; February 21 如果xargs要执行的命令里来自xargs的stdin的部分不是最后一个参数怎么办举个例子,假如我要打印出当前目录下所有2级或1级目录的目录名 一级目录下不光有目录还有文件 目录名文件名中都含有空格 下面这个命令可以实现这个目的 find -maxdepth 2 -print0 | xargs -0 -I '{}' sh -c "[ -d '{}' ] && echo '{}'" 技巧就是-I参数 Familarity Breeds ContemptThis phrase means the better we know people, the more likely we are to find fault with them. 中文里类似的说法是:亲不敬,熟生蔑。而且似乎这种情况在中国人身上体现的特别明显。 来看一段节选自这篇blog的文字 http://www.for-iris.blogbus.com/logs/10908167.html 如此阿娇的遭遇便不难理解了。为了“玉女”形象,不得说一些假话。但当光环破灭后,玉女和欲女的巨大反差就会把她打入无底深渊。 我写这篇当然不是为了写阿娇,所以——待续…… 龙芯盒子在2.6.24.2 Linux内核上的DRI问题 http://lxr.linux.no/linux+v2.6.24/drivers/char/drm/drm_ioctl.c#L80 目前的问题是 (EE) [drm] Could not set DRM device bus ID. (EE) RADEON(0): [dri] DRIScreenInit failed. Disabling DRI. 最后查到内核里,应该和上面这个函数有关 记录一下,有空详细分析一下 BTW,如果使用我的loongson overlay,你能得到一个在2.6.24.2内核上working的X,但是还没有DRI,即硬件加速 http://www.gentoo-cn.org/gitweb/?p=loongson;a=summary |
|
|