开始休假
Tuesday, January 24th, 20062006年01月24日,结束了一天的行程,送走了客人,收拾好了东西,最后写下这一篇,然后回家!
祝朋友们春节快乐,长命百岁!
我会在2月4日回来地!
2006年01月24日,结束了一天的行程,送走了客人,收拾好了东西,最后写下这一篇,然后回家!
祝朋友们春节快乐,长命百岁!
我会在2月4日回来地!
在DreamHost系统下, 通过Shell可以建立自己的crontab. 具体使用如下:
使用支持shell登录的终端(如fterm或putty), 地址栏输入username@qiran.org:22即可以SSH方式登录至服务器.
常用的crontab命令:
crontab -l 显示所有现存cron job.
crontab -r 删除当前cron jobs.
crontab -e 编辑当前 “crontab file”. DH推荐使用nano
注意你的crontab包含所有的cron jobs, 每个cron一行, 断行结尾. 一个正常的cron如下所示:
45 2 * * * /home/user/script.pl
第一个数字是每小时的第几分钟,
第二个数字是每天的第几小时,
第三个数字是每月的第几天,
第四个数字是每年的第几月,
第五个数字是每周的第几天.
使用方式例如:
32 * * * * : 表示每小时的第32分钟.
12,42 * * * * : 表示每小时的第12及第42分钟两次
*/15 */2 * * *: 表示0:00, 0:15, 0:30, 0:45, 2:00, 2:15, 2:30, …
43 18 * * 7: 表示每个周日的6:43pm运行命令行.
另外, 使用cronfiles.txt也可以建立自己的cronjob, 你只需要编辑cronfiles.txt,按每行一个cron job并以回车结尾的方式写下定时执行的任务, 例如存储到/home/www/cron/cronfiles.txt (注意用ASCII方式上传)
则在SSH只需要使用以下命令即可:
crontab /home/www/cron/cronfiles.txt
这样可以方便地管理自己的cron jobs了!
惊闻flickr在照片超过200张以后, 将看不到老照片, 虽然可以通过多申请几个free account来作弊, 但总是不爽, 想想DH的空间还有2008G, 所以用one-click install把Gallery Image Album (v2.0.2)安装在这个次级域名下(反正无数个次级域名, 空间用也用不完的):
http://gallery.qiran.org
安装了所有的模块(Captcha, Core, Debugging, Quotas, Rearrange, URL Rewrite, Dcraw, FFMPEG, GD, ImageMagick, NetPBM, Color Packs, Icons, Slideshow Applet, PhotoAccess, Shutterfly…不多列了), 连购物车模块cart也装了(玩嘛~), gallery还支持Nokia Image Upload, 支持Publish XP, 当然也少不了EXIF/IPTC, 还有, 支持多国语言, 连汉化都省了.
用用看吧, 现在似乎是我的电脑问题, 造成连接速度慢.
今天办理了第二代公民身份证.
照相
交钱¥25.00
第二天领照片和确认函
带着户口本页到所属派出所
签字
交¥20.00工本费
领回单
旧身份证不会回收, 在领新身份证的时候替换即可.
派出所的办事效率又提高了一些, 照相+办理, 纯时间加起来没超过5 min, 当然因为我去的时候前面没有人等候.
坏事情是: 领取新身份证要三个月以后, 孵鸡蛋啊!
[2006-04-05]最新消息:新身份证已经领到手,很PP啊,不过旧身份证被裁了一刀,留作记念了。
不断更新中……
最近更新日期: 2006-03-08 17:53
加入月历(MT3.2)
在“Main Index”模板的<div class=”module-search module”>一句之前,加入以下代码:
<div class=”module-calendar module”> <h2 class=”module-header”><$MTDate format=”%B %Y”$></h2> <div class=”module-content”> <table summary=”Monthly calendar with links to each day’s posts”><tr>
<th abbr=”星期日”>日</th>
<th abbr=”星期一”>一</th>
<th abbr=”星期二”>二</th>
<th abbr=”星期三”>三</th>
<th abbr=”星期四”>四</th>
<th abbr=”星期五”>五</th>
<th abbr=”星期六”>六</th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td>
<MTCalendarIfEntries>
<MTEntries lastn=”1″>
<a href=”<$MTEntryPermalink$>”><$MTCalendarDay$></a>
</MTEntries>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries>
<$MTCalendarDay$>
</MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
</table>
</div>
</div>
链接日归档索引, 首先你必须已经启用了日存档,在Settings -> Publishing Settings -> Publishing中,选中“Daily”。
然后,把那段代码中的
<a href=”<$MTEntryPermalink$>”><$MTCalendarDay$></a>
改成
<a href=”<$MTCalendarDate format=”%Y/%m/%d/”$>”><$MTCalendarDay$></a>
最后,更改stylesheet:
.module-calendar .module-content td
{
width: 16%; /*在此处将14%更为16%*/
text-align: center;
}
让整个月历看上去更漂亮。
注意,服务器计算月历的代价是相当高昂的,建议如果没什么用处,不要将月历显示出来。
详细月历效果请见http://weblog.qiran.org
显示文章类别:
<p class=”entry-footer”><span class=”post-footers”>Posted by <$MTEntryAuthorDisplayName$> at <$MTEntryDate format=”%X”$></span>
<span class=”separator”>|
</span> <a class=”permalink” href=”<$MTEntryPermalink$>”>Permalink</a>
<MTIfCommentsActive>|
<a href=”<$MTEntryPermalink$>#comments”>Comments (<$MTEntryCommentCount$>)</a></MTIfCommentsActive>
<MTIfPingsActive>|
<a href=”<$MTEntryPermalink$>#trackback”>TrackBacks (<$MTEntryTrackbackCount$>)</a></MTIfPingsActive>|
<MTEntryCategories glue=”,”>
<a href=”<$MTCategoryArchiveLink$>”><$MTCategoryLabel$></a></MTEntryCategories>
</p>
安装blogroll
1. 下载blogroll插件
2. 解压后上传,注意对应好/cgi-bin/mt/下的同名文件夹上传,即把blogroll的/plugins/文件夹里的内容上传到/cgi-bin/mt/plugins/下面,/php/文件夹里的内容上传到/cgi-bin/mt/php/下面。
3. 将mt-blogroll.cgi的CHMOD permission设为755。
上传后,在System Overview里的plugins下面可以看到MT Blogroll插件,接下来初始化数据库,在浏览器里输入
http://yourdomain/cgi-bin/mt/plugins/mt-blogroll.cgi
按照install/upgrade界面按步骤完成初始化数据库。
接下来,就是新建你的blogroll catagories和添加链接了!
Note: 如果出问题,可能需要清除你的浏览器cache. 另外建议使用Mozilla Firefox浏览器,其他浏览器似乎有些问题。
MT Blogroll: Template Tags
对于static或者dymanic方式重建的系统,以下tags可以在你的模板里采用:
MTBlogrollEntries
MTBlogrollEntryID
MTBlogrollEntryURI
MTBlogrollEntryName
MTBlogrollEntryBlogAuthor
MTBlogrollEntryDesc
MTBlogrollEntryIfRel
MTBlogrollEntryRel
MTBlogrollEntryPriority
MTBlogrollEntryDate
MTBlogrollEntryModifiedDate
MTBlogrollEntryCategory
MTBlogrollEntryCategories
MTBlogrollEntryTarget
MTBlogrollEntryUpdated
MTBlogrollEntryIfUpdated
MTBlogrollCategories
MTBlogrollCategoryLabel
MTBlogrollCategoryDesc
我使用的方案:
<div class=”module-categories module”>
<h2 class=”module-header”>Blogroll</h2>
<div class=”module-content”>
<MTBlogrollCategories>
<p><MTBlogrollCategoryLabel></p>
<MTBlogrollEntries>
<li><a href=”<MTBlogrollEntryURI>” <MTBlogrollEntryIfRel>rel=”<MTBlogrollEntryRel>”
</MTBlogrollEntryIfRel> target=”<MTBlogrollEntryTarget>” title=”<MTBlogrollEntryDesc>”><MTBlogrollEntryName></a><br />
</li>
</MTBlogrollEntries>
</MTBlogrollCategories>
</div>
</div>
catagories文章数量显示:
<MTIfArchiveTypeEnabled archive_type=”Category”> <h3>Categories Archives</h3> <ul class=”sidebarlinks”> <MTCategories><li>
<a href=”<$MTCategoryArchiveLink$>” title=”<$MTCategoryDescription$>”>
<$MTCategoryLabel$>(<$MTCategoryCount$>)</a>
</li></MTCategories>
</ul>
</MTIfArchiveTypeEnabled>
或者
<MTIfNonZero tag=”MTCategoryCount”><li class=”module-list-item”>
<a href=”<$MTCategoryArchiveLink$>” title=”<$MTCategoryDescription$>”><MTCategoryLabel></a>(<$MTArchiveCount$>)<MTElse>
<li class=”module-list-item”><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
显示comments:
<div class=”module-archives module”><h2 class=”module-header”>Recent Comments</h2>
<div class=”module-content”>
<ul class=”module-list”>
<MTComments lastn=”15″ sort_order=”descend”>
<MTCommentEntry><li class=”module-list-item”>
<a href=”<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTCommentEntryID$>”>
RE:<$MTEntryTitle$></a></MTCommentEntry>
<br/>
<$MTCommentAuthor$> at <$MTCommentDate format=”%m/%d”$> said:
<br />
<$MTCommentBody trim_to=”30″$>
</li></MTCommentEntry>
</MTComments>
</ul>
</div>
</div>
使用.htaccess
我的目录分布为:
/qiran.org/ 根目录
/weblog.qiran.org/ 次级域名,DH的特色,次级域名是独立的空间,可以真正分给朋友来使用。
/wiki.qiran.org/ 次级域名,同上
为了使http://www.qiran.org/weblog与http://weblog.qiran.org可以访问到同一个空间,因此使用了.htaccess的redirect功能:
Options -IndexesRedirect /weblog http://weblog.qiran.org/
Redirect /wiki http://wiki.qiran.org/
注:
第一行用于禁止显示文件清单,当前目录下没有默认的index文件时,文件清单将禁止显示!
第二/三行用于域名转向
建立google sitemap
在Template里面,新建名为sitemap的模板,输出文件sitemap.xml
该文件链接为/home/.ernie/christnan/qiran.org/sitemap.xml
内容如下:
<?xml version=”1.0″ encoding=”UTF-8″?><urlset xmlns=”http://www.google.com/schemas/sitemap/0.84″>
<url><loc><$MTBlogURL encode_xml=”1″$></loc>
<lastmod>2006-01-05</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<MTEntries lastn=”9999″>
<url><loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod></url>
</MTEntries>
</urlset>
重建该模板,在google上建立自己的帐号,添加链接让google找到sitemap.xml文件。
接下来按google要求的方式确认:即将googlea3e892f7c5eac9d1.html(内容为空,名字每个帐户不同)上传至根目录,点击google下的确认即可真正添加好自己的sitemap。
Related Entries插件
下载RelatedEntries.zip,将RelatedEntries.pl上传至/plugins文件夹,将其属性改为755
修改Individual Entry Archive里的以下内容:
<a id=”a<$MTEntryID pad=”1″$>”></a><div class=”entry” id=”entry-<$MTEntryID$>”>
<h3 class=”entry-header”><$MTEntryTitle$></h3>
<div class=”entry-content”>
<div class=”entry-body”>
<$MTEntryBody$>
</div><div id=”more” class=”entry-more”>
<$MTEntryMore$>
</div></div>
<p class=”entry-footer”>
<span class=”post-footers”>
By <$MTEntryAuthor$> on <$MTEntryDate$></span>
<span class=”separator”>|
</span> <a class=”permalink” href=”<$MTEntryPermalink$>”>Permalink</a>|
<MTEntryCategories glue=”,”>
<a href=”<$MTCategoryArchiveLink$>”><$MTCategoryLabel$></a></MTEntryCategories>
</p>
<br/>
<p>Related Entries|相关文章: <br />
<MTRelatedEntries field=”keywords”>
<MTEntries lastn=”6″>
<li><a href=”<MTEntryLink>”><MTEntryTitle></a> -
<i><$MTEntryDate format=”%b %d, %Y”$></i></li>
</MTEntries>
</MTRelatedEntries>
</p>
</div>
另外,Customize编辑文章时的显示模式,将keywords显示出来,这样Related Entries可以依据keywords将相关文章显示在当前文章下面。
建立所有文章列表
在TEMPLATES的index下,添加以下模板:
Template Name: ALL Entries
Output File: entries.html
Template Body:
<已删除>, 所有文章列表可以链接到http://yourweblogdomain/archives.html
你可以通过修过archives模板来添加每篇文章更具体的信息,而不必像原模板一样光溜溜的。
MT没有首页翻页功能,加上所有文章的链接,以便于快速查找。
Flickr与MT整合:
MT3.15之前,Flickr与Movable Type可以直接匹配,
但升级到MT3.2以后,由于MT增设了API密码,使得Flickr无法直接访问API,因此你需要做以下改动:
在Author Profile里面最后一行,
API Password:
For use with XML-RPC and Atom-enabled clients
设定好你的API密码(这样别人就需要通过密码来调用你的XML-RPC和ATOM了)
在flickr下,Set up a new blog,
类型为movable type blog
URL路径为http://yourdomin/cgi-bin/mt/mt-xmlrpc.cgi
用户名:<你的用户名>
密码:<你的API密码,注意MT3.2下不再是你的登录密码>
OK
接下来,在Flickr界面下自定义你的显示模板:
我的最终layout代码为:
<div style=”float: right; margin-bottom: 0px;”>
<a href=”{photo_url}” title=”photo sharing”><img src=”{photo_src_m}” alt=”" style=”border: solid 2px #000000;” /></a>
<br />
<span style=”font-size: 12px; font-family: Verdana, Arial, sans-serif; color: #666666; line-height: 130%;”>
<a href=”{photo_url}”>{photo_title}</a>
<br />
Originally uploaded by <a href=”{uploader_profile}”>{uploader_name}</a>.
</span>
</div>
<span style=”font-size: 12px; font-family: Verdana, Arial, sans-serif; color: #666666; line-height: 140%;”><br />
{description}
</span>
<br clear=”all” />
这样你就可以方便地通过点击”blog it”把你的照片发布了。
缺陷仍有,通过这种方式blog上去的照片没有默认的catagory,你要自己手动到MT管理界面下手动设定类别才行。
Lilina
使用lilina进行新闻聚合,制造自己的门户。
事实上,使用lilina并非是真的想制造门户,只是为了自己阅读方便,而不必打了那一大堆的窗口(70%以上往往是打开所有朋友的blog后发现没有任何更新)。
安装方法如下:
下载lilina,解压缩后更改conf.php
$BASEURL = ‘http://www.qiran.org’ ; // no trailling slash!
$USERNAME = ‘username’ ; //更改成你的用户名
$PASSWORD = ‘password’ ; //更改成你自己的密码
$SITETITLE = “QiRan.ORG” ;
$OWNERNAME = “Qi Ran” ;
$OWNEREMAIL = “Christnan@gmail.com” ;
保存后,将所有文件上传到根目录,安装方式见http://lilina.sourceforge.net/
注意将要求的目录CHMOD设定为777
访问http://yourlilinaURL/index.php
可以直接看到聚合内容了。
如果要更改自己要订阅的更新,可以通过以下方式修改订阅清单:
http://yourlilinaURL/edit.php
使用conf.php中设定的username和password,进入编辑模式,删除你不要的站点,添加上你想要的。
通过修改style.css和index.php里的相关内容,个性化你的门户。
在index.php中:
$TIMERANGE = ( $_REQUEST['hours'] ? $_REQUEST['hours']*3600 : 3600*72 ) ;
这里可以修改你的默认显示N天文章(3600*72是显示三天的)
define(’MAGPIE_CACHE_AGE’,60*60*3) ;
这里显示cache时间。”Lilina的缓存机制是每次请求的时候遍历缓存目录下的RSS文件,如果缓存文件过期,再动态向RSS数据源进行请求。” (from Chedong)
修改抓取时间(默认为服务器时间,因此要修改服务器与中国时差,我的服务器在-8区,时差达16小时),找到并修改成以下代码:
if ($x['date_timestamp'] == ”)
$x['date_timestamp'] = create_time($x['title'] . $x['link']);
else
$x['date_timestamp'] += $TIMEZONE_OFFSET * 60 * 60;
$items[] = $x ;
当然,如果RSS本身的时间就是错误的,抓取到的网页时间计算过来后也是错误的了,用WP的注意了。
每次load .php程序的时候, 后台先会判断cache是否过期(如上所述为3小时, 我的好友们不怎么常更新, 3个小时足够了), 再重新去取xml或直接将cache取到网页上显示出来. 这样一来, 首页的显示速度成了大问题.
参考了车东的经验后, 我将lilina放在了次级目录下, 把index.php与css重新排布适应自己的习惯, 再使用”wget -O”定时将lilina生成的动态页面取回存诸到根目录的index.html, 这样, 打开http://www.qiran.org/时便相当于打开了一个静态页面,速度立刻快了几倍.
wget -O /path_to_root/index.html http://www.qiran.org/lilina/lilina.php
随后,设定cron job:
1 * * * * (wget -O /path_to_root/index.html http://www.qiran.org/lilina/lilina.php)
使得每小时系统会自动去更新一次index.html
另外,之所以使用/lilina/lilina.php是因为CSS及图片等引用路径的原因, 其内容只需要将index.php复制过来稍作修改即可.
现在,终于明白那个“RSS”图标是做啥用的了吧?我现在订阅了比较关注的朋友们的网页,不用一个一个打开他们的网页也知道他们有没有更新过自己的blog了。
一个字可以概括全部:慢。
查询了一下,很大一部分人反应和我一样,就是觉得太慢,出口带宽的原因,其他功能都不错,很全面!
十分喜欢无限制MySQL数据库(这样可以让MT和CooCooWakka同时使用MySQL),以及真正意义上的无限次级域名(可以多人共享一个空间),真是爽得不得了。另外,划了800M给邮件空间@qiran.org,再也不用四处找稳定的email注册了,支持https/http两种登录方式,支持IMAP/POP3/SMTP,没话说了!
域名是免费的,且可以导入无限多在其他注册商那里注册的域名,我甚至可以把zhangbee.com导入DH来使用,也是免费的。
有空要学一学Shell的使用,FTP上传速度视文件情况而论,如果用.tar压缩文件上传,1M的文件一分钟应该搞定了,但如果分开来……几千个小小的文件,能让你传一个晚上。使用shell的话,可以用.tar传上去,再解压缩,连网易的网盘都支持的功能哦!
感觉DH自己的panel不是太好用,速度很慢(所有的问题都和“慢”有关!),但service比较不错,很及时(周末除外)。
没时间写太多,有空写一个评测报告上来。
[update]2006-01-05
刚刚看到, DH又新增了三个更新:
1. Custom DNS is available for all customers!
原来的DNS设置是默认的,现在允许用户自定义了!
Posted: Jan 4th, 2006 - 03:11:52 PM PST (3 hours 46 mins ago)
2. Secure SMTP support!
3. Quadruple Disk and Octuple Bandwidth!
空间容量x4, 带宽x8!!!太吐血了,我现在的空间已经显示是20G了!
Total Provided: 20000.000 MB ($0.10 / MB over)
带宽:
Total Provided: 1000 GB ($1/GB over)
架一个高级论坛都没问题了,不用担心流量.
用客服的一句话说:”That’s really a LOT of disk and bandwidth.”没错!
2006新年钟声敲响的时候,我正坐在电脑前手里拿着笔拓朴电路图,电视开着,新闻频道在轮换各地欢庆的场面,小B也打电话过来祝我新年快乐,北京的表弟发短信追问我什么时候带未来的嫂子回家,杭州的蒋晔仍旧在感怀为什么找不到男朋友。
在2005年的最后一天,突然又找到一种动力,在疲惫了一段时间以后,又重新找回了感觉。有人说我要学会总结,经过一年的忙忙碌碌,在年终的时候,适时地坐下来想想这一年所作所为:进步了多少,有什么遗憾,再调整一下短期和长期的目标。
事业:
2005年初的三个月在德国度过,在那个寒冷的城市,纷飞的鹅毛大雪,凌里六点二十分的巴士和火车,牛角面包、香肠和带着白白泡沫的卡布琪诺,眼睛里的德国风情,鼻子里的德国味道,耳朵里的德国音乐,还有每天八小时的站立劳动培训,和同事从怀疑、试探接触直到成为好友,每天都是挑战。
五一假期之后是痛苦的GzL3项目过程,部门的协调、政策的变化、领导的变迁带来的影响,商务、物流、质量、生产场地和人员安排、内部培训、试验,以及对外协调沟通,无一不要付出努力和心血。七月初开始首件生产,九月初通过首件认证,十月初面对机械部件货期及质量压力,十一月/十二月开始面对客户,除了生产工艺以外,任何一件事,没有经验可以借鉴,完全要靠自己完成。
从八月份到十月底,Metro Tehran项目也招致无数麻烦,疲于应付。
一年中负责了两个项目,虽然基本算是成功了,完成或已步入正轨,但似乎并没有什么特别的成绩可言。一方面没有将手里的工作正确地分配地相应的下属,完全自己扛下所有的事情并不是最好的管理项目方式;另一方面,没有在管理项目的同时好好学习技术。有位前辈指点我说:做项目管理,不能只对当前一个项目很熟悉,还要了解同行业其他厂家产品的特性,还要了解地铁或轻轨的整车系统,应该把自己放在更高的空间去考虑问题。
2005年中,99%的压力都来自事业,前期是初生牛犊无知无畏地往前冲,最终却要面对某位领导的压制,到底该如何走下去,这一度让我烦恼不已:另辟一片事业,还是在现在的位置上期待新的突破?没有现成的答案,只能静下心来好好想,5年后,自己到底应该变成什么样子。
爱情
年中的危机,让我彻底清除了杂念,明白真诚有多重要。负责任的说法和做法,对男人来说才是爱情(包括友情)最高的荣耀。
2005年的爱情历经风雨,开始开花。见过了小B的父母后,让我心里更觉得踏实。小B变得更加体贴,脾气温顺了许多,也懂得了很多忍让,只是我还不太够细心去体贴她。
生活
五一假期回家看望父母,一年多未见,又见苍老,七月份资助父母搬近了小区里的新家,离开那个生活了几十年的村落。妹妹开始读初二,学业尚好。
小B的生活开始转变,七月和圣诞陪她去了两次香港,对护肤品,对衣妆,对发型的品味都开始逐渐升高,两个人开始理财,为将来投资。
七月份,小B促成了Jerry和Cicely一对,三人行变成了2×2人行。
我8月份陪客人玩了张家界,小B不能成行,很遗憾。
十月份,玩了锦绣中华和民俗文化村。同月,杨琳小猪来到通业。
十二月3日到7日,被困在台山的上川岛6天,唯一一次出游报废。
原来,这一年也如此精采。