易栈网-膘叔

浏览模式: 标准 | 列表 | 图文

捉马记

不知道从什么时候开始。突然发现fck竟然又被黑了。然后花了一个晚上的时候,检查代码,写脚本找马。
最后找了一大堆代码。找到了7、8个挂马位。不知道还有没有马了。确实准备什么时候重写。然后。。。所见所得换成markdown编辑器。这回我看你们怎么挂 马。NND

为什么BOSS偏重于产品而不是技术?

为什么BOSS偏重于产品而不是技术?

下面这段话是来自于兔子所说,两三个月前说的了,然后我保存了下来,觉得有点意义。

1.程序员提供的是技术实现,这种实现所需的能力是普遍性的,不具有不可替代性。产品提供的创造,不同的人创造的结果也会不一样,创造性越强的工种越值钱,创造性好的还具有不可替代性。
2.当你砌墙的时候你当然需要用大脑分别现在是该涂水泥了还是该放砖头了,经验工还知道怎么砌这个墙更牢固,但是砖头砌到那里该转弯了是设计墙的人决定的,这就是我说的脑和手。
3.老板都自认为自己是做产品的,他和产品有天生的亲近感。
4.技术和老板往往是被产品隔断的。
5.老板和PM都可以说这个产品是我的,技术只会说我参与开发了,自我看待产品的视角就不一样。

---
在公司里谁更强势谁就有话语权,就象某人说的,曾有某大型互联网公司的产品去他们那边唧唧歪歪,然后被他们开掉一样。但大多数的人还是会迷信这些人。就象上面的第3点。
其实痛苦的是第四点,当老板发现产品不是自己想的那样时,技术更多的可能是说没办法实现。于是这时候问题就来了,技术不给力啊,产品也很得意,不是我设计的不好,而是对方没能力实现我的想法我的创意啊。

如此循环,互斗。

首页访问速度怎么样?(调查一个月)

首页访问速度怎么样?(调查一个月)

第一次访问我的首页的时候,可能会触发一个连接广告的代码,是远程的链接。所以会有点卡。大约要0.3秒左右 ,后面我做了cookie和session的保存,时间设为了300秒,即5分钟。这时候你再刷新的话,黑黑,一下子就成了0.004左右了。

这次的VPS是换成了99vps.net的xen,2G内存。说起来,昨天我想再买一个的时候,发现他们的512M的VPS已经卖完了,1G的也只剩2个额了。

网上应该有很多促销码吧。不过,据99vps的人说,他们准备取消低内存的用户,尽量做高端的,因为高端的都会寻求稳定,而低端用户都是折腾折腾就跑路的,大家都累。

当然,我也希望是这样,我就可以安心的用VPS了。毕竟这一回用下来还算比较爽的。

root@MyDebian64Bit:~# dd if=/dev/zero of=/root/zerofile bs=1M count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 0.410745 s, 654 MB/s

这是好是坏是说清,自己感觉吧。

---------

测试完后,请留言给个回复,谢谢

转一个小图

转一个小图

看到这个图的时候,你没有想过要笑还是要哭 ?

当第一次产品设计拿到的时候,和规划的时候,时间是不是都帮你定好了?但实际开发的时候,各种各样的事情,各种各样新的计划接踵而至,导致计划赶不上变化。最后就真的成了图下的情况,但客户真的是都是开心的吗?
2b840d82738de52525830ea6ceb55cb2
如果你是客户,你会开心吗?
如果你提开发,你会开心吗?
xcache...

xcache...

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

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

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

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

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

[转]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,如果搜索公众帐号,就搜:小菜谱。当然,你懒的话,就扫描这个:
aafb0ec8c08462b52dd87cf3aa1730b0
小LOGO是http://82982.com的小茗帮忙做的。。那一群设计师的朋友啊什么的,都说自己没空,我纠结啊。
不知道这个帐号是做什么的?那我得上好多图了。。。
先上两个简单的图吧
197533350e939ea0573bbf90e018bd2b
这些只是基础功能,还有相对比较高级一点的功能:
7a401b9fdc5a70ceb49e6157b267f6ba
34c6000024c90e299850df0a7be1d3ee
5978245bd1ed8ae3a139aba5699b289e
d4148dc8185203f709f7a7bb4abe1401
转:PHP中利用pcntl实现多进程(模拟多线程)实例

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

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

