2012 年 07 月

浏览模式: 标准 | 列表 | 图文
yiiredis的一个小BUG

yiiredis的一个小BUG

yiiredis是基于phpredis的一个YII组件。平时用的话确实也挺方便,但偶尔还是会有一些小BUG,比如说:
yiiredis自带了计数器的功能,嗯,它是调用了phpredis裏的代碼:
$counter = new ARedisCounter($key);
$counter->increment(); //表示每次加1
echo $counter->getValue();

這樣的代碼是沒有任何問題的,但問題卻出現在了:
$counter = new ARedisCounter($key);
echo $counter->getValue();

上面的代碼好象沒有任何問題?但就因為這樣寫,程序崩潰了。。
NND,你不先加1,就不能取$counter->getValue();
這尼瑪也太坑爹了吧。。。。。你好歹默認一個0嘛。

str_word_count的想当然

看到str_word_count的時候,想當然的認為它就是統計字符串中某些單詞出現的次數。结果,根本不是這樣,只是統考這個單詞出現在第幾位。我TNND。
然後一猶豫,我就寫了一個函數:

function getStrCounts($str,$findstr='%s'){
$i =$s= 0;
while(($s = strpos($str,$findstr,!$s?0:$s+count($findstr)))!==false){
$i ++;
}
return $i;
}

等我写完后,发现,果然不错耶。然后我TNND又看了一下手册。。因为我记得这玩意确实是有函数的。找了一下,果然还真TMD有。substr_count就是这个苦逼的函数:

$format = "There are %s monkeys in the %s %s %s";
echo substr_count($format,"%s");


我晕啊。这个count,你为什么要扔到substr_这个前缀后面???真受不了。这个问题好象很久以前也有人提过,看来苦逼的人不是我一个啊

在VPS上为mysql禁用innodb引擎

在VPS上为mysql禁用innodb引擎

我知道INNODB不錯,但是我的VPS只有小小的512M內存,實在是扛不住,這玩意啥也不錯就吃掉了我不少內存了。於是我直接在my.cnf裏加上了skip-innodb。結果服務無法啟動。

找了一下資料 ,原來mysql 5.5以上的時候,默認的引擎就是innodB,因此,如果要skip掉它,必須告訴 mysql我的默認引擎是myisam。因此代碼就變成了這樣,在[mysqld]中加入:
default-storage-engine = MyISAM
然後再skip-innodb,接著運行service mysql restart,世界清靜 了。
原來運行top的時候,mysql一直佔有著70%左右的CPU。現在立刻清零。
一下子安逸了

又拍云的Yii组件

这个只是基于又拍云上面的一个小小的扩展,也是作了一个封装。
因为又拍云每次操作bucket都需要为它设置用户名和密码。如果我在一个controller里多次操作不同的bucket,有点麻烦 ,于是就做了一个小封装。
使用起来很简单,在配置文件main.php的components中加入一小段:

'components'=>array(
'upyun'=>'ext.upyun.EasyUpyun',
),

当然,如果有需要额外定制的变量,也可以参考其他组件的设置方法。

附件在这里,我就不多说了,贴上组件的注释:

/**
* EasyUpyun.php
* @example:
* Yii::app()->upyun->upload($domain,$savedname,$datas,$autoCreateDir=true);
* 这个是一个demo,推荐仍然使用upyun提供的API,这样就可以几乎不用改代码
* UpyunBase的用法是$upyun->setApiDomain('abc');
* 组件用法:Yii::app()->upyun->setApiDomain('bucket的别名','abc');
*
* @category upyun
* @package upyun
* @author gouki <gouki.xiao@gmail.com>
* @version $Id$
* @created 12-7-6 PM11:07
*/

再贴上变量的注释

/**
* 别名
* 因为又拍云的bucket的名字比较长,在开发的时候,如果用很长的bucket会很痛苦,因此就做了一个别名功能用来代替bucket
* @var array
*/
public $alias = array(
'static' => 'test-public'
);
/**
* 又拍云的bucket
* key 为 bucket
* value 为 bucket对应的用户名和密码,格式为“用户名:密码”
* @var array
*/
public $bucket = array(
'test-public' => 'admin:123456'
);
/**
* 又拍云API实例
* @var UpYun
*/
public $upyun;
/**
* 是否采用upyun的debug功能,该功能为全局打开,一旦开启,所有bucket涉及的debug都开启
* @var bool
*/
public $debug = FALSE;

Over,有想试用的,可以直接尝试下载附件。

发邮件让MAC自动休眠

发邮件让MAC自动休眠

在威鋒網上看到這個主題 後,立馬嘗試了一下。果然不同凡響啊

其實說白了就一句話:tell application "System Events" to sleep
但就這麼一句話,即做了很多事情,看這句話多簡單啊。就是傳說中的自然語言。。告訴程序『系統事件』睡眠。輕輕鬆鬆。。。。。

原文在這裏:http://bbs.weiphone.com/read-htm-tid-4576786.html
因為有圖有文字,我為了方便就說個簡單的吧:
1、啟動"apple script編輯器"(在實用工具中),將剛才上面的那段:tell application "System Events" to sleep輸入進去並保存。
2、打開mail,在偏好設置中,點擊:規則選項卡,然後新增一個規則
3、(我這是偷懶的作法),允許任何一個郵箱收麼的郵件主題為:sleep,不是包含,而是等於。如果為了放心一點,也可以設置一下發件人,這樣會更安全一點
4、上面選好後,下面:就執行下列操作:選擇運行apple script,選擇你剛才保存的文件。
於是整個事情就這麼完成 了。多輕鬆啊。。。。。

