2017 迷茫

每年年底,都有很多人在各种地方发表这样的总结,看得我煞是羡慕。去年也想学习2016 无限大中这位大佬这样好好搞一番。最终的结果是,写了一些之后,就放弃了,然后现在草稿都找不到了。今天,终于鼓起勇气,准备在图书馆好好总结一下2017年经历过的事情。那么多年以来,感觉今年经历的事情最多也最复杂,很多事情到现在都没有讲明白。

上半年大三,现在大四,今年在学校上的课实际上是很少的。上半年自己选的只有python入门和软件工程,不知道为什么,对学校的教育是彻底的失望了。MOOC方面,不知道托了多少个月,换了几个班,终于把吴恩达的机器学习给看完了。这样匆忙下来,所学的东西到今天基本也忘得差不多了。前几周,又决定去听一下《机器学习基石》和《机器学习技法》,希望可以坚持下去。另外,还看了一下候老的《深入浅出STL》,收获很大。

应该是寒假的时候,没有多少思考,在陈老师的鼓动之下,又给自己的ACM生涯续了一年左右。队友实在是太给力了,以致于前几天陈老师还说出,我们几个人好好训练,还有机会打进总决赛。抱大腿之下,成绩倒是不错,省赛金、邀请赛金、区域赛金、ecl银,但这和我没有多的的关系。印证了陈老师的一句话,带着功利的目的参加ACM比赛没有好的结果。人家的没有好的结果指的是获不了奖,我的没有好结果是人生的迷茫。

由于没有去考研的原因,也把自己推向了就业,但我都没有准备好。打击在找实习的时候就来了,上一届的学长推荐,很早就面阿里,发挥的很不好,毫无疑问的挂了。自己后知后觉,春招快结束了,都没有找到好一点的公司。幸运地是,在差不多接受去一家杭州本地的游戏公司实习时,突然接到滴滴北京的offer,终于拯救了一下自己。

944_2017-08-29_11-17-42

6月到8月这3个月的时间,自己都在北京实习。这一段小结准备了好久都没有写完,这里简单的介绍一下。那边的部门是路径规划小组,所以我的主要工作就是写最短路……这三个月时间对我来说,最主要的是体验,感受了互联网公司的氛围,认识了很多优秀友善的同事,他们也教了我很多工作上的技能。最重要的是,我也发现自己的不足,工程能力太弱,学历太低等等。三个月的时间很快,还没有在那边做太多的项目就结束了。另外一方面,在北京也去过很多地方体验,文化之都名不虚传,这个也等有机会再写。

回来之后,又是一番秋招。抱着在杭州找一份工作的信念,我面试了很多,贴出9月和10月的日历来留念一下。


最终由于自己的实力问题,结果不是很乐观。这么多面试,唯一想记一下的就是微软面试,有一刻我彻彻底底地感受到了自己的不足,英语水平太差,思维定势。接下来的两个月,就只好老老实实地待在学校,每天不是在寝室就是在图书馆度过。

另外,寒假的时候,突然有兴致想学围棋,又是报live,又是买书、又是买围棋。坚持了几个月之后,发现真的不是时候,没有了太多空闲时间来培养兴趣,也许早个一两年,可以培养出这个兴趣。现在感觉,可惜这些冲动而买下的东西。说回来,这一年空闲的时间大多花在网上,看视屏、看直播、刷论坛,明知很多事情没有意义,却又控制不住自己。

所以,又开始关注个人管理。最大的投入是换了一台Mac,终于不用再忍受原来低配thinkpad的卡顿。这几个月里面,倒是每天都抱着在用,感觉生命都得到加速。不过,现在感觉自己的电子设备有点多,选择什么设备干什么成了新的问题。2017年也是知识付费地兴起的元年(这个是我一直追求的,如果觉得我的哪篇文章把你逗笑了,打开about页面,扫一下二维码支持一下)。在这方面的投入主要是知乎live,由于冲动,也交过一些智商税。比如下面图中知乎最有名的"智商税"之一:

其他的还有如何自学计算机专业课程?,道理都懂,不知道自己当时为什么要买这个东西……当然也有不错的比如围棋相关的从入门到入段,这个live最大的优点是配套服务完善。上面也讲了,自己没坚持,才没有学会围棋。前几天买少数派的效率大礼包,还送了一个什么live私家课,又是一个坑……其实我一直很反感知乎live的形式,语音不能检索,聊天信息流的形式不适合深度讨论,最重要的一点,网页端功能太弱,完全想直接喷。有过这些教训之后,应该把知识获取的重心放在课堂以及书本中。在网络上的另一笔花销就是购买软件服务。目前自己周期购买的包括为知笔记会员、滴答清单会员、蓝灯会员、腾讯云服务器以及域名。对于这些还是比较满意。换到Mac之后,自己也购买了一些软件。遗憾的是由种种原因,偶尔还用通过不正常手段获得的软件。

由于这一年感触比较多,也捡起了原来写日记的习惯,毕竟自己忘的实在是太快。之前尝试过很多写日记的方法,比如晨间日记、九宫格日记,或者是纸笔记录,都没有满意的方案。目前搞的一种笔记式的方法再探索。

