<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.5" -->
<rss version="0.92">
<channel>
	<title>蓝色骑兵-web技术&#124;网络生活</title>
	<link>http://www.wkeke.cn</link>
	<description>追逐和分享web技术资讯，沉浸并热爱互联网虚拟生活，高擎蓝色大旗，像亚瑟王一样战斗……</description>
	<lastBuildDate>Wed, 01 Feb 2012 17:35:28 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>PHP接受JSON数据时需要注意魔术引号</title>
		<description>今天碰到一个问题，前端post一坨已经序列化好的JSON数据，传到后端后，PHP解析不出来，用PHP直接解析一个正常json字符串是好使的。说明PHP接到字符串后做了一些处理，导致json_encode不能解析。首先想到魔术引号，当打开时，所有的 '（单引号），"（双引号），\（反斜线）和 NULL 字符都会被自动加上一个反斜线进行转义。这和  addslashes() 作用完全相同。我本地的系统正是因为开启了魔术引号，php接到json字符串后将双引号转义了。通过下面方法解决：






 </description>
		<link>http://www.wkeke.cn/archives/php-post-json-magic-quote/</link>
			</item>
	<item>
		<title>假期结束，继续上路</title>
		<description>新年假期结束了，如期上班，重新踏上征程。昨天去了地坛庙会，感受了下老北京的过年气息，但感觉真的不怎么样，那庙会完全是一帮奸商趁着过年这几天拼命忽悠宰游客啊。

去年比较懒，博客没有更新，工作太忙不是借口，希望新年新气象，加强积淀和总结，迈向新征途，希望今年定下的目标一个个都能实现。 </description>
		<link>http://www.wkeke.cn/archives/holiday-end-2012/</link>
			</item>
	<item>
		<title>用screen管理远程会话</title>
		<description>在公司经常一进电梯，wifi被屏蔽，准入断掉，ssh终端也断开连接，代码没有及时保存，已经追悔莫及。重新登录之后，原来的状态也已经无法恢复，一堆窗口又要一个个打开，坑爹啊，有木有！！！
其实不用这么烦，有screen命令啊。screen工具是一个终端多路转接器，在本质上，这意味着你能够使用一个单一的终端窗口运行多终端的应用。screen中有会话的概念，用户可以在一个screen会话中创建多个screen窗口，在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。在screen中创建一个新的窗口有这样几种方式：

1．直接在命令行键入screen命令

[root@tivf06 ~]# screen

Screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序，就像在ssh窗口中那样。在该窗口中键入exit退出该窗口，如果这是该screen会话的唯一窗口，该screen会话退出，否则screen自动切换到前一个窗口。

2．Screen命令后跟你要执行的程序。

[root@tivf06 ~]# screen vi test.c

Screen创建一个执行vi test.c的单窗口会话，退出vi将退出该窗口/会话。

3．以上两种方式都创建新的screen会话。我们还可以在一个已有screen会话中创建新的窗口。在当前screen窗口中键入C-a c，即Ctrl键+a键，之后再按下c键，screen 在该会话内生成一个新的窗口并切换到该窗口。

screen还有更高级的功能。你可以不中断screen窗口中程序的运行而暂时断开（detach）screen会话，并在随后时间重新连接（attach）该会话，重新控制各窗口中运行的程序。例如，我们打开一个screen窗口编辑/tmp/abc文件：


参　　数：
-A 　将所有的视窗都调整为目前终端机的大小。
-d  　将指定的screen作业离线。
-h  　指定视窗的缓冲区行数。
-m 　即使目前已在作业中的screen作业，仍强制建立新的screen作业。
-r  　恢复离线的screen作业。
-R 　先试图恢复离线的作业。若找不到离线的作业，即建立新的screen作业。
-s 　指定建立新视窗时，所要执行的shell。
-S  　指定screen作业的名称。
-v 　显示版本信息。
-x 　恢复之前离线的screen作业。
-ls或--list 　显示目前所有的screen作业。
-wipe 　检查目前所有的screen作业，并删除已经无法使用的screen作业。

