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

Galileo Eclipse IDE for Java EE Developersが起動できない件

Eclipse Galileo が出ましたが、Eclipse IDE for Java EE Developers を起動すると、以下のようなエラーで起動できませんでした。 JVM terminated. Exit code=-1 この時のeclipse.iniは以下 -startup plugins/org.eclipse.equinox.launcher_1.0.200.v2009052…

タッチバッドユーティリティ「NewtonPad」が手放せない

「NewtonPad」はタッチパッドでのマウスカーソルの移動に慣性が働くようになるユーティリティです。以下よりダウンロード可能です。 http://www.vector.co.jp/soft/winnt/util/se471318.html タッチパッドでは、マウスカーソルを画面の端に移動する場合に、…

Media Player ClassicでQuickTimeを見るには

QuickTimeの動画(拡張子.mov)を再生しようとしたらQuickTimeが入っていないことに気がついたので、軽くて対応フォーマットも多い「Media Player Classic」を入れることにしました。http://sourceforge.net/projects/guliverkli/Media Player Classic (transl…

アクターライブラリ その1

Scala には、マルチスレッド処理を簡素に実現できる Actor ライブラリがあります。Actor ライブラリは、Actor 間でのメッセージのやり取りが処理をブロックすることなく行うことができます。 簡単な非同期メッセージの送信と受信 まずは簡単な例で動作を確認…

遅延初期化

lazy キーワードにて遅延初期化を簡単に実現できます。 以下の例の場合、 class Emp(id:Int) { def getId = id val str : String = {println("init"); "lazy?"} } object Example030 extends Application { val t = new Emp(10) println(t.getId) } 実行結果…

無名関数とカリー化

無名関数 Anonymous Functionsについて順を追って・・by ScalaByExample2つの整数を引数に取り、その間の数の合計を計算するには再帰にて以下のように書けます。 object Main extends Application { def sumInts(a: Int, b: Int): Int = if (a > b) 0 else a…

ソフトウェア開発チームの質を評価する12の質問

etc

ジョエル・スポルスキの著書「Joel on Software」にて紹介されているジョエル・テスト ソース管理システムを使っているか? 1オペレーションでビルドを行えるか? 毎日ビルドを行うか? 障害票データベースを持っているか? 新しいコードを書くまえにバグを…

人間の記憶についてのメモ

etc

記憶の半分は4時間以内に消える 人間の記憶は忘却曲線をたどり、記憶の半分は4時間以内に消える。 覚えた直後に急激に忘れ、それを乗り越えて残ったものは割と長く記憶される。 単語を10個覚えたとすると、4時間後には5個程度しか思い出せなくなっている。 2…

リテラル

複数行文字列リテラル Scalaでは複数行の文字列リテラルを"""で表します。 object Main extends Application { val str1 = """the present string spans three lines.""" println(str1) } とすると、 the present string spans three lines. このように表示…

Swingのサンプル

簡単なフレーム SimpleGUIApplication という抽象クラスが用意されており、SwingUtilities#invokeLater を勝手にやってくれます。以下は空のパネルがあるだけのフレームの例です。 import scala.swing._ object Main extends SimpleGUIApplication { val pan…

Sourceでファイルの内容を表示

テキストファイルの出力は scala.io.Source にて以下の様に簡単に行えます。 import scala.io.Source object Main extends Application { Source.fromFile("test.txt").getLines.foreach(print) }

trait

traitの宣言と利用 trait は、Javaで言うインターフェースのようなものですが、メソッドのボディを持つことができる点が大きな違いとなります。 trait は以下のように定義します。 trait Friendly { def greet() = "Hi" } この例では、greet メソッドは"Hi"…

ケースクラス

ケースクラスはパターンマッチングのためのクラスです。 class の前に case キーワードを付けるとケースクラスになります。 abstract class Expr case class Number(n: Int) extends Expr case class Sum(e1: Expr, e2: Expr) extends Expr ケースクラスには…

ジェネリクスなクラス

ジェネリクスなクラスは[]にて型指定を行います。 class Type[T] { private var v : T = _ def set(value : T) {v=value} def get : T = v } object Main extends Application { val i1 = new Type[Int] //Int用 i1.set(100) println(i1.get) //100 val i2 =…

クラス

クラスは Java と同様に class キーワードで定義します。 class Book { val title = "Scala" def printTitle() = println("Title:" + title) } object Main extends Application { val b = new Book() b.printTitle() //Title:Scala }上記クラスをよりScala…

MapとSet

ミュータブルとイミュータブル Scala のリスト(配列)には、不変である List と可変である Array がありました。 これと同様に、Map と Set にも不変オブジェクトと可変オブジェクトがライブラリとして提供されています。Map と Set 不変オブジェクトと可変オ…

Listについて

Listの操作いろいろ object Example010 extends Application { val l = List("one","two","three") println(l(1)) //two println(l.count(e => e.length==3)) //2 文字数が3の要素数 println(l.exists(e => e=="three")) //true 要素にthreeがあるかどうか p…

Javaのキーワードが定義されたenum SourceVersion

1.6 から SourceVersion という enum が追加されていて、内部にjavaのキーワードを持っています。 package javax.lang.model.SourceVersion; あんまり意味はないけど表示してみた・ public static void main(String[] args) throws Exception { Class<SourceVersion> clazz </sourceversion>…