大致思路是为知笔记上面按每一个月创建一个文件夹,每天创建一篇笔记。在笔记里面可以写东西,贴照片,传附件,保证自由很多样性。然后第二年同一天打开这篇笔记,可以去年今日,再写下新的感悟。更重要的是,通过这种方法可以将之前写的日记整合进去。家中的初中和高中日记本也有机会处理了。

最后,就是关于博客的折腾。年初的时候自己把博客改成了wordpress,但是一年都没有坚持下来,又回到了hexo怀抱,真是呼吸不止,折腾不息。但不应该忘记,博客的本质是分享,现在自己差不多是舍本逐末吧。所以,定一个小目标,新的一年里面更新博客频率不低于每周一篇。

于浙财图书馆。

阅读

上半年基本上没有看完什么书,大部分都是下半年从北京回来之后看的,所幸都有一些简短的记录,特地复制过来记录一下。

  • 编码:顾名思义,这本书讲解的是计算机内部编码的原理。书中主要包括两部分
    ,一是编码的理论基础,用多种方式表示字符或者操作指令,二是编码的硬件基础,如何设计硬件处理各种编码以实现相应的功能。
  • 尽在双11:阿里巴巴技术演进与超越:听名字就知道这本书很厉害,结果可想而知。本书讲解的是阿里一些架构演变的历史,里面有太多技术相关的名词,水平太差根本看不懂这些东西,希望有一天能恍然大悟。
  • 程序员修炼之道:看不懂,有缘再读。
  • 腾讯传:之前在知乎查评价时,很多人不是很推荐。这本书主要记录一些腾讯发展过程中重要的里程碑,比如OICQ、QQ秀、QQ空间、微信等等。没有读出这些事件背后深刻的意义。书中另外一个重点是对马化腾的大夸特夸……有种天不生化腾,万古如长夜的感觉。作者号称写这书花了五年时间,实在没有找出什么重磅的料啊。
  • 大学之路:大学生活马上就要结束了,才想起来看这本书。最近深刻体会到高等教育额的价值,对比吴军博士在书中所写的各式各样的美国大学,我们国内的大部分学校除了校名不同,就没有什么其他差别了。最后,吴军博士本人也很励志,从进入清华开始到博士毕业花了18年,真是终生学习的典范。
  • 人类简史 : 从动物到上帝:这本书大概读了五分之一,很多观点比较深刻,但是提不起我的兴趣,所以就选着了放下。另外一方面反映我的人文社科阅读能力实在是太差了。
  • 出梁庄记:这本书和上一本,都是我在三联奋韬书店里看的。有点区别的是,这一本我看完了……作者通过采访生活在各地的梁庄人,反映了生活的不易。当时正是北漂,引起了共鸣
  • 高频交易员:没有仔细看,现在回想起来,自己记住的就是,通过信息传输的时间差来获利,以此来抨击美国金融市场的不公平。
  • 盖洛普优势识别器2.0:这本是最重要的就是配套的测试吧,图书馆借的书没有测试码,所以也很无聊了。
  • 毛泽东选集(第1卷):这本书里面,其实我只挑了《湖南农民运动考察报告》来看。这篇报告的特点是逻辑清晰,和现在的报告对比,缺少数据分析。
  • 编程之美:为了准备微软面试而读,最后发现没有用到
  • 剑指offer剑指Offer:名企面试官精讲典型编程题(第2版):第一版是在软件工程课上读完的,由于之前参加过算法竞赛,所以很多题目都是秒杀的。第二版是在去苏州的火车上看完的,比第一版多了一些题目,质量也不错。确实很多面试都是从这本书里面找的题目。
  • 程序员代码面试指南:IT名企算法与数据结构题目最优解:之前一直黑左神,但他这本书还不错。有一次笔试,我有一道题目没有写出来,听人家一说是这里面的,龙与地下城。去微软面试之前,准备看一下这本书里面的大数据相关题目,但是时间匆忙没有机会了。后来发现面试的时候就问了一道里面的大数据题目,最后gg了。在百度和拼多多面试时,也被问道里面相关的题目。
  • 技术之瞳——阿里巴巴技术笔试心得:为了准备阿里笔试而借的书,说句实话不推荐。书很薄,但是很贵。知识总结也很少,所谓的笔试真题,也只有答案。借用一句话,对于没有解析的书,自己答案印错了都不知道。纯属阿里巴巴骗钱之作。最后吐槽一下,阿里笔试是要招全栈工程师吗?什么问题都有。
  • 淘宝技术这十年:听学长讲座后借的书,由于不是很懂里面的故事,所以我就当成故事书来看了。印象最深的一个多隆的大神,技术伴随着淘宝发展的成长,前几周看到,好像他成了阿里的合伙人。
  • 王道程序员求职宝典:又是一本为了面试而看的书,对于我这种基础不是很扎实的,感觉看起来很不错。王道论坛在计算机考研的口碑应该也是挺好的。
  • 深入理解计算机系统(原书第3版):五星推荐,串联起了我学过的知识。
  • C++ Primer 中文版(第 5 版):这也不错。
  • 围棋入门:围棋入门挺不错的书,上半年想学围棋时而读的。不过目前已经绝版了,我也是买的淘宝复印版。

观影

