Rack::Session::Pool with Sinatra http://stackoverflow.com/questions/3339761/racksessionpool-with-sinatra
监控系统 mongodb 吧。
这两个的话我喜欢 data-mapper. 我一直在等 data-mapper 2.. 准备给 simba 升级。
无责任解答:改成 .erb.html
classic 模式是不需要 helpers 的。
modular < Sinatra::Application
是需要的。
#25 楼 @quakewang 横批:查暂住证
既然都用 puma 了。直接 Thread.new 跑也没问题吧。或者自己声明一个线程池。就不需要载入环境多次了。
Java 多年没这个东西不也过来了么。
写了也算不短的内容,顺便将内容贴到 blog 里面了。http://saito.im/note/Git-Internals/
Git 一共有 4 种 SHA1. tag, commit, tree, blob. 每一种 SHA1 其实也代表了 Git 内部的一个基本对象。
稍微解释一下就知道了。
mkdir helloworld
cd helloworld
git init
echo hello world > readme.md
git add .
git commit -am"add readme.md"
答案很简单。
git add .
在这里操作中会添加一个 blob 对象,代表 readme 文件本身。这也是为什么你需要在 add 过一个对象之后,撤销需要执行 rm 与 cache 相关命令的原因。
而文件的内容则如下所示。
helloworld git:master ❯ git ls-files -s readme.md
100644 3b18e512dba79e4c8300dd08aeb37f8e728b8dad 0 readme.md
helloworld git:master ❯ git show 3b18e512dba79
hello world
当执行下面这句的时候:
git commit -am"add readme.md"
这一步中将创建两个对象,一个是当前 work tree 的映射 tree 对象,还有一个就是 commit 对象。
tree 对象是可以包含另外的 tree 以及 blob 的。
helloworld git:master ❯ git show 7394b8cc9ca
tree 7394b8cc9ca
readme.md
helloworld git:master ❯ git cat-file -p 7394b8cc9ca
100644 blob 3b18e512dba79e4c8300dd08aeb37f8e728b8dad readme.md
上面是一个 tree 对象的具体内容。tree 里面实际上就是描述了当前 tree 的内容以及 blob 的引用。
同理 commit 也可以用相同的方式查看:
helloworld git:master ❯ git show 84073a0
commit 84073a0bffd4c80598dbc4941a5f84d78cc2adcd
Author: Saito <[email protected]>
Date: Fri Sep 14 01:12:07 2012 +0800
add readme
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..3b18e51
--- /dev/null
+++ b/readme.md
@@ -0,0 +1 @@
+hello world
helloworld git:master ❯ git cat-file -p 84073a0
tree 7394b8cc9ca916312a79ce8078c34b49b1617718
author Saito <[email protected]> 1347556327 +0800
committer Saito <[email protected]> 1347556327 +0800
add readme
可以看到,commit 里面实际上保存的实际上是一个 tree 的 SHA1 以及 commit 的 author commiter 以及最终的 commit message.
最后我们给当前状态打一个 1.0 版本的 tag.
helloworld git:master ❯ git tag 1.0 -m"create a tag"
再来看看 tag 的 SHA1 内容。
helloworld git:master ❯ git show 1518c0a02530b3
tag 1.0
Tagger: Saito <[email protected]>
Date: Fri Sep 14 01:24:39 2012 +0800
create a tag
commit 84073a0bffd4c80598dbc4941a5f84d78cc2adcd
Author: Saito <[email protected]>
Date: Fri Sep 14 01:12:07 2012 +0800
add readme
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..3b18e51
--- /dev/null
+++ b/readme.md
@@ -0,0 +1 @@
+hello world
helloworld git:master ❯ git cat-file -p 1518c0a02530b3
object 84073a0bffd4c80598dbc4941a5f84d78cc2adcd
type commit
tag 1.0
tagger Saito <[email protected]> Fri Sep 14 01:24:39 2012 +0800
create a tag
可以看到,tag 里面主要存储的是 commit 的 SHA1 值,tag name 以及 tagger, 还有,如果有 -m 参数的话会有 tag message.
因为 branch 不在这套体制内。是体制外的。
跟基本对象相关的东西都存在 .git/objects
里面。
而 branch 是在同级的 .git/refs
目录里面的。而 refs 目录里面,每条 ref 记录,实际上 也是只 记录了一个 commit SHA1 而已。
四种对象创建完毕.. 回头再来看,什么时候会有什么 SHA1 已经很清楚的。
回到最初的问题。有没有办法能拿到 tree SHA1. 答案是没有。
没 commit 当然也不能拿到 commit SHA1.
当然也不是 tag. 所以不能拿 tag SHA1.
YES!. 你可以拿到当前修改过并且已经被 add 过的 blob 的 SHA1 git ls-files -s readme.md
.
就是这样。
"向上键"
直接 ln 这两个,现在还没出过问题。不需要特殊安装什么 apple-gcc42
.
/usr/bin/gcc-4.2 -> llvm-gcc-4.2
/usr/bin/g++-4.2 -> /usr/bin/llvm-g++-4.2
https://github.com/SaitoWu/fireup << 跟我的 fireup 是一个目的。
YES, NO
postgresql
HHKB Type-S..
休眠就是会掉线。
如果你不想让它休眠的话,用 Caffeine 让屏幕一直亮着就好了。
env -i
如果启动 php 的 user 跟 rvm 的 user 是同一个的话。
不然的话。sudo -u $user