生活记录,CG,前端(2)

上一篇的标题提到了前端,但我一直没来得及写(倒不是因为忙,主要是因为没什么精神)。最近睡眠不太好,难得有个完全清醒的机会,就爬起来把blog补全吧。

到瑞士以后因为生活花费比较高,我相继找了两个兼职来贴补日常开支。第一个是15/16年的事情,当时工作还算轻松,说实话我不太记得都做了什么,因为实在是比较简单。然后就是今年了。时隔两年再加上前端界发展日新月异,现在的我说是完全新手也不为过。碰巧这次的任务也比较重,接单的时候感觉工资还凑合,现在觉得这合同签的不太划算。代码不熟悉加上任务过多,结果就是每天都累得要死。

简单说一下这个项目吧。瑞士的一个保险公司想开发一个计算机相关的新业务,主要是计算客户可能承担的IT系统风险并对此担保。一开始他们想亲自给客户计算并开出premium,但是后来又改变主意,项目变成这个公司提供平台、提供风险计算和数据分析服务,然后让其他保险公司和客户在平台上互相联系并进行交易,该保险公司从交易中抽成。我单独负责平台的开发。从这个项目本身可以看出我的主要任务有:1) 社交系统 2) 线上交易系统 3) 算法链接和基础的数据分析。起初我觉得事情就是这些,但是签完合同以后,我发现客户其实根本不知道自己想要什么(甲方改需求很常见,但这次的甲方心里完全没有头绪),因为甲方的想法是:我给了你钱,你就要做出一个可以让我赚钱的东西,虽然我不知道那个东西是什么。所以我不单单是一个全栈coder,也承担了PM的工作,帮助客户去思考自己想要的到底是怎样一个平台。前文所述的项目介绍其实是我们在讨论和磨合很久以后才确定的。

确定大方向以后,我开始做交互和功能的设计,写了一份巨长然而根本不会有人看的需求文档之类又花了将近两个月。这个过程非常考验耐心。在确定方向后、写需求之前,我感觉到项目的实际排期肯定比客户预想的要长很多,于是一开始就多次作出警告,然后客户就让我解释原因。其实一个项目赶不上工期的原因很复杂,我也只是根据个人经验做判断,说不出什么具体的理由,客户显然不太信任我给的排期,总觉得事情能很快速地解决。而且客户对计算机安全没有任何了解,常常提出一些异想天开的需求。这里就显出国情的区别了。在国内如果客户提了一个需求,技术人员综合判断以后说实现不了,客户一般提两三次以后就不再为难。但是在瑞士如果说某个需求实现不了,不论客户对问题本身的技术难度是否有了解,客户肯定会觉得你太low,然后坚持不懈地跟你撕逼到最后一刻。这种事情我在不同领域都见过多次,对这种傲慢的性格有了心理准备。所以每当客户想要争什么项目优先级或者提一些奇怪的需求,我在解释完难度以后就直接不搭理了,因为合同并没有规定我一定要完成这个项目,其实我是非常自由的。

在项目开始之前,客户不知从哪里听说了非关系数据库这个名词,也不知何故觉得非关系数据库就是比关系数据库要牛逼,于是建议我找个非关系型的数据库。正好我也对SQL感到厌倦了,既然两年没有写代码,现在最好还是尝试一些新东西。综合各种考虑,最后定下的架构是Mongodb数据库+Express后端+Vue前端,也算是给自己一个学习的机会。在此之前我没用过express和vue,只对angular还算了解一些,但Angular2.0以后我就没再关注了。Anuglar已是明日黄花,而Vue据说上手又非常快。如果不能学习新姿势,做这个兼职有什么意义呢?所以最后定下来还是用Vue。