这一年来看了不少的电影和记录片。不过我用的形式是优酷ViP区的电源以及B站上面的记录片。

  • Jia Jiang: What I learned from 100 days of rejection:蛮有意思的一个TED演讲,但是我没有勇气去实践。
  • Professional-职业人的作风 围棋棋士 井山裕太: 这部记录片主要介绍日本围棋史上首位获得国内全部头衔的棋士井山裕太的生活以及一些比赛。
  • 纪实72小时 沉浸在围棋的魔力中: 记录日本的一个围棋茶馆72小时,看完之后感觉也只有在日本才会有这样的茶馆,很多人会在店中待上一个周末。在围棋当中,忘记自己的一切,只有黑与白之间的交锋。对其中的两句话印象深刻,第一句是提问武宫正树儿子有关职业围棋的问题,他回答到,下这盘棋的时候我们的出场费是一样的,如果我输了,我就没有了机会。第二句是提问一位下棋的人为什么这么长时间都待在这里,回答我没有家。原来只是听说日本老年化社会,看完这个视频才对这个问题有感触。接下来,我又看了很多这个系列的记录片,感受到了日本的温度,这是我们所缺失的。
  • 白日梦想家: 有过很多想法,最终却成了空想,每次半夜的激情,醒来之后还有多少?
  • 现代生活的秘密规则:算法 The Secret Rules of Modern Living: Algorithms: 里面的很多算法自己都接触过,但看这部纪录片又有了很多新的感悟.
  • 人民的名义:这是我这几年第一部看完的国产剧吧,喜欢他的原因是讲了很多我原来都没有关注过的反腐问题。
  • 战狼2:今年最火的电源,主题也很深刻,不过现实还是很残酷的。
  • 硅谷四季:一部讲述美国geek创业的故事,很励志,但我却没有一颗创业的心。
  • 华尔街之狼:我觉得看的很爽。
  • 雷神1、2:去年把漫威宇宙中的电源都找出来看了一遍,唯独没有雷神系列,最终补上了。我最喜欢的一个设定是,雷神在远古中出现,但由于时间太久,人类选择认为是神话。这里,我想起了易中天在《中华史》里面提到过的一个观点,也是神话是真的存在过,只是我们后来的记录夸张了那些,比如那时候人很少,而且有足够的水果当成是食物,所以人们不用劳动就能生活。
  • 盗火者:中国教育改革调查:大一的时候听高数老师讲起过,一群不合主流的中国教育者故事。
  • 奇异博士:漫威宇宙中的新作,反正是无脑看的。
  • 西部世界:很烧脑的美剧,反正我是靠知乎剧透才看懂的,还有很多谜题都没有解决,不知道什么时候有新的一季。
  • 权力的游戏:从大一开始就听过这部美剧和书,然后到大四才开始看。到目前为止,看了4季,资源太难获取,就不看了。看他的原因是,讲述了低魔世界的传奇。
  • 如何实现你的儿时梦想:蛮有名的演讲,少年可期。
  • 超级工程:这也属于很早就听过名字,但是没有机会看的。很多东西确实震撼,但是自己没有机会参与其中。
  • 人生七年:已经快60年的社会学实验,看下来很多结论是很残酷的。
  • 我更关心的是怎么样不做事 老树画画:做一个梦:这也有感动。
  • B站的历史记录有限,很多看过的记录片很遗憾没有记录下来。
  • 暴走大世界:之前很喜欢的一个综艺节目,但是最近却脱粉了。理由很简单,王尼玛居然是一个符号。我确实没有仔细的思考这个问题,当人家爆出来的时候,我也很震惊!
  • 旗门镖局:阿瓦隆的汉化版,很有意思的逻辑综艺节目。

iPhone软件清单

本来打算双十二买一部小米6,谁知道当天没有优惠,转而买了一部mix2。当时准备写一篇文章来纪念一下我的第一部智能手机。可谁知道,拿到的mix2品控太差,一周不到前置摄像头就进灰了,果断退货。

目前在用的手机是高中毕业之后买的,当时记得是4500块送1000块话费而买下的。8G的存储空间,对于我这种不拍照的来说也还可以接受。不过最大的问题是电池,实在是太不经用了,而且还有天冷关机的问题。所以,退了手机之后,就在京东上买了一块品胜的电池和线下装机服务。用了大概一周,目前还比较满意。前几天,Apple终于为电量低降频的事情道歉了,而且将换电池的价格从五百多降到了两百多一点。我感觉之后,苹果换电池就很划算了。可惜下一部不想买iPHone了。

QQ、微信、支付宝之类的不写,记录一下,我自己在用,但比较小众的软件。

  • inoreader:免费里面比较好用的RSS软件,不使用其他服务,墙外的博客都可抓下来,不过图片有很大的问题……几个月之前在国内AppStore被下架了,所以目前绝版,网页版很早就被墙了。
  • Castro:播客软件,我认为最大的优点是界面优美,从破解版用到它免费,目前还有Castro 2可以选择。
  • 欧路词典 Pro:最大的优势是可以自己装字典,配合网上的盗版资源非常的棒,而且价格也很便宜。
  • 每日英语听力:偶尔听听
  • 诗词之美:有时候掏出来,抄一篇之前背过的诗词。之前这个App还叫西窗烛,后来那个软件加上了很多社交功能,就单独出了一个只能看看诗词的版本。
  • 白描:ocr软件,买少数派效率大礼包时候送的。
  • 熊猫吃短信:通过iOS 11新机制,使用机器学习过滤短信。
  • Battery Life:查看电池寿命
  • Scanner Pro:扫描软件,Reedle出品,质量保证。
  • LastPase:密码软件和chrome上的插件配合使用
  • Authenticator:两步验证,部分网站支持,在实习时必备。
  • AppZpp:可以订阅App更新和价格变动
  • 网易有钱:记账,最大的优点是可以同步支付宝的账单。
  • Forest:集中注意力?可以在手机上种树?
  • 滴答清单:清单+日历
  • kindle:阅读
  • 脉脉:查看程序员八卦,行业内人员变动消息传的早,公司内部撕逼等等

