一分一秒真剣勝負!

Ruby, Railsなど。Web系の技術ネタを充実させたい・・が、そうなるかは分からない。

Rails + Sass + Compass環境でTwitterBootstrapのvariablesを変更する

【注意】この情報古いっす。bootstrap-sassのgithub見てください。もっと簡単にできます。

bootstrapの公式サイトには Customize variablesというページがあって、これを変更する事によって色などを変更したbootstrapをダウンロードできます。これをRailsで変更したいという時にどうするか。

環境は、Railsが3.1.12で、gemは bootstrap-sass, compass-railsを使用しているものとします。

bootstrap-sassではこのファイルで全てのvariablesが宣言されているので、これを上書きしえてしまえばいいわけです。

ファイル構成

以下の様な構成でファイルを作成します。

app/assets/stylesheets/
├── application.css.scss
├── bootstrap
│   └── _variables.scss # variablesを定義する場所
├── bootstrap_load.css.scss # bootstrap読み込み用
└── layout.css.scss # 独自の定義など

各ファイルの内容

app/assets/stylesheets/bootstrap/_variables.scss

$tableBackground: #fff;  // 例えば@tableBackgroundを上書きしたいならこんな感じ。

app/assets/stylesheets/application.css.scss

@import "compass";

app/assets/stylesheets/bootstrap_load.css.scss

@import "bootstrap/variables"; // _variables.scssで変数を上書きしている
@import "bootstrap";           
@import "bootstrap-responsive";

app/assets/stylesheets/layout.css.scss

// 独自に定義したスタイルを書く

大体こんな感じ。app/assets/stylesheets/bootstrap/_variables.scssはsass-railsと同じディレクトリ構成にしておいた方が分かりやすくていいかなと思ってこうやってます。bootstrap-sassが推奨のテンプレをgenerateしてくれるといいんだけどなあ。

Haml 4.0 has been released!!

Haml4.0でた。
http://blog.haml.info/post/42998475354/haml-4-0-has-been-released

CHANGELOGはしっかり読んでないけど、一個だけサンプルコードが書いてあって、これは個人的に嬉しかったな。

Haml now flattens deeply nested data attribute hashes. For example:
.foo{:data => {:a => "b", :c => {:d => "e", :f => "g"}}}
would render to:
<div class='foo' data-a='b' data-c-d='e' data-c-f='g'></div>

いい。

iPhone4Sのバンパー系ケースに使えるUSBケーブルのスペーサー


今までiPhone4SのケースはEdyを入れられるものを使っていたんだけど、Edyは定期入れに入れる事にしてバンパー系のケースを買いました。Bladeってやつでなかなか良かったんだけど、これを付けてしまうと充電する時にApple純正のUSBケーブルじゃないと刺さらない事に気付く。
100均のiPhone用USBケーブルが使えなくなるのは困るので、スペーサーを探したところ、2000円以上するものが有名で確実そうだったが、自宅用・外出用・職場用に買ったら6000円を超えてしまう。さすがにそれはないだろって事で安いのを探したら手頃なのを発見。

30pinスペーサーII for iPhone/iPad ホワイト

30pinスペーサーII for iPhone/iPad ホワイト


これです。現時点で1個270円。純正ケーブルと同じ幅で充電出来ました!さんざんネットでググったんだけど、Blade使ってて充電できたってレビューが見つからなかったので、刺さってよかったです。

ELECOM iPhone4/4S 対応 スマートフォン用ヘッドホン延長ケーブル 4極 S型 0.1m ブラック MPA-EHPS01BK

ELECOM iPhone4/4S 対応 スマートフォン用ヘッドホン延長ケーブル 4極 S型 0.1m ブラック MPA-EHPS01BK


イヤフォンジャックも普通の形状のものは刺さらなくなったので、延長ケーブルを購入。バンパーケースを買うと金がかかるなあ。

Webアプリケーションのモデル設計

Forkwell12月17日(月)のニュースレターから引用。

Forkwellでもご多分に漏れず、モデル設計を最初にしっかりと考えこんで作りました。
特に、なるべくコードレベルでシンプルに、少ないコードで行きたい、と考えていました。
例えば単一テーブル継承(STI)やポリモーフィズムなどを利用して可能な限りシンプルに作ったり、
ひとつ変更すれば関連するモデルが更新されるようなフックを仕掛けたり、といったところです。

ところが、これらには罠があります。
それは、開発した当人たちにとってはわかりやすくても、途中からジョインした人たちはパッと見
良くわからない(=読みにくい)、というところです。
現にForkwellチームの中では、
「あー、そうやってたの。わかんなかった」
「いやいやそれはちょっと」
という悲しい光景が繰り広げられるという結果になってしまいました。

なので、今ではForkwellはポリモーフィズムなどの技術はなるべく使わず、素直に必要なモデルを
必要なだけ作ってやるという方式を取ることにしています。

