mike-neckのブログ

JavaかJavaFXかJavaEE(なんかJava8が多め)

Java

Jigsawのモジュールのリスト作ってみた #java #Jigsaw

さっきのエントリー mike-neck.hatenadiary.com で、LTしてきたと書いたのですが、その際に、Jigsawのモジュールがどのように分割されたのか気になったので、調べてみました。 なお、クラス数が膨大なので、このエントリーには載せません。 github.com 上記…

JJUG CCC 2015 Fall にボランティアスタッフとして参加してきた #jjug_ccc

表記の通り、JJUG CCC 2015 Fallにボランティアスタッフとして参加してきました。 JJUG CCC 2015 Fall(11月28日開催) | 日本Javaユーザーグループ jjug.doorkeeper.jp 僕が主に担当したのはCD部屋の16:00〜の会からの空席案内役。 ひとつ前のいろふさんの…

GradleのJVM component modelスタイルのプロジェクトをJigsawでビルドする #gradle #java #jigsaw

前回のエントリーでGradleにおけるJVM component modelの実践的な内容を紹介した。 mike-neck.hatenadiary.com ここで紹介したプロジェクトのビルド成果物はこちらのエントリーでも紹介した、Javaモジュールシステム的な考えが採用された成果物である。つま…

簡単な特徴もないJava用のテスティングフレームワークつくった

諸事情により、JUnitが使えない状況でコードを書いていたのですが、書いたコードが動くかどうか確認したい衝動に駆られて、簡単な特徴もないテスティングフレームワークを作りました。 仕様 最初に書いた仕様がこれ。 github.com public class MaybeTest ext…

Jigsawについて雑にまとめてみた

以前、Gradle3におけるJavaプロジェクトのビルドについてのエントリーを書きましたが、Gradle3のJVM component modelって、まあ、わりと、Java9のJigsawみたいなものなんですね。で、Jigsaw自体知っている人が多いと思いますが、あらためてJigsawが解決した…

コンソールの色を変えて出力する

