哈 的个人资料哈哈的部落格(blog@msn)照片日志留言簿更多 工具 帮助

日志


11月27日

幸福的拆迁户

嘻嘻打车碰见个司机
聊起来原来都是一小区的
司机师傅说他们从来不交物业费
嘻嘻就说你们是拆迁过来的吧
回答是的
然后又聊
说当年拆迁
一共得了130万
于是花40万买房
买了5套,一共500平米
自己住一套,其它出租
老婆在家,专职收房租
他自己开出租
然后还说因为占了他们的地
每年还有3w的补助呢
我算算,好家伙
他们那小区的房子,现在二手都1w左右了
500平米的房子就值500w
再加上当年剩的90w
现在怎么也有100w了吧
他们家总资产轻松超600w了
司机师傅还说他们那儿都那样
呵呵
对啦
他们家还有一闺女,18岁

什么?电话号码?别yy了,嘻嘻也没他家电话,想要联系联络下感情我们恐怕是帮不上忙了
呵呵

仔细想想,其实这算是一种支付致富方式吧
只不过全国这么多农民
有多少能像这样致富呢
别说农民了
我们这些没有地的民工,是否也能像这样致富呢

11月26日

基金确权

昨晚在家无聊
翻起来以前的股票帐号和交易记录来
偶然发现原来买过的一支基金
封转开后并没有自动确权!!
奇怪的是同样买的其他几支基金
却都是自动确权的

今天中午抽空去了趟证卷公司
手工确权

11月24日

怎样购买虚拟主机webhostingpad?

前面介绍了美国这款稳定、功能强大并且价钱便宜的虚拟主机webhostingpad
首先,点击这里进入webhostingpad的官网,如下图所示:
ordernow

然后再点击箭头所指的“ORDER NOW”按钮
step1

接下来,是第一步,需要有两个信息需要选择:
1,Domain Information
因为webhostingpad提供一个免费的域名,所以在这里你可以选择申请一个新域名或者是填上你已经拥有并想转过来的域名
所以在这里你如果想通过webhostingpad再申请一个新域名,就选”New”,并且提供你想要的新域名,注意:这里貌似只支持几种后缀的域名。
如果这里你不想申请新域名,而想用你已经拥有的域名,就选”Owned”,然后提供你已经拥有的域名,以后你可以把这个域名迁过来,这样的话域名续费就都不用妮付了,webhostingpad会帮你搞定
2,Hosting Information
这里你需要选择你买服务的期限,注意:买长短不同的服务,价钱也不一样。貌似一次买3年的,每月费用是1.99$
选完,最后再点按钮“Continue”继续即可

然后如果你选的是新申请域名的话,系统会检测你提交的域名是否已经被申请;如果你选的是已有域名的话,系统大概还会检测是否已经被webhostingpad给host,也就是已经被登记到webhostingpad,如果一切没有问题
则会进入第二步,页面如下
step2
这里首先要填的是你的个人信息
一般来讲随便填就行
只有Email是很重要的
因为以后跟webhostingpad官方联系都会用这个Email地址
电话号码应该用国际格式
比如+86 10 62321234(这是北京固定电话)或+86 13901001234(这是手机)
下面要填的是信用卡信息
webhostingpad貌似只支持Visa、Master、AMEX和Discover4种
国内的大多是银联的卡,但一般也是要么支持Visa要么支持Master的
具体看你的信用卡正面有没有Visa或Master字样的图标即可
不过可能还需要先在银行做个visa或master的认证的业务才能直接在这里用
(我的招行信用卡(visa的)就是先在网上银行里做了visa认证后才能在这里用的)
信用卡里的姓名、帐号、到期时间以及cw2码都在信用卡上,能看见
(其中只有cw2码在信用卡背面,其他都在正面)

11月23日

How do I extract URLs from html?

perl的faq第九节有个简洁的例子