最後,放上apple script的教程:8fc3cfe991d41b164ed9819bbc93cbaa

科目三过了

经历了几个月的折腾,科目三过了。
本来是昨天就应该发这条博客,作为记录的。但。。。昨天事情太多,而且几乎站了一下午,没体力了。
回家倒头便睡。

今天第一件事就是将它发出来,庆祝一下下。

关于又拍云的几个问题

说明:紅色的字是最近更新的內容,如果你對又拍雲有興趣 ,你可以加2473635949的QQ,也可以向她諮詢又拍雲的相關問題。嗯,沒看錯,是女字旁的她。或者尝试加QQ群:229209212。

-------------------

这是我这两天通过测试和向客服咨询的结果,为一些想用又拍的朋友提供一点资料 吧。

关于又拍云的几个问题:(这些是我在测试的时候遇到的问题,括号内是客服的回答)
1、缩略图算在空间容量内吗?(客服回答:不计空间容量内)
2、我们原来的项目中,缩略图是:aaaa.jpg,生成的缩图为aaaa.t100x100.jpg。而又拍却是aaa.jpg!t100x100.jpg,这个对我们的改动有点大。(这个需要客户端改程序)
3、我们原有的图片用什么方式上传到又拍比较合适?(我们原有的项目,必须要以FTP先传上去才OK)
4、有没有自动同步工具?比如我们本地生成了图片,然后能够自动同步到又拍?有没有好的建议和思路,还是说需要我们每上传一张图片,都要自动往又拍上传一次?(每次生成图片,都必须往又拍上传一次)
5、当第一次访问时,缩图不存在的时候,它的返回状态是什么?404?200?还是其他?(缩略图是在创建好后第一次访问的时候自动生成,如果不存在提示 404)
6、流量是按月计费还是按实际计费?因为又拍有CDN,所以,如果是按实际计费,这个CDN被访问的费用如何计入?(流量计费没有时间限制,直到用完为止。CDN 不另外计费,只会计算产生的流量。)
7、图片可以设置有权限访问,比如我们设置了一个密钥:xyz,那么实际图片为:abc.jpg时,访问的时候就需要通过abc.jpg!xyz,才能访问(该功能对缩略图无效,适合将来有可能的收费图片)
8、是否可以批量删除图片,如删除一年前的图片(不可以,只能用接口删除,但如果程序中一年前的图片都在同一个目录 下面,可以通过FTP将该目录 删除 )
9、上传图片到服务器上后,需要0~25分钟才能分发到各个节点。在这个时候,如果访问它。会出现什么样的情况?是从主节点访问?还是会出现404文件不存在?(因为用户第一次访问,如果节点(比如广东节点)不存在的话,会通过内部网络到源站获取,然后显示给客户,同时保存在节点机房中,也就是,你只要文件上传成功就全国各地都可以访问到了 )
10、缩略图的尺寸调整了。会影响吗?比如,尺寸100x100,后来我调成101x101了,原来的100x100的图对我是否有影响(只要原图没有去动过是没关系的。)

费用计算:
1、存储费用:
存储空间1G1元钱,即,如果附件是1000G,存储费用为1000元,这是按月计费,即一年为12000元
实际计算如下,粗略是当成每G 1元,比较容易计算:
• 0-10GB:0.9元/GB/月
• 10-50GB:0.819元/GB/月
• 50-100GB:0.738元/GB/月
• 100-500GB:0.69元/GB/月
• 500-1000GB:0.609元/GB/月
• 1000-5000GB:0.531元/GB/月
• 5000-10000GB:0.489元/GB/月
• 10000GB以上:0.45元/GB/月

2、流量费用:
▪ 100G 99元
▪ 250G 199元
▪ 600G 399元
▪ 1000G 599元
流量无时间限制,用完为止,用完后需要及时充值,否则可能会出现无法访问的情况
---------------
在我之前有很多人用过了。可惜我目前还没有优惠码。黑黑

firefox TABGRoup 的 BUG

firefox TABGRoup 的 BUG

不知道从哪个版本开始。firefox有了tab group的功能,以前也从来没有注意过它存在的问题。直到昨天:
昨天發生了什麼?我用Tabgroup功能,為我的兩批URL分了一個組,在我創建第三個group的時候,出現了異常,這回好了,firefox崩潰了。
崩潰完後,再次啟動firefox的時候。我的tab group裏的信息都沒了。OH MYGOD
我沒有仔細的想這個問題,我猜測:sqlite 崩潰後,被系統自動重建了。然後。就啥也沒有了。。

哭泣,我辛苦收集的那些URL啊。早知道及時加入收藏得了

一张老图

一张老图

一張老圖,不知道該說些什麼。
cbb014d6c6db2df1a8dbe0b0486d8df2
不在沉默中爆發就在沉默中滅亡。怎麼樣改善這種關係,其實也是做為一個最底層的人應該要考慮的事情