两年没写某种语言的体验很差,尤其是js这样每天都有新花样的语言。最严重的问题之一就是很多api我都已经忘了。由于平时写c++/python比较多我还常常把api记混,简单的几行代码都跑不起来,实在让人难堪。例如array/string的一些基本操作、map-reduce/lambda func这样的基本语言元素,我用起来都感觉很艰难,必须要先翻文档。我读英文的速度没有中文那样一目十行,所以看文档也比较费神。有时脑子里稍微有一些印象,知道有个api可以完成xx功能,但就是记不得api的名字,甚至连关键字也想不起来,搜索的时候一片茫然。再就是从2015到2017这两年,ES6已经普及,ES7广为接受,ES8的推广也只是时间问题了。相比之下我的很多印象还停留在ES5和小部分ES6的阶段,对语言的很多新特性都不太了解。对我来说,最重要的两个新概念分别是async/await和promise。很多文档/教程说得头头是道,看了以后觉得自己一知半解,但实际用起来根本不是那么回事。我觉得中文教程和英文教程相比不论在易读性还是丰富程度方面都有很大差距,就算撇开语言问题也是如此。我预料到自己会有这样那样的问题,在项目一开始的大约两三周里集中看了很多文档,也先写了一些小的实验代码来确定方案,但实际开发遇到的问题肯定不是教程能告诉你的。总而言之,写代码的时候因为实在太生疏了,我常常被自己尬出尴尬癌。

(未完)

生活记录,CG,前端

又是一年没更新博客了。今年1月份起,因为我忘了给服务器续费,这个博客就停掉了…fyg还提醒了我两次,但我都没想起来。今天正好记得续费,也正好还有之前的备份,这个博客于是又开始运行了。

这次的主题当然还是零散的日记,当然也和目前正在搬的砖有点联系。自从去年的博客以来,这一年里我的精力基本投入在图形学上。本科在南大跟过一门CG,上过的人都知道这门课简直(此处自行脑补)。来了ETH以后,本科那点玩意就天天被人打脸。这里列一下我陆续上过的相关课程:

Computer Graphics 学科概述,重点讲数据结构和线下渲染理论。这门课紧跟时代潮流,课程作业都是近年siggraph论文的难度级别,上完以后实现个论文完全不虚

Physically-based Simulations 碰撞,刚/非刚/流体,粒子系统

Mathematical Foundations of CGV 其实是个主要讲凸优化和随机采样的数学课,工业界基本用不到,但三维变换肯定要懂的。也是一门紧跟时代潮流的课

Shape Modelling and Geometry Processing 建模理论,动画理论。同样紧跟时代潮流,课程作业干脆就是自选当年ToG paper实现

Visualization 科学数据可视化,主要针对大数据量的渲染

Advanced Methods in Computer Graphics 实现过N多paper以后,再给你个专门用来实现paper的课

其他虽然不直接相关,但是很有帮助的课有:

Numerical PDE 非刚体物理肯定要用到的

Design of Parallel and High-Performance Computing 其实就是CUDA

Computational Statistical Physics 首先随机采样和统计物理的数学关系很密切,其次物理模拟中的一些奇技淫巧在图形学中也可以用上,尤其是粒子系统和碰撞检测

一年多以来课程压力比较大,还好我坚持了下来,结果也还不错。上完Mathematical Foundations以后cs学生有一个去Disney Research搬砖的实习机会(因为大老板是Disney副总),DR还来学校搞了宣讲。然而DR工资不高事情贼多,简直是美国版的网易研发部,所以同学都一脸嫌弃,只有我因为贪图Disney办公室的手办而屁颠屁颠地跑过去。DR那边大约好久没见到活人了,看到我也很高兴,然而听说我不是CS的学生又把我送了回去…我打报告给系里,系里意料之中地并不同意我去实习,最后只好跟着N厂PhysX组常驻ETH的几个人搬搬砖。其实我感兴趣的主要是渲染和采样,但因为导师都在搞物理,我也只好跟着搞物理。就算是物理我和导师的兴趣也不一样,我喜欢连续介质,然而导师更喜欢流体…最后我妥协了。至于具体搬了什么砖就不说了="=导师觉得我手头这篇修整以后可以投明年siggraph,但是我觉得投不中。如果这篇没中,我大概就要跑路了。

因为现在算是入门CG了,我要吐槽一下本科没入门时的经历。首先南大那门课简直太坑爹了,希望以后不要再开这种坑本科生的课。另外我翻了一下近几年南大CS引进的人才,总体而言肯定比从前要好很多,但siggraph三作就可以当讲师,那我万一投中岂不是要爆炸——当然这只是开玩笑的说法。发paper这种事情要看缘分,也许此人成就很大只是运气不佳,毕竟写了很多paper本身就极其考验人了。

