大学之寝室生活

大学毕业了,回过头来看,寝室之间的矛盾真的不想再提及,索然无味。你的室友既然和你不一样,那就互相尊重互不打扰,收敛一些自己的坏脾气,时时刻刻想一想我这么做是不是影响了别人。

大学即将毕业,先来回忆一把,说说我记得最清楚的寝室生活。 Nike Air Max 90 Dames 我常常跟别人说起,我和室友之间关系很好,几乎没什么矛盾。别人就问了:“你和室友关系这么好,有什么秘诀?我和我的室友关系最差了,我看书的时候他们开音响打游戏,我睡觉的时候他们开音响打游戏,我开音响打游戏的时候他们睡觉。” 我是这样回答他的:“我没有什么秘诀,我们之间的矛盾早在大一的时候就已经全部爆发了,大一以后,基本上话都不会说一句,能有什么矛盾?” 各位看官有没有被倾倒?但是对我而言,我和我的室友说话很少是真的,和某些室友甚至两年多没有说过一句话,我现在一直庆幸我喝放在寝室里的水没有喝出毛病。大家一言不合而又两不相害,也算品德高尚君子之交淡如水了。 我和我室友关系不好有没有我的问题,这个我是肯定的,我是有问题的,因为我个人觉得我和很多同班的同学关系也很一般,而他们好像还玩得不错,当然造成这个局面的主要原因是因为我,原因之一我不交班费。 我是一个极度很追求正确和错误的人,我有一篇帖子发在知乎上,问问各位知乎的大神,我不交班费对还是错?有链接为证。 Nike Air Max 2014 Dame 假如我不交班费除了我的错之外,谁还有错?那就是大学的包容性不够了,如果我搬出什么是大学精神这种虚无的主题,你肯定觉得我傻逼,这年头谁还讲这个。但是,我有我的抗争,我是讲这个的,毫无保留,这是我唯一的抗争方式。 再说寝室生活。 2016年6月4号答辩完成之后,回到寝室,只有我一个人,室友还在答辩。我感到一身轻松,我的大学四年就这样一晃眼过去了,我终于可以离开13栋108了(我的宿舍住址),我不用再和性格不一致价值观背道而驰的人生活在一间房里,出了这里,我有更多的自由。 我玩了一把LOL,依然戴着耳机,只是心情从未感到如此惬意。在寝室里戴耳机是个好习惯,你放的歌即便对室友的口味也不一定时机是适合的,很多人知道这个道理但未必愿意去施行。 Nike Free 3.0 V4 Goedkoop 我知道很多大学生和室友之间都会有矛盾,所以很多人不敢买饮水机,确实,大学里最好不要买饮水机,你不用挑战别人是否真的如此善意,保护自己,尊重他人。 中国的大学是一个很矛盾的地方,宿舍四个人甚至更多人住在一起,但是,又允许人堕落。你想,一群人天天呆在宿舍里,能不发生矛盾吗?初中和高中就有效地避免了这个问题,大家在教室被应试教育压得死去活来,回到寝室就只能睡觉。 大学寝室有什么问题? 一、人多。四个人一起住,别提这他妈有多恶心了,每个人总有不一样的地方,那么就有可能产生矛盾。 Nike Air Max 90 JCRD Heren 但是中国人口基数大,所以这个就没办法,你只能忍受。 二、傻逼多。很多人以为高中受罪了三年,大学就是玩乐的地方。一群傻逼没有丝毫自制力又自以为是,容易激化矛盾。又不懂“尊重”为何物,就继续任性的挑战室友的地线。 三、寝室有矛盾,学校不解决。我和我的室友发生矛盾之后,申请换寝室,辅导员就一句话吓得我不敢再换:你要想清楚,你换一个寝室不一定比现在的寝室更好。 Nike Air Max 90 BR Heren

以上文字写于毕业前

