分类: '流水帐' 的归档
启用新域名
我,是个怀旧的人,用过的东西都不怎么舍得扔掉,所以,换域名对我来说,是要做蛮久的思想工作的。
但是,由于众所周知的原因,用着祖国母亲的cn域名,总是让我觉得有种压迫感和不安。
这种不安在我的域名已经部分获得了GFW认证之后,达到了前所未有的程度。
于是,无奈之下,开始思考其他域名:虽然老域名还不致于被DNS污染之类的,但是我总得有个准备吧。
现在,我准备好了,一个全新的域名隆重登场了:luy.li,欢迎大家访问。
不过,由于我还是怀旧,原来的 li2z.cn 我也会继续使用,希望有一天,能有一个新的组织来管理天朝的cn后缀域名。
简单说说WP换域名的步骤,其实还是挺简单的,在网络提供商那里设置好域名指向以后,应该就可以用新域名访问主页了;
然后在后台的“设置”那里修改博客地址那项,各页面的用久链接就应该正确指向新的域名了;
但是数据库里,经常还会有写在内容里的内部链接,对于这种可以用命令行登录mysql用以下语句搞定:
|
1 2 3 |
update wp_posts set post_content = replace(post_content, 'href="http://li2z.cn', 'href="https://luy.li') where post_content like '%href="http://li2z.cn%'; UPDATE wp_posts SET post_content = REPLACE(post_content, 'src="https://li2z.cn', 'src="https://luy.li') WHERE post_content LIKE '%src="https://li2z.cn%'; update wp_comments set comment_author_url = REPLACE(comment_author_url, 'http://li2z.cn', 'https://luy.li') where comment_author_url like 'http://li2z.cn%'; |
执行完这个,就算是搞定了吧。剩下的就是社会工程学范畴的工作了,比如通知朋友修改你的友链地址等等。
当然,我不知道这样会不会影响页面PR或者搜索引擎收录之类的,不过我不是很关心这个,一是由于做为一个个人笔记性质的blog,这些没啥意义;二是由于原域名短期内还是可以访问的,应该也影响不大。
PS:推荐的RSS地址不变,还是:http://feeds.feedburner.com/bones7456
bones7456 version 2.0 released!
好消息~ 在经过长达10天的跳票以后,我们终于迎来了 bones7456 version 2.0。
鼓掌~~~ 撒花!*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。
以下是 screenshot 一枚:

其实这应该是昨天下午的消息,也就是距bones7456第一版本发布整整26年的日子(农历纪年),哈哈。
不过,由于最近上网的时间很不固定,所以现在才发文~~
田园生活
安静的午后,适中的阳光,搬个小凳子,边拿ipod上网,边照看家里养的鸡:

这里的 twitter api 倒了
感谢国家,感谢CCAV,感谢及.艾服.达不留的厚爱,本无名小站也受到了伟大的墙的关注,真是让我倍感荣幸,语无伦次了。
最早得知此事,是我今早收到Tualatrix的短信,说我的api不能用了,导致他不能在手机发推,我当时就想,不会是被墙了吧?没想到,后来的验证,真的证实了这一点。
这个twitter api是当时看到@yegle刚发布twip,我看这程序不错,就顺手搞了个,直到今天,li2z.cn/t 终于光荣地成为敏感词了~
在这期间,这个api已经累计提供服务12236009人次了,粗略地统计了一下,有10728个twitter账号(其实我也没想到会有这么多,虽然有一半是只出现了1~2次的),现在我不得不对这1w多个朋友说:咱们得换个地方了。
在此,也呼吁广大有国外空间的网友,是时候贡献一份力量了,架个twip,方便又简单,然后可以大范围或者小范围传播下,不要再让某某墙得意了。愿意公开地址的话,欢迎在本文后留言,好让大伙找到新的落脚点。
不过,似乎twitter官方本来就要在6月份停止HTTP Basic Auth支持了,到时候,即使有twip,也不能方便地在墙内上推了,那时到底会如何呢?我觉得解决问题的方法一定比问题多吧~
没事就和朋友下下棋,pidgin象棋插件偷跑版
gmchess是一款由阳光灿烂的lerosua写的linux下开源的中国象棋程序,使用gtkmm和C++完成。支持人机对战和人人对战。但是之前只能在同一台机子上进行人人对战,这显然很不方便。
于是牛逼的lerosua又给我们带来了gmchess的pidgin对战插件,功能不必多说,大家也能猜到,肯定是通过pidgin,和好友在线下象棋了~
下面来看两个截图:
这是装了插件以后的pidgin窗口,可以看到已经多了一个很“帅”的按钮了~

如果你和你的好友,都装了这个插件的话,你一点这个“帅”,对方一接受,就会出来gmchess的对战窗口了,gmchess的对战模式大致和人机对战一致,只是对方换成了有血有肉的人了,哈哈,如图:

如果感兴趣的话,在这里下载最新的代码,注意gmchess-0.29.0.tar.bz2和pidgin-gmchess-0.01.tar.gz都要下载安装哦。
由于这个目前是偷跑版,也可以理解成是alpha版,所以难免会有点小问题,遇到bug或疑似bug的话,大家尽情地报告bug去,哈哈。
再八卦一下,gmchess里的提示音很多都是人声哦,而且这些声音正是出自lerosua的老婆,还蛮好听的呢,哈哈。
本blog支持w3m
其实只是调整了一下blog的主题而已,和w3m关系不大,呵呵。
也许你会问,好像现在的主题和之前没啥区别啊,其实这就对了,这次的改动从视觉效果上看,确实是没有区别的。不同的是:原先是先载入右侧栏,再载入文章的内容的;现在改成先载入文章内容,再载入侧栏了而已。这样的好处,就是每次浏览的时候,可以为读者节省几个毫秒。
同时,做为一个附带的好处,就是用w3m/elinks这类CLI浏览器打开的时候,原先要翻好几屏才能看到正文的,现在正文直接在最上面了。所以,就有了这个标题。。。关于w3m,有兴趣的可以看看它的快捷键列表。
这次的修改,虽然不是很难,但对于我这个CSS菜鸟来说,已经不能独立完成了。所以修改的时候,多亏了牛B的前端工程师keke的鼎立相助,才得以完成,在此表示感谢。CSS的修改要点在这里。
由于没有多少艺术细胞,估计我会一直使用这个黑漆漆的主题了吧,呵呵。代码在这里。
通过Dbus控制pidgin
介绍两个通过Dbus控制pidgin的例子,为了方便,采用python实现。
第一个例子来自官方文档,代码如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/usr/bin/env python def my_func(account, sender, message, conversation, flags): print sender, "said:", message import dbus, gobject from dbus.mainloop.glib import DBusGMainLoop dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SessionBus() bus.add_signal_receiver(my_func, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="ReceivedImMsg") loop = gobject.MainLoop() loop.run() |
这个比较简单,就是监视收到消息的信号,一收到消息就调用 my_func 把发送者和消息体打印出来。
另一个是我自己写的,目的是放到crontab里,每天定时通过鸡脱壳给某人发送一句话,哈哈,代码如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/usr/bin/env python # -*- coding: utf-8 -*- import dbus, gobject bus = dbus.SessionBus() obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject") purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") for account in purple.PurpleAccountsGetAllActive(): if '我自己的GTalk' == purple.PurpleAccountGetUsername(account): conv = purple.PurpleConversationNew(1, account, '对方的GTalk') purple.PurpleConvImSend(purple.PurpleConvIm(conv), u"要发送的内容") |
大致就是:首先在pidgin的活动账户里面,找到自己的鸡脱壳的账户ID,然后调用 PurpleConversationNew 建立一个新的对话tab页,再在这个tab页里发送指定消息给某人。也是超简单。
其实pidgin提供的dbus接口非常丰富,丰富到什么程度呢?就是用dfeet打开那方法树的时候,都会觉得很卡,呵呵。看了下,几乎所有在界面能完成的操作都可以通过dbus接口来实现。所以,要折腾的话,还可以折腾出很多复杂的应用来的,比如做个bot什么的,唉,早知道当时就不去搞什么gloox了,直接挂个purple,用dbus就什么都搞定了嘛,还支持xmpp、msn、yahoo等N多协议,多好啊,呵呵~
========20100428 update========
呃,昨天说要把程序放到crontab里定时执行的来着,结果,今天时间到了,一看,却并没有执行成功,手工一执行,又立马成功了。于是就我就纳闷了,google一搜索,马上发现原因了,原来cron里启动的进程和shell里启动的进程,是不在一个dbus session里面的,也就是说 bus = dbus.SessionBus() 就会给报错。再深究其原因,是因为cron启动的进程里面没有 DBUS_SESSION_BUS_ADDRESS 这个环境变量,于是,参照这里的解决办法,X启动的时候,导出这变量到一个文件里,然后cron里启动进程前,source一下这个文件,终于大功告成了,哈哈。
blog加了评论回复邮件提醒
看见不少人的blog都有这个评论回复邮件通知,有的为了让评论者可以自己选择要不要收邮件,还会有个小框框可以勾,觉得这个还蛮有用的,比如有人在我blog里问了问题,就不用老来这里打开页面看有没有回复了。
于是,折腾了几个WP插件,发现要有那个可以自己选收不收的勾勾的话,就要装Comment Reply Notification这个插件,但是我装上以后,一开始却怎么都收不到邮件,后来有折腾了几个SMTP的插件,还是不行,于是把其他的删光了,还是留下Comment Reply Notification再试,这回居然收到一封邮件了。。。又试了几次之后,发现这个邮件貌似完全是随机的,有时候有,有时候无。也不知道是因为插件问题还是主机问题又或者是你我的RP问题,哈。
而且,如果我在blog后台,对评论进行回复的话,是没有邮件的。
不过也不想再折腾了,先这样用着吧,就当试运行一段时间。
SRT源用户须知
各位SRT源用户,大家好!
之前我用公司服务器架设的ubuntu源,可能会因为我将于近期离开SRT,并且失去对服务器的控制权而停止工作。
现在看来,可能的情形有以下几种:
1. 我离开公司,仍然有服务器的权限。这样最好了,我将继续维护服务器做源给大家使用。
2. 我离开公司,把服务器交接给其他同事。这样我也尽力说服接手人,不变最好。
3. 我离开公司以后,公司收回服务器另作它用。如果是这样,也就只能和各位说声抱歉了。
现在情况仍不明了,我也会继续尽力争取,呵呵。有消息再告诉大家。
wikimarkup 和 webkit
wikimarkup 是一个可以将 MediaWiki 格式的源码转换成 HTML 的python模块,它的特点是使用非常简单,功能比较全面。
基本上就是:
|
1 2 |
from wikimarkup import parse html = parse(wiki, showToc=False) |
这样就搞定了。
wikimarkup 可以在这里下载。
另外得到了html,如果要展示出来,还得需要一个“浏览器”,这时候可以用webkit的python绑定,也很简单,使用方法:
|
1 2 3 |
import webkit wv = webkit.WebView() wv.load_html_string(html, 'file:///') |
再把这个 wv 对象嵌到正常的gtk或者qt容器里就可以了。
另外,花花是webkit达人,有什么问题,可以去搔扰之,哈哈。