因为知道学校开的课不靠谱,本科期间我也做了一些图形学相关的尝试,在知乎大神的指导下学了OpenGL/CUDA等等等等。说实话,照书学OpenGL/CUDA/DirectX这种底层实现细节很考验人的意志力,尤其是在完全自学、没人指导的情况下,人性稍微脆弱一点就半途而废了。更可怕的是,就算学了这些玩意也达不到你想要的效果。用OpenGL写个渲染器,跑出来一看不管什么材质都长得像塑料,贴图带着像素渣,什么水流烟雾毛发之类细节都不存在,常常还连个全局光也没有。这种时候我只能不停摸着心口问:学CG就是为了渲染出这么个玩意吗?没有牛逼的游戏美术跟我合作,我就出不了好看的图了吗?为什么电影特效那么逼真酷炫而我学了好几个月却还不如《雷锋的故事》?——如今想来,知乎宣扬的这种工程化、从底向上的学习路径错得非常坑爹。也许你会反驳:工程上的东西以后应聘游戏公司肯定用得着,如果不学岂不是跟月薪5w的研发岗过不去(14年时听说天刀核心研发是这个价,现在应该水涨船高了)?对于这个问题,我是这么想的:自学图形学的人很多都有游戏理想,我也曾是其中之一。但是天刀已经扑街,那些学OpenGL/DX的人最后有多少人月薪5w了?为什么用如此苛刻的方式筛选人才之后,国产游戏的画面还是那个鸟样?难道我学CG的理想就是在一个小公司开发一款永远不可能3A的游戏然后上知乎吹逼吗?

那时起gmm开始在知乎出名,和一些据说工业经验很丰富的大神整天宣扬这种学习路径。不清楚是否还有别人像我一样吃过他们的亏,总之对知乎上那些教人入门专业领域的高票答案,我是再也不会信了。针对图形学这个领域,我认为凡是不让你一开始就接触数学理论的学习路径都在扯淡。如果对要写的东西没有清晰的数学认识、在脑子里没有数学图像,人根本就无法控制自己写出来的代码。所以第一步不用care什么管线GPU,随便找个现成框架实现一下脑子中的算法就可以。这方面我觉得CGL就是个特别适合的库,如果再加上Eigen简直就顺手到炸裂了。当然这只是我作为初学者很浅薄的看法,毕竟我的月薪目前还没有5w。

2016

这个博客已经很久没更新了,再不更新是不是就要长草了呢?但是我已经过了想写很多东西的阶段。一年一篇日志,这个频率也还凑合吧。

除了7月回国二十天,2016年都是在瑞士度过的。9月到西班牙玩了一周,10月到巴黎找同学玩了两天,11月在Les Diablerets爬了一会山,平时会到德国瞎转转,其他就没怎么旅游过了。到瑞士一年多,去的比较好玩的地方有(排名分先后):列支敦士登,Les Diablerets,巴黎。巴黎上榜是因为有不错的中餐馆。
Continue Reading...

小小的改变

苏黎世的深夜,写完实验报告还是睡不着。服务器的MySQL又挂了…总而言之我来更新博客啦。

写这篇日志,是因为生活中有了一些小改变。刚来瑞士时我遇到过一个学长。我们都是南大毕业的中国学生,在一起吃过饭,席间还有好几个妹子。学长当着一堆人的面特别郑重地劝我:“像你这样强势的女生不可能找到男朋友,我很为你担心。”饭后我帮忙洗碗,学长又说:“让xx(另一个女生)来洗吧,这是女生应该做的事情,你不适合。”

在国内常有人对我发表如此言论,我因此有过非常非常不愉快的体验。其实目前为止我依然意识不到自己哪里强势,也不懂强势和找不到男朋友之间到底有什么逻辑联系。至于洗碗,我想大部分熟人都没见过我下厨吧!被人误会我十指不沾阳春水也是可以理解的。我有很多朋友是公开的平权支持者,相较而言我几乎没有任何表示:我不会在微博上发声,不太支持很多激进的观点,没有参与过任何公众活动也不想和人争辩,但这并不代表我否定她们。我之所以不想表达,一方面因为没时间没心情,另一方面因为我始终觉得自己的存在就是支持的铁证。

至少目前为止我都很感谢在瑞士的生活。相比国内这里的饮食确实不精致,但爱吃的菜我都会做所以不存在太多隔阂。最重要的是我喜欢这里对LGBTAIQ的开放态度和对真正平权的接受。我出生于某十八线小城市,从小面对长辈严重的重男轻女,长大了还要因此在社交方面屡屡受挫——现在这一切都结束了。我有了新的朋友,有健康的感情关系。新的社交圈从不像国内某些自以为关心我的人那样劝我“适可而止”,而是不断督促我学习、工作、变得更优秀并且以此为荣。我十分感激这一切,尽管这对他们而言也许是再自然不过的事情。

