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

logo_git

持续集成

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

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

 

reset and revert

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

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

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

Read More

点评校园极客大赛

logo_essay

极客世界杯

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

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

感悟很多!

Read More

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

logo_git

为什么是 git

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

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

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

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

Read More

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

logo_js

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.

Read More

零宽度空格

logo_java

看不见的空格

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

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

 

什么是零宽度空格?

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

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

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

Read More

禁用 RestTemplate 的自动重定向功能

logo_java

Cors Proxy 该不该自动重定向

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

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

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

Read More

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

logo_diy

小米路由器

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

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

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

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

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

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

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

Read More

利用 Spring MVC 和 RestTemplate 实现 CorsProxy

logo_java

CORS PROXY 是什么

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

 

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

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

Read More

Java 中的 URL编码

logo_java

URL编码

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

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

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

Read More

Groovy 版字幕批量翻译脚本

logo_java

Google Translate Toolkit

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

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

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

Read More