我转行程序员的那一年(六)

公司仁义供培训,发展方向仍踌躇

短暂的web学习

image
从西安回来时即将立夏,但岛城的气候比内地晚,正值春天,路边百花齐放,然而我没有多少闲工夫去欣赏风景。公司里平时是伞晴财务和豆蔻同学、青橙同学,青橙也是老板的学生,来这做毕业设计,大概以后可以在公司干点活。但呆了一段时间,我感觉这两位同学对自己的毕业设计一点也不着急,她们想玩乐器却不会弄,我给接上让过了过瘾,也没感觉出来哪位真正的有兴趣。万里鲲在我去西安之前曾说有不得已的原因要去韩国,回来的日期不确定,有感于公司当时状况,我们电话聊了很久,但我从西安回来后听说他要去老板朋友的公司帮忙,此后再也没联系了。

很快老板找来了5个学生,让我给讲了下我们之前做的App和现有项目,希望其中有人能加入到公司干起来。经了解,其中一位东君同学学过乐理,讲起伴奏还理解的快点,但对我展示出来的代码仍然望而生畏;另一位畅舟同学在学校做过微信维护的项目,问的问题比较实际,后来也就这两位同学来过几趟参与了工作。我把在西安时装在笔记本上的虚拟机文件拷到公司电脑上,试图直接运行这套web开发项目,结果问题百出,最后只好在本机上重新搭,换个环境报错都不一样,我弄了一天半才全部串起来,水真的很深!记录一下遇到的问题:数据库中授权后需要修改user表中的null为非空;tomcat配置文件中指定的文件夹一定要先存在再启动;防火墙对应端口保证开放;没有关闭tomcat就修改XML文件导致tomcat不能正常关闭更不能生效,要杀死进程和重启虚拟机。但晚上给线上服务器部署时遇到了同样的问题却重启了也不管用!想杀死进程却看不到!估计可能跟服务器配置有关。弟弟觉得我一回来几天时间都花在摸索环境上了,让我抓紧以前端为主先搞起页面来,但以我对老板的了解,他要看到我没把整个流程跑通会觉得我这段时间没学到有用的东西而着急,我也是面向老板性格工作呀!

老板让我去高新区值班,豆蔻急了,因为我不在这她怕完成不了毕业设计,我又花了一下午时间给简化再简化的搞了一个流程,并教会生成音频媒体的具体操作方法。

五一假期,我正在海边陪北京的义工朋友们玩,突然收到老板要做手术的消息,原来他用眼过度把眼睛累坏了!想起看到他的朋友圈,不少都是从晚上发到凌晨!我带着老婆去看望,他只能保持仰躺的动作,手机也不能多看,看来真的需要好好休息了。

节后的十来天,老板因做手术休息没布置多少临时任务,我正好跟着教程学jfinal,我又开启了周末晚上接着上班继续学习的模式。这段时间学习的内容有:jfinal在jetty和tomcat上的部署,基本的CURD操作,jfinal的原理,常量配置中的视图类型,默认视图路径,文件上传下载,路由规则,action访问的各种情况,插件配置和自定义插件调用,拦截器,handler全局处理器等等,终于赶上了视频的更新进度。来不及练习一下,赶快过目一遍css,接着清明节回家看的继续学习列表样式、基本选择器、属性选择器、后代选择器、子选择器、相邻兄弟选择器;伪类和伪元素;表格、轮廓;盒模型的内外边距、边框、外边距合并;位置的的相对定位、绝对定位、浮动和clear;各种对齐、尺寸单位,鼠标指针,display的块级元素和内联、行内元素的区别;导航栏;图片属性;媒介类型等等。学到这里,我才深刻的感觉到在西安时布局中遇到浪费时间的各种问题原来受这些规则限制,真是不磨刀误砍柴功啊!接下来看一个mysql教程时,发现举例中经常用到PHP,考虑到PHP流行性,打算快速过一遍基础语法。同时晚上回家学习css3中新增的属性:边框,背景,文本效果,自定义字体,2D转换,3D转换,过度效果等。月中,老板说他找了一位朋友清虚先生一块拉了个web项目,让我做前端,清虚做后台和数据。但清虚用的是.net技术,他让我先下载并配置好Visual Studio,但这5个多G的安装包搞了一天也没装上,我就开始了新的阶段。

培训

image
老板说有个学生在本地一家知名的IT培训机构当老师,现在开班了,让我去看看能不能跟着学点。本来老板建议的是PHP,结果去了一问今年没开PHP班,只有java。培训学校离我住的地方非常远,我不到7点出门,路上倒3趟公交,到学校已经9点半了。老板的那位学生带我去了一个正在上课的教室,我为期两月的培训经历开始了。

这里有两个班,一个内蒙古来的,一个山西来的,他们都整齐的穿着西服扎着领带。我来到内蒙古班,javaSE已经上了一周,我不得不看着视频恶补前面的课程,还好多少有点基础,学起来不吃力,但也发现java还有那么多的内容:包装类型,堆与栈,成员变量和静态变量、IO流的读写、面向对象的编程思想等等,之前跟弟弟速成学习的时候只为快速能写函数而忽略掉的,这下可都补上了!周末做了个课后练习超市购物车,感觉效果还不错。接下来是两周的javaWeb,我去了山西班,教材是学校自己出的,学完后感觉对java后台到页面的数据传输流程一下变得清晰了,尽管当时学的jsp后来几乎没用过。在这个班里,班主任还让我给大家做了一次参加工作后的经验的分享,我就重点强调了一下基础的重要性。这次课后练习是一个招生网站,前端部分是写好的,做完从注册登录生成验证码到浏览信息列表到详情页,以及对数据库的增删改查操作,一个完整的项目就出来了。做练习的过程基本上是熟悉各种报错的过程,记得讲课的老师帮同学调程序时总是说:“代码是调出来的,不是写出来的!”我也问过他windows服务器和linux服务器使用上有啥不同,他说前者经常出问题要一个月重启一次,而后者半年或一年才重启一次就可以了。接下来是一个月的S2SH开发框架的培训,大约我跟着学了一个礼拜就开始干老板指定的任务了。后来抽时间学HIbernate也没全部弄完,培训的内容就到此结束。在这两个月里,我依然是开足马力,白天上课干活晚上练习,查补前面的知识,同宿舍的人说看到我这把年纪了还这么拼命学习真不容易——他已经给别人搞培训了!如此的拼命,以至于我这两个月的日记没写几次,大量缺失,但当时那种秉烛夜码的感觉想起来依然很真实,就像刚过去不久。这期间,豆蔻也离开公司自寻出路了。

