• 1.修改/etc/default/acpi-support

    ENABLE_LAPTOP_MODE=true

    2.修改 /etc/laptop-mode/laptop-mode.conf

    交流电模式下使用 laptop mode
    #
    # Enable laptop mode when on AC power.
    #
    ENABLE_LAPTOP_MODE_ON_AC=1
    #电池那也可设为1

    使用 laptop mode 进行LCD亮度控制
    #
    # Should laptop mode tools control LCD brightness?
    #
    CONTROL_BRIGHTNESS=1

    #
    # Commands to execute to set the brightness on your LCD
    #
    BATT_BRIGHTNESS_COMMAND="echo 0"
    LM_AC_BRIGHTNESS_COMMAND="echo 9"
    NOLM_AC_BRIGHTNESS_COMMAND="echo 9"
    BRIGHTNESS_OUTPUT="/sys/class/backlight/acpi_video1/brightness"

    如果你不明白上面的设置的意思,可以参考下面的说明

    *********************************************************************
    # * If your system has the file "/proc/acpi/video/VID/LCD/brightness" (VID may
    # be VID1 or similar), use this file as BRIGHTNESS_OUTPUT, and use
    # the command "echo <value>". The possible values can be listed using the
    # command:
    #
    # cat /proc/acpi/video/VID/LCD/brightness

    # * If you have a file /sys/class/backlight/.../brightness, then you can use
    # that file as BRIGHTNESS_OUTPUT, and the command "echo <value>".
    #
    # As far as I understand it the values are between 0 and
    # the value contained in the file /sys/class/backlight/.../max_brightness.
    ***********************************************************************
  • 买国货是爱国,不买国货,特别是买日本货就是汉奸?不爱国?

    笑话,这只是愤青们发泄的方式。

    国货有好的,也有坏的。 老百姓挣点钱不容易,如果国货质次价高,我们为什么要买?为什么不能买高性价比的日本货?如果国货质优价低,我们当然会买。过去的永久自行车,现在的海尔家电不都很受欢迎吗?

    别拿韩国人只买韩国车说事儿了。韩国车在世界汽车工业上就是个笑话,质量太次。看看吧,韩国汽车工业就是这样被惯坏的,不思进取,不求提高质量,反正有人买。

    民族企业醒醒吧,提高自己的产品质量,少干点象奶粉一样,无耻又自毁的事情。

    我们买商品不是因为所谓的“爱国”,而是它真的值得购买。

  • 入手thinkpad x61几周了,唯一的问题就是右掌托的无线网卡太烫了,比较痛苦。

    今天终于找到了linux下的降温办法,

    1. 开启省电模式:

    sudo iwconfig wlan0 power on 

    2. 降低工作频率到最低档:

    su 

    echo 1 > /sys/bus/pci/drivers/iwl4965/*/power_level 

    设置完后,热度明显降低了,完全温了,很牛。  


  • 运行程序时会先提示下面的错误 'C:\WINDOWS\system32\sichost.exe' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。

     

    删除注册表项:HKLM\software\microsoft\command processor "AutoRun"=c:\windows\system3\sichost.exe
    就可以了. 

  • GeoIP是关于IP地址和地理位置的应用。例如:通过访问用户的IP,展现不同语言的页面。
    目前,有很多付费的解决方案,数据库,或者web service。值得高兴的是Maxmind.com提供了免费的版本。下面我们在Django网站里使用一下GeoIP。

    第一步,安装GeoIP C Api和库 http://www.maxmind.com/download/geoip/api/c/

    第二步,下载数据文件。http://www.maxmind.com/download/geoip/database/

    第三步,编译lighttpd mod_geoip模块 http://trac.lighttpd.net/trac/wiki/Docs:ModGeoip ,然后进行配置。

    第四步,如果你是用php,实际上就可以用了。我们是用Django,所以你还必须安装GeoIP的python API http://www.maxmind.com/app/python

    最后,在view function函数里加入

        import GeoIP
        country = 'unknown'

        try:
            ip = request.META['REMOTE_ADDR']
            return HttpResponse(ip)

            geo = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
            country = geo.country_code_by_addr(ip)
        except:
            raise


    BTW,127.0.0.1是识别不了的。
  • ajax应用的越来越广泛。以前我一直使用jquery的.post,和.get来做
    ajax操作,很方便。但是.post和.get是不支持跨域操作的,例如:
    在a.com通过他们调用b.com,会返回uri denied。今天要实现一个feature
    要ajax跨域操作,就研究了一下。

    jquery从1.2开始,.getJSON就支持跨域操作了。这个是官方给出的例子。
    http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback

    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
            function(data){
              $.each(data.items, function(i,item){
                $("<img/>").attr("src", item.media.m).appendTo("#images");
                if ( i == 3 ) return false;
              });
    });

    这里的jsoncallback是一个jsonp的callback。不指定就是用?,jquery会自动
    把?替代。这个大家可能还不太理解,一会就明白了。

    我用django做web开发的framework。那么提供json数据的view func应该如何写呢?

    def api(request, id):
        try:
            info = Info.objects.get(id=id)

            data = {
                'name':info.name,
                'gendar':info.gendar,
            }
        except:
            status = {}

        callback = request.GET['callback']

        return HttpResponse('%s(%s)' % (callback, simplejson.dumps(status)))

    这里的callback就是一个jsonp的func名字,通常是jsonp1214803701549这样的串。
    HttpResponse的返回值一定是jsonp1214803701549({'name':xxx, 'gendar':xxxx})。
    因为这样才能回调到你的客户端的function。这个浪费了我不少时间。

    HTML端代码就更简单。

    $.getJSON("http://xxx.com?callback=?",
            function(data){
                alert(data.name);
            }
    });

    到此,ajax的跨域操作就完成了。网上关于这方面的资料不多,而且都不详细。
    上面是我用firebug跟踪HttpResponse,HttpRequest的参数的总结的。
    可能有理解不当,或者有更好的方法,欢迎大家一起交流。

  • http://www.thinkpage.cn/weather/

     可以定制,这一点比265好。但是速度明显比265慢一些。

  • 现在搜索引擎在互联网的地位已经接近“上帝”了。有人说,如果你的网站没有出现在搜索引擎的前三页,那你的网站实际上就不存在了。相信做过统计的站长都知道,大多数网站一半以上的流量是从搜索引擎来的。所以,越来越多的人开始研究搜索引擎优化。

    我也找来各种SEO的教材,从各种小技巧开始,title, meta, description, <h1></h1>,img alt。然后选择关键字,做关键字优化。一通折腾下来,有效果但是不明显。有一天,我想到是不是我的网站的页面太少了,就用搜索引擎来查一下网站内页 site:aggua.com,发现内页只有8000多。在好奇心趋势下,我又查了douban - 7,910,000,tudou - 27,600,000。

    我突然想到了一个问题。做热门关键字,一个站最多3, 5个,而且竞争非常激烈。但是,如果你要有足够多的内页面,而每个页面都有关键字。即使不是最热的关键字,但是数量众多,而且一些冷门的关键字还可以轻松进入第一页,甚至到首位。这样总量来说一样是相当可观的。

    所以,我想大家可以一方面做热门关键字的优化,另一方面苦练内功,把内页的数量做到百万级别。这同样也是一种搜索引擎优化,一样可以取得很好的效果。

    p.s. 阿瓜网(http://www.aggua.com)欢迎大家友情链接。

  • 在搜索邮件输入框里,输入in:unread
  • 我现在用的台式机已经服役6年多了。目前最大的问题是用google reader的时候,
    负载太大,常常导致浏览器没有响应了。记得在哪里看过google reader支持离线浏览,
    试了一下问题果然都解决了。

    简单说一下经过。进入google reader,点击右上角的offline链接,就会提示你安装
    google gears插件(我是在firefox下,估计ie也有)。安装好后,再次进入google
    reader界面,然后点击offline,就开始下载了。下载完后,再阅读就非常流畅了。

    p.s. 此招献给和我一样在老电脑前苦苦挣扎的朋友。另外,google reader里的n和
    空格键也是非常有效的快捷键。
  • 把字体(*.ttf)拷贝到/usr/share/fonts,这样gimp也可以用特殊的中文字体了。

  • 疯狂的域名 - [清谈]

    2008-04-22

    最近在为一个新的project想域名,尝试whois,发现无论多么奇怪的域名都有人注册。
    举个例子吧:从a.com, ab.com, abc.com, abcd.com,一直到
    abcdefghigklmnopqrstuvwxyz.com都有人注册。疯了,都疯了。

  • 我最早接触Django是在2005年底。当时,我对web开发产生了强烈的兴趣,一心想快速实现几个脑海里关于web的idea。由于一直做软件开发,对web开发毫无概念,所以第一个面临的问题就是选择framework。

    基于java的web framework复杂度太高,不适合做快速开发。asp不跨平台,php听说项目大了管理不方便(现在看来,应该也是不错的)。不是很习惯ruby的语法,放弃了ror。由于久闻python语法的简洁和库的成熟,我就定格在python based framework - django,官方的介绍是: Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.。

    即使是面对从未用过python的我来说,django上手也非常容易。django提供了大量的shortcut scripts,包括:用django-admin.py来生成项目,manage.py来管理项目。自动生成的settings.py一目了然。 urls.py也是简单易懂。实际上,django-admin.py startproject xxx, Hello World的server就可以run起来了,这对新手来说感觉非常好。

    django采用MVT模型,就是Model, Template, View。Model是OR Mapping的实现,对应的数据库的表结构。虽然,很多人指责django的ORM效率不高,但是用过的人都明白它实在是太方便了。django同样提供了执行raw sql的方法解决你性能问题。Template就是html模板支持继承,if, for,等等简单的语法。模板让应用逻辑和展现分离。很多时候你发现只要修改html的模板就可以,根本不需要修改python代码,不需要reload server。View是对应呈现给浏览器的response,通过views.py上的函数render模板实现。用MTV这种pattern来开发 web,真的让我感觉非常舒服。

    除此以外,django还有不少亮点。基于regular expression的url配置(urls.py)。大量好用的middleware(authentication, session, transaction, cache, gzip)。模板可以自定义tag和filter。大量的utils和addons,例如:textile, rss generator。

    当然,django也不是十全十美的。还是有一些鸡肋的设计,比如authentication的User, Group等结构,过于复杂,产生大量冗余表。newform我也用的不多。send_mail没有参数化,content type和encode都不够灵活。模板escape的向后兼容性。当然这些问题都可以通过一些技巧,或者自己实现来替换调,不算太大的问题。

    应livid之约,胡言乱语几句django的开发心得,希望抛砖引玉,大家多多交流。至今,我已经用django开发了3个相对完整的网站,并且还希望继续的做下去。不过,django最近脚步很慢,希望1.0 milestone早点到来。最后,感谢我的django领路人limodou,他说当我的技术支持,真的说到做到,非常感谢。

    Reference

    Django http://www.djangoproject.com/

    Django Step by Step http://www.woodpecker.org.cn/obp/django/django-stepbystep/newtest/doc

    Django Book http://www.djangobook.com/

    Django Master Class http://toys.jacobian.org/presentations/2007/oscon/tutorial/

    Django Snippets http://www.djangosnippets.org/

  • Live HTTP Headers是一个firefox下的强劲插件,
    最主要的功能就是对通过浏览器进行网络通讯的数据进行监控和分析,
    当你在浏览器的地址栏上请求一个URL或者提交一份表单时,
    HttpWatch帮你分析http请求的head信息,访问页面的cookie信息,
    Get和Post的详细数据包分析,Catch内容分析,QueryString分析。
    想知道GMail或者是任何一个AJAX网页时如何和服务器进行数据交互的吗?
    用这个插件就可以一览无余了。

    http://livehttpheaders.mozdev.org/
  • Father Candidate - [清谈]

    2008-04-13


    一直忘了宣布一个重大消息,老婆怀孕了。刚刚测出来,哈哈。
    今天翻篇了字典,给宝贝起了小名,多多。因为以后要隔着妈妈的肚皮
    和小家伙交流了。

  • 昨晚又折腾了一晚上帮人杀毒。现在的病毒木马技术太牛了,可以寄存
    在任何地方,以前的一些招数对它们根本没用了。杀毒软件,icesword都被
    它们搞的无法启动,只能找专杀攻击,和攻略来step by step。这是我N次帮人
    杀毒,它们浪费了我大量宝贵的时间。这些时间本该用来做些更有意义的事情。

    我强烈鄙视病毒/木马的制造者,它们的聪明才智应该用在创造性的工作上,
    而不是破坏性的工作。我更鄙视雇佣它们的后台和整个黑暗的产业链。这绝对
    是毁灭性的破坏。国家应该立法严惩。
  • FBReader是一个电子书阅读工具,它原为 Sharp Zaurus 而开发, 目前可在 Nokia 770/N800、Motorola E680i/A780、Linux、Windows 等上面运行。 FBReader 支持 fb2、HTML、CHM、plucker、Palmdoc、zTxt、TCR、RTF、OEB、 OpenReader、Non-DRM’ed mobipocket、Plain text 等广泛的格式。

    FBReader 在功能方面,FBReader 可以直接读取 tar、zip、gzip、bzip2 等文件; 支持 utf-8、us-ascii、windows-1251、windows-1252、koi8-r、ibm866、 iso-8859-*、Big5、 GBK 等编码,且能自动检测;此外,FBReader 还包括文本搜索、 自动生成目录等功能。

    http://www.fbreader.org/

  • 最近又想注册一些域名,问了做代理的朋友,.com的又小涨到80RMB了。
    正好smth上有人推荐godaddy,我去问了一下。就有好心人给我了
    一个30% off的优惠代码(gdp0403m - 4.30前有效)。

    今天颠颠的去godaddy买了一个自己喜欢的域名,原价9.99USD,用了
    代码,折合人民币才50块(包括了税),而且立即生效,真不错呀。
  • 我的Thinkpad T40的无线网卡(Pro 2100 3B min)不是很稳定。
    有时候,启动后找不到无线网络。不论怎么更新driver,还是有时候发生。
    今天索性去了Intel的网站,发现一个Interl ProSet的软件,安装后,
    一切就正常了(还在观望中...),特此为记。
  • 在google搜索框中输入
    "index of /" 关键字

    e.g.
    "index of /" lindsay

    这样你就能找到很多naked web server。他们直接提供了文件下载的列表。
  • 以前还真没注意到。
    标准sql的topn 语法是
    select top 10 * form t1 where ... order by id desc

    mysql中要用limit
    select * from t1 where ... order by id limit 0, 15

    不过limit的好处是,limit可以是任意中段。

    p.s. oracle号称也不行,需要
    select   *   from   (select   *   from   A)   where   rownum   <=   20
  • vim的F11映射 - [开发]

    2008-03-27

    如果你用vim,如果你还用project plugin和taglist plugin,
    那么我建议你对F11做一个如下的映射:

    nmap <F11> :TlistToggle<cr><Plug>ToggleProject
    imap <F11> <ESC><F11>

    P.S. F11应该是业界标准的全屏toggle键。

  • 用上Ipython了 - [应用]

    2008-03-27

    确实比python自带的shell好些,下面转个简介。

     http://inezha.com/p/3702997/item1

     ipython 是一个 python 的交互式 shell,比默认的 python shell 好用得多,支持变量自动补全,自动缩近,支持 bash shell 命令,内置了许多很有用的功能和函数。在 ubuntu 下只要 sudo apt-get install ipython 就装好了,通过 ipython 启动。


    下面是 ipython 中几个简单好用的 magic 函数:

    %bg function
    把 function 放到后台执行,例如: %bg myfunc(x, y, z=1),之后可以用jobs将其结果取回。myvar = jobs.result(5) 或 myvar = jobs[5].result。另外,jobs.status() 可以查看现有任务的状态。

    %ed 或 %edit
    编辑一个文件并执行,如果只编辑不执行,用 ed -x filename 即可。

    %env
    显示环境变量

    %hist 或 %history
    显示历史记录

    %macro name n1-n2 n3-n4 ... n5 .. n6 ...
    创建一个名称为 name 的宏,执行 name 就是执行 n1-n2 n3-n4 ... n5 .. n6 ... 这些代码。

    %pwd
    显示当前目录

    %pycat filename
    用语法高亮显示一个 python 文件(不用加.py后缀名)

    %save filename n1-n2 n3-n4 ... n5 .. n6 ...
    将执行过多代码保存为文件

    %time statement
    计算一段代码的执行时间

    %timeit statement
    自动选择重复和循环次数计算一段代码的执行时间,太方便了。


      另外,ipython 中用 ! 表示执行 shell 命令,用 $ 将 python 的变量转化成 shell 变量。通过这种两个符号,我们就可以做到和 shell 命令之间的交互,可以非常方便地做许多复杂的工作。比如你可以很方便地创建一组目录:

    for i in range(10):
     s = "dir%s" % i
     !mkdir $s

    不过写法上还是有一些限制,$ 后面只能跟变量名,不能直接写复杂表达式,$"dir%s"%i 就是错误的写法了,所以要先完全产生 python 的变量以后再用。像

    for i in !ls: print i

    这样的写法也是错的,可以这样:

    a = !ls
    for i in a: print i

      还有一点需要说明,就是执行普通的 shell 命令中如果有 $ 的话需要用两个 $。比如原来的echo $PATH现在得写成!echo $$PATH。 

  • (以下列表按时间顺序)

    1. todo list网站(tada list, remmber the milk)
    放弃原因:需要联网,操作起来有延迟,效率不高。

    2. 自己编写java程序 (mytodo, 用email信箱做网络存储)
    放弃原因:原代码丢失。

    3. 直接写在白纸上
    放弃原因: 当天没有完成的,需要merger。

    当前,客户端软件(sticky notes)
    sticky notes是ubuntu linux自带的小软件,通过add panel就可以看到。
    功能非常简单,基本上就是把文本文件dock在桌面上。如果sticky notes
    要是支持网络同步就更好了。

  • j 或 n 下一篇
    k 或 p 上一篇
    空格键/上档键+空格键 向下翻一页/向上翻一页=PageDown/PageUp

    v 查看原文(即打开条目相应的链接)
    a 添加订阅
    s 添加或取消星号
    shift + s 分享或取消分享
    t 添加tag
    m 标记为已读或未读
    o 或 return 展开条目
    r 刷新

    gh--打开Google Reader首页
    ga--显示所有条目
    gs--显示已标记星号的条目
    gt--打开标签选择
    gu--打开已订阅的RSS

    1--展开预览方式
    2--列表预览方式

  • 学车 - [清谈]

    2008-03-18

    我有个很好的习惯,就是一上车就睡觉,而且睡的十分香甜。
    所以,我还是觉得坐车舒服,就一直没有动学车的年头。去年年底,
    在LP的督促下决心学车,报了东方时尚驾校,散段3300
    (据说团购可以3100,我也没等的及)。过年前考完交规,
    我便踏上了慢慢学车路。为了尽量少的影响工作,我决定一周学两次,
    一次4-6小时。说实话,在在几十个小时的训练中,除了在仅有的几段
    路上,挂上5挡飙一下,我没找到太多驾驶了乐趣。

    昨天上午我们考桩和内路。5:40起床赶上班车,7:00来到驾校。
    可是因为我的考号是19号,一直到10:30才轮上考桩。我们的考亭也是
    非常的邪门,第一个考生就没过。前后还有8-9人撞杆,我们同车训练
    的一个老师也没过。幸运的是我还是一次通过了。考内路的时候也很搞。
    考官一直催我,给油,快给油,搞的我很是忙乱。不过,总算一切顺利。
    下面就差外路了,再考完外路就可以拿本了。不出意外,4月份就可以
    搞定了。说实话,学车还是相当浪费时间的一件事。强烈建议大家上学
    其间搞定。

    东方时尚驾校总体来说还是比较正规,设施都比较新,教练素质也比较高。
    就是车多,地方小了点,排队等待也浪费了不少时间。不过,好像他们在
    盖新的校区。东方时尚近两年的发展十分惊人。他们的老板就是几年前在
    众多驾校一片混乱的时机,果断出手,率先打出教练不收礼,不吃请的措施。
    一开始,他们连场地都没有,租用的公交驾校的场地,到现在,已经形成了
    非常强势的品牌,开始开垦新的校区,确实让人佩服。

    p.s. 下图为audio A1,折合人民币才11万。可是要想进口,加上关税估计要
    30万了。TNND。

  • 目前,浏览器软件对我是最重要的应用软件了,70%的使用计算机的时间都是在用浏览器。我用opera,也用firefox,两者取长补短,缺一不可。

    Opera速度快,稳定。关掉java,flash支持,速度还可以更提升一点。Opera有大量的键盘快捷方式,用起来非常舒服。这一点很像我最爱的编辑器Vim。虽然对w3c支持最好的,可是很多国内网站在opera下,层峦叠嶂,混乱不堪。

    Firefox最大的优势在于addo扩展,基本上你能想到需求,都能找到扩展。我的ff上就安装了不下20个扩展。ff最为人诟病的是内存泄漏和假死,很容易就吃掉几百兆内存。当然,也有可能是扩展带来的问题。ff的假死也让我很崩溃。

  • bzr的lock - [应用]

    2008-03-03

    当在bzr push的过程中出现,网络中断或进程终止时,
    如果你重新push,就会出现如下的提示:

    Unable to obtain lock sftp://.../.bzr/branch/lock
    held by xxx on host elephant [process #7984]
    locked 12 minutes, 18 seconds ago
    Will continue to try until 19:35:08

    这时你必须到.bzr/branch/lock下删除held目录,才能继续
    push。
  • 下午来到ThoughtWorks参加了Beijing Open Party。因为,准备的topic - Pragmatic Django Development太过技术,投票的结果没有被选上,结果却是得到了joyo的购书卡,哈哈。我参与的几个topic都因为时间有限,讨论的很不尽兴。

    ThoughtWorks的办公环境还是相当不错的。开放的桌面,22寸的 LCD,mac mini, apple键盘和鼠标,提供视频饮料的吧台,游戏厅,员工照片墙。应当说,一个良好的的工作环境对提高工作效率还是相当重要的。可惜,我对咨询没有太大的兴趣,对java,agile的热衷也大大降低了。(当然,我也不一定达到人家要求的标准,呵呵。)