开源之我见

2016年冬,我决定挣脱束缚的枷锁,不再作为他人的“试验品”,毅然走上那条路。

在迷茫无助之际,感谢我的精神导师——《极客与团队》的作者——引导我走向组建学习型分享型组织与开源运动的道路。

近些年,国内开源运动风生水起。开源项目如雨后春笋般地增长,其中不乏知名互联网企业的贡献,同时也可以看到新兴互联网企业的身影。

说到开源,一般的企业是不赞同,甚至坚决反对的。但这里不谈商业,只谈行业!

程序猿、攻城狮、产品狗等IT从业人员。应该清楚地看到,你们的舞台(亦或是战场)不仅仅是在你所效力的平台,是时候睁开眼去看看分布在全球各地的兄弟姐妹们了。

一、我们是对手,更是朋友

“如果你成功了,要感谢你的家人与朋友;如果你想持续成功,那请向你的对手致敬!”——我说的。同行,是个很微妙的关系。——即存在着竞争关系又存在着合作关系。——无法同时处理好这两种关系,可能会难以理解一些工作(甚至事业)上的“不可思议的游戏规则”。

兴许很多人已经看透了平台里这些潜规则,并能娴熟的做出对自己最有利的决定。但这里,我想说的是,“去与平行世界里的自己做游戏”。——这个“平行世界里的自己”不是“多重宇宙的自己”,而是分布在世界各地的,忙碌在所效力平台的自己(因为我们是一体的)。

感谢互联网,连接了你我的心;感谢开源运动,连接了你我的大脑。

“如果你自满了,那就出去看看外面的世界;如果你孤单了,那就去看看外面的世界。”开源运动,为全球的从业者搭建了一个开放、平等、自由的交流平台。在这里,你可以看到行业前沿,为自己的事业发展指明道路;在这里,你可以进行思想与思想的碰撞,激起创新的火花;在这里,你可以与全球最优秀的同行同台竞技,保持自己的最佳状态。

这是你的归宿——在这里你可以遇到志同道合的朋友,甚至人生的贵人。这是你的起点——积蓄好力量,望着远方,继续出发。 继续阅读开源之我见

阅读与分享之《数学之美》-导读与建议

不久前拜读了吴军博士的《数学之美》,感慨颇多!有种相见恨晚的感觉。

很坦诚地说,书中提到的内容我并不能全部看懂(特别是数学公式的推演),不过这本书用简单易懂的语言,描述了看似没什么现实意义的数学原理之于计算机,之于科学界的重大意义。

之前我曾发感慨说,《数学之美》能让数学专业的学生多一份自信,让计算机专业的学生少一分自负。尤其是,许多从业人员,工作了一段时间,曾因为多掌握了一点皮毛技术而沾沾自喜,却未曾看得更远些,思考得更深入些。

导读

《数学之美》一书以自然语言的处理为案例,深入浅出的描述了自然语言处理涉及的几大问题、算法原理与数学支撑。每章节都可以认为是独立的(当然就深入程度与文章内容来看,还是略有关联的),可以在比较零散的时间找一篇最感兴趣的章节进行阅读。之所以说“深入浅出”,是因为每个章节都分为基础部分与数学原理的进一步解析。不仅适合小白阅读(甚至可以作为科普读物),也可以给专业人士一些灵感。

建议

继续阅读阅读与分享之《数学之美》-导读与建议

第一个五年计划(2014-2019)——2017年计划一览表

事业

  1. 规范化、工具化、专业化
  2. 打造学习型、知识分享型团队
  3. 积极参加沙龙会议
  4. 积累人脉
  5. 参与开源项目

学习

  1. 学车
  2. 项目管理
  3. 每月读两本书:一本有声读物,一本纸质书
  4. 每周一篇博客

生活

  1. 理财
  2. 买房?
  3. 带父母体检或者在济南游玩
  4. 交友
  5. 旅游

Hello 2017,Saybye 2016(一)平凡而不平淡的2016

公元20161231日 济南 霾

已是公元2016年最后一天,掐指算来离开母校也有两个半年头了,距离28周岁也仅有两年的时间了。在这个青黄不接的尴尬季节,也在这青黄不接的尴尬的年龄,好好反思下自己,总结下过往,计划下未来,看来是有必要的了。

一、平凡而不平淡的2016

春去冬来又一年,2016已是最后一天。借假期休息之日做个年终总结也是不错的。与往年一样,没有太大的变故也没有太多的惊喜,三百六十天无非舍与得、恩与怨。

虽说如此,还是有三件事值得回味的:休养生息、爱情遭遇战与事业心觉醒。虽皆因果报应,但都值得总结反思、借鉴提高。

a) 休养生息

