タグ

ブックマーク / yarb.hatenadiary.org (4)

  • しつこく Hub を読む - yarbの日記

    しつこく「Hub」を眺めている。語学学習に精読と多読の2つのアプローチがあるように、コードリーディングにも精読というのがあるはずで、試しにそれをやってみている。モヤッする「分かってない感」を感じたら、基的に分かるまで調べるのが精読。そのためには、ブログエントリとして分かったことを書き出すのは良い方法のような気がしたのでやってみている。ほとんど誰も読んでないブログだとはいえ、アウトプットの形にするのは手間だし、何だか気分的には常に挫けそうなんだけど、「なんとなく分かった気になる」という厄介な悪癖を変えるには十分に時間に見合うと思う。 で、やってみて分かったけど、RubyのこともRubyのイディオムのことも、まるで分かってないということが良く分かった。「コードを読む」ということが何かも分かってなかったなと思った。なんとなく眺めてちゃ駄目だな。まず精読。そのうち多読ができればいいなと思っている

    しつこく Hub を読む - yarbの日記
    dai_air
    dai_air 2012/12/28
    見てれぅ:しつこく Hub を読む - yarbの日記
  • じゃんけんごときにクラスなんて要るのか - yarbの日記

    CodeIQというプログラミング課題に挑戦するサイトに、Rubyでジャンケンクラスを作れという問題があったのでやってみた。すでに問題は読めなくなっているけど、こんな感じのJankenクラスを作れという。 $ irb > require './janken.rb' > left = Janken.new > right = Janken.new > left.versus(right) 左の人が勝ました。右「チョキ」左「グー」 > left.versus(right) 右の人が勝ちました。右「チョキ」左「パー」 : :繰り返しirbで実行できるように、とある。 問題を見た瞬間、これは問題自体がおかしいのではないかと思ったけど、やってみた。 # -*- coding: utf-8 -*- class Janken attr_reader :hand NAME = { goo: "グー", ch

    じゃんけんごときにクラスなんて要るのか - yarbの日記
    dai_air
    dai_air 2012/12/06
    見てれぅ:じゃんけんごときにクラスなんて要るのか - yarbの日記
  • Rubyで自前の例外クラスを作るときExceptionではなくStandardErrorを継承する理由 - yarbの日記

    Rubyの例外について少し調べたので、まとめてみる。 多くのモダンな言語同様にRubyでは例外処理機構が組み込まれている。 ファイルを開こうと思ったらファイルが存在しなかった ネットワーク先のサーバが反応しなくてタイムアウトした 定義されていない(存在しない)メソッドを呼んだ 0で割り算をしてしまった など想定外の問題に遭遇したときに、その問題を無視せずプログラマが何らかの対応処理をするための枠組みを提供する。 C言語など古い言語では、関数からの戻り値でエラーコードを返し、それによって呼び出し側がエラー処理をその場で記述する。例えば、fopen(3)が失敗すると戻り値としてNULLが戻ってきてグローバル変数のerrnoに失敗の理由を示すエラーコードが設定される。 #include <stdio.h> #include <string.h> #include <errno.h> int ma

    Rubyで自前の例外クラスを作るときExceptionではなくStandardErrorを継承する理由 - yarbの日記
    dai_air
    dai_air 2012/10/14
  • RubyのDateTimeとTimeはどちらを使うべきか - yarbの日記

    TimeはもともとPOSIXのtime_t型のラッパーで、内部的には1970年1月1日を起点とする秒数を保持している。 WikipediaによるUnix timeの記述を見ると、time_tは、なんと初期のUnixでは32ビット整数であったものの、60Hzのクロックに同期してカウントアップしていたそうだ。1秒間に60カウント進む。これでは2年半しか表現できない。のちに1Hz、つまり1秒1カウントで進むように変更され、これで前後130年の時刻を表現できるようになったそうな。 よく知られる2038年問題は32ビットの符号付き整数で表現できる1970年1月1日を起点とした場合の上限が2038年1月19日の午前3時14分7秒であるという話。 RubyのTimeクラスも、この制限を受けていた。 「受けていた」というのは、Ruby 1.9.2や、1.9系の新機能を1.8系へバックポートした1.8.7以

    RubyのDateTimeとTimeはどちらを使うべきか - yarbの日記
    dai_air
    dai_air 2012/10/04
    見てれぅ:RubyのDateTimeとTimeはどちらを使うべきか - yarbの日記
  • 1