2017年上海 ACM/ICPC ECL-Final

前几周和教练申请,愿意自费出去比赛,所以才有了这一次机会。这也是3年多以来第一次自费出来。

今年的比赛时间安排不是很好,可能是区域赛安排到了12月初的原因。由于周六要参加六级考试,我是那天晚上坐高铁前往上海的,幸亏这些都是轻车熟路。唯一值得记一下的是,我从场中路地铁站出来后,周围比较冷清,只好用滴滴打车去宾馆,这一次司机直接开到推荐上车点来接到我,没有使用电话沟通。前几个月在北京实习时,弦哥经常在内部说这个功能的重要性,可以给滴滴剩下近千万的虚拟号码开销。现在终于享受到了这个好处。

来到宾馆之后,找队友拿了队员证以及衣服。惊喜的是今年谷歌送的小礼品是 Google Cardboard ,平民级别的 VR 眼镜,记得之前内核恐慌里面听 Rio 他们提起过。拿到之后研究了一下,确实蛮有意思的。

由于前几个月在学校内修仙比较严重,睡得比较晚,导致第二天8点10多分,听到外面有人的动静才起来。匆匆的洗漱了一下,就和同学一起前往上海大学。

到达比赛现场之后,惊奇地发现,他们已经把午餐给发下来了,所以直接开始吃零食……

刚开始都比较正常,我也在那里简单地看看题目。然后,看都L题,题目比较简单,看起来像是一道博弈题,由于没有上机的机会,所以我知道简单的推一下,大概推了10以内的情况,我认为自己找到了规律,所以上去写,不过第一次没有通过。下来之后,我再推了一下16的情况,明天自己刚才错在哪里,所以就重新上去写了一下。在111分钟的时候,我们通过了这一题。最后半小时内,我和老王一起写H题,凭借着他强大的逻辑能力,在289分钟的时候通过了。最后由于人多人会写的J题,我们没有通过,所以只有以7题遗憾结束。

算上打星队伍的排名大概是73名,获得银奖。

最后在等待领证书的时候,一个志愿者突然跑过来,问我们要一包零食,说上午到现在都没有吃东西。我拿出一包豆腐干给了他,祝福每一个努力拼搏的人。ACM生涯在续费一年之后,就结束了。

照片不知道为什么不能调整方向,就放在这里治疗颈椎病吧
get_thumbnail


2017年西安区域赛

怎么开头呢?
10月20多号的时候,教练通知我们,一定要在赛前训练一场。仔细一想,上次训练在5个月前……整容倒是没有太大变化,周神(通过微软、腾讯、今日头条、京东和拼多多面试)和God王(曾经在阿里实习过),三个人暑假都在外面实习,回到学校之后也没有心情训练。10月25日(周三),我们拉了一场貌似是印度那边的区域赛,打了一下,感觉手感还行。周四就带着学弟学妹们坐火车前往西安,这也是我校继2015年EC-final之后,再一次派出多支队伍去打区域赛。

周五上午抵达西安站,由于一些情况,果断卖掉学弟学妹,我和队友3个人提前打车去了酒店。到达之后,发现他们离酒店还远,就在旁边找了一家饭店吃法。点了几个菜,到现在都觉得手撕羊肉不错,毕竟60多一斤。然后,就是常规的办理入住手续。上半年过来的时候和其他学校一起住在别墅,还能泡温泉,美滋滋。这次人来太多,经费紧张,就只能让我们住在标间。虽然环境还是可以吐槽的,但至少有wifi可以用了……

晚上,一群人又出去吃了一顿火锅,西安的物价真便宜,最后剩下好多蔬菜没有吃……

day1 热身赛

早上起来之后,发现喉咙有点痛,和队友表达了明天可能会失声的担忧,并且表示不想去医院看,看好了多尴尬。10点左右集结队伍徒步前往西北工业大学。

这次比赛的地点和上一次不一样,终于搬到了体育馆。不过确实大,都能放下350+队伍,多年之后会不会有学校租个鸟巢打比赛?领完衣服,拍了照片。我们就高兴的去了食堂吃饭。吃完之后,我和周神一起去校园逛了一下,果真是强校,实在是太大了。

下午3点左右,抵达比赛场地,准备热身赛。老王让我上去打一些头文件,我感觉,如果今天一道题目都不会写,不是就白打了吗?队友想了一下,只能无奈地看着我……

比赛开始之后

我快速地看完A题,说了一下题意,队友就开始写了。在决定猜什么数字的时候,周神强烈要猜2017,我说了一句傻子才会猜2017,然后他们就Yes了,我无法可说……
B题,简单模拟题,周神搞了一下就通过了。

