【書評】みんなのJava OpenJDKから始まる大変革期! #minjava

技術評論社から最近のJavaの状況についてまとめた解説書が出ました。*1
光栄なことに献本をいただいたので、早速レビューをさせていただこうと思います。

gihyo.jp

紙版と電子版があって、電子版は技術評論社のサイト(Gihyo Digital Publishing)で買った場合はDRMフリーのpdf版およびepub版がダウンロードできます。AmazonではKindle版、楽天ではKobo版が買えるみたいです。この辺りのフォーマットは好みの問題もあるかと思いますが、Gihyo Digital PublishingはDRMフリーを貫いているので使い勝手がよくて重宝しています。

全体像

端的に言って、Java SEからJava EE、最近流行りのマイクロフレームワークまでを解説した本です。これを一冊読んでおけば、最近の動向は一通り頭に入ると思います。各章、この内容を聞くならこの人だろうと納得できる著者が名を連ねています。なぜそうなったのかといった背景にまで触れているので、初見でも理解しやすいかと思います。

広く浅く紹介することにフォーカスされているので、それぞれの技術に関する細かい解説は基本的にありません。この本はあくまで索引として、より深く知りたい人は、各解説の中で紹介されている情報ソースを辿るという使い方をするのがよさそうです。

第1章 - Java 9以降で起こった変化の総まとめ

著者は @kis@shinyafox のコンビ。
Java 9からJava 14までの言語仕様・ライブラリの変化から、Project Valhallaの解説、JVMの変更やJDK付属ツールの紹介まで、全部ちゃんと解説したらそれだけで1冊できてしまいそうな内容が、ぎゅっと一章にん詰まっています。最近の動向が非常に簡潔まとまっているので、Javaを使っている人にとっては必読の章です。ちょうど今月リリースされるJava 14の新機能までちゃんと押さえられているあたりは、さすがきしださんといったところですね。

第2章 - JDKディストリビューションを選ぶときの指針になる章

著者はOpenJDK警察ソムリエこと @yamadamn
OracleOracle JDKの商用機能をOpenJDKプロジェクトに寄贈し、ライセンス体系を変更したことによって、Java界隈ではJDKディストリビューションの群雄割拠時代が訪れました。それまでは何となくOracle JDKを使っていれば問題なかったわけですが、これからはプロジェクトで採用するJDKについて、ライセンスやサポート体制、個別機能の違いなどを考慮して、自分で選択しなければならないのです。

この章では、なぜそんな状況になったのかという背景をはじめとして、どんなJDKディストリビューションがあるのか、どういう観点で選べばいいのかなどが、具体的なJDKの名前を挙げながら紹介されています。各JDKの違いとか、事情を知っている人間が見てもややこしい。新しいプロジェクトに着手する際には、とりあえず手元に置いておきたい情報源になります。

第3章 - Java EE/Jakarta EEってどうなってるの?ってちょっとでも思ったらこれを読もう

著者は @khasunuma
前半は、エンタープライズJavaについて、これまでの成り立ちから、Java EEJakarta EEになった経緯までの解説。Java EEに興味がある人にとっては釈迦に説法的な内容にも感じられましたが、これまでの変遷をいま一度おさらいした上でJakarta EEに臨もうという人には非常に良いサマリーになっていると思います。
後半はJakarta EEについて。Jakarta EEで提供されるコンポーネントAPI単位で紹介されているので、全体像を把握するのはとても良いです。特にJava EE 8とJakarta EE 8の対照表は要チェック。Jakarta EE 9以降についてはさらっと紹介程度ですが、これは現時点ではまだ不透明な部分が多いので仕方ないです。

第4章 - そしてMicroProfileの動向もおさえておこう

著者は第4章と同じく @khasunuma
MicroProfileはJava EEをベースとしたマイクロサービス向けのAPIセットですが、これが生まれた経緯や、具体的なAPIなどについて紹介されています。全体像を掴むにはいいですが、Java EE/Jakarta EEとの違いや、ユースケースの違いなどが、もっと分かりやすく比較されているともっと良かったかなと思います。

第5章 - 最近なにかと話題のGraalVMについて知りたいならここ