大学毕业了,回过头来看,寝室之间的矛盾真的不想再提及,索然无味。你的室友既然和你不一样,那就互相尊重互不打扰,收敛一些自己的坏脾气,时时刻刻想一想我这么做是不是影响了别人。

突然想到

我挺想念这些老人的,他们开始说话缓慢,听不清楚,理解事物的思维方式还是和他们年轻的那个时代一样,他们说这些东西太贵了,注意骗子,多吃饭。

开始听了,会有些厌烦,但逐渐就会对他们的叮嘱唯唯诺诺,变成一股温暖的力量。 人老了,总会有一些悲凉,谁都知道等待着他们的是什么。

我有时候想想这些,对我自己还是一件蛮好的事,我现在就开始想这些事情了,至少我老了,我不会太恐惧,至少现在,我还能不去做太多无谓的等待。

想念是一件很美妙的事,就像这冬天的早上,我蜷缩在被子里,双手捂在胸前,胸口是热的,但是时间久了会咯人。

需要想念,也被想念所害。

从匪夷所思的bug说起(一)

昨天,某媒体过来采访,OK记现场展示自己,结果出现严重bug:摘录的无论是图片还是文字,最后通通都变成了美女(是穿了衣服的)。站在背后的化妆了的媒体姑娘已经在嗤嗤地笑,但是作为一个开发人员,这个时候要表现出自己强大的心理素质,要装作什么事情都没有发生。 人生如戏,演完了之后,自然要debug一番。打开了控制台,一看网络请求,发现报了一个错误:数据库插入错误,主键重复了。反正调试过程省却了180个字,无聊又乏味,一度以为有人通过cdn上传代码文件攻击我们,三个人一起花费了三个小时,才勉强找到原因,准确的讲是没有找到具体原因,只能删除重复主键的数据了事。这个事情,其实说明一件很重要的事:如果做互联网持续开发,持续做一个产品,它的服务器数据库域名都应该是分离的,最大限度的测试代码,最后才配置到生产服务器,使用生产数据库。

我靠,这件事情昨天发生的,今天写发现没激情了。

“人生苦短,何必学Python?”

标题的名字,不是我说的,不出你所料是鼎哥说的。

话出有因,我用Python写的同步印象笔记的代码不能同步中文笔记,我对Python不熟,调试了好久也没有弄清问题的症结在哪,只能让鼎哥来。最后,鼎哥果然神勇,花了三个小时,通过加了个str函数解决了这个问题。

鼎哥抚了抚袖子,长吁一口气:人生苦短,何必学Python

这就是标题的来源。

这个debug的故事说明了两个问题,一个是Python的字符操作要谨慎;另一个问题是,要不要学Python

以前我如果介绍牛逼的程序员的时候,我会用这样的词汇,比如此人精通八种计算机语言,熟练使用八种计算机语言输出“helloworld,现在估计我不会这样去介绍别人了。

你会再多语言也不过是码农,就像一个农夫只是换了一个锄具,你能在别人的面前炫耀你会使用八种锄头锄田吗?作为一个农夫,你原本就必须使用八种甚至更多锄头才行。

再说一个问题,我为什么瞧不起码农? 在外人眼里看来,我也逐渐要成为一个码农了,每天上班的事情别无二致,从计算机的角度讲,是最低级的编码人员。

但是,我有意规避了这个称谓,我自称“web艺术家,想甩别人一条街。在我看来,码农的可替代性太强了,耕田谁不会,但是web艺术家,可能还讲究一些故弄玄虚的奇技淫巧。

说白了,我自称web艺术家,也是遮掩自己对计算机懂得不多的弊病。

有人会说,你瞧不起码农,比尔盖茨、莱纳斯、扎克伯格都是码农,你瞧不起他们?我不会回答这个问题,因为问这种问题的人,连码农的概念都没有搞清。 再回到题目,人生苦短,要不要学Python?我的回答是,当然要学,但是不止于Python。道家说过,知止于不知,何等的嘲讽,但是做人总要有些挣扎。

