• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

iPadの解像度は

  • 1024×768ピクセル、解像度132 ppi
  • 画素数は786,432 画素

32bitカラーで3MB

posted by Png genki on Sun 30 May 2010 at 09:29

Ubuntu 10.04 では、JDKのデフォルトが SunJDK から OpenJDK に変更され、SunJDK はパッケージにも含まれなくなりました。 恐らく、今後の Sun によるサポートを不安視する声が多く、 将来的に安定したパッケージリリースを行うために独立する流れになったのだと思われます。

しかしながら、OpenJDKは若干機能的にSunJDKに遅れている事もあり、 SunJDKが使えないと困る局面があるのも事実です。 その場合、以下のpartnerパッケージを追加することで、 10.04でもSunJDKが利用できるようです。

   1  deb http://archive.canonical.com/ lucid partner

   1  # aptitude update
   2  # aptitude search sun-java6
   3  p   ia32-sun-java6-bin      ...
   4  p   sun-java6-bin           ...
   5  # aptitude install sun-java6-jdk

また、OpenJDKと併用している場合は、 下記でパッケージのデフォルト設定を SunJDK にすることが可能です。

   1  # update-alternatives --config java

posted by Png maiha on Thu 27 May 2010 at 14:37

嫌がらせとしか思えないのですが、MacOSのJDK6は、デフォルトのエンコーディングがSJISになっています。JDK5ではUTF8だったのに、なぜ...

とりあえず、デフォルトでUTF8にしたい場合は、~/.zshrc あたりで

   1  export _JAVA_OPTIONS=-Dfile.encoding=UTF-8

しておけばok. 嵌りかけました。

posted by Png genki on Wed 26 May 2010 at 19:08

bzrを使って指定したリビジョンの状態に戻す場合は以下のようにする

   1  % bzr revert -r 881

posted by Png genki on Thu 20 May 2010 at 01:12

ext3の1ディレクトリに大量のファイルを配置すると、 ファイルアクセスが遅くなります。 一般的な回避策は、何らかのハッシュ値でディレクトリを階層的にする方法ですが、実際にやるとなると数行でできるとは言えちょっと面倒です。 そこで、これを手軽に実現できるようにライブラリに追加しました。

Pathnameと同じAPIですので、 最初はPathnameで使っておいて、 数が増えたらHashnameに変えるという使い方ができるので便利だと思います。 (マイグレーションも両者で一緒にloopするだけでOK)

   1  import com.s21g.rubyist.{Pathname,Hashname}
   2  
   3  val path = Pathname("data/users/910.xml")
   4  val hash = Hashname("data/users/910.xml")
   5  
   6  path.path  // => "data/users/910.xml"
   7  hash.path  // => "data/users/e/2/0/e205ee2a5de471a70c1fd1b46033a75f/910.xml"
   8  
   9  hash.write("Love Scala!")
  10  hash.read  // => "Love Scala!"

また、com.s21g.rubyistには先日の rescue の実装も入っていますので、 よかったら使ってみてください。 jar ファイルは Downloads から入手可能です。

参考

posted by Png maiha on Wed 19 May 2010 at 03:44

中置記法と暗黙変換のコンビネーションでRubyの後置rescue的なものをScalaで実装してみました。

   1  class Rescueable[A](a: => A) { 
   2    def rescue[B](b: => B) = try{a}catch{case _ => b}
   3  }
   4  
   5  implicit def anyToRescueable[A](a: => A) = new Rescueable(a)
   6  
   7  println("12341234".toLong rescue 0)  // => 12341234
   8  println("1234x1234".toLong rescue 0) // => 0

call-by-nameがポイントです。

Update

bがcall-by-nameになっていなかったので修正しました。

posted by Png genki on Tue 11 May 2010 at 11:06
7th Fri

Ruby vs Scala

RubyistがScalaを簡単に把握できるように、 Google Spreadsheet で対応表をつくってみようかと思いました。

気が向いたら項目を追加していきます。

だれでも編集できる状態なので、加筆修正welcomeです :)

See Also

posted by Png genki on Fri 7 May 2010 at 21:12

ざっと調べてみた感じでは

posted by Png genki on Mon 3 May 2010 at 10:09 with 4 comments