Archive for the 'Blog Related' Category

Media Temple Hacked

Posted on 2009-11-27 in Blog RelatedComments

MT 居然采用明文方式存储用户 FTP/SSH 密码,于是杯具发生了 —— 貌似一台 GS 服务器被黑了,结果可想而知,我就在那 10% 的用户之列。博客页面 footer 被黑客挂了类似的代码:

<!-- [ea1bce76cc34b90bf0e3eb07e662b430 --><!-- 9190819521 --><noscript><ul><li><a href="http://rg8rhg34h34h.cc/c">.</a></li></ul></noscript><!-- ea1bce76cc34b90bf0e3eb07e662b430] -->

查找了一下被感染的文件:

find ./ | xargs grep 'eval(base64_decode('
find ./ | xargs grep '<!-- \['
find ./ -mtime 0
 
./sparkleisle.com/html
./sparkleisle.com/html/index.html
./voidman.com/html
./voidman.com/html/index.php
./voidman.net/html
./voidman.net/html/index.html

所幸影响不大,手工修复了。

MT 对采用明文密码的解释是:

“Clear Text” is a method of storing passwords in a database so that they are human readable. This preference was made to provide customers a convenient way of managing access to their services, e.g. connecting a PHP app to MySQL.

出发点是好的,可是做法太脑残了。

最后,雪特 AND 发可。

At Reply Mail Notification 1.0 Release

Posted on 2009-04-15 in Blog RelatedComments

终于将 At Reply Mail Notification 的后台回复功能加上,这样看起来算是一个插件了。不过没有提供后台插件管理选项,觉得没有这个必要,因为相关设置不多且修改频繁度并不会太高。先上截图:

HTML 模版:
mail_template_html
Continue reading...

LBS 转 WordPress 不完全记录

Posted on 2009-03-22 in Blog RelatedComments

早就答应 Cure 要帮他把博客从 LBS 转到 WordPress,事实上从他的闪光花园开始长了杂草之后,我就一直鼓动他转到 WordPress 下。或许是一直借口太忙了又或是自我标榜的“完美主义”在作怪,总之断断续续拖拖拉拉,从一月份一直到前些日子才将闪光花园的 LBS 主题改写成 WordPress 版本的,基本上了保留了原貌,用 Cure 的话说和之前没什么两样。尝试用了下 CSS Sprite,把一大堆不同类的背景图片弄到一起看起来是个失误,不过暂时也懒得改了。

ACCESS TO MySQL
数据转换费了一些周折。找了个工具叫 Bullzip MS Access to MySQL,在 XP 下却不能正常使用,提示“Error in function 'cmdNext_Click'”之类的错误。官方论坛有人说是 ADO 不存在的缘故,不过折腾了半天问题照旧。后来在安装了 SQL SERVER 的WIN2003系统下成功将数据 Dump 成 SQL 文本,可中文却是乱码,崩溃。最后还是用了月光转换软件搞定,不过月光的软件不会生成创建表结构的语句,所以还是两者结合了一下,才将 LBS 数据转到 MySQL 下。
Continue reading...

Wordpress 糟糕的重复评论检测方式

Posted on 2009-01-22 in Blog RelatedComments

去旧空间清理文件时,用 FTP 拉下一大堆 mysql slow queries 日志。由于我的博客平时几乎没什么人来访问,所以我也没怎么去关心是否存在 mysql slow queries。看了下日志,发现绝大部分 slow query 都是由 Wordpress 的重复评论检测造成成的:

wp_comment_mysql_slow_queries

没想到居然直接用 Text 类型的 comment_content 字段来判断评论重复,太衰了。开始还怀疑是不是日志搞错了,于是找到相应的代码确认: Continue reading...

At Reply Mail Notification 测试贴

Posted on 2009-01-19 in Blog Related27 Comments

想给博客加上访客留言被回复时邮件通知留言者的功能,本不想折腾,只不过试用了几个插件,都觉得不尽满意,便自己写了一个,先实现了几个功能:

  • 访客可以针对每篇日志选择是否接收邮件通知
  • 访客可以针对每篇日志选择接收何种评论通知
  • 访客可以点击邮件底部的链接取消邮件通知

对于使用 @+留言者 形式的回复暂未作邮件通知,需点击留言者名称右边的小图标 reply icon 回复。回复通知只对即日起的新留言有效。

欢迎在此留言,灌水。

Moved to (mt) Media Temple

Posted on 2009-01-07 in Blog RelatedComments

Media Temple

Bluehost 空间快到期了,续费要 $9.95/mo,近来访问速度也不那么稳定,于是打算和 bluehost 说拜拜,碰巧看见大猫在勾引大家,好么,那咱也用 gift card zhuangbility 一回。

