Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

2008-01-01から1年間の記事一覧

Andoroidが建った

Cedric氏がアップしてくれてます。 Google社内かな?

ScalaでのY Combinator

case class B[F,T](c: B[F, T] => (F => T)) extends (B[F, T] => (F => T)) { def apply(b: B[F, T]) = c(b); } def Y[F, T] = (f: (F => T) => F => T) => B[F, T](x => f(x(x)(_)))(B(x => f(x(x)(_)))) val factorial = Y[Int, Int](f => i => if (i <= …

ScalaのApplication traitの是非

ScalaにApplicationというtraitがある。 これを継承すると、mainメソッドを記述する必要がなくなり、そのクラスのbody部分が実行される。 object ApplicationTrait extends Application { Console println("Hello Scala!") } 実行結果。 Hello Scala!これはA…

まつもとさんに禿同

まつもとさんのセッションのレポートがあった。 http://gihyo.jp/news/report/01/pasonaconf2008/0004 自分で考えていたこととスゴく同じで、安堵した。 楽しい仕事をしたかったら,自分はどんな仕事をしていたら楽しいのかということを把握してないといけな…

悪魔の質問:「1日何キロライン書ける?」

マネージャやリーダーからプロジェクトの初期に質問されることがある。 「1日に何キロライン書ける?」と。。。 この質問をされたら、そのプロジェクトにおけるマネージメントはよくない可能性が高い。 キロラインというのは1000行ということで、「1日に何千…

テスト系の書籍

『Test Driven: Practical TDD and Acceptance TdDD for Java Developers』買いました。 Manningの本は基本的に読みやすい英語で好きです。Test Driven: Practical TDD and Acceptance TdDD for Java Developers作者: Lasse Koskela出版社/メーカー: Manning…

ScalaでTestNGのテストをする

Javaで書いたこういうTestNGのテストがある。 import static org.testng.Assert.assertEquals; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class TestNGSample { private Target target; @Test public void v…

Scalaでアノテーションの属性を指定する

ScalaクラスにJavaアノテーションはそのまま使用できる。 @Test def verifyAdd1() = { } けど、属性をJavaのときと同じように書くとコンパイルエラーになる。 @Test(expectedExceptions = Array(classOf[RuntimeException])) def exceptionTest() = { } エラ…

ScalaでClassオブジェクトを参照する

ScalaはもちろんJavaオブジェクトを扱えるけど。 これはコンパイルエラー。 String.class classOfを使う。 classOf[String]

関数型言語でより抽象化が進むんだなあ

関数型言語ど素人です。 多忙な Java 開発者のための Scala ガイド: オブジェクト指向のための関数型プログラミング object HelloArguments { def main(args: Array[String]): Unit = { args.filter( (arg:String) => arg.startsWith("G") ) .foreach( (arg:…

Liftで<lift:xxx>タグを有効にするには

まだ理論的なところはわかってませんけど。 HTMLファイルでタグを適用するには、Boot.scalaでSiteMapを追加しないとダメみたい。 // Build SiteMap val entries = Menu(Loc("Home", "/", "Home")) :: Menu(Loc("Sample", "/sample", "Sample Page")) :: User…

Terminalで大文字小文字を区別せず補完する

mac

.inputrc を作り、内容を set completion-ignore-case on としました。これで小文字で入力してタブキーで補完するときに大文字で始まるものも補完候補になります。 blogSetomits : ターミナルでタブで大文字も補完

Liftでjetty:runするとjava.lang.ClassNotFoundException: bootstrap.liftweb.Boot

解決方法を記してくれているところがありました。 解決方法以下いずれかを実行1. mvn compile する2. プロジェクトの再ビルド。targetフォルダ消して再ビルドする方がよいかも With skill and creativeness ありがとうございます! 僕は2のtargetフォルダを…

ScalaのフレームワークLiftをインストールした

ScalaのWebフレームワークLift。 インストールするにはこちらのサイトが大変参考になります。 scalaのWebフレームワーク liftで遊ぶ(2) - インストール - ゆろよろ日記 まずScalaはインストールしておいてね。 Mavenのバージョン。 $ mvn -version Maven ver…

テストが5教科あっても合計が高ければ内訳はどうでもいい

僕も塾講師をしていたから教育について考えることがたまにある。 僕もそうだったが、日本の教育は5教科あれば5教科とも点数を高くすることを求める。 言い換えれば教育としてゼネラリストばかりを育てるという方針だし、 学ぶ側は「すべてによい点数をとらな…

ちょww『The Art of Unit Testing』wwww

来年2009年3月に『The Art of Unit Testing』って本がManningから出るらしい。 が、その画像がこれ。 武士。。。

DbUnitNG10,000ページビュー突破&ダウンロードもしてもらえてる

TestNG + DbUnitのライブラリDbUnitNGですが、 日々見てもらえてるみたいです。 僕がまったく見ていない日でも1日100ページビューぐらいあって、 ダウンロードもようやく20を超えてくれました。 内輪がどれだけかわからないですがw でも今まで僕1人でやって…

LazyなDataProvider-TestNGをさらに深く理解してみる(3)

@ITさんの連載でデータ駆動テストで簡単にテストのパターンを増やすを解説した。 DataProviderはTestNGで注目を集める便利な機能だ。 DataProviderのメソッドはObject配列を戻り値とすればよいだけなので、 ファイルからでもデータベースからでもテストデー…

アノテーショントランスフォーマー-TestNGをさらに深く理解してみる(2)

打って変わって、今回は実装の話。 TestNGでは実行時に@Testのさまざまな属性の値を変えることができる。 それがアノテーショントランスフォーマー。 TestNGのバージョン5.3からの目玉機能。 サンプルで試してみる。 まずはテストクラス。@Testのtimeout属性…

ステートフルなテスト-TestNGをさらに深く理解してみる(1)

@ITさんの連載も終わり、Next Generation Java Testing: TestNG and Advanced Conceptsをネタに記事では書かなかったことを紹介していく。 不定期連載の予定。 ステートフルなテストとは TestNGは各テストメソッドの呼び出しで同じインスタンスを利用する。…

@ITさんTestNG記事最終回公開!

実現場でTestNGを活躍させる“5”つのテクニック (1/3) - @IT via kwout @ITさんで初連載いたしましたTestNG記事の最終回が公開されました! 【1】Antからテストをサクッと実行! 【2】テストを並列実行してスピードアップ! 【3】いままでのJUnitのテストは…

コミュニティがどうして仕事を楽しむことにつながるのかわからないと言われて

僕は人見知りが激しくて、コミュニティはまだまだ参加だけって感じでもあるんだけど。 「エンジニアとしての楽しさを思い出させてくれる」のがコミュニティだと思う。 「刺激」と言い換えてもいいかもしれない。 たしかにコミュニティに参加したからって、プ…

友人がJJUGクロスコミュニティカンファレンスでセッションやります

小中学時代にとても仲良くしてもらった大西くんが、JJUGクロスコミュニティカンファレンスでセッションをやります。 横がamachangなんですけど、みなさんよろしくお願いします。 13:10 - 14:00 B-1 ネットワークの未来 (仮) (B-11 MapReduceとP2P 藤田 昭人 …

なぜ重要なことが部下に伝わらないのか

「何回も言ってるのに!」って僕もよく思ってしまうなあ。 でもたしかに講師をやるときは、同じメッセージを何度も伝えてる気がする。 プロジェクトでも同じ心構えを持たないといけないな。 「重要なことを伝える重要なポイント」とは、 * あなたはそのメッ…

モデル駆動ソフトウェア開発のベストプラクティス

# Separate the generated and manual code from each other # Don't check-in generated code # Integrate the generator into the build process # Use the resources of the target platform # Generate clean code # Use the complier # Talk in Metamod…

モックオブジェクトはいつ使うべきか

# The real object has nondeterministic behavior # The real object is difficult to setup # The real object has behavior that is hard to trigger # The real object is slow # The real object is a user interface # The real object uses a call ba…

DbUnitNG0.6リリース!

DbUnitNGバージョン0.6をリリースしました!AssertionHelperクラスのアサーションメソッドから引数としてClassクラスをすべて除きました。 実行したテストクラスはThreadLocalにあるため、引数として渡す必要がなくなりました。Javadocも再生成しています。 …

行動せず批判だけするのが一番簡単だけど

行動せず批判だけするのが一番簡単だけど、一番いやしい感じがする。 特に何かを意識してのエントリじゃないんだけど、 最近よくこのことを感じる。 批判だけの人を目にして、人間の醜い部分を見せつけられてしまう。 ここでの行動ってのは目を引くような行…

Wordで複数の単語をまとめて置換するユーザーフォームを使ったマクロ

やたらタイトルが長くなったけど、 要は置換する対象の単語がたくさんあって、1つずづ置換するのは面倒だからまとめて一気に置換させる。 さらにユーザーフォームを使って使いやすくして、置換する単語もCSVでインポートできる。 アドインの形式で使う。 こ…

「プログラミングができる」と言える基準って?

何ができたら「プログラミングができる」と言っていいんだろう? 正直、僕は自分がプログラミングができると思ったことはない。 もちろん仕事関係の場では「できる」と答えているし、プロジェクトでは頼られることもあるのは事実だ。 それでも本心からプログ…