Google App Engine(以下简称GAE)服务推出来有段时间了,最近google刚刚完全开放了GAE的注册,并且公布了GAE未来的价格(原文在这里,被盾,需要带套访问)。
GAE是google提供的一个在线应用平台,提供从数据库到应用服务器的一整套东西,每个GAE应用可以免费使用500M存储空间和满足5百万pv/月的CPU跟资源。
Google出的东西都很赞,GAE也是这样。它提供了一个成型的python应用框架,外加GFS强大的存储支持,在上面可很方便的建立自己的web应用。但是,青蛙注册账号以后,一直没有在上面做什么。原因?很简单,G。F。W!在G。F。W的阴影下,GAE服务很有可能就被干掉了。特别是存在这种服务的情况下。
不过,鉴于现在有稳定的免费vpn支持,青蛙决定重新启动blog DIY计划,就在GAE平台上!
各位,bless me吧。

不经意之间,google的全球网站全部都悄悄的更换了favicon,从一个大大的G换成了一个cute g。今天早上青蛙发现这个变化的时候,第一反应就是:google一定是为儿童节更换的图标。
但是过了几分钟,才想起来,“六一”只是中国宝宝的节日啊,难不成全球的google站点都在为中国宝宝们庆祝节日?
update 2008-06-01:原来“六一”是全世界宝宝的节日啊。
我承认,我没有小学毕业证,大家鄙视我吧。 -____-

话说Mozilla的Add-on站点最近更新了, 这次更新最显著的特色就是有了完整的中文版页面, 这对广大中国用户来说真是一个好消息.
其他的方面还有可以在线检测扩展对应的firefox版本了, 如果正在使用的浏览器跟扩展不兼任, 那么这个扩展的安装按钮会变成灰色, 也就是说连下载的机会也不会给. 这个修改对青蛙来说实在是太痛苦了, 很多插件在firefox3上没法安装, 看来只能望扩展兴叹了.

自从青蛙人品爆发,在pidgin上面死活登录不上QQ以后,青蛙都是在wine上面跑QQ.在wine上面速度慢不说,QQ时不时的来一下非法操作就把青蛙折磨的死去活来。
据说最近eva又升级了,于是青蛙决定换用eva。
Debian的apt里面是没有eva的。青蛙上网搜了一圈,也没有发现eva的升级包,连它的主页上也都还是很久很久以前的版本(大概eva已经转入地下了)。青蛙最后在ubuntu的源里面终于翻倒了eva的deb包了。
eva在ubuntu源的universe里面,随便找一个ubuntu的镜像(青蛙用的是中科大的源),在/pool/universe/e/eva目录里找到eva_0.4.9+svn20080215-0ubuntu1_i386.deb,下载回来备用。
在正式安装eva之前,青蛙还要搞定它的依赖性问题。
ubuntu里面的eva是依赖于kdelibs4c2a这个包的。但是debian里面的kdelibs4c2a存在一个依赖性的bug:
它依赖于包libopenexr2ldbl,但是这个包在debian的i386源里面竟然没有。
于是青蛙再从ubuntu源里把libopenexr2ldbl给抓回来,dpkg -i安装之,然后执行#aptitude install kdelibs4c2a,安装一系列的依赖包。
顺便说一句,debian跟ubuntu这两个兄弟有时候还真不错,互相谁也不挑谁的,deb包拿过来一般都能直接用。
最后,执行#dpkg -i eva_0.4.9+svn20080215-0ubuntu1_i386.deb,eva安装成功。聊天去也~



