有没有必须去学习第二语言

作者 : admin 于 2010年04月10日, 19:46:51
2010
04-10

当然,我说的不是中文英文这个语言,而是编程语言。

从开始玩电脑,大大小小学了不少的编程语言,从开始的logo语言、basic语言,到大学里的c,c++,vb,vfp,又到毕业工作后的asp,php,工作空闲又挤时间看了看java,python。不过目前我唯一能吃饭的语言,还是PHP,其他语言或者当做垫脚石,或者是无聊充当了解闷的工具。

大学之前的语言基本扔了,之后asp由于市场面窄,而转向了PHP。在闲暇之余充实自己的java、python,虽然也完成了一些事情,但毕竟是作为php的补充来使用,偶尔充当模块之间的胶水工具。

从工作几年来看,我是这么认为学习第二语言的必要性:

1、第二语言要多看看,了解其优缺点。单一学习一门语言,容易造成盲目崇拜,或者自我,不利于发挥和发展。

2、适当学习一些跟自己语言起胶水作用的语言。学php的离不了win/linux两个平台,作为web开发语言,在bat/shell编程方面,批处理、perl、bash的优势php无法完全替代。

没必要去把两个以上的语言都学习精通(精力充沛的除外),但必须精通一门,了解大众,起码在团队中跟他人配合的时候保证无障碍。

2010
03-30

最近论坛发生了一些问题,某用户A登录后变成了某用户B。此事在某阶段频繁发生。在排除了账号服务器的问题、程序自身问题后,在网上又发现类似现象:
淘宝账号诡异事件:
http://diybbs.it168.com/viewthread.php?tid=593134&extra=&page=1

我点到我自己的淘宝里面,进入了一个陌生女子的界面
不过这个bug只出现了一次
这个人我已经加上了,是个卖魔方的

卡巴斯基中文官网论坛账号诡异事件:
http://bbs.kaspersky.com.cn/viewthread.php?tid=15891

有登录论坛出现别人信息的会员请进这个问题,论坛上已经有不少会员碰到。管理员正在设法解决这个问题。凡是出现这种情况的,请在下面回帖,向管理员详细说明以下情况,帮助管理员更快解决问题
1、出现问题的频率和条件
2、进入论坛的方式(例如是收藏夹进入、直接输入网址进入……)
3、论坛登录名和密码的保存方式(每次输入,不保存;按照多少时间保存)
4、有无别人和你共用电脑
5、使用的浏览器,及其版本
6、有无采取清除缓存文件,清除Cookies的措施,效果如何?
7、除以上措施外,有没有采取过其他措施,效果如何?

GMAIL账号诡异事件:
http://www.gseeker.com/50226711/aecceaecgmaileaeieie_139265.php

看到这个标题,你可能会认为这是天方夜谭。但事实上,这是完全有可能发生的。某天,你在登录Gmail时,尽管你100%正确地输入了自己的用户名及密码,但出现在你眼前的却是别人的Gmail邮箱。如果你第一时间怀疑自己的眼睛,那你就冤枉它了。因为至少在科威特,部分Gmail用户本周就经历了这样的怪事。

通过这些事件的观察,和对一些论坛账号发生错误的账户主人的询问,基本确定了以下几个可能点:

1、缓存的错误。因为discuz使用cookie进行身份认证,而一些代理缓存了cookie头,造成一个cache多人使用造成的问题。http://bbs.chinaunix.net/viewthread.php?tid=837214

2、依然是缓存的问题。只不过这个缓存可以存在于cn大局域网,或者某些ISP,比如google的例子,或者某些地区的服务商,抑或……

您是通过什么网络上的淘宝,据我所知,移动的浙江固网宽带出现过类似的严重安全隐患。宽带网络运营商的问题很大(强制建立缓存代理服务器,缓存不该缓存的网页),网站的问题是其次的。或者说,在那种情况下,绝大多数网站用户都会出现“穿越”现象。
如果被你穿越的人和你斗处在同一城市,基本上就是这个原因了。

解决方法,且听下次分解。

如果您的网站出现类似问题,欢迎加我qq176300676一起收集数据样本进行分析

亦可加入msn讨论群 lampper@live.cn

django|python中图形验证码的实现

作者 : admin 于 2010年03月23日, 14:01:08
2010
03-23

python自己并没有带图型库,需要借助第三方的图形库来实现。原来习惯的就是php下的gd库,但网上搜索后普遍说gd的python接口不好用,又考虑php也即将抛弃dg,就选择了很多人推荐的 PIL(python image library) 库。

