手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:苹果相关

APNS 推送

关于apns这玩意,以前也写过不少的博客来介绍它了,国内的文章都是基于同一套代码的.
而正因为对apns了解的少,所以写的代码,以及对它的扩展都是不够完善的.

不过google code上终于有一套相对比较完善的代码了.https://code.google.com/p/apns-php/,其实在最近他已经迁移到了github了(October 26, 2012, Project source code has moved to github. )
看了一下代码,确实不错.
如果是原先的代码,其实一直有一个问题:如果某个token失效了,那么在接下来的10s左右,fwrite的推送都会失败.
虽然苹果提供了feedback的返回,但其实你翻看国内的文章,介绍,都没有告诉你怎么查询feedback,所以我到现在也没有好好的对Feedback处理过那些无效的信息.

上面介绍的这套代码就好很多了.可以进行推送,在失败的话,还能够继续推,如果成功的推送是直接可以进入下一条,不会胡乱浪费资源,真心不错...
代码也很简单:

PHP代码
  1. $push = new ApnsPush(ApnsAbstract::ENVIRONMENT_SANDBOX, '/dev.pem');  
  2.         // Set the Root Certificate Autority to verify the Apple remote peer  
  3.  
  4.         //$push->setRootCertificationAuthority('entrust_root_certification_authority.pem');  
  5.         // Increase write interval to 100ms (default value is 10ms).  
  6.         // This is an example value, the 10ms default value is OK in most cases.  
  7.         // To speed up the sending operations, use Zero as parameter but  
  8.         // some messages may be lost.  
  9.         // $push->setWriteInterval(100 * 1000);  
  10.         // Connect to the Apple Push Notification Service  
  11.         $push->connect();  
  12.         foreach ($result as $data) {  
  13.             $token = $appCache->getAppTokenByUserId($data['receive_userid']);  
  14.             if(!$token){  
  15.                 continue ;  
  16.             }  
  17.             $token = str_replace(" ","",$token);  
  18.             // Instantiate a new Message with a single recipient  
  19.             $message = new ApnsMessage($token);  
  20.             // Set a custom identifier. To get back this identifier use the getCustomIdentifier() method  
  21.             // over a ApnsMessage object retrieved with the getErrors() message.  
  22.             //$message->setCustomIdentifier(sprintf("Message-Badge-%03d", $i));  
  23.             // Set badge icon to "3"  
  24.             $message->setBadge( intval($data['cnt']));  
  25.             // Add the message to the message queue  
  26.             $push->add($message);  
  27.         }  
  28.         // Send all messages in the message queue  
  29.         $push->send();  
  30.         // Disconnect from the Apple Push Notification Service  
  31.         $push->disconnect();  
  32.         // Examine the error message container  
  33.         $aErrorQueue = $push->getErrors();  
  34.         if (!empty($aErrorQueue)) {  
  35.             var_dump($aErrorQueue);  
  36.         }  

这段代码不要纠结,为什么与官方不一样,因为我在用yii框架的时候没有autoload成功它的 代码,花了5分钟将它全部改成基于namespace的了.

Parallels Desktop 8 pd8 破解 无限试用

说实话,在MAC上面最好的虚拟机,绝对是parallels desktop,没有之一。
试用过几款虚拟机,但效果真的不能让人满意,vmware/vbox都响应没有pd快。而且更重要的是vmware的无缝集成的性能远远不如PD。。。

PD6,我买了,升到了PD7,但在PD7下面retina的分辨率无法调整。
所以想升级到PD8,但因为win用的少,所以现在还在忍着。如果你不想忍,这里有个办法:

内容因版权关系删除,如有需求请自行百度

说实话,macx.cn上代理的PD只有180左右,如果你真的需要,买一个吧。。。当然,如果你觉得你的时间很多,无所谓每个月折腾这么一次,也完全可以象上面那样一次次的折腾的。

Tags: pd8, vmware, vbox

Mou生成PDF时颜色偏淡的解决方法

