2013-01-01から1年間の記事一覧
PrimeFacesにはファイルダウンロードのコンポーネントがあって、これは非常に便利なのですが、Ajax動作ができないのでダウンロードすべきデータがないときなどのエラー処理ができません。 そこで、別ボタン経由でダウンロード開始を行ってエラー処理を行うよ…
lombokは、JavaでのアクセッサやtoString、equalsなどボイラープレートなコードをコンパイル時に生成してくれるライブラリです。 ただ、こういったコードの生成は、IDEを使えば自動で行えるので、わざわざlombokを導入するまでもないと考えることもできます…
英単語帳を買ってから、ちょうど2ヶ月で1冊の1/3進みました。 英単語帳を買ったら思いのほか面白かった つまり、12レベルある中のレベル4の1000語がおわったということです。 とはいえ、全部覚えてるわけではない、というかむしろほとんど覚えてはいないのだ…
TDDにおいて、顧客などから「テストばかり書いていて間に合うのか?」などと質問されることがあると思います。そんなときには、後ろからそっと抱きしめて 「そんな質問させてごめんな」 が正解です。https://twitter.com/kis/statuses/350279800600018944 テ…
ちょっとまとめ。 ドメイン駆動設計・開発の実践 Eric EvansがDDD(ドメイン駆動設計)を語る Domain-Driven Designのエッセンス -目次- ドメイン駆動設計 ( DDD ) をやってみよう DDD時代の設計 - DDD-memo エリック・エヴァンスのドメイン駆動設計 (IT Arc…
Struts1職人の朝は早い。 「毎日毎日DBとアプリサーバーが違う。機械ではできない」 「このstruts-config.xmlはダメだ。ほら、すぐ裂けてしまう」 ここ数年はLLとScalaに押されているという。下町Struts1の灯火は弱い。だが、まだ輝いている。 「やっぱりア…
Java EE 7がリリースされて、それに対応したGlassFish 4もリリースされました。 ついでに、Java EE 7やGlassFish 4に対応したNetBeans 7.3.1もリリースされています。 ということで、NetBeansとGlassFishを使ってJava EE 7を試してみようと思います。 今回は…
Java8でのラムダの使い方などを説明してきたのですが、構文拡張自体には触れていなかったので、改めてここで簡単に説明しておこうと思います。 まずは、Java8で実際に最もインパクトがある言語拡張、インタフェースのデフォルトメソッドです。 デフォルトメ…
※ 5/29 3:23 追記:なんかモナドになったかも。最下部参照 さて、Java8での拡張をいろいろ見てきたわけですが、ではアプリケーションプログラムでFunctionを受け取るメソッドをがんがん定義するかというとそういうことはあまりなく、フレームワーク的な部分…
Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? M…
Java8にlambda構文が入りましたが、これはクロージャーではない、とされています。 では、どのように「クロージャーではない」のか、ちょっと見てみます。 まず、lambdaを返すメソッドを定義します。 public static Supplier<String> createMessenger(String name, S</string>…
Java8でlambda構文が導入されることで、Java言語も関数型のような性質をもつことになりました。 関数型の性質として大事なことのひとつに、関数を戻り値として返せるということがあります。lambda構文によって、Javaでも表記上は関数を戻り値として返すこと…
プログラム作業中に困ったときに検索してひっかかった英語の技術文書を読む程度だと、辞書をひくことなく英語が読めるのだけど、技術解説になるとちょっとつらいし、ブログにのってる意見になると知らない単語が増え、ニュースになると知らない単語の頻度が…
あ、まず前提として、 貴女がJava大好き男を夢中にさせることが、 はたして貴女を幸福にするかどうか、それはまた別問題だけれど。 とはいえ、Java大好き男たちは玉石混交ながら、 大手SI系の給料高い男なども多く、 したがって、釣り師たる女たちにとっては…
さて、前回Java8のStreamの使い方をざっと見てみたのですけど、はてなブックマークのコメントで「Javaが使われている領域でこんな言語拡張は必要か」「可読性が損なわれていて単なる自己満足ではないか」のようなコメントがついていました。 実際どうなのか…
さて、Java8で関数型っぽいことをやって遊んでみたわけですが、実際はそんな書き方しませんよね。 Java8で実際に使うのは、Streamです。 ということで、Streamの使い方をひととおり見てみます。 ※5/17 仕様変更があったので、修正しました 基本 まずは、Iter…
やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで…
なんか他のDBと違うのでメモ ALTER TABLE my_table ALTER COLUMN my_column NULL;
Java SE 7から、switch構文で文字列が使えるようになりました。 public void hoge(String s){ switch(s){ case "a": System.out.println("AA"); break; case "b": System.out.println("BB"); break; default: System.out.println("Other"); } } ところが、残…
PrimeFacesでは、ColumnGroupでフッターが指定できます。 PrimeFaces - DataTable - Grouping でも、このテキストにf:convertNumberを適用させる方法がわかりません。 フォーラムでも同じ質問している人がいるのだけど「hey guys, any clue?」切ない・・・ P…
kikutaro777さんが書いてるように、PrimeFacesではClient APIを使って結構手軽にJavaScriptからコンポーネントを操作できます。 PrimeFacesのTabViewをJavaScriptで操作する - Challenge Java EE ! ところが、SelectOneRadioはそういう便利APIが用意されてい…
なんか便利メソッドできた。圧縮するファイルにディレクトリ指定しちゃだめ。 /** * ファイルをまとめて圧縮する * @param filename 保存ファイル名 * @param base 圧縮するファイルのベースパス * @param paths 圧縮するファイルの名前 * @throws IOExcepti…
JUnitでのテストでは、古くは次のように書いてました。 assertEquals("期待値", "実際の値"); で、比較の種類だけassertXxxがあるわけです。 最近だと assertThat("実際の値", is("期待値")); のようにも書けます。 別にどっちでもええやん、とか思ってたの…
ちょっとExcelファイルを処理するコードを書いたんですよ。 まあ、Apache POI使ってこんな感じだったとします。 @Named public class Importer{ public void doProcess(InputStream is){ System.out.println(WorkbookFactory.create(is) .getSheetAt(0).getR…
ここ最近のエントリを見て、モテたくてFPGAを触りたくなったという人もいるだろうと思います。 ただ、FPGAを触るといっても、どこから始めればいいのか、何を買えばいいかわからない人も多いのではないでしょうか。 そこで、FPGAを触るために用意するもので…
JSF2でAjaxに対応していろいろできるんですけど、そのときのメソッドの呼び出しタイミングについて調べてみたのでまとめておきます。 ここで、JSF標準とPrimeFacesのcommandButtonについてactionとactionListener、あとsetPropertyActionListener、それから…
特に学術的にソフトウェア工学に触れたことはないのですが、むしろそうではなく現場にいる身としては、ソフトウェア工学は失敗しているように見えます。 「成功していない」ように見えるのではなく「失敗している」ように見えるのです。 もちろん、いまソフ…
PrimeFacesではThemeRollerでテーマが設定できるのですが、そうするとTabViewを使ったときの初期表示で、すべてのタブの内容が表示されてしまいます。 で、しばらく悩んでたのだけど、ここに答えがありました。 PrimeFaces Community Forum • View topic - W…
ふと、今後5年でFPGAはバカみたいに安くなってくるかもしれないと思ったので、まとめておきます。 ただし、材料はブログで見た話とか人に聞いた話とかで、しかもそれをいいように解釈しての話なので、妄想レベルであることを最初に断っておきます。 用語とし…
カバレッジをとるのに、Jacocoを使ってみました。 設定などのメモ。 Mavenの設定 project > build > pluginsタグに次のようなプラグインを追加します。 <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.6.2.201302030002</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> </executions></plugin>