元ネタはうらがみさんのカラフルバナー backpaper0.github.io 詳しい話はこのあたりが良さそう。 stackoverflow.com ANSI escape code - Wikipedia, the free encyclopedia def esc = 27 as char (30..37).each {t -> (40..47).each {b -> print "${esc}[${t…

チェッカーフレームワーク(org.jetbrains:annotation)の使い方メモ

IntelliJ IDEAとかAndroid Studioを使っている人は、メソッドの横の方に@が書かれているのを見たことがあるかと思います。 (Android Studioで実際に表示されるのかは知らないけど、ツイッターで観測している限りアンドロイダーの人で「この@Contractって何」…

Java 8u60で、Mapの初期化とかがすごい楽になってる件

夜中に8/15頃のツイートが回ってきた。 Java 8u60 adds reflection on lambda param names DSLs https://t.co/cflxFK468e Hash-Literals https://t.co/5rOCrrckcB pic.twitter.com/NEzj4X3Bt1— Benjamin Weber (@benjiweber) 2015, 8月 16 曰く Java8u60でラ…

最も正しくないOptionalの使い方

本記事ではJava8から入ったOptionalの最も正しくない使い方を解説します。 なお、これが正しいか正しくないかは読者の方の個人的なセンスにお任せします。 正しくない使い方 入力されたBeanの検証をするときに、if(condition1) { return false; } else if (c…

比較的新しいJava用のJSONライブラリーGenson

標記の件について、というわけでもないのですが、JSONPの実装ライブラリーを調べていた所、Gensonなるライブラリーがあるのを見つけました。 謳い文句としては 簡単に使えてしかもパワフル 他のJavaエコシステムとも協調性がある JSR353(JSONP)実装 JAXBとも…

KullaでJavaFXの操作を対話的にやってみる

Kullaネタ JavaFXなどのGUIのプログラムをゴリゴリと書いている時に、ふとこのオブジェクトを少し動かしたらどうなるんだろうと気になることがあります。実際にやってみようとすると、コードを書いてアプリケーションを起動して実際の動きを見て、「ああ、な…

Kullaとsidenで簡易Webサーバーを走らせてみる

JavaのREPLの話は前回したとおりです。 JavaにREPLがやってくる - mike-neckのブログmike-neck.hatenadiary.com で、この記事の最後のほうでKullaに簡易的なWebサーバーをさせてみるのもありかもしれない的なことを書いたので、実際にやってみました。ただ、…

JavaにREPLがやってくる

表記の通り、今(2015/06/26)現在KullaというプロジェクトでREPL機能が開発されていて、Java 9で(今更ながら)搭載される予定です(jshellと呼ばれるらしい)。 以前はこのJava REPLを試すのが大変だった(@zephiransasさんのブログ記事を参照)ようですが、今はか…

JJUG ナイトセミナー「Reactive Streams特集」に行ってきた #JJUG

眠いし、最近Java書いてないし、非同期とかあまりつかってないので、あまりピンとこない分野ですので、雑に書きます。 で、件の勉強会に行きました。 【東京】JJUG ナイトセミナー 「Reactive Streams特集」jjug.doorkeeper.jp 感想概要 Reactiveホゲホゲに…

#渋谷Java に行ってきた

表題のとおりです。 第十一回 #渋谷java (2015/05/30 14:00〜)shibuya-java.connpass.com で、発表してきました。 On stream-lazy-computation from mike_neck Mochida www.slideshare.net 実際のプレゼンの内容はもう少し丁寧かつ雑な資料でやりました。 Ja…

JJUG ナイトセミナー 「GS Collections 道場」行ってきた #jjug

表記のとおりです。なお、本文はハンズオンの片手間で書いています。 【東京】JJUG ナイトセミナー 「GS Collections 道場」jjug.doorkeeper.jp 勉強会の内容的には手を動かしている時間が長かったので、ツイートは少なめなので、多分トゥゲッターはないと思…

Streamパイプラインを1つ生成するのに必要なメモリを求めてみる

元になった記事はこれ。 Java 8 Streamの挙動を調べたった - mike-neckのブログmike-neck.hatenadiary.com パイプライン一つ一つがリンクドリスト状のStreamのインスタンスで構成されているということで、どれくらいの長さのストリームパイプラインを書くとO…

Javaでできることが云々

あまり火に油を注ぐようなことはしたくないし、議論されていることの内容が僕の頭で理解できるレベルを超えているので、あまり書きたくはないけど、まあ雑感という感じで。 「ScalaでできることJavaでできること以上のことはできない」的なツイートの後、ま…

Java 8 Streamの挙動を調べたった

表記の件について、JavaのListから作るStreamは操作中に変更をするとその後の挙動についてなんら結果を保証しないので、ListからStreamを作った場合は、変更をしないか、あるいは不可変なListに変換してから作るのが良いです。 と、書いておいてからなのです…

Javaラムダで竹内関数を書こう

『ふつうのHaskell』を読んでて竹内関数というのが出てきたので、それをJavaでやってみようと思った。 ちなみに竹内関数とは 竹内関数(たけうちかんすう)は、プログラミング言語処理系のベンチマークなどに使われる、再帰的に定義された関数である。 Wikip…

JUnit4.12時代のParameterized Test

JUnitに追いつこう(2周回遅れ、男子一万メートルだと2分近くの差、箱根駅伝なら4分40秒の差)という趣旨のエントリーです。 要約はこっちを見るほうが早かった JUnit 4.12の新機能紹介まとめ - うさぎ組kyon-mm.hatenablog.com JUnit4.12に追いつこう(周回遅…

Groovy2.4.3でJava8のStreamとかOptionalの演算もClosureでできるようになってた件

表記のとおりです。 Java8のFunctionalInterface群は使い勝手がよくて、そっちを主に使っていましたが、GroovyもJava8の言語仕様対応を進めてて、Groovy2.4.3から(それ以前から?)は def func = [apply: {s -> s.size()}] as Function<String, Integer> などと書かなくてもClo</string,>…

JJUG ナイトセミナー 「Javaのプログラムはどうやって動いているの」で正解者が少なかったあの問題をバイトコードから見てみる #jjug

昨日のJJUG ナイトセミナーで出題されて正解者が少なかったAnniversary.javaの問題をjavapして、どのようにコードが実行されているか見てみようというだけのエントリーです。 なお、 さくらばさん「実はこれてらだよしおも間違えました」 #jjug #てらだよし…

JJUG ナイトセミナー 「Javaのプログラムはどうやって動いているの」に行ってきた #jjug

上記のとおりです。 【東京】【初学者向け】JJUG ナイトセミナ 「Javaのプログラムはどうやって動いているの?」jjug.doorkeeper.jp ツイートが下記の通りまとめられています。 【東京】【初学者向け】JJUG ナイトセミナ 「Javaのプログラムはどうやって動い…

WildFlyでh2データベースを使う【改】

この前こんな記事書いた。 WildFlyでh2データベースを使う - mike-neckのブログmike-neck.hatenadiary.com 早速JPA使ったアプリを載せたところ(今頃!?遅っ)、次のようなよくわからんメッセージが… [2015-04-23 08:55:32,221] Artifact web: Error during a…

WildFlyでh2データベースを使う

本文が長いので、結論に急ぎたい人はこちら 経緯 JSFがよくわからんので、適当なサンプルを書いてglassfishで実行しようとしたら、 $ bin/asadmin start-domain sample Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 JVM failed to start: com.sun.enterp…

Gs-Collections code kataをブートするgradleスクリプト作った

GS Collections code kataは一回やったら終わりという感じではなくて、何度もやるみたいなことが書いてあったけど、毎回ダウンロードしてきて、解凍して、IDEで取り込んでってやるのが煩わしかったので、表記のスクリプトというか何度でもやり直しのできるや…

IntelliJ IDEAでStringJoinerを使ったtoString()のテンプレートを作った

表記の通り。 StringJoinerでtoString()を作るテンプレートが欲しかったので作った。 テンプレートは次のような感じ public String toString() { #set($i = 0) #foreach($m in $members) #if($i == 0) return new StringJoiner(", ", "$classname:[", "]") #…

Enclosedと継承を使って特定のメソッドだけAfterとか実行させない

こんなのがあったから、マジクソレス。 眠いだけなので、害意はありません。 Kotlinの話と見せかけてJUnitの話をあげとく/ 【JUnit】出来るの?かもしれない@Aftrer処理をメソッド単位でSkipする方法 http://t.co/5YBT6r3M70— やんく (@yy_yank) 2015, 3月 2…

型引数からnewしたい時のおすすめの方法をためしてみた

数日前になぎせさんがツイッターで 型引数からその型のオブジェクトを作りたいときにはSupplierを渡すのがおすすめです 的なことをつぶやいていたので、試しにやってみた。 (どのツイートだったか探してたけど見つからなかったことは秘密です) 【2015/03/11 …