#!/usr/bin/perl -n00
# qxurl – tchrist@perl.com
print “$2\n” while m{
< \s* A \s+ HREF \s* = \s* (["']) (.*?) \1 \s* >
}gsix;

这个正则表达式相当简单实用
但是实际上有点问题
比如
<a href=”xxxxxxx” target=”_blank”>
这样的html代码
就会匹配出xxxxxxx” target=”_blank
这显然不行
于是做了小小的改动:

#!/usr/bin/perl -n00
# qxurl – tchrist@perl.com
print “$2\n” while m{
< \s* A \s+ HREF \s* = \s* (["']) (.*?) \1 \s* [^>]*
\s* >
}gsix;

这样就没问题了

11月19日

又遇title里有中文的utf8编码页面在ie下看一页空白

这是个早就知道的老问题了
却不知为何当年没写blog记录此事

今天又遇到这个问题了
把这一行内容移到之前
问题就解决了
特此记录一下

注:firefox貌似没有这个问题

11月18日

还有几个google wave的邀请,先来先得

一共数目有限(只有8个)
要的从速
不知道google wave的看这里:
http://wave.google.com

11月14日

骰子还是色子?

打麻将掷点数比大小的那个东西
老家把它叫做shai(3)zi(1)
感觉字应该是这么写的:骰子
家里电脑上的搜狗拼音输入法能直接敲入shaizi来输入
但诡异的是
公司的电脑里用微软拼音输入法敲入shaizi却死活找不到这个“骰子”
找到的只有“色子”
后来经过学习才知道
骰子念tou(3)zi(1)(音同“头子”)
这个是玩儿麻将比点数的那个
至于“色子”
这里的“色”是多音字,念shai(3)
这是老百姓对骰子的另外的称呼
:)
看来生活中到处有知识
想当然是不行的

11月10日

在rhel5上体会ror(ruby on rails)敏捷编程

以前有个服务器信息管理系统(自己php+mysql搞的)
现在想改成ror(ruby on rails)的框架
于是就在一台rhel5的机器上搭了个环境
首先,rhel5的机器必须先启用epel((Extra Packages for Enterprise Linux)
如果不会,这里有文章
然后

yum install ruby rdoc ri rubygem-rails ruby-mysql

安装ror的环境
再接着

cd /opt
rails myapp -d mysql
cd myapp
vim config/database.yml

确认其数据库的配置是否正确
然后

rake db:create:all
script/generate scaffold platform id:integer plat_info:text
script/generate scaffold contact id:integer e_name:string c_name:string mobile:string email:string msn:string
script/generate scaffold idc id:integer idcname:string cport:integer tport:integer location:string network:string netmask:integer
script/generate scaffold server id:integer mac0:string mac1:string ip0:integer ip1:integer ip0a:integer ip1a:integer enable:boolean b_date:date e_date:date e_note:string desc:string password:string idcid:integer plat_id:integer contact_id:integer production:string services:string role:string hardware:string cpuinfo:text partitions:text memory:text
vim db/migrate/*.sql

编辑这几个表(platforms、contacts、idcs、servers)的表结构
再接着

rake db:migrate
script/server &

ok了
再用浏览器访问下http://ip:3000/idcs、http://ip:3000/contacts、http://ip:3000/platforms、http://ip:3000/servers
呵呵
针对这几个表的增删改的程序都已经自动生成好了
一句代码都不用写

10月24日

给android编一个busybox时出"'cc1': execvp: No such file or directory"

从这里(http://www.codesourcery.com/gnu_toolchains/arm/download.html)下载arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu的软件包
从http://www.busybox.net/下载busybox源代码之后
解开
make menuconfig后出错

“gcc: error trying to exec ‘cc1′: execvp: No such file or directory”

是因为CONFIG_CROSS_COMPILER_PREFIX设的不对
应该是像这样:“/pathto/arm-2009q1/bin/arm-none-linux-gnueabi-”

10月22日

squid的access_log中MISS的数量对应不上后台nginx里access_log数量的问题

产品有些较真的人
作squid压力测试
发现前台squid的access_log里面
状态是MISS的数量
跟后台real server(nginx)里的access_log里的访问记录条数对应不上(要多一些)

然后就怀疑squid也许会有问题
因为有些不在squid的cache里的请求没有能穿透squid打到后面的nginx上

经过仔细察看
发现squid里有同一时间、多个请求访问同一个不在squid的cashe里的对象
这时,squid在log里记的是“MISS”
但squid去后台real server(nginx)只取一次数据
(或者也是同时多个请求一起取,但nginx的access_log只记录一次)
毕竟
squid返回的是200状态嘛

10月14日

在google app engine上用birdnest搭了个twitter proxy

rt
是可忍孰不可忍
终于出手了
首先

wget http://googleappengine.googlecode.com/files/google_appengine_1.2.0.zip
unzip -x google_appengine_1.2.0.zip

这是下载、安装google app engine for python的sdk
然后

cd google_appengine
svn checkout http://birdnest.googlecode.com/svn/branches/gae gae

这个是从birdnest官网上check out出来gae分支的代码
还有种说法是
svn checkout http://birdnest.googlecode.com/svn/trunk/ birdnest-read-only
但有人说一定要gae分支,否则有问题,所以我这里就是用的gae分支
接着

vim gae/app.yaml

将第一行的application: nest改成application: xxxxxxx
其中xxxxxx是你在google app engine上新建的app_id
可以用http://xxxxxx.appspot.com访问你的app
最后

./appcfg.py update gae

将应用上传到gae(google app engine)
至此
birdnest在你的google app engine上就搭好了
测试下
http://xxxxxx.appspot.com能访问(假设你的app_id是xxxxxx)
http://xxxxxx.appspot.com/api/能出现twitter的主页(假设你的app_id是xxxxxx)
就成功了

我在我的adp1(android develop phone 1)上用twidroid的时候
开始老不行
后来才发现原来是api的url地址写错了
写成xxxxxx.appspot.com/api了
我改成xxxxxx.appspot.com/api/就好了

终于翻墙上来了

10月13日

nasdaq又是全线飘红

早上起来蹲马桶的时候
照例看了下
发现我买的美股都是一片红……
真是红色的星期一吧

10月11日

mysql的sql语句中直接支持算术运算符

我有个mysql库
里面有个server表
其存储ip地址的是一个unsigned int(10)的变态的数据类型
其存储的数据是ip地址的
((第一字节*256+第二字节)*256+第三字节)*256+第四字节
因此,表里的ip地址数据相当的不直观
程序里倒无所谓
写个自函数转一下就可以了
但我如果要在mysql控制台、直接sql语句里显示直观ip信息呢
该怎么办呢
今天终于碰到这么个问题
翻了翻mysql文档
原来mysql直接支持算术运算符+、-、*、/,甚至连取余%都支持
再结合取整函数floor()、字串连接函数concat()
问题解决了

select concat(floor(ip/(256*256*256)), “.”, floor(ip/(256*256))%256, “.”, floor(ip/256)%256, “.”, ip%256) as ip_s, product, role, contact from server

10月6日

高房价造就“富翁”

感谢贵D的高房价政策
俺们居然也成了资产过百万的“百万富翁”了
但我怎么没有一点做富翁的感觉呀
活的像孙子一样

10月2日

黑色星期X

早上起来一看
美股全线大跌
呜呼哀哉
nasdaq一片飘红

9月30日

Android 1.6(Donut) is available for ADP1

自打android 1.6(Donut)的sdk发布
我就天天在htc的官网上观望
看看哪天能出adp1(android develop phone 1)的1.6的刷机包
今天终于看到htc放出来了
具体链接在这里
于是也就迫不及待的下载并升级了
首先刷radio
用usb线连上我的adp1和pc
然后在pc上
adb devices
发现能看见我的adp1
然后再
adb push ota-radio-2_22_19_26I.zip /sdcard/update.zip
这一步是将下载的radio firmware包拷贝到adp1的tf卡上
因为我以前升级过radio firmware(1.1升级到1.5的时候)
所以我需要先在手机上删除掉tf卡上的update.zip
然后再同步下
adb shell sync
再接着重起手机到恢复模式(recovery mode)
怎样进recovery mode?
启动的时候按住Home键直到显示带”!”的图标即可
然后再推开滑盖
同时按下Alt+l键以便在屏幕上显示日志
然后呢
同时按下Alt+s键(屏幕上提示的有)
系统开始从/sdcard/update.zip里提取firmware并执行安装
同时会显示一个”install update”的图标
最后在同时按下HOME+BACK键来把安装的radio firmware写入radio image
写完后,系统会出一个”updating firmware”的图标提示
更新完毕后就会重起到正常模式
Radio Firmware更新完毕

因为我使用的是fastboot方式来升级系统
所以只下载了system包而没有下载recovery包
首先
重起手机到fastboot模式(怎样进入fastboot模式)
如果开始没有把手机连上pc的话现在用usb线把手机连上pc
在pc上输入
fastboot erase userdata
这一步对于我升级来讲可以不做,我也真的就没做
然后
fastboot erase cache
删除缓存(cache)
再接着
fastboot update signed-dream_devphone_userdebug-img-14721.zip
到最后升级完成后
手机系统会自动重起
这是正经开始升级了

到此为止
cupcake->donut升级完毕

9月29日

market在家里不能adsl下载软件,但gprs可以下

我的adp1的android market在家上网的时候
可以浏览
但是不能下载软件
家里是adsl上的网通
但用gprs就可以下
所以说有的童鞋认为android market也被墙了的看法是错误地

9月28日

outlook2007添加的农历生日同步到google日历出错

google日历不支持周期添加农历事件
自然也不支持添加农历生日这种每年农历某一天的事件咯
于是我想反正outlook支持
那么先在outlook里添加
然后再同步到google日历不就得了
结果
结果是错误的
同步到google日历上的
除了第一个日期是对的外
其他都错了
看来只能用程序生成iCalendar格式文件
再导入咯

9月24日

申请个PayPal居然还花去我1美刀

要不是那啥啥啥
我才不申请呢
没办法
中国人用惯了免费的服务了
乍一下碰到收费的服务
总有些不适应、排斥
呵呵

9月23日

46.64刀买了3年米国不限空间、流量;无限域名绑定的虚拟主机webhostingpad

这个虚拟主机的优点:
1,网络环境稳定
2,不限空间
3,不限流量
4,数据库(mysql)数量无限
5,可以帮定多个域名的数量不限
6,关键是超便宜,最低可以到每月1.99刀
7,送一个免费的国际域名(不是二级域名)
8,linux系统,支持php、perl、ruby等等
9,wordpress等开源软件一键安装
……
而且,虽然客户服务有可能说不支持泛域名解析
但经过我实际测试
是完全可以的!

还有
刚开始进去也许会看见disk space的limit是10G、monthly bandwith limit是100G
但据我跟技术支持沟通
说这个只要有需要是完全可以帮着免费扩大的

我最终仅花46.64刀就买了3年的服务
为什么才46.64刀呢
3*12*1.99-25=46.64
这里的25刀是因为我有免25刀的优惠码(coupon code) :)
如果有需要的童鞋
请点击这里或者是页面右边的webhostingpad的推广banner进入购买
谢谢