Tag Archives: code

How to change the hints settings of Pentadactyl

When using Pentadactyl in XP, I found the hints are too small to distinct. It doesn’t happen when I run Ubuntu. Anyway, I googled and figured it out. Here I think I should take a note, in case my memories don’t serve me some day. Actually Pentadactyl do leaves a lot of options, but sometimes I just don’t know how to change them.

:hi Hint font-family: Verdana; font-size: 10px; font-weight: bold; color:
white; background-color: red; border-color: ButtonShadow; border-width: 0px;
border-style: solid; padding: 0px 1px 0px 1px;

And, don’t forget to write it to your RC file.

:mkp!

Set SSL Google as the Default Search Engine when using Pentadactyl in Firefox

First of all, if you don’t have any idea what Pentadactyl is, then this post maybe not worth your time.

Secondly, I should tell you about my system environments: Ubuntu 11.04; Firefox 6.0. If yours are differ from mine, I suppose it will still be ok, in most of the cases, they share the same steps.

Now, let’s start.

  1. Why use Firefox? It’s the only browser what can have Pentadactyl as the add-on.
  2. Why use Pentadactyl? It’s vim-like add-on, designed for some keyboard addicted users to make life easier and more efficiently. If you ever heard about vim, you should know how powerful it is.
  3. Why bother to use encrypted google search engine? It’s really something personal, I like it, because I like it. If you insist to ask, I think the main reason is I don’t want my search queries to be intercepted. Besides, it makes me cool and different.

In Pentadactyl, when you want search something, just type “o”(open the results in current tab) or “t”(open the results in new tab) followed the search words. By default, Pentadactyl use google as the search engine, Not google ssl. So how to change it? Add it as a bookmark will be the first step. Since we use Pentadactyl, let’s do it in some cool way:

  1. Press “:” to begin to typing command.

    bmark -keyword gssl https://encrypted.google.com/search?sclient=psy&hl=en&safe=off&site=webhp&source=hp&q=%s&pbx=1&oq=&aq=&aqi=&aql=&gs_sm=&gs_upl=

  2. Press “Enter” to execute the command. And now you add it to your bookmark. Then press “:” again to type another command.

    set defsearch=gssl

  3. Job done!

Command no.1: “-keyword” is an option for you to name a search engine which will be used in the second command. The url I provided maybe only functional in my system environment, I’m not sure. But if it doesn’t work, you could find it by yourself. AND it’s more easier.

  1. Open https://encrypted.google.com
  2. Right click of the search box
  3. Choose “Add a Keyword for this Search…”
  4. Name a keyword as you like, in my case it will be “gssl

It’s exactly the same result as command no.1. You will find the url when you check this bookmark’s property.

Command no.2: is used to set the default search engine. I really try hard to find this option of Pentadactyl…

Well, over…

Fix the Problem which Ubuntu Cannot Root Itself

先说说今天的Ubuntu Release Party。我因为坐错了车所以去晚了,结果反而坐在了第一排,说实话,以我的视力坐后面几排还真看不清楚,会严重影响我听讲的效果。我觉得这个活动举办得很成功,看到了不少大牛,听到了不少经验。交流了一下就解决了我输入法的大问题,这个前文也有提到。而且又接触到了一个叫Ubuntu-Tweak的软件,那是相当得给力啊。今天这样的活动一定要继续跟进。

今天一回家就开始折腾Ubuntu10.10,结果我那台陈旧的台式机,在调试的时候突然给我来了个死机,无法启动了。我以为废了,要重装,不过老天毕竟还没有绝我之路啊,一般这样的情况在Windows底下我就放弃了。但今天我看了一下错误代码,大致如下(具体的当然记得没那么清楚,但有一句提示我Try passing init=bootarg):

kinit: name_to_dev_t (/dev/disk/by-uuid/84effa58-ee21-420d-9c45-233a552636af) = dev(8,2)
kinit: trying to resume from /dev/disk/by-uuid/84effa58-ee21-420d-9c45-233a552636af)
kinit: no resume imgae, doing normal boot….
mount: mounting /dev/disk/bu-uuid/ac67818a-4afa-4a75-b78a-b53758624b2b on /root failed:invalid argument
mount: mounting /root/dev on /dev/.static/dev failed: no such file or directory
mount: mounting /sys on root/sys failed: no such file or directory
Taget file system doesn’t have /sbin/init
no init found, Try passing init=bootarg
Busybox v1.10.2 (ubuntu 1:1.10.2-1 ubuntu7) built in shell (ash) Enter ‘help’ for a list of built in commands
(initramfs)

我觉得好像不像是致命错误,应该有救,查了一下果然有办法。

  1. 找一张Live CD. (我千辛万苦翻出一张Ubuntu9.04的,lucky~)
  2. 进入Ubuntu系统,打开终端(Terminal)
  3. 输入命令

    sudo e2fsck -C0 -p -f -v /dev/sda1

e2fsck是一个用于检测和修复ext文件系统的命令。(e2fsck is the program for checking and repairing ext series file systems.)其中的/dev/sda1就是你Ubuntu所在的分区,这个参数根据个人不同的情况进行修改。如果不清楚的话可以用下面的命令来察看。

