We are looking for a server-side geek!

高级研发工程师(1名)
薪资范围:税前10000~20000元/月;非现金待遇面谈。

JD:
酷爱编码?喜欢新技术?熟悉Linux?觉得自己挺牛?如果都是yes,再满足以下任意一点,请把你的简历给我们!

  1. 使用过NoSQL数据库,能细数它和传统SQL数据库的优劣,还能理智的判断使用NoSQL的时机;
  2. 能随手就写一个高性能的socket服务器程序,了解如何管理大内存,就算要它满足变态的高性能和高可用性指标也不在话下;
  3. 熟悉thrift/protobuf/bson之类的开源server框架和rpc通信协议,用它们写过不少代码,了解它们的工作原理;
  4. 解决过分布式系统的性能问题,对这方面有自己的看法和手段。

我们是一个面向全球市场的社交游戏公司,每天我们的服务器要处理数亿次请求,支持全球数个时区数百个国家的上千万的用户。我们可以提供一个足够发挥你兴趣的自由环境,一份足够有竞争力的offer,以及供你试验和应用各种新技术的平台。

公司位置:北京市海淀区紫竹院路中国兵器北方地产大厦16层(昆玉河畔,北京最黄金的地段),传送地图

联系方式

请发一份简短的简历,最好直接以邮件正文的形式而不是附件发给我们。目前这个机会还是挺不错的,如果邮件沟通觉得有价值需要面谈,我们会出往返路费(北京市内打车、市外火车票)

我的公司(北京地区)狂招前端、后端高手

一、前端主要是两个职位:

Flash算法工程师(3D引擎、物理引擎任何一样你擅长的方向都有发展空间!)

Flash UI(制作)工程师(熟悉Adobe CS系列软件,精通Flash CS系列,熟悉AS)

二、后端的工作主要是:

  • 接入、维护多个SNS平台代码,经验要求较少
  • 做系统架构设计,经验要求较多,负责游戏架构设计、性能优化或运营系统设计等

职位主要是这两个:

JD1:PHP研发工程师(近期需要4人以上,其中2人负责新平台接入和维护,2人负责新产品/运营系统开发)

  • 工作经验3年以内
  • 有PHP开发经验和软件设计能力
  • 熟悉linux平台开发、数据库设计
  • 对新知识充满兴趣
  • 有互联网、社交游戏相关工作经验的优先
  • 学历不限,英语好者优先

JD2:资深研发工程师(近期需要1人。主要负责架构优化,数据库优化等)

  • 工作经验2年以上
  • 有Linux平台开发经验,熟悉PHP/C/C++,有系统架构和数据存储架构设计能力
  • 负责数据的分析处理工作
  • 有互联网或社交游戏开发经验
  • 对新知识充满兴趣,愿意尝试、研究新技术
  • 学历不限,英语好者优先

这两个职位的待遇大概范围是税后8-25k(更加优秀的人才或者有更多决心和我们一起创业的,可以提供更加优厚的待遇),随着公司和个人的发展我们的待遇也会不断提升!本人技术产品路线出生,行业里面口碑还不错,如果你是高手,待遇方面绝对是没有任何问题的。

具体事宜可以在邮件中咨询,我们的邮件联系方式是:

欢迎自荐,推荐,我非常相信这是一个能够让我们这些热爱互联网的同学们成就梦想的舞台!

开源工具PHPXref – PHP项目不可多得的后期助手

我不是技术经理,也不是PHP工程师。仅作为一个WordPress(基于PHP的Blog系统,目前我使用的就是WordPress)爱好者,我觉得PHPXref给我了很大的帮助。这款软件可以方便的在不同平台下(Linux with Perl,Win32 with EXE)帮助你生成某一目录下所有php文件的“资源”索引文档。

