感谢老王这篇文章,本来有自己想办法看看是不是能搞个ipt来玩玩。然后想自己学点苹果的开发语言的。
结果买了本object-c的书回来一看,人家上面就写了object-c是安装在mac下面的。当时,心都碎了
书也扔在那里几个月了。本以为这将进40块钱的书就算是扔了水里了。谁知道老王又贡献了这么一篇文章。很是感动。。。
老王说:
Mac笔记本实在是太贵了,所以一直没舍得买,如此一来,就只能在我的Windows操作系统上学Object-C了。
» 阅读全文
Submitted by gouki on 2009, July 20, 2:47 PM
感谢老王这篇文章,本来有自己想办法看看是不是能搞个ipt来玩玩。然后想自己学点苹果的开发语言的。
结果买了本object-c的书回来一看,人家上面就写了object-c是安装在mac下面的。当时,心都碎了
书也扔在那里几个月了。本以为这将进40块钱的书就算是扔了水里了。谁知道老王又贡献了这么一篇文章。很是感动。。。
老王说:
Mac笔记本实在是太贵了,所以一直没舍得买,如此一来,就只能在我的Windows操作系统上学Object-C了。
» 阅读全文
Submitted by gouki on 2009, July 17, 6:25 PM
微软自己开发了一个anti-cross site scripting ,放在MSDN上面
相信,如果使用asp.net的朋友,都会考虑去下载了查看一下。
在该主页上,它介绍了什么是跨站脚本攻击,同时提供了自已的类库下载,还有一些类库的使用方法。。
这对我们搞PHP的来说,没有什么用处,但是,它的一些处理方法还是值得了解一下的。
例如:
XSS Libray 包含如下的方法:
Encoding Method | Description |
HtmlEncode | Encodes input strings for use in HTML |
HtmlAttributeEncode | Encodes input strings for use in HTML attributes |
JavaScriptEncode | Encodes input strings for use in JavaScript |
UrlEncode | Encodes input strings for use in Universal Resource Locators (URLs) |
VisualBasicScriptEncode | Encodes input strings for use in Visual Basic Script |
XmlEncode | Encodes input strings for use in XML |
XmlAttributeEncode | Encodes input strings for use in XML attributes |
以上方法来原于微软网页:Microsoft Anti-Cross Site Scripting Library V1.5: Protecting the Contoso Bookmark Page 。
了解了这些字面意思,那么在代码中也可以就有针对性的处理了。。利用PHP对输入或者可能出现的输入进行一下处理,会安全很多。
Submitted by gouki on 2009, July 17, 6:13 PM
PHP V5和面向对象编程
改进后的静态方法与属性的处理方式
__callStatic()魔术方法
动态的静态调用
静态调用的晚绑定
标准PHP库
循环垃圾回收
» 阅读全文
Submitted by gouki on 2009, July 16, 6:13 PM
钱小样,好象是奋斗一中的米莱吧,挺有个性的女孩。虽然我不太喜欢看连续剧,但并不代表我不喜欢其中的台词。。。
“钱小样”算是剧中语言特色最强烈的一个角色
哲理篇:
1、小样:谁都有个性,谁也不是生下来就适应社会,环境像是一条河,咱都是河里的石头,一开始各有各形状,头上长角、身上生刺,天长日久被喝水冲刷,角啊,刺啊的就都磨成圆的了。
2、霹雳:幸福就是猫爱吃鱼,狗爱吃肉,奥特曼爱打小怪兽。
3、姥姥:如果不能改变结果,那就完善过程。
4、姥姥:现在社会给人灌输的成功观念太单一,你们年轻人追求的无外乎是赚钱、成名,给自己贴上成功标签,千篇一律、千人一面,这是典型的唯结果论。其实不是所有得到结果的都成功,也不是没结果的就失败,我一辈子的体验,是成功藏在过程里,将来回头看,乐趣不在最后撞线那一下,结果是买东西的赠品,好了算赚的,不好也没什么!
5、霹雳:成长的经验是是要靠我们自己获得的, 不是家长的强行灌输。 如果我不载跟头等于没有经验。早晚有一天还是会跌倒的 ,父母的经验是很宝贵,但是仅供参考 。
6、小样:高齐说的对,我们不仅是自己的,还有责任。
7、雷蕾:她知道她幼稚,但不让她幼稚,她就会一直幼稚下去。
8、姥姥:理智与情感,是人生最难做的一道题。用感情覆盖理智是幼稚,完全理智是空谈,成熟的标志是把两者分开。可以用感性去看问题,但是必须用理智去解决问题。
9、霹雳男朋友:一个人最惨的是什么?就是干他不喜欢的事。比最惨更惨的是,还要干一辈子!
10、周晋:如果说犯错是成长比如付出的代价,那么改错就是成熟的过程。人只有犯过错,才能够知道如何避免以后不犯,即使是这样,也可能永远失去改正的机会,改不了错最折磨人,就像一根刺永远扎在心里,一想就疼。
“杨尔”和“杨杉”是家中的主力
家庭篇:
1、杨尔:你小姨就是不求上进的性格,不懂得实现自我价值,哪像我,事业心这么强,这就是燕雀跟鸿鹄的区别。
李霹雳:我从小就觉得小姨家比咱家温馨,家庭气氛特好。
杨尔:那是他们家俩燕雀凑一块儿了,不像咱家,我一鸿鹄结果也找一燕雀。
2、谁在年轻的时候都只想离开父母,走得越远越好,不知不觉就走出很远,跟他们隔着千山万水。有一天你猛一回头,发现不管走了多远,始终有一根线连着你和他们,那时候父母已经变老,腿脚不再利索。于是你又得折回头,重回他们身边,跟过去不同的是,你变成大人,他们成了孩子,所有人都是这种轨迹,离开、再回来、分离、再团聚,这就是——家。
3、杨怡:儿女的人生是一艘船,掌舵的应该是有经验的水手,就是父母。
4、姥姥:家就是一个合作社、互助组,一方有难,八方支援。
家是什么?家是中国人几千年赖以生存的条件。家是每个人的安全伞、保护罩,什么都没有了,只要还有家就不至于一无所有。
5、杨尔:我跟你爸离了,你得接受现实。
霹雳:接受呀,离婚的时候我是被缺席宣判的,现在趁3个人都在,补办个遗体告别仪式,瞻仰一下遗容,完了就跟过去彻底告别了。
6、雷蕾对霹雳:父母的爱就是湿棉袄,穿上难受,脱了冷。当他们俩都围着你转的时候,你就会觉得你涝了。
7、杨尔:小样家的命运告诉我们,教育是人生的第一道底册,妈给上什么颜料,孩子身上就落什么色儿。
8、雷蕾:你觉得父母理所当然都应该为你考虑,可他们也是人啊,当他们的需求跟你的发生冲突时,你要求他们一切为你着想,是不是太自私了?
9、青楚妈:沟通啊!你看我跟青楚沟通的多好。有些事说着说着就开了。
小样:对,好多矛盾就是说着说着说出来的。
10、霹雳对妈妈说:最让我感动的是,你和雷力来同志,为乐道西餐厅的死去活来,做出了不可磨灭的贡献。
杨尔:这是咱闺女头回说人话,我算知道软刀子怎么杀人了。
爱情永远是青春的主题
爱情篇:
1、小样:你个大傻帽,分明就是一只蜗牛,却偏要抢人家乌龟的壳,你不怕超重压死了你啊。
方宇:“比喻很贴切,可是我听着很别扭,能不能换成螃蟹的壳啊?”
2、李霹雳:你们还有没有可能复合?
李父李母同时回答:没有。
李母:离了再复那不是历史倒退吗。
李父:我跟你妈用了二十年时间证明一个错误,不用再证明了。
3、方宇:我不帅,本事不大,挣钱不多,背一身债,还犯过错,你愿意嫁给我吗。
小样:愿意。
小样:我不漂亮,会点京剧、护理和速记,连累你为我背一身的债,还为我犯错,你愿意娶我吗?
方宇:愿意。
4、李博怀:强势男人不合适你,两人都强早晚是个斗。
杨尔:你不强,咱俩也没少斗。
李博怀:那净是你斗我了,这么多年你这个脾气只涨不跌,你跟别人过能习惯才怪。
杨尔:你说实话,跟我过特委屈是吧。
李博怀:是倒是,不过什么态势一长也就习惯了,咱们分手以后,我还老梦见你。
杨尔笑。
李博怀: 都是噩梦。
5、小样:不能提你,连方字都不行,我在家看到桌子角都能想起你来。
方宇:你何苦这么自虐呢?那我不来,你还能把家具都磨成圆的?
6、方宇:一会儿冰,一会儿火的,你还真把我当钢炼啊。
7、方宇:爱你,老婆。
小样:我喜欢这个职称
8、小样:我们喜欢的正经里面带一点不正经,但这一点不正经又不能耽误正经的那种。 女孩都追求安稳,但是又不能太安稳,这安稳里带一点不安分,但这点不安分又不能破坏安稳。
9、方宇:说,你是喜欢他还是喜欢我?
小样:你先说,你是喜欢我呀,还是喜欢我?
10、方宇:阿姨,叔叔,让我给你们家当一辈子包身工吧。
小样和方宇为了梦想而奋斗
励志篇:
1、小样:别人撞了南墙才回头,而我撞了也不回头,我要跨过去。
2、杨尔:怎么不能合作?内衣跟房产就不能接轨吗?只有想不到的,没有做不到的。
3、小样:我每天吃的有限,穿的有限,花的也可以有限,但是开心必须无限。
4、小样:幸福就是跟我觉得最帅的蚂蚁,为别人眼里的小草,我们眼里的大树,一起努力奋斗。
5、霹雳:在我潜意识里面,有对强权的恐惧,又有得过且过的鸵鸟心态,另一方面,我理想的小火苗这台一闪一闪的不肯熄灭。
6、霹雳:不是父母认为的理想就是理想,理想没有高低贵贱之分。我只是没有实现我妈的理想,不代表我的理想就一样没价值。
7、小样:现在不是倡导张扬个性自我实现呢?可我张扬了,也实现了,后果就灭亡了呢?
8、小样:只要有恒心,铁杵磨成针。
方宇:那得看本身是什么材料,咱俩是木杵顶多磨成牙签。
9、小样:你知道蚂蚁的幸福是什么吗?
方宇:知道,胃口小不贪婪。
小样:我们知足,别人吃一碗还吃不饱,咱俩有一粒就乐半年。
10、小样:渺小怎么了?我们俩都渺小,永远没有推土机成功。咱俩就是奋斗半辈子,也就只是人家那么一撮子。
贫嘴的一家人
贫嘴篇:
1、方宇:北京有一KTV名字特吉利,叫钱柜,自打开业那天起就哗哗往里进钱,你那么爱挣钱,我帮你改一名,保证也吉利。
钱小样:叫钱箱。
方宇:没那么好听——叫钱缸。
2、方宇:你真不枉姓钱,长了一钱串子脑袋。
3、小样:这么多花啊,真好看,一看就知道是假的。
4、小样:首先不是我主动提出出卖的假条,是学生软磨硬泡求我开的,被拒绝之后他们用金钱利惑我。这买方和卖方市场需求一致交易就这么达成了,可是我没想到着市场需求迅速扩大,好多学生闻风而至,我被架上去,我就没下来
5、我搁这儿坐一下午了,我越琢磨越觉着大盘跟人生一样。每个人都是一只股票,看到那绿莹莹的一片了吗?我就在里边都快跌停了。这人往高处走,水往低处流,不能只下看这样永远也没有进步,不看那几只红的多扎眼呀!就好比周晋是蓝筹股,青楚是绩优股,霹雳是潜力股,我一个垃圾股。
6、你就剩30块钱了还穷横穷横的,真帅!
7、周晋:明白,糖衣吃掉,炮弹打回。
8、霹雳:你喜欢我们这里(西餐厅)什么特色啊?
顾客:人少,而且我喜欢一堆人围着我转的感觉。
9、钱进来:夫人哪,告诉你一个振奋人心的消息,你家姑娘离家出走了。
10、青楚:死亡就是进入了另一个人生阶段,就好比你推开一扇门走进另一扇门,其实没什么可怕的。
小样:就是说出了这屋进那屋呗。那没准那屋要什么有什么,比这儿还乐呵呢。
青楚:不知道,反正去了那屋的人还没有回来过的。
小样:那是,随便往回溜达也怪吓人的。
Submitted by gouki on 2009, July 16, 7:03 AM
看到PHP5研究室上这篇文章,总还是有点感慨的。特别是最后那几句话:还是在 ngacn 上看到的一句话,团队需要两种人,要么 NB 的,要么听话的。
原文地址:http://www.phpv.net/html/1696.html
作者:Platinum
内容如下:
为什么要招应届生?不是因为便宜,有人说还没跳过槽的人忠诚度能搞些,这也不尽然,有些人没经受过工作的压力,总以为自己碰巧找到个压力大的工作, 换换会好些。我的原因是……应届生好调教。在他们没有被各种枯燥乏味的工作折磨的以为写程序本来就这么 SB 之前好好洗洗脑子。
1、2、3 是基础题,4、5、6 问的是数据库操作,7 算是综合能力吧。
1. 进制运算
可以是让他模拟一些简单的字符串函数,类似 bin2hex、base_convert、base64_encode,或者单纯的,让他手动算一下 7 进制的 54321 显示为 9 进制是多少。
应该高中或者之前就能接触到 2 进制 10 进制之间的换算了吧,当然,他当时很可能没听懂。通常的情况,如果以前没留意这个问题但有理解能力的,可能能在几分钟的做出一些成功不成功的尝试。至少不应该很茫然。最糟糕的情况,连整数的最大值是多少都不知道,那就算了。
2. 描述一下常见的关于读取文件内容的操作,及各自的特点
应 该不用迟疑太久就把 file、fopen、file_get_contents、readfile 列出来。表现好点还可以提下 readfile 的流式读取不占内存之类的。如果看的教材太老,可能只会说 fopen。最糟糕的辩解是不说跟数据库打交道比较多,文件操作没怎么接触过,完全无视文件静态化的存在。
3. 怎么模拟一个 POST 表单提交
答 socket 或者 cURL 都可以。
4. 列举一些常规优化方式
正 确索引(就不强求完全理解多列索引了,最好能知道每个查询只能用到一个索引),知道索引提高查询速度、降低插入速度。正确的字段类型(能知道 char 和 varchar 的区别和优缺点)。text 类字段可以单放一个表用主键关联。总之他能说的越多越好。顺便问问他他所知道的最大处理能力是每秒多少条,哪怕是测试环境里的 benchmarking(今天看到份简历,号称三年工作经验,将半个月三万条插入形容为他所遇到的最高的负载,写在简历的醒目位置)。
5. “你知道,把时间存在数据库里有两种方法,一种是用时间戳,就是 PHP 函数 time() 产生的那种整数,另一种是 MySQL 里字段类型设成 datetime。那么,为什么一定要后一种方式?”
最简单的一个例子,如果存的是时间戳,你无法按类似“所有周三的数据”这种方式显示内容。这表明了他的学习阶段:是否接触了类似日志分析类的东西。因为这些是早晚都要接触到的。
6. 简单联表查询
有这么两个表
user 表:
id name
1 张三
2 李四
3 王五
4 赵六
apple 表:
id user number
1 1 5
2 3 3
3 1 8
4 4 6
5 3 2
6 4 2
apple 表的 user 字段跟 user 表的 id 对应,一条 SQL 语句查出每个人都有多少苹果
如果他不知道 join,可能会这么写
SELECT user.name, SUM(apple.number) FROM user, apple WHERE user.id = apple.user GROUP BY user.id
正确答案应该是这样
SELECT user.name, SUM(apple.number) FROM user LEFT JOIN apple ON user.id = apple.user GROUP BY id
这两条语句的差别是,不用 join 无法显示出李四有 0 个苹果 -_-
7. 假设我们要做一个公交系统的常见服务,就是做查公交车怎么倒车的。假设完全由你自己来搞,我只关心最后结果,你会怎么做这个项目。说的越详细越好。
可能需要不断提示。考查一个人的做事能力,比方说他首先会想到需要数据,数据库应该怎么设计,有几个表,什么样的字段。
可 以加分的地方可以有这么几个点。给站名编 id,匹配数字的速度要远大于匹配字符串。站点之间要距离的数据,这样计算最优倒车路线应该能考虑到站数,倒车次数、距离等权值。如果很有远见,任意两点 之间的数据应该是提前算好的,比方说有 200 条公交线路和 2000 个站点,始发终点的组合可能是 2000 * 1000,每种线路可能有 1 - 6 种方案,有个表是来装这近一千万行结果的,如果有线路变化,再用本地的机器重新算一遍线路。这样整个系统才有实用价值。不然可能每次查询都需要耗费数秒或 者更长时间,只能当单机软件用。
这些题本身是交流的话题,而不是“做对 5 道以上我就招你”这种门槛。我面试时每道题都会给予充分的时间,如果他做不上来,也起码能判断他的思考方式,而忌讳说“如果你不知道就明说,咱们赶紧做下 一题”。同时也能观察出性格等方面。比方说第 6 题,有人把 SUM 写成 COUNT,我就问他你看看前面写的是否有问题,同时又怕太明显,又补充一句“也可能什么错误也没有、我在误导你,你自己判断”,于是他就不再理会、继续 接着写完整个 SQL。再综合他的其他一些表现,我的结论是此人主见极强的,我不会用。属于出了 BUG 第一念头是 BUG 在解释器上、做出来的程序跟产品需求不符时会说是你产品没说明白的那种。相反,我很欣赏那些在做完第一道题的 7 进制转换后还知道验算的,因为既然是笔算就很容易出错。我觉得这种人思考严谨、负责任。
其他的一些知识,比方说 memcache、SVN、单元测试这些,都属于经验问题,应届生很少需要接触到这些东西(甚至文件静态化也很少碰到),不像上面,我需要以此来判断面试者对编程是否已经入门。
还是在 ngacn 上看到的一句话,团队需要两种人,要么 NB 的,要么听话的。