首先是安装此库,http://www.pythonware.com/products/pil/index.htm

选择自己相应版本和平台进行安装,安装文档写的还算清楚。

然后是代码实现:

  1. import Image, ImageDraw, ImageFont, md5, random,cStringIO,util
  2. def show(request):
  3.     im = Image.new('RGBA',(52,18),(50,50,50,50))
  4.     draw = ImageDraw.Draw(im)
  5.     rands = util.rand(4)  //自己写的一个取随机字符串的函数
  6.     draw.text((2,0), rands[0], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='white')
  7.     draw.text((14,0), rands[1], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='yellow')
  8.     draw.text((27,0), rands[2], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='yellow')
  9.     draw.text((40,0), rands[3], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='white') 
  10.     del draw
  11.     request.session['checkcode'] = rands
  12.     buf = cStringIO.StringIO()
  13.     im.save(buf, 'gif')
  14.     return HttpResponse(buf.getvalue(),'image/gif')

修改urls.py文件

  1. #check code
  2.     (r'^checkcode/','view.checkcode.show'),

再访问 http://127.0.0.1/checkcode/ 既可看到效果。

官方的手册写的比较惨,属于找什么没什么。顺便把网上找到的一个写的不错的文档传送来:http://nadiana.com/pil-tutorial-basic-advanced-drawing

django中关于静态文件那些事

作者 : admin 于 2010年03月20日, 17:10:12
2010
03-20

那个500错误快把我整死了,结果才分析可能django把静态文件当脚本处理了。

对于线上部署,完全可以用rewrite的方式进行解决。可本机调试,用的是自带的server,可搞死人了。

不过搜索后发现,django解决这个问题了,使用一个叫做 django.views.static.serve 的方法处理这些静态文件。

实现代码如下:

  1. 在/urls.py 文件中
  2. from os import path
  3. 底下增加
  4. if settings.DEBUG:
  5.     urlpatterns += patterns('', (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__),'static')}), )
  6. </path>

然后,把所有静态文件放到 static 目录下,即可。

不过这种方式只适合开发环境,在线上的时候还是需要把这个问题交给httpserver

mongodb windows平台下的安装和使用

作者 : admin 于 2010年03月18日, 13:47:36
2010
03-18

平时还是windows用的多,所以很多测试也习惯用windows。

首先下载mongodb的windows编译版本:

http://www.mongodb.org/display/DOCS/Downloads http://downloads.mongodb.org/win32/mongodb-win32-i386-1.2.4.zip

解压后存放于 D:\mongodb

创建数据存放目录 D:\data

启动数据库 D:\mongodb\bin\mongod –dbpath D:\data

然后测试连接情况 D:\mongodb\bin\mongo

因为都是使用默认配置,如果出现以下回显,则证明安装成功

  1. MongoDB shell version: 1.2.4
  2. url: test
  3. connecting to: test
  4. type "exit" to exit
  5. type "help" for help
  6. >

进阶:为了平时使用方便,把mongod注册为系统服务

D:\mongodb\bin\mongod –dbpath D:\data –install #注册为系统服务

修改服务的端口 D:\mongodb\bin\mongod –dbpath D:\data –port 10001

其他配置 敲 mongod -h 就会出来

系统重装那事

作者 : admin 于 2010年03月04日, 21:38:54
2010
03-4

写了个简单的笔记

金山毒霸2009杀毒套装 找公司要序列号
WPS OFFICE个人版 下载
fireworks
dreamweave
editplus 设置
adobe reader
mindmanager
foxmail 设置
搜狗输入法 设置
腾讯通
firefox
firebug
alexabar
httpwatch
svn客户端 配置
windows补丁
sp3
apache
php
mysql
python2.5
msn
cuteftp
加入公司的域
设置ip
环境变量 D:\dev\PHP5;D:\dev\PHP5\ext;

新年新气象

作者 : admin 于 2010年03月02日, 23:25:05
2010
03-2

1、千万别碰网游,除非你靠网游吃饭
2、多看书总是有用的,包括闲书
3、多交朋友,多帮助别人。感情是个银行,利息很大
4、学习依然是最重要的
5、虽然很俗,虽然通货膨胀,但人民币是最可爱的东西

头绪与条理

作者 : admin 于 2010年01月30日, 11:57:45
2010
01-30

没想到这两个词具体是什么意思,但这肯定是我的缺陷了。