常用screen参数：
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

在每个screen session 下，所有命令都以 ctrl+a(C-a) 开始。
C-a ...</description>
		<link>http://www.wkeke.cn/archives/linux-screen/</link>
			</item>
	<item>
		<title>我们的世界需要更多&#8221;地球一小时&#8221;</title>
		<description>又到了“地球一小时”的时间，活动的原生意义在于唤起人们的环保意识，让更多的人能投入环保。但绿色生活在我们的社会大都流于形式，更是成为许多商家坑蒙拐骗的广告语。以破坏环境、竭泽而渔来换取经济回报的现象，在我国遍地都是，我觉得观念以及全民素质在这里起了很大的作用。

希望我们的社会能有更多的“地球一小时”，

希望环保、绿色概念能真正走入寻常百姓家，

希望我们的城市上空不再阴霾，

希望每个人都能呼吸到真正新鲜的空气。 </description>
		<link>http://www.wkeke.cn/archives/earth-hour-2011/</link>
			</item>
	<item>
		<title>Web开发人员感兴趣的15个开源项目[转载]</title>
		<description>如今，构建网站和开发Web应用程序已经不仅要求开发人员是一名优秀的程序员，更需要聪明的程序员。这也就是说，在可能的情况下，重复使用已有的代码和应用程序，而不是自己重头开始。

开源由来已久，并且很多网站的构建也使用了开源。开发人员都知道Linux、Apache、MySQL及 PHP （LAMP）。

但是除那些之外的其他开源项目呢？作为一名Web开发人员，你可以借助诸多可用的项目，以节省开发时间，或提高程序性能。

下面让我们看一下哪些开源项目可供大家免费使用。

【可供使用的新型数据库】

传统上讲，你可能习惯使用MySQL。尽管MySQL是一个非常棒的数据库，但诸多试图解决MySQL存在的问题的新型数据库已经问世。


1. MongoDB

MongoDB就是的“非关系型”数据库之一。它扩展性强、性能高。

2. Apache Cassandra

与MongoDB相似，Apache Cassandra也是一种“非关系型”数据库，它亦扩展性强、性能高。并且能够很好地处理庞大而活跃的数据集。（编注：Facebook用Cassandra来做邮箱搜索。）

更多

根据需要，你还有更多的选择。请参阅维基百科的这个列表。

【缓存数据】

因为需要频繁使用一些数据，所以相比每次去数据库中查询，把这些数据存放在内存中更加合理。这能够大大提高Web应用程序的运行速度。

3. Memcached

Memcached是一种在内存中缓存小型数据块的简单但强大的解决方法。（编注： Facebook运行着成千上万的Memcached服务器，借以及时处理TB级的缓存数据。）

4. Redis

Redis的作用与Memcached相同，但包含更多的特性。例如，它也可以存储本应当永久性保存在磁盘上的数据。

【加快网络请求的速度】

大多数网站使用Apache的网络服务器来提供服务。它能够很好地服务于大多数网站，但是一旦网站的访问量增大，就需要做进一步优化。

5. Nginx

Nginx是一种与Apache非常相像的网络服务器，但它的速度相当快。作为负载平衡器，它常用于处理静态内容，如图像文件。

6. Varnish

Varnish是位于常规网络服务器之前的高速缓存器。它将所有热门内容放入内存，直接对其处理，无须将所有内容都传给网络服务器。（编注： Facebook用Varnish 处理图片和用户照片，每天都要处理十亿级的请求。Facebook所用到的其他开源项目，请参阅《揭秘Facebook背后的那些软件》一文。）

【轻松管理内容】

如果你在构建一个允许用户添加及编辑内容的网站，那么你可能需要一个内容管理系统（CMS）。CMS能够帮助开发人员轻松地管理博客及网站，并且提供大量的能够扩展网站功能的插件。