有一个不能不提的事情是,我住的离学校太远,老板就让我去他高新区的房子跟他老爸一块住。叔叔人很好,脾气没有老板那么急,说话也很有条理,第一天还骑着电动车把我带回屋子里看了看,一路给我讲周围的交通和食宿,第二天我带了简单行李就入住了。我晚上在学校上晚自习,回去的比较晚,除了刷洗就是进我的小屋子接着学习。叔叔在客厅看电视,有时找不到频道了我帮着给调调。有天晚上我做噩梦,醒来后一睡又入噩梦中,我就用手机放了一首《佛顶陀罗尼咒》才睡着了。第二天我就在公交车上开始背这首咒,高新区路上人少,公交开得又快又颠簸,几乎无法学习,正好就听音乐背背经咒。半个多月后,我听说学校有宿舍空位,恰好老板的母亲和孩子也来这住了,我就让老板帮我在学校谋了个床位,从家里带了铺盖后搬过去一直住到培训结束。

培训期间认识了几个学霸,他们都挺愿意交流。我也分别请好几位吃过饭,讨论过他们的未来规划,有一位男生力达开说他将来要回内蒙创业,建设他们的县城,还有一位女生说要回去开发父老乡亲能用到的软件。我喜欢他们年轻有理想又不断奋斗的精神。跟他们在一起时我经常会忘了我比他们大七八岁。在跟他们聊未来时,我也在构想我的自动生成音乐的神器music++,大概有两个方向:一种是给定一些规则自己随机生成音符,再进行算法优化使旋律逐渐迭代到不难听。但这种规则将会种类繁多,所以最后可能做成开源的,让精通各种音乐的人来添加规则。另一种是先产生安全的和声走向,再生成安全的音符,再通过算法使一步步的随机。相比来说,后者更安全一些。但要考虑到旋律的发展动机,如何扩展。现在人工智能技术已经比较成熟,通过读大量高质量的曲子做出来的音乐普通人都难以分辨,所以这块技术以后也要专项学习。

培训期间老板的活总是优先。刚开始那几天晚上他让清虚远程指导我装VS(Visual Studio)套系,但最终因各种问题没能成功而放弃。到了学JavaWeb时,老板让我修改一个学校网站,在里面加上每一集的教学视频,学生们可以选择播放。老板找学校熟人给我了一台备用服务器,是windows server的,看起来比linux容易操作,但网查了一些方法进行配置后外网还是访问不到。后来学校的人帮我定制了个端口,访问到视频文件了却不能播放,我再修改媒体等配置、视频编码,尝试多次后得到合适的格式和压缩比。记得写页面时是第一次实战jQuery选择器,想着很简单,但搞了一晚上,同学都回宿舍了,我还去楼上的长明灯下面调代码。培训快结束时,老板又让我给我们的音乐App做了个看起来高大上的宣传页面,实际上是找了个bootstrap响应式单页模板,然后添进去不同内容,青橙同学配合做几张大图,我自己看着调了调样式感觉还挺不错。老板说希望把导航菜单像微信一样固定在底部,那个自带的导航我改了半天也没达到目标,最后干脆在手机上隐藏掉自己写了个。老板又说轮播图要支持手动滑动,我找了一圈,最后在新浪手机端中扒出相关代码和文件,替换原来的bootstrap走马灯组件,却发现把网站布到服务器上会弹出小广告,而在本地就没有,最后尝试把一个js文件中的http协议类型破坏后,广告没了,但头部图片的自动缩放功能也没了!后来又找了一套原生JS实现轮播图的教程,做完并在电脑上实现后,经浏览器模拟移动端测试正常,但放到手机上滑动时却不流畅。

培训时学习强度很大,大概物极必反,有几天晚上回来一点也不想学习了,就看了个电影《百鸟朝凤》,并写了影评,这是我唯一一次主动写的观后感。这期间弟弟也辞职了,说要呆在住处专心学大数据和云计算,准备往这方面转。我也终于还完了结婚时欠的外债,只是工作还有点看不到头,一切寄希望于这个培训后的效果了。

招人

image
公司在高新区有个办公室,我培训快结束时大家搬过来了。老板说让我找几个学得好能干活的学生来公司面试。我就建了个群,把认识的学生拉进去,他们又拉了一些人,共十来个,其中有位奇雨同学找工作意愿最强烈,说只要能学到东西,不给钱都行。约定面试的这天早上,老板、伞晴财务、青橙同学、东君同学和畅舟同学等人齐聚公司,大有欢迎新人之势。但他们原本定的下午面试,因学校有招聘会而改到了上午,又因打印简历等事耽误的比较晚,在急着等吃饭的老板催促了几遍后才来。老板先给介绍了公司和项目情况, 接着逐个单聊了一阵。他们出来后告诉我感觉被面蒙了,准备的内容没怎么问,对公司项目不知道从何入手。而老板说感觉大家水平都差不多,连Linux都不会,更缺乏那种对编程工作特有的热情和能力。后来老板问了大家意见后,决定留下学霸力达开,有大数据倾向的微雨,很勤奋认真的水月(早上常看到她总是第一个进教室学习,学的也不差),还有我提到愿意干活的奇雨,一共四人。 我在群里通知了一下结果,说大家都很优秀,但公司太小不能全部容纳。回学校后在电梯大厅就被力达开同学拦住了,他提到曾经因为自己重感情和班主任合不来而拒绝当班长的事,对我今天的推荐特别感激,但我也知道,像他这样班里数一数二的人才,公司还不一定能留下来!我在上晚自习的间隙,考虑到他们没留下的人在乎今天的结果,于是逐个找参加过面试的同学聊聊以表安慰,果然他们大都很失落,还有个女生说今天被打击坏了,趴在桌子上眼泪哗哗的流。后来我又找了面试通过的几个人聊,我端着水杯,大家围了一圈听我讲公司工作的事和开发经验,我说我毕业多年现在才转行编程,其实非常羡慕他们在上学时就开始了职业发展!我劝他们在找方向上多花点功夫,争取少转行。想起我曾经的每次转行虽然都算深思熟虑,但31岁了仍然和他们走到同一个起跑线,感觉这天晚上我在这堆人里变成了一个油腻大叔了!接下来几天他们经常问我一些工作经验,他们为能早进公司感到很兴奋,我也希望他们能真的留下来。但不愉快还是发生了!

