读书清单2016-02

读完的书

  1. 爱上跑步的十三周
    这是我拿来入门的第一本跑步书。整本书除了一些跑步的基本注意事项以外,就是在讲一个目标为十公里参赛项目、从零开始的十三周训练计划。我觉得新手拿这个入门很不错,我以前是一个完全没耐力跑100米就呼哧喘气的人,体力很弱,经过一段时间的训练,我现在已经可以用8公里的时速连续跑上十五分种也就是2000米,也能间断地在45分钟左右完成一个5公里。
    书中的精髓在于那个十三周的训练计划,基本原则就是跑->走间隔,慢慢不断拉长跑的时间、减少走的时间,同时拉长整体训练时间。开始的时候想想中学的长跑测验,不大相信自己真的能跟着进度在7周后能跑5公里,但事实上8周以后我确实做到了,并且全程没有遭遇受伤–虽然比原计划慢了一周,也比书中说的要慢很多–我大概花了1个小时。总之,不要勉强自己,尽量跟着书中的计划做,不要着急太过量,谁都能够跑起来。并且,书中除了计划以外的部分也很重要,一定不能跳过去,虽然有的地方不合国情,但领悟精髓、明白为什么这么做即可。
    因为我的目标是5公里而已,所以第七周后来的部分我完全没实践,而是重新开始了一个循环训练,提高自己的跑步速度。
    阅读全文 »

明天就除夕了,祝大家新年好!阖家团圆、幸福安康!
不过我对于过年还是没什么感觉,似乎就是一个普通周末。公婆也都来了,每天菜场、超市的,我却没进入状态,总想着我还有一堆bug和学习计划没完成呢!
前段时间不怎么顺,首先是去Apple申请了个独立开发者帐号,因为我新加坡和中国的各种信息混在一起,还有税单和银行的问题,跟Apple客服一直来往邮件,墨迹了好久。
然后是费劲周折提交了个新闻阅读器,审查了半个月说是版权问题,幸好一开始就只是抱着熟悉流程的期望值。话说对于新手来说,提交的坑实在是太多了……我对照着两个教程,硬生生上传了4个版本、cancel一次、才最终成功提交审核,个中曲折,原本打算上架后好好写一遍教程,现在只好写个“上架不成功踩雷指南”了。😂
最后,自己身体也似乎有点报警,现在每天起床后去健身房跑步30分钟(其实最多只能连续跑5分钟,几次间断加起来也不超过15分钟),坚持了两周,似乎有所改善。不由得感叹生命真的在于运动,对我这种万年宅来说必须要逼一逼自己,开始运动不能拖!
最后,之前提到的那个新闻阅读器,既然无法上架,那就开源吧。虽然我想对于我这样的新手而且是野路子自学的来说,写的code估计烂得不忍直视……纯手打代码,没用任何第三方库,因为是自用,所以会不定时更新,希望至少能帮到一点点比我更新手的新新手?不过APP所阅读的新闻源,是需要翻墙的……不啰嗦,地址:https://github.com/conanwhf/NewsReader
另外顺便开源一下我的家庭环境检测系统,用于树莓派,前几天把各个sensor的code做成库整合了一下,过几天准备加屏幕驱动,教程有空再写吧。初学python,也是在瞎玩玩,给新手linux玩家多一个参考:https://github.com/conanwhf/Rpi-envMonitor

新年祝好!愿所有人平安健康,幸福安宁!愿台湾地震的灾民尽快获得安顿、不要在流离失所中过年!🙏

这些小Tips为本人近期读书笔记,收集来自网络开发者发布的技术文档,并非原创,共享的目的是为了扩散分享技术,共同进步。如有侵权不得转载等情况,请联系我告知,谢谢!

  • 你可以在 Gemfile 中指定 cocoapods gem 的使用版本。
    source 'https://rubygems.org'
    gem 'cocoapods', '0.39.0'
    当你更新了 Gemfile 文件并且自动安装了正确版本的 gem 后,确保团队的每个成员都运行一次 bundle install 这条命令。此后,只需要运行 bundle exec pod install 这条命令来安装新的 CocoaPods——这将会确保通过你在的 Gemfile 中指定 cocoapods gem 的版本后,pods 仍可以被正确的安装。
  • instrument调试后,发现没被释放的全是imageIO,差不多就知道了,把读图的方式,从UIImage imageNamed:@”“,改成imageWithContentsOfFile,就可以了。问题原因:imageNamed读取图片的方法,会缓存在内存中,所以较大的图片,还是用
    阅读全文 »

对自己的拖延症也真是恨铁不成钢,这又是一篇拖延得快要放弃的文章。快过年了,怎么也不能拖到年后,打起精神,清空列表!

想要自己打造一个小小家庭环境监控系统,各种Sensor不可或缺。看了下大部分人在树莓派上都用Python, 我也来凑个热闹。Python果然是一种很容易入门的语言,我只是稍微查了下资料,半天时间,就搞定了好几个Sensor,当然只是最简单的拿数据什么的,但相比之下,虽然自己对于用C写这些协议很熟,碰到问题我也宁可去看看Python的语法也不愿意换C……Python的优势倒不全是语法简洁,最重要的是有巨量的开发库可以用。像这些简单的协议,全是把库装好,直接拿来用就可以了,看看代码量,简直让人不忍再直视C的代码。对于不用追求速度的玩票项目,相当适合。
这一篇先介绍几种最常用的基本协议的实现,老规矩,先上源码传送门