著者はJVMになりたい男こと @jyukutyo
GraalVMというとネイティブイメージ生成の部分で話題に上ることが多い印象がありますが、実際にはそれだけではなくて、マルチ言語基盤や、高性能なJITコンパイラなど、様々な顔を持った極めて汎用的なツールになっています。なので「GraalVMとは」ということを簡潔に説明するのはなかなか難しいのですが、この章では少ないページ数でそのあたりをわかりやすく説明してくれています。具体的な使用例が掲載されている点も、初めて触る人にとってはイメージが掴みやすくて良いと思いました。

第6章 - そろそろ軽量フレームワークも使ってみようかな、という人のための章

著者は @kencharos
Javaのコア機能から少しはずれて「軽量フレームワーク」という点にフォーカスを当てている辺り、ほかの章とは毛色が違うかなと感じました。内容は、近年の動向から軽量フレームワークが登場した経緯や、押さえておくべき機能の概要を解説した上で、代表例としてタイトルにもあるMicronautとQuarkus、そしてHelidonという3つのフレームワークを紹介しています。
あくまでも第三者のユーザとしての目線されていて、強みは何かみたいな話というよりは、実際に使ってみるためのチュートリアル的な内容としてまとまっています。もう少し選択する上での基準みたいな話があってもよかったかなという感じもありますが、軽量フレームワークに触れる第一歩としては非常に良い参考文献になると思います。

*1:正式な発売日は2020年3月13日なので、本エントリーを書いた時点ではまだ先行販売期間でした。

京都造形芸術大学といったら「京造ねぶた」が見事なのでぜひ知ってもらいたい

京都にある「京都造形芸術大学」(略称、京造)が「京都芸術大学」に名称変更すると発表したことが波紋を呼んでいます。

京都造形芸術大学は「京都芸術大学」に? 京都市立芸術大学と京都市は異議示す|美術手帖

京都にはもともと「京都市立芸術大学」(略称、京芸・京都芸大)という別の大学があって、京都芸術大学の名称は紛らわしすぎる、という話。それに対して京造側は、略称には京芸・京都芸大は使わずに「瓜芸」「KUA」にするから大丈夫、と言っている。

「京造」って、なんか老舗の造り酒屋っぽくて好きだったんだけどなあ。

で、大学名の話とは直接関係ないのですが、京造では毎年授業の一貫としてねぶたを作るワークショップをやっているんですね。
マンデイプロジェクト |京都芸術大学


これが、あえて色を使わずに光と影だけでデザインするとのことで、その手法にねぶた師の竹浪比呂央先生も注目していて、今は竹浪先生自身も講師として指導に関わっているのだとか(京造の先生に聞いた話)。

このねぶた繋がりで、毎年京造の学生2〜30人が青森に来て、「私たちのねぶた」の運行の手伝いをしてくれている。
「京造」と描かれた半纏でロープ持ちをしてる生きのいい若者集団がそれです。
そして夜はサマーキャンプ場に宿泊するので、じつはキャンプ場の仲間でもある。

「京造ねぶた」で検索すると学生達の力作がたくさん出てきます。
京造ねぶた - Google 検索

とても学生が2週間で作り上げたとは思えない素晴らしい出来なので、この機会にぜひもっと多くの人に知ってもらいたいです。

青森ねぶた祭サマーキャンプ場利用上の注意事項の覚え書き 2019年版

これは青森ねぶた祭のサマーキャンプ場についてのエントリーです。
サマーキャンプ場 - 青森ねぶた祭

サマーキャンプ場はもともと規則がどうこうと言うようなおカタイ場所ではありません。しかし来た人に気持ち良く利用してもらうために、また近隣住人の方々に迷惑をかけないように、気をつけてもらいたいことがあります。ここに書くのは、私が現地でアナウンスしないといけない内容の覚書きです。初めての方、あまり深く考えずに、気楽に遊びに来てください。

サマーキャンプ場は青森市が設置してくれているものです。上記リンク先に書かれているように、管理人はおらず、利用者同士の自治体制で運営されていて、スムーズな運営のために多少の注意事項があります。