老板跟他们单聊说了工作情况和工资的事,我很快就收到力达开同学的反馈:虽然他们算是实习,但老板这个工资实在低得让他们没法接受,我才知道老板给的一月只有当时市里规定最低工资的三分之一。他语气激动,似乎喝了点酒,和前两天见到的状态完全不同。我也很难过,公司没稳定收入,老板在不知道他们能不能干活之前也不想花太多成本,而对于他们,刚从学校出来要自己租房住要独立生活,这个收入确实难以维持。剩下三个同学没有表态,但也不保险。到了约定上班那天,为了表示重视,老板和改了行程的伞晴很早就到了,奇雨同学也提前到,表现积极,水月同学告假一周,而微雨同学先说晚点到,中午又说下午到,下午还不确定,老板急了,我就让她给老板打电话重新约个时间来上班。结果她这个电话没打好,老板发了顿脾气,她也委屈得哭地不像样子,我只好两头劝慰。我也是从学生过来的,对于他们遇到的情况都很理解,但还是很遗憾没有在事情发生之前做出有效的干涉。后来,只有奇雨同学在公司上班了,水月同学也确定不来了,老板得出的结论是:这个培训机构不可靠,培养出来的学生都眼高手低!

公司方向

image
培训即将结束,突然收到老板微信:“寻明博士准备在我们学校开个大数据假期培训班,就这个暑假,你准备下跟他去学吧”

我想到手边因耽误还没学完Hibernate,一换方向前面这些半茬子又得扔下了,就问到:“培训这边的内容我还落下很多没学,寻明博士的大数据课要学多久?”

“就假期一个月吧,完了之后你就跟着做大数据项目,这个技术现在热门,外面的人都是花钱来学的!”

“好吧…”经常听弟弟说起大数据,确实这两年很流行,但我对突然间更换方向还是有点抵触。

“要以公司的方向为主,不能以个人意愿想学什么就学什么,像这样发着工资还让你学习的事在别的公司是没有的!”老板感觉到了我的勉强。

我一听也很火大,本来上班就是个双向选择的问题,我跟着公司的方向拼命了这么久,现在却一个都没成,年过三十的我对频繁的重新开始已经有点厌倦了,多么希望像那些一个行业干好几年的人,在生活保障的情况下去深入研究某一领域的东西。但我心里有数,真的不干了实在对不起老板花功夫让我培训这么一场。我忍住没跟他争,想了想回复到:

“其实我是担心web好不容易正式学了点东西,还没学完,也没有做项目而缺少经验,以后再提起来怕忘得差不多了。既然公司定了大数据方向,我先去学吧,以后有空再看看web”

“嗯,公司以后主要就这两个方向,你趁这个机会先跟着把大数据学完,寻明博士手里就有现成的项目,这些大数据的项目是很赚钱的。你学东西也踏实,应该没问题!”

至此,我的javaWeb框架就学到头了,培训未完成的内容再也没有看过!

7月中旬,培训学校放假了,我回到公司。老板给大家布置了近期目标任务:我跟着寻明博士学大数据,因为这个是公司最有实力的技术,以后项目都能用到。公司的其他项目有一个360虚拟现实的视频,帮电视台弄的,一个健身房实现虚拟现实的视频合成,还有我们App的继续完善。下班时突然觉得前几天赶着学hibernate的动力都丧失了,因为我感到这些项目短期内做不到用这个技术的程度,而我要赶快复习前端内容,老板往往比较着急想看到已做出东西。我感到公司将走向一个新的起点,我要开始做项目了。两天后,老板又说寻明博士手里的大数据项目拖了很久现在急需解决,想让我和东君同学接起来,月底完成。对这套不熟悉的项目和操作我心中没谱,我能预感到接手后将面临的各种辛劳,只希望能早点发过来资料了解一下情况。结果寻明博士的假期培训也没开展,我也不用学大数据了,而他发来一些不太有用的资料,没什么工程源码和项目内容,只听说需要用到一款报表制作软件spotfire,我就赶快在网上找资料看。

我和东君一起做项目的时代到来了,我偏重于web方面,他偏重于对一些技术细节的实现。东君性格文静又聪明好学,大三正要结束,开始只是周末来,放假后就天天来了。现在公司还有青橙同学负责做一些PPT、图片海报设计等。这一天,我们按老板要求尝试360度视频实现的方法。我先做了个视窗,将一个扁平的360度图片放进去做成无限拖动循环的情况。但使用视频替代时却发现兼容性不好,窗口大小影响视频的播放。老板找了个插件,我们测试后发现好像只支持移动端安卓和苹果的开发。再找到一个jQuery插件,可以实现通过手势操作web嵌入的全景图片,但对视频仍不识别。后来东君发现谷歌已经做出来支持视频和图片并提供源码的消息,我们就找到源码并测试,但对视频支持仍然不好,只有声音没有图像。他又找了另一款开源的,但操作不方便,只能用键盘,这时已经到下班时间了,我们就去赶班车。每天都这样,我们对老板的每个目标要进行大量的尝试和查找资料,在成功之前不知要经历多少次失败,但两个人一起研究确实比我一个摸索的气氛要好很多。我和东君一起坐班车时会讨论一些高科技、宗教、灵异事件、社会大事等问题,他都兴趣盎然。