这些“资源”,包括:Class(类)、Function(函数)、Variable(变量)、Constant(常量),还有一个Table我也不太清楚有什么用。不过,这几个资源已经非常有价值了,PHPXref给我们列出了这些资源的定义与引用的详细情况。我们可以很方便地找到某一个函数(变量)在何处被定义,在何处被调用(引用)。这对于开发WordPress插件、外观,都是不可多得的利器。而对于整理(重构)复杂冗余的老代码,也非常有帮助。我们公司已经开始整合资源来重构原来老产品的代码了,其中就会使用我推荐的这款开源工具PHPXref。

大家可以通过Google搜索在这里看到许多例子。当然,遗憾的是并没有看到2.3的WordPress版本。不妨自己生成一个。

这里是Source Forge的下载地址,肯定是最新版,注意,大多数普通的Windows用户选择“phpxref-0.7-win32.zip”就可以了。

使用方法非常简单,连我这个不懂PHP的人都会,我简单描述一下在Win32平台下的用法吧:

  1. 解压下载好的项目到web目录下,例如放到你的c:/localhost/phpxref/下
  2. 复制一份你的PHP代码到c:/localhost/phpxref/source/下(比如将你WordPress2.3的zip解压到这个目录下)
  3. 直接运行phpxref.exe(上面那个win32的zip包不需要Perl,可以直接运行)
  4. 把c:/localhost/phpxref/output/内的全部文件剪切到你的web目录下,如c:/localhost/resource_of_xxx/
  5. 通过HTTP协议访问之(不要直接在资源管理器下打开)

看了一下这个项目在SourceForge的历史,很有趣。作者在2003年9月提交0.4版到2004年10月升级到0.6之后,接近三年没有动作。然后2007年1月突然更新到了0.7版。用作者的话来说,这个0.7版除了更新bug以及更新PHP5的接口之外,更重要的是告诉大家“PHPXref还没死”:)

awflasher.com发布FireStats 1.4简体中文版

【071203】 身体好转,抽空完成了1.4办的汉化,请在官方下载。

【070818】 在“七夕”前夕完成了FireStats1.3的中文版汉化,包括了Branch的1.3版和trunk中的SVN最新版。大家可以通过SVN得到1.3以及SVN最新版的源码。这次翻译我是完全重新翻译的,定有疏漏,请不吝赐教。

推荐大家使用1.3.5版(RC2) ,该版本对性能和安全性进行了许多优化,值得一用。最简单的方法就是下载我们的最新版:http://firestats.cc/wiki/Download (1.3.5 RC2)

对于不方便使用SVN的朋友,可以直接下载我的语言文件

以下是我之前对FireStats的简介:

Livid的V2EX里面介绍了FireStats这个基于php-mysql的统计插件。其对各大CMS的方便集成让我觉得非常方便。用过几天之后发现核心功能也非常不错。虽然目前整个系统仍在处于早前期的紧张地开发,但1.1.5的功能已经足够满足不少需要。

目前我在业余时间进行FireStats的中文翻译工作,已经完成了1.1.5的汉化。FireStats1.1.5中文语言包是建立在 SinoNeptune 的早期基础上进行改进的。1.2将支持多站点分离和业务过滤器等功能,但由于之前poedit的一些问题导本来应该发布的1.2语言包有所延迟。

po文件仍然在改善中,个人希望能与1.2一同发布。如果需要,可以从svn提前拿到:

http://firestats.cc/browser/branches/firestats-1.1/i18n/firestats-zh_CN.po?rev=755

补充一个小常识:i18n中的“18”是英文“internationalization”中除去首尾两个字母后的字母个数的意思。这个单词的含义是“国际化”的意思,有点“与国际接轨”的味道,详见此处

LBS to WordPress2.1 完美攻略 – 姿态永恒

转载请保留链接:http://www.awflasher.com/blog/archives/670