这也是我为什么决定留下。尽管瑞士有严苛的移民政策和巨大的文化差异,但我来到这里以后很难产生回去的打算。在国内,社交是掩饰、迎合、付出努力却依然换来失败,在这里只要不是华人圈子,我就可以摒弃很多自我怀疑。当中国男生用同情的语气问我是否“高处不胜寒”,我终于可以回答“不是我强势,而是觉得我强势的人太low”。

我不知道以后会怎样,但我希望此刻的感觉不要结束。至于标题中“小小的改变”——因为我感到自信、安定、井然有序,所以我开始规划一个含有别人的未来。这就是我的改变。

到瑞士的生活

RDdncVJoL01nYlYwRXhNWHBtMytrSE12ZHg0VU9ESHo3YUtQNUs3eGxTcEk3WHhKL2RWMGd3PT0

前段时间很忙,一直没有机会出门游览。今天面试过了以后激动之下翘了课一个人去找猫湖。兴奋了一下午,特意买了饭和酒准备野餐,结果即将出门时突然下大雨…犹豫了一会还是痛下决心冒雨出门,下车又发现去湖边的路被封…在围栏边转了一会儿只好回去,带的饭菜尽管放在保温盒里也凉了。本来对这场说走就走的旅行很失望,但就当我转身回去时雨突然停了,晚霞很漂亮,最后还是很开心。

不知算不算矫情,但…人生大抵如此吧!

来瑞士即将满一个月,节奏很快、发生的事很多,让人目不暇接。初来时忙着办手续,陆续跑了两周还有一些没办完。同时ETH的课程非常生猛。虽然我从不会侥幸地认为自己编程基本功扎实,但课程实验的强度还是让我…怎么说呢,每周的两天周末都被我花在图形学实验上了,这还仅是一门课而已。来ETH之前我本以为很多课在本科都上过(ML/CG/QM/统计物理…都是本科学过的)所以学业压力不会太大,开学后才发现本硕阶段的同名课程真的…只有名字相同。各种事加起来,真是忙得连轴转。
Continue Reading...

五年,毕业了

本科五年结束了。从前曾无数次幻想毕业时该做些什么——如果真把这些想法说出来,某些领导老师肯定现在就辞职回家做好安保工作——当然,落实到行动上时我就显得很懦弱了。
想起来还是有挺多事的,选几个重要的写一下吧。

大一(地球科学与工程学院)

被录取到地科纯属偶然。高考失利被调剂过去,从前我甚至没听说过这个专业。我一心想报的是物理学院,所以上大学之前百般不情愿,想着转专业。不过地科的转专业制度是:成绩在前10%可以转,前5%不可以转,于是如何把成绩控制在5%~10%区间成了我大一的主要课题。

除了从地科转出以外,如何转入物院也是个难题。按照南大的三三制课改,只要我选了物理学院的课、拿了足够学分就可以顺利转入,但物院和地科的主课排在同一时段,课程互相冲突,根本无法选到。这个制度现在已经改掉了,现在的学生有缓考、二专,容许在课程冲突的情况下选择其他院系的课。当时还没有这些,只有另一种办法:参加转入院系的转系考试。

物理学院比较傲娇,对参加转系考试的资格做了限定:学生必须在高中时拿过省二以上的物理竞赛奖项、大一时数学物理课程成绩达到XX分。大一的成绩比较好拿,但“有物理竞赛奖项”这一条真的很为难人,因为我恰好是个高中时坚决不参加竞赛的奇葩。我解释说:过去的事情无法改变,虽然不能穿越回高中去拿奖,但我的大学成绩很优秀,你可以让我考试呀~这样的理由根本不会有人理你啦,于是只好开始漫长的跑腿工作。

将近一年里,求了很多人,写了很多信,低声下气地上门求情然而并没有什么卵用。也遇到了很多心理扭曲的人,因为自己无能混不出名堂,只好抓住一切机会以让求ta办事的人跪舔为乐(虽然“舔”我没有见过,但“跪”是见过了)。这些人平日找不到乐子,偶尔逮着一个能折腾的学生——比如我——立刻就high得不能自已。我一直想不通,大家都是读书人,何苦要互相为难?我从小过得还比较顺,没怎么求过人,总之世界观立刻就碎了。