公式サイトに書かれている注意事項は、まとめると次のような感じです。

  • 夜間走行の排気音等の騒音は近隣の迷惑なので、夜間のバイク利用は極力控えてください。
  • 申込は不要で、受付窓口もないので、直接お越しください。
  • このキャンプ場は、毎年利用する人たちのコミュニティによって運営されています。
  • 開設期間は8月1日から8日までです。それ以前・以後は利用できません。
  • 自転車とバイクの駐輪場はキャンプサイト内に、車(四輪)の駐車場は道路を挟んで向かい側にあります。
  • お風呂は無いので、近隣の銭湯などを使ってください。
  • キャンプ用品等の貸し出しはしていないので、各自でご用意ください。
  • 青森ねぶた祭に参加しない方の利用はご遠慮ください。

上記以外に、これまでの運営の経験から伝えている注意事項は以下の通りです。

  • 飲酒運転は絶対厳禁(発見したらその当日からキャンプ場が閉鎖になります)。
  • 交通ルールは絶対厳守(事故を起こしたら来年からキャンプ場が無くなる覚悟でいてください)。
  • 夜中に騒がないこと。大声、歌、鳴り物等厳禁。
  • キャンプ場内での焚き火や花火等は厳禁です。火の扱いに注意してください。
  • テントは決められたエリアに張ってください(張ってはいけない場所があります。現地にて要確認のこと)。
  • 車、バイクは整理して停めてください。スペースが限られています。
  • 貴重品の管理は自己責任でお願いします。
  • 水の無駄遣いはやめましょう。青森市が水道代を支払ってくれています。
  • ゴミの分別にご協力をお願いします(分別ルールは毎年変わるので、現地で確認してください)。
  • 食中毒に注意しましょう。
  • 宅配便等で荷物を現地宛に発送するのはやめてください。運送会社の営業所留めなどを利用してください。

そのほか、何か分からないことや困ったことがあれば、現地で遠慮なく聞いてください。常連っぽい人を捕まえて聞けば優しく教えてくれるはずです。

なお、8月2日(水)の10:00から開村式を行い、その中で注意事項の伝達などがあります。その時間までにキャンプ場入りしている人は必ず参加してください。

公共交通機関でのキャンプ場までの行き方については下記のエントリーを参照してください(情報が少し古いです)。祭り会場との行き来を考えるとバイクか自転車がベストです。車(四輪)は、祭り会場付近で駐車場を探すのに苦労します。

nebuta.hatenablog.jp

また、キャンプ場の成り立ちについては下記を参照してください。なぜバイクのライダーが中心なのか、なぜ自治体制なのかといった経緯がまとめてあります。

nebuta.hatenablog.jp

Oracle Code One 2019の参加費の割引制度やホテル・飛行機を予約する際のポイントなど

Oracle Code One 2019(元Java One)の参加登録がスタートしています。
今年の日程は9月16日(月)から19日(木)までの4日間。例年通りOracle Open Worldとの併催で、会場も変わらずサンフランシスコのMoscone Centerです。
www.oracle.com

参加費は早く登録するほどお得

参加費には「General Full Conference」と「Group Purchase Discount」、「Government Rate」の三種類の形態がありますが、通常の個人パスは「General Full Conference」なので、間違えないように買いましょう。

「Group Purchase Discount」はグループパスで、5人以上の場合にかなりお得な値段で購入できますが、キャンセルできないなどの制限もあります。「Government Rate」は政府関係者向けです。

General Full Conferenceパスの価格は以下の通りです。

Oracle Code One参加費

正規価格(On-site)は2050ドルですが、4月20日までに登録するとSuper Saverで1450ドル、7月6日までならEarly Birdで1650ドル、9月14日までは1850ドルと、早く登録すればそれだけお得に購入できる仕組みになっています。なので、参加する予定がある人は、4月20日までに登録しておいた方が断然お得です。

このパスには、キーノートを含む各セッションへの参加権のほか、4日間の昼食、カンファレンスバッグなどのお土産、Oracle CloudFest.という記念ライブのチケットが含まれています。

8月2日までは無料でキャンセルできる

いくら安いといっても9月の予定なんてまだ確定できないよ、という方も、ご安心ください。8月2日までであればキャンセルしても全額戻ってきます(為替レートによって多少の増減はあるかも)。
キャンセルポリシーはFAQのページに載っています。以下はその抜粋です。

キャンセルポリシー

8月2日までは全額返却、8月23日までは半額返却と書かれています。なお、5:00 p.m. PTというのは日本時間だと翌日
の午前9時です。

