读完的书

  1. 术与道:移动应用UI设计必修课
    家里人这次过来帮我带了不少实体书,这就是其中的一本,亚马逊双十一打折时候买的。整本书内容很少,图特别多,用零碎时间翻了两下就看完了。开始的时候,即使是小白如我也觉得作者在凑字数骗稿费,后来慢慢地看出一点点门道,关于APP设计的思维和规范,虽然书里真的没讲什么,都是基础得不能再基础的东西。不过作为一个一点都不懂设计的开发人员,看完以后有一点点入门的感觉。我猜人家的受众也就是定义在刚毕业啥都不会的菜鸟设计师,作为一本教设计的书来说肯定不合格太简单了,但是对我倒是有点正合适。准备下回写APP的时候认真地按照书中讲的设计规范来做事,也算是没白看。
  2. 金融的解释:金融学二十九讲
    这本书是早就定下的书单,跟着那本斯坦福极简经济学的,先读读经济原理,再搞清楚金融运作。它经常出现在各种推荐书单上,我原本抱有很大的期望,但也许是珠玉在前,一读之下,有点失望。此书的前面三分之一部分也是讲经济的,后面才引申到金融。跟极简经济学那本相比,明显少了一种脉络感,让人有种盲人摸象无法领悟整体的感觉。同样的内容,这本书就更像是拿教科书来扩充讲解一下,读完了还是有点模模糊糊无法抓住重点;而斯坦福极简经济学则会把经济学中各种概念的因果关系和相互影响的线索讲得很清晰,读完心中自成体系。
    阅读全文 »

整体感觉

我已经有个KPW3,携带方便,其他方面都挺满意,就是觉得屏幕小了点。大屏电子书可选择的太少,我的要求一是要屏大,二是要能看的格式多(我对PDF要求并不多,我的书基本上以azw3&mobi为主,少量epub&pdf),三是不要太重(不能超过iPad),这三条综合下来就已经淘汰了大法、DXG,最终选了静境,带电磁书写款,总价2399。
整个静境电子书的大小比普通的教材书籍略小

阅读全文 »

读完的书

  1. 黑客
    一本常常出现在IT人书单上的书,然而我却没有看完。从晶体管时代开始,讲述那些以改进系统为唯一目标的天才程序员的故事。也不能说不好看,作为技术人员来说,过去那些事还是挺有意思的,比如思考一下如何用蜂鸣器做出音乐效果而不只是节拍,或者考虑最初的三个CPU指令应该是哪些,要不就是想象怎么在一个资源少到极限的系统中做调试器……这让我每每翻开这本书就有一种很纠结的心情:一方面看得实在是太慢了,大部分地方读起来也挺无聊,感觉不知道啥时候才能看完;另一方面偶尔有点思维体操的惊喜感,又让人不是能那么决绝地放弃这本书。最后我在看到大约三分之一的地方还是半途而废了,确实书里讲的东西离现在太远了,描述也蛮枯燥的。剩下的三分之二我大略地翻了翻,然后看完了后记以及2010年kindle版上市时的后后记。
    阅读全文 »

读书清单2016-02

读完的书

  1. 极简投资
    小白入门书,不过里面讲的投资理念我觉得很好,确实适合懒人以及没投资天分的人,比如说我。后半部对万能险的推崇有做广告的嫌疑,毕竟是出自某商业刊物吧,目前来说万能险肯定是不适合了,P2P也很危险。不过无伤大雅,核心是理解极简投资是怎么一回事,而不是具体该投哪些项目。总结一下,极简投资的核心就是分散、中短期的投资方式。分散指的是将资金分散在几个尽量不相关的方向上(如股市龙头股、债市等),注意是方向,不是单一股票而是指数,这是为了均摊风险,东边不亮西边亮;中短期投资一般就是一年,为了减小市场和投资者心理波动所造成的损失,用长期收益抵消短期浮亏。从数学上来说,极简投资并不是最优投资方案,却是相对来说较安全且兼顾收益的稳健投资方案。

    阅读全文 »

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

  • 不管你在哪个线程注册了 observer,notification 在哪个线程 post,那么它就将在哪个线程接收
  • 数据缓存方式选择:
    1. fmdata数据库(增删改查) –数据需要:增删改查
    2. coreData –数据需要:增删改查
    3. 序列化(NSUserDefault) –状态、偏好设置、默认选项
    4. 单独.plist –列表数据,城市信息等
    5. 单独.json文件 –页面列表数据
    6. realm框架(增删改查) –数据需要:增删改查
  • 清除签名文件 删除签名文件 清理Profile文件:Xcode - Preferences - Account - View Details,这个时候左下角有个刷新图标,点击一下就可以了
  • TableView头视图不随视图移动,头视图出现错位的错误原因:tableView的 UITableViewStyle 没有明确的声明。解决方法:在tableView声明的时候明确为 UITableViewStyleGrouped
  • ViewController生命周期:
    alloc -> initWithNibName -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> dealloc
    注意1. 不要在loadView中调用父类方法super loadView,因为这会影响CPU性能。
    阅读全文 »