这样努力了很久,终于在考试的两天之前争取到了参加考试的机会。在此要感谢最后也是唯一一个帮忙的老师:)然后就是通过考试、转系成功、因为缺少学分被降了一级,不过那个时候已经不在意了。降级就是从头再念起,在地科的大一真的很压抑,我希望转系以后能有新的开始。

其实现在我还是会想,不过是高考差了两三分而已,为什么就要闹到给人下跪的地步呢?来到物理学院以后,我发现大多数同学对物理并没有那么执着,而我努力去争取、为此受到那么多心理损伤的入学资格也仅仅对我自己有意义。人和人真的不一样,经过地科的一年,我觉得和新同学在一起很难互相理解,所以在地科的朋友一直陪伴我到毕业。

大一时我拥抱社会,做了第一份设计类兼职。甲方人很好,可能因为觉得我是个小孩子所以很照顾(以后就很少见到这么温柔的甲方了)。此外还有:加入小百合工作室,发现完全听不懂大家在聊什么,哈哈。

大一(物理学院)

降级以后只有很少的课要上。在新生军训的时候我无所事事,巧合地被室友介绍认识了计科的学生团队LocalsNake,他们做项目想找个UI,我去打酱油画画图,慢慢就被大家的代码吸引了注意力。由此产生了一个想法:要不要去计科听听课?

我高中里算是写过一点代码,对css和很简单的js DOM操作勉强可以看得懂。那时“前端”的概念刚刚传播到校园,我刚接任工作室的美工组组长,感觉自己有改变美工组“不停做海报”分工的责任,所以开始认真去学前端。只知道前端相关的东西是不够的,虽然还没有具体经历可证实,但基础不达标的话发展会遇到瓶颈,所以问题又回到要不要去计科听课……

结合一直以来的编程兴趣以及对互联网浪潮的好奇、对个人发展的考虑,我反复自问了好几个月:物理的课程量不轻,CS的课程量也不轻,两个放在一起很难再保持GPA排名了。成绩对申请的重要性经历过的人都懂,所以读不读二专的背后其实是是否继续走传统物理学术路线的问题。我问了很多人、每天在路灯下思索,考虑再三决定还是读二专,因此告别了“当个学霸、申到名校PhD”这种朴素的物院式梦想。

大部分情况下我的意志力都不是很坚强,在做决定以后立刻感觉自己不会坚持这么久。不过也许因为这个决定太重要了以至于潜意识里不敢半途而废,当我在课程和大作业里忙得快跪的时候,竟然一次都没想过放弃…坚持二专以及改变工作室团队分工算是我大学里最骄傲的两件事吧。

但这个选择也带来了很深的迷茫。我不属于物理学院,当然也不属于CS,而是一个夹在中间地带的很模糊的形象,没有任何归属感。我是第一个这么选择的学生,没有老师能给指导,而因为课程量大且懒得起床,我的学习进度和个人作息非常self-pace,根本没有和同学交流的机会和欲望。我每天都在想:这真的是想要的吗?我到底想要什么呢?

其实这个问题我到现在也不清楚,只能说:可以100%确定自己的兴趣在cs和phy之间,而非其中任何一个。每到迷茫的时候我就自我安慰:也许我会成为一个懂物理的人里代码写得最好、会写代码的人里最懂物理的四不像吧!可现实是我不仅不太懂物理,代码也写得不咋样…咳=.=

大二(物理学院)

这段之前写过。
完整版:这里
脱水版:我的性格原本就不是很稳定,转系又留下了很多创伤。大二时遇到了一些事情,真的无法承受,心理上崩溃了。

其他的事情有:
陆琪(不)教育我们:太喜欢一个人是不好的,我亲身体会到了这一点。但体会归体会,谈恋爱还是要全身心投入。喜欢一个人多么不容易,不能浪费这种体验生活的机会。
还有为什么我总是被妹子告白,这个世界到底哪里出了问题…

大三(物理学院)

总体而言这一年比较平稳,以至于我几乎想不起来发生了什么。不过根据我对大学生活的认识,什么都没发生就是最好的。在上一学年之后,这一年算是恢复期。