前几天培训,被指出这个毛病,其实仔细回想,工作中何尝不是没有头绪条理,很多事情忙的团团转,搞的一团糟。

改正这个毛病其实用了很长时间,从期初开始做简单的文件记录,到后来大量的纸质手稿,到现在详细的记录和思维软件(mindmanage)的应用,对做事有了很多提高。

昨天晚上加班,自愿加班,去完成一个我所认为半天就能完成的工作,其实用了将近一天,实际工作时间也算半天吧。时间浪费了一大半,是因为以前已经实现的一个冗杂的逻辑又去想了一遍,结果还没想明白。后把之前的逻辑拿来,20分钟顺利结束了战斗。

非常勤恳的工作不是啥好事,漂亮得完成工作并把时间留给自己才是王道。

程序员的跳跃思维与作品

作者 : admin 于 2010年01月21日, 22:04:15
2010
01-21

前段时间,我的网站自觉和谐了,留下了一个空荡荡的服务器。当然,有个必须解决的事情,就是月付的租用费用。

我挣的都是辛苦钱,更让我明白了时间就是金钱的概念。因此,我得让我的服务器有所产出。

想了很多种方案,有好友提示:学习芭比豆淘小宝之类的网站,出租相册空间给卖家也不错。伟大!

遂开始配服务写代码。写到一半,突然发现,时间付出也许跟此项目的产出严重不符。一台服务器利润太小,除非实现规模化运营。而我最不擅长的就是销售,看着写了一半的程序心疼,遂产生念头,把代码开放给需要的人,作为一个开源项目让其自生自灭。

我知道程序员为啥都穷的叮当了。

演示:http://taobao.sunboyu.cn/

谁帮我做个界面……

请耐心等待我的程序注释和配置指南……

discuz论坛sessions表最终优化方案

作者 : admin 于 2010年01月17日, 23:00:29
2010
01-17

最近一直在折腾dz的sessions表优化。经过某群好友的各种方法提示和一些高数据量用户论坛的鼎力支持,总结以下优化方案。部分方案是在某些论坛正在使用的,部分方案是我发散思维总结的,没有经过大数据量和大负载下的应用,只是作为一个备选的方案,当然欢迎朋友们拿去实践。

1、分库

这个方法至少两三个注册用户百万级至千万级的论坛在使用。实施也比较简单,只需要把sessions表放在其他的库中,跟论坛主库分离,这样,就可以用多台服务器来分担论坛压力。sessions表查询的地方,如果直接查询,则连sessions表所在的库,如果是联查,则分别查询后,合并插叙结果。

2、砍功能

这个方法虽然不实用,但的确有效。仔细看看dz的一些sql语句,就知道砍掉某些功能摆脱sessions表的约束,性能会有多大的提高。砍功能,最终还是为了提升性能。但如果不砍功能又提升性能,才是终极目的。此方法适用于对某些统计功能要求不高的论坛使用。

3、memcached存储sessions,异步统计用户的在线数据

此方法其实还是砍掉了论坛的用户在线统计功能而独立开发一套统计系统。此思路来源于我们的统计服务器。如果统计服务器已经统计了部分信息,就没必要再去耗费大量的sql效率去进行统计。当时我们负责统计的吴同学正好也要开发一套针对不同系统的统计代码,我可以直接把要统计的数据提交给统计服务器,再由统计服务器返回统计结果。以异步的方式来统计,化解dz sessions表的性能瓶颈。而统计信息的异步提交,可以提交到本地数据库,可以提交到第三方统计系统,当然也可以根据需要独立开发一套小型统计系统。

方案3是本人原创方案,方案的修改代码在以下附件中: 异步session统计信息同步,欢迎大家使用。

由于dz的开发考虑的是大众市场,功能冗余代码逻辑复杂。但优化dz并不是那么的困难,而优化的思路,也是跟其他系统优化相似:mysql瓶颈。一个即将崩溃的系统,或者频繁崩溃的系统,是进行优化的最好示例:减少sql查询,提高sql语句查询效率。dz考虑大众市场,为了提高产品兼容性,并没有引入太多的第三方软件:比如memcached,bdb,ttserver等,虽然内部已经为主从预留了接口,但未见很明显的文档支持。
第三个方案优化的思路也很明显,减少sessions表的慢查询而改为memcached高速的数据存储,把统计功能做接口留出,此功能给第三方来做。这样sessions表的瓶颈即可消除。

 Page 2 of 45 « 1  2  3  4  5 » ...  Last »