利用 WeakReference 关闭守护线程

不要让 this 在构造期间逸出

《Java 并发编程实战》中有这么一段:

不要让this在构造期间逸出。

原因很简单,因为如果在构造期间创建了一个新线程并把this传递给新线程,this还没有准备完毕,新线程如果提前使用调用一些数据的话可能会有未知的错误。具体的错误和JVM的实现有关,可能大部分情况下没问题,但是一旦有了问题,你恐怕找都找不到。

参考:

小米手环评测

坑爹的咕咚手环

自从买了咕咚手环后一直对其他手环念念不忘…

因为咕咚的太难用了!罪证如下:

  • 待机时间只有4天
  • 固件从来不更新
  • 软件基本没更新过
  • 只支持iOS,Android手机明明也有蓝也4.0,可以连接但是同步失败
  • 材质感不好,略丑,搭扣很容易松
  • 不防水,不能带着洗澡

可惜别的手环太贵,直到小米手环到了…

Mac OS 中使用QQ域名邮箱

Google 被墙之后

Google 被彻底墙掉之后,最不方便的就是手机端的邮件、联系人和日历的同步了。

电脑上可以翻墙,手机上没买 VPN,也不想手机一直开着 VPN 啊…

寻思了一番后,发现国内目前做得比较好的也就只有QQ邮箱了,对应的功能全部有。

WordPress 迁移 Github Page + Jekyll

关于这次迁移

为什么迁移

博客写了5年,最烦的就是维护 WordPress 了。WordPress 的写作体验实在是太糟糕了,而且后台非常卡!

近几年 git 兴起,也衍生出了 Markdown 这样最适合程序员的写作方式。另外自己在一年内从 Windows 脑残粉变成了 *nux 脑残粉,更喜欢在 Bash 下干各种事情了。

所以趁阿里云过期之际,顺便把迁移这事做了。

恩,Github Page 是免费的!每个月立省 70!

为什么不迁移

Github Page + Jekyll 的方案很早就有了,我为什么到现在才迁移呢?

其实之前也考虑过,但是主要是遇到了如下难题:

  • 之前的文章是以 html 的形式存在数据库的,怎么做迁移?
  • 分类和标签怎么迁移?
  • 之前的静态资源怎么办?
  • 博客的 URL 会变吗?
  • 评论怎么办!

只是很久之前遇到的问题,今天回头看看发现,各个难点都有了很好的解决方案了。

所以这里给大家介绍一下~

Netgear3700v4 PK 小米路由器 mini

入手小米路由器 mini

小米路由器 699 版开放购买好久了,但是家里已经有了主路由,NAS 什么的也都搭建好了,没有必要再买一个。

这次 mini 版开售,终于买了一个,主要是想看看传说中的高性价神器到底怎么样!

 

参数对比

型号 价格 CPU 内存 无线 有线
Netgear 3700V4 499 Atheros AR9344 560 MHz 128MB 2.4GHz/5GHz 11a/b/g/n 1000M * 4
小米路由器 mini 129 MT7620A 580MHz 128MB 2.4GHz/5GHz 11a/b/g/n/ac 100M * 2

 

表格一列,一目了然。

论性价比,小米无敌,但是 mini 版的有线是硬伤!无线那么强大,有线竟然才 100M,应该还是处于成本的考虑吧。

但是实测下来怎么样呢?人家 TP 的参数也是很高的哦,实测才是硬道理!

电信光纤猫 HG8245C 破解

HG8245C

搬家后最痛苦的一件事就是,电信新版的光纤猫不能破解!所以不能从 NAT 改桥接让路由器直接拨号。

我也时常去网上搜搜破解教程,最近终于在淘宝找到了!最终花了60元找人远程搞定。

卖家人不错,我也帮忙推荐一下:http://item.taobao.com/item.htm?id=38921723002

git reset 在持续集成系统中的问题

持续集成

公司用上持续集成后开发效率大大提升,提交代码以后就会自动打包部署,分分钟见效!

所以自己在做东西的时候,也搭建了一套类似的环境。但最近却遇到了一个深坑。

 

reset and revert

git 中的resetrevert是两个非常有用的命令,它们的细节不是本文的重点,简单的总结一下:

  • reset可以让commit回退,就像从来没发生过一样。
  • revert可以自动生成一次完全相反的commit,以撤销之前的操作。

这次遇到的坑来自于reset,因为reset看似是一个时光机,但是有些情况下是无法抹去了。

点评校园极客大赛

极客世界杯

上周日,点评校园极客大赛决赛结束,我作为点评小伙伴带了两个小团队,原则是不写代码,只做指导。

一场比赛下来,我带的两个队出现了很大的差异。Hackathon 参加过不少了,但是这是第一次以旁观者的角度参与。

感悟很多!

利用 git 共享 Home 目录下的各种配置

为什么是 git

工作的时候,常常在 Mac, Linux 和 Windows(Cygwin) 之间切换,它们都是 *nix,很多配置都是可以共享的。

例如.zshrc, .gitconfig, .tmux.conf 等等。

公司回家后用 Windows(Cygwin) 办公,很多配置和 Mac 不一样,非常不顺手,但是又怎么同步能?

最难的是,它们虽然大致相同,但还是有一些不同的!

使用 Application Cache 后在 iOS7 中出现的 bug

history 对象失效

最近我们的站点准备正式上 Application Cache 了!

但是在测试的时候发现了一些问题,history.back()方法好像有点问题,history.length也永远是1。

后来搜了一下,找到了一篇文章:iOS 7 Safari: Features and bugs HTML5 developers need to be aware of

里面提到了:

If your app uses AppCache and you are managing state via hash or other mechanisms, the history object will never update, disabling history.back.