老板一直为公司不停的找新项目,带我去找过一个铁路项目因时间太赶和我没把握而放弃,又计划做一个VR全景虚拟工厂,先以熟识的啤酒馆为基础尝试实现。忘了最后因为什么搁置,记得我为了把啤酒罐上的仪表数值显示为数字,让设计做出了七段数码管的每个数字为透明图片然后根据数值切换图片显示,后来学css3的时候才知道有服务器字体可以很优雅的实现! 这期间老板还安排让我研究网页录音相关内容,以推动我们App网页版的进展,他也带着东君去做过路演。后来伞晴联系spotfire在上海的经销商获得了试用权限,我就赶快学习,发现没有中文教程,老板帮我找到一些资料却已过时多个版本,没法参考,我只能硬着头皮尝试翻译着英文文档。之前对报表这类软件的常用操作和功能不熟悉,摸索起来进度非常慢。直到后来老板约时间找了个懂这个工具的同学朝阳先生给我讲了一下,朝阳说他也摸索了大半年才把基本功能弄熟。老板又介绍了一个想做网站的客户长风来公司和我聊需求,他一看公司没几个人,问我们做过的项目,我赶快把刚完成的App宣传页面给看了下——我感觉这一看起到了关键作用。我们沟通了两次后,我觉得老板非常想接这个单,他说多钱不要紧,先答应下来给他干着。我能理解老板想找项目让我练手并给公司储备资源的心情。总之,这些天就在这几个项目中来回穿梭,每个都是摸索成本远大于正儿八经开发的成本。东君多次调试VR以及老板要求的直播等技术后,最终锁定了要学threeJs。而奇雨同学因基础薄弱,上班期间有几次问了一些太基础的问题而让老板不太满意。最终两个礼拜后因为不能上手项目而被公司裁员了,公司补给了半个月的工钱。一件有趣的事是某天中午我给东君同学介绍家乡歌曲《他大舅他二舅都是他舅》,次日早晨就收到了小外甥出生的消息。

这些天除了穿梭于VR视频尝试和spotfire学习中,我还要研究基于H5的网页录音的项目。先是缺乏中文资料,当从英文资料里面扒拉出来能跑的代码后,发现PC除IE外都很顺利,但移动端都不行,最后了解到是H5的api兼容性导致。尝试古老的flash实现也没有结果,老板说只能研究微信录音再转换的方法了。老板说让我写个网页去访问我们App在服务器上保存的wav文件,生成一个播放列表。我不知道咋访问服务器,后来弟弟帮我想了个办法,把Apache的默认目录设置到生成的WAV目录里,再写上网页去访问。但root没有密码没法修改配置,老板说上次听海同学修改后他也不知道了。弟弟提醒可以到机房重启,我通过联系服务器托管方,还真重置了,但APP不能跑了!经过老板,东君和我一下午的摸索,最终确定要分别启动一个start.sh和一组自环声卡的程序。关于App的工作就停留到此了。月底的一天,我和东君奉命去会展中心参观各种高科技展览,其中的机器人写毛笔字做的很好,控制精确,能写字能蘸墨能盖章,写出来的一般人难以区分。有好几家的VR基本都是做装修体验,效果很好,技术也都差不多。有一家体验完了扫二维码还送了个VR眼镜。

老板仍然实时更新着我们的任务,我们在摸索中缓慢前行。青橙主做打酒系统的3d动画,东君主做VR,我做啤酒打酒系统web开发、研究App的相关需求、寻明博士项目的sportfire学习。畅舟同学中间也来过几次。老板发现个网红能自编自唱歌曲,在年轻人群中很流行,问我能否和App结合起来使大家都用。我看了下人家能编曲唱的又很准,就说这基本是懂音乐的人玩的,老板考虑到推广成本太高也没再继续。所有项目都进展很慢,中间也总有老板的临时需求,根本原因还是我们的经验能力有限又去摸索比较前沿的东西,资料少不说,找到了往往因版本不对没法跑起来。我找现成的web可维护的系统,尝试了几个不理想的demo后,最后还是决定使用jfinal。老板还介绍了个德国回来的朋友齐霄先生,说搞了多年的c和c++,现在要学java让我给找了点资料。

给家里打电话的时候,爸又问到工资待遇的事,我强调了这边普遍的工资低情况,他为我的生活情况不无担心,说弟弟那边换工作后已经到万了,像我这年龄的人在弟弟公司工资都超过一万五!让他们担心我很内疚,但我也很清楚,除了这个城市工资水平比较低,最大的差距就是我在行业里的工作经验了!算算现在接触编程还不到一年,除了更努力,实在没有别的办法!

第三次搬家

image
8月,是岛城最热的时候,但公司的办公室租期到了,我们搬到附近一个科技园内。这是我来公司后跟着搬到第四个地点了。办公室挺大,但屋子里有一股很浓的甲醛味道,开窗透风,温度也不下去,室外29度,室内32度。地上也有厚厚一层灰,我们打扫了好几天。搬家那天,搬家公司倒车时还把科技园门口的下水井盖砸碎了,赔了100元,我们都才知道人家用停车帽把井盖围起来是因为井盖的材质是穿了铁丝的塑料板!搬茶几时老板怕玻璃被摔坏要我们自己抬,伞晴知其故,曰:他们摔了不正好可以赔新的吗?我感慨财务就是和我们这些搞技术的人思维不同!呆了几天后环境实在太热,我们又临时搬到公司前半年的海边办公地点,十天后空调好了又搬回来。

老板想法多,变化也快,我们虽然很拼但经常赶不上需求的更新速度,老板看不到结果就会着急。终于青橙因缺乏相关基础,学习3D动画的进展达不到老板要求而被迫离职了。其实我之前也跟她说过现在刚毕业最重要的是学习,希望能确定方向并拿出业余时间提高自己,事实上我发现毕业后业余时间还在学习的人已经非常少,当然老板需求变化快也是个原因!也许她不认可我这样经常把业余时间为工作搭上,但只有我自己清楚我现在必须这样做!

我开始学习jfinal了,发现三个月前曾认真学过的那点基础,现在不看代码完全不会用,年龄大了记性也跟着捣乱!看到jfinal的作者詹波和视频教程作者小木创业过程都不容易,我这点努力比起人家差大了,感慨之余给捐了20个大洋——这个捐助名单曾在官网存在了好久。后来为了系统的学习,我花了260大洋购买了视频教程——这是我第一次为虚拟的IT知识主动投资这么多。我找到在西安时跑通的医疗网站项目准备跑一下,结果因电脑重装系统,linux服务器、数据库、java环境都重装了一遍,最后就差数据库一直不能连接成功。几天后回来看这个项目,干脆把所有相关内容都卸载后更新了系统软件源并升级,再装数据库,结果一路绿灯,一切顺利的连上了!

