大三下学期总结

有些个文章总得写。 大三下过的实在是充实到不能更充实。课程是一方面,工作室是一方面,当然这两方面就足够我应付的了。偶尔在加参加个什么比赛,日子就过的浑浑噩噩了。 再加上大三下,不能保研又不能出国,上课自然而然就显得开始放荡不羁。每天泡在电脑跟前的时间实在是创下了新的记录。我的很多改变来自于工作室,工作室也有很多改变来自于我。这是后话。 其实大三下是成长比较快的一学期,因为之前的一年半在工作室和学长创业,实在是见到了很多让人觉得心中有力又不知道怎么去表述的感觉。长期的外包做的我每天除了哭累还是哭累。以至于在工作室的时候隔三差五就和琪姐说不想干了。 但是痛苦总是让人可以有很多蜕变,经历过很多委屈很多不开心,会开始认清这个世界残酷的一面。你愿意掏心掏肺跟着别人干,别人可不会这么觉得,你是下属,就是要压榨你。当然我相信这是个例。当然我希望现实社会这也是个例。 技术上也是一样,经历了一年半的外包,几乎是全靠自己不断的琢磨,开始逐渐找到正确的学习方式,也开始把自己的一些弯路给小学弟们分享。这也是后话了。 很久没去做管理才发现自己这方面的才能需要更多的去锻炼了。这学期买了kindle,看了很多书,这一点是这学期非常满意的,看了很多书对自己的各方面都是一个提升的过程。后面这一块也是需要加强的。读书不只是会让个人能力提高,还可以对很多事情的看法产生一个新的理解。 学习上实在是没啥好说的。这学期精力大多放在工作室上,除了自己学了Swift,参与了T沙龙之外,技术上说实话实在是没有什么提高。倒是各方面都涉及了一点,作为工作室负责人,你不得不去从前端会到后台再到两个客户端。包括我一直很想学的Haskell,这学期也重新捡起来开始学了。暑假也学了一部分。 这学期还开了公众号,在写作上重新给自己定了目标。也算是大学后面的一个目标。不靠技术吃饭,靠写文字吃饭。如果能做到我会很开心的。 后面的打算,逐渐打算转方向,计算机的一切,最终都来源于更高深的理论基础,所以后面的重心会更偏向理论一点。 之前都是感谢信安1班,这学期很好的是,我们每周都会一起打篮球,没事窜寝室闲扯。大家一起锻炼总是好的。这学期几乎是跑了一学期的步,也是我很值得骄傲的一点。 这学期还要感谢工作室的小学弟们和小学妹们,尤其闫哥琪姐还有金尼。因为我可以自豪的说,我们工作室出了一个搜狐,一个腾讯,一个百词斩,都和我有关系,哈哈。他们的努力是必然的,我的协助也是有一定帮助的这不能否认。 在工作室看到很多小姑娘总是好的,枯燥的生活总得有点色彩。小学弟们也很努力,至少我现在可以比较放心的觉得工作室不会死了。这也是后话了。 总之。 这一学期实在是充实的让我觉得瞬间就没了。 依旧。 各种感谢!深鞠躬!爱你们!

八月 22, 2016 · 1 分钟 · Me

Huginn 安装备注(持续更新)

安装准备工作 Huginn 的官方安装指南全部步骤已经经过测试,建议安装时直接复制官方所提供的指令进行安装。如果遇到问题,请查看最下面的 错误解决方法。 对于大多数服务器来说,由于配置不够,基本都会出现 “Cannot allocate memory” 问题,也请查看 错误解决方法。 1. 需要在开始的时候设置主机语言 如果不设置主机语言的话,会在后面有很神奇的错误。设置主机语言的命令是 export LC_ALL=en_US.UTF-8 (需要设置中文自行 google,可能这样设置还不够..最好查一下怎么设置语言) export LANGUAGE=en_US.UTF-8 2. 需要设置时区 不设置时区抓取的时候时间会有问题,不过这一步问题不大。命令如下。 sudo dpkg-reconfigure tzdata 在Huginn官方的安装wiki中,其实有很多安装问题没有具体列出,我在上一篇博客中做了一些总结。在这篇博客中,我会做成一个安装问题的集合。以方便各位的安装。 官方 wiki 部分修正以及注释 1. 官方最开始有一步 Import node.js repository… curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash - 这一步官方用了脚本执行,可以不复制那个 curl 开头的,新版本的 nodejs 安装只需要用 apt-get install nodejs 就可以了。 因为官方在后面 Install the required packages 中有 nodejs 的安装,所以 Import node.js repository 这一步其实可以不去做。 2. Install Init Script 在这一步中建议直接把 # web: bundle exec unicorn -c config/unicorn....

