オライリーカフェ

今まで技術コネタばかりでしたがちょっと書きたくなったので
ITというか、プログラマ向きなカフェをオープンさせたいのですが、メニューのアイデアをください。 ちょっと小洒落たインテリア、本棚はオライリーで揃え、コンセント・無.. - 人力検索はてな
http://q.hatena.ne.jp/1201442424

いいねこれホント!
エンジニアが集まるような・・・

前からオライリーカフェは妄想してましたからね こりゃいいね

Rubyでいろんなソースコードをお手軽自動生成してみる

どうも・・・また更新が止まっていました。
黒猫のSQL stdio関係でこられる方と、Rubyでの日本語メール送信で来られるかたが多いようです。
作者の方にもコメント書いて頂いたりと、結構やっぱりネットは狭いですね。


Rubyはそのお手軽感で、普段使いの言語として抜群の使い勝手なんですが、そのなかでもこのソース自動生成はもう私の中では定番中の定番テクになってます。

ソース自動生成するってことは・・・実はまともに設計せずにコピペが多いことの裏返しなんですが・・・いいじゃないですか!

ってことで、毎度毎度のお手軽サンプルコードです

require 'erb'

hoge = ["ほげほげ", "もげもげ", "ぴよぴよ"]

hogegen = ERB.new <<-EOF
<ul>
<% hoge.each{|a_hoge| %>
<li><%=a_hoge %></li>
<% } %>
</ul>

EOF

puts hogegen.result

こう書くと

<ul>
<li>ほげほげ</li>
<li>もげもげ</li>
<li>ぴよぴよ</li>
</ul>

こう出力される。

このerbっていうテンプレートのライブラリを使います。smartyとかjspみたいなものとか言えばわかりやすいですかね、そっち系の人らには


使い方は簡単

<% #何かrubyのコード %>

こんな風に<%で挟んでrubyのコードを書くだけ
制御構文とか、変数とかもそのまんま使えるから、その間間に生成したいコードを混ぜていけばいいだけ

最後にputsで出しておけばあとはリダイレクトなりすればソースの完成〜
便利だわ。
変な前準備もいらないしね〜

追記:
ERBのコンストラクタ外で使っている変数を取り込む場合は出力の際に

hogegen.result(binding)

このようにして実行されているメソッド情報を渡してやる必要がある

Rubyレシピブック 第2版 268の技

Rubyレシピブック 第2版 268の技

ループ構文で最初の1周目をうまく書く

なんか常識というか慣例にとらわれて変な書き方してました

for(i = 0; i < 10; i++){
	if(i == 0){
		alert("最初だけだよ");
	}
	alert(i + "周目だよ");
}

なんかだめな感じがしますね・・・・
これって

for(i = 0,(function(){alert("最初だけだよ")})(); i < 10; i++){
	alert(i + "周目だよ");
}

こう書けるってことにハッっと今頃気づきました・・・ヤバヤバ

スクリーンショットをwikiやブログアップ用に加工する私のやり方

仮想環境で開発環境リッチマンになる1を書いてたのにWebDB Press でcoLinuxでの記事を書かれてしまい・・・うだうだやってないで早くLinuxを入れる工程を書いとけばよかったなと・・・
思いつつちょっと・・・

そろそろ市民も見えてきました・・・コネタです。


スクリーンショットはそのままアップするには解像度がデカイし、注釈も入れたいし、丸で囲んでみたりしたいし、切り取ってみたいし・・・っといろいろ加工してからアップするね

とりあえずPrintScreenのキーでクリップボードに画像を入れます。特殊なソフトを使うとマウスカーソルとかもスクリーンショットに入れることができるので便利ですね。

クリップボードIrfanViewって画像Viewerに貼ります。そして必要な部分だけ選択して、カットします。

カットしたスクリーンショットクリップボードに入っているのでこれを「エクセル」に貼り付けます。ここまでくればあとは自由自在ですね。テキストボックスで説明入れたり、オートシェイプで囲んだり・・・っで・・・それってエクセルファイルジャン!って突っ込みがあると思いますがエクセルには裏技があって・・・何故かshift押しながら上のメニューの編集を開くと、普段は出てこない「図のコピー」という項目が出てきます。画面にあわせて→ビットマップを選択すると選択しているオブジェクトだけ画像としてクリップボードに突っ込むことができます。
これをやるVBA

Sub Macro1()
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
End Sub


あとはそれを保存するなりなんなりしてwikiやブログにアップすればいい感じになります。

っでファイルに保存してアップするのもウザイのでpukiwiki専用ですけどアプリ作ってみたのでどうぞ・・・
PukiWikiアップローダー君

Rubyで恐ろしく簡単にCSVファイルのデータチェック

データが問題でプログラムがバグる時ってありますよね。
そういうときに原因を突き止めないといけないんだけど、50万行ぐらいのCSV渡されて途方にくれるときってよくありますね。
じゃチェックするプログラムを作ろうと思って作ったんですけどあまりの簡単さに笑っちゃいました

require "csv"
CSV.open('file.csv', 'r') do |row|
    print row[1] + \n
    #こんな風にカラムを取り出して何かする
end

恐ろしく簡単ですね。ホントRubyってツール生産装置だと思います。
細かいところはともかく使えるものか簡単にできますね