最后就是C题,三个人一起看了好久,没有什么想法。我开始自告奋勇地说要写一个暴力,他们奇迹般的同意了我的方案。于是就获得了上机的机会,写到一半时,后面的队伍就欢呼通过了C题。综合他们一系列的反应来看,绝对是暴力过的,我的心也就放下了。由于好久没有写题目,所以用几分钟调试。通过这题之后发现,排名居然是第三,而且和第一名才差1分钟。毫无疑问,队友对我展开批判,痛失热身赛冠军……

v2-28df8e8bd4ceebc2cc3ac8b461201f54_b

之后的时间就是学习其他人大佬,一顿乱试。时间还有多,队友上机打了一个表,验证一个猜想,就想出了C题的标算。最后,实在没有什么可以干了,决定提前半小时离场吃饭……路上队友怕今天把明天的人品败光,我告诉他,正真的共产主义者是无所畏惧的。这样我们高高兴兴地吃完了晚饭,然后搭车回到了秦龙。

晚上,一个队友在网上认识的河南农业大学大佬请他吃烧烤,我又跟过去混了一顿。和他们聊了一下子,我说了一句,你们一定会成功的。果不其然,青岛赛区他们获得了银奖……

day2 正赛

参加过这么多场比赛,第一次遇到口号是“安全第一”的赛区,周神的祖传行李箱不让带,所以他去寄存。我抱着一大堆书籍和打印的资料走进了体育场,路上还听到有人议论。从赛后来看,这些东西都没有用到……

比赛开始后,一切都比较顺利。老王单人ACB题,周神一秒钟猜出了F的公式,然后我就鼓励他们不用想其他样例就把猜想给交了。85分钟地时候,老王不动声色的AC了G。看完H题意之后,我和周神说这个贪心地取就好了。他想了一下,决定用线段树。然后在他快要写完的时候,我看有那么多人都过了,感觉不是很像,后来出来一问,暴力也能通过……

之后做的是L题,有关lol的题目。前一天翔哥还和我吹周神是财经faker,但我发现他居然不知道banpick,于是乎解释了好久。看完第一个样例的后,我决定自己算一下。这时候,突然弹出一个公告,告诉我们怎么计算样例,就这样完全明白了题意。然后队友就给了一个任务,让我去把第二组样例打出来……500个01组成的字符串,我机智的想到去讨论版提问,能不能发送一份样例过来,毫无疑问的no response……所幸老王想出了4个for循环的暴力,复杂度高达10*1e8,出于对西安赛区判题机的信任,他就开始写了。然后,懒得输入样例,膨胀到在写完之后就交。果不其然wa了,多组输入忘记数组清空,改。又是一发wa,看了一下有操作逻辑写反了,再改,AC。接下来就是自我安慰把这40分钟当成输入样例的时间……

之后我们就陷入长达1个小时的僵局,三个人看着A题感叹世界真是神奇……后来老王不得不放弃这一题,从而转战K题,想了半个多小时,就开始上机码。写完的东西神奇的re了,然后派出换上周神上去改。不知道后来发生了什么,折腾到269分钟AC。之后就是估计排名时间,根据封榜前的排名估计了一下我们大概在32名左右,感觉有点悬……又开始对A题进行一顿乱搞,在最后几分钟里面提交了好多次,但是都没有返回结果……

离场前气球合影,可惜最后一小时过的题目不发气球。
IMG_6227

所以带着最后的悬念来到了颁奖典礼,在等待的过程中,发现学弟遗憾的只是铜首……滚动46名时,发现我们飘到32名。再加上看到下图是,我在学校的群里说了一句最差34名,就这样获得了自己的第一块区域赛金牌,学校acm史上的第二金。

最终排名也是32名,这个世界真是神奇。

IMG_6227

然后又是我上台高高兴兴地领奖。

三人合影留念

搞完这些之后,坐着校车来到了韦曲南站。我带头冲向上半年吃过的烧烤店,后来发现,老王没有一个能吃的,真是尴尬,其他人也没有什么兴致,最后就当我请客了……然后在旁边找了一家宾馆就睡下了……

day3 归来

12点左右,在火车站附近开了一间房,把我们的行李都放下了。然后,在周神的带领下,前往回民街。逛了好久,没有太多意思。19点火车返程杭州。西安区域赛就这样结束了……

最后还要感叹一下,周神和老王还真厉害,带着我都能获金奖,不过说回来还是喜欢去年自己在北京拿的铜。自己的贡献是一场比一场小……如果没有ec-fianl的话,acm生涯到这里就结束了吧,也留下一些遗憾,如果有来生,我也愿意信来生,再见……


Mac软件清单

最近痛下血本买了一台Mac,这里记录一下我装的软件。

君子生非异也,善假于物也。

更新

  1. 2017年9月20日:Anaconda
  2. 2017年9月21日:lantern、Dash、Xcode
  3. 2017年12月10日:虚拟机相关

Clion

  • C++ IDE

Pycharm

  • Python IDE

Alfred 3

  • 替换默认的搜索工具
  • 搭配workflow使用效果更佳

MWeb

  • MacOS 下面最喜欢的Markdown编辑器
  • 常用的高级功能有发布WordPress博客和自动将图片上传到图床

