2006-06-01から1ヶ月間の記事一覧

printとputStrの違い

putStrは引数がStringである必要がある。printは型を文字列に自動変換してくれる。 出力先を指定するときはhPutStrを使う。いまいちputStrを使わなきゃいけないというシチュエーションがよく分からないけど、printを使うと改行の部分がどうも改行されないよ…

lines関数の罠

hrefより 全てのシステムにおいて行末コードは \n であり、\r\n および \r は行末とは見なされない。 だそうです。罠というほどでもないけど意識しておいた方が良さげ。

tail

tailを書くのが流行ってるみたいなのでやってみた。 main = do cs <- getContents putStr $ lastNlines 10 cs lastNlines :: Int -> String -> String lastNlines n cs = unlines $ takeLast n $ lines cs takeLast :: Int -> [String] -> [String] takeLast…

hrefのREADME.ja

例によって自分もふつはすをやってるわけなんですが、Haskellの日本語を便利にコマンドラインから検索できちゃうhrefのREADME.jaにちょっと気になる点が。 データベースの準備 - [各種 UNIX の場合] (sh 系) $ HREF_DATADIR=/usr/share/href $ export HREF_D…

mapにも引数あっても良いんじゃないだろうか

String#eachのように引数をとれるeachのときにわざわざenum_for使うのもめんどくさいので、mapが引数取れてもいいんじゃないかと思えるのは自分だけだろうか。*1 module Enumerable def map(*args, &block) arr = [] each(*args) do |i| arr.push(block.call…

第7回Rails勉強会@東京

第7回Rails勉強会@東京へ行ってきました。第2回以来の久々の参加でした。何人か顔を覚えてくださっていた方もいらっしゃって前回よりも緊張せずに済みました。 パフォーマンスに関してのページを読む。 セッションの提案が滞っていたので一応他の人の意見を…

svn (copy|move) で複数のファイルを一度に実行する

svn mvやろうとおもったらなんかワイルドカードを認識してくれないっぽいということでワンライナーを初めて書いた。 $ruby -e "Dir.glob('*').each {|i| system(%|svn mv #{i} ../|) }"

八ヶ岳周辺でバードウォッチング

に行ってきました。具体的には観音平の周辺。鳴き声は聞こえるのですが、樹冠が高いため、なかなか鳥を見るのは大変で見つけられませんでした。また森が広大なので意外と鳥の密度が低いような気もしました。そのため鳥そのものを探すのにも割と手間取りまし…

段落ごとに処理を行なう

http://d.hatena.ne.jp/lurker/20060616/1150464251より。String#eachの引数に""を指定すると段落ごとに処理できるようです。知らなかった…。 "aiueo\naiueo\naiueo\naiueo\n\naiueo\naiueo\n\naiueo".each("") {|i| puts "<p>#{i.chomp.chomp}</p>\n" }実行結果: <p>a</p>…

文字列をマルチバイト文字を意識せずに扱えるようなラッパークラス

まだ作業途中のネタなのだけど、Rubyレシピブックを見てみるとマルチバイト文字列の処理にはいろいろとバッドノウハウを覚えないといけないくさいのでStringクラスのインスタンスをMultibyteStringクラスに変換することでマルチバイト文字を意識せず扱えるク…

サイン入りPCのサインの保護について

RubyKaigi2006の懇親会で買ったばかりのMacBookにMatzとDHHに油性サインペンでサインをしてもらいました。Ruby信者としてこのサイン達を可能な限り長く残したいと思っています。そのためのサインの保護手段としてはどのようなものが考えられるでしょうか?Fr…

iPod nano 4GB売り切れ

昨日たまたま電気屋で見かけたipod nano 4GBの中古品(23000円)が今日行ってみると売り切れていた。見つけたそのときに買うべきだったな。残念。

テストコードにはWhat、ソースコードにはHow、ドキュメントにはWhyを書くべきについて