阅读全文 »

早上起床,从冰箱里拿了蛋糕出来,放微波炉转10秒,然后洗漱去了……等我一切停当出来一看,妈呀……我设的不是10秒是10分钟!!!😱 😱 😱 😱 😱一开微波炉,蛋糕烧成碳就不说了,那个呛!别提了!!!
开抽油烟机、开风扇、上网搜解救方法(各种橘子皮茶叶醋什么的)、总算感觉好点了。但是、这只是适应环境了的幻觉!午休后从房间出来,一屋子的烟味呛得我……😂 😂 😂 😂 😂无语,外面还下着雨,不能开窗通风,现在全屋开着空调净化器抽风机打字中……🤑 🤑 🤑 🤑 🤑 🤑

新闻App通常是有个新闻的列表,这个列表一般都用TableView来做,每个Cell显示一条新闻,如下图:

在我做的时候,开始Cell是直接从控件库拖到StoryBoard里面,配置了一点东西就OK了:当Cell的Style设成subtilte时,标题、副标题、以及图像都是可用的,在cellForRowAtIndexPath里直接配置就行了:

但这样做了之后出现一个问题:新闻配图是从网络获取的,长宽比和大小并不固定。在这种做法中,图像是以高度而不是宽度统一对齐的,也就是经过缩放后变成统一的高度适配当前Cell,再显示出来。这样一来,每个Cell里的图像宽度就参差不齐,很难看。我尝试了很久也没能解决这个问题,看起来无论怎么对Cell.image进行配置,也是无效的。折中的办法是事先修改图像的长宽比,但这不是我想要的效果。于是,只好尝试TableViewCell的自定义了。

阅读全文 »

这礼拜都在玩树莓派,Xcode都几乎没打开过,该收收心了。OmniFocus里攒了一堆已过期的待办,feedly也有好多未读,都又到周末了,先把上个礼拜留下来的几个准备写的Topic写了吧。
关于UIView的旋转,踩了一个小坑,看了看也没人说过。大家都知道使用.transform可以做旋转,用起来也很简单。在我的UIView Demo中(见上周BlogUIController中Slider监听回调具体实现的分离),我也添加了旋转的功能,开始是在handler中这么写的(back是一个UIView):

let x = (Float(ctl.show.frame.width) - conf[0] )/2
let y = (Float(ctl.show.frame.height) - conf[1] )/2
back.frame.size = CGSize(width: CGFloat(conf[0], height: CGFloat(conf[1])
back.frame.origin = CGPoint(x: Int(x), y: Int(y))
back.transform = CGAffineTransformMakeRotation( CGFloat(Double(conf[7] * M_PI  / 180.0))

前面几句修改大小和位置,最后一句做旋转。没添加旋转之前缩放和位移都是对的,添加了旋转之后效果却不是我想象的那样以图形中心为圆心转动,而是这样有时候会自己拉扁的:

阅读全文 »

说到交叉编译工具,真是血泪史。搞了快两天,才终于迂回搞定。老规矩,先放Script传送门build/build-toolchain.sh
一开始我以为这东西用的人多,交叉编译工具应该不是事儿,去官网下一个就行了,可是我去GitHub一看,这toolchain最近的更新也是三年前,这……能用?先下载吧,同时各种搜,感觉我没有走错地方,大家就是用的这一款!
可是我忘了我是OSX。不出所料,在我的电脑上跑不了。而且看了下这个toolchain还是给ARMv6编的好吗,现在明明就是ARMv7了!这么跑性能不受影响吗?更让我无语的是板子上的gcc也是ARMv6的……😰编译个内核什么的那么慢,官方的toolchain又不能用,自己编译势在必行。
又是一通各种搜,搜到了个别人2014年编译的mac用toolchain,试了试,普通的程序没问题,编kernel编不过。搜到了个比较详细的在Mac上编译的blog,可惜也是几年前的,跟现在的环境不一样,各种出状况又goole解决,最后还是编译crosstool不成功。可能这一两年,不论是crosstool,OSX,还是GCC,都已经又改了不少吧。
最后,我放弃了,毕竟还是要做iOS开发的,不敢随便乱sudo,还是上虚拟机吧。竭尽全力把所有能删的都删了,看看剩余的18G空间(128G MBP你懂的),哭着做了个Debian的虚拟机……为了节约,GUI都不要,命令行的最小系统。后来还是吃亏在这上面了,编译到一半空间不够,临时扩展磁盘,fdisk,format,mount,ln -s😞所以,根据我经验,不管在哪里,请至少至少至少准备10G有效空间!!!(12G是我调整后整个虚拟机大小,最后还剩了2G;如果系统已经有了,那free space至少8G)
废话说完,正经操作其实不多,主要就是装一个神器crosstool-ng,配置好,然后交给它编译交叉编译工具就行了!具体如下:

阅读全文 »