星期二,2009-12-15 at 11:06 上午
好久不玩 Google AppEngine,google 居然用WXPython整出一个带界面的GAE server管理器,有点进步,虽然这个东西在Mac早就有了,至少现在不用在艳羡用Mac的同志了,当初我就觉得,难道google的工程师都用Mac?为啥不顾及大部分开发者呢?google真的太有个性了。down了一个到本地,结果死活加载不了项目,不停的报错,打开log一看,全是如下错误信息:
Traceback (most recent call last):
File “GoogleAppEngineLauncher.py”, line 42, in <module>
File “wx\_core.pyc”, line 7913, in __init__
File “wx\_core.pyc”, line 7487, in _BootstrapApp
File “launcher\app.pyc”, line 53, in OnInit
File “launcher\app.pyc”, line 97, in _CreateModels
File “launcher\maintable.pyc”, line 35, in __init__
File “launcher\maintable.pyc”, line 86, in _LoadProjects
File “launcher\project.pyc”, line 63, in ProjectWithConfigParser
File “launcher\project.pyc”, line 250, in _LoadFromConfigParser
File “ConfigParser.pyc”, line 520, in get
ConfigParser.NoOptionError: No option ‘name’ in section: ’1′
看样子是加载不了project的配置文件或者是project的配置文件出错了,于是乎按照当初修改picasa的逻辑,到C:\Documents and Settings\自己的用户名\Google 文件夹下,删除所有的东西,重新启动,重新添加project,启动web server,结果还是启动不起来,还是在刚才的目录下,打开配置文件一看,就差不多明白了,我放在桌面上,理论上project的存放路径中应该有汉字包含其中,结果没有,于是把项目文件夹剪切到某盘(如D盘)的根目录下,再删除google文件夹下的所有文件,重新添加project,点击启动web server按钮,居然变绿了,启动成功,看来google还不支持中文路径名。 各位大侠要小心喽
星期一,2009-12-14 at 10:38 上午
最近工作一直很忙,好久没更新博客了,大脑有点呆滞,不如给年底想换工作的朋友多一个选择吧
基于公司业务的急速腾飞和对人才储备的需求,最主要的是不差钱的原因,现在正在岁末疯狂招人中,只要你觉得自己合适,不妨投个简历试试,负责招聘的同学还是很热情的,前面说了,不差钱,并不表示我们富得流油,我们会根据您的技能和专长,给予富有竞争力的薪酬,如果您想年薪二十万,我觉得我们可以单独商量,因为公司业务的扩张,劳累在所难免,因此我们需要您有健康的身体和心理,当然偶尔身体不适也是正常的,我们提供完善的医疗和福利保障,刷了您的医保卡之后还能从商业保险那里得到一部分赔偿,这是我们福利的一部分。餐补,为加班同学提供免费的晚餐和加班打车报销之类的自然是必不可少的。更多福利和详细薪酬体系,请见我们HR,呵呵,
公司网站:phpwind
我们对以下职位有需求:
一、高级商务专员(1人)
工作地点: 杭州
职位描述:
1. 负责进行合作洽谈
2.线上线下推广活动策划
职位要求:
1. 大专或以上学历,相关专业毕业;有一定英文听说能力者优先
2. 三年以上互联网企业市场推广经验,熟悉主要线上线下媒体传播渠道
3. 对phpwind有一定的认识,对站长文化有敏锐嗅觉,从而产生独到有效的传播创意
4. 具有较强的执行能力,能独立运作线上线下推广的各个环节
5. 良好的人际关系,出色的沟通技巧
6. 吃苦耐劳,拥有强烈的上进心,热爱phpwind团队文化
二、高级PHP工程师(5人)
工作地点: 杭州
职位描述:
1. 负责产品的研发工作;
2. 负责产品产品架构设计;
3. 负责产品数据库设计;
4. 负责产品前后台功能模块开发。
职位要求:
1. 大专或以上学历,相关专业毕业优先;
2. 两年以上PHP实际项目编程经验,精通PHP与Mysql;
3. 熟练掌握HTML、JavaScript、CSS、XML、AJAX等知识,用户行为分析等web2.0关键技术;
4. 熟悉软件设计流程和软件工程规范,具备良好而规范的设计和技术文档编写能力;
5. 掌握Linux/FreeBSD/Windows等各操作系统web环境配置的各种优化方案,掌握网站访问速度的各种优化方案;
6. 有大型网站开发经验者优先,有C/C++编程经验者优先。
三、高级运营经理(1人)
工作地点: 杭州
职位描述:
1、负责公司项目的整体设计、规划运营;
2、执行公司发展策略;
3、管理团队,提升团队士气和工作质量;
4、负责协调各部门的合作。
职位要求:
1、大专以上学历,专业不限;
2、五年以上的大中型互联网公司从业经验,熟悉和热爱社区;
3、具备项目跟进、资源协调能力,熟悉社区管理、用户互动;
4、熟悉与网站产品,具有很强的用户行为分析能力;
5、成熟稳重,负责敬业,具有较强的社区管理能力;
6、熟悉互联网领域的WEB2、0产品;
7、沟通协调能力强,有团队合作精神;
8、工作主动,能承担较强工作压力。
四、大客户销售经理(1人)
工作地点:杭州
职位描述:
1、主动寻找有建站软件需求的客户,洽谈并销售phpwind各产品及增值服务,从社区网站运营角度帮助客户成长。
职位要求:
1、学历不限,专业不限;毕业后二年以上网络销售(网络营销)工作经验;
2、文字组织与表达能力强,能通过电话、Email、即时通讯工具等各种方式与客户进行沟通;
3、能吃苦耐劳,拥有强烈的上进心,热爱phpwind团队文化;
4、属于phpwind.net忠实会员者优先;
5、拥有PHP+Mysql技术以及服务器技术功底者优先考虑;
6、具有一定社区运营经验者优先考虑。
五、高级商务经理(1人)
工作地点:杭州
职位描述:
1. 负责合作洽谈、活动策划等
职位要求:
1. 学历不限,专业不限;有一定英文听说能力者优先;
2. 有五年以上互联网企业市场推广经验,熟悉主要线上线下媒体传播渠道;
3. 对phpwind有较深的认识,对站长文化有敏锐嗅觉,从而产生独到有效的传播创意;
4. 具有较强的执行能力,能独立运作线上线下推广的各个环节;
5. 良好的人际关系,出色的沟通技巧 ;
6. 能吃苦耐劳,拥有强烈的上进心,热爱phpwind团队文化 。
六、运营专员(1人)
工作地点:杭州
岗位职责:
1、负责平台信息的收集、整理、维护、更新 ;
2、承担客户服务工作;
3、收集整理用户问题与建议,定期反馈,并跟踪解决。
任职要求:
1、精通电脑各项基本操作,熟悉论坛,了解互联网应用;
2、勤奋好学,踏实细心;
3、具备良好的沟通能力和团队合作能力;
4、有论坛建站、版主经验或软件公司客服经验者优先;
5、大专以上学历,一年以上相关工作经验或拥有互联网丰富实习、创业经验的优秀应届毕业生 。
PS: 据悉,我们PHPWind 还为2010年应届毕业生提供技术类的实习岗位,如果你对Linux和PHP有一定了解和理解,又有志于在开源技术方面的开拓,不妨尝试一下,我们为应届生提供一个足以在杭州生活下去的薪水和商业保险(包括租房和生活开支,当然首先您要确定自己是节俭的,如果你大手大脚花钱花习惯了,您可以忽略本条)
星期五,2009-11-27 at 10:15 上午


