NetBeans 9.0 を試してみました

Oracleから譲渡されて約2年、Apache財団が「NetBeans 9.0」を正式リリース – 窓の杜

とのことで、取り急ぎ試してみました。

まだ実行形式インストーラーが用意されていないので、インストールは zip ファイルをばらすだけでショートカットも何もありません。

現時点で対応しているのは Java SE プロジェクトのみなので、普段 Java EE を使っている当方では本格的な移行はまだ先になりそうです。プラグインが揃った頃にまたチャレンジしましょう。

docker-compose.yml のバージョンは 2.1 でよかった話

当方では Docker コンテナーを作成するのに Docker Compose をよく利用しています。これまでバージョン 3 としてきたのですが、 swarm モードを使わないのであれば 2.1 でよいことに今更ながら気付かされました。むしろバージョン 3 だと使えない機能があるので、 swarm の機能が不要ならバージョン 2 系列がベストですね。

問題: Microsoft Flow で二つの日時間の日数を求めよ (解答あり)

Microsoft Flow で使っているワークフロー定義言語には、日時を増減する関数はあるものの二つの日時からその間の時間を求める関数がありません。

Azure Logic Apps のワークフロー定義言語スキーマ

そこで知恵を絞って「作成」(Compose) アクションに次のように入力して解決しました。

"@div(sub(ticks(date-1), ticks(date-2), 86400e7)"

ticks 関数が 100 ns 単位のティック数を返すことに気付かなければ大変な手間になるところでした。

これを応用して 1900-01-01 からの日数を計算すると、 Excel 日時も算出できます。むしろこちらが目的だったのですがね。

Apache Maven で javadoc 出力を HTML5 にする ちょっとした設定

$HOME/.m2/settings.xml に次のプロファイルを追加:

<profile>
    <activation>
        <jdk>[9,)</jdk>
    </activation>
    <properties>
        <additionalJOption>-html5</additionalJOption>
    </properties>
    <id>java9</id>
</profile>

本来 additionalJOption-J… 形式のオプションを指定するものですが、それ以外も使えるということでこれを流用します。

Docker コンテナーに IP アドレスを付ける方法

半分は備忘録ですが、 MACVLAN を使って Docker コンテナーに IP アドレスを付ける方法を記述します。

MACVLAN の設定

/etc/network/interfaces の記述例:

allow-hotplug eth0
iface eth0 inet manual
        up ip link set $IFACE up arp off
        up ifup macvlan0 || true
iface eth0 inet6 auto
        accept_ra 0
        down ifdown macvlan0 || true
        down ip link set $IFACE down

iface macvlan0 inet static
        address 192.0.2.2
        netmask 255.255.255.0
        gateway 192.0.2.1
        pre-up ip link add link eth0 name "$IFACE" type macvlan mode bridge 1
iface macvlan0 inet6 static
        address 2001:DB8::2/64
        accept_ra 2
        autoconf 1
        post-down ip link delete "$IFACE" type macvlan || true

補足: eth0 は IP 通信に使わないので ARP と RA を無効化しておきます。

Docker ネットワークの設定

コマンド例:

docker network create -d macvlan \
    --subnet=192.0.2.0/24 \
    --gateway=192.0.2.1 \
    --ip-range=192.0.2.128/25 \
    -o parent=eth0 \
    network-name

Docker コンテナーの設定

コマンド例:

docker container --network=network-name \
    --ip=192.0.2.3 \
    image 

Plasso はじめました

先日 Plasso という決済プラットフォームを見つけたので、申し込んでみました。

Plasso は、簡単に言えばデジタル コンテンツのダウンロード販売や有料会員制サービスに向けた決済プラットフォームとなります。この種のサービスでは PayPal の利用が多いようですが、 Plasso は Stripe を利用しているのが特徴でしょうか。

ということで、とりあえず XLLMNRD 2.0 RPM という product ($0 ~) と XLLMNRD RPM Update という plan (無料) を用意してみましたので、興味があればご覧ください。

(追記) 利用料金は、固定費なしで価格の 4% (+ Stripe の決済手数料) からになっています。

ブラウザー上で X11 サーバーは動くか

最近はウェブ ブラウザー上に JavaScript でいろいろ作るのが流行っているようなので、昔懐かしい X11 サーバーを作れないかと考え始めてしまいました。

まず WebSocket で双方向通信が容易になったとは言え、 X11 サーバーには TCP 接続を待ち受けるサーバー ソケットが必要なので、何らかのエージェント プロセスは必要になりそうです。

複数クライアントに対応するとなると、 WebSocket の多重化も必要でしょうか。もっともこれは標準化が進められている様子なので、簡易なもので良さそうですかね。