sudo fdisk -l

重新开机就终于又顺利地进到了Ubuntu10.10. OH, yes!


p.s: 情不自禁地要提一下Ubuntu10.10下的字体实在太漂亮了,无论是中文还是英文,这样连写博客都能让人写得那么地愉悦。

Some Ubuntu Tips

  1. Ubuntu版本更新
  2. Ubuntu10.10已经发布,但现在还没办法从旧版本直接自动更新到新版本。我们可以通过在终端(terminal)键入命令来实现:

    update-manager --devel-release

    这下就可以看到10.10的upgrade按钮了。关于Ubuntu10.10今天因为刚开始用,谈不上什么心得,直观的感受就是字体变了。和以往的Ubuntu风格一样,新字体还是那么的简洁大方、赏心悦目,我从Ubuntu身上倒是看到了前端设计是多么的重要,多么得能黏住用户。

    不过在更新的时候最好不要有其他操作,这篇博文就是在我更新的时候写的,我两台电脑同时更新,几乎都因为chrome的浏览器上写博客导致速度异常缓慢,基本无法接受。

  3. SCIM输入法的bug
  4. 每次升级我都会遇到SCIM输入法的bug,具体说来就是打中文时如果按了方向键或者退位键就再也打不出中文了,一定要再切换一次中英文输入法才行。而打字时方向键或者退位键的使用频率是极高的,所以这个bug严重影响使用。我至今也搞不清原因。

    解决办法只能是删除重装,不过要注意:在Synaptic Package Manager的选中SCIM后一定要Mark for Complete Removal,然后重启后再重装。别问我为什么,我就是这么搞成功的。对了重装的时候别忘了勾选scim-pinyin,勾选scim的时候默认是不装的。

    update1: 测试了一下,还是不行,很奇怪,在浏览器里就是无法使用方向键或者退位键,在gedit里就木有问题。哼,妈了个巴子。

    update2: 今天参加了Ubuntu Release Party,询问了一下别人,开始改用ibus-sunpinyin,好像还不错。

  5. Ubuntu和Windows双系统下调整开机菜单的默认选项。
  6. 关于Ubuntu和Windows双系统的安装可以参考我的这篇文章

    要修改Ubuntu和Windows双系统开机菜单的默认选项就要修改grub,其相关文件位于/etc/default/grub。首先用管理员权限打开

    sudo gedit /etc/default/grub

    修改GRUB_DEFAULT=x(举例来说如果你希望的启动项是第5项,就把GRUB_DEFAULT改为4)。有人还提到可以添加了GRUB_GFXMODE=1024×768,来提高Grub界面的分辨率。我试 了一下,不是很好用,还不如没有这一行的效果好,遂放弃。

    最后在保存了这个文件之后,还需要执行

    sudo update-grub

    这个在刚才的文件里也有提示。

  7. Ubuntu下gedit中无法正确显示中文的问题
  8. 这个问题是偶然发现的。因为要修改一些html文件,结果无论是gedit还是vim都无法正确显示文件中的中文。解决办法:

    Alt-F2后键入gconf-editor,打开“配置编辑器”。展开左边的树节点,找到 /apps/gedit-2/preferences/encodings 节点并单击它。双击右边的 auto_detected 键,打开“编辑键”对话框。单击列表右边的“添加”按钮,输入“GB18030”,单击确定按钮。
    列表的最底部新增加了一个“GB18030”。单击选中它,并单击右边的 “Up” 按钮直到 “GB18030” 位于列表的顶部为止。
    单击确定按钮,关闭配置编辑器。

p.s: 最后情不自禁地推荐两个学习Ubuntu的好地方,Ubuntu中文论坛WOW! Ubuntu,你能想到的问题几乎都能在这里找到,实在太给力了!

几个关于WordPress里留言回复的邮件通知的问题

在WordPress里对留言的回复通过email告知对方是一种很好的交互方式,既让信息即使传达又加强用户间的互动。但这个功能我一直没能成功启用过,这个周末想到了这个问题于是折腾了一下。

首先找对方法,我从一开始就死盯着Comment Reply Notification这个插件,而我的主题用的是iNove 1.4.6,不管怎么样,看上去在这个主题下Comment Reply Notification这个插件无效。真是背,这个问题上浪费了n个小时。

然后我找了另一个插件Mail To Commenter,简单配置一下就能用了,但是这个插件要求严格的回复格式,要么是’@+user+blank‘,要么’@+user+:‘,但我测试下来用户体验并不太好,简单的说,当你点了“回复”之后,鼠标的定位不准,这样会造成格式错误,就无法通过邮件回复对方了。具体如下图:

Chrome:

From Drop Box

Firefox:

From Drop Box

IE下的情况和Firefox相同,所以我怀疑是代码本身有问题,看了一下还真是。点击“回复”之后触发一个js,该文件在我的博客空间是位于WordPress所在目录下…/wp-content/themes/inove/js/comment.js ,大家可以做个参考,应该也在差不多的位置。文件开头一看就看出了毛病:

