[を] 「キューバ革命史」がものすごく面白かった

キューバの歴史物語がものすごく面白かったです。 2時間くらいで一気に読んでしまいました。 (略) キューバ革命史 : 目次 http://www10.plala.or.jp/shosuzki/history/cuba/contents.htm

こちらで知ったキューバ革命史。携帯で電車内とか歩きながらとか読んでたんで2週間ぐらいかかりましたが、ホントに面白かった。

これ読む時間を稼ぎたいがために、「ちょっと遠くのコンビニまでいこうかな」とかそのぐらいでした。

キューバの成立からスペイン支配、独立戦争、ミサイル危機。後半はケネディ暗殺からウォーターゲート事件と進んで、気になってWikipediaでその後もベトナム戦争とか読み始めちゃってきりがない。

思ったことは二つあって、 一つはフィデルすごいよフィデル(カストロ)。ってのと、 こんなダーティワールドで日本大丈夫かよ日本。ということ。

フィデルはホント分かりやすく言うと、行動力・政治力・カリスマ・運が、100・97・98・99って感じですわ。

どれもすごいわけですけど、ガチ鬱の俺からすると、特に行動力が尋常じゃない。もうなんかの病気なんじゃないですかね。ちゃんと診断受けたとしたら。

かといって場合によっては冷静な政治判断とかもしてるので、アドレナリンの分泌を自由に操れる特異体質だったんじゃないかとすら勘ぐってしまいます。

それと、俺は日本史だったし、政治にも全然興味がなかったので知らなかったんですが、もう世界各国が超ダーティ。

紀元前の中国とかローマとかだったら、うーんそういうもんか。って思いますけど、紀元前から全然かわっとらんやんけ!

FC天地を喰らうのプレイ動画でさえ、離間の計、暗殺の計ばっかりだったら、「えぇ~・・・」ってちょっと引いてしまいますけど、そのまんまですわな。各国政府も人民もやることがめちゃくちゃです。

日本とかWinnyで海自の情報流出とかありましたけど、そういう諜報活動とか破壊工作とかちゃんとやってるんですかね・・・?

俺の頭ん中では、チンチロリンで自分以外全員が四五六賽を使ってきて、「通るかっっっ・・・!!そんなもんっっっ・・・!!」って言っても全員がスルー。みたいな光景が浮かんで来てしまって・・・。

まあ、本当に一番強く思ったのは、「コロンブスがまかり間違って日本を発見しないでホント良かった」ってことッス。

Module: Paperclip::ClassMethods

The default value is ””/:class/:attachment/:id/:style_:filename””.

Paperclipでちょっとハマった。default valueに :filenameって書いてあるけど、これは内容が古いのか、使えない。

使えるシンボルはClass: Paperclip::Attachmentのソースにありました。

:rails_root, :class, :basename, :extension, :id, :id_partition, :attachment, :styleが使えるみたいっすね。(:filenameってのは無い)

で、Capistranoを使う場合のお勧め設定、

has_attached_file :overview,
  :path => ":rails_root/public/system/:class/:attachment/:id/:style/:basename.:extension",
  :url =>  "/system/:class/:attachment/:id/:style/:basename.:extension"

:pathはファイルシステム上の場所の指定で、:urlが外から見たときのやつ。

それとAttachement_fu同様にStrageがS3に対応してるので、デカファイルサービスやる人はいいかもしんないっスね。

【ニコニコ動画】GemCasts.12 GemをRubyForgeにアップする

前回作ったGemをRubyForgeにアップします。いちいち待ち時間がうざいですな。

参照:

詳細: GemCasts Wiki – RubyForge

月曜日なので一心不乱にコード(仕事の)。

画像アップするプラグインを前に目を付けていたPaperclipに変えてみた。

file_columnと同じでファイルに画像を保存する形式。で、attachment_fuと違って専用のテーブルを作らないタイプ。

うーん、ファイルに保存方式だとcapistranoでdeployしてるとき困るんだよな~。そんでsystem以下に保存するように変えたり。

とりあえず使ってみた。

class User < ActiveRecord::Base
  has_attached_file :avatar, 
    :styles => { :medium => "300x300>",
      :thumb => "100x100>" }
end

モデルにhas_attached_fileを定義。

class AddAvatarColumnsToUser < ActiveRecord::Migration
  def self.up
    add_column :users, :avatar_file_name, :string
    add_column :users, :avatar_content_type, :string
    add_column :users, :avatar_file_size, :integer
  end
  (略)
end

DBは専用のじゃなくて普通にそのモデルのテーブルに上記3種を追加。

<% form_for :user, :html => { :multipart => true } do |form| %>
  <%= form.file_field :avatar %>
<% end %>

アップするフォームはこんな感じ。

<%= image_tag @user.avatar.url %>
<%= image_tag @user.avatar.url(:medium) %>
<%= image_tag @user.avatar.url(:thumb) %>

画像表示もこんな風に深く考えなくてもいいようになってる。

あとImageMagickだけでRMagickが要らないっぽいです。そこは嬉しい。

で、file_columnでちょっと面倒だったファイルの保存場所関係はhas_attached_fileのオプションで結構柔軟っぽい設定ができそうでした。

:url => "/:attachment/:id/:style_:basename:extension" 
:url => "http://some.other.host/stuff/:class/:id_:extension"

シンプルなところが気に入りました。使ってこ。

参照: thoughtbot: Paperclip File Attachments

