PopSci 5-Minute Project: The Coffee Can Cellphone Booster
coolbean | 30 七月, 2007 17:48
Linux: 在英文环境中使用中文输入法
coolbean | 30 七月, 2007 02:04
适用版本: CentOS4 (RHEL4)
本来该开始配置Apache等服务应用了的, 但是在英文环境中无法输入中文, 上网找资料很麻烦. 切换成中文环境, 字又太难看, 后来在网上找了些资料, 修改成功, 记录如下:
首先我的GUI是Gnome, 不知道KDE会不会不同. 在/etc/sysconfig/i18n 这个文件中记录了默认的环境设置, 利用gedit打开, 发现如下信息:
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
按照网上的说法, 将
LANG="zh_CN.GB18030"
LANGUAGE="en_US.UTF-8"
LC_CTYPE="zh_CN.GB18030"
LC_TIME="en_US.UTF-8"
这几句添加后, 再从新启动, 就可以正常使用Ctrl+Space激活中文输入法了. 但是发现在很多应用程序的对话框中, 界面资源都变成了中文, 而Firefox的菜单项字体也变得非常难??. 后来把
LANG=”zh_CN.GB18030″这句去掉后, 问题解决.
但在此种方案下, 仍有不尽如人意的地方, Terminal由于也需要支持中文, 所以字体变得非常难看. 也需更完美的方法是需要在英文环境中直接加载输入法, 而不是将区域置为中文.
在此要感谢小兴兴同学的建议, 他告诉我要添加LC_CTYPE=”zh_CN”这一句, 经过实际测试发现不可行, 我猜测是因为zh_CN下也有不同的编码方式, 有GB2312, GB18030 还有UTF-8 (Unicode), 所以应该需要指定一种. 关于这几种编码方式的区别和??, 转载一篇 (来自 http://www.eygle.com/digest/2007/01/zhs16gbk_char.html):
(查看全文)
针对动态网站数据库查询优化的软件memcached
coolbean | 30 七月, 2007 02:00
在Computer News上看到一篇文章,Digg.com的应用也全部是基于LAMP构建的,同时也采用了一些优化工具,按图索骥找到 memcached,是 Danga Interactive 公司开发的一个数据库负载平衡软件,其工作原理是:
首先,在不同的机器上运行 memcached 软件(作为Daemon)。运行的过程很简单,只需要一行命令:
# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211
-d 表示以Daemon方式运行,-m 2048 表示使用2GB的内存,-l 10.0.0.40 表示监听IP 10.0.0.40,而-p 11211 表示监听的端口。
其次,在应用程序中进行配置,在进行任何的数据库查询之前,先检查memcached。如果memcached没有返回任何对象,再连接到数据库,获取需要的数据,然后把它交给memcached缓存起来。
下面是一个基于Perl的示例:
sub get_foo_object {
my $foo_id = int(shift);
my $obj = $::MemCache->get("foo:$foo_id");
return $obj if $obj;
$obj = $::db->selectrow_hashref("SELECT .... FROM foo f, bar b ".
"WHERE ... AND f.fooid=$foo_id");
$::MemCache->set("foo:$foo_id", $obj);
return $obj;
}如果访问数据库的代码写的很精炼,那么不需要添加很多类似上述的代码,只需要把一些极大增加数据库负载的查询运行一下就可以了。
然后系统会把这些查询的结果作为索引保存,以后只要告诉 memcached要查询的内容,它就会返回给你相应的值,由于有多个服务器的 memcached Daemon 支持,可以做到负载平衡。如果一台机器Down了,memcached还会把它的工作自动转移到其它服务器上。
更多的信息,可以参考 memcached 的官方文档。先保存下来,以后偶在慢慢研究:
http://danga.com/memcached/
Google 使用 MySQL 数据库
coolbean | 30 七月, 2007 01:49
在 Donews 上看到一则新闻,Google在周二发布了基于GPL协议下的一些 针对 MySQL 的优化工具,以增强 MySQL的性能。原来 Google 的很多应用都是构建在MySQL之上的,这让我对MySQL的信念更加坚定了。
来到 Google 的 google-mysql-tools 首页,看到Google提供了三个工具,分别是:
- mypgrep.py - 一个类似pgrep的工具,用来管理MySQL连接;
- compact_innodb.py - 一个用来压缩innodb数据库文件的工具,它依靠转储和重新加载数据表的原理进行压缩;
- patches - 针对MySQL 4.0.26 的补丁,增加了很多新的功能。
又找到了一个页面 http://xooglers.blogspot.com/2005/12/lets-get-real-database.html ,应该是一位前Google员工所写的文章,文章讲述了Google的AdWords服务的数据库服务器更换的过程。在2000年左右,AdWords构建在MySQL之上,虽然那个时候的MySQL还缺少了一些功能,但是运行的性能是令人满意的,缺点就是为了弥补MySQL缺少的功能,Google不得不编写很多额外的代码。后来,AdWords小组的Manager提议更换一个商业的数据库,后来也确实这么做了(原作者没有透露该商业数据库的名称,不过我觉得不是Oracle就是DB2),并且耗费了大量的人力和时间,重写AdWords的大部分数据库操作的代码,并进行了大量的数据库优化,可最后发现效率还没有原来的MySQL高。。这使得AdWords不得不在相当的一段时间内在两个不同的数据库系统上运行。最后,MySQL推出了新的版本,AdWords又重回了MySQL的怀抱。
作者最后总结到,那些使用了商业数据库的企业,很多都是在浪费资金。(原话说得更搞笑:As far as I’m concerned they might as well be flushing that money down the toilet. )
国内的IT产业发展总是要比国外慢半拍,目前国内的企业很少听说有使用开源软件的。不过随着开源软件的成熟和推广,国内企业观念的转变,我相信开源软件一定会在中国市场占领半壁江山。这也就意味着自己现在选择的方向至少不会错。:)
libstdc++ on CentOS 4.5
coolbean | 30 七月, 2007 01:29
CentOS所带的shared libraries是6的版本(libstdc++.so.6), 所以需要再安装libstdc++.so.5. 网上推荐的做法是利用yum 直接执行 yum install libstdc++.so.5, 在网上查到libstdc++.so.5 的完整安装文件是compat-libstdc++-33-3.2.3-47.3.i386.rpm, 可以在http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/compat-libstdc+ +-33-3.2.3-47.3.i386.rpm进行下载.
选择合适的 Linux 发行版本
coolbean | 30 七月, 2007 01:20
Linux的发行版本大概可以分为两类,一类是由商业公司发行并维护的版本,代表是著名的RedHat系列;一类则是由开源社区组织发行并由志愿者维护的版本,代表是Debian系列。下面分别介绍比较主流的几个版本:
- RedHat Enterprise Linux:RedHat公司(http://www.redhat.com/)发布的商业版本,也就是所谓的Redhat Advance Server,用户注册后可以享受30天的免费支持服务,而过了30天则需要付费。(当然也存在一些绕过的方法)。RHEL为了服务器应用而优化,系统稳定,包的分发采用编译好的二进制rpm文件进行,利用yum对rpm包进行管理。RedHat系列的版本可以说是国内使用最多的版本,资源极其丰富,绝大多数教材都是以RedHat作为示例,很适合初学者使用。
- Fedora Core:由原来的RedHat Linux桌面版本改变而来,是免费产品。稳定性较RHEL差,同RHEL采用相同的包分发和管理方式。优点类似RHEL,资源较为丰富。
- CentOS:全称是Community Enterprise OS(http://www.centos.org/),由CentOS社区维护并发行的版本,该版本是在RHEL源代码的基础上,经过优化和BUG Fix重新编译而来,号称能够100%兼容RHEL运行的软件,而且最重要的是完全免费。经过用户的测试,它同样稳定可靠,适合用来构建服务器。同时由于是RHEL的克隆版本,RHEL的各种资源都可以享用,现在已经越来越多地为人们所接受。
- SUSE Linux:为Novell公司维护并发行的商业版本(http://www.novell.com/linux/),目前最高版本是10。分为Professional和Enterprise Server版本,也集成了一些很有用的软件,如Realplayer,GIMP,Eclipse开发平台等。新的版本中采用了类似MacOS的桌面,同时还提供了虚拟三维的操作方式,增强了用户的操作体验。
- Debian:Debian系列(http://www.debian.org/)是社区维护Linux版本的典范,是迄今为止最遵循GNU规范的Linux系统。它采用 apt -get 的方式对包进行管理,而社区维护着大量软件的Linux版本供用户下载免费使用。
- Ubuntu:社区网站(http://www.ubuntu.com/)严格意义上Ubuntu并不是一个独立的发行版本,???谀ebian改进而来,是一个将自由软件概念宣扬到极致的Linux版本。它由于附带了众多的常用软件,并且集成了GUI(用户可以选择Gnome、KDE或者Xfc,KDE版本被称作Kubuntu,Xfc版本被称作Xubuntu),在加上系统优化,非常适合桌面用户来使用。
- Gentoo:Gentoo(http://www.gentoo.org/)是Linux发行版本中最年轻的一个,同时也是最有特点的一个。它将很多原来由厂商做好的工作开放给用户完成,例如安装时需要自己挂接硬盘等,此外还因为它引入了类似FreeBSD的Portage包?芾矸绞剑蛓um以及apt的方式不同,Portage采用源代码的方式分发,用户需要在本机重新编译,对于软件的安装比较缓慢,但是由于在编译的过程中可以利用参数进行优化,所以安装完成后的效率却很高。所以Gentoo号称在同样的环境下运行速度最快的版本。
- 此外,还有一些国内的Linux版本,例如红旗,TurboLinux 等,这里就不一一介绍了。
根据各个Linux发行版本的特点,再根据实际的用途和需要,就不难做出选择:
- 如果你需要一个简单易用的桌面系统,那么Ubuntu系列是你的选择;
- 如果你需要稳定的服务器系统,并且有财力的支持,那么RHEL可以让你省下一些时间
- 如果你需要稳定的服务器系统,同时尽可能降低成本,那么CentOS更适合你;
- 如果你已经接触Linux一段时间,并且想更进一步的学习,那么Gentoo能够达到你的要求。
有了Joost还需要Tivo吗?
coolbean | 28 七月, 2007 18:58
拿到 Joost 的邀請函後,迫不及待的就裝上,不到 5 分鐘馬上感受到 Joost 的魔力。Joost 是個用 P2P 技術所提供的網路電視,但是不僅於此,他還提供了一個完整的社群功能,讓你可以在 Joost 上面聊天或是分享,如果 Joost 加上 YouTube 這還真是魅力無窮。
首先 Joost 的流暢度,可能是用 P2P 技術的關係,實在沒話說,幾乎沒有Lag。而畫面又異常清晰,比 YouTube 上的畫質真是超過許多。

(查看全文)
Linux中流媒体Helix Server的安装和配置
coolbean | 28 七月, 2007 18:38
1、下载
Helix.server(也就是REAL服务器)的开源版本,RM媒体流服务器,没有任何限制的版本。支持RTSP协议,支持RM,MP3等格式,即便是商业用,也能应付的来。
2、安装
解压缩:#tar -zxvf Helix_DNA_Server_10.1.tar.gz
当前路径下得到目录Helix_DNA_Server_10.1
#cd Helix_DNA_Server_10.1
有两个文件,执行安装命令如下:
#./servinst_plus_linux-2.2-libc6-i586-server.bin
以下是安装过程详解:
Directory:[这里系统会给出一个默认的安装路径,即当前目录]:你可以在这里输入指定的安装路径。或回车使用默认路径;
Username[]:输入管理员登陆名称
Password: 管理员密码,回车再输入一次;
后面一些以port[系统默认端口]开头的(如port[7070],port[554]),你可以一路回车,使用默认端口。但需要注意的是:port[80],你最好将它改为8080或别的未使用的端口号,因为APACHE的默认端口为80,否则会与你的APACHE端口冲突。
port[80]回车后出现如port[29902]之类,这是你的管理员登陆服务器的端口号,一定要记住,后面要用到。
接下来是,给出你以上设定的参数列表:
....back to the previous prompts:[F]:在这里输入F确认以上参数设定,立即开始安装;输入P重新设定。
安装完成。
(查看全文)
Google的欧洲竞争者获得1.66亿美元投资
coolbean | 25 七月, 2007 15:26
"
欧盟委员会批准德国政府投资本国的搜索引擎计划–特修斯(
Theseus)。年初的时候我们也曾经讨论过
德国从法国的Quaero(这么多怪名)计划撤出的事情。看起来好像欧盟委员会不想把所有的蛋都装一篮里,投资向Theseus计划提供了1.2亿欧元的资金,大约是1.66亿美元(最近欧元猛涨~~)。"
道琼斯报道说:“此举是为了开发下一代搜索引擎技术,其中包括语意识别技术(semantic technologies),一种新的识别文章内容的技术。这种技术被认为是,至少是被现代internet的创始者Tim Berners-Lee认为是下一代internet的发展方向(他在2001年的一篇文章提到过)。理论上来说,当用户在一个用语意识别技术构建的网站上查询关于钓鱼的信息时,查询结果会自动过滤,最后用户会得到适应他个人需要的结果,而不是一大堆关于捕捞,钓鱼等等方方面面的结果(???)。此基金同时承认了星期四曾经说过要在欧洲发展一个Google的潜在竞争者的讲话。”
透视FAA新的基于GPS的空中交通控制系统
coolbean | 25 七月, 2007 15:22
据波音空客的说法,未来二十年中国要增加数千架飞机,一个庞大的市场,也是对航空控制的一个挑战。目前空中交通控制系统依旧是基于陈旧的雷达定位,这套系统已经无法满足日益增长的飞机数量的需求,面临“崩溃”。FAA(美国联邦航空局)正在阿拉斯加航班737上
测试基于GPS的新控制系统。雷达大约能在半分钟内完成定位,而称为ADS-B 的GPS定位技术能实时将飞机位置告诉航空控制员和飞行员。采用GPS控制系统好处不言而喻,飞机能沿着更直的路线飞行,乘客会发现延迟情况减少了,航空公司也会因此节省燃料。FAA计划在未来20年内逐布推广这套系统,预计将花费400亿美元。美国人还在争论钱出自何处。
Linux平台下的英文写作工具
coolbean | 25 七月, 2007 11:00
英语是我国的第二语言(ESL,English as Second language),很多人都比较畏惧英语写作。在Windows平台我们可以借助M$ Word和大名鼎鼎的金山词霸来检查拼写和语法错误。Linux平台则只有AbiWord 或Openoffice,但都并不完美。这里搜集了几个开源辅助工具来帮助大家提高英文写作和程序编写。
1.GNU Aspel:开源拼写检查工具,支持对源代码、脚本注解、TeX文件和html语言的拼写检查。
2.GNU diction:源自AT&T UNIX,是一个基于规则的检查程序。
3.GNU Style:包含在GNU diction软件包中,能根据一些众所周知的指标评价文章的可读性,是提高英文写作能力的极好工具。
4.LanguageTool:基于Java的开源工具,支持包括英语在内的多种语言。" 最后一句话,学习英语没有捷径,多写多读多实践。
Mini轻量级Web服务器实现
coolbean | 25 七月, 2007 10:56
GCC 4.2.1发布
coolbean | 25 七月, 2007 10:55
著名的多平台编译器,最初由Richard Stallman创造的
GCC(the GNU Compiler Collection)发布了最新的4.2.1版,主要修复了一些bugs,这只是一次小更新,从某种意义上说并不是很重要,但它是最后一个采用GPL v2协议的版本,
未来的新版都将使用 GPL v3发布。这一决定表面上很平静,其实却存在一些不和谐的小插曲,几位重要的捐助者对许可证转移很不满,私底下讨论让GCC的一个分支——EGCS——仍旧使用GPL v2。FSF承认这是一次失败,
未来FSF/GNU又将如何处理GPL v3的反对者呢?
OLPC开始大规模生产
coolbean | 25 七月, 2007 10:53
100美元笔记本(OLPC)项目
正式进入了大规模生产阶段。硬件供应商已获得许可开始加速生产低成本笔记本所需组件。先前,按照计划方案,OLPC项目组织称需要300万订单才能维持生产。第一批电脑预计将会在2007年10月交到第三世界国家儿童手中。Walter Bender,One Laptop per Child (OLPC)项目软件开发主管,表示“仍然有部分软件在编写中,但对我们来说已经迈出了一大步。”第一个获得OLPC的国家还没有公布。
下一代Ubuntu长期支持版本是Ubuntu 8.04
coolbean | 25 七月, 2007 10:50
近期有两大开源会议召开。其一为7月22日到24日,第一次由Ubuntu社区官方召集的
Ubuntu Live大会;另一为
O'Reilly Open Source Convention(OSCON),时间是7月23-27日。在刚刚举行的Ubuntu Live 2007会议上,Mark Shuttleworth宣布了下一代Ubuntu LTS (长期支持)将是Ubuntu 8.04。Ubuntu将每两年发布一个LTS,第一个长期支持版本是Ubuntu 6.06 Dapper Drake,Ubuntu 8.04预计在2008年4月发布。你可以
在此收听与会成员的演讲。