7. WordPress

虽然WordPress是个博客平台，但它也能用于管理大大小小的网站。

8. Drupal

Drupal是一个可用于构建强扩展性、高灵活性网站的完整平台。

更多

还有很多可用的内容管理系统。请参阅维基百科的这个大型列表。

【交互式的网络UI】

如今，你可以使用JavaScript和AJAX技术，开发一个类似桌面应用程序那样的以多种方式运行的网络应用。使用JavaScript框架，能够轻松地开发大型的网络应用程序。

9. JQuery

JQuery是一个带插件的框架，这些插件有主构建包含AJAX交互及动画的动态网站。

10. MooTools

MooTools就和jQuery一样，是一个使用JavaScript构建强大网络应用程序的框架。

更多

如果你想尝试一下其他选择，请参考维基百科的这个列表。

【其他比较炫的资源】

当你开始开发一个复杂的网络应用程序时，很多软件、库及模型能够帮你解决难题，如果不参考这些资源，你可能会花费大量的时间。以下是两个入门的例子。

11.  Node.js

Node.js是一个事件驱动的输入/输出框架，支持用JavaScript编写应用程序，并在V8 JavaScript引擎上运行。这是一种开发快速、可扩展网络程序的很棒的方式。

12. RabbitMQ

RabbitMQ是一种可靠的、可扩展的信息传送系统，它能够处理高吞吐量。如果需要在系统之间或应用程序之间交换数据，比起传统的解决方案或直接将数据存储在数据库中，信息传送系统的更能胜任这一工作。

【使用框架来加速开发进程】

不管你是使用PHP还是其他的编程语言，有很多不同的可用框架能够帮助你加速开发进程，并能够更加轻松地管理代码。

13. Symfony

Symfony是一个PHP框架，它包含很多能够加速开发复杂网络应用程序的组件及工具。同时它包含社区提供的1000多个插件。

14. Ruby on Rails

对Ruby语言而言，Ruby on Rails是最流行的可用框架。

15. Django

Django是一个Python网络框架，它用来帮助快速开发高性能、优秀的网络应用程序。

更多

维基百科上有一份更完整的列表，这个列表包含不同语言的可用网络应用框架。

【后话 - 合理利用时间】

开发人员有必要花费时间不断了解哪些新软件是可用的，这样对轻松地解决复杂的任务大有裨益。

而且在项目开发之初，花费一些时间做计划和调查也是非常有必要的，因为这样可以明确即将面临的问题，并确定其最佳解决方案。

自己编程来解决每个问题的时代已经结束，如今更多的是灵活使用现有技术来解决问题。

不知正在看本文的Web开发人员，在上述这些开源项目中，你用到了哪些？欢迎你在评论中分享你的使用经验和心得。

原文地址：http://www.javaeye.com/news/20144 </description>
		<link>http://www.wkeke.cn/archives/15-web-open-source-project/</link>
			</item>
	<item>
		<title>利用GAE搭建blog程序</title>
		<description>GAE真的是个非常好的平台，能用来做很多事情。我平时就用它搭的代理来翻墙。今天准备在GAE上搭个blog玩玩，好像Micolog口碑很好，就使用了这款程序，在本地安装调试时出现了如下错误：
import _multiprocessing

ImportError: No module named _multiprocessing
但发布到GAE上是没有问题的。在网上发现很多人也遇到这个问题，应该是python版本的问题，我本地的python版本是2.6.2，官方的python版本是2.5，GAE还不能很好地支持python2.6.2。

对于本地调试出现的上面这个问题，也是有解决之道的：