Wiznote

  • 用官方的话来讲Mac功能少是小而美
  • 如果不是会员到2020年结束,我一定会转到Evernote上去

iina

  • 视频播放软件

ShadowsocksX-NG

  • 看名字就知道干什么的
  • 突然发现自己买不起服务器,转向蓝灯

Parallels Desktop

  • 虚拟机软件

Sublime Text 3

  • 性感的编辑器?
  • 处理小文本时使用,写题目还是喜欢vim

iTerm2

  • 用来替换默认的Terminal
  • 推荐主题:solarized-dark
  • 推荐字体:Hack

Homebrew

tmux

  • 增强终端功能
  • 配置文件:.tmux
  • 更新配置文件:tmux source ~/.tmux.conf
  • 常用快捷键
    • prefix s 查看/切换sessoin
    • prefix d 离开session
    • prefix $ 重命名当前session
    • prefix c 新建窗口
    • prefix space 切换到上一个活动的窗口
    • prefix & 关闭一个窗口
    • prefix 窗口号 使用窗口号切换
    • prefix o 切换到下一个窗格
    • prefix q 查看所有窗格的编号
    • prefix “ 垂直拆分出一个新窗格
    • prefix % 水平拆分出一个新窗格
    • prefix z 暂时把一个窗体放到最大

Oh My ZSH!

  • zsh来替换默认的shell
  • 推荐主题:agnoster
  • 最喜欢的是对git的增加以及git相关快捷键的缩写
  • 常用快捷键
    • gaa: git add .
    • gb: git branch
    • gcm: git checkout master
    • gcmsg: git commit -m
    • gst: git status

vim

  • 配置文件:spf3,已经不想折腾这些东西
  • 常用快捷键
    • dd: 删除当前行,并把删除的行存在剪贴板里面
    • *#: 匹配当前光标所在的单词移动到下一个或者上一个匹配的单词
    • %: 匹配括号移动
    • :set number: 显示绝对行号
    • :set relativenumber: 显示相对行号
    • r: 将光标所在的字符替换掉
    • <<: 将当前行向左移动一个偏移宽度
    • >>: 将当前行向右移动一个偏移宽度

Powerline fonts

  • vim中的状态栏以及zsh某些主题正确显示的核心

iStat Menus

  • 系统增强工具
  • 在状态栏显示当前网速、CPU占用以及温度等信息

Jietu

  • 腾讯为数不多的良心之作,截图软件

坚果云

  • 良心同步软件,每个月上传流量不多,但是够用
  • iCloud默认空间实在是太少

Anaconda

  • python 科学计算包?
  • 最主要使用是jupyter notebook
  • 根据之前在公司安装时得到的经验,完成安装之后还需要更新zsh相关的配置,否者在iTerm中依旧无法使用
  • .zshrc 中添加一条记录:export PATH="/Users/xiangrunye/anaconda3/bin:$PATH" 注意这里需要写绝对地址
  • 更新配置文件:source ~/.zshrc

Lantern

  • 捍卫互联网自由?

Dash

  • 快速查阅各种语法的文档
  • 配合Alfred食用更佳,建议将 keyword 改为 ds

Xcode

  • 感觉自己可以转ios开发
  • 下这东西才知道,国内连AppStore网络有多差

Parallels Desktop

Chrome

参考链接


使用 BackWPup 恢复 WordPress

昨天晚上手贱点了升级服务器上的 Ubuntu 版本,然后发现 WordPress 不能用了…删了nginx装上 Apache 才解决,之后发现主题有问题,一激动就提交工单把服务器重装了…

接下来就是 WordPress 重装的过程,自己一直使用BackWPup 每周备份 WordPress ,所以本以为重装会很轻松.

早上起来将 WordPress 以及 BackWPup 装好.然后就在 BackWPup 里面翻了好久都没有发现怎么还原的按钮…又用百度谷歌搜了一下,也没有教程…

没有办法,只好硬着头皮去看插件的官网,找到 How to restore a WordPress backup? – BackWPup Docs,按照这篇文章的提示成功恢复 WordPress.

恢复数据库

由于我用的是phpmyadmin,所以登录到服务器的phpmyadmin管理页面.选择数据库 WordPress,点击导入,上传BackWPup备份压缩文件中的.sql文件,点击执行,这样数据库中的内容就还原了.

-w1277

恢复 WordPress文件

这一步只需要将备份文件里面的文件上传到服务器新的网站目录下覆盖就可以了.由于我用的是iTerm2,所以可以在本地使用scp命令

尾声

zz插件,连个一键还原都没有…


Alfred 使用记录

昨天晚上在看MacTalk时,发现一篇文章神兵利器——Alfred,随后将里面提到的软件下载下来.接触不到一天的时间,就感觉到这个软件的强大.下面就记录一些我用到的功能以及插件.

原生功能

terminal

最近在公司工作,都要求连接到服务器上去写代码,所以对terminal的需求很大.目前自己用的是iTerm2+zsh的组合,还有类似于powerline的状态栏,工作效率杠杠的.Alfred可以使用一个字符触发terminal,默认的是>以及打开Mac自带的终端.

由于>这个字符比较难打,我将Prefix修改为;,而且也将修改terminal为iTerm2(参考这个链接最下面提到的Alfred Support).

网页搜索