刚刚发现,由于之前新网的DNS被黑,我临时更换了DNS解析服务器,而后来这件事情逐渐被我遗忘,导致各大结点似乎还Cache了老的DNS解析服务器,因此,时而解析到老的LBS,时而解析到新的WordPress。今天终于发现问题并解决了。现在应该“全球同步了”。看到许多朋友留言或发信件询问ASP系统到WordPress的转换,我想写一篇文章来与大家分享。我并不想按照传统的“攻略”的方法来记录第一部该干什么,第二部该干什么,而是按照“流水账”的形式记录,我一步一步是如何走过来的。这肯定会花费你更多的阅读时间,但我肯定这种“讲故事”的方式能让你更能透彻地体会到其中的乐趣。毕竟,我不是所谓的专栏作家。当然,最后会有一个概要总结。

Update @ 07.02.13
不知道等全球DNS同步到这里还有多久,但我确实已经激动万分。这次转换的同时,公司也在与国内包括央视、湖南卫视、北京电视台在内的多家大型电视台合作,我非常荣幸能够参与平台相关部分的开发,但同时Blog的转换不得不等到我彻底腾出业余时间来进行。总的来说,转换还是非常顺利的,不但“优雅”地完成了站内连接的URL正则替换(即批量把我自己的文章中对自己网站内部连接地址按照WP的格式重写),而且也设计了一套属于自己的WP皮肤(当然,基于huddletogether的架构,我懒得自己写一堆DOM了)命名为“The Enhancing Spring (TES) ”。我把Blog的标题换成了“姿态永恒”,也算是表明了自己对这个Blog的态度将更加认真、积极,保证每一篇文章内容的真实、充实和质量。

Update @ 07.02.09
仔细看看这篇文章,就知道为什么我迟迟没有转换了。如今数据库、内部链接正则已经全部搞定,CSS也基本搞定。预计下周一就能正视上线了(需要部署、调试)。
这次转换得到了各界朋友的帮助,也受益匪浅,转换的具体细节和心得我也全部公布在后,转换内容除了Zola的传统转换外,我修补了老米甲的tag补丁和html编辑补丁两个老大难问题。如果您觉得此文对您有益,欢迎转载,请保留出处 – http://www.awflasher.com/blog/

Update @ 07.01.23
One Jump从去年9月份到今年,似乎我显得有些扭捏。其实不然,去年9月到现在,我从对DIV+CSS、JS、PHP+Mysql一无所知的只懂Flash里面几个简单function的小菜鸟,变成了一只老鸟。已经很不容易了。呃……WordPress的结构由于我本身特别不习惯,所以一直不敢轻举妄动,哪怕我把database都搞定了,还有两个大难题:1、UI(CSS);2、URL Rewrite(之前的残留链接统统要过来)
今天在yskin的帮助下,找到了一个很好的东西:K2皮肤。我想不久我的CSS也可以准备Ready了。

以下是数据库转换心得:@07.01.06
去年9月份就转好过数据库,但一直没有时间研究具体的问题、隐患。今天突然发现SiC更新了日志,追加了关于LBS2.0的一些消息,纵然SiC的原话还是“遥遥无期”。我仍然觉得有些许伤感。哪怕LBS只是SiC当年自己的玩物,但对我来说,这套LBS系统我太熟悉太熟悉了。使用了近两年,而且为我自己的系统做了太多的改进、优化
“舍不得,舍不得,有舍才有得”……祝福SiC和他的LBS,我仍然在努力想办法把老米甲提供的Tags挽救回来。所以近期肯定不可能看到我的新WordPress Blog上线。怎么说呢,有一些PageRank我仍然割舍不下。

OK,用http://www.neato.co.nz/ultimate-tag-warrior/ 插件,发现新建立了三个tags表,估计有希望把tags拿下~

OK.2007年1月6号,我终于搞定了。

一米六二师兄的鼎力支援以及Zuola提供的转换工具的帮助下,我已经优雅地完成了数据库转换。下一步就是部署了。
这里记录一下转换关键步骤以及可能遇到的麻烦。