院里一如既往地折腾,换一个同学遇到这些事情大概会觉得生活真tm充满艰险,然而我已经习以为常了。我挂了两门核心课,严重影响到毕业,而这两门课的挂科完全不是因为我的过错(一个是卷子改错,一个是忘了登分)教师和教务处互相推诿责任,加上很多和大二时类似的事情,我对物理学院恨之入骨,认真地考虑:放弃这个学位好了,从CS毕业也可以。

打定主意以后,我遇到了Edna…然后就破功了。

Edna是个很好的老师,她虽然不擅教学,但在科研指导和以身作则方面真的没的说。被她激励以后我不争气地想:要么还是撑到毕业吧…但我并不知道毕业以后该怎样,正如前文所说,其实我已经放弃“当个学霸、申到名校PhD”这种路线了。如果从CS毕业,我可能会直接入职A厂,走上相对安稳的技术发展路线,不论从经济、能力还是家庭而言这都是比较好的选择。可在Edna触动之下,我还是认真地去想:真的愿意当个程序员吗?

平心而论,虽然我喜欢coding,但这不是我最想要的道路。想了很久、难受了很久,虽然心里对学术很向往,可对我来说继续读书意味着很多很多的努力和运气。而且转系之后一片黯然的学习生活告诉我:就算付出再多去争取,最后得到的东西也不一定是你想要的(放在我身上,绝大部分时候它们都不是我想要的)。我当时对物理学院、对南大都已经很失望了,无法看到继续学术能有什么未来。

最主要的是,当一直对一件事付出却得不到回报、而另一件事不太付出就给了很丰厚的回报的时候,选择前者真的很难。那时同学们都已经基本确定了去向,我甚至已经签好A厂,但心里总归放不下。后来实在受不了这种不安,强迫自己好好思考再做决定,于是又像当初决定念二专那样想了很久…

最终觉得:不甘心,说好要当科学家的呢!在这种无法理性的时刻,什么成绩啊钱啊未来啊,统统的care不起来啊!(此处应有BGM)

好吧,其实我有认真考虑过未来,但人生变数太多非人力所能及,我已经强烈感觉到个人的渺小。大学以前我的目标就是好好学习、出国科研、当个伟大的科学家,然后高考和大学立刻迎头痛击…我很高兴自己能在种种外部环境的限制下基本把生活控制在预期内,可每一天都不知道是否还能坚持到第二天。转系是我大学里挥之不去的阴影,它让我的想法产生了很多转变:从前学习只是为了兴趣、追求梦想,现在的努力更多了一层含义:为了保护尊严、控制自己的命运——南京大学有多冷漠,其他学校也许同样如此。因此我想要离开南京、走出这个国家,到一个相对温和的学术环境里面。从这个意义上说,出国是更好的选择。

想好之后,顿时觉得很舒坦…然而正如前文所述,出国这件事不论从哪个角度讲对我而言都真tmd很难。多亏有地科的朋友一直支持、时不时拉我出门晒个太阳,我才没有像从前那样揣着负能量发霉。虽然做事时都抱着根本不可能有结果的心态,但搬砖和攒钱之余偶尔也yy一下:万一哪个学校不长眼录了我呢?

然后我就天天祈祷有学校在录取时突然瞎了…如果上天给我这个机会,我肯定不会辜负的。

大四(物理学院)

毁约,科研,申请,拿offer,和教务处掐架,毕业。

还发生了很多小事,比如从仙林搬到鼓楼啦~鼓楼很喧嚣,人心很浮躁,第一次见到那么多同学,也见识到了一个人很多的环境的人际关系。大家high的时候,我一个人在宿舍看书写代码也很自得其乐。虽然曾经付出很多以求得物院学生的身份,但我真的自始至终都只是物理学院的围观群众。戏里热闹了,反而衬得戏外很平静。

最后也就是现在,我在离开南京的车上。大概许多人眼中的大学生活都如白驹过隙,但我只能感觉到它的漫长。过去的五年教会了我很多,也许真的因为我从前太甜了,南大觉得有责任对我进行三观重塑。这种改造里有一部分成功了,另一部分失败了,但无论成功还是失败的部分都让我更善于面对今后可能遇到的困难,所以最后还是要对这所学校说句谢谢。

终于,终于,我抱着对未来的期望离开了这里。