それがいいですね。その時点では素晴らしい設計であっても、運用していくうちに当時の設計思想には当てはめられない機能を実装しなければならない状況になったり、プロジェクトの途中からアサインしたエンジニアが認識できなくて変な実装をしてしまったりといった事はよくあります。
モデル・ER図・テーブル定義をざっと見ただけで大体の実装をイメージできてしまうぐらいが丁度いいのではと思ってます。程度によりますが、冗長的な実装になっても人数が増えてきた場合にコンフリクトしにくくなるとか、急な増員をした場合でも理解しやすければすぐに即戦力になってくれるなどメリットもある。
まあ、技術を知ってると使ってみたいってのはわかりますけどね。

Raspberyy Pi が着た!

やっと届いた!基盤剥き出しのままだと壊れそうなので、一緒に買ったケースとセットで届きました!
f:id:yatmsu:20121202183253j:plain
おお、これがラズベリーパイか。
f:id:yatmsu:20121202183420j:plain
さっそくケースに入れる。
f:id:yatmsu:20121202184209j:plain

SDカードをMacに差し込み、ディスクユーティリティでFAT32にフォーマット!
http://www.raspberrypi.org/downloads からOSのイメージファイルをDLし、
さっそくOSのインストール作業に入ります。

% cd Dowonloads
% wget http://downloads.raspberrypi.org/images/raspbian/2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip
% unzip 2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip
% df -h # フォーマット時にRASPBERRYPIって名前でフォーマットしておいた
Filesystem                          Size   Used  Avail Capacity   iused     ifree %iused  Mounted on
/dev/disk0s2                       233Gi  152Gi   81Gi    66%  39943338  21126102   65%   /
devfs                              204Ki  204Ki    0Bi   100%       706         0  100%   /dev
map -hosts                           0Bi    0Bi    0Bi   100%         0         0  100%   /net
map auto_home                        0Bi    0Bi    0Bi   100%         0         0  100%   /home
localhost:/5Jo_iyPWVoa5ot0q80v3Xl  233Gi  233Gi    0Bi   100%         0         0  100%   /Volumes/MobileBackups
/dev/disk1s2                       149Gi  135Gi   14Gi    91%  35391953   3596793   91%   /Volumes/MacBookAir2012
pogoplugfs@ppfs0                   4.7Gi  1.8Gi  2.8Gi    40%    512000    512000   50%   /Volumes/Pogoplug Cloud
pogoplugfs@ppfs1                   1.8Gi  4.4Mi  1.8Gi     1%    512000    512000   50%   /Volumes/Generic STORAGE DEVICE
pogoplugfs@ppfs2                   698Gi  136Gi  563Gi    20%    512000    512000   50%   /Volumes/ST750LX0 03-1AC154
pogoplugfs@ppfs4                   7.1Gi   44Mi  7.1Gi     1%    512000    512000   50%   /Volumes/Unnamed
/dev/disk2s2                       931Gi  474Gi  458Gi    51% 124148684 119957982   51%   /Volumes/WD10JPVT
/dev/disk3s1                        30Gi  2.1Mi   30Gi     1%         0         0  100%   /Volumes/RASPBERRYPI
% sudo diskutil unmount /Volumes/RASPBERRYPI/
Volume RASPBERRYPI on disk3s1 unmounted
% sudo time dd bs=1m if=2012-10-28-wheezy-raspbian.img of=/dev/rdisk3
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 116.998239 secs (16580297 bytes/sec)
      117.00 real         0.00 user         1.03 sys
% df -h
Filesystem                          Size   Used  Avail Capacity   iused     ifree %iused  Mounted on
/dev/disk0s2                       233Gi  154Gi   79Gi    67%  40476586  20592854   66%   /
devfs                              205Ki  205Ki    0Bi   100%       710         0  100%   /dev
map -hosts                           0Bi    0Bi    0Bi   100%         0         0  100%   /net
map auto_home                        0Bi    0Bi    0Bi   100%         0         0  100%   /home
localhost:/5Jo_iyPWVoa5ot0q80v3Xl  233Gi  233Gi    0Bi   100%         0         0  100%   /Volumes/MobileBackups
/dev/disk1s2                       149Gi  135Gi   14Gi    91%  35391953   3596793   91%   /Volumes/MacBookAir2012
pogoplugfs@ppfs0                   4.7Gi  1.8Gi  2.8Gi    40%    512000    512000   50%   /Volumes/Pogoplug Cloud
pogoplugfs@ppfs1                   1.8Gi  4.4Mi  1.8Gi     1%    512000    512000   50%   /Volumes/Generic STORAGE DEVICE
pogoplugfs@ppfs2                   698Gi  136Gi  563Gi    20%    512000    512000   50%   /Volumes/ST750LX0 03-1AC154
pogoplugfs@ppfs4                   7.1Gi   44Mi  7.1Gi     1%    512000    512000   50%   /Volumes/Unnamed
/dev/disk2s2                       931Gi  474Gi  458Gi    51% 124148684 119957982   51%   /Volumes/WD10JPVT
/dev/disk3s1                        56Mi   17Mi   39Mi    30%       512         0  100%   /Volumes/Untitled
% 
% sudo diskutil unmount /Volumes/Untitled/
Volume (null) on disk3s1 unmounted