Mou是一款很优秀的Markdown编辑软件,在MAC下面的展现比较趋向于完美,但一直以来生成PDF时,颜色都非常淡:
大小: 37.09 K
尺寸: 500 x 246
浏览: 1558 次
点击打开新窗口浏览全图
眼睛都快看花了,而LiteIDE里,作者说他是用的Mou授权的CSS文件,却生成出来是这样的效果:
大小: 41.91 K
尺寸: 500 x 273
浏览: 1580 次
点击打开新窗口浏览全图
这相差也太大了。所以就发了封邮件给作者,作者回复的很快,然后发现我也被鄙视了。。。

XML/HTML代码
  1. 你好!我猜你一定是 Mou 的老用户了(从 0.7.2 之前就开始用了),因为这个 CSS 早在 Mou 0.7.3(去年8月19号) 就已经更新过了(PDF颜色加深)。  
  2.   
  3. 但是为了保证用户之前自定义 CSS 的安全,Mou 不会主动覆盖旧的 CSS,如果想使用新的 CSS,需手动删除  
  4. ~/Library/Application Support/Mou/CSS/  
  5. 目录下旧的 CSS,重启 Mou,Mou 会创建新的 CSS。  
  6.   
  7. 这点已在 Release Notes 中多次提及:  
  8. http://mouapp.com/releasenotes/  

看了一下mouapp的releasenotes,那一行果然是其他颜色的。。。天啊。更新这么多次了,都没有看过别人的releasenotes。。。郁闷
大小: 147.47 K
尺寸: 500 x 221
浏览: 1569 次
点击打开新窗口浏览全图
于是进入目录,删除了CSS,重打开Mou,Export 一份PDF,果然正常了。Oh Yeah。。

作者还提供了修改CSS的方法:

XML/HTML代码
  1. 另外如果需要自定义 CSS,不能直接修改 .app 包里的,如果真的那样设定,岂不是每一次更新,用户的自定义 CSS 都会丢掉?  
  2.   
  3. 正确的目录是  
  4. ~/Library/Application Support/Mou/CSS/  
  5. 如果你在 Preferences>CSS 里点击 Edit… 按钮,引导过去的也是这个目录而不是 .app 包里的。  
  6.   
  7. 关于自定义 CSS,可以直接修改现有的,也可以把新的 CSS 文件(文件名随意)拖到这个目录下,重启 Mou 后它会自动刷新 CSS 列表,当再次进入 Preferences>CSS 里时,就可以在列表中选用你新加入的这个 CSS 了。  
  8.   
  9. 还有一篇关于只应用于 PDF 的自定义 CSS 技巧的 Blog:  
  10. http://chenluois.com/blog/mou-pdf-export-page-break/  

享受Mou吧

Tags: mou, pdf, markdown, liteide

用TimeMachine恢复数据

系统刚刚到手的时候,什么 都没有,怎么办?第二天就要准备开发了。然后要下载一大堆软件?

于是拿原来的机器做了一下备份,很简单:
1、插上USB,打开timemachine,开始备份
2、新机器插上刚刚timemachine的USB移动硬盘,启动的时候按OPTION,选择恢复
3、选择用timemachine恢复旧系统,这时候会搜索移动硬盘。会找到timemachine的内容。如果你有多次备份,请记得选对

重启,一切Over

不过有几件事要记住
1、如果你有分区,那只能恢复主分区。所以我有时候就觉得那第二个分区timemachine还有啥用????
2、在系统正在运行的时候,你的timemachine无法找到另一台机器的备份数据,只有刚刚新机器的备份数据。
3、另外的分区,也很方便,但为了拷贝数据完整,建议cp -R,这样会好一点
4、有些设置无法导过来,忍忍吧。。。

最起码我100多G半个多小时就过来了。。(3.0USB的速度还是不错的。可惜启动的时候用不到3.0)

dash的一个小配置文件

 软件名叫DASH,这个plist文件是老鬼发我的,还不错。

 
com.kapeli.dash.plist
 
看手册是方便了。

Tags: dash