老板上午刚布置完一个仁田公司web显示实时地图的项目,下午又让研究齐霄先生的纳米防伪材料项目,说这个最着急。老板给我讲了两天这个防伪流程,我和东君同学都觉得加密过程在原理上有漏洞,但我们还是按老板的需求开始开发了。几天后我们做出个用微信等工具扫描产品的二维码后打开产品详情,并使这个二维码失效的功能。记得东君当时对二维码跳转的过程感到神奇,我给详细讲javaweb原理——他对web开发还没有系统的学习。但比较别悲催的是齐霄先生对我们web端的demo没表示出太大兴趣,最终也没有提供纳米材料加密的实物配合测试,我们的项目无处应用!回想一下开发过程实在是非常艰难,特此记录一下。

畅舟同学现在负责服务器了,他推荐我们装基于PHP的套餐,已包含了MySQL等基础应用,我和东君安装过程中出了很多问题,当我们解决完最后一个时,东君兴奋得抱起吉他弹了一会,说终于要搞定了。但据我不到一年的开发经验,我告诉他这只是个开始,后面要遇到的麻烦会更多,果然,Navicat连不上数据库了!我查找尝试多种办法,其中试的最多的是在卸载之前再rm几个文件夹,重启服务器,删除其他可能文件夹等等,但没解决。带着尝试过程群发提问,只有jfinalVIP群有人回复了,说什么研究lnmp的安装结构再进行反安装!我简单找了一下官网,也没有太具体的安装或卸载说明!后来不得不使用一个笨且有风险办法:通过locate mysql找出包含这个名字的所有文件,除了PHP目录的,其他的一律删除!也就是,更新列表数据库,查找,复制目录,粘贴到FTP端,打开,按m,找到对应的并删除。期间发现存放很多文件和目录的目录,在FTP中删除非常难,而命令行中瞬间就能删除。一直重复的这几个动作,最终删的差不多了,但安装时仍然跳出这个问题!东君把和微信服务器连接调通了,在扫描二维码时也遇到很多困难,他不时的起来走走,或在窗边眺望,午休时会看文艺视频,弹阵吉他。而我看到昔日曾非常感兴趣的这些东西,再看看眼下干不出来的活,只有更着急更卖力的工作!

“你怎么又把数据库搞坏了?”第二天早上,老板一进门就急匆匆的问我。

“我们按照畅舟的要求装的PHP套餐,本以为能一步到位,没想到数据库出了问题”

“你搞了一天了数据库还没弄好,浪费在这上面的时间太多了,”我觉得就差说出我太笨这句话了,“赶快查查网上的方法,今天无论如何也要把环境跑通,齐霄这个防伪技术在全中国还没有第二家,我们帮他做起来了以后能接不少活”

“我能不能找你的那些同学问问数据库的问题,我现在感觉查资料时一些linux和PHP的环境问题看不太懂”

“行,你赶快找他们让帮忙解决下吧”

我于是将数据库安装失败的问题整理后分别发给老板那些开发朋友们求助,后来只有两位回复了,一个说我数据库装了两个,建议重做系统;一个说晚上回去看看,后来也没了消息。我也不能等他们,数据库搞不定就先装tomcat,但试尽多种办法,包括杀进程,降版本,改配置,改目录,重启后还是没有成功!然后找畅舟,他说要用dacker技术,给我发来介绍文档。我一看这不是我一时半会能看懂搞定的,再折腾一天搞不好老板要毛了,就让他帮着搞搞,我说弄不好老板就让装系统了——他一直很反对我们提装系统的事,说重装没必要,但也没告诉我docker怎么直接使用!实际上装了新系统再部署Java和数据库环境我倒有点把握,起码弟弟曾带我干过几次。我和东君研究了一天终于把二维码这块调通了,并把开发的web页面美化了一下,两者结合搞了demo演示,又录视频又截图,应老板要求发给齐霄先生,结果对方未明确回复。快下班时畅舟说docker已经装好了,但除了给我发了两条不是很明白的命令外还是没说清楚怎么发布war包。我打电话给弟弟求助,才知道他昨晚加班到两点多了。为了操作服务器不受影响,晚上先等畅舟搞定tomcat,结果快十二点了还没好,我就让弟弟先睡了,我又等了一个多小时,畅舟终于说tomcat搞定了,然后说找了个哥们正在连夜搞Mysql。我睡了后一直梦见在测试Tomcat和MySQL!次日是个周六,一早我就问畅舟进度,他说正在弄MySQL,但一上午还没弄好。最后他只好承认还得重装,但让我保证三点:

  1. 安装16.04的ubuntu;
  2. 不必去配置,尤其是一键安装时很容易带进乱七八糟的东西,需要啥tomcat的他和他的哥们来搞定就行,保证弄好;
  3. 把/和/home分开。

我考虑到服务器上有老板之前的东西,就让畅舟先取得老板同意,再把要求告诉机房让重装,但机房一直不接电话不回信息,估计周末没加班。而老板这边急得不行了,让我催机房全部重装,不用再考虑畅舟!还没等到机房回话,晚上突然收到畅舟把服务器全部配好的消息,并进行测试,结果他发到群里的Tomcat路径不对,而且MySQL还不能连接,又倒腾到半夜才终于搞定,据说是MySQL受原来一键安装限制了端口!

还有个比较有意思的是,我这边web流程调通后配合东君实现了微信内嵌web页面调用摄像头对二维码进行扫描,结果串起来给老板演示时,老板说要是从微信直接扫描就更好了。我们直接把目标地址生成二维码用微信的扫一扫一试,发现是一步到位啊,东君突然悟道我们干嘛花几天时间自己写个二维码扫描识别功能呢,我安慰说到时候写App微信端时我们好歹了解点流程了!在维护加密商品的列表时,在图片上传中又栽了跟头,我瞪着眼睛从下午搞到晚上也没弄好,不得不向jfinal的VIP群求助,才知getfile必须写在其他语句前面,这都是jfinal的约定,小木说他讲的很清楚。后来我才想到可能在form传参那章讲的,可惜还没看到那里就急着去试,又一次感觉到因不过基础而踩进的坑!