给定关键字打开浏览器在特定的网页搜索,例如下图

实现起来也比较简单,在Feature->Web Search中添加类似于下面的即可.

计算器

输入表达式通过Alfred计算

WorkFlows

这个是我觉得Alfred最强大功能,毕竟编程改变一切,下面推荐几个插件.

Markdown img

这个插件的功能是直接将系统的剪贴板里面的图片上传到七牛图床,并把图片链接复制到当前的编辑器和剪贴板.这篇文章的截图就是通过这个插件完成的,终于不用像之前一样苦逼的一张张上传图片.下载地址

Workflow Searcher

通过Alfred来搜索workflow并且跳转到下载页面

v2ex

快速浏览v2ex的帖子.

Douban

查看豆瓣的电影,音乐,图书等信息

Wunderlist

可以连接奇妙清单,正好符合我这种轻量级用户.

有道翻译加强版

满足查字典的需求,虽然mac原生的也很强大,但这个能翻译啊

百度搜索

虽然国内口碑不好,但我还是觉得百度更懂中国人…

最后吐槽几句,垃圾为知笔记,mac版就没有多少功能,发个博客都没有,可惜我剩下三年的vip,这篇文章还是靠 Mweb 发布的.


计算机基础:计算机网络

  1. 电路交换与分组交换的区别? 优劣对比。

  2. OSI有哪几层,知道主要几层的各自作用。

    1. 物理层:定义通信与传输借口硬件的机械、电气、功能和过程特性,实现比特流的透明传输。
    2. 数据链路层:无差别传送以帧为单位的数据。
    3. 网络层:选择合适的路由和交换结点,分组或者包。
    4. 运输层:端到端、或者进程到进程的无差别传送。
    5. 会话层:对数据传输的同步进行管理
    6. 表示层:信息加密和解密,正文压缩和还原
    7. 应用层:
  3. TCP/IP有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称。

    1. 网络接口层:x.25
    2. 网际层:IP
    3. 运输层:TCP和UDP
    4. 应用层:HTTP、FTP等
  4. 硬件(MAC)地址的概念及作用。

    1. 媒体访问控制子层:前6位16进制IETF分配。
    2. 区分不同的硬件
  5. ARP协议的用途 及算法、在哪一层上会使用 ARP ?

    1. 地址解析协议:IP地址到MAC地址的映射
    2. 网络层
  6. 知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)

    1. 物理层:中继器、集线器
    2. 数据链路层:网桥或者交换机
    3. 网络层中继系统:路由器
    4. 网络层以上:网关
  7. IP报文的格式,格式的各个字段的含义要理解。

  8. MTU的概念,啥叫路径MTU? MTU发现机制,TraceRoute(了解)。

  9. RIP协议的概念 及算法。

  10. ICMP协议的主要功能。

    1. 网际控制报文协议,提高IP数据报成功交付的机会,报告差错和异常情况。
  11. 组播和多播的概念,IGMP的用途。

  12. Ping协议的实现原理,ping 命令格式。

    1. 应用层,使用网络层的ICMP协议
  13. 子网划分的概念,子网掩码。

    1. A类子网掩码:255.0.0.0,划分:8位+子网X位+主机24-X位
  14. IP地址的分类,如何划分的,及会计算各类地址支持的主机数。

  15. DNS的概念,用途,DNS查询的实现算法。

  16. TCP与UDP的概念,相互的区别及优劣。

    • TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。
    • TCP面向连接,UDP面向非连接即发送数据前不需要建立链接
    • TCP提供可靠的服务(数据传输),UDP无法保证
    • TCP面向字节流,UDP面向报文
    • TCP数据传输慢,UDP数据传输快
  17. UDP报文的格式,字段的意义。

  18. TCP 报文的格式,字段的意义。

  19. TCP通过哪些措施,保证传输可靠?

  20. 三次握手,四次断开过程。

    1. 客户端向服务器发送一个SYN j
    2. 服务器向客户端响应一个SYN k,并对SYN j进行确认 ACK j+1
    3. 客户端向服务器发送一个ACK k+1
    4. 一端发送一个FIN
    5. 另一端接收到这个FIN分节后,执行被动关闭,对这个FIN进行确认,继续传输数据。
    6. 发送数据之后,发送一个FIN
    7. 接受到FIN,结束传输。
  21. TIME_WAIT状态的概念及意义。

  22. 滑动窗口协议 与 停止等待协议的区别。

  23. TCP的流量控制和拥塞控制实现原理(会画拥塞控制的典型图)。

  24. TCP的快速重传与快速恢复算法。

  25. TFTP 与 FTP的区别。

  26. 阻塞方式和非阻塞方式,阻塞connect与非阻塞connect。(比较难,有兴趣可以了解)

  27. HTTP基本格式。(java程序员必须掌握)


浙江省第十四届程序设计竞赛总结

昨天是我第三次参加浙江省赛,比赛地点依旧设置在浙大。上午和其他人一起坐车过去,然后就是都差不多的流程。

由于一些原因,这一次我的两个队友异乎寻常的厉害(高质量就业:阿里研发工程师+京东算法工程师的组合)。赛前内心毫无波澜,不过周神教导我,作为浙财的五队,我们只要保个铜就可以了。