在根目录下新建一个名为_multiprocessing.py的文件，写入一行代码即可：import multiprocessing </description>
		<link>http://www.wkeke.cn/archives/google-gae-micolog/</link>
			</item>
	<item>
		<title>新年快乐</title>
		<description>农历新年马上就要到了，现在还在公司，傍晚就要开始赶赴老家的旅程，预祝家人们身体倍棒，吃嘛嘛香，预祝各位 2011神马困难都是浮云，神马表现都要给力，神马梦想都能实现！ </description>
		<link>http://www.wkeke.cn/archives/happy-new-year-201/</link>
			</item>
	<item>
		<title>preg_replace_callback()调用类中的回调函数</title>
		<description>最近项目中使用preg_replace_callback，需要使用它执行正则匹配时回调类中的方法，需要有一些注意的地方，做个记录。PHP文档中这样介绍 preg_replace_callback：(PHP 4 >= 4.0.5, PHP 5中可以使用)，该方法用回调函数执行正则表达式的搜索和替换，本函数的行为几乎和 preg_replace() 一样，除了不是提供一个 replacement 参数，而是指定一个 callback 函数。该函数将以目标字符串中的匹配数组作为输入参数，并返回用于替换的字符串。

所以，我们可以这样使用这个函数，下面是PHP手册中的例子：

  // 此文本是用于 2002 年的，
  // 现在想使其能用于 2003 年
  $text = "April fools day is 04/01/2002\n";
  $text.= "Last christmas was 12/24/2001\n";

  // 回调函数
  function next_year($matches) {
    // 通常：$matches[0] 是完整的匹配项
 ...</description>
		<link>http://www.wkeke.cn/archives/preg_replace_callback_in_php/</link>
			</item>
	<item>
		<title>折腾VMware与Ubuntu</title>
		<description>这两天在虚拟机上折腾Ubuntu，期间有一些细节真是大费周章。最先是在xp上装上了VMware 6.5 ACE版，装Ubuntu10.10，死活装不上，在文件读取界面过后即进入命令行状态。然后重新装了一个VMware 6.5，这回顺利安装了Ubuntu10.10，然后装Vmware tools，但安装到vmmemctl模块时，读取文件失败，路径不对，应该是Ubuntu版本太高，而VMware版本较低。遂换一个较低版本的Ubuntu，安装Ubuntu10.04，这次成功走完了VMware tools的安装过程，之后准备在host系统和guest系统间共享文件，在VMware的share folder设置好共享之后，在Ubuntu的/mnt/hgfs下却找不到共享的文件夹，检查发现vmhgfs没有安装成功，再次安装VMware tools，一路回车的同时，仔细查看输出，发现基本所有的模块都安装失败，然后查找资料，试了很多方法，包括修改VMware tools安装包中vmhgfs.tar中的源文件，但无济于事，想想应该还是VMware版本的问题，遂重新安装最新VMware 7.X，然后依托其安装Ubuntu10.10，终于一路顺水顺风了。

BTW:Ubuntu10.10中自带的Ubuntu字体确实很漂漂~ </description>
		<link>http://www.wkeke.cn/archives/vmware7-ubuntu10/</link>
			</item>
	<item>
		<title>O&#8217;Reilly Velocity China 2010</title>
		<description>O'Reilly Velocity China 2010 Web 性能和运维大会于12月7日在北京召开，致力于Web应用性能的提升和同时更加稳定的表现。大会云集众多专家，值得一看。

“5年前只有开发人员关心网站的性能。而今天认识到快速网站重要性的群体已经扩展至更广泛的范围，包括销售团队、市场部门、商业开发人员以及更高的管理层。 这就导致一个新产业的出现──WPO（Web Performance Optimization  ，网站性能优化）。现有的厂商在增加网站性能服务。创业公司则提供提高用户体验的新技术。主流网站在购买这些服务的同时自己也开发更多的服务和技术。采用 WPO技术的网站能吸引更多的用户，提供更好的用户体验，增加收入，并且降低成本。5年来我们走了很长的一段路，让我们共同回顾一下在让网站变得更快的道 路上的一些成就。”

官网上总结的 发言幻灯片及视频
 </description>
		<link>http://www.wkeke.cn/archives/oreilly-velocity-china-2010/</link>
			</item>
</channel>
</rss>