怕老婆,你站哪边?

今天遇到两个问题,一个问题是用户的验证问题,在同一个函数里用户的唯一标识居然换了,个人觉得是 session 的问题,但是也不一定,代码调试了之后,这个问题居然奇迹般的不见了,我并不知道问题出在哪里;另一个问题是印象笔记同步的问题,下班后又调试了一个多小时,终于将流程打通了。

继续阅读“怕老婆,你站哪边?”

怪谈“观察者模式”

对于代码的设计模式,我用的不多,又不甘心说自己是乱说,所以只能取个“怪谈”的名字。

观察者—我对这个名字充满了好感,如果你也像我一样,对这个名字多念了几次,就能读出世态炎凉人情冷暖的味道来。

所谓观察者模式,就是“冷眼旁观”的写程序,我在一旁盯着,老板说这个功能不要了,那好,我撤销一个观察者;过了一些时日,老板又说,你再加个功能,很简单,我再加一个观察者。在这样的情况下,无论老板怎么虐我,我都能快速的组织代码,实现功能。

不过大家不要误会,我拿老板做例子,不是总是树立雇佣双方的矛盾,在实际开发中,需求改变在所难免。

观察者模式的代码实现具体是怎样的呢?

abstract class Observer { abstract function update(); } class Observer1 extends Observer { public function update(){ echo “我是第一个观察者<br>”; } } class Observer2 extends Observer { public function update() { echo “我是第二个观察者<br>”; } } class Eventer { private $observers = array(); public function addObserver($observer){ $this->observers[] = $observer; } public function trigger(){ foreach ($this->observers as $observer) { $observer->update(); } } } $eventer = new Eventer(); $eventer->addObserver(new Observer1()); $eventer->addObserver(new Observer2()); $eventer->trigger();

上面的代码串的意思是使用了一个叫做“Eventer”的观察者类,来管理继承了“Observer”这个父类的类,通过Eventer观察者来处理操作监听Observer类的状态,反正思想大致如此,具体实现随便玩。

有时,我为了强用设计模式,甚至写出这样的代码来记录一个日志:

interface Observer { public function addLog(); } class LogObserver implements Observer{ private $file_path = “./error.log”; private $message; private $special_message; public function __construct($special_message) { $this->message = date(“Y-m-d H:i:s”).”===”; $this->special_message = $special_message.PHP_EOL; } public function addLog() { error_log($this->message.$this->special_message,3,$this->file_path); } } class LogMaster{ function __construct(Observer $observer) { $observer->addLog(); } } new LogMaster(new LogObserver(‘log info’));

有人说,上班久了,无聊了,要开始炫技了。

四点记录

没看过什么书,没什么工作经验,浅谈。 我想团队协作的基本原则是沟通顺利和互不影响各方的工作,如此一来就会面对工作同步或者滞后的问题。

刚刚开始没有经验的团队,一般流程是出设计稿、编码、测试,甚至是出设计稿、编码、出设计稿、改码、出设计稿……,永远不知道什么时候是测试时间,有一天老板心血来潮要体验产品,结果一堆bug,产品实现人员被骂得狗血淋头。 好像一开始就扯远了文不对题了,好,开始数点。 1.前后端如何配合 前后端的配合主要是数据获取和操作的问题。一般的做法的是各方自己写自己的,前端需求有了问题或者API调用不对头,后端改一下。很明显,这样并不好,会导致沟通成本增加(不要太简单的理解沟通成本)。 既然这样有问题,你可能会问那前后端在工作开始就确定API的调用接口不就好了?这样其实是没有什么用的,因为你还没有进行编码工作,你对这个产品并不了解或者细节了解的不深,双方的沟通是没有深度和不清晰的,即使一开始沟通了,后来还是再次沟通。