上面的图片就是号称世界上最小的linux:picotux 100(右侧为picotux 112)。
这个小东西只有35mm×19mm×19mm大小,只比一个RJ45接口大了那么一点点。
它使用32-bit ARM 7 Netsilicon NS7520处理器,主频55MHz,
搭载2M~4M Flash和8M SDRAM,带有一个10/100M网卡,一个可以达到230.400 bps的串口,还有5个I/O针脚。
使用3.3V电压供电。
软件方面,它使用uClinux 2.4.27系统,系统大小最少720KB。Shell可以使用Busybox,使用CRAMFS、JFFS2文件系统, 还可以使用NFS,
有Webserver、Telnet等等程序。开发工具使用GUN Toolchain,使用GCC3.4.4以上版本和ulibc0.9.26以上版本。
这东东售价最低99欧元。
bugzilla是mozilla一个很好的开源bug管理软件,青蛙准备在glinux的开发过程中用它来管理发现的bug。
但是dreamhost上没有bugzilla的自动安装功能,青蛙按照dreamhost的wiki上面介绍的方法安装时,
又有很多perl模块没有,而且在dreamhost的主机上也没有权限安装这些perl模块。所以,青蛙决定先在主机上自己搞一个perl。
perl的安装方法很简单,dreamhost的wiki也有介绍。
青蛙选择的是perl5.8.8,因为wiki上头说有一个针对dreamhost环境的补丁要打
(补丁文件在这里下载)。
打上补丁以后,执行:
sh Configure -Dusethreads -Duselargefiles -Dccflags=-DDEBIAN \
-Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=~/apps \
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio \
-Uusenm -Duseshrplib -Dvendorlib=/usr/share/perl5 \
-Dvendorarch=/usr/lib/perl5 -Dvendorprefix=/usr -Uinstallusrbinperl -des
其中Dprefix参数要设置为要安装perl的目录。
config完毕就可以make \&\& make install了。
下面正式开始安装bugzilla,(青蛙的perl在~/apps/bin目录下,这个目录要换成你自己实际的目录哦),首先进入bugzilla的目录,执行:
~/apps/bin/perl chechsetup.pl
这个脚本会检查当前的perl环境,如果有缺少的模块,它会给出安装命令。
例如,在青蛙的主机上,Email::Send、Email::MIME::Modifier就被提示安装。
按照这个脚本给出的命令把必须的模块安装上,然后再次执行上面的命令,会在bugzilla目录下生成一个localconfig文件。
修改这个localconfig文件:
$webservergroup = “apache”中的apache改为自己真实的组名称,这个组名字可以用groups命令查到。
$dbhost = “localhost” 修改为真实的mysql服务器地址。
$dbname = “bugs” 修改为真实的数据库名。
$dbuser = “bugs” 修改为真实的用户名。
$dbpass = ” 修改为真实的密码。
上面几项都改完后,重新执行checksetup.pl脚本。这时脚本会询问管理员邮箱地址,设置管理员密码等等动作。
因为dreamhost使用suexec方式运行的cgi脚本,所以每次执行完checksetup.pl以后,都要执行以下命令:
for i in docs graphs images js skins; do find $i -type d -exec chmod o+rx {} \; ; done
for i in jpg gif css js png html rdf xul; do find . -name *.$i -exec chmod o+r {} \; ; done
find . -name .htaccess -exec chmod o+r {} \;
chmod o+x . data data/webdot
完成这些后,bugzilla就算是安装成功啦。可以先用浏览器访问下bugzilla的地址看看效果。
接下来说一下汉化的问题,汉化包可以在这里下载到,下载、解压以后,把cn文件夹复制到bugzilla目录里的template/目录就行啦。
bugzilla, Dreamhost, Linux
Markdown是John Gruber设计的一个文本标记系统,相比html,它很简单,便于手工编写,而且它还支持Wordpress,有一个用于wordpress的插件。青蛙决定用vim+Markdown来编写blog,看起来他们是一对强大的组合
首先要去Vim的官方网站下载Markdown的语法高亮插件,并把它复制到”~/.vim/syntax/”目录下面。然后,新建一个”~/.vim/ftdetect/mkd.vim”文件,在其中加入下面的内容:
” markdown filetype file
if exists(”did_load_filetypes”)
finish
endif
augroup markdown
au! BufRead,BufNewFile *.mkd setfiletype mkd
augroup END
并在”~/.vimrc”文件中添加如下内容:
“Markdown language syntax settings
augroup mkd
autocmd BufRead *.mkd set ai formatoptions=tcroqn2 comments=n:>
augroup END
然后,后缀名为”.mkd”的文件就能被自动启用Markdown的语法高亮了。
下面是Markdown语法的简要列表,便于以后查阅。以下内容主要从牧码志整理,感谢leninlee的辛勤劳动。
- 链接的添加,共有三种形式,Markdown支持相对链接。
<链接> :这种形式只是简单的标出链接;
[文字](链接 “标题”):给文字添加链接,其中标题是可选的;
[文字][标记]:给文字添加链接,链接在下面的一个以[标记]开头的新行(一般是文章末尾)给出。或者直接以[文字][]这种形式编写,在下面的新行中使用[文字]:链接的形式声明链接。
- 图片的添加:跟链接比起来,图片只是多了在前面多了一个叹号”!”。
- 标题格式:Markdown提供了2种方式。
第一种是在标题前面加上1~6个”#”表示”<h1>”~”<h6>”。
第二种是在标题下面另起一行,输入四个以上的等号“=”来表示”<h1>”,输入四个以上的减号“-”来表示”<h2>”。
- 粗体和斜体:用星号”*”或者下划线”_”
一个表示斜体;
两个表示粗体;
三个表示粗斜体。
- 引用内容:就是html标记的”<blockquote>”,只要在行首用右尖括号>就行了。如果要嵌套引用,那就多打几个>。
- 原文输出:如果不想Markdown解释某些内容,有两种方式:
第一个是转义为html的”<pre>”标签:要在要原样输出的内容前面加入至少4个空格或者1个tab的宽度;
第二个是转义为”<code>”标签:给要输出的内容加上”`”号(就是esc下头那个键)。
- 无序列表:在文字前面使用星号”*”、加号”+”、减号”-”中的任意一个,注意在这些符号后面要留一个空格。
- 有序列表:在第一条前添加一个数字,后跟一个英文句点”.”。无论第一个条目前加的数字是什么,列表都会从1开始计数。
- 转义符:”\”。只要给不希望被转义的字符前面加上\就可以了。
- HTML实体:如果要在内容中输出”<”或者”&”符号,那么必须用[HTML实体][]代替。Markdown会把HTML的特殊符号直接翻译为HTML实体。
- 换行符:Markdown中在一行的末尾使用两个以上的空格标示HTML中的一个换行符”<br/>”。
- 段落:只要两行之间有一个空行,Markdown就会把它识别为一个段落。
(青蛙在写这篇文章的时候发现,在列表之前一定要加入一个空行,要不然Markdown是不会把”*”识别为列表的。)
- 水平线:使用三个以上的”*”或”-”来表示。这些星号跟减号之间可以用空格,如果减号没有空格,
那它必须在单独的一个段落里,要不它会被识别为标题的。
- 直接使用HTML标记:有些Markdown不支持的标签可以直接写HTML标记,例如表格。
update,2008-03-20: 青蛙发现直接向wordpress写Markdown格式效果真的很差,而且不方便编辑,所以青蛙决定还是在本地把Markdown文档转化为HTML格式再发布到blog上好了。
Markdown, syntax