http://d.hatena.ne.jp/babie/20060611/p2だとすると、RDocの各メソッドの説明はテストコード側に書く方がより自然であるといったことをどこかのページで見てこれにも共感した。ということでやってみようかなと思いRDocのライブラリのソースを少し漁ってみた…

某社説明会反省

基本的な話 道に迷って遅れてしまった。 → 次回は地図を印刷しておく → 少し早めに出る(予定がきつきつだったからしょうがないといえばしょうがないのだけど) → 真下にいたとしても気づかないこともあるのでビル名はしっかり覚えること あらかじめ質問する…

サッカーノートをつけよう

今サッカー熱が上がっていてサッカーネタを書くとアクセス数が少し上がるようなのでついでに書いてみる。自分は中高サッカー部だった。基本的に補欠で試合にフル出場したことないくらいなんだけど、練習はしっかりしてたし、先生の話などもしっかり聞いてい…

puts array

arr = [1, 2, 3] #=> [1, 2, 3] puts arr 1 2 3 #=> nil配列って普通にputsするだけで各要素を表示してくれるのですね。こんな初歩的なことなのに知らなかった…orz今までずっと表示するためだけに [1, 2, 3].each {|i| puts i }とかやってた自分がバカらしく…

モバイルファクトリー入りたい!!

ということで明日説明会にでも行って見ます。日経ナビ見る限りじゃあ新卒では営業職しか募集してないっぽいですが。まぁ技術も経験もほとんどないので厳しいかも。

RJS Templates for Rails

というのがPDF本であるらしい。 http://www.oreilly.com/catalog/rjsrails/日本の人で誰か読んだ人いるかなー。今度のRails勉強会@東京で聞いてみよう。

W杯 日本 vs オーストラリア

久しぶりにサッカーをじっくり見た。今日の川口は調子が良さそうだった。前半はビドゥカの独壇場。ビドゥカのポジショニングと体の使い方が巧すぎる。中盤でもうちょっとプレッシャーが欲しかった。日本1点目はまぁ運がよかった。GKのポジショニングが甘かっ…

自動的にEnumerableのメソッドとeach_*をくっつけてみる

1.9からは組み込みとなるenumratorは便利ですが、あんまり見た目はすっきりしないのでこんなの書いてみました。 require 'enumrator' module Enumerable def method_missing(meth_sym, *args, &block) tmp = meth_sym.to_s.split("_") after_meth = tmp.shif…

Rubyで日付・時間を操作

Perlで日付・時間を操作 - DateTime モジュールの使い方 http://iandeth.dyndns.org/mt/ian/archives/000619.html のようなことをRubyでやる方法を調べてみました。 基本 現在日時のインスタンスを作る Time.new #=> Mon Jun 05 20:03:59 JST 2006 Time.now …

タグの表記ゆれを防ぐテクニック

ライフハックの心理学: 情報整理ツール『TOMBO』より。 そのためには、「後で見る」とか「後で参照」とか「重要」とか「要チェック」などのように、表現を揺らさないことが望ましいわけです。後で見たいものには、いつでも「参照」というタグ(キーワード・…

irbを一定の間隔でロードしなおす

方法とかないでしょうか。開発しつつその挙動をirbでテストしてると開発元ファイルを更新したいときがあるのですが、requireは一回までなのでもう一回requireしても意味ないし…。

irbからシェルのコマンドを実行

たぶん既出だと思うけど自分のためにもメモ。.irbrcにmethod_missingを定義してコマンドを実行させるとIRBからちょっとした確認が出来て便利。 module Kernel def method_missing(meth_sym, *arg, &block) str = `#{meth_sym.to_s} #{arg.join " "}` if str …

Time#strftimeでタイムゾーンを+0900で表示する

http://rubyist.g.hatena.ne.jp/muscovyduck/20060601/p1 より。ひょっとしたら小文字にすれば出来るかも…ということでやってみたら出来ました。 Time.now.strftime "%a, %d %b %Y %H:%M:%S %z" #=> "Thu, 01 Jun 2006 18:27:44 +0900"ただしマニュアルによ…