前端其实一开始不需要数据,可以自己模拟一些数据来实现界面设计的实现,这个时候后端编码人员也在同步进行API设计。

界面快要完成了,前端和后端编码人员进行API的核对和商讨,这个时候,编码人员对整体的架构都有清晰的认识,沟通就比较高效。

工作上也谁都不耽搁。 我这么说不是否定沟通,而是如何进行高效沟通。

2.面向对象编程如何设计你的类 在数据驱动的产品中,用户的所有的操作都是操作他的数据,一个类的设计也应该围绕数据操作来进行,如果有一个user表,那你的代码肯定也有一个user模型,围绕增删改查来组织你的代码,无论你的c层的逻辑如何,m层的代码实现也不会受影响。 这样的好处是m层和c层的代码耦合度很低,以后改起来很方便。以前写代码没有经验,写了很多难维护的代码,也不优雅。 3.作为一个编码人员的基本素养是什么 在目前,我只能简单的理解为你要对你的代码负责,负责包括写好注释,测试代码的功能和使用流程。

当然,我也问过很多人这个问题,他们都说不知道,这个问题了太难了。反过来想,有答案不见得是好事,追求答案的状态才是重要的。

一个编码人员在不同阶段对素养的理解和追求应该也是变化的。

只能说,我要做一个有职业素养的人。 4.2015的总结 上了半年班,可能是人生最后的寒暑假没有了,我心里很不情愿,我还没有做好心理准备,lol还没有上大师,心有不甘。

但是我是适应能力很强的人,所以没有上的大师以后再上。 说到最后都是感谢。如果有两个关键字的话,我想一个是拒绝一个是迎合,无论我得到的是拒绝还是迎合,我都学到很多东西,特别是那些我去实现和追求某些东西能开导我的道理,感谢你们。

毕业实习报告

终于要毕业了。第一次参加这么长的社会实习,也算不得“社会”二字,毕竟同事也是学校的老师和同学,但是算得上幸运。因为公司是老师和学生开的,大家在一个桌子上共事了许久。

读书十六载,用到“载”字,估计语气也沉重了许多。这次毕业不像小学毕业、初中毕业或者高中毕业,这次毕业很有可能意味着是我学生时代的终结。读了这么多年的书,终于要换一个环境,或者说终究要换一个环境,以后都不再踏入校园,心情多少回有点不一样。 还是说我的毕业实习的情况。 一:早点起床。 上班的日子,让我最印象深刻的是要勤奋。如果你今天8:30起床,那么你明天就会8:30之后起床,这样就会增大上班迟到的风险。同时,如果你早上8:30起床的前天晚上睡觉时间是12:00,那么你就更有可能在下次睡觉时间推迟到1:00,这样一来总有迟到的那一天。迟到了一天,如果一个人知道警醒,就会做出调整,如果这个人不是never learn,那么这一次调整就是最后一次调整。不过我重点要说的还是要早点起床,回到一日之计在于晨这句话,只有早点起床才会有更大的发挥空间。 比如说,早上起来可以看《道德经》,在实习期间,我不只一次想早起看《道德经》,但最终因为道德品质太差起床太晚导致读经失败。说到读经,有下面一段有意思的文字:

顾栋高先生复初,清康熙辛丑进士,性倨慢不合时,仅三载即归田。深于经学,自幼至老,未尝一日不读书,于五经皆有发明。

掌教淮阴时,夏月坚闭重门,解衣裸体,寸丝不挂,手执一卷,高读不辍。客至,自门隙窥之,大笑。

先生仓皇著衣而出。谈者传为笑柄云。

我也可以这样。 二:早点吃饭。