上午9点25左右,热身赛开始。打开试题册看了一下,我们发现热身赛题目跟去年一样,快速通过A和C题。周神机智的想起去年最后一题(输入一个数对一个非常的大梅森数取模,并判断结果的奇偶性)大数据只有四组,通过一番测试之后,今年也是一样。他写了一个程序直接判小的数据,开始枚举最后四组答案的排列组合。我们大概交了10次左右,就发现枚举的地方出现错误,然后改了一下又重新交,最后枚举到13(1101)的时候过了。本着写完热身赛去吃饭的原则,God王让我们开始写B题。不过仔细想了一下发现,万一写完发现是错的,是去吃饭还是不去吃饭,这是个很大的问题。所以,我们直接前往食堂。

12点15分左右,比赛正式开始。我自告奋勇的从A题开始看,本着看样例猜题意的指导思想,我大胆猜想出写法,趁他们两个不注意直接拿起键盘开始写。由于年纪大了,速度更比不上那些年轻人,所以也写了一会儿,交完之后大概有70只队伍通过。之后God王上来平推了B和D。我看一下C题,发现这是个简单题,把题意告诉老王之后,他也很快做了出来。至此,比赛大概过去45分钟。我们写完全部的签到题,完成保的铜的目标。

三个人继续分头看题目,没过多久他们两个人又开始讨论F题的写,很快也想出一个非常巧妙的方法,不过后来发现这个是超时的,所幸God王又想出了线段树的写法。我和周神开始研究E题的写法,很快也验证了用数位DP的正确性,不过也想到这其中有很多细节要考虑。说到这里,不得不讲一下,我昨天晚上就打印了两页模版,其中一个就是数位DP的模版。God王改完F之后,勇敢提交,直接返回了WA。然后我们三个看了好久代码,都没有找出错误来。God王直接出去逛了一下,我和周神开始写E题。God王发现周神读题目没有讲要输出子树的数量,改之就过了。之后,三个人共同推了E。接下来的时间差不多就是在挣扎了,H题God王写来写去都是超时的,G题周神说要找规律,打印了14页数据开始找没多久,就告诉我想的全部是错的。17点14分59秒,God王最后交了一份H题代码,没有什么奇迹,我们结束了这一次省赛。

晚上,在小剧场举行颁奖,这一个环节最主要的就是听听队名。当本科组银奖没有报到我们的时候,我的内心十分的开心。听到第一批金牌也没有报到我们的时候,周神对我讲了一句,是不是下面没有我们,今天就是冠军。事实证明这是幻想,然后他就高高兴兴的上台领奖了,毕竟昨天晚上特意做了一个发型……

总的来说,这次省赛比浙大校赛难了很多,所以写完签到题不要错太多的都可以拿铜。中间过度居然拿了一道数位DP和一道线段树,命题人直接高估了浙江省程序设计的教育水平。最后面的几题,我们三个人共享完题意之后,完全没有思路,其他参赛选手也差不多,完全沦为观赏题。后来想一想,这一份题目只是在错误的时间出现,毕竟比赛的覆盖面是final到专科。但是,我感觉这样的比赛,一个人五小时也能做5题,生不逢时,为什么去年没有这么好的命啊。不过还是要感谢两位大佬带我体验了一下省赛获金的感觉。这一次,同场的还有学军和杭二的高中生,颁奖时,有以为领导还感叹大学生不如高中生。殊不知对于这些高中生来说考上浙江大学都是失败。

不知道明年还有没有机会参加。


C#聊天软件实现

前几天面试,被问如何实现一个类似微信的聊天软件。当时说了一个大概的想法,面试官没有怎么评价,只是最后建议我有空多做一些项目。正好最近不怎么忙,就实现一下。写了一个简易的模型,在这个过程中应用了很多原来学过的东西,当然还有很多问题没有解决。

  1. 这个软件选择C/S架构,所以写了一个服务器端程序和一个客户端程序,然后通信使用的是TCP协议。

  2. 利用socket完成通信,大致的过程如下图所示。


3. 服务器上开两个线程threadListenConnectthreadReceivePacket。服务器上的socket利用bind绑定服务器的ip和端口号。第一个线程死循环监听端口,是否有新的connect请求,并将新的连接socket保存到list中。再利用第二个线程接受客户端发来的数据包,并拆包执行进行相关功能。服务器之后,按照包中的内容判断是否需要发送到其他特定的客户端还是广播消息。

  1. 客户端中开一个线程threadReceivePacket。先和服务器连接,然后利用这个线程接受服务器发过来的数据包。这里也实现了发送给某个特定的客户端和广播。发包和拆包过程和服务器上差不多。

  2. 数据包主要包括发送方ip、端口和接收方ip、端口,以及操作代码。不同的数据段用‘|’分割,接收方也按这样拆包就可以了。

  3. TCP是面向连接的协议,拥有缓存窗口,所以可能会有粘包现象,可能将程序一次产生的命令,分成多次发送。所以数据包里面还要标记一下,我用了’\a’做新的包开始标记,用’\t’做结束标记,如果聊天内容里面有相同的标记的,可以强行转化一下。

  4. 这个程序还可以加上数据库搞出注册以及保存聊天消息,然后自己也没有去写消息的排序以及私聊功能,待做。

  5. 最后相关代码放在github上面

服务器端:

客户端1:

客户端2: