2014年6月 ’ 的文章存档

PHP程序的执行流程

为了以后能开发PHP扩展,就一定要了解PHP的执行顺序。这篇文章就是为C开发PHP扩展做铺垫。

Web环境我们假设为Apache。在编译PHP的时候,为了能够让Apache支持PHP,我们会生成一个mod_php5.so的模块。Apache加载这个模块,在url访问.php文件的时候,就会转给mod_php5.so模块来处理。这个就是我们常说的SAPI。英文名字是:Server Application Programming Interface。SAPI其实是一个统称,其下有 ISAPI,CLI SAPI,CGI等。有了它,就可以很容易的跟其他东西交互,比如APACHE,IIS,CGI等。
阅读全文

探索Javascript异步编程

异步编程带来的问题在客户端Javascript中并不明显,但随着服务器端Javascript越来越广的被使用,大量的异步IO操作使得该问题变得明显。许多不同的方法都可以解决这个问题,本文讨论了一些方法,但并不深入。大家需要根据自己的情况选择一个适于自己的方法。

目录

  • JavaScript 异步编程简介
  • 回调函数和异步执行
  • Javascript线程模型和事件驱动
  • Javascript异步编程带来的挑战
  • 代码可读性
  • 流程控制
  • 异常和错误处理
  • 更好的Javascript异步编程方式
  • Promise
  • Non-Promise
  • Non-3rd Party
  • 下一代Javscript对异步编程的增强
  • ECMAScript6
  • co、Thunk、Koa
  • 总结

笔者在之前的一片博客中简单的讨论了Python和Javascript的异同,其实作为一种编程语言Javascript的异步编程是一个非常值得讨论的有趣话题。

JavaScript 异步编程简介

回调函数和异步执行

所谓的异步指的是函数的调用并不直接返回执行的结果,而往往是通过回调函数异步的执行。
阅读全文

14个免费访客行为分析工具 – 揭示人们为什么放弃你的网站

为什么你网站的访客不断的离开,甚至有些永远都不再回来!本文介绍的14个免费访客行为分析工具将帮助你:

1. 了解你的访客需求
2. 提升用户体验
3. 提高网站可用性
4. 留住更多的回头客
5. 提高销售的成功率

toolstrimmed

 

关于网站设计有一个很大问题: 如果你想让你网站的访客更好的转换为你的客户(或者忠实读者),你需要理解这一点,为什么大多数的访问者不再返回你的网站!
阅读全文

如何对待开发团队中那个拖后腿的人?

每个开发团队中总有一个人是最差的,老跟不上整体水平。据我观察,队友们对待这个差生的态度是团队健康状况的重要标志。(注:原文用“贝尔曲线(bell curve)”,也就是“正态分布”来衡量团队的整体水平分布,这里意译成“整体水平”。)

我运气一直不错,在过去的几十年里,干过各种的行业和职业,在不少团队中待过,都是气氛融洽和技能娴熟的开发团队。并不是说每个项目都是成功的,(外部因素无法控制),但是经验永远有深刻的价值。

在成功的开发团队里,最显著的特点是队员们互相尊重——“他擅长做这个,也喜欢做这个。好极了。因为我不喜欢做这个”)。每个人都明白人多力量大的道理,并懂得珍惜队友的技能。如果你在这样的团队中待过(或者你曾管理过这样的一群家伙),你懂我的意思。

不论这些黄金组合团队是网络社区、公司部门还是志愿者组织,都有个共同特点:每个团队中都有这样的一个人——我们可以无恶意的称之为笨蛋,但重点是,大家却对这个人很好
阅读全文

程序员的办公桌

优秀的程序员和普通的程序员之间的生产力差距在10倍到100倍之间。窥视高手的办公桌看看能不能找到高手生产力的秘密,没有高手的智慧和经验但至少不要让自己输在工具上,好的工具真的可以提高生产力,飞机真的比汽车快。看看什么样的环境和电脑帮助这些高手提高生产力的,VPSee 发现有两点值得注意:

  • 最简风格,工具都很简单,大多办公桌上没有乱七八糟的东西;
  • 都用 Mac(有一人同时用 Mac 和 ThinkPad),这个不稀奇,三年前就讨论过:为什么国外程序员爱用 Mac?

Coderwall 是 Y Combinator 最近孵化的其中一家创业公司中,致力于聚合 Geek 们在 Github、Twitter、LinkedIn 等的项目和信息,为 Geek 打造一张“技术名片”。最近 Coderwall 社区分享了几位技术高手的工作平台,以下图片来自 Codewall.

