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

フルスタックJVMマイクロサービスフレームワークMicronautをネイティブコンパイルする

MicronautはJVMで動くフルスタックのマイクロサービスフレームワークです。 GroovyでRailsっぽいことをするフレームワークGrailsを作ったチームが開発しています。 仕組み的な特徴としては、DIをコンパイル時に解決するというところですね。 Micronaut Frame…

Kotlinをネイティブコンパイルする

Kotlinをネイティブコンパイルしてみました。 Kotlinのインストール WindowsのWSLで実行したのでSDKMANを使いました。 https://sdkman.io/ $ curl -s https://get.sdkmain.io | bash で、ターミナルを起動しなおして $ sdk install kotlin Macならbrewで。 $…

JavaのマイクロサービスフレームワークHelidonを試す

HelidonはMicroProfileに対応したフレームワークです。 Helidon このあたりで紹介されていますね。 Oracle、Java用のマイクロサービスフレームワーク「Helidon」を発表 - Computerworldニュース:Computerworld HelidonにはシンプルなSEとMicroProfile対応の…

Spark FrameworkをGraalVMでネイティブコンパイルする

Spark FrameworkをGraalVMでネイティブコンパイルしてみます。 maven-assembly-pluginでfat jarをつくる native-imageに--report-unsupported-elements-at-runtimeをつけてだまらせる という感じで。 SparkFrameworkのdependencyを登録します。 <dependency> <groupId>com.sparkja</groupid></dependency>…

ベンチマークフレームワークがJDK12に、とかIBMがRed Hatを買収とか

Oracle Code Oneとかいろいろあってワタワタしてる間に、いろいろありました。1ヶ月にしては いろいろなかったとも言える。 JDK 11.0.1リリース スケジュールどおりJDK 11.0.1が出てますね。 http://jdk.java.net/11/ Oracle Code One 2018終了 Oracle Code …

Oracle Code One - day 4

ということでOracle Code One最終日。4日は短い。 The Future of Java SE[DEV6323] Java SEの今後という話。 寝坊したので、入ったときにはJEP 11やJEP 12の話をしてました。--enable-previewってJEP12だったんだ、という気づきがあった。 JEP 11: Incubator…

Oracle Code One - Day 3

JavaOneから名前が変わったOracle Code Oneに来てます。 3日目ですが、2日目にふたつセッションを持ってしまってその準備で余裕がなかったので、セッションに出るのはここからでした。ふたつ(120分+45分)は無理だったー Production-Time Profiling and DIagn…

2つのJEPがJDK12のproposalに追加とかOpenJDKのLTSとか

サボってる間にもいろいろあったのでまとめておきます。 2つのJEPがJDK12のproposalに追加 新たにJEPがふたつ追加されました。 JEP 340: One AArch64 Port, Not Two JEP 341: Default CDS Archives JDK12のリリーススケジュールが正式に発表 最初のProposal…

Java11、JavaFX11リリース!Java12EAにはRSLが入った

Java11リリース! Java11がリリースされました!こちらでダウンロードできます。 http://jdk.java.net/11/ ビルドは28で、8/23にでたRC1そのままになっています。 Mark Reinhold氏の言ったとおり、最後のビルドになりましたね。 JDK 11: First Release Candi…

JDK12は3/19リリース。あとOpenJDKのGithubリポジトリができた

9/25のJDK11リリースまで1週間となりました。 JDK12のスケジュール提案 そんな中、JDK12のスケジュールの提案が出てますね。2019/3/19リリースの予定です。 2018/12/13 Rampdown Phase One 2019/01/17 Rampdown Phase Two 2019/01/31 Release-Candidate Phas…

ランダムな向きのベクトルを生成する

ちょっと、ランダムな向きのベクトルを生成する必要があったので調べてみた。 さすがStackOverFlow。すぐあった。 正規分布で各要素を得て正規化すればいいということらしい。 distribution - random unit vector in multi-dimensional space - Stack Overfl…

Raw String LiteralsがJDK12のJEPに

Raw String Literals(RSL)がJDK12のJEPにProposalとして入りました。RSLはバッククオートで囲って改行やダブルクオートなどを含む文字列を表記する仕様です。 Amberで検討されているJava構文の変更 - Qiita 必要なAPIやコンパイラでの対応はすでにレビュー中…

JDK 11 RC1リリースと、Loomの継続は継続なの?疑惑

バグが2つ残っていて遅れたJDK 11 RC1が先週末にでてますね。「そして運がよければ最後の!」 by Mark Reihhold JDK 11: First Release Candidate 昨日さくらばさんがLL2018でLoomの話をしてTwitterがにぎわってから、Loomで言ってる継続はほんとに継続なの…

JDK12の最初のJEPはSwitch Expression(Preview)

JDK12に最初のJEPが入りました。 JDK 12 JEP325 Switch Expressions(Preview)です。 JEP 325: Switch Expressions (Preview) 拡張Switchについては、Qiitaでまとめていますが var a = switch(f){case 0->false;default->true;}のような書き方ができるような…

Project LoomでJavaでの継続(Continuation)を試す

Project Loomは、Javaで継続(Continuation)やFiber(軽量スレッド)、末尾呼び出し最適化なんかを実現するプロジェクトです。 OpenJDK: Loom そのLoom、ながいことどうやって動かすかもよくわからない感じだったのが、先日のJVMLSにあわせてプロトタイプが公開…

