save_and_open_page
have_button(locator)
license: gpl-3.0 |
if ($request_uri = /) { | |
set $test A; | |
} | |
if ($host ~* teambox.com) { | |
set $test "${test}B"; | |
} | |
if ($http_cookie !~* "auth_token") { | |
set $test "${test}C"; |
#NoSQLデータモデリング技法
原文:NoSQL Data Modeling Techniques « Highly Scalable Blog
I translated this article for study. contact matope[dot]ono[gmail] if any problem.
NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティックな理論に欠けている。本稿で、私はデータモデリングの視点からのNoSQLシステムファミリーの短い比較といくつかの共通するモデリングテクニックの要約を解説したい。
本稿をレビューして文法を清書してくれたDaniel Kirkdorfferに感謝したいと思う
(* Boilerplate *) | |
(* Identity: id :: a -> a *) | |
let id = fun x -> x | |
(* Function composition: (.) :: (b -> c) -> (a -> b) -> a -> c *) | |
let (<.>) (f : 'b -> 'c) (g : 'a -> 'b) : 'a -> 'c = | |
fun x -> f (g x) | |
(* Cont type *) | |
type ('w, 'a) cont = Cont of (('a -> 'w) -> 'w) |
# Homebrew のインストール | |
# 公式 (http://brew.sh/) に載っているコマンドです | |
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | |
# Ruby のビルドに必要なものをインストール | |
brew install openssl readline rbenv ruby-build # 時間がかかります | |
# rbenv 用の設定を .bash_profile に書き込む | |
echo 'export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl) --with-readline-dir=$(brew --prefix readline) $RUBY_CONFIGURE_OPTS"' >> ~/.bash_profile | |
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile |
Vim Advent Calendar 2012 の230日目の記事です。昨日の記事は@manga_osyoさんで、明日の記事はvital.vimコミッタの@rbtnnさんです。
今回は意表をついてVim scriptの入門記事です。
Vim script初級者レベルを10段階に分割すると、そのうち簡単な方から3つは、以下のようになります。
# 私が考える安全なプログラムを書くために必要なこと | |
今も昔も「入力によって挙動が大幅に変わるAPI」が世の中には多数存在していて、プログラマが本来意図した挙動と異なる動作を引き起こしている。 | |
- ファイルを開こうとしたらコマンドを実行できてしまったり | |
- CSSセレクタを書いてるつもりがHTMLタグを生成してしまったり | |
- SELECT文を発行するつもりがDELETE文を発行できてしまったり | |
こういったときに | |
- 入力値検証をしないと危険になる |
# Speed things up by not loading Rails env | |
config.assets.initialize_on_precompile = false |