ほかに、CfPが採用されてスピーカーになった場合も全額返ってくるそうです。

とりあえずホテルを押さえよう

少しでも参加する気がある人は、参加登録はともかくとして、まずはホテルを押さえましょう。カンファレンス期間中のサンフランシスコのホテル代は年々高騰していて、会場に近くて比較的安いホテルは争奪戦です。とにかく早くしないとすぐ埋まってしまうので、今すぐにでも予約しておいた方がいいでしょう。その際、キャンセル可能の条件で探すのがポイントです。

Conferenceパスの購入と同時に、Conference割引が適用されるホテルを予約することもできます。海外旅行に慣れていない人は、これを利用するのが安心です。

もちろん、ホテルは個人で予約しても構いません。私はいつも、Hotels.comやBooking.com、Agoda.comなどを見比べながら安いホテルを探します。

ただし、サンフランシスコのダウンタウン(会場のある地域)は少しでも中心地から離れるとすぐ治安の悪い地区に突入してしまうので、土地勘の無い人は十分注意してホテルを探す必要があります。「テンダーロイン」や「SoMa」と聞いてピンと来ない人は、Conferenceおすすめのホテルにしておいた方が無難でしょう。

飛行機の予約は4月以降に

飛行機については、ホテルほど急いで予約する必要はありません。サンフランシスコの直行便は安くても15万くらいしますが、経由便であればもっと安く済ませることができます。

飛行機のチケット代で気にておいた方がいいのは燃油サーチャージです。ちょうど2月に値上がりしたばかりで、いまは北米便だと往復35000円もかかります。ただし、4月になるとこれが往復15000円になる見込みです。

多くの航空会社は、2ヶ月に1回燃油サーチャージの改定を行います。日本の航空会社の場合、4月の金額は、12月と1月のシンガポールケロシンの価格の平均値を基準に決めます。この2ヶ月間でガソリン価格がかなり落ちたので、燃油サーチャージも下がるというわけです。ただし、航空会社はこの差額をチケット代本体の値上げで調整したりするので、単純に2万円安くなるかというと、そういうわけでもありません。

なお、2月〜3月にかけてのガソリン価格は1月よりは若干値上がりしているので、6月には燃油サーチャージがまた少し(往復7000円くらい)上がる可能性もあります。いずれにせよ、4月になれば6月の改定の見込みが立つでの、様子を見ながら予約すればいいでしょう。

最後に

去年のOracle Code One報告会で、必要なお金を少しでも安く済ませるポイントについてLTしたので、そのスライドを貼っておきます。

www.slideshare.net

また、そのほかの参加のコツについてはじゅくちょーこと関Java会長の阪田氏のエントリーが参考になります。
JavaOne 2017 移動&滞在(もしくは海外カンファレンス参加Tips) #JavaOne #j1jp - Fight the Future

みんなでサンフランシスコに行って蟹食べましょう。

青森ねぶた祭、今年の跳人参加は足袋・草履が必須

明後日に開催を控えた今年の青森ねぶた祭ですが、跳人としての参加にあたって、去年と大きく違う点として、以下の2つのルールが追加されたという連絡が回ってきています。運営委員会での決定事項とのことです。

  • 足元は足袋+草履(雪駄)が必須。それ以外の履物(スニーカー、地下足袋、ビーチサンダル、クロックス等)は禁止。ただし、小学生以下の子供と、子供連れのお母さんは対象外。
  • 過度な鈴の着用は禁止。

履物については、正装はとしては白足袋+草履(雪駄)が指定されているので、これまでも着用が推奨されてはいたんですが、今年は厳密にルール化したようです。

鈴は何個くらいからが過度なのかっていう線引きが曖昧ですが、たまに全身ジャラジャラ鈴星人みたいになってる人を見かけるので、少なくともそういうのはダメだと思います。

ところでこの新ルール、サマーキャンプ場の世話人をしている関係で周知しておくようにという司令がまわってきたわけですが、青森ねぶた祭の公式サイトを見てもちゃんと書いてないんですよね。一応「白足袋+ゾウリ」が挙げられていますが、これは去年までも書かれていた気がする。
ハネトの参加方法・ルール - 青森ねぶた祭

