洗牙经历

刷牙出血,一直是困扰我的问题,其实我也知道是牙周炎在作怪,但总是不愿意往医院跑一趟,很多年前洗过牙,知道洗牙去除牙结石,从而治疗牙周炎效果是好的,面对严重的刷牙出血,最终决定还是去趟医院吧。

之前先在网上查询了,看哪家医疗机构好一些,毕竟洗牙还是有一定风险的,要找正规医院,网上看了看,静安区牙防所评价还不错,离我上班的地方也蛮近,就决定去这家。

早上出来的比较早,先到公司打卡(嘿嘿,工作不能耽误嘛),之后去静安区牙防所,在愚园路快到镇宁路的地方,到的时候还不到8点,还好里面等的人不多,挂了号,可以用医保,8点医生开始上班,我没有等待,直接被安排到了一个位置上,一个女医生给我看,说我的牙结石还是“蛮结棍”的(当时顿觉羞愧难当,不过不厉害的话谁来这里呢),而且有颗牙松动了,医生没多废话,就开始给我洗,从下到上,从外到里,之后还做了一个去色素喷砂,大概花了1个小时左右,总体来说感觉还好,不算难受,好了之后医生说,由于牙结石比较厉害,过2-3周还要去复诊一次。

喷砂是自费,100元,挂号3块,其余都是医保,100零几块,付完费,看看表,9点多,回公司上班,不耽误:)

ORA-12519问题

今天早上在Oracle的UI管理界面里发现错误

无法连接到数据库实例: ORA-12519: TNS:no appropriate service handler found (DBD ERROR: OCIServerAttach)。

在网上搜了一下,都是英文信息,也不是很完整,估计是进程数量超出,我就远程询问支持我们的DBA,他先让我检查一下,在pl/sql里

select count(*) from v$process 取得当前进程数,我看了一下结果是299,之后再执行

select value from v$parameter where name = ‘processes’,结果是300,看来果真是进程超了,修改进程数

alter system set processes=400 scope=spfile;

之后重起数据库实例startup force,DBA说,processes这个数值也不能改的很大,大了会导致内存不足。

WordPress升级到2.8遇到的问题

上周末的时候看到后台提示可以升级到wordpress2.8,我就简单做了一个文章导出,之后在线升级到2.8,我之前的版本是2.7.1,提示升级成功,但转到“控制板”之后,提示错误

Allowed memory size of  xxxxxxxxx bytes exhausted

2.8难道有问题,我可没有做完整的备份,2.8的数据库有改动,如果2.8真的有问题就麻烦了,这个错误是说PHP分配内存太小,只要修改php.ini就可以,但我现在用的是虚拟主机,不能修改php.ini的,还是网上搜一下吧,很快,找到了答案,只要在wp-settings.php里修改为

define(‘WP_MEMORY_LIMIT’, ’64M’);

就可以了(以前是32M,如果不行可以继续改大)。

Memory解决了,但后台还是提示有新版本2.8,要我升级,我不是已经升级成功了吗,奇怪,后来查了一下,由于我用的是中文版,所以在wp-includes/version.php里增加一行

$wp_local_package = ‘zh_CN’;

就不会再提示有新版本了。

关于环保

我终于可以用一个准确的词语来形容上海的天气–“霾”!

霾,也称灰霾(烟霞),是指原因不明的因大量烟、尘等微粒悬浮而形成的浑浊现象。霾的核心物质是空气中悬浮的灰尘颗粒,气象学上称为气溶胶颗粒。

以前我并未过多的注意过上海的天气环境,一直认为上海的环境还是不错的,但在几次用单反相机给宝宝拍过照片之后,总觉得照片出来怎么这样的难看,后面的天空总是灰蒙蒙的,天也不蓝,也不透亮,可以看我端午节假期在东方绿洲的照片,比如这张

智慧大道

明显的看到远处就是灰的,后来我在朋友那里看到他在国外拍的一些照片,天空是如此的蓝,我这才感觉到,我们是生活在如此的环境中。