工作两年,凭着没头没脑的冲劲,的确在职业技能方法有所提高,但身体却发出了警告。——肠易激症导致的腹泻持续了近一年之久。——脾气倔(坚毅的性格是有副作用的)且饮食不规律的朋友一定要注意下额!

前前后后,西药中药吃了一堆,也总是治标不治本。后来看些心理调节的书,听些心理疏导的读物,改善饮食结构(以清淡易消化食物为主,少食多餐,杜绝生冷油腻、重盐、重口味,避免饭后零食与水果),症状明显减轻。给敏感的神经、脆弱的消化系统多一些休养生息的时间吧。

适当的户外锻炼也是重要的,只是济南——你懂得。

b) 爱情遭遇战

幸福来得太突然,可惜没有太长久。半年的时间,一直在分分合合、吵吵闹闹中进行磨合,不过最后相互突破了对方的底线。

可能太长时间习惯一个人去面对一个人的问题;两个人的问题,更多的是需要充分的沟通,而不再是一个人去解决。

缘分来之不易,且行且珍惜。

c) 事业心觉醒

口口声声说着做事业,却用打工的心态去做事。工作上遇到了波折,首先做的就是隐忍(放弃自己的声音),逼急了就撂挑子走人(最终的反抗)。在这个平台这样,换了其他平台(可能会更好,管理更完善)也未必一帆风顺。

没有哪个平台是为自己量身打造的,与其碰运气般去寻找合适的平台,不如与志同道合的人一起去打造这个平台。

抱怨过、反抗过,但这都不能解决现实的问题!放松心态,先确认平台与自己的基本价值观与基本规划是否一致,如果这一点不能保证,可能真的需要换个环境了。每个平台都不会与自己的预期一模一样,当遇到问题时,自己更多的应该是站在“缔造者”而不是“参与者”的角度思考。—— 不管这个平台是自己倾尽心血一手打造的,还是作为后来人进行修缮的。——把自己的事业与平台事业绑定在一起。

成就他人就是成就自己,成就平台也就提高自己。

为科学正名

如今“专家当道,科学横行”。经常看到某某专家在互联网、地方电视台发布这样或者那样的科学新突破,并通过散布这些虚假消息以获取利益。

“弘扬科学精神,破除封建迷信”的口号,一直被大力宣扬。在不考虑其时代背景与政治背景的情况下,此口号的实施却略显空洞。

一、旧事物未必迷信,新事物未必科学

从刚开始带有政治色彩的反对封建时代的一切,到现在挖掘中国历史文化的瑰宝,已经逐步认识到中华文明源远流长、博大精深。

中医曾一度被以科学为依据而发展起来的西医认为是“巫术”,直到神经学、免疫学的深入研究,才逐步通过科学地方式解读出中医里“气血”“经络”等玄之又玄的概念,并初步理解其与疾病之间的关系。通过大数据分析不同药物组合对不同体质患者的作用效果,将有望为中药的奇特搭配在疾病治疗方面的数据依据。

儒学、易经也曾被当做封建时代留下的糟粕,但在社会基本稳定后,儒学在稳定政权、维护国家利益方面起到重要作用。至于易经,旨在阐明天地万物(也可以认为古人眼中的宇宙)的运作规律,只是有些说法尚不能通过科学严谨的方法进行证明。

现在流行着这么一套炒作流程“专家甲有观点A-专家乙反对甲的观点甲乙撕逼大战官方专家发布观点”。对于这类事件,有的人已经见怪不怪,有的人跟着汹涌澎湃。其实,是我们“太迷信科学”了!

一直以来,人类社会都是“少数人的勤快换来多数人的懒惰”。少数人的勤快指的是,深究事物的本质,发现事物的运作规律;多数人的懒惰指的是,直接使用少数人的结论或者劳动成果服务或者指导自己的生活。这本来是无可厚非的,但在这个信息急速膨胀的时代,不乏有人为了私利,虚构“科学结论”,迷惑诱导懒惰的多数人。

二、科学总是从正确走向错误

先放下“骗子专家”不谈,科学本身是一个结论从正确走向错误,却又不断完善探索方法与过程。对的,科学是方法、是过程,而不是结论!

牛顿(被誉为“站在巨人肩上的巨人”)不可不谓之伟大。他在经典力学、高等数学领域做出突出贡献。但在近代更微观、更宏观的物理学领域却被质疑与挑战,小爱当之无愧的坐上了物理学最前沿的第一把交椅。不过我相信,小爱的相对论理论也会在不远的将来被推翻(确切的说应该叫完善)。