萌生退意

image

东君到月底就回学校了,在二维码防伪还没弄完的时候,仁田公司的需求也逐渐明确了,老板发来个文档,并在微信上问:“你看下仁田这个需求,一个月能不能做完?”

我仔细看了下文档,一个web项目,包括带不同权限的管理后台,还有个可视化大屏页面,还有个舆情分析系统,我感觉这几块内容比我之前修改过的web页面的工作要复杂,尤其权限管理这些培训时没学到,我心里没把握,就回复到:“这几块以前缺乏相关经验,对一个月来说可能工作量有点大”

第二天,老板又来信息:“我这边把需求中的可视化和舆情系统都交出去了,你只做个带会员认证的管理后台,需要区分不同角色的权限,工作量还很大吗?”

“还行吧,那我试试。您知道认证这块有没有什么好的技术方案?”

“认证的话存个session判断一下不就行了吗?”

如果真的给我一个月研究这个,即使没经验我也很有信心。servlet没有白学,但我知道要用框架把这套东西搞到商业标准,不可能道理明白马上就能搞出来。我又了解到培训正在讲一些很实用的技术,就问老板:“我听说培训学校正在学Springmvc,mybatis,meaven,git什么的,我弟说这些技术在工作中很实用,比s2sh更流行,不知道咱们现在的项目能不能用得着?”

“你的想法不对,哪能去学完再做,现在只能一边学一边做!”

我一看老板急了,也懒得跟他再说。实际上,要不是顾忌老板让我在这免费培训,我真不想呆下去了!没时间学基础却不停的要尝试做出东西,我自己累,对产品也无法保证质量。弟弟说不如我定好目标找好教程,在家学两个月出来找工作问题也不大。遇到和老板无法沟通的情况时,我就算着再呆多久才能弥补上老板让我参加培训的恩泽呀!下班路上我和伞晴聊天提到了工作中的困境,她也被老板做事又急变化又快的风格折磨得深有同感。不知她是不是透漏给老板了,次日老板一到公司就来到我工位旁,说:

“给你看一样东西。”

“啥呀?”

“自己打开看,”他把从包里摸出的盒子放在我前面。我好奇的轻轻打开一看,一个破旧的自封袋,里面装着一块玉,表面斑痕点点,看起来比袋子还旧。老板问:“你看这个值不值钱?拿出来研究下。”

“玉我不太懂,看不出来!”我一边说着,一边仍好奇的拆开袋子准备拿出玉摸一下。

“这可是我在北京做手术时从潘家园淘回来的,据说是盗墓者从死者身上摘下来的。”

“啊?!!”我忍不住叫出声来,手一抖,袋子落回盒子里,我也没有再去拿。我甚至感觉闻到了一股墓里的土腥味,我说:“这会不会有什么灵气?”

“人家说戴这个能转运呢!”老板看我没有太大兴趣,收起盒子接着说:“中午我带你出去吃饭吧,天天吃食堂的是不是也吃够了?”

“还行吧,食堂素菜也挺好吃……”

“今天带你去吃点好的!”

还不到中午,老板就拉着我去订好的饭店。路上,老板说:“最近你把仁田这个项目跟一下,主要是权限认证这块打通,实在有问题我就找舞凭雅来做,你跟着参与一下,干完一个就好了,只要我们别亏。”

“嗯,我试试吧,有一个月时间,我估计问题不大。到时候遇到不好解决的问题,我再向舞凭雅请教一下”

“没问题,到时候他帮忙干的多了给他钱就行。对了,你昨天说的培训学校上的那些课,想学就去学吧,带上项目,边学边做。”

“嗯……,我还是先在公司把这个管理后台做一下吧,那边的课一时半会完不了。”有丰富经验的老手做保障,我算是心里有点底了,但对于去培训学校我却拒绝了,原因是:

  1. 根据以往经验,就是去学也不能一心的学习,中间难免还会穿插一些其他事,何况手边的项目只有一个月期限。那边课程比上学期还紧张,如果断断续续的听又没时间做练习,落下的课程也不可能有时间补。如果不把springmvc和mybatis学完也不可能用这个技术做个成熟的网站。
  2. jfinal已经开始学了,现在扔下又去学别的开发技术,如果学不完还得回来搞这个,那就不如干脆把这个jfinal极速开发搞定行了,以后做网站的活起码有个保底的技术。

到饭店时,老板的母亲带着小孙女已经在那里等着了,她见我又说我实在,又说是个好孩子什么的,还嘱咐我照顾着公司的东西,要是上下班不方便或下雨天的在家里干就行了。他们点的菜有点多,我狠劲吃完了土豆丝和鸡蛋炒什么瓜,最终还是打包了两袋!第二天中午老板又非得拉着我去他家里吃饭,他下午去外地出差,看到他妈给一件件的收拾衣服,就像我出门时妈也给我一件件的收拾一样,感觉我们在妈妈眼里永远长不大,需要照顾!相比来说,老板还是挺幸福,而我一年才回一趟家!

一个周末,东君突然打电话说老板在一个茶皇会约了一些商界人士讨论如何拯救我们的App,让我过去一趟。我没报太大希望,去现场时他们已经进行一大半了,听到的内容比起之前也没什么新意,无非就是商量如何定位市场,如果让用户产生依赖等,没人对产品本身能实现到什么程度感兴趣,好像只要定下来能满足用户的东西就都能做出来一样。估计东君也感到了商人讨论对App的作用太有限,我说还是等我们自己有实力了,试着先把产品搞好点也许才是正道。

有一天,老板的父母带着孩子来公司溜达,并给我一个sd存储卡和一个歌单,让我把这些歌下载到卡上以便他们用唱戏机听。他们说老板太忙了,早出晚归,平时见不着人,说了很多次也没给他们下载。我说老板确实太忙,跑业务跑关系什么的都得他自己去,公司里成天也见不着人。找歌曲这些举手之劳的活我当然愿意帮忙干,看到歌单上写着《大悲咒》《心经》什么的,我还给推荐了一些其他佛教音乐。

