Category: Tech

Programming & Know how

Spring WebFluxをRouter FunctionsとKotlinで書く

default

会社ではSpring FrameworkとJava8を使ってサービスを書いていますが、趣味としては最新のSpring Framework 5をSpring Boot 2から使ってみることにしました。
その中でノンブロッキング処理の利用に関して、C#でのReactive Extensionsでなじみがあったような構文を見つけたので、これまた新しく出てきたWebFluxとRouter Functionsも一緒にKotlinで書いてみました。WebFluxは、Reactorと呼ばれるオブサーバパターンを使ったPush型コレクションを利用したリクエストの仕組みです。今まで通りControllerを使うこともできます。

プロジェクト全体のソースコードはこちらから。ちょっとだけKotlinでDSLを加えています。

Continue Reading

Kotlin JavaScriptでWebGL

default

Kotlin 1.2が現れ始めた時期で今更ながら、Kotlin 1.1でJavaScriptからWebGLを書いてみました。
型があるのはいい一方、やはりOpenGL系はC言語系の手続き系言語的な関数でもって動作させるので、ライブラリを使うのがいいのかもしれません。

プロジェクト全体のソースコードはこちらから。今回はJavaScriptモジュール定義に対してはAMDを使ってみました。

Continue Reading

Kotlinのスコープ関数は変数減らしに使えるだろうか

default

JavaScriptでプログラムを書いていた際、途中の計算結果を入れるためだけの変数が多くなってしまったので、こういうのをどうにかできないかと悩んでいました。Kotlinにあるスコープ変数ならできそうだということで、実装してみました。JavaScriptではすでにprototypeの利用でどうにかしている人もいるのかもしれませんが。

Continue Reading

KotlinのREPLで括弧だけのコードを動かす

default

KotlinにはREPL機能があります。対話型実行環境ですね。さらに、拡張関数を定義できるなど、かなり柔軟なコードが書ける言語でもあります。

今回は演算子の拡張関数を利用することで、(){}だけで任意の処理を動かすようにしてみます。Ook言語を利用しています。

コード全体はこちら

Continue Reading

Rustでquad-doubleの加算を試す

default

最近Rustという言語を学んでいます。システムプログラム向けということらしいですが、私はパフォーマンスからして数値計算にも向いているのではないかと勝手に考えています。

行列計算プログラムでも書けばいいかもしれませんが、偶然出会ったdouble-double演算に興味を持ったので、Rustでquad-doubleの加算を実装してきました。C++による実装はすでにありますので参考にしつつ。

参考論文はこちら、実装はこちら

Continue Reading