手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

xcache...

 好吧,我感觉又被xcache骗了。当然也可能是他们没注意吧。

在网站上,他们说:
修复版本. XCache admin 页面有大量改进, 增加 namespace 支持, 等等. 更新 API, 新增了一些 INI 设置. 新增 "诊断" 模块给出一些专家级建议 (htdocs 中). 进程异常时自动禁用缓存 (运行期间). 警告: 本版本开始使用 extension= 来加载 XCache. 不再支持采用 zend_extension= 方式加载.
 
其实我也不太敢说他们不好,上次我说:xcache 发布3.0版本, moo过来说了两句关于大版本更新的事。
再接着说上面的那句警告:本版本开始使用Extension那句
OK,当我装完的时候:
XML/HTML代码
  1. root@MyDebian64Bit:~/xcache-3.0.0# make install  
  2. Installing shared extensions:     /usr/lib/php5/20090626/  
你看,成功了,但是看了一下xcache.ini。。。
XML/HTML代码
  1. [xcache-common]  
  2. ;; install as zend extension (recommended), normally "$extension_dir/xcache.so"  
  3. zend_extension = /usr/lib/php5/20090626/xcache.so  
一下子就与说明不太一致了

纠结:好象orca.io被墙了?

 本来觉得orca.io这个免费的cdn还是不错的,用了一个月也确实觉得还行。结果。。。怎么这么快就被墙了呢?我晕啊。。

 
可怜的v2ex,你做什么不被墙啊?
感慨一下。没有什么其他的想法。不过我已经想到一个cdn的地方了。黑黑

Tags: cdn

[转]Developer Time

 其实这篇文章的中文翻译真的好理解,所以我就不翻了啦。懒得翻译的人,可以直接看google translate页面:http://translate.google.com.hk/translate?act=url&hl=en&ie=UTF8&prev=_t&sl=auto&tl=zh-CN&u=http://pydanny.com/developer-time.html

OK,我下面贴的是原文:

This blog post got started with a tweet.

That tweet got retweeted a lot by developers. And system administrators. And database administrators. And any creative type.

As of December 7th, 2012, it had been retweeted over 500 times, a personal best. Obviously I struck a chord that resonated with a lot of people.

Why did this tweet resonate with so many people?

What I said in that tweet was not new - dozens if not hundreds of others have tweeted similar thoughts before and gotten many retweets. Heck, it's been written about in blogs and articles for years, either as a huge rant or often as an effort to politely educate others on how to set up a developer/operations/creative shop.

I think this is because developers/engineers/creatives (and good managers) know that even a tiny distraction to someone "in the zone" takes more than just the 3-5 minutes it takes for you to finish a question and get an answer. Plus, because you are trying to remember the pieces in your head, you won't be able to give this issue your full attention. Which causes a whole other set of issues.

We know this. Good managers know this. Good companies live off of it.

And yet this remains a huge problem for many of us because the distractions keep happening. Maybe it's because your manager doesn't understand this issue, or you have a team mate who can switch in-and-out of the zone with impunity. Or because you foolishly leave the chat/IRC/phone on and you get pinged.

How do we fix it?

We can't.

I know this sounds depressing, but I'm being realistic. Here's some reasons that apply:

  • Unless you are fortunate enough to be working on a solo effort, you are working with other developers/engineers/creatives. And if they can't ask you questions or inform you about critical stuff then you or they can waste hours.
  • Meetings, short or long, online or in person, are a necessary part of any operation. If not with your boss or underlings, then with clients or users.
  • Your boss/co-workers/underlings/kids/pets/parents don't get it that you can't be interrupted.
  • As a freelancer, you can't be inaccessible to existing or potential clients.

No really, how do we fix it?

Doesn't matter how frequently you ask the the question (or rant about it), I don't believe this problem can be really solved. However, here are some possible mitigations:

1. Maker's Day

My friend, Craig Kerstiens describes how Heroku gives engineers a full day each week (Thursday) to focus on getting stuff done. No meetings, no standup, just 100% uninterrupted quiet time to focus on making stuff.

Suggest this at your company and see how it goes!

2. Blocks of Time

As of 2010, Eldarion broke up their work day into at least two sizable chunks of uninterrupted activity. Between the chunks you communicated with co-workers. The advantage of this approach is if you went down the wrong path or someone had a critical question, the period between chunks addressed this issue.

In theory this is how a lot of places work (lunch being the break). The reality is that the distractions often still pile in. For Eldarion it worked because everyone was remote.

3. New Desk Location

If working at an office, asked to be moved to a place with less foot traffic. The downside to this is you can end up in noisy, cold, dark places.

4. New Job

Switch to a new job that promises less distractions.

Maybe I'm wrong

I'm more than happy to be proven wrong.

Maybe there is a way to get 4-6 hours a day of uninterrupted maker's time every work day.

If you've got any ideas, let me know!

-------

没有什么正确的东西,无非就是你自己怎么选择。和你自己是怎么看待被打断的。

小菜谱

 想不到,我的http://xiaocaipu.com还没有上线,我的微信功能却已经正常在运作了。

打开微信搜索好友,如果按帐号添加,就搜索:xiaocaipu,如果搜索公众帐号,就搜:小菜谱。当然,你懒的话,就扫描这个:
大小: 31.05 K
尺寸: 376 x 376
浏览: 1502 次
点击打开新窗口浏览全图
小LOGO是http://82982.com的小茗帮忙做的。。那一群设计师的朋友啊什么的,都说自己没空,我纠结啊。
 
