2006-04-02 (日) [長年日記] Edit
■ Webページでダイスを振るbookmarklet
これはすごい。アイデアがすごい。
■ [映画]
カンフーハッスル コレクターズ・エディション [DVD](チャウ・シンチー)
カンフーへの愛が感じられなかった。
2006-04-05 (水) [長年日記] Edit
■ [本]
Nana (15) (りぼんマスコットコミックス―クッキー (1676))(矢沢 あい)
なんか出てるの気づかなくって今頃買ってきた。なんかねえ。アニメもあるらしいですね。
■
Web Site Cookbook (Cookbooks (O'Reilly))(Doug Addison)
とりあえずsafariへ。他人はどうやってんだろう、という意味で。
2006-04-06 (木) [長年日記] Edit
■ [Rails] 複数の error_messages_for を出したい
if foo.valid? and bar.valid?
みたいな条件文だと、前者がfalseになった時点で抜けちゃうので、bar.valid?が効きません。だもんで、fooのエラーメッセージは表示されるけど、barのエラーメッセージが表示されないーみたいになる。
ので、愚直に
foo_valid = foo.valid? bar_valid = bar.valid? if foo_valid and bar_valid
みたいにやるのだ(まじ?)。
となると、今度はエラーメッセージをまとめたいわけだが。
偉い人がいるわけですよ。
とりあえずplugin化してつっこんどく。
なかださんのやり方がイイ!!
if foo.valid? & bar.valid?
■ [Rails] railsコマンドで生成されるものの比較。対象はver.1.0とrev.4184。
とりあえず。tmpディレクトリだけかな。
2006-04-14 (金) [長年日記] Edit
■ [Rails] .fieldWithErrosがtextareaだけ変な件
ぐぐっても見つからなかったんだけど、みんなおかしいと思わなくって?
まず、DIVじゃなくてSPANで囲むようにする。
module ActionView
class Base
@@field_error_proc = Proc.new{ |html_tag, instance|
"<span class=\"fieldWithErrors\">#{html_tag}</span>"
}
cattr_accessor :field_error_proc
end
end
で、CSSをtextareaとその他に分ける。
.fieldWithErrors input {
border: 1px solid #f00;
}
.fieldWithErrors select {
border: 1px solid #f00;
}
.fieldWithErrors textarea {
border: 1px solid #f00;
}
firefoxだとradiobuttonはあんまり変更できないんだなあ。
あきらめろ。
2006-04-15 (土) [長年日記] Edit
■ [tDiary] tDiaryPartyの資料作ったんだけど
30分で作ったお。
独自のフォントを使うと画像にするのが無難だなあ。 と思って、PPTをJPEGにして保存。 それを表示するJavaScriptを作っといた。
あまりにもふつーすぎるのでなんともアレですが、今後も自分で使うと思うので。
<html>
<head>
<script>
var count = 0;
function next() {
var image = document.getElementById('image');
count++;
image.src = count + '.jpg';
}
function back() {
var image = document.getElementById('image');
count--;
image.src = count + '.jpg';
}
</script>
</head>
<body>
<a href="#" onClick="next();">
<img src="0.jpg" id="image">
</a>
<br>
<a href="#" onClick="back();">BACK</a>
</body>
</html>
■ [tDiary] tDiary Party 2.1
なんといってもVim使いの7歳の少女だろう(そこか?)。
あと、『
Sweet Goddess―叶美香写真集 DVD付(叶 恭子)』見たよ(そこなのか?)。
ちょっと真面目に
tDiaryを使ってなかったら○○してなかったってことがものすごーーーく多くて、blikiの翻訳もそうだし*1、PofEAAの読書会もそうだし、今Rubyを使って仕事しているっていうのもそうだし、大好きなきらきらアフロもそうだし(重要ね)。大切なことはすべてtDiaryが教えてくれたですよ(言いすぎ?←古い)。
自分のなかでボツになったネタ
「tDiary脳の恐怖」っていうのをいくつか考えてたんだけども、
- CSSを作るときは「main」と「sidebar」と名づける
- とりあえずプラグイン化できないかと考える(症例:hsbt氏など)
- TrackBackは使えるけど使わない(面倒くせー)
- なんだかんだで、やっぱりCVS
いまいち。
tDiary 2.1.4リリースの瞬間をLiveで
いや、めでたい。
*1 そういえば、artonさん、ありがとうございました。名前出していただいちゃって。
2006-04-16 (日) [長年日記] Edit
■ あ、そうそう、dot Barのジンジャエールはウィルキンソンでしたよ。
たぶん。
■ 日経スペシャル「ガイアの夜明け」できる新卒を採れ
人形町はダサいから移転しましょう、制服はダサいからやめましょう、という人材採用コンサルティング会社ワイキューブの提案が、「人形町は便利だし」「私服だと痛むから制服がいい」と女性社員から反対されていたのが笑ったなあ。
それでも移転しちゃうところがアレだよな。
■ [本]
開発の現場 Vol.004 効率UP&スキルUP エンジニアのための実践ソフトウェア技術誌(SE編集部)
amazonから到着。artonさん+るいもさんによるPofEAAのところだけ読んだ、本当にありがとうございました。あ、あと、ひがさんが大前研一に影響を受けていたのは意外だった。へー。
っつーか、他のところをちゃんと読める人はすごいなあ。眠くなる。 中でも矢沢久雄さんの連載はすごい。ツッコミどころ満載ですごい。ぜひ読むべき。
2006-04-17 (月) [長年日記] Edit
■ [Rails] つーか、validates_inclusion_of って動く?
なんか知らんけど、常にエラーになっちゃう。
- View
<%= text_field 'member', 'birth', :value => 1980 %>
- Model
class Member
validates_inclusion_of :birth,
:in => 1900..Date.today.strftime("%Y").to_i
:
:
end
consoleだとちゃんと動きそうなのよ
>> (1900..Date.today.strftime("%Y").to_i).include?(1980)
=> true
あーーーーー分かった!!
MySQLのYEAR型にしてるのがイカンのかなあ、なんかString型で送られてくるらしいので、
- Model
class Member
validates_inclusion_of :birth, :in => "1900"..Date.today.strftime("%Y")
:
:
end
とするとオーケー。
#validations.rbの中でp打ちまくったよ...orz
2006-04-18 (火) [長年日記] Edit
■ 開発スケジュール管理
なんかツッコミができないので、こちらで。「残り時間」って、「現在見積-経過時間」だったりしますか?
■ 今日のハマりどころ
auに半角カナの入ったメールを送ると「このメールには本文がありません。」とな表示されて本文が読めなくなる。
■ [DB] Navicat PostgreSQL
PostgreSQL版も出てたのかー。使ったことないけど、良さげだよね。
2006-04-21 (金) [長年日記] Edit
■ [Ruby] Class名をインスタンス名に変更する
たとえば、ProjectManagerを project_manager に変更するにはどうすればよい?
(1) がんばる
class ProjectManager
end
pm = ProjectManager.new
pm.class.to_s.gsub(/[A-Z]+/) {|m| '_' + m.downcase }[1..-1]
# => project_manager
(2) すごいやり方がある
(たぶんここに書かれる)
(3) Railsとかにいいメソッドがある
さあ? あるといいな。
(3)' お、ありがとう。
def underscore(camel_cased_word)
camel_cased_word.to_s.gsub(/::/, '/').
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
gsub(/([a-z\d])([A-Z])/,'\1_\2').
tr("-", "_").
downcase
end
2006-04-22 (土) [長年日記] Edit
■ [映画]
バタフライ・エフェクト プレミアム・エディション [DVD](エリック・ブレス/J・マッキー・グラバー)
これは面白い。
時間を扱っている以上は、そこに色々とツッコミどころはあるんだけど、とりあえずそれを差し引いて考えると、どこまで行っても自分中心な世界観という「稚拙さ」、そしてそれを自分のスイッチひとつでガラリと変えてしまえる「容易さ」、そしてその容易さとは裏腹に、自分の意思とは関係なく表れる事実の「重大さ」。それらのギャップがいちいちオモシロス。
RPGやってて、敵が強い → やられた → リセット → ストーリーが変わる → 別の敵が強い → やられた → リセット、みたいな。でも、リセットするごとに脳に異常をきたす、という諸刃の剣。
なんかよくわかんないけど、主人公と一緒にゲロ吐きそうになったよ。面白い。
2006-04-23 (日) [長年日記] Edit
■ CSS Nite公式ブログ: CSS Nite Vol.7フォローアップ(1)第1部(益子貴寛さん)のプレゼン資料
これは勉強になるなあ。知らないこと多すぎ。いかん。
とりあえず、テーブルレイアウトしか知らないデザイナーみんなしね(たむけん風)。そして、『
Web標準の教科書―XHTMLとCSSでつくる“正しい”Webサイト(益子 貴寛)』を読め。俺はさっき注文したどー。
自分用メモ
基本はdiv要素+id
- header
- globalnav
- content
- sidebar
- footer
個別性を忘れていませんか?
基本的にid/classには要素タイプをつける
Mozilla.orgの外部CSSで示されている順序が参考になる。
- 視覚整形モデル
- ボックスモデル
- 背景と前景
- フォントとテキスト
- 生成内容
2006-04-25 (火) [長年日記] Edit
■ [Ruby] Magick::Image::read_inlineがない
irb(main):001:0> require 'RMagick' => true irb(main):002:0> Magick::Image::read_inline NoMethodError: undefined method `read_inline' for Magick::Image:Class
うえー。1.10.1なんだけどなあ。
RMagick 1.7.0 : o Added read_inline to Image class
なんか根本的に間違っているのかなあ。
がぁーC拡張かー。
あ、だめだ。よくわからん。makeできぬ。やめ。
■ [Thunderbird] 保存されているパスワードを変更するには
パスワード変更できないかと思って焦ったよ。
2006-04-26 (水) [長年日記] Edit
■ [Rails] FileColumnを使ってみるよ(初級)
れしぴぶっくの『Processing Uploaded Images』の「Also See」に載っていたやつ。これはスゴス。クオリティタカス。画像のアップロードが面倒なのでRails嫌いになった人もこれで安心!(たぶん)
でも、日本国では確認画面があるのですよ(しかもセッション使わないやつ!)とか思ってたら対応してやがんの!すげー!
というわけで、やり方を見てみるよ。
テキトーなモデルを作るよ(MySQL)
CREATE TABLE samples ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, image VARCHAR(200) NULL, PRIMARY KEY(id) )
scaffold実行
$ ./script/generate scaffold sample
モデルにオキマリフレーズを追加
class Sample file_column :image end
Controller修正しまーす
confirmメソッド(確認画面)を追加しました。
class SamplesController < ApplicationController
def index
new
render :action => 'new'
end
def show
@sample = Sample.find(params[:id])
end
def new
@sample = Sample.new(params[:sample])
end
def confirm
new
end
def create
@sample = Sample.new(params[:sample])
if @sample.save
flash[:notice] = 'Sample was successfully created.'
redirect_to :action => 'show', :id => @sample
else
render :action => 'new'
end
end
end
new(新規画面)のView
multipartをフォームに追加するのと、 独自へるぱの file_column_field を追加した。 フォームの飛び先はconfirm。
<h1>New sample</h1>
<%= start_form_tag({:action => 'confirm'}, {:multipart => true} )%>
<%= file_column_field 'sample', 'image' %><br/>
<%= submit_tag "Confirm" %>
<%= end_form_tag %>
confirm(確認画面)のView
<h1>Confirm New sample</h1>
<%= start_form_tag :action => 'create' %>
<%= image_tag url_for_file_column('sample', 'image') %>
<%= hidden_field 'sample', 'image_temp' %>
<%= submit_tag "Create" %>
</form>
ここでのポインツはコレ。
<%= hidden_field 'sample', 'image_temp' %>
(しばらく悩んだのは内緒だ)
はーい、createされたので、show(詳細表示)しまーす(たむけん風)
独自へるぱでごー。
<%= image_tag url_for_file_column('sample', "image") %>
スバラシスなあ。ホホホーイ。
2006-04-27 (木) [長年日記] Edit
■ [WORK] モチベーション向上研修に行って来る
ぐむー。 いつまで経っても忙しいので、とりあえず今日抜けて行ってくる。 行く前からモチベーション下げてどーするんだ。
DHHは「仕事を成し遂げる」←「モチベーション」←「ハッピー」←「美しいコードを書く」てなことを語っていたわけだが(ハッピーと美しいコードは逆かも)、モチベーションのメタに何かないと素でモチベーションは上がるわけないよなーとか、今は普通にモチベーションありまくりなんだがなーとか思いながら、続きは帰ってきてから書く。
帰ってきた
自己変革重要。おわり。
ちょーつまんね。
■ [本]
よつばと! (5) (電撃コミックス (C102-5))(あずま きよひこ)
だんだんと性格が悪くなっている気がするw
2006-04-28 (金) [長年日記] Edit
■ 357 273 277
MySQLに初期化用のデータをインポートしようとしたら、文法が間違ってるZEとか言われて、あーSQLも分からなくなったのかーと、あやうく泣きそうになった。よくよく調べたら頭に「357 273 277」が入ってるらしく、UTF-8Nに保存しなおして解決。これで眠れる。
2006-04-29 (土) [長年日記] Edit
■ REAL SIMPLE JAPAN
へーこんな雑誌があったのかー。思えば、主婦の知恵とかってLife Hacksっぽいよね。
Ruby for Rails: Ruby Techniques for Rails Developers(David A. Black)
はじめの一歩を踏み出そう―成功する人たちの起業術(マイケル・E. ガーバー/Michael E. Gerber/原田 喜浩)

1 あまのりょー [えー、Life Hacks PREESS ゲットしますた!]
2 inao [うおっ,すごいっす. それにしても,さすがグランデってゆう濃いランキングですね.]