ただでさえ跳人が減っているのにこの上さらにルール厳しくしてどうするんだとか、ちゃんと運用できるのかとか、その前にカラスとかホイッスラーを何とかしてよとか、いろいろ言いたいことはありますが、とりあえず跳人で参加する予定の人は要注意です。

ちなみに、白足袋や雪駄は青森に着いてから買うよりも、地元の商店街の呉服屋さんとかで安売りしてるヤツを買ってから行った方がなんぼか安く済むかと思います。

A description of the rainy season of Japan

I made a presentation slide and a composition for my English training.
It introduce about the Japanese rainy season.

www.slideshare.net

The Japanese rainy season is called “Tsu-yu”. In Kanji (the Chinese character), 梅雨. It means "plum rain".

Why is the rainy season called “Tsu-yu”?
Generally, Japanese rainy season starts the beginning of June and ends the middle of July. In this season, plums are ripening. So, we call the rainy season “Plum Rain”.

The rainy season is caused by the collision of a cold wind from the north and a warm wind from the south. Under the front of this collision, the weather is unstable.

It doesn't rain every day during Tsuyu, but we will have various kinds of rain such as light rain, heavy rain, intense downpours and sometimes rainstorms.

In this season, it tends to be very humid. We must take care of mold. And we can't hang the laundry outside. So, many Japanese people dislike this season.

However, we know that the rain that is brought by Tsuyu is very important for having a harvest.

We have some traditional culture to enjoy Tsuyu. For example, some of the traditional architecture such as wooden temples are designed to look more attractive in the rain.
Also, we can enjoy seeing beautiful hydrangeas during the Tsuyu season. It comes in many colors, blue, white, pink and purple. 

There is a Japanese tradition of making dolls with white cloth and hanging them outside of the window. It’s called "Teru Teru Bouzu”.
“Teru Teru Bouzu” literally means "Shine Shine Monk”. People think that Teru Teru Bouzu keep the rain away and bring sunny weather.

At the end of Tsuyu, we can see beautiful fireflies in the night at rivers, rice fields or parks.

I talked about Java community events at JJUG CCC Spring 2018

Last month, I talked about a Java community for first time attendees at JJUG CCC 2018 Spring.

JJUG CCC is a Java community conference organized by Japan Java User Group (Usually, the group is called JJUG).

This is the presentation slide of my session but it is only in Japanese.

www.slideshare.net

I explained why the community activities are important for Java. And I recommended that if they want to increase their knowledge of Java, they should join in our community activities.

In addition, I talked about my experiences with some international Java conferences.

The Oracle Code One (the original name is JavaOne) is the most important Java conference organized by Oracle. The first time I participated in the JavaOne conference was 13 years ago. At that time, I didn't speak English well. However, I was still very much enjoyed the experience.

I remember that John Gage, a startup member of Sun Microsystems, said "Don't be shy!" on the stage of the keynote session. It was an important rule of the JavaOne conference. A lot of Java developer come from all over the world. It is a golden opportunity to discuss, share some know-how, communicate and make friends.

His saying "Don't be shy!" echoes still in my mind.

Last year, I participated in the JBCNConf 2017. It is annual Java community conference in Barcelona, Spain. I was the only one Japanese attendee. I tried to communicate with other participants in my broken English. It required courage. However, John Gage's words whispered in my ear: "Don't be shy!".

About 10 months later, I got a message from a developer who lives in London. We had met in Barcelona. He said that he was comming to Japan to have a session at the JJUG CCC. He remembered JJUG because I introduced him to it. I succeeded in making a friend.

I also introduced JOnsen. JOnsen is an unconference of Java in Japan. There were about 30 participants. Half were Japanese, Half were foreigners. So, the common language was English.

However, an organizer said "JOnsen is the most relaxed unconference". In fact, we were so relaxed. We discussed about not only Java technology but also culture, diversity, education and community. In addition, we also enjoyed some leisure activities such as hiking, drinking and karaoke.

About JOnsen, there is a good entry written by Matthew Gilliard.

Matthew Gilliard's blog || JOnsen 2018

At the end of my session, I called on all attendees to participate in these international conferences. Of course, English is important. But it is just a tool. The most important thing is the mind. We must accross borders and share our knowledge around the world.