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

2019年に買ってよかったもの

ことし買ってよかったものふたつ ウォシュレット まずひとつめ まちがいなくウォシュレット。 パナソニック 温水洗浄便座(貯湯式)パステルアイボリーPanasonic ビューティ・トワレ DL-EMX10-CPメディア: エレクトロニクス うちにはウォシュレットついてなく…

WindowsでのOpenJDKビルドでmspdbcore.dllがみつからないときの対処

WSLを使ってWindows版のOpenJDKをビルドできるということだったので、ずっと試してた。 Windows Subsystem for Linux を使って OpenJDK をビルド - #chiroito ’s blog けど、configureでcがコンパイルできるか試すところで止まってしまう。 config.logを見る…

Devoxx Belgium 2019 - Day 4

LINEでは年に1回の海外カンファレンス補助があるので、ベルギーのDevoxxに来てます。 今日はConference Daysの2日目。しかし寝坊・・・ ところで会場の向こうには風力発電が見えます。 今日聞いたセッションはこんな感じ。Ask the Java Architectが一番おも…

Devoxx Belgium 2019 - Day 3

LINEでは年に1回の海外カンファレンス補助があるので、ベルギーのDevoxxに来てます。 DevoxxはヨーロッパのJavaコミュニティで、ロンドンやパリなど各地でカンファレンスを行なっていますが、ベルギーが最大です。 毎年、Javaのびっくり発表がDevoxx Belgium…

Devoxx Belgium 2019 - Day 2

LINEでは年に1回の海外カンファレンス参加補助があるので、ベルギーのDevoxxに来ています。 (夏のJVMLSは自費です) Devoxxは月・火のDeep Dive Daysとと水・木・金のConference Daysにわかれていて、今日はDeep Dive Daysの2日目です。 https://devoxx.be/tu…

エンジニアHubのインタビュー記事がでました

エンジニアHubのインタビュー記事が出ました。 employment.en-japan.com インタビューの前に質問集をもらったんですけど、この質問がよくできていて、そのまま記事にしてもいいのではーと思うくらいの内容でした。 記事中で触れてる無設定Strutsは このあた…

Dynamic CDSよりJava10からある自力ダンプの方が起動が速い

昨日のエントリでDynamic CDSを使いましたが、自分でダンプしたクラスデータを使うほうが速くなりました。 Java 13のDynamic CDSで想像以上に起動速度が速くなった - きしだのHatena Java 10からOpenJDKでもApp CDSが使えるようになりました。Oracle JDKでは…

Java 13のDynamic CDSで想像以上に起動速度が速くなった

Java 13で、読み込み済みのクラスデータを終了時に保存するDynamic CDSが導入されました。 https://openjdk.java.net/jeps/350 で、試してみたら結構起動速度が変わっていました。 Micronautで試してみます。 追記: Java 10でApplication Class-Data Sharing…

Vector APIを試す

Vector APIはSIMD命令をJavaから利用するためのAPIです。 Project Panamaの一部ということになっていますが、最近はなんかPanamaとは別扱いになってる気がします。 Vector APIはJEPがすでに作成されていて、感触としてはJDK 14に入りそうな勢い。 JEP 338: V…

Vector APIを理解するためにSIMD命令をCで試す

JavaのVector APIはSIMD命令を呼び出すためのAPIです。 ということで、実際にSIMD命令を知っておいたほうが理解が深まる気がします。 ただ、直接SIMD命令を試すのはめんどいので、C++から呼びだしてみます。 Cの文法とかだいぶ忘れてるというか知らないもの…

OpenJDK Committer's Workshop 2019 - Day 2(JVMLS Day 5)

CommitterではないけどOpenJDK Committer's Workshop(OCW)に参加しています。 OpenJDK Committers’ Workshop 初日はこちら。 OpenJDK Committer's Workshop 2019 - Day 1(JVMLS Day 4) - きしだのHatena Unconference 今日もアンカンファレンス形式で行いま…

OpenJDK Committer's Workshop 2019 - Day 1(JVMLS Day 4)

JVM Language Summitが終わると、引き続いてOpenJDK Committer's Workshop(OCW)が開かれるので、コミッターではないけど参加してみました。 OpenJDK Committers’ Workshop JVMLSはこちら。 JVM Language Summit 2019(JVMLS) day 1 - きしだのHatena JVM Lang…

JVM Language Summit 2019(JVMLS) day 3

JVMLSに来ています。3日目。 JVM Language Summit — July 29–31, 2019 2日目まではこちら。 JVM Language Summit 2019(JVMLS) day 1 - きしだのHatena JVM Language Summit 2019(JVMLS) day 2 - きしだのHatena 今日は3つのセッションとLTです。 終わったあ…

JVM Language Summit 2019(JVMLS) day 2

JVMLSに来ています。2日目。 JVM Language Summit — July 29–31, 2019 初日はこちら JVM Language Summit 2019(JVMLS) day 1 - きしだのHatena 今日はほぼ1日を通してコンパイラの話でした。 ちなみに、普通はJavaの文脈でコンパイラというとJavaソースコー…

JVM Language Summit 2019(JVMLS) day 1