人类历程不是一成不变的,所以一个时代的“科学结论”无法完全适用于下一个时代的“研究领域”。正如牛顿的经典力学理论完全可以适用于他的时代以及其后将近三百年的物理领域,但却无法适用于近代的高能物理学。——这不得不说是时代的束缚。

但有一点是可以肯定的,用独立思考与实验数据架构的探索方法与探索过程,将一步步完善科学理论大厦。

apache+tomcat配置负载均衡,实现http与websocket接口分压

一、应用场景

在生产环境中,应用服务器(此文以tomcat为例)不免面临高访问量的压力,相比而言web服务器(此文以apache为例)能够承担更大的并发量。Apache本身带有一些模块,可以完成对应用服务器访问流量分流分压的功能。这里就以apache+tomcat配置负载均衡的方式,实现httpwebsocket接口分压的效果。

二、系统环境

服务器:阿里云ECS服务器;

操作系统:ubuntu 14

应用服务器:tomcat 8.5+;

Web服务器:apache 2.4+;

三、Tomcat配置

tomcat官网下载压缩包,解压为两个tomcat实例(分别为tomcat-8080tomcat-8082)。

a) 修改tomcat-8080的配置文件(conf/server.xml

 <Connector port=”8080″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Connector port=”8010″ protocol=”AJP/1.3″

redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”jvm8080″>

四、修改tomcat-8082的配置文件(conf/server.xml

 <Connector port=”8082″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Connector port=”8012″ protocol=”AJP/1.3″

redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”jvm8082″> 继续阅读apache+tomcat配置负载均衡,实现http与websocket接口分压

2017遇见更好的自己

IT技术

(一)前端技术

推广并监督gulp在前端项目开发过程中的应用。

抽象并组织前端UI模块,并初步实现UI模块的复用性。

初步了解reactangular前端框架的使用场景与使用规范。

(二)后端技术

完善代码生成工具(codecoder)的易用性。

深入了解UMLRUP,并进行应用。

培养源于优秀源代码的习惯。

进一步了解并应用设计模式。

进一步了解jvm实现原理。

(三)自动化运维技术

初步了解自动化运维工具。

(四)互联网运营技术

了解提高流量转化率的方法。

(五)大数据处理技术

夯实大数据相关的数据基础。

了解马尔可夫算法、贝利叶算法与人工神经网络算法。

项目管理

(六)范围管理

初步掌握做需求分析的能力,能够根据需求进文档化与uml建模。

(七)时间管理

能够尽量准确的评估任务时间,并控制任务进度。

(八)质量管理

规范项目基本文档:需求分析文档、系统架构文档、系统部署文档、接口文档、工作分解结构。

规范java编程与前端编程的基本准则。

(九)人力资源管理

建设学习型知识分享型团队。

(十)沟通管理

交流做到“不卑不亢”。

能够与客户进行有效交流,了解到客户的真实需求。

团队内部做到平等无障碍的沟通。

个人能力

(十一)自我情绪调节能力

能够比较好的进行自我情绪调节。能够排解、转移不良情绪的影响。

(十二)自学能力

能够维持高效的自学能力,能静心学习并掌握理论基础知识。

(十三)沟通能力

能做到有效沟通、积极沟通、理智沟通。

(十四)写作能力

对工作与学习所掌握的知识,通过写作的形式进行归纳总结,并养成一定的写作风格。

java项目,基于maven的模块化开发与微服务架构

自从爱上maven的模块化开发,就不能自拔。

在实际项目中,代码复用是每个公司希望做的一项工作。但在初期,项目紧、任务重的情况下,如何兼顾代码复用(当然,就把复制代码算是最低级的代码复用吧,不过这可就做不到功能抽象的程度)与业务项目开发的确需要一定的构思。

对于单体项目(基本上所有的功能都在一个项目里,最后打包成一个jar或者war),可能规范命名空间(包名、类名),是个不错的选择。——把一个功能封装在一个命名空间里,提供仅有的几个public的API。代码复用以复制文件夹的形式重用,再好点就专门做成一个鱼龙混杂的“基础包”。

maven让你多了一个选择,可以把可重用的功能抽象到一个maven模块里(一般是个jar),在一个项目里积累的maven模块,在可以在项目收尾后进一步抽象为组织过程资产级别的模块。在其他项目里,只需要引入这个jar(maven的pom.xml方式或者ant方式)。

至于业务性质的功能模块(如支付功能,文件上传功能),可以开发为jar,然后被一个war类型的模块引入,一个微服务就出来了。。。。但然也可以根据业务需要,把几个业务jar封装到一个war模块里,一个传统的单体项目也就出来了。。。

当然maven-module模式的架构,需要对maven的应用有一定的了解。不过我相信,站在巨人的肩上,我们能看的更远!

蜗牛,为加班而生~