Shuhei Kagawa

Ruby の Hash#default

Feb 17, 2010 - Ruby

Windows XP の Ruby 1.8.7 で

h = {}
h.default = []
h["hello"] << "world"

としたとき

puts h.size # => 1
puts h # => {"hello"=>["world"]}

となるのを期待していたのですが {} と出力されます。 さらに、なんと以下のようになりました。

puts h["foo"] # => ["world"]

つまり、Hash のデフォルト値は一つの値を使い回しているということ。その場でコピーが作られる訳ではないようです。

Windows で grep

Feb 17, 2010 - Windows
findstr /n /s /c:"hello world" sub_dir\*

これで subdir 以下の “hello world” を含むファイルと行を表示できます。 /n で行番号表示。/s は再帰的に。

findstr /n /s "hello world" sub_dir\*

とすると、“hello” と “world” の両方にマッチしてしまうので注意。

via コマンドプロンプトで,暗記するべき10の必須コマンド  (前半) ファイル処理系 – 主に言語とシステム開発に関して

Eclipse の起動エラー

Jan 20, 2010

Eclipse IDE for Java EE Developers (based on Eclipse 3.5 SR1) をダウンロードしてから最初の起動時に “JVM Terminated.” 的なエラー。 eclipse.ini を修正。

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.jee.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

上を下に。

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.jee.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
C:\Program Files\Java\jdk1.6.0_18\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m

via Eclipse の起動エラー(JVM terminated. Exit code=-1) – がんばれ!aotan2008