技术资源整合

整个11月都在忙申请的事情,一堆文书写作修改,和老师沟通推荐信提交的事宜,填各种网申的资料(看网申费从信用卡里哗哗地流走(/Д`)),感觉整个人都快成为文科生了,很久很久没有从事技术性的工作,脑袋已经生锈。

好在是网申终于快基本结束了,还剩些扫尾工作,12月可以安心投入CBP了(这是我今年6月成立的一个长期计划,全称是Code Burgeoning Project,规划了大四和两年读研需要学习的技术知识,需要日积月累的一个计划。不要喷我很中二。)为了表示现在更新文章的龟速,我决定拿出些压箱底的技术资源收藏弥补下还在赏脸关注这个平台的大家,不过当然只是局限于计算机方面的。算是些干货分享,希望可以大家带来收获。

PiedPiper

  • 网站收藏:

工业界:

菜鸟网   http://www.runoob.com/             适合新手入门的计算机基础知识整合网站

Bootstrap   http://www.bootcss.com/       前端开发资源学习网站

AWVS   http://www.acunetix.com/vulnerability-scanner/    著名的网络安全扫描软件

Hadoop   http://hadoop.apache.org/       分布式框架Hadoop官网

Redis   https://redis.io/       著名键值对存储数据库官网

拨云剑   http://www.boyunjian.com/      软件下载资源合集网站

MSDN   http://msdn.itellyou.cn/          微软软件下载资源网站

CSDN   http://www.csdn.net/               国内还行的计算机技术网站

lanyus   http://idea.lanyus.com/          相当良心的JetBrains IDE注册码生成网站

NOTEBOOKCHECK   http://www.notebookcheck.net/     笔记本性能对比网站

CPUbenchmark   https://www.cpubenchmark.net/      硬件芯片性能对比网站

 

学术界:

Coursera   https://www.coursera.org/     大名鼎鼎的C站,世界上最好的MOOC平台

ResearchGate   https://www.researchgate.net/     论文索引网站,比知网好用多了

TensorFlow   https://www.tensorflow.org/      著名深度学习的开源框架

SDNLAB   http://www.sdnlab.com/                 国内SDN平台核心资源站

ConwayLife   http://conwaylife.com/             康威的生命游戏官网

Quora   https://www.quora.com/                   国外版的知乎

 

编程:

GitHub   https://github.com/      这么大名鼎鼎的网站就不用解释了

Stackoverflow   http://stackoverflow.com/     编程时遇到的疑难杂症都可以在这解决

LeetCode   https://leetcode.com/problemset/algorithms/    著名的招聘刷题网站

牛客网   https://www.nowcoder.com/         国内著名的招聘刷题网站

Codefighters   https://codefights.com/    十分有意识的一个编程网站,在对抗中编程

cplusplus   http://www.cplusplus.com/reference/       C++标准库的参考索引网站

tutorialspoint   http://www.tutorialspoint.com/        编程语言基本教程

Stanford courses   http://web.stanford.edu/class/cs97si/    斯坦福大学计算机公开课

hihoCoder   http://hihocoder.com/hiho          国内一编程训练及参赛网站(题库)

codeforces   http://codeforces.com/        国外编程训练网站(题库)

bestcoder   http://bestcoder.hdu.edu.cn/     国外编程训练及参赛网站(题库)

ACM评测   http://acm.nyist.net/JudgeOnline/problemset.php   南洋理工ACM题库

码市   https://mart.coding.net/      项目外包网站

CodePen   http://codepen.io/        前端编程学习网站

 

微信公众号:

程序猿  (吐槽程序员的公众号,也会带些技术干货)

程序员大咖   (同上)

架构文摘   (经常分享些不错的框架)

逆行计划   (IT界求职公众号)

神秘的程序员们  (以漫画的形式趣说技术)

日天的炉边谈话  (最好的公众号~~~)

 

以上大概就是些我个人常用的技术平台,希望能给大家带来点帮助,也欢迎大家来一起分享和交流。

Edward Xu

 

English学习经验

无耻地介绍下自己学习英语的经验和方法,相关问题我在知乎中回答过一次,现在有了自己的平台,所以再条理清楚地重新分享一次。

相比于专业技术,学习英语简直轻松太多太多,是很好的调剂品,千万不要惧怕英语,它归根到底也只是一门语言,而且只是世界上千千万万字母语言里很普通的一种,和独特的汉语比起来,它真的不算难。

其实我的英语基础不算好,大学之前就不说了,英语肯定不是我最拿手的科目之一。到了大一,那时的英语课的确是水(也有我自己心态没摆正的原因),完全不能延缓英语下滑的速度更别说提高了。所以,大一下四级的480+和大二上六级的450+就是我当时最真实的英语水平,简直是丢人。这样浑浑噩噩的到了大二下,才猛然发现当时的英语水平和自己想出国留学的未来规划差了何止十万八千里。于是,从大二下学期开始,对英语的强力提高成了最重要的主题。现在能顺利通过GT这样的留学考试,真的要感谢大二下的自己。

我学习英语的核心观念就是:immersed in,沉浸式地学习英语。这个计划对我的影响极其深远。有人说过一门语言学到极致不在于你能多么灵活运用它,而在于你产生了一个只属于该语言的人格。我绝不敢保证我的英语水平已经到了极致这种地步,还差得远,但通过沉浸式的英语提高,我的确更自信和更multicultural了。接下来就几个最基础的方面介绍下我的经验:

单词:无论哪种学英语的方法,背单词都是必不可少的。别说有的方法不需要背单词,背单词没用之类的话。有些单词是你在日常生活中极少碰到的,但能在正确的场合使用出来,绝对技惊四座。没错,我说的就是GRE单词。大二寒假刚刚得知六级成绩的我猛然惊醒,然后就开始动用自己全部的能量被GRE单词,那些晦涩的词汇在我当时看来可能考完试这一辈子不会再用了,但现在,无论是申请文书,还是高层次的演讲,甚至日常对话中,一个使用恰到好处的GRE词汇出现绝对让native speaker都对你刮目相看。背单词的过程很枯燥,开始阶段经常背了就忘,很伤士气。我的方法是最简单粗暴的重复,不停地重复,到二战GRE之前,15个月的时间,我背了15遍了《再要你命三千》。前两遍必然是艰难的,但是只能熬过去。到了第三遍的时候(大概是开始背的第6个月),会欣喜的发现好像开始有点掌握了这些晦涩的词汇,并且极度渴望想用它们造句(那阶段我每次洗澡的时候或是独处的时候总喜欢用新学到的词汇造句,整天用英语自言自语。。。),我称这个阶段为Vocabulary Explosion. 到了这个阶段,那么祝贺你,已经熬过了关于词汇最艰难的阶段,后面的重复背诵重点在于同义反义词和巩固记忆。此外,建议大家准备一个专门记单词的小本子,不一定要记生词,可以记下一些很赞的词汇,以备将来写作只需,我个人就很喜欢一些词,例如:scintillating, iridescent, spectacular, paradoxical, remarkable……总之,单词的积累没有捷径,只有不停地记忆和重复,当然等到了词汇量到了一定阶段,就可以不再使用这样原始的背单词方法。有研究表明:词汇量超过8k的时候,可以体会到词根的作用,超过15k的时候就可以大概分出它的词源,到20k就已经可以较流畅的阅读小说,并通过阅读增加词汇。这样才是关于单词学习的永动方法。

阅读:immersed in的核心观念就是沉浸到英语环境中去,这一点对于阅读和听力至关重要。提高英语阅读不在于刻意寻找阅读材料专门花时间去攻克,至少我个人不太赞同这样的做法,会使得自己很累并且效率不高。我所认为的阅读积累应该体现在生活的点滴之中,尝试着把自己周围的环境换成英语的吧:把手机默认语言改成英语,把刷微博改成刷Twitter,刷知乎改成刷Quora,看杂志换成看Economist, Flipboard, 甚至把炉石传说改成英文版,这样让自己尽量多地待在English circumstances中。等对自己的词汇量有信心时,再去看看感兴趣的原著,比如A Song of Ice and Fire和The Wheel of Time,通过周围的环境和阅读原著本身提高自己的词汇量和快速阅读能力。

听力:听力的训练方法和阅读类似,多接触多沉浸,总会有一定的提升。我介绍几个我个人常用的平台和工具。首先是美剧,关于通过美剧学英语,有人说有用有人说没用。但我个人感觉帮助还是很大的,提升兴趣是小事,对听力和口语的帮助相当明显。看美剧时要有意识的回避字幕,不要盯着字幕看,以听和看画面为主,这样才是锻炼听力的有效方法。除此之外,一些听力材料也很值得推荐,例如Scientific American 60s, TED speech, IOS自带的podcasts里也有很多很赞的材料。而且听这些材料也不用专门抽出时间认真听(除非有托福考试迫在眉睫),每天睡觉前走路时听一小会,时间不用太长但贵在每天坚持雷打不动,自己的听力感觉自然就会提升。

口语:口语对于绝大多数人来说是短板,原因很简单,练习机会太少导致口语很生疏,发音变形。其实我个人还是十分喜欢英语口语的,有时候英语演说的煽动性远比中文演讲强得多,这是由语言的发声频率和语调本身决定的。而且,出门在外能说一口流利的口语远比认识些高深的GRE单词更重要。我练习口语的方法首先在于模仿,模仿美剧里的发声和日常用法(导致现在会了一大串喷人的美式俚语),没事时用英语自言自语。推荐一个很好用的app叫:英语流利说,它给了你一个正当的理由大声读出英语,记住练习口语最忌讳觉得自己很embarrassed。经过了一段时间积累,你其实很渴望用英语和别人交流,那么进入下一个阶段,用一个犀利的app叫Tandem(没有被墙)。在Tandem里你可以和世界各地的语言爱好者进行网络电话,首先设置好你的母语是中文并且渴望学习英语,系统会匹配好母语是英语并且想学中文的人和你进行聊天,聊得来的话就可以进行网络电话了。我曾经成功地和巴西以及美帝girl通话一小时以上,很不错的体验,推荐给大家。总而言之,口语就在于多说,不要怕犯错,obsessed in speaking English then you’ll see an iridescent world.

写作:写作其实是阅读的延伸。作为母语非英语的我们,不要追求语法多么复杂的长句,连GRE作文都不要求这个。要写出震撼人心的文章,除了词汇使用得当,更重要的是逻辑有力,reasonable and compelling,这就不是对语言的要求了,更是对思想的要求。关于写作语言的熟练度,大家没事的时候可以去Quora上随便答答题,多写英文邮件,如果要准备GT考试的话就多写作文多积累自己的惯用素材。所以,我个人认为的写作就是以阅读为基础的创造性延伸,如果有不错的思想深度再加上一些语言熟练度就肯定能写出很好的英语文章。

这大概就是我学习英语Immersed in方法的具体细节。学习英语不要追求心血来潮的疯狂投入,更在于每天雷打不动的坚持,这需要一定的自律和执行力作为支撑。每一天都接触沉浸在英语环境里一小会,日积月累,1年的时间,Immersed in计划已经给我的英语水平带来了质的飞跃。在这期间,我从来没有觉得英语让我无聊,相反,听英语歌曲看美剧刷英语社交app反而让我更愿意进行这个Immersed in计划。一旦对某件事物从内心上不开始排斥甚至是开始依赖的时候,它就会成为你生活的一部分,Immersed in project已经让英语成为one necessary part of my life.

腆着脸向大家分享完了我对于英语学习一点微不足道的经验,如果这个Immersed in方法能给一同前进的大家带来一丝光芒,深感欣慰。

Edward Xu

公众号+建站过程简述

最近实验室基本没工作,申请材料也准备的差不太多了,闲来无事就想开发个微信公众号玩玩,但只用公众号助手提供的那些基本功能太不过瘾,学CS的当然要进入开发模式了。

于是,怀着实习后对腾讯爆炸般的好感,我自然选择了腾讯云作为整个的平台支持。在腾讯云认证学生身份后,服务器加cn域名简直是白菜价,一个月1RMB。连着抢了2天优惠名额后,终于顺利斩获属于自己的服务器和域名,就这样,时隔1个多月,我再次用secureCRT登上了属于自己的服务器。

最早也没有做网站的打算,只想用这个服务器作为公众号的后台,实现些公众号自动回复的机器人功能。后来一想既然有了服务器和域名,为什么不在做公众号的同时自己也开发一个网站。其实申请到www.edwardxu.cn这个域名很方便,但域名备案的过程真的特别繁琐(各种材料拍照上传,腾讯还要特意寄个幕布过来让网站负责人在幕布前照相才能在工信部备案)。这里有个小插曲,最早其实我是想申请com域名的,但发现www.edwardxu.com这个域名已经被注册了,然后我到这个网站里去看了看,发现他用的cms系统和我这个网站是同一个,这倒不算什么,但我点进这个同叫Edward Xu的网站站主留下的领英时,简直惊呆了!他居然也是西安交通大学毕业的!比我大10届,简直太有缘分了0.0,果断加了领英联系人。

有点扯远了,继续回到建站的流程,我服务器装的是CentOS系统,考虑了半天是用Apache还是Nginx作为服务器,最后还是用了lamp(Linux+Apache+Mysql+php)这一套(别问我为什么)。最早是用yum分别装Apache, Mysql和php的,但折腾一天碰到各种版本配置问题的我还是妥协了,用了别人集成好的lamp安装脚本进行安装(技不如人甘拜下风)。但这期间也遇到了些问题,比如服务器上有2个版本的Mysql(开始独立包安装的和后来集成的)半天登不进数据库的问题,比如Apache默认Document Root错误问题,还有后来的php权限问题等等。好不容易把这个折腾过了,终于可以开始选择cms用哪一套了,考虑过几个:国内做的比较好的phpcms和禅知系统,但最后还是选了比较小清新的wordpress。

当然整个Apache不会只留给wordpress,主页我还是打算自己写的,虽然现在的主页还丑陋无比。就这样,整个网站的大体框架就搭建起来了,首先是自己写的主页edwardxu.cn,然后大家可以跳转到由wordpress搭建的博客或者我的知乎或者以后添加的各个模块之类的。再然后回到公众号上面来,wordpress作为一个cms已经提供了很好的插件,其中有一个叫Wechat-Manager的插件可以用来开发公众号(还有一个很赞的插件Add-From-Server完美地解决了我不能从本地上传文件到wordpress的问题)。但这样以网站服务器作为公众号的后台,把博客的文章转入公众号里,这点功能不足以拿出手,于是我又再此基础上增加了一个强大的功能:微信机器人。只采用wordpress作为后台的话公众号就相当于是个博客的外延,单后台的架构也很无聊。于是我想到了再增加一个图灵机器人的后台,这样可以实现公众号有意思的自动回复。然而双后台肯定会遇到问题,当用户发送消息到公众号里,该消息会同时给wordpress和图灵机器人,它们都返回会使得用户收到两条反馈,极大地影响用户体验。查阅资料后发现不能对图灵机器人进行关键字屏蔽,只有一个总开关获取所有的公众号消息,这样肯定不符合要求。于是,还是得以网站服务器为主导地位,修改Wechat-Manager的php源码,使得没有匹配到文章的用户输入值转入一个新的逻辑(旧逻辑是直接输出:暂无相关文章。这样很无聊)。新的逻辑是把这个值导入图灵机器人提供的web API中,通过JSON post到其相应后端,后台经过处理再返回到wordpress的Wechat-Manager,再又Wechat-Manager返回公众号,实现了一个嵌套后台的逻辑解决了双后台的问题。这样,公众号的功能就相当强大了,用户输入预留关键字获得相应信息,输入文章关键字返回博客文章列表,无匹配时,会有机器人洛丽塔陪用户聊天,进入图灵机器人的后台。嵌套后台的架构使得这个公众号活力无穷,也能带给用户很好的体验。

就这样,一整个大系统就这样建立起来了(服务器+微信公众号+网站),扯了半天,稍微总结下整个流程:申请微信公众号+腾讯云学生套餐(服务器+域名),把域名绑定到服务器上,公众号定义菜单写文章+搭建服务器基本环境(lamp)+域名备案(不必须),建立建站工具(当然也可以纯手写),把公众号绑定到网站后台使得公众号收到的消息进入服务器进行解析并根据相应代码处理并返回,加入微信机器人功能(洛丽塔),继续完善网站和公众号。整个流程不算复杂,但也会或多或少碰到各种各样奇葩的问题,攻克它们之后就可以尽情地发挥创造力随便折腾自己的网站和公众号了,大家也可以尝试尝试,其实很有意思!

Edward Xu