Hegwin.Me

疏影横斜水清浅,暗香浮动月黄昏。

修改Repo地址后Capistrano部署问题

How to Deploy with Capistrano after Repo URL changed?

其实有点闹妖的成分, 我们用Capistrano部署项目,最近把项目仓库从BitBucket迁移到了Github上,本以为只要把 `config/deploy.rb` 里 `set :repo_url`改一下就好,但事实并非如此。 用Cap执行部署时,看到Log里还是从BitBucket的repo里拿的代码,所有迁移到GIhub之后的改动都没有包含进去。 在网上搜了下,需要自己s...

在Rails中实现HTTP Long Polling

Implement HTTP Long Polling in Rails with Action Controller Live

通过使用 ActionController::Live,我们可以实现实时的Push通信。官方文档在这里 http://edgeapi.rubyonrails.org/classes/ActionController/Live.html,但总觉得学习起来,这个文档太简略。这里面主要是利用了这几个技术:当HTTP/1.1 的Header指定为 Transfer-Encoding: chunked...

Git 找回reset --hard的代码及删除的分支

How to undo a git reset hard and branch delete

人总是会犯错的。 还记得第一次使用 git reset --hard 和 git force push 是在2013年初。那时候我图省事,在staging服务器上修改了点代码,就直接push到github上去了,本以为只是一个小提交,结果push了一堆无用的代码上去。怎么办呢,这时候有前辈出来告诉我,即使是push到服务器的代码依然是可以修改的,同时告诉其他同事暂时不要push代码,最...

人生第一个全程马拉松

My First Full Marathon

全程马拉松,42.195公里,在两年前我从来不敢想象我能完成这个距离。 然而,就上个周末,2016年12月11日,我在广州完成了人生第一个全程马拉松。净成绩5小时12分,不是很好的成绩(主要还是由于训练太少,赛前只拉过一个3小时的LSD),但毕竟完成了! 跑过终点时,我是累的一塌糊涂,已经没有任何力气去做拉伸运动,慢慢走了十来分钟之后,找了个阴凉的地方坐下,大概一刻钟之后才恢复精...

微软考试70-480知识点整理

Things you need to know on Microsoft Exam 70-480 Programming in HTML5 with JavaScript and CSS3

HTML5中新的语义化标签: section,article,heade,footer,aside,nav,figure & figcaption,main,time。 Web Worker 及 Workers通信,WebSockets,localStorage,SVG &/vs. Canvas,Video navigator.geolocation,navigator.online

在Ubuntu16.04上安装日语输入法

Install Japanese input methed on ubuntu 16.04

闲话:我个人认为,目前来说,如果新学一门外语,安装PC/手机/Mac上对应的输入法是一件很有必要的事情。通常情况下,我们的外语老师,一般只会教我们语言本身,而不太会去教你如何安装输入法,至于日语输入法的安转,都是同学之间相互讨论才得以完成的。就日语来说,我觉得输入法在不同的平台上可以这么安装:安卓手机上可以去装谷歌的日语输入法,这其中Sony手机是自带日语输入法也挺好用,故Sony可以不必特...

测试React应用程序

Testing Strategies for React Applications

Main things: * [mocha](https://github.com/mochajs/mocha) - Test Frame * [chai](https://github.com/chaijs/chai) - provides TDD/BDD syntax (`should`, `expect` ) for testing * [enzyme](https://gi...

学习ES2015 Part 4

Learn New Features in ES 2015 Part 4

# Object 新特性 ## Shorthand语法 ES2015有这么一个语法糖,新生成一个Object时,当键名与变量名相同时,可以有一个简略的写法。具体怎么写,看下面的例子。 过去,我们需要这样写: ```js function buildUser(first, last) { var fullName = first + ' ' + last; ...

学习ES2015 Part 3

Learn New Features in ES 2015 Part 3

# Array 新特性 ## Array Destructing 感觉这也是从Ruby或者类似的语言学习过来的方法,在ES5,我们没有办法直接把数组的各个值一次性赋给多个变量,而现在我们可以了,假设我们有这么一个数组: ```js let users = [ 'Hegwin', 'Jason', 'Ken' ]; ``` 如果我们想直接把`users`的三个元素依...

学习ES2015 Part 2

Learn New Features in ES 2015 Part 2

# String ES2015中加入了Template String的概念,当我们想要把变量值拼接到字符串中间时,终于不需要不停地的使用`+`了,这也是我觉得可以欢呼的地方。 具体是这样操作的:JS里普通那个的字符串依旧是用单引号或者双引号包围,但是Template String则用反引号包围(感觉在Markdown里打个反引号真要命)。 过去: ``` let fu...