トップ «前の日記(2009-05-11) 最新 次の日記(2009-05-13)» 編集

Route 477



2009-05-12

[ramaze] Ramazeの読みは「ラマゼ」で合ってるのか

manveruさんは「らめぃず」と発音してたよ? >Ramaze(「ラマゼ」と読みます)

[はてなブックマーク - Ruby Freaks Lounge:第11回 自由なWebフレームワーク,Ramaze|gihyo.jp … 技術評論社より引用]

一応、

  • リニューアル前のramaze.netで、左上のロゴに片仮名で「ラマゼ」と書かれてたのと、
  • インタビュー

it’s called Ramaze (pronounced ra-ma-ze, Japanese style, even if the name comes from Ruby-Amaze).

[Ramaze: a Ruby framework that will amaze | Zen and the Art of Programmingより引用]

という記述から「ラマゼ」説を採用しました。

でもmanveruさん自身はそう読んでないのか…w 「Ruby + Amaze」が名前の由来だそうなので、作者にとっては自然にそう読めてしまうのかも知れないですね。

[css] 960 Grid Systemについて調べてみた

画像の説明

CSSフレームワークの一つである、960 Grid Systemについて調べてみた。

960 Grid Systemでは、その名の通り横幅960pxの空間を12(もしくは16)に区切って、その中にdivを配置していく。 この960pxという数値は、

  • 最近のマシンなら横1024pxはあるよね
  • 960はいろんな数値(2, 3, 4, 5, 6, 8, ...)で割り切れる

というところから決められたみたい。

とりあえずデモを見てもらえればどんなものかは分かると思う。

解析

ソース を見てみる。12カラムと16カラムの指定があるけど、ここでは12カラムの方だけ見る。

.container_12 {
  margin-left: auto;
  margin-right: auto;
  width: 960px;
}

まず.container_12というスタイルがあり、全体をこれで囲むことになる。これの幅が960pxになっている。

次に、実際に配置されるgrid unitのスタイルの定義がある。

.grid_1 ... .grid_12{
  display: inline;
  float: left;
  margin-left: 10px;
  margin-right: 10px;
}
.container_12 .grid_1 {  width: 60px;}
...
.container_12 .grid_12 {  width: 940px;}

.container_12 .prefix_1 {padding-left: 80px;}
...
.container_12 .prefix_11 {padding-left: 880px;}

.container_12 .suffix_1 {  padding-right: 80px;}
...
.container_12 .suffix_11 {padding-right: 880px;}

要するに、grid unitのために

  • divの幅を規定するスタイル(.grid_n, nはカラム数)
  • divの左端を規定するスタイル(.prefix_n, nは左側にあるカラムの数)
  • divの右端を規定するスタイル(.suffix_n, nは右側にあるカラムの数)

があって、これを使って好きな位置に並べてねということらしい。

基本的に.grid_*だけを使えば良くて、例えば横に3つgrid unitを並べるなら、.grid_4, .grid_4, .grid_4とすればいい(12カラムの場合)。 空間を空けたいときに.prefix_*や.suffix_*を使うらしい。

縦方向のサポートは特になくて、.clearというスタイルを使って「次の段」に進むだけ。.clearはこんなの。

/* http://sonspring.com/journal/clearing-floats */

.clear {
  clear: both;
  display: block;
  overflow: hidden;
  visibility: hidden;
  width: 0;
  height: 0;
}

最後に.alphaと.omegaというスタイルがあって、これはgrid unitの中に別のgrid unitを入れたいときに使う。

.alpha {
  margin-left: 0;
}
.omega {
  margin-right: 0;
}

感想

当然だけど、CSSフレームワークは単なる道具であって、格好いいサイトを作るにはそれなりのデザインセンスが必要だということが分かった (現実は非情である)。新聞紙みたいな複雑なレイアウトが簡単にできるだけでも楽しいけどね。

公式からリンクされてるチュートリアル でも、「CSSフレームワークは全てを解決するわけじゃない」「960 Grid Systemでプロトタイプをさくっと作り、それを育てていこう」 みたいに書かれてますね。

あと http://960.gs というドメイン名がいいね。

[git] Githubでのgem公開は、masterからしかできない

Gems will only be built when the gemspec version is bumped on the master branch.

[GitHub RubyGemsより引用]

ということはですね、master(という名前のブランチ)はリリースブランチとして使わないといけないってことだよね。

masterを開発版のHEADとして使ってると、「既存のリリースにバグがあったので再リリースしたい」っていう時に困る。

-o-o-o-o-o-o master
 |
 o-o v1.0.0
   |
   o-o v1.0.1 #このブランチのgemspecをpushしても、gemはビルドされない(´・ω・`)

みんなこの辺どうしてるんだろうなぁ。

(5/27追記:default branchに設定したブランチからgemリリースできるようになった !))

[ruby] Ruby Tab Sweep (2)

1.8/1.9共用のgemを作る方法

Nokogiri作者のアーロンさんより。

NokogiriのWindows版バイナリが入ったgemを作ってるんだが、1.8と1.9の両方に対応する簡単な方法はないか?という話。

提案されている方法は、1.8用/1.9用両方の*.soが入ったでかいgemを作って、実行時にRUBY_VERSIONを見てロードする.soを決める、という感じ。

Sinatraの子供たち

Sinatraの最大の発明は「アプリ書くのに、クラス定義とか要らないよね」っていうやつだ。

ネームスペースの衝突を避けるためのgem、Akidoka

Akidoka…。何語なんだ。

2.0が出た暁にはこういうのも要らなくなるのかな。

CSSメタフレームワーク、Compass

よく分からんが、

  • Blueprintや960 Grid SystemといったCSSフレームワークを、Rubyから便利に使うためのもの
  • Sassを利用している
  • Rails/Merb/Sinatra/Merb/Webby/Staticmaticに対応

…というとこまで分かった。「SassからBlueprint等を使うためのプラグイン」みたいに思っとけばいいのかなぁ。

JSでmp3を再生するためのjQueryプラグイン、jPlayer

ダウンロードするとswfファイルが1つと、jQueryプラグイン(.js)が1つ入っている。簡単でいいね。(しまった、Ruby関係ない)