【ニコニコ動画】GemCast.11 最低限のGemを作る

初めてのGem作り。サポートしてくれる便利系ツールを使わずに、RubyGemsの機能だけで最低限の作り方に挑戦してみました。

「Gem使うだけで作れないのに紹介とかしてんのかよ!フリーライダーってやつか?作るの?作らないの?作るとしたらいつ作るの?」

俺の脳内総括で激詰めされたので仕方なく・・・。

君の代わりに僕がハマろう!

参照:

詳細: GemCasts Wiki – RubyGems

:: GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS :: Testing named_scope

To help out with the testing of simple named_scope definitions, we added a helper to Shoulda, should_have_named_scope:

シンプルTDDライブラリShouldaにRails2.1からの新機能named_scope用assertionが追加されたみたいです。

class User &lt; ActiveRecord::Base
  named_scope :old,      :conditions =&gt; "age &gt; 50" 
  named_scope :eighteen, :conditions =&gt; { :age =&gt; 18 }
  named_scope :recent,   lambda {|count| { :limit =&gt; count } }
end

class UserTest &lt; Test::Unit::TestCase
  should_have_named_scope :old,       :conditions =&gt; "age &gt; 50" 
  should_have_named_scope :eighteen,  :conditions =&gt; { :age =&gt; 18 }
  should_have_named_scope 'recent(5)', :limit =&gt; 5
  should_have_named_scope 'recent(1)', :limit =&gt; 1
end

Shouldaの良さは、

  • 覚えること(syntax)の少なさ
  • 今までのgeneraterでいい
  • 今までのファイルでいい
  • 今までのテストと混ぜられる

とかにあるとおもいますが、こういった身も蓋も無いマクロの数々が、面倒臭がりの俺にとってはうれしいです。

Thoughtbot(Shoulda開発者の会社)以外の開発者も入ったみたいスね。

typo5.1-is-out

Typo 5.1 is out, download now !

Before upgrading, read our Upgrade Typo From Sources or Upgrade Typo with Typo installer HOWTO

Typo is a blogging engine developped with the Ruby on Rails framework.

Rails脳BlogのTypo 5.1がリリースしたみたいです。なんかロゴっぽいものが出来てますね・・・。それより一刻も早くRedmineをトップページにするのをやめるんだっ!

なんか弄りたくなる部分いっぱいあるんですが、セッションすぐ切れたり、gettext使ってなかったり、テーマ切り替えが単なるファイルコピーだったり・・・。

少なくともGoogle Analyticsは入れたいので最悪なかったらそのプラグイン作って終わりかなあ。ChangLog見ると、en_US入れ忘れたりとか、何処の国の人がメインなんですかね?

nginx

出来立てっぽいんすけどダウンロードできないッスねー。・・・とRubyForge、サーバーによってはnginxなんですねえ。Apacheとnginxどっちのエラーも出たりするんだけどnginxを振り分けに使ってるってことかなあ?

typoの作者の方ではrailsアプリのインストーラーを作るgemが公開されてますね。使railsのアプリ名のコマンドを作って、「コマンド名 install ディレクトリ名」ってやるのをデフォルトにしようよって感じらしいです。

いいのは、ホントにコマンド1発になるのと、WordPressの時に話出てたけどバージョンアップに対応できることっすね。

【ニコニコ動画】GemCasts.10 RackとPassengerで最小アプリ

PassengerがRackに対応したとのことでRackを使った最低限のWebアプリを作ってみました。

10分以内に収める努力始めました。

新堂「スポーツはいいぞ」

参照:

詳細: GemCasts Wiki – Rack

移動中とか飯食ってる時に、

「どんなサイト作ったら儲かるかな?」

とか

「どんなサイト作ったらオモロイかな?」

なんてよく考えます。(考えるよね?)

今日の思いつき:

(日本の憲法全文ってネットに載ってるんだろうか・・・?ソースコードブラウザみたいに、章や行にURIがあったら参照や引用し易くていいんじゃないだろうか?)

(でもそんなの作ったら、とんでもない災厄が降りかかるのか、とっても良い事が起こるのか、それとも何もおきないのか。全然予想がつかないな。・・・・・・・・・おもしろい!)

と、思って家帰って検索してみたらいっぱいありやがんの。

日本国憲法

とか。

ですよねー・・・。

いろんなものにURIを付けてみる。そういった考えは他にどんな応用が思いつくだろうか。(百式風)

バージョン管理ツール「git」の使い方をスクリーンキャストで紹介する『GitCasts』 | 100SHIKI.COM

GitCastsはバージョン管理ツール「git」の使い方をスクリーンキャストで紹介している。更新は不定期だが、ブログを使って紹介しているのでRSS購読しておけば見逃すことがない。

なんてニッチな!

・・・っていうかGemCasts.orgってこれ見て真似したみたいな感じにならない!?

まあ、そもそもRailsCastsのパクリだけど・・・。

というかッスねー、ニコニコ動画ならではの「実況の楽しさ」を伝えたかったんですよね。スマートなチュートリアルじゃなくて。

「ゲーム実況動画見ると、実況無しゲームプレイ動画はもう見れない」みたいな。そしてそれにつっこむ楽しさ。

だからYoutubeとかにはあげないわけなんス。

まあ10回とかしか再生されてないのに何を言ってるんだおまえはって感じですけど、ちょっとブログのSEOとか頑張って行きたいです。(typoがまた使い辛いんだこれが)