这里是某个人的测试代码:
<?php
/**
* 创建子进程入口
* @author selfimpr
* @blog http://blog.csdn.net/lgg201
* @mail lgg860911@yahoo.com.cn
* @param $func_name 代表子进程处理过程的函数名
* @param other 接受不定参数, 提供给子进程的过程函数.
*/
function new_child($func_name)
{
$args = func_get_args();
unset($args[0]);
$pid = pcntl_fork();
if ($pid == 0) {
function_exists($func_name) and exit(call_user_func_array($func_name, $args)) or exit(-1);
}
else if ($pid == -1) {
echo "Couldn’t create child process .";
}
}
//测试处理函数, 输出$prefix连接的数组
function test($prefix, $num)
{
while ($i++ < $num) {
echo $prefix . $i ."\n";
}
}
//创建一个子进程
new_child("test", "child process ", 100);
//父进程也开启一个与子进程同样多的循环.
test("parent process", 100);
//运行结果, 我这里运行父进程输出50个左右, 子进程开始运行.
?>
因为上面有作者有注释,所以我就不再多贴这篇文章的地址了。原网页的代码是错误的。我改了一下。原作者说的是:父进程输出50个左右时,子进程就开始运行了。我这边不是。我把数据改成1000后,发现父进程在950多的时候,子进程开始运行了。
原作者的博客上还有一个详细介绍:PHP扩展pcntl(进程控制以及信号处理)中文文档
当然,看手册也可以,对了,风雪之隅也写过类似的文章,http://www.laruence.com/2009/06/11/930.html,他提到的优点就是:
优点:
1. 使用多进程, 子进程结束以后, 内核会负责回收资源
2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.
3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚.
然后他的代码就与上面有点区别,不过说白了还是大同小异:
#!/bin/env php
<?php
/** A example denoted muti-process application in php
* @filename fork.php
* @touch date Wed 10 Jun 2009 10:25:51 PM CST
* @author Laruence<laruence@baidu.com>
* @license http://www.zend.com/license/3_0.txt PHP License 3.0
* @version 1.0.0
*/

/** 确保这个函数只能运行在SHELL中 */
if (substr(php_sapi_name(), 0, 3) !== 'cli') {
die("This Programe can only be run in CLI mode");
}

/** 关闭最大执行时间限制, 在CLI模式下, 这个语句其实不必要 */
set_time_limit(0);

$pid = posix_getpid(); //取得主进程ID
$user = posix_getlogin(); //取得用户名

echo <<<EOD
USAGE: [command | expression]
input php code to execute by fork a new process
input quit to exit

Shell Executor version 1.0.0 by laruence
EOD;

while (true) {

$prompt = "\n{$user}$ ";
$input = readline($prompt);

readline_add_history($input);
if ($input == 'quit') {
break;
}
process_execute($input . ';');
}

exit(0);

function process_execute($input) {
$pid = pcntl_fork(); //创建子进程
if ($pid == 0) {//子进程
$pid = posix_getpid();
echo "* Process {$pid} was created, and Executed:\n\n";
eval($input); //解析命令
exit;
} else {//主进程
$pid = pcntl_wait($status, WUNTRACED); //取得子进程结束状态
if (pcntl_wifexited($status)) {
echo "\n\n* Sub process: {$pid} exited with {$status}";
}
}
}
做个笔记。

socket and soap

其实本来不想定这个标题的。只是做了几个小小的测试

我用php实现了socket server,然后在命令行下做了点测试。在命令行下访问soap,并将返回值 给了客户端。

测试了一下。网速比较卡的情况下,基本在0.8秒左右

然后我直接访问soap,打印出来的时候都差不多比命令行返回结果多了0.2秒。

这只是测试了soap请求一次。后来,我请求了两次。发现速度又快了0.1秒。

总计快了0.3秒。在命令行下用socket server返回数据好象快了一点。

-----------

文章只是我的一次记录,没有什么特别的意义。虽然不太科学,但对我来说,有三四台服务器的情况下,利用这个来交换数据还是有点用的。目前我的socket server只能用PHP实现,因为 部分代码都是靠PHP来获取数据的。本来想用go或者python来实现的,但目前没有时间。先用PHP了