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.

零宽度空格

看不见的空格

空格看得见吗?空格本来就看不见… 但是一般的空格起码可以选中!

最近一个礼拜内竟然被这个零宽度空格坑了两次!

 

什么是零宽度空格?

它是一个Unicode字符,它是一个空格,它没有宽度!

什么叫没有宽度?就是如果2个字母之间打了一个零宽度空格,你是看不见任何东西的…两个字母还是会挨在一起。

而且坑爹的是,就算你用的是等宽字体,它也看不见…

禁用 RestTemplate 的自动重定向功能

Cors Proxy 该不该自动重定向

上篇文章 我用 RestTemplate 实现了 CorsProxy 功能,项目上线后在实际使用的时候遇到了一个很坑爹的问题。

  • Client 通过 CorsProxy 请求了一个页面
  • CorsProxy 收到请求后,自己去重新请求目标页面
  • 目标页面返回了 302 重定向
  • CorsProxy 收到后自动消化了这个重定向
  • 但是在处理 Location 的时候,这个 Location 的 URL 包含一个空格
  • CorsProxy 抛错

场景是这样的,那么这里有2个问题。

利用树莓派组建支持迅雷离线下载的NAS

小米路由器

最近小米路由器火了,说实在的,这配置拆开卖每个都要699这个价格。

支持AC双频的路由器就要将近100了,一个IT硬盘起码400,一个支持迅雷远程下载的 NAS 又要将近1000。

其实这些东西成本真的那么高吗?

路由器+硬盘,这价格是实打实的,就值这个价。

但现有的那些 NAS 真的有点水啊,所有相关的软件在 Linux 和 Windows 下都有开源免费的。

有点技术的都可以把家里的二手电脑打造成一个 NAS。

家里没有二手的破电脑了,而且破电脑很费电… 那就用树莓派搞起来吧!

利用 Spring MVC 和 RestTemplate 实现 CorsProxy

CORS PROXY 是什么

跨域的问题大家应该都知道了,ajax 请求是不能直接调用另一个域名下的接口的,虽然 jsonp 可以解决一定的问题,但是对于 Post、PUT、DELETE 等高级功能的支持上就无能为力了。

 

为了解决这个问题,高级浏览器中都开始支持 CORS 了,CORS 在 headers 中定义了相关参数,告诉浏览器我的接口是否允许被外部站定请求,允许哪些 Method,等等…

具体的用法可以看看相关文档:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS

Java 中的 URL编码

URL编码

概念就不啰嗦了,直接上维基百科:传送门

简单的来说,当你提交 POST 请求,并且 RequestBody 的类型是 application/x-www-form-urlencoded 时,就需要用URL编码了。

而这个工作一般不需要你手动做,常见的Web框架都帮你处理好了。

Groovy 版字幕批量翻译脚本

Google Translate Toolkit

2013年在线教育很火啊,从没有资源到不知道怎么选资源…

其中 Coursera 做的真的很棒,最赞的是,提供了视频和字幕的下载。

但是E文不好,想在地铁上用 iPad 看的话会很不方便,如果有翻译多好~

来点 Groovy 吧

Groovy是什么

直接摘录官网的介绍:

是一个基于Java虚拟机的敏捷动态语言。
构建在强大的Java语言之上 并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征。
为Java开发者提供了现代最流行的编程语言特性,而且学习成本很低(几乎为零)。
支持DSL(Domain Specific Languages领域定义语言)和其它简洁的语法,让你的代码变得易于阅读和维护。
Goovy拥有处理原生类型,面向对象以及一个Ant DSL,使得创建Shell Scripts变的非常简单。
在开发Web,GUI,数据库或控制台程序时 通过减少框架性代码 大大提高了开发者的效率。
支持单元测试和模拟(对象),可以简化测试。
无缝集成 所有已经存在的 Java对象和类库。
直接编译成Java字节码,这样可以在任何使用Java的地方 使用Groovy。

咕咚智能手环2评测

由来

本来我对智能手环类产品并不感冒,关注咕咚主要是因为今年上半年参加了“一个鸡蛋的暴走”的活动,当时很想把整个行程记录下来,所以一直想买咕咚的手环(便宜),可惜当时一直在跳票,最后只要用手机来记录了。

新家,100M!

100M

新家搬过来半个多月了,发现郊区的最大好处就是:宽带太便宜了!

以前在普陀区靠近中山公园,电信宽带180/月,预付费,10M。虽然后来参加了活动,绑定了手机号,升级到了20M,但是价格依然非常昂贵,手机+宽带186/月。

搬到这里后,发现电信正好在推100M宽带,所以果断放弃了原来的电信套餐。(原来的还有半年过期,钱已付,已转手,亏一点点)

新套餐的价格是这样的:

  • 90元/月,100M,后付费
  • 需要额外绑定一个手机号,50/月,必须使用2年
  • 2年后手机号可以抛弃,宽带依然原价

看上去非常划算啊,所以果断办理了,特别是2年后,宽带还可以以90元/月的价格一直用下去。估计2年后,现在的20M也都自动升级到100M了。

2013年总结

阅读

今天阅读大丰收,总共20本书,因为在忙装修,所以周末很多时间是在地铁上度过的,这些书大部分也都是在地铁上看完的。

Google Analytics 自定义维度

什么是自定义维度

Google Analytics 本身有很多维度了,例如:应用版本、设备型号、网络环境 等等…

但是有时候也需要设置一些自定义维度,例如:应用环境(线上、测试)、用户性别、用户注册城市 等等…

你是怎么对待上帝的?

一次不愉快的体验

最近家里在装修,遇到了一点小问题,回想以后发现,这种场景和很多公司非常像!

再结合最近看的《程序员修炼之道》,真的发现好多道理都是相通的。

所以想来聊聊这次不愉快的体验,希望大家引以为戒。

PhoneGap 与 Google Analytics

怎么整合 GA

PhoneGap 整合 GA 的时候会遇到这几个问题:

  1. 如果用的是 file 协议,不支持 cookies,ga 一定要启用 cookies
  2. 就算不是 file 协议,用网页版的 ga 无法跟踪详细的用户设备信息
  3. PhoneGap 做的话很多都是单页面应用程序,这样的页面很难用 ga 跟踪

所以用以前的网页版 GA 是很难统计好数据的。