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

5ヶ月突破

ただいまPC連続稼動153日。冬から夏へ。CPUが熱い…真夏は大丈夫だろうか… uptime 1年を目標にしよう。

httpclientでファイルのアップロードの仕方を追記

Rubyでwebにアクセスするならhttpclientが手軽 - http://rubikitch.com/に移転しましたちょうど質問があったので回答した。

書評:『初めてのRuby』は『やり直しのRuby』でもある!

生まれて初めて書評というのを書いてみます。Yuguiさん(id:yugui)より初めてのRubyを献本してもらいました。一言で言うと、「濃い」です。プログラミング言語にはその言語独自の文化がありますが、それを言葉で説明するのは難しいです。それを著者のYugui…

この記事自体が釣りじゃないか?

マスゴミ屋さんとJava屋さんの区別がつきません(もちろん部分集合) - kなんとかの日記GNU/Linux一筋でMacintosh使ってない非国民が釣られてみる。RubyKaigiを10分ほどしか聞いてない人がエントリ書くから、「発表のごく一部だけを切り取って、前後の文脈を…

Rubyでwebにアクセスするならhttpclientが手軽

http://d.hatena.ne.jp/willnet/20080626/1214487378httpclientはopen-uriの手軽さと、Net::HTTPの機能を両立させてる使い勝手のいいライブラリだ。クッキーやkeep-aliveもサポートしている。ただし、Ruby 1.9未対応。Ruby 1.9だとParseDateなんてないぞーっ…

そこでRangeですよ

2007-03-25 if 1 < x < 10 puts "#{x}は1から10の間!" else puts "#{x}は1から10の間じゃない" end みたいにかけるようにしてみた。 範囲リテラルがあるから不要だと思うなぁ。 x = 2 if (2..9).include? x puts "#{x}は1から10の間!" else puts "#{x}は1か…

w3mで406 Not Acceptableになるサイトが見られるようになった

Refactormycodeが見られないよー>< - http://rubikitch.com/に移転しました結論から言うと、「受けつけるメディアタイプ(Accept:)」(~/.w3m/configではaccept_media)が text/*, image/*, application/*, audio/*, video/* と設定されていたから。いじっ…

nkfっていろんなことができるのなぁ

nkfはただの漢字コード変換ツールではない。 改行コードやひらがな・カタカナを変換したり、MIMEエンコード・デコードやったり、他いろいろ。 nkfはそのままRubyやPerlからでも使える。いつも使っているツールの機能を再確認すると、おもしろい発見がでてき…

ブラウザ比較論

WEBブラウザについての質問です。 IEやSleipnir、opera、Firefox… - 人力検索はてな IEやSleipnir、opera、Firefoxなど、現在いろいろなWEBブラウザがありますが、 あなたが現在使われているブラウザの良いところ(他と比べてのメリットなど)、 悪いところ…

リストの総和

http://d.hatena.ne.jp/hiloicoli/20080622/1214151350applyがあるじゃない。 gosh> (define l '(1 2 3)) l gosh> (apply + l) 6 Common Lisp、Emacs Lispでも。 (apply #'+ '(1 2 3)) ; => 6 (#o6, #x6)

Emacs Lispはシングルスレッド

http://d.hatena.ne.jp/hiloicoli/20080621/1214020942 つうか今時マルチスレッド非サポートの言語なんてあったのかという驚き. Emacs Lispはマルチスレッド非サポート(涙) それどころかレキシカルクロージャーすらないしw lexical-let?あれはエミュレー…

自分を磨けばいいじゃないか

顔が悪いというだけで人生の喜びの9割を失う。 - ガイチ帝国繁盛記 ブスはますますブスに (略) でもブサイクに生まれてしまった段階でそれが達成できる可能性がすごい低い。これはひどい。逆転が出来ない。 そこで整形ですよ。芸能人の整形前の写真を見たら…

正規表現の先読みについて解説してみる

先読み正規表現について、この前やっと理解できた。Rubyリファレンスマニュアルではこんな説明になっている。 (?= ) 先読み(lookahead)。パターンによる位置指定(幅を持たない) (?=re1)re2 という表現は、re1 と re2 両方にマッチするものにマッチする正規表…

無事っすよ

http://d.hatena.ne.jp/piyo2-moko/20080621#1214056762 ・ るびきちさーん。ストーカーじゃないけど、にっきの更新がとまっていたので、何かあったのかなとか、思った ら今日更新されていたので、生きていてよかったです。すいません、大きなお世話です。た…

xmpfilterの紹介御礼

Vim+xmpfilterでirbいらずのRuby試行錯誤開発 - ナレッジエース秀丸でxmpfilterを使う - 書き捨て御免xmpfilterの紹介どうもありがとう。広まっていくと嬉しい。xmpfilterの実例等については「ruby」の検索結果 - http://rubikitch.com/に移転しましたや「xm…

「青少年にとって有害」ってなんだろうね

