2012-02-29

Javaの仕様を復讐する

これはCOBOLの分! これはC言語の分!

オーバーライドとオーバーロード
サブクラスでのメソッドの上書きと同名メソッドの複数定義。前者はシグネチャとメソッド名が同一。後者はメソッド名は同一だが、シグネチャは異なる。
ローカルクラス
メソッド内で定義されたクラス。アクセス修飾子を付けられないので

Enumの呼び出し方

例外処理
RuntimeExceptionとそのサブクラス=実行時例外は実行するまで発生するか予見できないので、キャッチすることは必須でない。*1
拡張for文
for文の条件文が若干異なる。「型 変数名 : 配列等」

java.ioの仕様
Readerクラスはabstractなのでインスタンス化不可
オブジェクト直列化と復元
直列化するオブジェクトのクラスがサブクラスの場合、継承元クラスがSerializableを継承していないと復元時に継承元クラスのコンストラクタが呼ばれる。
Scannerクラス
テキスト処理を行うクラス。デフォルトではスペース区切りで文字列を取り出す

*1:故意に「必ずRuntimeExceptionが発生するコード」も作れるが

2012-02-03

インデント天国

仕事でHTML書いてて、hamlBootstraの組み合わせがとても気持ちよかった。

haml

シンプルな記法で書いたhamlファイルを変換してhtmlを出力するRuby gem。別にRailsSinatraで使うので無くても、コマンドラインで変換してやれば静的なhtmlを作成できる。

bootstrap

TwitterApacheライセンスで公開しているCSSフレームワークこのページの解説を見つつ事前にCSSで設定されたクラス名を指定してやると、table要素を使わないでも綺麗なレイアウトの画面が作れる。画像サムネイルを枠付きで並べたりも出来る。解説ページ自体がサンプルも兼ねていてかなり分かりやすい。

1.4からアップデートされたばかりのBootstrap2は12カラムレイアウト。1.4では16カラムレイアウトなのでそっちで作成したHTMLは修正が必要。image-gridもthumbnailsに変更されていたりして、他にも互換性の無い部分がありそう。

もう一つ引っかかった点としては、bootstrap-responsive.cssは単体では機能しない。bootstrap.css(もしくはmin版)と両方ともリンクしてやると自動で画面サイズに応じて整形されるレイアウトととなる。Bootstrap, from Twitterのページ自体にこれが適用されていて、ブラウザのサイズを変えると要素の配置が変化するのが分かる。*1

サンプル

f:id:oldfish:20120203022505p:plainf:id:oldfish:20120203022506p:plain
自前のHTMLに適用してブラウザの幅を変えてみた様子。



2012-01-18

[CoffeeScript]特定のフォルダ内の.coffeeファイルを更新される都度にコンパイルする

node.js v0.6.7
CoffeeScript version 1.2.0
Windows XP

coffee -wc \your\folder
C:\dev\your\dir>coffee -wc ..\dir
02:44:34 - compiled ..\dir\hoge.coffee
02:44:53 - compiled ..\dir\hoge.coffee
In ..\dir\hoge.coffee, Parse error on line 3: Unexpected '''
02:46:26 - compiled ..\dir\hoge.coffee

「フォルダ自体を指定する」のが味噌。「*.coffee」のようなワイルドカード指定では動作しなかった。終了する場合はCtrl+C。-wが特定のフォルダ、ファイルの更新監視オプション。-cがコンパイルを示す。両方つなげて「..\dir」を監視してコンパイルを行い、下にコンパイルのログが並んでいく。コンパイルの結果についても説明が出るようなので、ログを何かしら通知を行うツールに流しこむ形で組み合わせればもう一段便利になると思う。

2012-01-09

CoffeeScriptの試し書き

CoffeeScript
CoffeeScript - Wikipedia

今最も名前が美味しそうなプログラミング言語No.1(私調べ)。
JavaScriptへ「コンパイル」されることが前提の言語で、RubyPythonに影響を受けた構文を持っています。つい最近node.js*1のnpm*2がWindows対応したようなので、下記の手順でWindowsにも導入できます。

  1.  node.jsからWindows版を落としてインストール
  2. コマンドプロンプトから「npm install coffee-script」でCoffeeScriptをインストール
  3. 正常にインストールされていれば「coffee -v」でバージョンが表示される