大家知道一到吃饭点,人们就会出公司吃饭,这个时候人会巨多,需要排队等候,排队往往会浪费更多时间,看起来因提早吃饭而破坏公司规矩,但是实际上是获得了更好的体验并且赢得了时间。 吃饭的哲学在于细嚼慢咽,而饭菜的哲学是体现食物原来的味道。最恨那种吃饭赶着去投胎,没吃之前你等他半天,吃完了他抹鼻子走人不等你的人;而饭菜,最恨是放了一堆调料,吃不出猪肉和鱼肉的区别。 吃饭有个难点,就是不知道在哪里吃?去这家店子吃了两个月,如果想要换一家反而自己觉得做了亏心事。做顾客做到这样良心发现,估计这家店的味道要变差了。 三:慢的哲学。 代码写的越慢质量越高。如果要得出这样的结论,可能要加上一些故事前缀:

我写代码多年,有一天夜里,我满身大汗醒来,梦到了阿兰·图灵和冯·若依曼对着我说:你写代码太快了,都是bug。

代码之道在于精益求精,而只有“慢”,才能让你写出能运行更久的代码。戏谑者称,代码之道在于慢,以后所有的编码人员都会对着电脑发呆,双手放在裆下,美其名曰:思考未来。 四:不可说的秘密。 我虽然因为起床太晚,没有完全看完《道德经》,所以只记得“道可道,非常道”,实习中的其它体会同样也是不可说的,说出来就没有意思了。 人完全有这样的一种情绪,很微妙,让自己快乐也让自己哀愁,这种情绪是不能袒露的,它的全部意义在于情绪的所有者。

五:想想未来。 哈,这种思考双手不用放在裆下。学生时代的结束,是打工仔时代的开始,这也许是我们每人美好生活的开始。

“顺丰”骗局

首先声明,这个事情和顺丰快递是没什么关系的,只是有不法分子借顺丰之名行骗。

中午吃了一碗酸豆角牛肉盖面(14块钱,太酸了,下次不点这个了)后,接到一个名为“顺丰快递”的电话,说我的一个快件被拒签了多次,快件物品是九张银行卡,属于违法物品,让我向公安局报案处理。我一小老百姓就图个安稳,平生就怕上医院和公安局。

一听,我就觉得这是个事,我要处理一下。

开始我以为是我的个人信息泄露了,别人拿了我的个人信息做坏事。在互联网时代,个人信息泄露是很正常的事。

比如有些没品的网站收集了你的个人信息后卖给其他人,或者因为互联网安全问题,你的个人信息被人窃取。

对方告诉了我快件详情,并告知我电话不要挂断,他会立即转接给“上海市普陀区公安局”。快件详情如下:

快件编号:01038

寄件时间:2016.01.20

内容:九张银行卡

发件地址:上海市普陀区顺丰快递

收件地址:澳门半岛白马杭街108号

收件人:张强

说完之后我就按照他的提示接通到了自称是上海市普陀区公安局的一名民警的电话,我和他聊了一会,最后我不耐烦,挂了。 以下是我分析的疑点:

1.顺丰快递的人操着一口粤语普通话,但是自称是株洲顺丰的。妈的,顺丰在广东起家,广东人跑到株洲就为了接个快递电话了!而且普通话都说不标准,还当个屁客服啊!。当我怀疑他不是顺丰的人之后,他便立即要告诉我编号,我没什么兴趣,就制止了他。

2.事后,我谷歌了一下“顺丰快递”的号码,+8887314595338,以+88开头的是卫星电话,这就足以解释,我和他通电话时,我听不清楚的原因了。

3.上海市普陀区公安局的电话,+66 85 192 7346,一查发现是泰国的电话号码。我靠,打国际电话,这么有钱还骗什么人。 4.收件地址一查,不存在。

5.快递编号只有5位数。我靠,老子也是做互联网开发的好不好,数据库设计也是搞过的好不好,五位数搞个屁啊。

反正是疑点重重,我都懒得再分析了,总之,个人信息千万不要告诉任何不信任的人。待人接物首先是“疑”,以后我不信任你,千万别说“哎呀,你这都不信我”这种矫情的话。