悪名高き(青少年)有害サイト規制法の例示する「有害」とは 犯罪や自殺を誘引する情報 著しく性欲を興奮させる情報 著しく残虐な内容の情報 ってあるけどさぁ、世の中有害な情報ってほかにもあるよね。ゴールデンタイムにやってるクイズ番組で小学生の算数…

スーパーマリオブラザーズの「次の面」を求める→裏面に対応してみた

スーパーマリオブラザーズの「次の面」を求める 〜Rangeとsuccメソッドの甘い(?)関係〜 - http://rubikitch.com/に移転しました

testrbで複数のテストを一括実行

テストスイートの作り方 - うなの日記 以下のようなテストケース「foo-test.rb」,「hoge-test.rb」があるとして、 これら両方のテストを実行するようなテストスイートは、次のように書けます。 んなことしなくてもRubyインストール時に付いてくる「testrb」…

privateなアクセサは例外的に「self.value = x」という形が許される

2008-06-12 self.methodのように書くのもだめ ぢつは例外がひとつだけ。 class Hoge private attr_accessor :value # !> private attribute? def foo() :hoge end public def hoge self.foo rescue $! # => #<NoMethodError: private method `foo' called for #<Hoge:0x83893f4>> self.value = 3 end end hoge = Hoge.new hoge.</nomethoderror:>…

専用クラスを作ってキーワード引数の代わりにする

引数をハッシュにするより専用クラスを作って(ry - きみのハートを8ビットキャスト class Freq def initialize( freq ) ; @freq = freq ; end def to_i ; @freq ; end end class Bit def initialize( bit ) ; @bit = bit ; end def to_i ; @bit ; end end cl…

Rubyの代入は名札貼り付け

人にRubyを教えるとき - 18 til i die (another phase) ・ 代入が実は代入ではないということ 箱ではなくて名札であると教えればよいと思う。なまじ「代入」という言葉を使うから混乱するんだろう。 名札というかポストイットか。貼って剥がせるもの。 # "ho…

Module#define_methodとsuper

define_methodの中にsuperを書くとどうなるか実験。 class A def hoge "hoge" end end class B < A define_method :hoge do "[#{super}]" end end class C < A define_method :hoge do "[#{super()}]" end end RUBY_VERSION # => "1.8.7" B.new.hoge rescue …

スーパーマリオブラザーズの「次の面」を求める 〜Rangeとsuccメソッドの甘い(?)関係〜

Range#eachはsuccメソッドを内部で呼ぶ、だからRangeにStringを指定することもできる。 しかーし、String#succが常に「正しい」次の文字列を返すとは限らない!そこで、おれおれsuccを定義してやろうじゃないかというお話。平成生まれの人は知らないかもしれ…

フィルタリングはザル

http://d.hatena.ne.jp/piyo2-moko/20080611/1213204371 [犯罪や自殺を誘引する情報」「著しく性欲を興奮させる情報」「著しく残虐な内容の情報」別に見ても、流してもいいと思います。それで被害にあう人を作らないで欲しいと思います。 そうなんだけどねー…

最新版のgemパッケージのディレクトリ、RubyGems内のRubyスクリプトを列挙するスクリプト latest-gems

システムでインストールされているRubyスクリプトのリストがほしかったので、リストを得るスクリプトを書き殴ってみた。 locateやfindでリストできるけど、RubyGemsは複数のgemパッケージがインストールされている状況なので、だぶってしまうのが嫌。機能は…

有害情報を規制してしまうと考える力が失われるだろ

http://d.hatena.ne.jp/piyo2-moko/20080611#1213144340考える力か…文部省は考える力をつけようと躍起になってるらしいけど、ネット規制法案は受け入れ難い。 有害情報を取り除いてしまうと、青少年が18になったときにどれが有害なのかがわからないのだが?…

Enumerable#reduceはEnumerable#injectの別名

DjangoのORMのすごいところ - 偏った言語信者の垂れ流し Rubyで言うところのinject Enumerable#collectにEnumerable#mapが用意されてるように、今のRubyはinjectにreduceという別名も用意されている。 ついでに演算子をシンボルで渡せるようにもなってるぞ!…

ブロックのdo〜endは制御構造に、{}は式に

{ } と do end の違い - gan2 の Ruby 勉強日記 require 'benchmark' puts Benchmark::CAPTION puts Benchmark.measure { a = [1, 2, 3] a.replace [4, 5, 6] } このように { } を使うのは OK なのに { } を do end に変えると require 'benchmark' puts Ben…

Structは便利

RubyのStruct - 西尾泰和のはてなダイアリーハッシュのようにも配列のようにもオブジェクトのようにもアクセスできるからRubyのStructは萌える。そこでStructですよ - http://rubikitch.com/に移転しました

uim-skkを入れるとFirefoxがSEGVる

http://d.hatena.ne.jp/hiloicoli/20080606/1212743368奇遇なもので、俺も彼と同じくDebian + ratpoisonなわけだが… 俺は10年ほど使ってるけどいつもEmacsで作業をしているため、全然Xで日本語入力しておらん。ということで試しに入れてみた。 $ sudo apt-ge…