music++

image

自从和培训班里的同学聊过他们的梦想,我也开始思考我的music++了。培训快结束时开始行动,除了公司加班和学jfinal,我的业余时间全耗这上面了。我先做行业调查,发现一款索尼出的视频编辑器里面有自动生成背景音乐的功能,品质确实不错,速度,感情起伏,风格等都能调。但风格听起来都比较类似,节奏感强,比较规整。另一款软件是从给随机音符一步步加入规则入手的,但操作复杂,我摸索了一阵也没全搞懂,更别说广大普通用户了!其他没有找到更类似的产品。我把我要做的部分写了个文字需求,打算第一阶段先实现随机伴奏,以巩固刚学的javaweb开发流程。我从手绘界面开始,一边用bootstrap和jquery做前端页面一边写服务端,中间还重构过一次,从7月中旬到9月中旬完成计划。最终的产品是这样的:从页面上可选择调性(key)、调式、长度、乐器、演奏类型、拍子类型等参数后,提交到后台,后台生成wav并转成mp3再传到前端来,页面列表追加后可进行播放。开发过程依然充满了艰辛和成就感。

开始时我把很多功能放在了服务端,因为java算过了一遍基础比较熟。第一个问题是从传入的不定长数组里随机取出一个数,那个周末的早上我躺在床上没起来想了个办法:比如有n个数,先以n分之一的概率选取第一个,没选中的话再以n-1分之一的概率选取剩下里面的第一个,以此类推,剩最后一个的话直接返回。我把思路跟弟弟说了下,他说这个需求两行代码就能搞定,我一查果然如此!我又把这个思路发给培训班同学力达开,他说感觉这样写有问题,但两天后说这个写法非常好。后来我自己写了例子,让跑10000次,每次把随机取到的每个数进行统计,发现测试次数越多,每个数被取到的概率趋向相等,实践才是检验真理的唯一标准!第二个问题是为了写一个合并数组的方法,又复习了基础,通过可变方法和泛型的结合实现。5年后的今天发现用js的es6+语法处理这些逻辑实在是太简单了!当时为了实现页面局部交互,不把前面生成的目录刷新掉,我又学Ajax,但实现后发现音乐在后台播放一遍才能合成完文件。弟弟帮我看了下写了子线程,又发现线程必须重写的run方法必须要传递参数,而带了参数后系统又不认,还需再写个。我一听麻烦就说了另一个思路——后台直接把midi(体积非常小的音乐文件,发音依赖设备端)发到页面进行播放好了。因为audio标签不能读midi格式,遂研究midi播放,找了基于midi.js的播放器后发现生成的目录有问题,和弟弟研究后发现跑在本地的动态项目的普通类中,默认的根目录是本分区,而当前目录是eclipse的执行程序所在位置,最终用servlet传递了真实路径来完成。然后又发现PC播放正常而移动端部分手机不正常,查得是移动端浏览器对midi播放的兼容有问题。后来弟弟建议研究将MIDI转成音频的方向。我把合成的wav地址传到页面进行播放,问题是等待时间长并且播放几首后内存很快被占满。弟弟调eclipse的默认配置的内存,也没解决根本问题,最后弟弟找方法从后台直接把wav转成mp3,问题一下解决了。为了让其他小伙伴能测试,接下来研究本地IP通过端口映射到外网能访问的问题,通过修改路由器的转发规则实现。

这个时候jfinal也学了一些了,就以此建项目替代servlet结构,果然代码又优雅了不少,通过配置默认值,很多地方省去了判断再赋值的繁琐。有时遇到莫名其妙的问题,找相应视频仔细看,总会发现一些约定。服务端用map大量替代数组,实现更灵活的配置。前端页面增加了等待的进度条和下载mp3功能,然后逐步增加各种伴奏类型时,由于类型和乐器有一定的对应关系,所以增加两者下拉选框的二级联动功能。终于慢慢发现随着伴奏类型的复杂,原来约定的代表音符和发音规则的字符串修改起来变得困难,我又重新约定规则进行重构,引入“0”和“-”代表休止符和延音线,至少看上去和简谱对应。在做连音功能(即跨小节的一个音)时,在班车上一直思索实现思路,想的差不多了,坐在电脑前面效率很高的就完成了,还不易出现bug。重构了之后伴奏类型的维护扩充速度大大提升,真是磨刀不误砍柴工啊!

教师节那天,为了庆祝music++的阶段性进展,我和老婆去了中山路上她垂涎已久的那家咖啡厅——喝着咖啡吃着甜点她就很愿意听我讲这些不能挣钱的“理想”了,甚至还帮着出出主意!我在这个阶段还没结束时已经计划着下个阶段的功能和实现思路,真希望她能受我影响,把所有问题往前赶。后来我在项目中增加了扫弦、3拍子类型、四六和弦、琶音奏法等功能,到我生日的前一天,music++告一段落了。此时义工联盟的视频剪辑任务也来了,打算先干完,然后过一遍jQuery——写页面时发现现查各种方法还是效率比较低,打牢基础才重要。

小家庭

image
老婆一直有个医生梦,小时候就给布娃娃打针,后来卫校毕业后考了成考,但因各种原因没有从事这一行,却学会了一身洁癖,看什么都是大细菌。我们作为同事,认识的时候,每次见她总是手里焊着电路板,抽空还低头看着腿上的《中医理论基础》,晚上报的PS培训班,周末还要学习推拿按摩。这么好学上进又温柔细心,用今天的话说,简直就是女神般的存在!但结婚之后,慢慢的发现她这些优点找不到了,同时她眼中我的问题也越来越多,生活越来越不讲究,甚至邋遢——胡子几天刮一次,从来不研究怎么吃穿得更好,也很少主动打扫家里卫生。

