2009
12.02

好租

好租(http://haozu.com)为什么google都不收入呢?难道这个域名原来有过前科?

2006
11.04


照片源自Yupoo

2006
10.31

中文网志年会 2006

中文网志年会不怎么顺利的召开,顺利的结束了。

By Blogger for Blogger

我是挺累的,白天听演讲,晚上基本没睡觉。第一个晚上从卖菜2.0讨论起,第二个晚上是关于OpenID,第三个晚上赶回张家港,因为次日还要乘6点的第一班车回上海上班。

而且带着baby还真是挺辛苦的,下一届还带agoo参加吗?

不管怎样,年会包括那几个小场讨论真的是件非常好玩的事

[tags]cnbloggercon, 2006[/tags]

2006
09.18

Cnbloggercon2006 web badge

http://events.cnbloggercon.org/event/cnbloggercon2006

2006
08.17

长城

蛮不错的歌词

词:刘卓辉
曲:黄家驹
主唱:黄家驹

遥远的东方
辽阔的边疆
还有远古的破墙
前世的沧桑
后世的风光
万里千山牢牢接壤
围着老去的国度
围着事实的真相
围着浩瀚的岁月
围着欲望与理想
迷信的村庄
神秘的中央
还有昨天的战场
皇帝的新衣
热血的樱枪
谁都甘心流连塞上
叫嚷
朦着耳朵
那里那天不再听到在呼号的人
woo–ah woo–ah ah ah
朦着眼睛
再见往昔景仰的那样一道疤痕
woo–ah woo–ah ah ah
留在地壳头上
无冕的身躯
忘我的思想
还有显赫的破墙
谁也冲不开
谁也抛不低
谁要一生流离浪荡
朦着耳朵
那里那天不在听到像呼号的神
woo–ah woo–ah ah ah
朦着眼睛
再见往昔景仰的那样一道疤痕
woo–ah woo–ah ah ah
留在地壳头上

2006
08.01

穿墙术

劳山道士

劳山道士的穿墙术是假货,但是现在也许你也不得不找一些方法来钻墙了。tor正是个好工具。

在gentoo linux下安装tor相当简单
# emerge tor
然后在/etc/tor/目录下创建配置torrctor-tsocks.conf。可以参考torrc.sample

使用前记得启动一下(/etc/init.d/tor start),或者加入自动启动(rc-update add tor default)。有些时候你可能还需要手工重新启动tor(/etc/init.d/tor restart)。

使用的时候可以在命令前加tsocks,如tsocks opera。这样opera就可以钻墙了。
如果使用firefox,那么它有一个非常方便的插件FoxyProxy

2006
07.14

Generated: Fri Jul 14 2006 07:40:33 GMT+0800 (CST)
User Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060710 Firefox/1.5.0.4
Build ID: 2006071015

Enabled Extensions: [19]

Installed Themes: [1]

Installed Plugins: (6)

  • Google VLC multimedia plugin 1.0
  • mplayerplug-in 3.21
  • QuickTime Plug-in 6.0
  • RealPlayer 9
  • Shockwave Flash
  • Windows Media Player Plugin

2006
04.06

挺无聊的题目真的难倒不少人,咳

public class Hello {
    public static void main(String[] args) {
        String s = "123";
        System.out.println(s);
        m1(s);
        System.out.println(s);

        int i = 123;
        System.out.println(i);
        m2(i);
        System.out.println(i);
    }

    private static void m1(String s) {
        s = "321";
    }

    private static void m2(int i) {
        i = 321;
    }
}

运行结果是什么?

2006
04.05

一起裸奔吧

naked

我也来展示一下”<body/>”

2006
04.02

Dynamic DNS-DIY

宿舍的宽带好,写了一个简单的python脚本,自动更新域名解析到动态的IP地址,这样我就可以随时访问宿舍里的机器了。
http://swanpan.com/phpsysinfo/

#!/usr/bin/env python

import cookielib
import urllib
import urllib2
import time
import sys

def ddd_checkip():
        response = urllib2.urlopen("http://www.dragonsoft.net/checkip.php")
        return response.read()

def ddd_hello(opener):
        return opener.open("http://www.dns-diy.com/skin.aspx?skin=api")

def ddd_login(opener, username, password):
        request = urllib2.Request("https://www.dns-diy.com/api/login.aspx")
        params = urllib.urlencode({"username":username, 'password':password})
        request.add_data(params)
        return opener.open(request)

def ddd_logout(opener):
        request = urllib2.Request("http://www.dns-diy.com/api/logout.aspx?immediately=yes&invalidate=yes")
        return opener.open(request)

def ddd_update_rr(opener, id, name, type, data, aux, ttl):
        request = urllib2.Request("http://www.dns-diy.com/api/zone_rr_update.aspx")
        params = urllib.urlencode({"id":id, "rr_name":name, "rr_type":type, "rr_data":data, "rr_aux":aux, "rr_ttl":ttl})
        request.add_data(params)
        return opener.open(request)

#
#
#

DEBUG = 5
SLEEP_SECONDS = 600

USERNAME = "swanpan.com"
PASSWORD = "secure"
RR_ID    = "secure"
RR_NAME  = ""
RR_TYPE  = "A"
RR_DATA  = "127.0.0.1"
RR_AUX   = "0"
RR_TTL   = "5"

def ddd_process():
        if (DEBUG > 0):
                print "[%(time)s] updating %(host)s.%(zone)s (%(ip)s) ..." % \
                        {"time":time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), \
                        "host":RR_NAME, "zone":USERNAME, "ip":RR_DATA}

        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))

        response = ddd_hello(opener)
        if (DEBUG > 5):
                print "HELLO"
                print response.read()

        response = ddd_login(opener, USERNAME, PASSWORD)
        if (DEBUG > 5):
                print "LOGIN"
                print response.read()

        response = ddd_update_rr(opener, RR_ID, RR_NAME, RR_TYPE, RR_DATA, RR_AUX, RR_TTL)
        if (DEBUG > 5):
                print "UPDATE"
                print response.read()

        response = ddd_logout(opener)
        if (DEBUG > 5):
                print "LOGOUT"
                print response.read()

        if (DEBUG > 0):
                print "[%(time)s] Finished!" % \
                        {"time":time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())}

while True:
        try:
                ip = ddd_checkip()
                if (RR_DATA != ip):
                        RR_DATA = ip
                        ddd_process()
        except:
                if (DEBUG > 4):
                        print "Unexpected error:", sys.exc_info()[0]

        time.sleep(SLEEP_SECONDS)