1、配置工作环境(PHP+Mysql),下载转换程序(点此下载)以及自己LBS的Access数据库。
2、按照转换程序的说明配置Access数据库路径,并执行转换程序,输出SQL文件
3、将SQL文件用Emeditor打开并以UTF-8格式保存
4、不要用PHPMyAdmin导入。这个导入除了要麻烦你去修改该死的PHP配置文件之外,还可能对WordPress2.0.5以上的版本造成乱码Bug。
5、使用mysql命令行,source调用你的SQL文件。注意路径要写成”e:/1.sql”这种语法。
6、安装 UltimateTagWarrior 插件
7、注意WP的UTW中的Tag表是否清空。
8、使用我提供的tag转换程序生成所有的tags、映射关系表的sql文件
9、重复步骤5

补充:
1、我的转换程序自己改了表前缀为”aw_”,一般来说wordpress的为”wp_”,如果你想用,请自行替换。
2、原来sunu没有转用户表,我补充上去了,但由于无法较好的移植密码,因此一定要注意用户表必须一次转成,否则每次都回往后追加记录,没办法,因为我的SQL语句还停留在入门水平。我只转换了记录了Email的用户,由于用户量有1400,而且80%用户是非活跃用户,于是只能舍弃了。
3、所有的URL Rewrite必须在激活Permalink的情况下进行。

备忘:
WP的UTW中的Tag表逻辑:
与tags有关的三个新表
1、post2tag 关系映射表
2、tags 标签表
3、tag_synonyms tags同义表(目前不是很清楚具体作用)

LBS的Tags表逻辑:
1、blog_Tags表
2、blog_Article表

tags映射已经完成!受不了VBS了,用JScript写的,源代码下载地址
>_<很无奈发现UTW给postmeta表写了N多数据……似乎除了post2tag之外,这些数据也描述了tag与post之间的关系,我真不知道怎么回事,已经去官方论坛打探了……
http://www.neato.co.nz/forum/
附:针对wp2.1发表评论后Tag消失的补丁:
http://moeffju.net/blog/2006/12/25/wordpress-21-alpha3-utw/

patch:
1、注意老的LBS的结构,尤其是Author的a标签的迁移
2、评论的ajax检测继续做

patch2:
PR挽救方案-
一、增加LBS重写模块,并设置httpd的AddType解析asp文档为php文档。
冲定向模块主要针对id与tag两种requeryString做redirect,注意要做301重定向,详细内容见后。

需要挽救的PR页面包扩(不分先后)
1) /blog/article.asp -> About
2) /blog/gbook.asp -> About
3) /blog/user.asp -> About
4) /blog/trackback.asp -> About
5) /blog/default.asp -> Index
6) /blog/defaultcv.asp -> Index
6) /blog/defaultcc.asp -> Index
7) /blog/tags.asp -> TagsClouds
8) /blog/comment.asp -> RecentComments(Depend on Plug-ins)
9) /blog/feed.asp -> FeedBurner -_-#~

可以参考的映射PHP方式:
在WordPress的Index.php下加入配置文件,建立一个配置数组,对于各种querystring都能映射到相应的URL。

$lbsmapping = array(
‘id’ => ‘archives/’,
‘tag’ => ‘tag/’
);
require_once(‘./lbs-wp.php’);

核心是lbs-wp.php

<?php
foreach ($lbsmapping as $key => $value)
{
if(isset($_GET[$key]))
{
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Status: 301 Moved Permanently’);
header (“Location: http://&#8221;.$_SERVER[‘HTTP_HOST’$]$. rtrim(dirname($_SERVER[‘PHP_SELF’]), ‘/\’).”/”.$value.$_GET[$key]);
exit;
}
}
?>

二、对于从LBS Export出来的SQL语句做批量URL替换,尤其对于原asp连接批量替换,减少站内PR损耗。推荐Emeditor。

三、查询Google Webmaster Tools的 Diagnostic下的Web crawl下的出错内容并从SQL文件中把相应的站内连接直接干掉。
“HTTP errors (4) | Not found (183) | URLs not followed (0) | URLs restricted by robots.txt (0) | URLs timed out (0) | Unreachable URLs (123)”

四、最快速度在WP下面启动sitemap。