MacBookPro的硬盘太小,前几天买了个128G的U盘想装好系统在虚拟机里引导,以节省日益膨胀的虚拟机文件占用的空间。我同时需要Mac、Win、Linux,买不起大容量MBP,天天寻思着删东西,实在是伤不起啊!😭预设的目标是要把Win和Ubuntu都装U盘上,而且支持在我的旧笔记本、Mac、虚拟机里都能正确引导,同时还要有一个数据分区,能在所有的系统中正常识别为U盘。为此,我狠狠研究了一通分区表,被各种缩写和规则搞得头昏脑胀。看看网上的东西也是常有错误,趁着还没忘光,自己梳理一遍吧!
声明:本文为作者(Conan)原创,转载请标明出处

GPT和MBR

首先当然是这俩,一切都源于此。最重要的信息是:他们都是分区表,一种用来表示硬盘分区信息的格式,不太严格地说是一个软件概念。啰嗦一句分区表是干什么的:在操作系统启动之前、硬件初始化之后,确定从硬盘启动的话,需要获得硬盘分区的基本信息,那就需要分区表了。分区表不只包含硬盘的分区信息,也包括一个很小的最基本的引导程序,用到引导第二阶段引导程序,如NTLDR、BOOTMGR和GRUB等,这些第二阶段的引导程序,是需要针对每个分区进一步读取数据才能获得的。

MBR

全称主引导记录(Master Boot Record),又叫做主引导扇区,位于硬盘的第一个扇区主要分为两个部分:引导程序和分区结构表。有时候也将其开头的446字节引导程序特指为MBR,其后是64字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。因此,在使用“主引导记

阅读全文 »

在树莓派上做开发,难免会弄出各种版本的系统,加上有时候还需要拿给客户自己烧录或者demo,总是要clone一下TF卡,做系统做到烦躁。于是想想有没有什么办法能做跟官方release一样的烧录img出来,基本要求就是全系统克隆,但做出的img跟卡的容量无关,只跟系统占用的存储大小有关。

简单全卡备份

其实如果只是简单备份,可以直接将TF卡插入Linux电脑,用dd命令来备份和恢复(设备号不固定这里只是例子,还是用fdisk -l先查看一下比较保险):

# Backup the system to img file in Linux
dd if=/dev/mmcblk0 of=raspberrypi-bak.img bs=1M
# A little difference if Mac
dd if=/dev/rdisk2 of=raspberrypi-bak.img bs=1M
#
# Restore system from img
dd if=raspberrypi-bak.img bs=1M of=/dev/mmcblk0
# Or in Mac
dd if=raspberrypi-bak.img bs=1M of=/dev/rdisk2

不过这样做,16G的卡哪怕你只用了1G,整个备份文件也有16G,占用空间耗时间是小事,想想拿这么大文件给客户不方便,也显得太不专业了。
在网上搜了一下,已经有朋友先行做过类似的事情:树莓派 Raspberry Pi SD卡系统备份与还原,看了一下按照他的步骤实践了一遍,但出现了一些问题,折腾了很久最终才解决。

RaspberryPi的文件系统

首先介绍一下RaspberryPi的文件系统。树莓派的官方系统是基于Debian的,主要是两个分区:启动分区boot和根分区。boot分区为fat32格式,挂载在/boot,存放一些系统启动需要的基本文件,包括内核、驱动、firmware、启动脚本等;根分区文件系统是ext4格式,挂载于/,存放一些安装的软件和库文件、系统配置、用户数据等等;另外当系统启动时会自动生成和挂载一些必要的其他文件夹,包括temfs、sysfs、proc、debugfs、configfs等(使用mount可以看到他们),这些都是虚拟文件系统,由操作系统自动管理,备份时不需要关注。日常使用时,修改的文件包括安装的软件都是在根分区中,而如果自行编译内核,需要更新的文件都在/boot中。
所以备份一个系统,实际上是要备份这两个分区,官方发布的烧录镜像,也是包含了这样的两个分区,并保证通过dd的操作,能将其完整写入目标TF卡。首次烧录完毕后,不论你的TF卡容量为多少,启动后的boot和/分区大小都是固定的,然后可以使用raspi-config来扩展根分区的大小,boot分区不变,来达到使用所有卡内容量的目的。
相对应的备份步骤,大致为:创建img,把img当作一个磁盘分区和格式化,mount各个分区,将文件备份至对应的分区中,umount分区结束备份。

目标备份文件的创建和分区

既然是备份到文件,那么首先需要创建一个备份文件,并且把这个文件看作一个虚拟设备,对其进行分区。

阅读全文 »