function() {

function reply(authorId, commentId, commentBox) {
var author = MGJS.$(authorId).innerHTML;
var insertStr = ‘<a href=”#’ + commentId + ‘”>@n‘ + author.replace(/t|n|rn/g, “”) + ‘ ‘;

appendReply(insertStr, commentBox);
}

关键就是在代码的红字加粗部分,在插入’@+user+blank’后又换行一次,删除后Firefox和IE下点击“回复”,鼠标就定位在了’@+user+blank’之后,功能一切正常。但Chrome下无论我怎么改,鼠标始终定位在最开始,浑然不理代码。我也不懂什么原因,想想难道是因为Chrome解释js和别人不一样?有牛人能指正就不生感激了。

总得来说这样也就基本够用了,但肯定也不完善,把格式钉死成’@+user+blank’或者’@+user+:’ 当然不好,有人就是喜欢@user后打回车怎么办呢?不过我对php和js都不精通,只能暂时维持这个样子了。

接下来又发生胸闷的事,测试时,有留言被回复确实是会给被回复者发信,但邮件打头是(Unknown sender) ,这当然也是个不能接受的结果。查了一下碰到的人不多,本来想通过代码解决,mail函数也找不到,放弃了。根据这篇文章,下载了wp mail from解决。测试一下也成功了,至此终于马马虎虎地搞定了留言回复的邮件通知功能,虽然写下来好像没什么实质内容,但其实经历了无数试错,太痛苦了。。。而且一个问题的解决伴随的是无数新问题的产生,我发现我代码一长就看不懂,个人域名邮箱也完全不会配,WordPress果然是个催人不断折腾的好工具啊,下次有心得了再来写。

How to Delete WordPress Post Revisions

Just take a note, maybe I will use it someday. My memeries do not always serve me, tha’s so sad, -_-!!

As we all know WordPress saves your drafts automatically, that leaves a lot of revisions as backups on the server. It’s good, who wouldn’t  piss off if he typed for a long time and encountered some accidents like computer shut down for no reason. But on the other hand, when my articles posted, in most of the cases, I don’t need these revisions any more. Leaves them on the server as redundancy is useless and I guess they are adverse to the server’s performance. O.K., then things get really simple: KILL THEM ALL!

Try to access your WordPress database through some tools like phpMyAdmin(that’s the only tool I familiar with…), follow the steps below:

  1. Your database
  2. SQL
  3. type the following codes
    DELETE FROM wp_posts WHERE post_type = "revision";
  4. then press the button “Go”

Job Done.

HTML中的表格问题

前两天碰到的问题,现在终于知道毛病出在哪里了,确实是自己没把HTML的各个标签吃透。

简单复述一下问题:希望实现一张2行的表格,其中第1行为2列。

错误html如下:


<table border=”0″>
<tbody>
<tr>
<td>111111111111111111111</td>
<td>111111111111111111111</td>
</tr>
<tr>222222222222222222222222222</tr>
<tr>333333333333333333333333333</tr>
</tbody></table>

效果如下:

222222222222222222222222222333333333333333333333333333
111111111111111111111 111111111111111111111

正确的html应该这么写

<table border=”0″>
<tbody>
<tr>
<td>111111111111111111111</td>
<td>111111111111111111111</td>
</tr>
<tr>
<td colspan=2>222222222222222222222222222</td>
</tr>
<tr>
<td colspan=2>2333333333333333333333333333</td>
</tr>
</tbody></table>

关键在于少了粗体的红字部分代码。每个<tr>标签(表示一行)中必要内嵌<td>标签(表示一列),即使行内只有一列,但光这样是不够的,效果会变成这样:

111111111111111111111 111111111111111111111
222222222222222222222222222
2333333333333333333333333333

也就是说第二、第三行无论多长都会和第一行的第一列等宽。所以这里还需要加上colspan,这个是什么意思的呢?它规定单元格可横跨的列数,colspan=2即意味着单元格可横跨两列,现在全部代码补齐以后,表格就正常了。

111111111111111111111 111111111111111111111
222222222222222222222222222
2333333333333333333333333333

O.K. Well done~

p.s : 更多关于<colspan>的介绍请参见这里,w3school,一个很强大的web技术教程网站。

一个解决不了的简单问题

先看一段非常简单的代码,真的非常简单,懂一点皮毛的html即可


<table border=”0″>
<tbody>
<tr>
<td>111111111111111111111</td>
<td>111111111111111111111</td>
</tr>
<tr>222222222222222222222222222</tr>
<tr>333333333333333333333333333</tr>
</tbody></table>

我想实现的是一个三行的表格,其中第一行有两列

但产生的实际效果如下所示:

222222222222222222222222222333333333333333333333333333
111111111111111111111 111111111111111111111

看出毛病了吗?

  1. 第二、第三行没有分隔开。
  2. 第二、第三行跳到了第一行前面。

我觉得一定是哪里犯低级错误了,可是我还真没找出来。。

所以。。

求解