<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>雕刻时光</title>
        <link>http://log.snakr.com/</link>
        <description><![CDATA[关于我的TagCloud: 程序员 大连人 在上海 MAC PHP LINUX Objective-C WEB 足球 运动 Wordpress Geek ...]]></description>
        <generator>by Snakr.com</generator>
        <lastBuildDate>Fri, 07 Oct 2011 10:51:56 +0800</lastBuildDate>
		<image>
			<url>http://t.douban.com/icon/ul1122614-28.jpg</url>
			<title>雕刻时光</title>
			<link>http://log.snakr.com/</link>
		</image> 
        <item>
            <title>Thank you, Steve</title>
			<description><![CDATA[<p>That's all there is, send you an email, go to apple store present a bouquet, same as ever to support Apple.</p>
<p><img src="https://s3-us-west-1.amazonaws.com/images.path.com/photos/f28fc318192ff768babc9e73d6ec3bdbacbd1401/processed_510.jpg" /></p>
<p><img src="https://s3-us-west-1.amazonaws.com/images.path.com/photos/6396a196cd15696384dd4a0f73fbf585b511e1ab/processed_510.jpg" /></p>]]></description>
			<link>http://log.snakr.com/post/128/</link>
            <author>夏天</author>
            <pubDate>Fri, 07 Oct 2011 10:51:56 +0800</pubDate>
        </item> 
        <item>
            <title>Get Back.</title>
			<description><![CDATA[<p><img width="550px" src="http://img02.36krcnd.com/wp-content/uploads/2011/10/jobs1.png" /></p>
<p>乔布斯喜欢鲍勃·迪伦和甲壳虫乐队。</p>
<p>他爱音乐。</p>
<p>1969年的1月30日，伦敦正被凛冽的寒风吹袭着，圣诞节残留的少许新年气氛早已被刮得无影无踪，街头的人们只想把头缩进高高竖起的黑色大衣领子里，匆匆地赶往各自的目的地。</p>
<p>有着300年历史的“裁缝一条街”——伦敦的萨维尔街也是同样，行人与汽车忙碌的穿行于老旧的英式大楼之间，丝毫不愿做片刻的停留。</p>
<p><embed src="http://player.youku.com/player.php/Type/Folder/Fid/2135220/Ob/1/Pt/0/sid/XMjcyNDkyNDg=/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" allowFullScreen="true" mode="transparent" type="application/x-shockwave-flash"></embed></p>
<p>如任何普通的日子一样，这是严冬中普通的不能再普通的一天。</p>
<p>午餐时分，萨维尔街3号那幢有着两百多年历史的五层红砖楼里，有一群30岁左右的年轻人突发奇想，把架子鼓、键盘、吉他等乐器以及若干个大功率的音箱，一古脑地全搬上了屋顶的露台之上，开始披发当风，鼓琴而歌。</p>
<p>吵闹的音乐吸引了匆匆的路人，他们纷纷驻足抬头寻找音乐来自的方向，还有一些人爬上了隔壁大楼的天台，双手插在裤兜里，叼着烟斗想看个究竟。</p>
<p>人群越聚越多，萨维尔街开始挤满了驻足的行人和汽车，红砖楼前全是抬头仰望的人们，他们惊愕于这场突如其来的演唱会，当然也惬意地享受着美妙的音 乐。不过，激烈的鼓点与电吉他的嚣叫还是让邻居招来了警察。来到屋顶上的警察要求他们小声一些，这反而让乐队的四位年轻人愈加的兴奋，他们完全不予理会， 甚至还将功放开得更大，继续大声尽情的表演着。在演唱了42分钟之后，警察拔掉了传输线，这场在惊奇中开始的即兴表演便就此结束了。</p>
<p>至今，这场四十年前屋顶上的演唱会已经成为了摇滚乐史上最重要最经典的时刻之一，那四名年轻人就是Beatles，萨维尔街3号的红砖楼就是他们自己的公司，这家公司的名字叫做——苹果！」</p>
<p>这一年，乔布斯14岁，是一位不折不扣的摇滚乐迷。8年之后这位嬉皮士注册成立了如今的这家苹果公司。</p>
<p>这便是Apple的由来。</p>
<p>还记得甲壳虫入驻iTunes那天吗，apple.com首页的四人巨幅照片，和今天一样。</p>
<p><img width="550px" src="http://kensegall.com/blog/wp-content/uploads/2010/11/apple_beatles_homepage-856x1024.png" style="border-style: initial; border-color: initial;" /></p>]]></description>
			<link>http://log.snakr.com/post/127/</link>
            <author>夏天</author>
            <pubDate>Thu, 06 Oct 2011 12:14:57 +0800</pubDate>
        </item> 
        <item>
            <title>Thank you, Steve Jobs.We miss you!</title>
			<description><![CDATA[<p>
<p class="p1">Nothing that could be posted could take precedence over this.</p>
<p class="p1">You will be missed Mr. Jobs, and always remembered.</p>
</p>
<p><a target="_blank" href="http://www.apple.com/stevejobs/"><img src="http://blog.backblaze.com/wp-content/uploads/2011/10/blog-steve-jobs-miss.jpg" /></a></p>]]></description>
			<link>http://log.snakr.com/post/126/</link>
            <author>夏天</author>
            <pubDate>Thu, 06 Oct 2011 09:29:47 +0800</pubDate>
        </item> 
        <item>
            <title>怀念汐草街，有多少人还记得</title>
			<description><![CDATA[<p>&nbsp;</p>
<p>当开始学会依赖，<br />当开始学会牵挂，<br />一切的一切都以割舍不下。<br />我们都是需要被宠爱的孩子，<br />无论走都远，<br />让我给你双手，让我给你温暖，你感动了吗？<br /> 我愿意为你，我愿意为你被放逐天际，只要你真心，拿爱与我回应，我什么都愿意…..<br />烟花盛开，朵朵不败。<br />我希望在樱花全部落下之前，神可以帮我许下一个愿望。<br />可是下雨了，很大的雨，刮风了，很猛烈的风。<br />樱花终究还是落了一地，只剩下孤单的叶子。<br />可是在最后一片花瓣坠落之前，我还是看见了你……<br />他说，透过乳色的竹草能清楚的看见雨季已经渗透成的潮汐，静静涌向铺满青草的街道。<br />这就是汐草街。<br />他说，汐草街象征着美好，自然，和谐，安详。<br />他还说，只要你愿意，汐草街就在你心里。<br />可是，我很害怕，这一切都是真的吗？<br />不过，我宁愿相信，<br />因为他也说过，这世界有了爱就有了微笑在。<br />我知道你会走，所以我不会留。<br />但如果可以，我希望你记得你牵着我的时候。<br />爱一个人，希望自己变傻，再傻一点，更傻一些，<br />最后完全没有情绪，能全然相信他的话，只是微笑着默默等待。<br />要的多不过一杯热咖啡的小温暖。<br /> 风属于谁的，我借来吹吹，却吹起人间烟火。<br /> 天属于谁的，我借来欣赏，却看到你的轮廓。<br />总以为爱情会被真心感动，总以为找一个爱情生长的地方就会长久。<br />穿梭时间的钟从反方向开始移动，<br />过去种种，不敢去碰。<br />每一秒钟，都有不同。<br />激越的瞬间，一切落空。<br />生命是一场意外，爱情也是一场意外。<br />和他在路上相遇，他是我的意外。<br />相恋多时，携手走过熟悉的街角，分手是恋情的意外。<br />告别恋情以后，偶然想起他，回忆是平静生活的一场意外。<br />感谢所有曾经相遇和离别的人。<br /> 我怎么感觉不到你，你说过相爱的人有默契，所以你的承诺变成了爱情……<br />昨日的景象犹在心头，仿佛刚刚发生一般。<br />日子像流水，这是一个爱情故事。<br />你先走了，后来我也走了。<br />只有这样的歌，我来时唱着，可现在还在唱着……<br />听，海的声音。<br />大片大片的蓝，与我温柔拥抱。<br />我的心也变成了蓝色。<br />简单，纯粹。<br />放肆的呼吸，自由的空气。<br />你心动了吗？<br />我的蓝色诱惑。<br />眼睛里依然是淡淡的忧伤，<br />在二十岁的尾巴上，终使自己慢慢平静。<br />这样一个不说想念的夜，和我一起远走高飞。<br />飞吧，别停下。<br />当我们的爱恋逐渐遥远而模糊，<br />我也开始准备相信，这辈子我将永远不会孤单。<br />但心底还会听见一个声音，希望今天遇见你。<br />我亲爱的宝贝，<br />草莓花开，幸福知多少。<br />我说现在的我真的很好，爬在眼角的细痕被眼泪带走。<br />收起了所有不安分的光芒，做处事不惊的孩子。<br />在相遇的城市迷失之前，寻找一张似曾相识的脸。<br />我的2006，春暖花开，细数从头。<br />看见的，熄灭了。<br />消失的，记住了。<br />我站在海角天涯，等待昙花开放。<br />谁能告诉我，有哪一种信仰，能让人念念不忘？<br />当时如果拥有什么，当时如果没有什么，<br />又会怎样……</p>
<p>欢迎来到汐草街 <a target="_blank" href="http://www.xicaojie.org/">http://www.xicaojie.org/</a></p>]]></description>
			<link>http://log.snakr.com/post/125/</link>
            <author>夏天</author>
            <pubDate>Sun, 25 Sep 2011 02:54:22 +0800</pubDate>
        </item> 
        <item>
            <title>服务以人为本</title>
			<description><![CDATA[<p>&nbsp;</p>
<p class="p1">solidshop是一家创业公司，提供在线商店租用服务。之前收到他们几封邮件都没有回。今天又收到一封邮件，虽然这封邮件不排除系统自动发送的可能性，但是看看内容，看看人家的服务精神。</p>
<p class="p1">Hi Summic,</p>
<p class="p1">because you are probably very busy, let me keep this short.</p>
<p class="p1">I'm the co-founder of <a href="http://SolidShops.com/">SolidShops.com</a> and I noticed that you are not yet using your store in an active way like most of our users. What would really help me understand how we can make our software better, is a little insight in how you experienced <a href="http://SolidShops.com/">SolidShops.com</a>.</p>
<p class="p1">Could you let me know in one short sentence (or more if you have the time) how we can improve our software, so that it fits your needs better?</p>
<p class="p1">Thanks a lot for your feedback, I really appreciate it.</p>
<p class="p1">Joris Hens</p>]]></description>
			<link>http://log.snakr.com/post/124/</link>
            <author>夏天</author>
            <pubDate>Thu, 15 Sep 2011 00:54:19 +0800</pubDate>
        </item> 
        <item>
            <title>在PHP中正确使用gettext实现多国语言支持</title>
			<description><![CDATA[<p>首先安装 gettext 和 php5-gettext</p>
<p>1、建立一个php文件demo.php：</p>
<pre>&lt;?php

$locale = 'zh_CN.UTF-8';

$textdomain="my_project";

putenv('LANGUAGE='.$locale);
putenv('LANG='.$locale);
putenv('LC_ALL='.$locale);
putenv('LC_MESSAGES='.$locale);
setlocale(LC_ALL,$locale);
setlocale(LC_CTYPE,$locale);

$locales_dir = dirname(__FILE__).'/i18n';
bindtextdomain($textdomain,$locales_dir);
bind_textdomain_codeset($textdomain, 'UTF-8'); 
textdomain($textdomain);

echo _('hello world');
</pre>
<p>注意，在debian系统locale 写 zh_CN不起作用，必须加上 .UTF-8 才有效,CentOS 直接写 zh_CN 就可以了</p>
<p>2、在demo.php 同级目录建立 i18n/zh_CN.UTF-8/LC_MESSAGES 目录</p>
<p>3、用xgettext工具生成 po文件模板</p>
<pre>xgettext --from-code utf-8 -d my_project -o i18n/my_project.pot -L PHP --no-wrap demo.php</pre>
<p>删掉 fuzzy这一行，修改 charset=<b>CHARSET</b> 为<b> UTF-8</b></p>
<p>4、根据刚才创建的模板文件生成待翻译的po文件</p>
<p>如果是第一次生成，用msginit初始化</p>
<pre>msginit -l zh_CN.UTF-8 -o i18n/my_project_cn.po -i i18n/my_project.pot</pre>
<pre>会提示你输入邮箱地址，输入或直接回车</pre>
<p>否则用msgmerge合并</p>
<pre>msgmerge -U i18n/my_project_cn.po i18n/my_project.pot</pre>
<p>5、用文本编辑器或者 poedit 工具翻译语言包文件 my_project_cn.po</p>
<p>6、翻译好以后，用msgfmt将语言包转换成最终给php使用的二进制文件</p>
<pre>msgfmt -c -v -o i18n/zh_CN.UTF-8/LC_MESSAGES/my_project.mo i18n/my_project_cn.po</pre>
<p>7、刷新页面看看, 如果无效，重启php-fpm</p>]]></description>
			<link>http://log.snakr.com/post/123/</link>
            <author>夏天</author>
            <pubDate>Tue, 23 Aug 2011 13:53:10 +0800</pubDate>
        </item> 
        <item>
            <title>版本控制工具 HG 和gui client MacHg使用心得</title>
			<description><![CDATA[<p>git可能比hg更好，更有活力，但是没空比较，现在这个工具在我的小圈子里大家用的已经得心应手了。并且开发、和线上环境、部署机制都是用的HG，可以参考我之前的文章： <a href="http://summic.com/post/96/">使用HG进行开发与部署</a></p>
<p>之前一直都是一个人在本机永命令行方式进行版本控制的，后来有多人参与近来，大家都知道但是没有深入用过这个工具，这时候就需要一个gui工具来可视化操作，降低学习成本。</p>
<p>于是我们找到了 MacHg，免费并且开源，少有的开源软件能做到如此完善且优雅，强烈推荐一下：</p>
<p><img height="120" width="128" class="imageStyle" src="http://jasonfharris.com/machg/index_files/stacks_image_7_1.png" /></p>
<p>&nbsp;</p>
<p><img height="320" width="455" class="imageStyle" src="http://jasonfharris.com/machg/index_files/stacks_image_11_1.png" /></p>
<p>官方主页：<a title="machg" href="http://jasonfharris.com/machg/">http://jasonfharris.com/machg/</a></p>
<p>使用中，如果遇到错误，基本上都是255错误，</p>
<p>这时候请检查：</p>
<p>
<ul>
<li>是不是本地修改没有commit</li>
<li>版本冲突是否没有合并。</li>
<li>合并版本之后，要作为新版本commit一次</li>
</ul>
他最好的一个地方是，在多人开发的时候，图形化显示每个人的版本历史，每种颜色的线代表一个开发者。直接上图吧：<img style="cursor: default;" title="machg" alt="machg" id="skitch-image" src="https://img.skitch.com/20110814-p6rukeqsaicseq1kynsnxq6xf7.png" /></p>]]></description>
			<link>http://log.snakr.com/post/122/</link>
            <author>夏天</author>
            <pubDate>Sun, 14 Aug 2011 13:27:38 +0800</pubDate>
        </item> 
        <item>
            <title>流水帐</title>
			<description><![CDATA[<p>1、最近尝试了一下Postmark的邮件代发服务，很给力，价格是 1000封/1.5美元，接下来尝试一下twilio的短信群发服务，发送一美分，接收半美分</p>
<p>2、詩人北島今日將以嘉賓身份，出席在青海舉行的國際詩歌節。這是北島流亡海外 20多年來，首次獲內地邀請回國參加官方活動。</p>
<p>3、Mac 下邮件客户端  Sparrow 很好用，iPad 上面的BFBC很难玩</p>
<p>4、现在做一个网站，云计算可以搞定一切。</p>
<p>&nbsp;</p>]]></description>
			<link>http://log.snakr.com/post/121/</link>
            <author>夏天</author>
            <pubDate>Mon, 08 Aug 2011 10:55:08 +0800</pubDate>
        </item> 
        <item>
            <title>最近blog越来越水</title>
			<description><![CDATA[<p>没精力没动力</p>]]></description>
			<link>http://log.snakr.com/post/120/</link>
            <author>夏天</author>
            <pubDate>Fri, 01 Jul 2011 17:20:15 +0800</pubDate>
        </item> 
        <item>
            <title>青春不在的8个标志</title>
			<description><![CDATA[<ol>
<li>
<p><strike><i>来短信，第一反应不是回短信，而是回电话</i></strike></p>
</li>
<li>
<p>不喜欢喝饮料，开始喝矿泉水</p>
</li>
<li>
<p><strike><i>不论上班还是休息，八点之前准醒</i></strike></p>
</li>
<li>
<p>衣服越来注重舒适度</p>
</li>
<li>
<p>觉得父母的话越来越有道理</p>
</li>
<li>
<p><strike><i>没有梦想了，安于现状</i></strike></p>
</li>
<li>
<p>开始明白知足常乐的道理</p>
</li>
<li>
<p><i><strike>关注自己的健康</strike></i></p>
</li>
</ol>1、3、6、8不属于我，我还年轻，哈哈]]></description>
			<link>http://log.snakr.com/post/119/</link>
            <author>夏天</author>
            <pubDate>Tue, 17 May 2011 12:37:06 +0800</pubDate>
        </item> 
        <item>
            <title>mac 防止ARP攻击</title>
			<description><![CDATA[<p>在终端输入<code>sudo arp -s 192.168.1.254 00:11:22:33:44:55</code></p>
<p>其中 192.168.7.254 填你所在网络环境的网关 IP，后面是网关的 MAC 地址，这样普通的伪装网关攻击就没什么用了。</p>
<p>这条命令是永久性的，你可以输入<code>arp -d 192.168.1.254</code>来删除前面绑定的网关 MAC 地址。</p>]]></description>
			<link>http://log.snakr.com/post/118/</link>
            <author>夏天</author>
            <pubDate>Fri, 13 May 2011 18:09:39 +0800</pubDate>
        </item> 
        <item>
            <title>解决Chrome在 Lion 下频繁崩溃的问题</title>
			<description><![CDATA[<p>升级到Lion以后，chrome基本上五分钟就要崩溃一次，到控制台看出错信息：</p>
<blockquote>
<p>11-4-12 下午3:56:47.944 Google Chrome Helper: FolderManager: Failed looking up user domain root; url='file://localhost/Users/summer/' path=/Users/summer/ err=-120 uid=501 euid=501</p>
<p>11-4-12 下午3:29:18.250 Google Chrome: This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.</p>
</blockquote>
<p>类似的消息，google搜索了一下，终于给招到解决方法了<br />先彻底删除chrome，再重新安装，注意，不能使用同步功能，不然旧的个人数据同步回来还是会崩溃<br />在终端依次执行以下删除命令：</p>
<blockquote>
<p># cd /Applications</p>
<p># sudo rm -rf Google\ Chrome</p>
<p># cd ~/Library</p>
<p># rm -rf Google/</p>
<p># cd Application\ Support</p>
<p># rm -rf Google/</p>
<p># cd ../Preferences</p>
<p># rm -rf com.google.Chrome.*</p>
<p># cd /Library</p>
<p># sudo rm -rf Google/</p>
<p># cd Application\ Support</p>
<p># sudo rm -rf Google/</p>
</blockquote>
<p><br /><br />原文在这里：http://www.google.com/support/forum/p/Chrome/thread?tid=5a9193d3cd79411a&amp;hl=en</p>]]></description>
			<link>http://log.snakr.com/post/117/</link>
            <author>夏天</author>
            <pubDate>Tue, 12 Apr 2011 18:02:41 +0800</pubDate>
        </item> 
        <item>
            <title>lion 升级到了 developer preview2</title>
			<description><![CDATA[<ol>
<li>默认壁纸换了一幅富士山的照片，看起来比上一个版本的，离日出的时间更进一步。正式版壁纸难道就是富士山日出？</li>
<li>最大的感受就是输入法的改进，第一个版本的输入法很卡，现在终于可以非常流畅的输入了，实在太爽了</li>
<li>安装rails会出错：builder-2.1.2 has an invalid value for @cert_chain</li>
<p>似乎 gem 1.7.1 的bug，换回1.6.2就好了</p>
<p>$ sudo gem update --system 1.6.2</p>
<li>finder默认打开的目录是最近使用的文件，左边栏消失了，似乎有益淡化硬盘的概念</li>
<li>装了mac osx server，所以 about this mac默认界面是分左右显示的</li>
<li>ical 换了和 address book一样的新界面，看起来挺帅的</li>
</ol>
<p><a href="https://skitch.com/summic/r2jm5/fullscreen"><img alt="Fullscreen" src="https://img.skitch.com/20110404-dpxs5sh4qsf6n9dr21gag5wmsm.medium.jpg" style="max-width: 500px;" /></a></p>]]></description>
			<link>http://log.snakr.com/post/116/</link>
            <author>夏天</author>
            <pubDate>Tue, 05 Apr 2011 00:44:45 +0800</pubDate>
        </item> 
        <item>
            <title>又一轮期待</title>
			<description><![CDATA[<p><a target="_blank" href="http://developer.apple.com/wwdc/"><img src="https://devimages.apple.com.edgekey.net/wwdc/images/wwdc11_hero_full.jpg" style="width: 550px;" /></a></p>]]></description>
			<link>http://log.snakr.com/post/115/</link>
            <author>夏天</author>
            <pubDate>Mon, 28 Mar 2011 22:35:55 +0800</pubDate>
        </item> 
        <item>
            <title>高效单点登录系统的一个思路</title>
			<description><![CDATA[<p>SSO英文全称Single Sign On，单点登录。SSO是在多个应用系统中，用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。
</p>
<p>要实现SSO，需要以下主要的功能：
1、所有应用系统共享一个身份认证系统
2、所有应用系统能够识别和提取ticket信息
</p>
<p>用户在一点登录后，会在主域名下的cookie中保存ticket信息，之后SSO服务器将该用户添加在在线列表
</p>
<p>前端：
<strong>重点在这：</strong>在主域名下放一个js，这个js提供一个变量，就是主域名下的ticket, 调用页拿到之后放到自己的域名下
</p>
<p>后端：
从cookie读取从主域名下拿到的ticket，去SSO服务器（可认为是一组 memcache 实例）取用户信息
</p>
<p>缺陷：前端拿到cookie写入之后，需要刷新一些页面后端才能读取，需要一些技巧处理掉对用户体验的影响</p>
]]></description>
			<link>http://log.snakr.com/post/114/</link>
            <author>夏天</author>
            <pubDate>Sat, 19 Mar 2011 12:27:44 +0800</pubDate>
        </item> 
        <item>
            <title>火星微博将无限期关闭</title>
			<description><![CDATA[<p>火星微博［likees.com］是我再无聊的时候搭建的一个小网站。因为没有精力维护和培养社区，现在已荒废。兹决定本周内关闭该服务。</p>
<p>来张截图:</p>
<p><a href="https://skitch.com/summic/ruc25/fullscreen"><img src="https://img.skitch.com/20110307-fwfd2fi59wtf3qp33r7gxj9pwq.preview.jpg" alt="Fullscreen" /></a></p>
<p>数据统计</p>
<p><a href="https://skitch.com/summic/ruc3s/"><img src="https://img.skitch.com/20110307-g9hq87nxse21bxie8q26tkscha.preview.jpg" alt="6570636E7EDF8BA1 - 706B661F5FAE535A" /></a></p>
<p>&nbsp;</p>
<p>另外透露一下，最近有一位牛人设计师加盟，五个人一起来做一些mac和ios平台的app和周边的网站，接下来我们可能会在这个域名下推出一个全新的产品，和mac以及ios相关。</p>]]></description>
			<link>http://log.snakr.com/post/113/</link>
            <author>夏天</author>
            <pubDate>Mon, 07 Mar 2011 22:46:27 +0800</pubDate>
        </item> 
        <item>
            <title>PHP 实现 RSAWithMD5 数字签名算法</title>
			<description><![CDATA[<p>建行网银使用的是RSAWithMD5对传输数据做验签的，php 从5.2.0开始支持RSA的所有辅助加密方式。</p>
<p>所以还是不要用网上流传的那份2004年爱尔兰牛人 Edsko de Vries写的代码了，搜索结果全都是不负责任的转载，没什么价值。</p>
<p>很简单，直接上代码：</p>
<p>生成签名：</p>
<pre>$fp = fopen("key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);
openssl_sign($data, $signature, $pkeyid, OPENSSL_ALGO_MD5);
openssl_free_key($pkeyid);
</pre>
<p>校验签名：</p>
<pre>$fp = fopen('pub.pem', 'r');
$resource = fread($fp, 20000);
fclose($fp);
$key = openssl_get_publickey($resource);
$result = openssl_verify($data, base64_decode(pack("H*",$sign)),$key,OPENSSL_ALGO_MD5);
</pre>
<p>如果不指定 OPENSSL_ALGO_MD5，默认使用的是 OPENSSL_ALGO_SHA1</p>]]></description>
			<link>http://log.snakr.com/post/112/</link>
            <author>夏天</author>
            <pubDate>Fri, 04 Mar 2011 11:32:05 +0800</pubDate>
        </item> 
        <item>
            <title>Mac 下打包，不包含 ._ 文件</title>
			<description><![CDATA[<p>export COPYFILE_DISABLE=true</p>
<p>&nbsp;</p>]]></description>
			<link>http://log.snakr.com/post/111/</link>
            <author>夏天</author>
            <pubDate>Tue, 01 Mar 2011 13:38:36 +0800</pubDate>
        </item> 
        <item>
            <title>Tips to working with PHP daemon</title>
			<description><![CDATA[<p>PHP的函数全，简单，而且很容易用 shell_exec 调用系统内核，现在已经很适合写后台程序。</p>
<p>最近又开始用php写spider去收集数据。总结一下：</p>
<p>1、最好结合cronjob来定时跑脚本，这样即使你的代码没有管理好内存，也不要紧，跑完一次就释放掉了。</p>
<p>2、对于必须常驻进程的脚本，一定要在while (1) {} 这样一个死循环里面运行代码。这样只要代码不出状况，脚本就不会停止。</p>
<p>3、echo 不能用，而是用log 代替。用写日志的方法代替echo。因为echo 是向屏幕输出一个字符，如果没有任何输出的对象，就会报一个致命错误。</p>
<p>4、如果MYSQL，要每次重新连接MYSQL或者至少使用时判断连接。因为你的脚本运行期间难保mysql不会重启，一旦重启，之前连接资源就失效了，会报这样一个错误：mysql has go away。</p>
<p>5、新产生的变量，没用了要马上释放。</p>
<p>6、 如果要访问文件，首先要 clearstatcache, 否则很有可能会不精确的统计，如果你频繁打开文件，文件的handle 值会不断增加，等到超过整数的最大值，程序就无法打开文件。</p>]]></description>
			<link>http://log.snakr.com/post/108/</link>
            <author>夏天</author>
            <pubDate>Thu, 16 Dec 2010 11:13:21 +0800</pubDate>
        </item> 
        <item>
            <title>搞照片</title>
			<description><![CDATA[<p><a title="Flickr 上 DesignSummer 的 gfoto" href="http://www.flickr.com/photos/groops/5243180041/"><img src="http://farm6.static.flickr.com/5283/5243180041_ae52c7f5b5.jpg" width="500" height="375" alt="gfoto" /></a></p>
<p>IT民工的悲惨生活</p>]]></description>
			<link>http://log.snakr.com/post/106/</link>
            <author>夏天</author>
            <pubDate>Wed, 08 Dec 2010 18:48:54 +0800</pubDate>
        </item> 
    </channel>
</rss>