google新的搜索界面显得更加靓丽和年轻,继续进一步和百度拉开差距,估计不久就应用到google 中国的的界面上,目前你还不能通过正常方式访问到这个界面,如果想感受一下新界面,方式如下:打开www.google.com页面,记得,是google.com页面,如果跳转到google.cn页面,只要点击搜索框下面的“Google.com in English”即可,然后复制下面的脚本到你的浏览器地址栏,然后敲回车,再刷新google.com页面即感受最新搜索界面。
javascript:void(document.cookie=”PREF=ID=20b6e4c2f44943bb:U=4bf292d46faad806:TM=1249677602:
LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com”);
关于google新搜索界面的更详细报道,请移步这个网站,E文的哦~~
星期五,2009-11-20 at 3:49 下午
这个url的正则表达式判断的JavaScript!比较全面的。它验证的情况包括IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!用户名等等信息,貌似作者也是在网上找的,我从一个项目代码中扣出来的,是我见过的最强最全面的url验证方式!太猛了,贴在这里与大家共享先,以后不记得的时候来博客上找找,URL的验证实在是很频繁。
function IsURL(str_url){
var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@
+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
+ "|" // 允许IP和DOMAIN(域名)
+ "([0-9a-z_!~*'()-]+\.)*" // 域名- www.
+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
+ "[a-z]{2,6})" // first level domain- .com or .museum
+ "(:[0-9]{1,4})?" // 端口- :80
+ "((/?)|" // a slash isn't required if there is no file name
+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
var re=new RegExp(strRegex);
//re.test()
if (re.test(str_url)){
return (true);
}else{
return (false);
}
}
感谢收集者和原作者,虽然我不知道是谁,非常感激~~
星期一,2009-11-16 at 9:21 下午
个人觉得会话状态模式其实算不得一种模式,因为无非就两种,而且必须是其中的一种,一种存放在客户端,一种存放在服务端。两者都有风险和优点。
通常将会话保存在客户端是为了获得服务端的高度无状态特性,即服务端可以做到完全的无状态。Java中通常使用传输对象来进行数据传输,因为传输对象可以在网上进行序列化,即使是很复杂的数据也可以进行传输。当然序列化是有风险和代价的,不是所有的序列化数据都能够被反序列化回来,虽然出现反序列化回来的出错的概率很小。
如果使用HTML的话,选择相对多一点,URL参数,隐藏表单域和Cookie,URL对于较小数据量还是比较容易使用的,现代浏览放开了对URL长度的限制,但我们不得不考虑一些古董用户的需求,毕竟IE6及以下版本的浏览器还主导着WEB世界,而且URL过长,也不符合REST原则,更不美观。
隐藏表单域适合于POST方式的请求,POST方式可以避免因浏览器限制URL长度而导致的被截断的问题。隐藏表单域在我曾经的代码中经常使用,主要是为了跟踪和referer的referer,也就是跳转到一个页面之前的原来页面。
Cookie方式是最优争议的一种方式,PHPWind采用了这一种方法,从开发者口中得知,是为了减少服务器的负载,因为服务器不用维护session状态。通过把数据序列化或者加密后以文本方式放到Cookie中,我没有测试过,PHPWind这样做是不是真的能降低服务器的负载,根据我以前的测试,session维护成本对于服务器的影响是微乎其微的,还不如优化一条SQL来得更痛快,更有效,而且放在Cookie中会导致用户请求的流量变大,在很多上下带宽不对称的机房中,这是个严重的问题,比如blogbus之前存放在上海的**机房就是这样。而且为了获得Cookie中的数据还需要进行一些列运算,未必比维护session的成本小,而且会导致严重的安全问题。只要算法是可逆的,就一定能被人破解,何况我等庸人搞的算法。
服务器会话状态最简单的一种就是把会话数据放到应用服务器的内存中,可以将会话数据以会话标识号作为键标识放到内存映射表中,现在很多工具可以做到,比如memcache等key-value 的内存存储工具。
另一种是持久化,持久化也可以分为两种,一种以二进制序列化形式存放,但这样做的缺点是不容易阅读,更新起来成本有点高,如果每个会话都一个文件的话,在高并发的时候还得解决文件系统的巨量小文件查找效率问题。还有一种就是持久化到数据库,这个存放会话的模式,可能会因为维护会话状态而带来巨大的数据库开销问题,而且为了及时清除过期的会话,往往配合触发器来进行。
总结起来每种会话管理都有天生的缺陷,如果能多种结合能够提升一些效率,比如内存缓存配合持久化数据库,就是眼下很多高负载网站正在使用的模式,也许还有其他的更多的模式和方法有待探寻~~