感谢我的导师Edna和王教授,感谢在转系时给过我帮助的陈教授。感谢我的基友们。
感谢给了我offer的学校们,你们没有那么瞎,我知道:-p
相信关心我的人一定会为我的毕业而高兴。我对这所学校本身没有任何留恋,至于那些让我不舍的朋友和师长,我们总有一天会再见面,我也无比期待那一天的到来。

Appcell
07/02/2015

有了Webpack,你也可以让Rails的前端变得很潮

虽然这个博客原本就不是为了写技术而开,但一直灌水也让我良心不安。正好最近遇到了一个坑,现在来写一下填坑心得。

故事的由来

故事的由来是这样的:

在一个基于Rails的项目里后端已经写了一部分,然后找了两个前端来做开发。其中一个大概出于对近几年前端工作流发展的热情,往项目里引入了npm、bower、grunt、gulp、ES6…总之开发环境下怎么天马行空都成。前端写完之后这个少年离职了,留下另一个忙着赶毕业论文而没太参与JS编写的前端(就是我)进行部署,而我看到这个架构时内心几乎是崩溃的…

有过Rails开发经验的同学一定对 Asset Pipeline机制 不陌生。Asset Pipeline是Rails引以为豪的前端工作流,具体到实践过程中,就是开发时把静态资源集中起来写进一个manufacture索引,部署时通过索引把所有静态资源打包并进行后处理。Asset Pipeline刚出现时固然是种先进的前端处理方式,然而随着前端工作流日新月异的发展和Rails社区的严重封闭性,这里出现了一个大问题:Asset Pipeline与当今流行的所有前端包管理机制都不兼容。Rails有自己的包管理器,引入非gem标准的包几乎是件不可能的事;而随着Rails和目前Javascript发展的脱节,愿意为Rails写插件的前端开发者越来越少。如果只依赖Rails的模块,前端开发可不仅仅是徒手造轮子的难度了。

这种情况下,我向后端恳求:咱们还是关掉Asset Pipeline吧!然而后端痛苦地拒绝了我。当看到五十多个分布在项目各处的npm和bower包、混杂着CommonJS、AMD以及整体用ES6语法完成、依赖grunt/gulp编译的JS架构时,可想而知我的心情是多么复杂…

但是!在苦思冥想挠破头皮的三天以后,神器 Webpack 犹如天使拯救了我!利用Webpack的打包机制,我们可以绕过Asset Pipeline。
Continue Reading...

[搬运]我在小百合工作室的三年半

看到jzf的日志,突然想起来我也在wiki里写过一篇,又突然想起来wiki好像是放在内网里的…于是就搬运过来顺便骗点赞了。工作室的小伙伴应该也许大概都有看过的。
在结尾稍微有一点更新吧,之后应该就不会再有更新了。

(一)
我对小百合工作室的最初印象来自于刘浩华学姐制作的10级招新海报。南京大学认真做海报的风气是后来才养成的,那时的海报基本用word制作,掺杂各种匪夷所思的PS特效。在一片word彩虹艺术字的海洋里,小百合工作室的海报图片美观、排版错落有致,让人耳目一新。对海报内容的印象并不深,但海报确实让我记住了这个团体:小百合工作室比别的社团更牛逼烘烘,颇有种高处不胜寒之感。

第二次听说小百合工作室是在一个很有趣的场合:地科新生年级大会。那次大会也让我听说了工作室的传奇刘白光学长。刘白光是地科的励志人物,热爱计算机的他高考失利被地科录取,他转系失败但没有就此放弃,反而在小百合工作室追求技术理想并取得成功。地科有很多高考失利被调剂过去的学生,将刘白光作为榜样来宣传显然也是无奈之举。但这样的宣传无意中增加了小百合工作室的知名度,让很多地科学生开始好奇:小百合工作室是个什么社团,它为什么能让刘白光这种成绩单上的loser实现理想?对地科这样一个充满调剂生的基础理科而言,刘白光和小百合工作室的存在代表了屈服于高考安排、闷头学术之外的崭新可能性。出于对海报的良好印象、对技术的好奇与对这种全新经历的向往,再次看到食堂前小百合工作室的招贴时,我鼓起勇气报了名。
Continue Reading...

申请总结

拿到AD了。Computational Science & Physics @ ETH Zurich,硕士阶段继续双学位。这是我的第一个AD,也是最想要的。也许它没有那么牛B,但有了它我的申请季就已经结束了。这篇文章算是对申请过程做个回顾吧。
Continue Reading...