よし完了!で、ラズベリーパイ初回の起動画面で衝撃の事件が・・・なんとHHKのスペース↑エンターを認識しない。
数カ月ぶりにWindowsで動作確認しても問題なく動くのに。。
しょうがないのでミニキーボードを発注。

USB日本語 スリムミニ 黒 AOK-780BK

USB日本語 スリムミニ 黒 AOK-780BK

届いてから初期の設定を終了し、rebootしたらSDカードの空き容量をフォーマット(初期のインストールでは2Gしか使用できない。初回起動時の設定画面で空いている部分も使えるようにするオプションがあるのでそれを押した。)するのに40分はかかった。。ちなみにSDは32Gです。

再起動後、やっとデスクトップを見られた。。
問題は何に使うかですね。安かったから買ったけど、目的がない。本来は学習用のものみたいだけど。

[参考サイト]
RPi Easy SD Card Setup - eLinux.org http://elinux.org/RPi_Easy_SD_Card_Setup#Copying_an_image_to_the_SD_card_in_Mac.C2.A0OS.C2.A0X_.28mostly_graphical_interface.29

最近の音楽は・・・

ってのは常に誰かが言ってることだけど、良エントリー発見。

「かっこいい音楽がどうかっこいいのか、どう聴いていったらいいのか、ガイドが本当に不足しているのが原因なのは明らかだ」と、大谷ノブ彦さんは言う。たとえば、そのガイドを担うべきメディアの一つに、洋楽ロック誌と呼ばれるものがある。ここでその代表的な存在である『ロッキング・オン』誌と『クロスビート』誌の、今年1年間の表紙を飾ったアーティストの名前を並べると、何が起こっているのか、一目瞭然になる。

ビートルズローリング・ストーンズレッド・ツェッペリンデヴィッド・ボウイレディオヘッドグリーン・デイストーン・ローゼズ、ミューズ、ノエル・ギャラガーレッド・ホット・チリ・ペッパーズ

ここには、2010年代どころか、21世紀以降にデビューした人すら、誰もいない。60年代から90年代にデビューしたアーティストの情報が、今フィーチャーすべきものとして大きく取り上げられている。もちろん読者のニーズに合わせて最適化していった結果として、しょうがないところはある。だが、これを見る限り、少なくとも洋楽ロック雑誌のカルチャーにおいては「90年代で時計の針が止まってしまった」と言われても仕方のない状況になっている。

第47回:いつの間にロック少年は「洋楽」を聴かなくなったのか? | DrillSpin Column(ドリルスピン・コラム)

雑誌の表紙だけで見ても購買意欲が無くなる。
そういえばロックンロール・リヴァイヴァル以降、今まで聞いていたバンド以外のCDは殆ど買っていないな。
まぁ、それは時代の流れかもしれないし、どうでもいいんだけど問題は引用元で引用している。以下の部分。

この2~3年の傾向としてとにかく洋楽がかかるとオーディエンスが固まるのだ。これは出演者みんなが口をそろえる。もう本当に見事に固まる。逆にロキノンフェス常連のバンドの曲なら、どんなに流れが雑でも盛り上がる。というか、それだけが全員の共通項になっている。あとは大衆性のあるJ-POPとか。ジャニーズナンバーをかけたら、ジャンルの壁を壊した!なんて称賛されたりして(笑)いや俺その前にVAMPIRE WEEKENDかけて、振り付けあてて踊らせてて、そっちのほうが全然ジャンルの壁を壊したと思っているのに、そのかけたこと自体、なんか触れられない。たまにリアルタイムな洋楽も好きなミュージシャン、DJから声をかけられるだけって感じだ。実際、ジャパンフェスのDJブースのレジデントDJもみんなの知らない洋楽をかけたところで受けないもんだろうから、割とオーディエンスの空気を感じながら選曲してる感じもある。それはそれでいいでしょ?って言われそうだけど、そういうところをここはこういうコミニティーだからと分別していく限り、新しいジャンル、新しい価値観に触れる喜び、楽しさに気付かないままの若者が増えていってるのだ。これ本当だよ。全然大げさじゃなく、今この国で起こっていること。つまりだ。このままじゃ洋楽を中心としたロック・フェス、本当になくなるよ。

ダイノジ大谷の「不良芸人日記」: 私のDJ革命

これは困る。あんまり音楽を聞かなくなったとは言っても、SUMMER SONICにはよく行っているので。
なんか最近サマソニっぽくないアーティストがちょいちょい混じってると思ったらそういう事だったのかもしれない。
うーん、どうにかならないものか。