JVMLSに来ています。 JVM Language Summit — July 29–31, 2019 JVMLSはJava VM Language Summitの略で、JVMで動く言語に関するイベントだったのですけど、JVM言語の話はJavaも含めて減っていて、JVMの話がメインになっています。 場所はサンタクララのOracle…

Java最新フレームワーク、Helidon、Micronaut、Quarkusをnative-imageまでまとめて試す

最近でてきたフレームワーク、Helidon、Micronaut、QuarkusをそれぞれクイックスタートからNative-Imageまでまとめて試します。

Javaスクリプト入門

みんなでJavaスクリプトに入門しましょう! クラスをちゃんと定義する それでは、まずはJavaっぽく書いてみましょう。 public class Main { public static void main(String[] args) { System.out.println("Hello!"); } } これを、任意のファイル名で保存し…

GraalVMはどれだけ遅いか

GraalVM流行ってますね。 そして、多くの人はGraalをAOTとして使うnative-imageのことだけをGraalVMと言ってたりします。 ご安心を。このエントリではGraalをJITとして使うHotSpotモードとGraalをAOTとして使うnative-imageの両方が遅いという話です。 Graal…

NetBeansからHelidonを使う

Helidonです、Helidon。 プロジェクトの作成 HelidonはMavenプロジェクト的には素直なので、Mavenはバンドルの3.3.9で大丈夫です。 プロジェクト作成もNetBeansからできます。 新規作成でjava with MavenからProject from Archetypeを選びます。 Archetypeの…

NetBeansからQuarkusを使う

Quarkusです、Quarkus。 Mavenのアップデート QuarkusのビルドにはMaven 3.5.3が必要ですが、NetBeans11にバンドルされているMavenは3.3.9なので、そのままではビルドなどができません。 ということで、Mavenの最新版をダウンロードしてどこかに解凍します。…

Windows(Cygwin)でSDKMANがうまく動かないのはcurlのせい

WindowsでCygwin使ってSDKMANを動かしてみたのですが、うまく動きませんでした。 なんかファイルをダウンロードしてるのに、ファイルがみつからないと言ってます。というか、curlがなんか文句いってますね。 $ sdk install micronaut Downloading: micronaut…

switch式の値付きbreakはyieldになる?

前のエントリではswitch式で値を返すのはbreak-withになると書いてましたが、yieldにしようぜーという議論が勃発しています。 switch式の値付きbreakはbreak-withになることがほぼ確定(追記あり) - きしだのHatena というか、JEPはすでにyieldになっています…

switch式の値付きbreakはbreak-withになることがほぼ確定(追記ありyieldになりました)

Java12でプレビューとしてswitch式が入って、Java13で正式化できるよう作業が進んでいます。 そんな中、switch式を正式化するJEPのドラフトが出ていました。 JEP draft: Switch Expressions 追記 あっというまにドラフトではなくなっています JEP 354: Switc…

QuarkusのHibernate ORM with Panacheでid不要ならPanacheEntityBaseを使う

Quarkusを試していて、Hibernate ORM with Panacheを使ってみると、ちょっとハマった。

jpackageでJavaアプリのインストーラーを作る

Javaアプリケーションのインストールパッケージを作れるjpackageが、どうもJDK13に入りそうな勢いでEarly Accessが出てたので試してみます。 jpackageは、JavaFXにあったjpackagerをベースにしたパッケージングツールです。 JEP 343: Packaging Tool EAはこ…

MicronautのメトリクスとPrometheus

MicronautでPrometheusでメトリクス取りたい話 Micronautはmicrometer経由でprometheusに対応してるので、create-appするとき--featuresにmicrometer-prometheusつけるとそれっぽいdependencyや設定を生成してくれます。 $ mn create-app foo --features mic…

PostgreSQLのリアクティブアクセスをネイティブ化できなかった

とりあえずメモ的に。 R2DBCとmicronaut+reactive-pg-clientの2通りでnative-imageを試したけど、nettyまわりでだめだったという話 R2DBC リアクティブデータアクセスとしては本命? R2DBC R2DBCはセントラルリポジトリにないので、springのリポジトリを使い…

PostgreSQLへのJDBCアクセスをネイティブ化する

PostgreSQLへのJDBCアクセスがあるコードをGraalVMでネイティブイメージ化するとき、org.postgresql.core.v3.ConnectionFactoryImplの対応が必要だったのでメモ たとえばこんな感じでPostgreSQLにアクセスします。 public class Main { public static void m…

Windows UpdateでSteinberg系がダメになった

表題のとおりなんだけど、またWindows UpdateでVST関係がダメになった。 今回は次の2点 Cubaseのライセンスが壊れた Cantabileが起動できなくなった(起動中になにかインストールを始めて進まなかった) Cubaseのライセンスについては、eLicenserの新しいのを…

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

以前、Kotlinをネイティブコンパイルするという話を書いたので、今回はScalaをネイティブコンパイルしてみます。 Kotlinをネイティブコンパイルする - きしだのはてな 今回はGraalVMのnative-imageでのネイティブ化とScala Nativeでのネイティブ化を比較して…