八月 10, 2016 · 1 分钟 · Me

让所有网页变成RSS —— Huginn

如果你不知道什么是 RSS,赶紧去查查是什么然后用起来吧,相信我,用了就再也离不开了。 我是一个重度 RSS 使用者,一般来说,我获取信息有微博,微信,邮件,还有就是 RSS 。每次打开 Chrome 之后第一个打开的就是 Feedly,看看有没有新的内容更新,省去我了一次性打开多个网站的麻烦。但是问题来了,有些网站没有 RSS 怎么办? 前几天在利器的群里,看到有在讨论一个叫 Huginn 的东西,一个叫祥子的朋友还很热心的给大家解答一些关于这个的问题,我稍微查了查,发现这个东西可以解决我一直的一个痛点,就决定花时间来倒腾一下。 Huginn 是一个 Github 的开源项目,已经上万 Star 了。简单的说这个东西是一个 IFTTT 形式的东西,可以把所有网页转换成 RSS 输出。更简单的说,就是工作流形式,类似于 iPhone 上的 Workflow。 安装 安装有很多的方式,官方提了有 Heroku,docker,还有服务器。 祥子专门写了文章介绍怎么利用 Heroku 来安装。Huginn安装教程—建立你自己的IFTTT,写的非常详细,需要的可以去看这个。 我是用我日本的 vps 来搭建的,但是由于官方的文档实在是太详细了…导致我想写安装发现没啥好写的,我就把遇到的几个问题略微叙述一下。 官方文档安装教程地址 坑1. 官方最开始有一步 Import node.js repository… curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash - 这一步官方用了脚本执行,可以不复制那个 curl 开头的,新版本的 nodejs 安装只需要用 apt-get install nodejs 就可以了。 因为官方在后面 Install the required packages 中有 nodejs 的安装,所以 Import node.js repository 这一步其实可以不去做。...

七月 15, 2016 · 2 分钟 · Me

Mac状态栏Hack

依旧是一篇探究 Mac 软件原理的文章 前几天在用小历的时候,发现了这么一个功能。 选择之后,小历会从这样变到这样。 然后我就开始想这个是怎么实现的,这里我们必须要对比一个软件,卖了105.88人民币的著名 Mac 状态栏管理软件 Bartender 2。 在 Bartender 中有一个功能,你可以按住 ⌘ 之后点击图标来拖动来改变它在 Mac 状态栏的位置,就像这样(看网易云音乐)。 如果 Bartender 可以的,那为什么小历不能这么做,这样的话用户体验不是更好吗?于是开始了一轮疯狂的 Google 和 Stackoverflow 。 结果结论是,在老版本的 Mac 操作系统中,是默认支持 ⌘+ 图标改变位置的,但是在 10.11 中,这个功能被取消了,只有使用 Bartender 来改变位置。而在 Apple 给出的 API 中,没有可以改变状态栏图标位置的方法。那么 Bartender 是怎么实现的,小历又为什么不能实现。之后就是接着查。 经过不断的改变关键字..在某一个 Stackoverflow 中发现了一个叫做 NSMenuExtra 的类,这是私有的 API ,在这个方法中,可以实现 Bartender 中的那个改变位置的效果,但是如果使用了苹果私有的 API ,应用是不能上线到 App Store 的,小历上线到了 App Store ,说明没有用到私有 API,之后我就一片混乱了… 无耐之下,我在微博上给小历的作者发了一个私信,没想到很快小历的作者就给我回复了!他给了我一个 Github 的地址,NSStatusBar-MISSINGOrder 之后我看了一下,正如作者所说,是构造了一个 Selector,但实际上是用 Hack 的方法调用了两个方法 - (void)_insertStatusItem:(id)arg1 withPriority:(long long)arg2; - (id)_statusItemWithLength:(double)arg1 withPriority:(long long)arg2;...