Ilya Grigorik: Google 工程师。

igrigorik

 

Alex MacCaw: JavaScript 程序员,O’Reilly 作者,目前在 Stripe 公司工作。

a2

 

Sam Soffes: iOS 和 Rails 软件工程师,Synthetic 前雇员,目前在创业。

a3

 

Max Howell: Homebrew 的作者。

a4

 

Scott Hanselman: 微软工程师。

a5

 

Jeff Lindsay: 开源黑客,Hacker Dojo 创始人,目前在 Twilio 工作。

a6

 

Dr Nic Williams: 每个 Ruby 社区的人都应该听过或看过他的作品,贡献了超过100个开源项目,目前在 Engine Yard 工作。

a7

 

Phil Haack: 前微软 ASP.NET 程序经理,目前在 GitHub 工作。

a8

 

Michael Bleigh: 开发了几个被广泛使用的 Ruby 开源软件库。

a9

 

Chris Eppstein: Compass 框架作者和 Sass 贡献者。

a10

 

文章来自:vpsee.com

ModSecurity SQL注入攻击 – 深度绕过技术挑战

ModSecurity是一个入侵探测与阻止的引擎,它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.它可以作为Apache Web服务器的一个模块或单独的应用程序来运行。ModSecurity的目的是为增强Web应用程序的安全性和保护Web应用程序避免遭受来自已知与未知的攻击。本文主要介绍了针对开源WAF的一次渗透测试比赛中的思路。
阅读全文

盘点史上最大胆又阴险的十二大软件后门

在信息时代,要保护个人数据和隐私安全似乎正越来越变成一件艰难的事情。如果软件的创造者或者一些未知的第三方已经悄悄在你的电脑里埋下了后门软件,要确保您正在使用的软件是安全的,则更是难上加难。

下面我们就来盘点一下历史上12大最大胆又艰难棘手、令人讨厌的的软件后门程序。

back_door

 

 

史上十二大软件后门盘点(图:163.com)

1.Back Orifice

Stop Updates

 

Back Orifice是一个用于揭示微软Windows操作系统安全隐患的rootkit程序。这个软件是由微软的BackOffice产品而得名的。由一组被称为cult of the Dead Cow的电脑黑客开发的,Back Orifice允许某些人在一台电脑上控制另一台运行Windows 95或其后的操作系统的电脑。当没有任何防护时,Back Orifice能探测到密码,记录用户的按键情况,进入到一个桌面文件系统或造成其他的**。

它能象以黑客为目的的特洛伊木马程序一样被植入到用户的电脑中,或作为网络的远程管理工具来使用。
阅读全文

同为程序员 为什么我的工资最低

我看着工资单上每一个开发团队成员的薪水,慢慢地我不能保持淡定了。

而当我看到我的工资排名是倒数的时候——靠近最后一名——我不由得倒抽一口冷气。就像圣诞故事中的那个可爱的小男孩Ralphie ,想买气枪却被忽悠会有危险一样,我也不断忽悠自己安慰自己。

salary

 

 

然后当我想到这可能是公司给我的考验时,心情一下子就明媚多了。甚至,我在想,有可能这是一个陷阱,一旦掉进去就会引发严重的问题。

可能你会问我,我是怎么搞到这么重要的员工工资表的?需要郑重声明一下,我可没有去偷,拿到它完全是一个意外。
阅读全文

程序员必须进行的10项投资

  • 你的健康

显而易见,开发人员经常都是坐着不动的。每天坐8到16个小时,只休息很短的时间,你的肚子周围很容易会堆起赘肉。肥胖是其它疾病的催化剂,而其中心脏病又是最可怕的。多花点时间运动一下就能避免这样的情况,如果有可能的话,花点钱办一张健身房的会员卡。
长时间以不符合人体工程学的姿势打字,也容易使开发人员选成重复性的肌肉损伤,比如说腕管综合征。每隔几个小时拉伸一下你的手腕或者买块鼠标和键盘都能用的手腕护垫可以避免这样的损伤。
盯着屏幕也会给你的眼睛造成压迫,这就是为什么建议配一副防眩光眼镜而不是普通眼镜的原因(假设你是戴眼镜的)。
阅读全文

RESTful API 设计指南

网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……)。

因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现“API First”的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。

今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理、好用的API。我的主要参考资料是这篇《Principles of good RESTful API Design》
阅读全文