不知道这个帐号是做什么的?那我得上好多图了。。。
先上两个简单的图吧
大小: 436.27 K
尺寸: 251 x 376
浏览: 1551 次
点击打开新窗口浏览全图
大小: 431.13 K
尺寸: 251 x 376
浏览: 1515 次
点击打开新窗口浏览全图
 
这些只是基础功能,还有相对比较高级一点的功能:
大小: 410.32 K
尺寸: 251 x 376
浏览: 1544 次
点击打开新窗口浏览全图
大小: 432.41 K
尺寸: 251 x 376
浏览: 1509 次
点击打开新窗口浏览全图
大小: 440.51 K
尺寸: 251 x 376
浏览: 1469 次
点击打开新窗口浏览全图
大小: 467.44 K
尺寸: 251 x 376
浏览: 1518 次
点击打开新窗口浏览全图

Tags: 小菜谱

转:PHP中利用pcntl实现多进程(模拟多线程)实例

 pcntl在很久很久之前就听过了,但是一直没有尝试着真正要用它。这不,遇到socket问题了,看socket,遇到pcntl了,再看看吧。

这里是某个人的测试代码:
PHP代码
  1. <?php  
  2. /** 
  3.  * 创建子进程入口 
  4.  * @author selfimpr 
  5.  * @blog http://blog.csdn.net/lgg201 
  6.  * @mail lgg860911@yahoo.com.cn 
  7.  * @param $func_name 代表子进程处理过程的函数名 
  8.  * @param other 接受不定参数, 提供给子进程的过程函数. 
  9.  */  
  10. function new_child($func_name)  
  11. {  
  12.     $args = func_get_args();  
  13.     unset($args[0]);  
  14.     $pid = pcntl_fork();  
  15.     if ($pid == 0) {  
  16.         function_exists($func_nameand exit(call_user_func_array($func_name$args)) or exit(-1);  
  17.     }  
  18.     else if ($pid == -1) {  
  19.         echo "Couldn’t create child process .";  
  20.     }  
  21. }  
  22. //测试处理函数, 输出$prefix连接的数组    
  23. function test($prefix$num)  
  24. {  
  25.     while ($i++ < $num) {  
  26.         echo $prefix . $i ."\n";  
  27.     }  
  28. }  
  29. //创建一个子进程    
  30. new_child("test""child process ", 100);  
  31. //父进程也开启一个与子进程同样多的循环.    
  32. test("parent process", 100);  
  33. //运行结果, 我这里运行父进程输出50个左右, 子进程开始运行.    
  34. ?>    
因为上面有作者有注释,所以我就不再多贴这篇文章的地址了。原网页的代码是错误的。我改了一下。原作者说的是:父进程输出50个左右时,子进程就开始运行了。我这边不是。我把数据改成1000后,发现父进程在950多的时候,子进程开始运行了。
原作者的博客上还有一个详细介绍:PHP扩展pcntl(进程控制以及信号处理)中文文档 
 
当然,看手册也可以,对了,风雪之隅也写过类似的文章,http://www.laruence.com/2009/06/11/930.html,他提到的优点就是:
XML/HTML代码
  1. 优点:  
  2.     1. 使用多进程, 子进程结束以后, 内核会负责回收资源  
  3.     2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.  
  4.     3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚.  
然后他的代码就与上面有点区别,不过说白了还是大同小异:
PHP代码
  1. #!/bin/env php  
  2. <?php  
  3. /** A example denoted muti-process application in php 
  4. * @filename fork.php 
  5. * @touch date Wed 10 Jun 2009 10:25:51 PM CST 
  6. * @author Laruence<laruence@baidu.com> 
  7. * @license http://www.zend.com/license/3_0.txt PHP License 3.0 
  8. * @version 1.0.0 
  9. */  
  10.    
  11. /** 确保这个函数只能运行在SHELL中 */  
  12. if (substr(php_sapi_name(), 0, 3) !== 'cli') {  
  13.     die("This Programe can only be run in CLI mode");  
  14. }  
  15.    
  16. /** 关闭最大执行时间限制, 在CLI模式下, 这个语句其实不必要 */  
  17. set_time_limit(0);  
  18.    
  19. $pid = posix_getpid(); //取得主进程ID  
  20. $user = posix_getlogin(); //取得用户名  
  21.    
  22. echo <<<EOD  
  23. USAGE: [command | expression]  
  24. input php code to execute by fork a new process  
  25. input quit to exit  
  26.    
  27.         Shell Executor version 1.0.0 by laruence  
  28. EOD;  
  29.    
  30. while (true) {  
  31.    
  32.         $prompt = "\n{$user}$ ";  
  33.         $input = readline($prompt);  
  34.    
  35.         readline_add_history($input);  
  36.         if ($input == 'quit') {  
  37.                break;  
  38.           }  
  39.         process_execute($input . ';');  
  40. }  
  41.    
  42. exit(0);  
  43.    
  44. function process_execute($input) {  
  45.         $pid = pcntl_fork(); //创建子进程  
  46.         if ($pid == 0) {//子进程  
  47.                 $pid = posix_getpid();  
  48.                 echo "* Process {$pid} was created, and Executed:\n\n";  
  49.                 eval($input); //解析命令  
  50.                 exit;  
  51.         } else {//主进程  
  52.                 $pid = pcntl_wait($status, WUNTRACED); //取得子进程结束状态  
  53.                 if (pcntl_wifexited($status)) {  
  54.                         echo "\n\n* Sub process: {$pid} exited with {$status}";  
  55.                 }  
  56.         }  
  57. }  
做个笔记。
 
 
 
 

Tags: 多进程, pcntl