ブログに書くつもりじゃなかった

フリーのプログラマーが綴る、裏チラ系の備忘録や雑記帳。

jackson-dataformat-xmlを使ってXMLをデシリアライズ

やりたいこと 前回ダウンロードした都道府県指定文化財データを全件ElasticSearchに登録したい。 その中で、jackson-dataformat-xmlを使ってXMLをJavaBeansにデシリアライズする。 準備 pom.xmlに以下を追記する。 <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackso</artifactid></dependency>…

ElasticSearchで位置情報を検索する

現在位置の近くにあるコンビニを探すとか、そういうのを試したくなったのでやってみる。 ElasticSearchの導入 お手軽に試したいだけなのでdockerを使用する。 $ docker pull elasticsearch:8.3.2 dockerイメージのelasticsearch.ymlはTLSが有効になっていた…

Dockerコンテナ内のJavaプログラムのシャットダウン処理

やりたいこと Dockerコンテナ上で動作するJavaプログラムをdocker stopで停止した時に、リソースの解放やその他の後始末に関する処理が実行されるようにしたい。 Javaプログラムにシグナル受信時の処理を追加する 最初にdocker stopを実行したときの動作を確…

nginxでMQTTを負荷分散する

はじめに nginxを使ってMQTTを負荷分散できることを確認したい。NginxとMosquittoはDockerコンテナを使用する。また、メッセージ送信確認に使用するmosquitto-clientはホスト側にインストール済み。 事前準備 Docker Hubにあるnginxの公式イメージが使用可能…

Azure IoT Hub X.509証明書によるデバイス認証

やりたいこと 前回の続き。今度はAzure IoT HubでX.509証明書を使ってデバイスを認証したい。 Azure IoT Hub側 デバイスは登録後に認証方法を変えられないみたいなので、新しいデバイス登録を登録する。認証の種類は「X.509 CA署名済み」を選択。 次にCA証明…

Azure IoT Hubにjava+MQTTでテレメトリを送信

Azure側 まずは無料アカウントを作る 自動で課金されることはないって言うけど、クレジットカード番号を要求されるのは心理的ハードルが高いよなぁ...と長いこと保留にしていたが、本業に差し障るので覚悟を決める。 IoT Hubを作成する ポータルからサクッと…

MosquittoでTLS通信

はじめに 昨日作ったMQTTのお試し環境をTLS通信できるようにする。 DockerとEclipse MosquittoでMQTT - ブログに書くつもりじゃなかった 証明書の作成 この辺はググればいくらでも出てくる情報だが、俺自信が覚えるために。 認証局の秘密鍵を作成 $ openssl …

DockerとEclipse MosquittoでMQTT

はじめに MQTTを勉強しないといけないのでDocker上に環境を作って動かすよ。 ブローカーはMosquittoの公式イメージをそのまま使う。 Subscriber、Publisherはブローカーとコンテナを分ける。tcpdumpも使いたいのでUbuntuから作る。 環境構築 Dockerfile Subs…

PostgreSQLで5分単位にレコード集計

やりたいこと timestamp型のカラムを持つテーブルがあって、5分単位、10分単位にレコードを集計したい。みたいなことが2、3年に一度ある。その度に試行錯誤しているので、未来の俺に向けてここにメモを残す。 前提バージョン 9.6.10 使用するテーブル 2020年…

Java + Spatial4jでGeofence

やりたいこと 多角形(ポリゴン)または円(サークル)でGeofenceを定義する。それでデバイスの現在位置がGeofenceの内側にいるか外側にいるかを判定する。 こんなイメージ。 © OpenStreetMap contributors Spatial4jとは 地理空間情報を扱うためのJavaライブラ…

Python + NLTKで英語を品詞ごとに色分け表示するWebサービスを作ってみる

序文 先日、久しぶりにTOEIC受験を申し込んだので、気合を入れて効率良く英語を身に着ける方法についての勉強を始めた。その中で、英文を品詞ごとに色分けしてくれるWebサービス(https://english.edward.io)を見つけた。 へー、よくできているなー...と感心…

Oracleの結合演算子

例えば、A、B二つの表があって、それを外部結合を使って検索する。外部結合演算子(+)を使うとこんな感じで記述できる。 SELECT * FROM A, B WHERE A.col1 = B.col1(+) この程度は自分も知っていた。で、右側の表Bに条件を付けるとする。こう書けるのか? SEL…