五、有URI洁癖的话,考虑为postslug写入相应的值,恩……这个有点复杂……因为LBS的post都没有postslug 😦

六、外部连接只能Redirect,但是内部连接我们不能偷懒,针对内部连接的优化的EmEditor正则匹配,将内部连接全部转换为WP格式。
1 – 针对id到archives的rewrite映射

href=\”[^?]*?id=(d+)[^>]+>([^<]+)</a>
href=\”http://www.awflasher.com/blog/archives/1\” title=\”2\”>2</a>

2 – 针对tag到UTW的rewrite映射

href=\”[^?]*?tag=([^\]+)[^>]+>([^<]+)</a>
href=\”http://www.awflasher.com/blog/tag/1\” title=\”2\”>2</a>

六、SEO Solutions by Google WebMaster Help Center – 针对SEO的解决方案
My URL changed, so how can I get Google to index my new site?

While we can’t manually change your URL in our search results, there are steps you can take to make sure your transition is smooth.

First, you can redirect individuals to your new site. If your old URLs redirect to your new site using HTTP 301 (permanent) redirects, our crawler will discover the new URLs. For more information about 301 HTTP redirects, please see http://www.ietf.org/rfc/rfc2616.txt

Google listings are based in part on our ability to find you from links on other sites. To preserve your rank, you’ll want to tell others who link to you of your change of address. One way to find a sampling of sites that link to yours is to perform a link search. To learn how, please visit http://www.google.com/help/features.html#link. To obtain a comprehensive list of the links that point to your page, perform a Google search on your URL. On the results page, select the “Find web pages that contain the term” link, and Google will provide you with webpages that mention your address.

总结大致两点
1、做301重定向,这个我已经提供了解决思路(可以参考PHP手册)
2、改外部连接。其实内部连接同样重要,参见上面的正则匹配。

最终总结

  1. 下载原LBS系统的DataBase。
  2. 安装WordPress2.0.7,可以在WordPress官方网站下载
  3. 对于使用了老米甲的插件的LBS用户,若原文发表过html贴,则不需要再进行UBB匹配,这一点要注意。
  4. 使用上文提到的工具到处LBS的数据库为SQL文件,命名为maindb.sql,并确认编码为UTF8
  5. 对maindb.sql进行批量正则替换,把SQL文件中所有的内部连接进行URL替换,确保最小链接损失。(内部连接就是你以前文章中对自己blog下各类资源,如日志和tag的引用)
  6. 对于有Tags的用户(估计不多) ,按上文方式导出tag的SQL文件,命名为tag.sql,并确认编码为UTF8
  7. 先用mySQL的命令行方式,用“source”语句导入maindb.sql文件。注意,不要用PhpMyAdmin的导入!
  8. 安装UTW最新版,同第6步,导入tag.sql。
  9. 按上文,进行301重定向架构。
  10. 在本地全面检查blog系统,最好改一下host把原blog的Domain指向127.0.0.1,然后看看搜索引擎接入的重定向是否完美、优雅。
  11. 下载2.1并升级

LBS到此为止

LBS到此为止,但,这并不代表WP会接踵而至。为了监督自己抽出时间来把WP的事情落实,我必须下定不再发文的决心。其实我发现,在我决定放弃LBS的时候,我发文的欲望已经远远不如以前了。

数据库已经完成,剩下的CSS也在修整之中,URL Rewrite也已经询问了一米六二

我骨子里对任何属于我的东西都有一种极大的占有欲,但一旦我下定决心换掉的时候,它便一文不值。因为能让我下定决心放弃的,一定有它不可原谅的地方。不管我为改善自己的这个LBS付出过多少心血,我都要将它彻底放弃,从此LBS和我,将相隔两个世界。

放弃一个实体,但仍然要保留一种姿态。我花多少时间在LBS上,我就会花多少时间在WP上。知道,把它变成我想要的那种模式。

突然觉得,对我而言,爱情亦如此。我谈了四五场恋爱了,虽然我是那么地不愿意,但我身边的女人还在继续。