虽然被“幸运”抽到需要电话确认订单,不过还好没有发生 RPWT,不然如若分配的 IP 已经被 GFWed 那就白折腾了。

简单地测试了下,ping 延时 <= 210ms,FTP 上传速度稳定在 52Kb/s,下载速度 140 Kb/s,对于 2M ADSL 来说,这速度我已经很满意了。

迁移过程基本顺利,除了设置数据库密码的时候被小小郁闷了下,貌似 MT 不支持在数据库密码中使用某些特殊字符。

BTW: 比较喜欢 MT 的界面,简洁而不失华丽。

Favicon

Posted on 2008-12-03 in Blog RelatedComments

昨日请Cure帮忙设计 favicon ,没想到今早就发过来了:

favorites icon

第一个取自虚空行者(voidman)的形象,看上去有些邪恶 :twisted: ,我还是用第二个好了,试了下效果,感觉还不错。

favicon effects

Thanks to Cure.

Yahoo 域名转出至 GoDaddy 记录

Posted on 2008-11-26 in Blog Related10 Comments

幸好提前去 Yahoo 看了下域名的续费情况,不然还不知道 Yahoo 的域名年费狂涨到 $34.95,实在是太不厚道了!

于是决定将域名转出至 GoDaddy,不过却没想到过程却这么麻烦:

  1. 注册了国内的贝宝,发现不能添加信用卡才意识到注册错了地方,于是删除该帐号。
  2. 去注册了 PayPal 国际重新注册了帐号,花了两天时间验证了信用卡。
  3. 注册了 GoDaddy 帐号,填写相关信息,开始按步骤转入域名。不料折腾一晚上,checkout order 时始终提示“Transaction refused due to risk model”,抓狂。
  4. 咨询了 cosbeta,未果。本还想兑些美元直接付款,不过 cosbeta 说不一定有作用,PayPal 帐号可能太新了。
  5. 在 taobao 看见有人代购 e-Gift Card,可精确到美分。买了足够的金额,终于 checkout 成功。
  6. 上 Yahoo 解锁域名后,登录 GoDaddy 后点击 Pending Domain Transfers 继续开始转入域名进程,填写 Transaction ID, Security Code, Authorization Code 相关信息,点击了几个按钮后,等待域名转入邮件通知。
  7. 足足等了 5 天,终于收到 GoDaddy 发来的域名转入成功的确认邮件。在 Yahoo 取消了域名服务。重新设置了域名解析。GoDaddy 解析速度很快。

相关参考链接:
How do I transfer my yahoo domain to a new registrar
域名转移到 Godaddy 图文教程
Godaddy 域名使用说明

让 Wordpress 自动删除 Post Revisions

Posted on 2008-11-18 in Blog RelatedComments

貌似在 wp-config.php 中加入 define(’WP_POST_REVISIONS’, false); 来禁用 Wordpress 的日志修订功能,post revision 还是会产生。gohsy 同学写了个插件 Revision Manager 来清理 post revision,不过个人觉得手动清理还是不够方便,决定利用 Wordpress 的计划任务功能(WP_Cron)偷偷懒。

不想为了这小小的功能而多添加一个插件,所以在主题目录下的 functions.php 文件添加了以下代码:

function delete_post_revisions() {
  global $wpdb;
 
  // Also need to delete the post meta and term relationships
  $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision')");
  $wpdb->query("DELETE FROM {$wpdb->term_relationships} WHERE object_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision')");
 
  // Delete the post revisions
  $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
}
 
// Register the event
add_action('delete_post_revisions_event', 'delete_post_revisions');
if (!wp_next_scheduled('delete_post_revisions_event')) {
  wp_schedule_event(time(), 'daily', 'delete_post_revisions_event');
}

Continue reading...

让 Google Sitemaps Generator 可以忽略指定的日志分类

Posted on 2008-11-15 in Blog RelatedComments

在之前使用 HemingwayEx 主题的时候我把一些只有半句或几句话的日志移动到了 asides 分类,而现在我不想让 Google Sitemaps Generator 插件生成 sitemap 的时候包括这些日志,也许只有我才会有这样奇怪的需求 :shock:

可 Google XML Sitemaps 只能忽略指定的日志或页面,而不能忽略整个分类,所以只能自己动手了。

1. 打开插件目录下的 sitemap-core.php 文件,找到:

$where.=" AND post_password='' ORDER BY post_modified DESC";
 
$sql .= $where;

修改成:

$where.=" AND post_password='' ORDER BY post_modified DESC";
$where = apply_filters('sitemap_exclude_categories', $where);
$sql .= $where;

Continue reading...