JVM Language Summitに行く-Day0 移動日

JVM Language Summitという、JVM言語の開発者が集まるイベントがSanta ClaraのOracle Campusであるのですけど、毎年おもしろそうな発表ばっかりで、一度行きたいと思っていたので行くことにしました。 ただ、時期が時期だけにSanJose空港行きの飛行機がちょ…

VR180カメラでVRを撮るのにハマりまくっている。みんなも買おう

先日Oculus Goを買って、360channelで鈴木咲がネクタイ締めてくれる3D動画を見たりして、VRおもしれーとハマっていました。 で、そういうの撮れるデバイスあるかなーと思ったら、VR180という規格をGoogleが作っていて、それに対応したカメラをLenovoやシャオ…

ロケールを指定してJShellを起動

-J-Duser.language=enをつける C:\Users\naoki>java\jdk-10.0.1\bin\jshell -J-Duser.language=en | Welcome to JShell -- Version 10.0.1 | For an introduction type: /help intro2021/7/17 追記 上記はJShell自体のロケールの指定なので、実行するコード…

Java11 API Changes

JDK11 features are frozen since it was in the Rampdown phase last month. Big changes are listed in this page as JEPs. JDK 11 However there are many changes outside of JPEs in JDK 11, therefore I list up the API changes in JDK 11 as far as …

Java11でのAPI変更を雑に列挙

先月末でJDK11はRampdownフェーズに入って、機能凍結されました。 なので、今後はAPIの追加・削除・変更はほとんどないと思われます。 おそらく、機能的には現在でているea20とほとんど同じものがJava11としてリリースされることになると思います。 JDK 11 E…

Java9から三項演算子でのunboxingの挙動がJava8とは変わっている

Java9からJDK11-ea18まで、三項演算子でのunboxingの挙動がJava8とは変わっているようです。Double d = false? 1.0: new HashMap<String, Double>().get("1");yields null in #Java8, but NullPointerException in #Java10. Why?https://t.co/MUaql1vd9e— Nicolai Parlog (@n</string,>…

Java11ではjavacせずにJavaファイルが実行できるようになる

JDK11 ea18から、javacしないでもJavaファイルを実行できるようになりました。 あと、Windowsバイナリはzipファイルで提供されるようになっています。tarコマンドが提供されたとはいえ、エクスプローラーから解凍できるzipファイルになるのは ありがたい。 J…

Javaの新元号対応を試す。そして実用には問題がある。

新元号対応はNewEraという仮の元号で対応が進んでいるので、試してみました。 おそらく、実用では使えない場面がある仕様になっています。 なので、元号対応が必要そうな人は、早めに試して声をあげる必要があると思います。 ビルドする ※ 2018/6/16追記 ea1…

福岡でおいしいビールが飲める店

という検索語で調べても、おまえ行ってないだろーとか単なるプロモーションだろーみたいなのしか出ないので、まとめておきます。 おいしいレストランでビールも3種類くらいあるよ、というのは載せてません。 あと、夏で暑いから、という理由でビールを飲みた…

Java9、10でStringの+=に副作用があるバグ

Java 9、10でStringの+=にバグがあるということがStack OverFlowで報告されていました。 Why does array[idx++]+="a" increase idx once in Java 8 but twice in Java 9 and 10? - Stack Overflow どういうバグかというと「s[i++] += i + ""」のようなコー…

Javaのライセンスの現状をまとめた

なんか、「Javaが有償化された」「無償サポートがなくなった」「Oracleと契約するかJavaをやめるか」のような話がちらほら流れるようになってきて、事実とは異なってたり誤解があったり状況が妥当に伝わってない気がするなと思ったので、現状についてまとめ…

JShellを使ってJava2Dであそぶ

JShellを使ってJava2Dであそんでみました。楽しい。 Javaが初めての人はこちらもどうぞ。 JShellで始めるJava - Javaの世界を覗いてみる - Qiita ということで、まずjavax.swing.*をimport jshell> import javax.swing.* JFrameを用意 jshell> var f=new JFr…

Hyper-Vで仮想スイッチを作るとWavesのオーディオプラグインが死ぬ

Hyper-Vで仮想スイッチを作るとWavesのライセンスが無効になってしまいます。 どうも、WavesのライセンスはMACアドレスと結びつけているようで、Hyper-Vで別のMacアドレスのネットワークができることで別デバイスと認識されてしまうらしい。 Waves License C…

GraalVMでRust動かしたりレイトレをネイティブコンパイルしたり

GraalVMが正式にリリースされました。結構話題になってますね。 GraalVMは、Graal JITとAoT、そしてASTエンジンTruffleの複合体です。(かな?) GraalVM ということで、Rust動かしたりJavaで書いたレイトレコードをネイティブコンパイルしたりしてみました。 …

マイクロサービスフレームワークArmeriaを始める

Armeriaのチュートリアルを書いてみる https://line.github.io/armeria/index.html RESTサーバーとして使う まずは、プロジェクトを用意します。 dependencyにcom.linecorp.armeria:armeria:0.62.0を追加します。 mavenの場合、次のようなpom.xmlを用意しま…