在我们经济快速发展的时期,对于环境的破坏已经造成了很多不可逆转的后果,对于我们的后代,这是不负责任的,在我们这个国家,大多数人还未真正享受经济发展带来成果,当人们生活提高的时候往往自然选择一些不环保的生活方式,比如中国家庭大多数没有小汽车,当可以买的起车的时候,会非常自然的选择开私家车出行(包括我),但车辆尾气排放造成的污染,可能是这个城市污染的主要原因,政府在不断地呼吁“少开一天车”,但这样的呼吁实在是非常的无力,因为我们并没有享受到公共交通带来的快捷、舒适、方便,国家经过30年的经济建设,应该在这方面多投入一些了,也让我们真正享受到经济发展的成果,拥有更美丽的环境。

听老罗演讲

老罗语录已经在网上流传已久,不能否认,老罗是个绝对的人才,NB的人物,相信很多人对老罗的敬仰犹如滔滔江水……

最近在视频网上看到了老罗在吉林大学的演讲,有3段

罗永浩(老罗)吉林大学演讲 上

罗永浩(老罗)吉林大学演讲 中

罗永浩(老罗)吉林大学演讲 下

老罗通过他做老师、办网站、开学校的三段经历,讲述了他的奋斗历程。

我们可以从老罗的语录和他的演讲中总结出一些东西

坚持:老罗总结(或引用)说,失败只有一种,就是半途而废,我非常赞同,这句话可以当座右铭了,人生从小到大,我们半途而废的事情太多了,只有坚持做一件事情,才能做到最好,才能成功,我们也可以发现,很多人的成功,不是因为这个人多有能力,而是他坚持下来,坚持到了最后。

理想主义:在老罗“犬儒主义”的语录里,老罗非常明确的表示自己不是 一个犬儒主义者,是一个伟大的理想主义者,这让我十分敬佩,在当前一个普遍缺乏优秀价值观的社会,能保持一份理想主义,是非常可贵的,应该向老罗学习。

官场论:老罗的“官场论”也非常的经典,溜须拍马的事情都会,但丢不起这人,身在职场还是要保持冷静,保持正直,成熟和圆滑世故是不一样的。

教育观:老罗在初级教育阶段与我们国家现有的教育体制发生了严重的冲突,导致他最后退学,我们如何面对现在的教育体制,怎样来教育我们的下一代,这是一个非常矛盾的问题,如何能让孩子们独立思考、有创新意识,又要面对中国的升学体制,非常矛盾。

Google AdSense西联汇款收款

上两次收Google Adsense的汇款,都是采用支票的方式,时间长,而且在中国银行办理还需要50-60元的手续费,后来在网上看到Google AdSense可以采用西联汇款收款,我也把我Google AdSense帐户里的付款方式改为了西联汇款,帐户里够了100美金,上个月底就看到了付款详情,今天我到农业银行,提取了这笔汇款,没有手续费,我直接换成人民币现金取走。

在设置西联汇款的时候有几个地方注意,它页面上虽然写了“为了领取您的付款,您需要持有政府核发的与以下收款人姓名完全一致的有效证件。”,但是在填写收款人姓名的时候还是写英文,并注意姓名的顺序,比如你的名字是“张三”,那要在“收款人名”填写“San”,“收款人姓”填写“Zhang”,到时持你的身份证到银行取款,是没有问题的。

在国内,西联汇款的代理机构是农业银行和邮政储蓄,在http://www.westernunion.cn/sc/location_search.php可以查到代理的网点,但好像不太准,我今天去的江宁路农业银行在上面就没有,我想应该是大一点的分行或是支行都应该有这样的业务。

到农业银行后先填写两张单子,一个是西联汇款的收汇单,里面收汇人和发汇人姓名地址都写英文,也就是你Google AdSense里留的信息,汇款监控号码非常重要,这也是表示这笔汇款的依据,另一张单子是个人结汇申请书,结汇类型是“现汇”,结汇资金入账方式选“取现”,结汇资金来源就选“其他”,结汇用途写“零用”,其实可以随便写的,之后一些必要的签字等等,连同身份证交给柜台上之后会按照当前的汇率兑换为人民币,拿到人民币就OK啦。

Oracle惊魂

今天中午,上演了一场Oracle数据库惊魂。

