GitHub 这两年快速走红,幕后有怎样的故事?37signals 的 blog 上贴出一篇访谈“Bootstrapped, Profitable, & Proud: GitHub”,大体可以有些了解。
其中提到了 GitHub 当初是如何创业的,又是怎样开始盈利的,他们的处世哲学和思考方式等等。基本上和《Rework》秉持一致的理念。创业一开始,只是源于自身需求,然后立即发布,看用户反映调整。一段时间后他们才意识到这可以是个买卖,可以收钱。慢慢发展,又发现能盈利,但同时也保持清醒的头脑知道取舍,开放的理念稳步推进。
用过 GitHub 的人都应该对此有所体会。GitHub 始终处于积极的,活跃的状态,不断推陈出新。比如页面改版,比如 Network 图从原来的 Flash 实现改成 HTML5 Canvas 实现,比如迁移到云机房,比如最近站点语言的国际化,比如隔三差五的 meetup。像项目说明文档以及项目主页,都支持简单的 Markdown 语法快速构建,这种 handy 的实现非常讨巧轻便,直接体现了“getting things done”的思想。说到多语言支持,它也是先上一部分词条,慢慢扩增的方式,体现了访谈中“ship it now and fix it later”的理念。
他们的工作方式灵活自由,无需“clocking in and out”,但求“getting things done”。甚至有人拒绝了微软 30万年薪的工作转而投靠 GitHub,因为他希望为自己而活,希望在迟暮之年回顾人生时可以满足地说“wow, that was an adventure”而不是“wow, I sure felt safe.”。
所以,GitHub 的成功并非偶然。创业最最关键的是去做,用脑子去做,聪明地做。至于做什么,只要赚钱,自己喜欢,什么都成。
Published on August 4, 2010 10:10 am.
Filed under: 东拉西扯 Tags: 37signals, github, rework
应 Scott 之邀,负责翻译 GitHub 站点为中文版。700+ 词条,没有上下文,靠推猜去尝试翻译,所以一定会有地方看起来古怪或者不对,如果各位发现了,烦请及时告诉我,我去修正。当然,如果有更好的译法也请告诉我。期间 Henry 帮助 review 和修订了几条,谢谢 Henry。GitHub 目前提供可翻译的词条只是常见的大部分,所以看到有整句英文的不用奇怪。以后应该会陆续开放新的词条供译者翻译。
从我个人的角度来讲,中文版没什么太大意义。一般写代码用到 GitHub 的人,英文一定也没问题。但对于 GitHub 站点本身来讲,这次的全球语言本地化则是另一种意义,表明的是一种态度,一种亲和力。
Published on July 26, 2010 10:54 am.
Filed under: 东拉西扯 Tags: github, henry, scott, translate
下载地址:http://cl.ly/da7a450319adfac01108
此书基本完成翻译,但仍有大半尚未审阅。今心血来潮,做了 epub 版本,可在 iPad 上阅读。生成代码在 http://github.com/chunzi/progit/tree/master/epub-zh。
既然是开源图书,所以优先级比较低。后续更新时再作新版。
Published on June 9, 2010 3:58 pm.
Filed under: 东拉西扯 Tags: epub, github, progit
万事皆有可能,托管在 GitHub 上的仓库如果不备份,心里总不安。立即动手。
第一件事情是取得所有仓库列表。有了 API 就容易多了:
curl -s http://github.com/api/v2/yaml/repos/show/chunzi | grep ':url:' | awk -F/ '{print $NF}'
-s 表示 slient 模式,不输出下载进度。取来的数据是 yaml 格式,我只关心包含仓库名的 url 一行,grep 出来,打印路径最后一列,即仓库名称。
接下来写个简单脚本 github-backup,给定仓库名,如果从未备份过则 clone 裸仓库;否则下载更新。
#!/bin/bash
repo=$1
user=chunzi
url=git@github.com:$user
cd github
if [ ! -d $repo.git ]; then
git clone --bare $url/$repo.git $repo.git
cd $repo.git
git remote add --mirror origin $url/$repo.git
cd ..
else
cd $repo.git
echo `pwd`
git remote update
cd ..
fi
备份下来的仓库统一放在 ./github 目录下。用 --bare 克隆裸仓库,我不需要另行 check out 工作目录,仓库数据就已足够。然后用 git remote add 添加远程仓库以便以后增量更新。
如果目的只是单向备份下来,这里的 --mirror 选项可以不加,我试了下后续 git remote update 也能工作。
但是加了的话,应该表示本地仓库是远程的镜像,就是说,如果将新工作提交到这个本地裸仓库,就可以在此裸仓库中用 git push 将所有数据同步镜像到远程 GitHub 上。这一点我还没实践过,我现在只需要备份下来,不需要双向同步。
最后,写个简单的 Makefile,以后每次备份直接 make:
.PHONY: github
github:
curl -s http://github.com/api/v2/yaml/repos/show/chunzi | grep ':url:' | awk -F/ '{print $$NF}' | xargs -I% bin/github-backup %
Makefile 中的 $ 需要转义,方法是用两个 $,因为 Makefile 自己也有一套 $ 开头的变量。
另外,如果 github 上删除了仓库或者改了名字,需要手工处理备份的仓库。备份 github 以外的 git 仓库也是一样的,稍改下代码。最后放到 crontab 里自动备份。
Published on November 7, 2009 10:18 am.
Filed under: 开发 Tags: backup, git, github
周六参加了 KungFuRails 的首届线下聚会。本来我是不该去的,虽然看过 ruby 和 rails 但没用来实践过什么,将来也没这个打算。开始想去,是因为 GitHub 的 Scott Chacon 要来,另外一起翻译 progit 的 ashchan 也来。后来还没付款,竟然收到官方邀请,就翻译 progit 一书的事情请我作下简单介绍。感谢 cnhackTNT 中间牵线。
清早一路上阳光洒落,心情非常不错。会场很专业,除了没有开放 wifi 没有会议录像之外,几近完美(补记:刚才看到官方说“我们稍后会放出ppt和录像,敬请期待!”)。到场还遇到了 Tim 同学(腾公)。实际上我去是凑热闹的,增长一下见识。很多 twitter 上的熟面孔突然在现实世界中冒出来,很有意思。还看到了 GTUG 中见到过的两位同学。
老实说,有些人的演讲技巧还不到位,不过大家乐于分享的精神是一致的。Scott 果然很腼腆,但听他演讲,整个语调语速很过瘾,高桥先生则好玩得多,显然这次他背负盛名,没放开。我看过上次台湾的演讲视频,那回高桥的节奏控制得很好,流畅且自然,有趣而轻松,可这回太拘谨了。
这次还认识了会场主持人吕国宁。我很钦佩去 ToastMaster 的人,我自己是放不开做不到的。
另外还有个收获,就是 GitHub 的贴纸,一直以来都想要,这次拿了两张,不打算贴 Macbook 上,我有洁癖,收藏下来。
Published on October 26, 2009 9:43 am.
Filed under: 开发 Tags: ashchan, cnhacktnt, github, kungfurails, rails, ruby, toastmaster
整理了下 planet.chunzi.me/perl 的配置,发到 github 上去 chunzi.planet。原来借用 bulknews 的 css 后来才发现被墙,改了下用本地的。另外用 feedburner 作了 feed 链接图标。原来 feed 的地址因为配置问题有误,感谢 Fayland 提醒~
既然有了关于 perl 的聚合,接下来还想搞下 git 和 vim 的。总之 planet.chunzi.me 站点就是 plagger 的集合。方便自己看,也方便别人看。说起来完全可以用 google reader 订阅这些地址,不过是这里的聚合作了简单过滤,仅仅是关心 perl 而不是人。就如同 Planet Perl Iron Man 所做的一样。
Published on October 25, 2009 5:30 pm.
Filed under: 开发 Tags: fayland, git, github, perl, perlchina, plagger, planet, vim
突然心血来潮,看到 planet.perlchina.org 有些简陋,想自己动手。以前没用过 Plagger,快速上手熟悉了下。cpan 上的版本 0.7.17 还是 2006 年发布的,十分老旧,github 上 Plagger 项目倒还是在持续开发,下来 make test 许多通不过,只好用 “stable” 版,安装时需要手工下载安装老的 XML::Feed 模块。plagger 就是一个命令行工具,读取给定的配置文件,从网上抓 feeds 处理之后生成静态网页,保存到指定目录。
So, 我自己建了个 planet.chunzi.me,并找了一堆写 perl 文章的 blog,配好架起 planet.chunzi.me/perl。可以说是 planet.perlchina.org 的克隆吧。所采纳的 feed 一般限于 perl 标签的 feed。所以这个聚合仅仅关心 perl。如果你对作者感兴趣,请直接订阅 blog。当然,plagger 聚合出来的也是可以订阅的。plagger 号称是 feed 的 pipe,我很喜欢 pipe。
在最下方列出了订阅列表。如果有版权问题,或者想增加你的 blog 或者推荐 feed,都请给我邮件:chunzi@gmail.com。
目前手动生成页面,稍后改用 cronjob,再把相关代码配置放到 github 上去。
Published on October 23, 2009 4:53 pm.
Filed under: 开发 Tags: cpan, feed, github, perl, perlchina, pipe, plagger, planet
之前发现 Github 上有文章推荐 gittop 这款在 iPhone 上查阅更新事件以及代码仓库和作者详情的软件,可惜要价两块美金,我觉得没什么意思。适才发现另一款免费的 iOctocat,差不多一样的功能,界面更传统地道,而且还是开源的。
Published on October 6, 2009 8:31 am.
Filed under: iphone Tags: appstore, github, gittop, ioctocat, iphone
Github 上的 Network 图永远都不是最新的,gitk 很慢很丑陋(至少在我这里如此),gitweb 上又没有图。所以最佳的选择就是 tig。
tig 就是 text-mode interface for git 的意思,恰好又是 git 的回文。命令行模式下查阅 git 仓库信息的工具。
在 git 工作目录中打 tig 就可以看到所有的历史更新,按 g 便有树形图,按 h 就有简明帮助,按 m 再回到 main 页面,按 q 就直接退出,简洁明快。关键是就算工作目录在远程机器上,也没问题:ssh 上去,进 screen,tig 一下。
就觉得 tig 和 htop, bmon 是一挂的。Mac 上和 Ubuntu 上都可以通过 port 安装。
Published on September 27, 2009 9:16 pm.
Filed under: 开发 Tags: apple, bmon, git, github, gitk, htop, port, screen, ssh, tig, ubuntu
中间生小孩,加上积极性回落了一段时间,到现在终于把前三章翻译审校完成。其中一二两章是我翻译的,第三章是 DaNmarner 翻译的,我刚做完 review。目前 DaNmarner 正在翻译第四章,我接下来计划翻第五章。
原先我在自己的机器上架了 progit.chunzi.me ,方便查阅已经并入到主项目中的各语种翻译(中文),今天才发现一个月前官方博客更新,主站也放出了翻译进度。不过上面的也不是最新的,要看最新的可以直接到 github 项目页上去。
老实说,虽然 git 用了也快一年,但无非是些基本的操作。对于 rebase 什么的一直稀里糊涂,不敢用。所以想借此机会摸摸透。也希望能有更多的人参与到此项目,毕竟人多拾材火焰高。
本项目现在没有 deadline,反正是做一点少一点,愚公移山。但坚决不抛弃,不放弃,总归有一天可以做完的。最近看到一条说法,多动脑子消耗能量能够减肥,不管到底有多少,总归也是 more than nothing。
Published on September 22, 2009 2:36 pm.
Filed under: 开发 Tags: danmarner, git, github, progit, translate