七月 9, 2016 · 1 分钟 · Me

成都T技术沙龙小记

耽误了那么久才开始写,因为连续考了三天试..那天晚上和坦坦回学校的时候朋友圈发了好长一截,我怕我忘了..闲话少说,开始记录一下吧~ 总体给我的感觉,很赞,真心很赞。这算是我第一次参加技术沙龙,Swift的。 时间是上周日,19号。我和坦坦,下文统一为蛋哥。我和蛋哥约在活动中心见面,然后打uber去了天府软件园。去了之后和蛋哥一起吃了KFC,然后就坐在那等蓉姐和肠叔。其实之前和蛋哥有过交流,后来蓉姐来了。我简直就是作为一个记者一样,对蓉姐进行了一个采访,从蓉姐学iOS到工作,问了个遍,下次可以带着录音笔,出个采访稿也是不错的。 首见蓉姐 蓉姐为啥要单独提出来说?**因为蓉姐是一个做iOS开发的女孩。**对,女孩.. 蓉姐和我想象的完全不一样,蓉姐作为一个女孩写iOS,我心里是很佩服的。我从来没有看不起女程序员,我是超级佩服。因为工作室很多学妹在学习编程上都存在大大小小的问题。所以我也问了蓉姐很多问题。蓉姐也超级耐心的和我解答。 蓉姐大三开始学iOS,现在在做智能玩具。我看了蓉姐的博客,写了一个蓝牙的系列,很nice。我还咨询了蓉姐一下iBeacon的问题,蓉姐说其实原生的api其实足够,但是蓝牙也有很多坑。蓉姐还做过php,大一学了c语言之后就做编程了。 蓉姐大概还是个摄影爱好者,相机和脚架很齐全,我很佩服。蓉姐说她在深圳的公司的时候压力很大也坚持下来了。总之,和蓉姐简短的聊天,除了佩服就剩佩服了。有那么一点女汗子的感觉,蓉姐的经历可以让我以后和工作室的学妹说,编程,从来不是难事,是努力可以做好的事情。 我和蛋哥蓉姐回合之后就去了camera360,沙龙在camera360举办,环境超级nice。我很喜欢那里的办公环境,理由很简单,我进去就看到了运动器械…跑步机瑜伽球乒乓球桌投篮机一应俱全。 之后就一起排了一下座位。等大家到起齐就开始了。 畅叔开场 稍微介绍一下畅叔。畅叔是帮主的大学同学,帮主就是T沙龙的总司令梁杰,梁杰是跨界网红。畅叔之所以叫畅叔就是因为畅叔年级轻轻看上去好老…是真的。当然畅叔也是跨界。 畅叔先是感谢了泊学的赞助~还有camera360的场地提供。 畅叔先是大概介绍了T沙龙的起因以及T沙龙的形式。T沙龙真的要开遍全国,每个月举办线下的沙龙。最重要的是,非盈利,不收费,非盈利,不收费,非盈利,不收费。重要的事情我要说三遍。(偶尔私心一下..必须宣传) T沙龙已经成功的在北京举办了很多次。像巧大啊,还有臧成威啊,还有虾神,还有sunny神都参加过,总之就是,非常成功。 T沙龙真的是要把热爱Swift的人聚集在一起,分享,交流。 成都这是第一次,当然组织者就是畅叔,蛋哥,还有蓉姐,我是打杂的。 之后,大家自我介绍了。其实程序员是个很开朗的职业,很能扯,很多好玩的。所以大家的自我介绍也很开心欢乐,之后就开始分享啦。 从零开始写一个Argo —— ThoughtWork方志刚 必须要先隆重的介绍一下方志刚。我科大的学长,和蛋哥一届的。但是现在一看,蛋哥仿佛被完爆了… 方志刚分享的是从零开始写一个Argo。Argo是一个解析json的三方库。方志刚采用的方式是..VNC..!!就是远程操控了投影的电脑,然后现场一步一步写来展示整个的过程。 这种形式我是服了。(十分后悔没有用电脑记录一下…现在写这个实在是费劲,想在技术上记录点东西都没机会..) 开始的时候实现了一个简单的parser,然后逐步完善功能。 针对Argo可能存在的一些问题进行了解决。 开始的时候是利用Swift的函数式特性先写了一个简单的parser。之后在此基础上进行了完善。然后写了一个Functor..到这其实我已经有点晕了。不过后面活过来了。 但在此基础上调用方法的话还是显得复杂,于是方志刚用了Swift的运算符重载..用这种方法对方法的调用,只需要用重载后的运算符就行了。 当然,在写的时候可能会出现参数过多的问题,这是camera360的高山问的..之后方志刚推荐了一个很赞的库,curry,对就是库里..在函数式编程中很重要的一个概念,科里化。利用这个可以无论多长的函数都可以。高山说,在RAC中,写了很长的宏,宏…… 之后,就是如果我们在写的时候出现"user.name"这种情况的时候,怎么让我的parse可以解析到后面的name。如果在haskell中,foldl,我没记错是这么个函数。用这个函数可以获得最后的那个字符串。 方志刚提到,由于在Swift中没有foldl,所以我们先reverse一下,然后在解析就可以了。厉害。我是服了。 之后的茶歇时间,之所以我后面这块记得那么清楚,是因为我在茶歇时间和他交流了一下..方志刚人很nice啊,我问最后reverse的时候他超级耐心的和我解释了,他一说foldl我就明白大概了..我还问了运算符重载在haskell的地方,他说他不知道,我问他学过haskell没,他来了一句,我都是用到再查…当时就跪了,瞬间智商碾压啊。我TM按顺序看都看不懂啊!!人家就直接stackoverflow查给我看了。他还问我是不是学过,有个free monad的概念很烧脑…我说我没学过..所以我准备后面几天学一下然后下次有机会当面再交流一下monad。 包括茶歇时间听蛋哥和许国卿和TW的另一外工程师官勤交流了一下函数式在生产环境里的使用,真的是,受益匪浅。 Rethink NSNotifucation in Swift —— Camera360高山 高山是camera360的iOS开发工程师。**我科大学长。**他分享了他在平时开发中对于回调,通知,这些使用的一些心得,同时分享了他们团队利用RAC来代替这些的方法。 虽然没有方志刚那种现场写代码的感觉,但是还是有很多收获。 之后高山提出了关于RAC的一些问题我们讨论了一下,觉得还是很棒的~ 茶歇 茶歇之所以单独提出来,是因为我们买了奇葩饮料…陈佳因为来迟到了,喝了崂山🐍水。我喝了,难喝死了。 茶歇各种闲扯交流,也是受益匪浅。 wwdc讨论 畅叔和蛋哥在嘉宾分享之后加了一个环节就是wwdc的讨论,因为前几天才开了wwdc..由我开头,我之前写了一片博客,提到了apple逼死了一波软件。之后又提到了ipad上的swift playground..我说我觉得那个好鸡肋,本来准备买ipad的都不打算买了。我刚说完。陈佳拿出iOS10的ipad说没有那么坑。 然后大家就开始围观playground啊!!我们用quicktime把ipad投影出来,然后方志刚在ipad上写了几段代码。当时那种感觉,就是,我可以考虑买ipad! 因为当时觉得就是一个给娃娃学编程的软件..现在发现还是有实际用处的,可以写动画,而且苹果把Uikit都给封装进去了。非常的nice。 如果不是陈佳,我就真觉得苹果坑了。 之后蛋哥说了他看的session,提到了最新的Session 219 What’s New in UICollectionView in iOS 10。就是苹果官方对collectionview进行了优化。Session 414 Using and Extending the Xcode Source Editor。Xcode提供了更加的强大的编辑功能!蓉姐还提到了Session 406 Optimizing App Startup Time....

六月 23, 2016 · 1 分钟 · Me