<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<channel>
	<title>Some reminiscences, some memories</title>
	<link>http://www.mikespook.com</link>
	<description>Just another boring day</description>
	<lastBuildDate>Wed, 28 Jul 2010 03:47:35 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	<!-- generator="WordPress/3.0" -->

	<item>
		<title>我们精通精通</title>
		<description><![CDATA[事情的起因是这样的：在 CPyUG 里，赖神代别人发了一则招聘。我看到项目经理的岗位要求中写着“精通面向对象编程”，大而迷惑之，遂对赖神进行了无情的调侃（我是坏人……）。遂即，鱼哥私下指点我曰“这年头精通就是个修饰词。。不要当真。。”。我顿悟——“修饰词”，这是多么精准的描述啊。 装过两次 Ubuntu，我们写“精通 Linux”。 用 Windows SDK 的 API 花了两小时，开发了个简单的 Windows Service，我们写“精通 Windows 底层开发”。 改造了一个 Dz 论坛，我们写“精通社区开发”。 用 SSH 组装了一个简易劳资系统，我们写“精通JAVA/J2EE” …… 无数的精通围绕着我们。但是不写精通行吗？ 招聘技术总监要求“精通……”，认了，在情之中。 招聘架构师要求“精通……”，认了，在理之内。 但是招聘一个普通系统工程师要求“精通……”？ 招聘一个普通开发工程师要求“精通……”？ 项目经理要求“精通……”？ 实习生是不是也要求“精通……”呢？ 有哥们说，看到简历上写精通的，就扔进垃圾箱。也有哥们说HR看到简历上没精通的就扔垃圾箱。 招聘的写招聘信息不当真；应聘的看招聘信息也不当真。应聘的写简历不当真；招聘的看简历也不当真。 这还是招聘吗？过家家是不是都会比这更认真一些呢？ 在我的角度来讲，招聘的人在这个问题上的责任更大一些。因为虽然是双向选择，但是招聘方是更加主动的一方。如果不夸大岗位对用人所需技能的要求；如果不压缩薪水和岗位的供需差距；如果认真的对待每一个招聘和应聘者；这一个一个精通都是毫无意义的……因为有需求，所以有精通！ 会有人说了：“你根本不知道一天收到1000封简历是什么概念……”。但是从另一个角度来说，这种一天收1000封简历的招聘是在完成任务呢？还是真得求贤若渴？如果真得求贤若渴，那无论如何，是应当认真看过每一个简历的，否则一个绝好的人才就可能跟公司擦肩而过。如果是完成任务，那何必费劲招聘呢？浪费招聘人和应聘者的声明，浪费资源，做游戏吗？ 废话了这么多，其实只是想表达一个意思：招聘人和应聘者都应当真诚的去面对招聘这个事情。既然都不是来玩的，那就就双方都真诚一些。待人如己，才是王道！ 当你抱怨好岗位总招不到人时，请想一想，这个岗位是真得需要“精通……”，还只是因为“精通”而精通。 当你抱怨寻遍天下而无伯乐时，也请想一想，自己是真得“精通……”，还是真得精通精通。 当精通变成一种必备技能的时候，精通也就毫无意义了！！！ PS：就着这个话题，我再发两则小招聘。 我们公司的团队： 1. 使用 Delphi 的 Windows 桌面软件开发岗位。有 1-2 年 Delphi 开发经验。对 Windows API 有了解。 2. [...]]]></description>
		<link>http://www.mikespook.com/index.php/archives/706</link>
			</item>
	<item>
		<title>[翻译]Akihabara 指南，第四部分：地图的卷动</title>
		<description><![CDATA[原文：http://bostongamejams.com/akihabara-tutorials/akihabara-tutorial-part-4-scrolling-map/ 这部分有不少视频是在 youtubo 上的，你说我应该把它移到国内哪个视频网站上呢？ Akihabara 指南，第四部分：地图的卷动 Darius Kazemi 编写于 2010 年 06 月 27 日 这是系列指南的第四部分，我们将向你演示如何使用基于 HTML5 和 JavaScript 的 Akihabara 框架来编写 8 向射击游戏。Akihabara 是一个利用 HTML5 功能帮助创建游戏的 Javascript 库。使用 HTML5 编写游戏最棒的事情是你可以在任何平台、任何支持 HTML5 的浏览器运行它。这包括 Chrome，Firefox，Safari 和 iPhone/iPad，WebOS 设备上的 WebKit 浏览器，或者其他移动平台。 在这一部分，我们将创建一个比第三部分中的地图大得多的地图，然后将演示如何建立摄影机，以便于玩家移动时卷动地图。 开始前的重要提示 为了让这个指南起作用，你应当下载我们整理过的第三部分的代码，并从此处开始学习：为了使得代码更加一致，我们对变量命名进行了一些修改。同时，你应当重命名工作目录下的 playerSprite.png 为 player_sprite.png。 成品 本次课程结束后，你会得到类似这样的一个游戏。按下 Z 越过标题屏幕，然后使用方向键移动。注意摄影机是如何跟随玩家对象移动的。 大地图 好吧，卷动地图首先需要的是让地图尺寸大于屏幕的尺寸。做到这点是相当的容易。只需要添加一些数据到 loadMap 函数，让它的宽度和高度翻倍。 function loadMap() [...]]]></description>
		<link>http://www.mikespook.com/index.php/archives/676</link>
			</item>
	<item>
		<title>[翻译]Akihabara 指南，第三部分：基本的地图</title>
		<description><![CDATA[原文：http://bostongamejams.com/akihabara-tutorials/akihabara-tutorial-part-3-basic-mapping/ Akihabara 指南，第三部分：基本的地图 Darius Kazemi 编写于 2010 年 06 月 14 日 这是系列指南的第三部分，我们将向你演示如何使用基于 HTML5 和 JavaScript 的 Akihabara 框架来编写 8 向射击游戏。Akihabara 是一个利用 HTML5 功能帮助创建游戏的 Javascript 库。使用 HTML5 编写游戏最棒的事情是你可以在任何平台、任何支持 HTML5 的浏览器运行它。这包括 Chrome，Firefox，Safari 和 iPhone/iPad，WebOS 设备上的 WebKit 浏览器，或者其他移动平台。 在这一部分，我们将向你演示如何在游戏中创建一个包含可见的背景的地图，地图中的“墙”是可碰撞的，这样我们在第二部分中实现的玩家对象碰到的时候，就会停下来。在快速开发游戏的时候 Akihabara 的一个最好的功能之一，就是创建一个基本的地图的过程是相当的容易。所以，这部分将是一个简短的指南，不过我们仍然会花一些时间用于理清这个基本地图的核心思想上面。而且，我们添加了碰撞，所以玩家对象可以撞到墙上去。 成品 本次课程结束后，你会得到类似这样的一个游戏。按下 Z 越过标题屏幕，然后使用方向键移动。注意你是如何同墙碰撞的！ 定义地图 在 Akihabara 中，定义地图是非常容易的。你只需要调用 help.asciiArtToMap 函数，然后用 ASCII 绘制出来！我们将在 main 函数后面，写一个叫做 load_map 的函数。看起来是这样的： [...]]]></description>
		<link>http://www.mikespook.com/index.php/archives/658</link>
			</item>
	<item>
		<title>在 xubuntu 中使用 3G 手机作为猫上网</title>
		<description><![CDATA[我使用的是三星的一款3G手机，比较破烂。不过使用三星的 PC 套件可以在 Windows 下当作猫通过手机上网。在没有可接入的网络的时候还是很方便的。不过遗憾的是，我不用 Windows……每个月 300M 的流量我只用 10%，实在是浪费……所以，我想通过 xubuntu 接入 3G 手机上网。 好吧，最出乎意料的是，xubuntu 下用 3G 手机上网相当简单。 下面是图文混排的步骤…… 1st. step：连接数据线。 2nd. step：打开网络连接管理，选中移动宽带选项卡，添加…… 3td. step：首先会要求选择设备，通常只有一个设备可选。 4th. step：选择中国后，会要选中国移动还是中国联通。我是联通的 WCDMA。 5th. step：选择计划，也就是用什么信道。这个网上大部分说的还都是 cnwap 或者 cnnet 的。3G 需要用 3gwap 作为 APN。 好了，然后在网络管理里选择移动宽带连接就可以了。这篇随笔就是用 3G 网络写的，速度还行……只是不知道 300M 的流量用了多少。]]></description>
		<link>http://www.mikespook.com/index.php/archives/651</link>
			</item>
	<item>
		<title>[翻译]Akihabara 指南，第二部分：精灵的移动</title>
		<description><![CDATA[原文：http://bostongamejams.com/akihabara-tutorials/akihabara-tutorial-part-2-moving-a-sprite/ Akihabara 指南，第二部分：精灵的移动 Darius Kazemi 编写于 2010 年五月 21 日 这是系列指南的第二部分，我们将向你演示如何使用基于 HTML5 和 JavaScript 的 Akihabara 框架来编写 8 向射击游戏。Akihabara 是一个利用 HTML5 功能帮助创建游戏的 Javascript 库。使用 HTML5 编写游戏最棒的事情是你可以在任何平台、任何支持 HTML5 的浏览器运行它。这包括 Chrome，Firefox，Safari 和 iPhone/iPad，WebOS 设备上的 WebKit 浏览器，或者其他移动平台。 在这个部分中，我们将向你演示如何渲染精灵到屏幕上，并且移动它。这个指南包含精灵的渲染、输入、基本的游戏对象创建和控制。我们将在第一部分创建的基础上进行开发，所以将假设你已经完成了第一部分的指南。 成品 在这里查看本课结束后的成果。按“Z”键跳过标题屏幕，然后使用方向键控制圈点移动。 整体思路 现在，我们将开始编写实际的游戏代码，我们需要回头看看，考虑一下视频游戏的屏幕是怎么样的。 游戏是由相互作用的对象组成：在像《太空侵略者》这样的游戏中，对象包括玩家的飞船、敌人、护盾和子弹。然后，我们设定对象行为的规则。一个敌人的对象可能包含代码，说“向前和向后移动我，当碰到屏幕边缘时消失。在一个随机的时间间隔中，向前进方向上射击。” 对象是游戏的核心组件，但是只有一大堆对象并不是游戏。我们需要将这些对象放在世界中，并提供一个整体的概念：“在玩家的四个方向上放置 10 个敌人。”；“玩家对象死亡三次后游戏结束。” Akihabara 是一个基于对象的游戏引擎。在指南的这一部分，我们将尝试创建第一个玩家对象，定义它的行为，然后将它放入游戏世界中。在这个部分的指南中，不会有其他相互作用的对象或者游戏的整体概念出现——我们刻意略过这些在以后的指南中会出现的内容。 玩家对象 我们的玩家对象将会包含一些定义。我们会通过指定一个精灵来定义对象的外观（一个 2D 的图形，等一下详细说），并且设置它的控制方式，以及如何移动。 精灵 精灵是图片的梦幻般的称呼，或者说用代码来控制的一组图像。它是关联到游戏对象的图形，并且是这个对象的图形化描述。 我们的精灵将使用的图像是这个蓝色的圆形：playerSprite.png。这是一个 PNG 文件：Akihabara 可以处理透明的 [...]]]></description>
		<link>http://www.mikespook.com/index.php/archives/635</link>
			</item>
	<item>
		<title>[翻译]Akihabara 指南，第一部分：标题屏幕</title>
		<description><![CDATA[翻序：Akihabara 是一个基于 HTML5 的 2D 游戏引擎，对 iphone 等移动平台有针对性优化。但是 Akihabara 本身文档并不十分充足，仅有一些例程参考。这个指南补充了这个不足，让学习 Akihabara 的陡峭曲线骤然平缓。在我作这个翻译的时候，作者已经完成了第四部分的编写。 原文：http://bostongamejams.com/akihabara-tutorials/akihabara-1/ Akihabara 指南，第一部分：标题屏幕 Darius Kazemi 编写于 2010 年五月 6 日 在这个连载的指南中，我们将向你演示如何使用基于 HTML5 和 JavaScript 的 Akihabara 框架来编写 8 向射击游戏。Akihabara 是一个利用 HTML5 功能帮助创建游戏的 Javascript 库。使用 HTML5 编写游戏最棒的事情是你可以在任何平台、任何支持 HTML5 的浏览器运行它。这包括 Chrome，Firefox，Safari 和 iPhone/iPad，WebOS 设备上的 WebKit 浏览器，或者其他移动平台。 在第一部分中，我们将逐步使用 Akihabara 的基本功能演示如何产生一个标题屏幕。 成品 在这里查看本指南的成品：游戏“8by5”的标题屏幕。 安装 Akihabara 下载 Akihabara [...]]]></description>
		<link>http://www.mikespook.com/index.php/archives/622</link>
			</item>
	<item>
		<title>推荐一个 SSH Manager</title>
		<description><![CDATA[之前是用 shell 下的 ssh 命令开一个 tunnel 来翻墙的。并且在 pannel 上还添加了按钮来激活 tunnel。 今天抽筋，随手搜了一下 ssh 和 tunnel 的关键字。找到这个：http://sourceforge.net/projects/gstm/ Ubuntu 下可以直接通过 apt 安装： sudo apt-get install gstm 使用非常简单，添加、设置、Start…… 用过 putty 的应该对这个设置很熟悉：]]></description>
		<link>http://www.mikespook.com/index.php/archives/617</link>
			</item>
	<item>
		<title>一样的“微”，不一样的“博”</title>
		<description><![CDATA[以下内容为饭饱汤足后的呓语，未加验证也毫无根据。如有跟我一样喜欢扯淡的朋友能加以验证甚好，如觉得不靠谱请自行略过。 我的腾讯围脖：http://t.qq.com/mikespook 我的推：http://twitter.com/mikespook 这个星期用了一下腾讯的围脖，感觉上除了更加复杂的组合功能外，与 twitter 并无二至。也就是说，从数据结构到信息传递方式并无创新。一样的140字，一样的发推、回复、回推。但是，在内容组织和信息来源上，感觉腾讯围脖和推推却有极大不同。 推推是明显的“去中心化”。没有主流渠道、没有官方的名人或者普通人。一个普通人上推，可能是朋友推荐，也可能是对某个话题比较感兴趣等等。这中间并没有权威声音，所有的信息是对等的。名人也上推，但是名人上推并没有官方标识“这是名人”。普通人如果提供的内容被大家接受，也会被广为转发，被 fo 的次数也不会比“名人”低多少。由众网友口口相传，最终形成某些人被fo的次数远高于其他人。这种信息传播就像用遗传算法寻找最优解一样，是一种自然的收敛结果。 而腾讯围脖在注册后立刻推荐一大堆官方名人，在每天下午3点也会有名人对话。用户一上来就 fo 了几十个名人，这些人由于各种原因，会相互传递信息。而每天下午的对话，也是普通用户问，“名人”回答。只见普通人转播“名人”的话，却不见“名人”转播普通人的言论。信息传播明显不对称起来。名人变成了大喇叭，变成了倾向性喉舌。而普通人的信息渠道作用被削弱了。这就像在遗传算法寻找最优解时，人为的提高一些解的权重，使得这些解更加容易成为最优解。 不能说哪种信息传播方式更好，不过对于普通用户来说，推推会更加亲切，自己的声音更容易产生回声。而腾讯围脖倒更像一个名人舞台，一群精英人士向广大不明真相群众布道、讲经…… 恩，其实建立一个数学模型用统计方法来证实上面的扯淡是最靠谱的。不过我这会吃得很饱，也有点困，就不费那脑细胞了。 谁有兴趣，跟进吧……]]></description>
		<link>http://www.mikespook.com/index.php/archives/613</link>
			</item>
	<item>
		<title>白衣飘飘的年代</title>
		<description><![CDATA[《白衣飘飘的年代》来自于高晓松 1996 年的作品集《青春无悔》。 记得当时买《青》这盘磁带的时候是初三（那时CD还是很奢侈的东西），伴随我度过了中考。磁带听坏了，又在师大家属院旁那个音像店里买了一盘新的。然后又伴随我度过了高考。 四年…… 大学也还在听，只是没那么疯狂了……但是依旧沉醉其中…… 《白衣飘飘的年代》、《月亮》和《回声》是高晓松为了纪念诗人“顾城”而做。“顾城”，就是那个“黑夜给了我黑色的眼睛/我却用它寻找光明”…… 写到这里，我不禁感到无力和颓废。不，不是因为顾城，也不是因为对于往日铿锵少年的迷茫的回忆。而是不经意间看到这个消息“叶蓓被禁”，这里有墙内版本“禁歌 叶蓓被禁太简单了”。 这本是一首一个文艺青年为了纪念另一个文艺青年而写的有那么一些文艺气息的文艺的歌。而这些刽子手居然将其梳妆打扮起来，然后放到自己的对立面去。我苦笑……哪有人这么傻，非要将别人的怀念之作当作射向自己的箭矢，并且插在自己的身上，然后对大家说：“看，这就是射向我的箭矢，我要干掉射箭的人……” 今天是 2010.6.10，对于我来说，作为生日来说波澜不惊的一天。 但是对于我来说，或许是很有意义的一天，因为我再一次坚定了一些信念，再一次回顾过去，并再一次在看到希望的光芒…… 太阳会升起，而我会看着那日出而歌。 很隐晦吗？不，一点也不隐晦。我只是鉴定了肉身翻墙的信念，我也只是准备在有生之年作为一个旁观者看着一个病狮的涅磐。 仅此而已。 作为我生日的献礼…… 不怕大家笑话，小时候，我一直以为这个雕塑是刘胡兰……]]></description>
		<link>http://www.mikespook.com/index.php/archives/600</link>
			</item>
	<item>
		<title>Web编程异步模型的 Gearman 实现（残）</title>
		<description><![CDATA[写了 PHP 原生的二段式异步模型的实现，我就想着用 Gearman 实现一个 callback 方式的异步。还没准备好怎么去写，就看到了靓文一篇《Gearman 心得》。 看过之后，甚感压力：好文！！于是，弃笔不写，洗洗睡罢了…… 补充一下，在“心得”文中仅仅说明了不阻塞的后台作业。对于异步获取数据并未说明。所以我这里罗嗦一下…… worker 如果用 php 来实现，并且不用《Web编程异步模型的PHP 原生实现》中的异步方式，是无法实现 php 的 client 的异步的。比较好的实现方式是 worker 不使用 php，用 python、perl 或者 c，实现一个线程池来执行 job。当然，私下觉得用 stackless python 可能是更好的选择。 2010年07月18日补充： 好吧，终于有人撰文，正好可以补充完整这个异步思路： 淺談coroutine與gevent 就他了，太棒了！]]></description>
		<link>http://www.mikespook.com/index.php/archives/597</link>
			</item>
</channel>
</rss>
