Fight the Future

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

2008-10-01から1ヶ月間の記事一覧

Java EE 6ではServletがPOJO

Servlet 3.0では、アノテーションを用いてServletに関するメタデータを記述できるようになります。これにより今まで必須だった「web.xml」がオプションになります。また、従来HttpServletクラスのようなJ2EE/JavaEEの仕様が提供する親クラスを継承してServle…

ScalaのSnippetを写経する(5)-Implicit Conversion

Snippet: Extend Builtins | The Scala Programming LanguageScalaの特徴的な機能であるImplicit Conversion(暗黙的な型変換)。 Implicit ConversionについてはJJUG CCCのBOFでもScalaについて話されていた水島さんの資料がわかりやすいです。 http://www.co…

ScalaのSnippetを写経する(4)-For and Yield

Snippet: For and Yield | The Scala Programming Languageyieldしたら処理後のものを戻しますよーというサンプル。 package sample.snippet object YieldSample extends Application { val array = Array("a", "b", "c") println("変換前" + array.toString…

ScalaのSnippetを写経する(3)-Complex Operations

Snippet: Complex Operations | The Scala Programming Language Scalaには「演算子」という概念はない。 「+」という名前のメソッドにすぎない。 だから演算子のオーバーライドで悩まされることもない。 package sample.snippet object ComplexOperations e…

ScalaのSnippetを写経する(2)-BigInt

Snippet: BigInt | The Scala Programming Language IntからBigIntにはシームレスですよーというサンプルだと思う。 package sample.snippet object BigIntSample extends Application { def functional(n: BigInt): BigInt = { if (n == 0) { 1 } else { n …

ScalaのSnippetを写経する(1)-Abstract Types

Scala公式サイトにあるSnippetを淡々と学んでいきます。 サンプルコードはコピペしちゃだめ!必ず手打ち!写経していきます。Snippet: Abstract Types | The Scala Programming Language package sample.snippet object AbstractTypes extends Application {…

AndroidでScalaは動く

Developing for Android | Scala IDE for Eclipse Space | Assembla そらScalaはコンパイルしたらclassファイルやし、Andoroidで動くよね。。。 今からObjective-Cを学ぼう、とはちょっと思えないし。 # web-career.com読んじゃったし。 そうなるとJava & Sc…

管理者とは

システム開発の仕事は、「自ら考える」ことが必要な仕事です。自発的に工夫したり、考えたりしながら作業を進めているSEにとって、単なる作業マシーンの役目を指示されることは、とても苦痛なのではないでしょうか。 キャリア・働き方を考えるブログ: 第3回 …

「下流から見たIT業界」がおもしろい

下流から見たIT業界: SEとPG、どっちが頭がいい?(2) 例えば企業の会計システムを作るとします。その設計に携わって企業の会計を知ることができるようなSEがどれだけいるでしょう。会計の知識はそんな甘いものではありません。 下流から見たIT業界: SEとPG…

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のテストは…