矛盾积攒多了,时不时就要小吵一把。算算结婚这一年,我们之间的吵架,大部分不是我懒于做家务,就是她不上进。我某一次的没打扫卫生、没做饭、没刷碗,甚至进家门没及时换衣服都可能导致一场吵架,而看到她光计划不行动、做事有头无尾、一边看房子一边抱怨贵却不研究怎么多挣点钱,却还有空刷韩剧,我提醒多了也会成为导火索。每次吵的时候如果我赶快去补上行动就能很快结束,如果我也生气不干,那就得大吵,最严重是她哭。有一次吵架后我们努力的理性分析问题所在,一致认为都是希望对方改变而无果。他觉得我不做家务就不像这个家里的人,我又不理解她白天还抱怨工作不挣钱,晚上还有时间刷韩剧,然后她给我讲什么宋仲基浪漫,我就说去海边赏月谈理想做规划那才是浪漫,他说谈理想是没长大的表现!我们的三观确实有很大不同,但能走到一块,大概是脾性都比较温和吧,想改变对方却不会太直接太强制,可以有很大协商余地。我曾以陪她看西方电影和老港片而换来让她跟我听交响乐、看科幻电影、以及了解佛教和素食文化。不过思维难改,记得有一次看《刘善人讲病》视频时,她说这个人的故事就是明显的误诊!这种交换维持得好就是双赢,甚至她还跟我学了几天的HTML和css,而我的代价是陪她看了一段时间的《欢乐颂》!平时我下班回家时她已经做好饭,吃完基本是我刷锅洗碗收拾厨房。周末我陪她逛商场,她陪我逛公园和海边,吃饭时往往她在肯德基点餐,而我从外面买来凉皮火烧之类的食物再一块吃。在家时除了必要的外出,她会研究一些吃的,家里有各种甜点、西餐的食材和设备,我对吃要求不高,只要不是肉我都觉得挺好吃。

去年她几乎和我同时找到的工作,内容是在医院做线上客服。开始还兴奋的背了几天生理病理知识,结果干了一段时间才发现领导总是培训他们怎么忽悠在线咨询的人到医院看病,甚至咨询者输入内容还没点发送时他们客服都能看到!我们都不看好这个工作,到了年前她又找了个卖酒的公司做运营和设计,经常晚上加班搞天猫淘宝京东的拍卖。我培训时住校,离多聚少的时候我们关系还挺好,但培训结束后天天呆在家里又完了。有天晚上,她看电视剧到更新的最新,实在无聊又找其它片子,我说真有时间学点对以后教孩子有用的东西也行。我来自农村,从小就被家庭和学校灌输的“知识改变命运”,“想要改变现状就得靠自己努力”这些思想几乎已经刻到骨头里了。想到岳母大人昨天来家时感慨我都不会修家具,但看到他们家庭缺乏学习的意识和氛围,还对学习没有一个正面积极的态度,我就把这个问题抛出来时,果然大吵一架!她就说自己已经做了多少家务,还不能有点时间看点喜欢的电视享受一下?这方面我是不会妥协的,但吵完后(只要她没吵哭)我会清净高效的学习,她也会自己去看看书。

七夕这天,我们准备去红屋吃西餐,我们每逢过节或纪念日都去。每次她吃牛排,我吃披萨或意大利面,但光这些不能吃饱,主要靠自助水果——我感觉比主食好吃多了。当我快赶到目的地的时候,她说他们公司领导硬把她叫去聚餐,还叫我也去。我们在一家以吃牛肉著称的店里吃火锅。他们老板是社会小哥起家的,现在做正经生意,人还不错,不过也是正宗酒鬼,酒桌上的话说的很在行。我也被迫喝了点红酒和啤酒,恶心了好几次终于吐了,实在不爽。大家除了讨论了点微信公众号运营和我不吃肉的的原因,剩下的全是酒话,还一直喝到10点多!回家后浑身不爽,一阵发冷,一阵发热,不停做梦……

到了8月底,岛城的早晚偶尔出现了凉爽,我们为了庆祝秋天的到来又去红屋吃饭,那个88元的素批萨仍然不够我一顿饭。想起我今天在网易云上听秦腔曲牌《柳青娘》的感觉,我跟老婆说我挂了后葬礼上要播放这个曲子。听着这些音乐,我就有一种回到家乡的感觉。

我远离家乡,在这边的亲戚也都是老婆娘家人。他们没有人从事跟电脑有关的工作,所以对于我的工作也比较陌生,总认为在搞电脑,也能修电脑,所以偶尔帮他们装个系统,或升级硬件什么的。有一天丈母娘说对门大娘电脑坏了让我帮着看看,重装系统就行,然后把指定的几个工具装上。我做了启动优盘直接给装了win7(当时win10刚出来还不流行)之后,发现系统找不到无线网卡。回想装的过程就有点诡异,有时不能自动重启,插插拔拔内存却好了。时间关系,我拍了网卡芯片,第二天下载了对应的网卡驱动来接重装,却在设备管理器中找不到任何有关网卡的设备。网络连接中除了一个宽带连接外没有任何本地连接。 安装驱动时, 提示网卡深度休眠什么的。重启后,出现了几十个本地连接,而且数量快速的增减,同时看到设备管理器不断的自动刷新,诊断无效。网查,需要在BIOS里打开相关设置,经过三遍寻找终于找到了这个选项,但原本是打开的。关闭再试,一样的提示,再打开,仍没反应。我将BIOS重置为default和最优也均无效。后又关机,取下cmos电池,放电重置时间,问题依旧。安全模式下尝试也不行!期间发现取电池和拔内存均和昨天一样有很大概率开不了机,主板都无法启动,昨晚已遇到几次,扒拉一下里面的插头什么的又好了。有时开着机,突然会整个卡死,键盘鼠标没反应。估计硬件有接触不良的现象。最终决定如果明天在官网下载个驱动还是不行的话,那就给找个无线网卡配上好了,幸好他家有路由器。第三天我还没去,大娘就来了,说电脑已经修好了。问原因,原来是这个无线网卡不支持win7驱动,换回xp系统就好了,她今天找了当时配电脑的人来搞的!我再去给把指定的几个工具软件装好,并演示相册导入等日常操作,这个事情才算搞定了!后来大娘还送了我一盒茶叶!
image

猜你喜欢

转载自blog.csdn.net/daoke_li/article/details/122295677