我们生产环境使用Oracle RAC,Oracle有两个节点,在中午11点30左右的时候,发现节点1故障,SSH不能连接,应用反映出来数据库连接不正常,此时节点2正常,由于SSH不能连接,也无法判断节点1服务器到底出现什么故障,所以,我让IT支持同事通知IDC重起节点1的机子,谁知噩梦开始发生,IDC工作人员竟然重起了节点2,导致两个节点都瘫痪,也不知道使我们机子的标签贴的有问题还是中国电信的工作水平是如此这般,无奈之下,只能等待,并通知IDC还是要重起节点1的机子,非常诡异的是节点2这台本来正常的机子,在重起后竟然SSH不能连接,真是祸不单行啊,在节点1的机子启动后,它上面的Oracle服务也恢复了正常,接下来只能再通知IDC重起节点2,此时只能保佑不要连不上,还算幸运,在几分钟的等待之后,节点2终于启动了,也能SSH上了,其Oracle服务器也在启动,我同时用crs_stat -t在观察节点状态,发现只有ora.ordb2.gsd处于UNKNOWN 状态,其他的都已经ONLINE了,用crs_stop ora.ordb2.gsd不行将其停掉,出现错误

Attempting to stop `ora.ordb2.gsd` on member `ordb2`
`ora.ordb2.gsd` on member `ordb2` has experienced an unrecoverable failure.
Human intervention required to resume its availability.
CRS-0216: Could not stop resource ‘ora.ordb2.gsd’.

crs_start ora.ordb2.gsd也不行

CRS-1028: Dependency analysis failed because of:
‘Resource in UNKNOWN state: ora.ordb2.gsd’
CRS-0223: Resource ‘ora.ordb2.gsd’ has placement error.

这是又急坏了我和远程支持我们的DBA,最后通过命令crs_stop ora.ordb2.gsd -f停止了ora.ordb2.gsd,再crs_start ora.ordb2.gsd,终于好了,Oracle恢复了正常。

PHP中的时间时区运算

我在测试twitter的API时,在它返回的用户信息里,关于用户时区的信息有两个

<utc_offset>28800</utc_offset>
<time_zone>Beijing</time_zone>

我希望利用这两个数值,得到用户的的DateTimeZone,直接new DateTimeZone(‘Beijing’)是不行的,我看了PHP的API,时区里是没有“Beijing”的,中国的时区应该是“Asia/Shanghai”,看来这个“Beijing”只是用来显示的,我又查了DateTimeZone的API,里面也没有根据UTC Offset值取得DateTimeZone的方法,看来不能通过这样的方法来做了。

utc_offset这个值是应该表示与UTC标准时间相差的秒数,测试下面的代码

$datetimezone = new DateTimeZone(‘Asia/Shanghai’);
$datetime = new DateTime(“now”,$datetimezone);
echo $datetime->getOffset();

结果显示28800,没错,时区“Asia/Shanghai”与UTC的时间差是28800秒,也就是8个小时(我们在东8区)。

在PHP中使用time()或是DateTime对象,在不指定DateTimeZone时,其默认的DateTimeZone就是UTC,产生的时间就是UTC时间,把这个时间加上Offset值之后,就可以显示出本时区的正确时间了,比如下面的代码

$datetime = time();
echo date(“y-m-d H:i:s”,$datetime);
echo “<br/>”;
$datetime = $datetime + 28800;
echo date(“y-m-d H:i:s”,$datetime);

输入的结果是
09-05-13 04:21:44
09-05-13 12:21:44

上面是UTC的时间,而下面的是北京时间。

在我们设计数据的时候,时间字段设计为长整数字段比较方便,存放UTC的time()的Unix时间戳,用户可以自己定义所在的时区,通过Offset,最终显示给用户其时区的时间。我感觉Java里的TimeZone似乎要更灵活一些,可以这样TimeZone.getTimeZone(“GMT+08:00”)

另外:在PHP里取得所有可用时区的方法是DateTimeZone::listIdentifiers()。

5.12纪念

纪念5.12汶川大地震

距离2008年5.12汶川大地震已经一年了,5.12注定是让中国人永远不能忘记的日子,回想去年地震后的日日夜夜,时时刻刻都会为震区的人们伤感或感动。

76年唐山地震时,我尚未出生,我不曾了解地震给人们带来的伤痛有多深,2008年,我的孩子1岁,看着他快乐的在阳光下游戏,想起汶川废墟下的一个个曾经一样鲜活的孩子的生命,他们父母心中的那种痛……

希望在地震中逝去的人们安息,而生者永远坚强,快乐幸福的生活。