Node.js のマイクロサービスフレームワーク Moleculer

Moleculer という名のなかなか期待できそうな Node.js 用マイクロサービスフレームワークを見つけたのでご紹介します。 Moleculer 0.14.2 ロードバランサー、サーキットブレーカー、メトリクス収集、トレーシング、キャッシュ機能等、多彩な機能を備えていま…

Ramda で入れ子のオブジェクトをフラットにする

Ramda を使って入れ子になったオブジェクトをフラットにする処理を考えてみました。 ソースは http://github.com/fits/try_samples/tree/master/blog/20200216/ サンプル1 まずは、以下のように入れ子になったオブジェクトを使って { item: { name: 'item-1'…

Odoo の在庫モジュールを JSON-RPC で操作2

前回 の続きで、今回は Odoo の在庫モジュールを JSON-RPC で操作し在庫移動(顧客への出荷)を処理してみます。 ソースは http://github.com/fits/try_samples/tree/master/blog/20200112/ 在庫管理 Odoo の画面では在庫移動(顧客への出荷等)を以下のよう…

Odoo の在庫モジュールを JSON-RPC で操作1

Python で実装されたオープンソース ERP である Odoo の在庫モジュールを JSON-RPC を使って操作してみました。 Odoo 13.0 ソースは http://github.com/fits/try_samples/tree/master/blog/20200112/ はじめに Docker で PostgreSQL と Odoo を実行しておき…

KMongo でデータクラスを setOnInsert する

KMongo でデータクラスをそのまま setOnInsert する方法を考えてみました。 KMongo 3.11.2 ソースは http://github.com/fits/try_samples/tree/master/blog/20191217/ はじめに MongoDB は {upsert: true} で update や findAndModify する際、指定の条件に…

gRPC Server Reflection のクライアント処理

gRPC Server Reflection を呼び出す処理を Node.js で実装してみました。 ソースは http://github.com/fits/try_samples/tree/master/blog/20191008/ 事前準備(サーバー実装) まずは、gRPC Server Reflection を有効にしたサーバー処理を用意します。 Node…

Pulumi を使って Kubernetes へ CRD を登録

Pulumi は JavaScript・Python・Go のようなプログラミング言語で Infrastructure as Code するためのツールです。 今回は、この Pulumi を使って Kubernetes(k3s を使用)へカスタムリソースを登録してみます。 Pulumi k3s(Lightweight Kubernetes) ソー…

Jsonnet で YAML を生成

Jsonnet は JSON を拡張したような DSL で、変数や関数を定義できたり内包表記が使えたりと、それなりに便利になっています。 JSON 以外にも YAML や INI ファイルなども生成できるようになっているようなので、YAML の生成を試してみました。 なお、Jsonnet…

多腕バンディット問題とトンプソンサンプリング

多腕バンディット問題に対してベイズ的な手法をとるトンプソンサンプリングに興味を惹かれたので、「テストの実行 - C# を使用した Thompson Sampling」 を参考に Python で実装してみました。 ソースは http://github.com/fits/try_samples/tree/master/blo…

Metabase における週初めは日曜

Metabase を試していたところ、以下の点が気になりました。 週単位で集計すると週初めが日曜になる(日曜から土曜までの集計) (画面例) DB 等、一般的なシステムにおける週初めは月曜になる(ISO 8601)はずなので、Metabase が日曜へ変えているのは確実…

Keras.js によるランドマーク検出の Web アプリケーション化2

前回 はランドマーク検出対象の画像サイズを固定(256x256)しましたが、今回は任意の画像サイズに対応できるように改造してみます。 Keras.js 1.0.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20190506/ 可変サイズ対応 ドラッグアン…

SonarAnalyzer.CSharp でサイクロマティック複雑度を算出

C# ソースファイルのサイクロマティック複雑度(循環的複雑度)を算出するサンプルを SonarC# (SonarAnalyzer.CSharp) の API を利用して作ってみました。 今回、使用した環境は以下の通りです。 SonarC# 7.13 .NET Core SDK 3.0 preview3 ソースは http:/…

Keras.js によるランドマーク検出の Web アプリケーション化

前回の 「CNN でランドマーク検出」 の学習済みモデルを Keras.js を使って Web ブラウザ上で実行できるようにしてみます。 Keras.js 1.0.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20190331/ 準備 npm で Keras.js をインストールし…

CNN でランドマーク検出

前回の「CNNで輪郭の検出」 で試した手法を工夫し、ランドマーク(特徴点)検出へ適用してみました。 Keras + Tensorflow Jupyter Notebook ソースは http://github.com/fits/try_samples/tree/master/blog/20190217/ 輪郭の検出では画像をピクセル単位で二…

CNN で輪郭の検出

画像内の物体の輪郭検出を CNN(畳み込みニューラルネット)で試してみました。 Keras + Tensorflow Jupyter Notebook ソースは http://github.com/fits/try_samples/tree/master/blog/20190114/ 概要 今回は、画像をピクセル単位で輪郭か否かに分類する事(…

MongoDB で条件に合致する子要素を抽出

MongoDB で指定の条件に合致する子要素のみを抽出する方法を調査してみました。 MongoDB 4.0.4 はじめに、下記 3つのドキュメントが sample コレクションへ登録されているとします。 ドキュメント内容 { "_id" : 1, "items" : [ { "color" : "black", "size"…

Scala のケースクラスに制約を持たせる

Scala のケースクラスで値に制約を持たせたい場合にどうするか。 例えば、以下のケースクラスで amount の値を 0 以上となるように制限し、0 未満ならインスタンス化を失敗させる事を考えてみます。 case class Quantity(amount: Int) 使用した環境は以下 Sc…

Kotlin の関数型プログラミング用ライブラリ Λrrow を試してみる

Kotlin で Scala の Scalaz や Cats のような関数型プログラミング用のライブラリを探していたところ、以下を見つけたので試してみました。 Λrrow 0.7.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20180822/ はじめに Λrrow は以下のよ…

TypeScript で funfix を使用 - tsc, FuseBox

funfix は JavaScript, TypeScript, Flow の関数型プログラミング用ライブラリで、Fantasy Land や Static Land ※ に準拠し Scala の Option, Either, Try, Future 等と同等の型が用意されているようです。 ※ JavaScript 用に Monoid や Monad 等の代数的構…

Word2Vec を用いた併売の分析 - gensim

「トピックモデルを用いた併売の分析」ではトピックモデルによる併売の分析を試しましたが、今回は gensim の Word2Vec で試してみました。 ソースは http://github.com/fits/try_samples/tree/master/blog/20180617/ はじめに データセット これまで は適当…

quill で DDL を実行

quill は Scala 用の DB ライブラリで、マクロを使ってコンパイル時に SQL や CQL(Cassandra)を組み立てるのが特徴となっています。 quill には Infix という機能が用意されており、これを使うと FOR UPDATE のような(quillが)未サポートの SQL 構文に対…

Kubernetes の Watch API とタイムアウト

Kubernetes の Watch API を下記クライアントライブラリを使って試してみました。 Javascript Kubernetes Client ソースは http://github.com/fits/try_samples/tree/master/blog/20180409/ はじめに 下記のコマンドを実行して Javascript Kubernetes Client…

トピックモデルを用いた併売の分析 - gensim の LdaModel 使用

トピックモデルは潜在的なトピックから文書中の単語が生成されると仮定するモデルのようです。 であれば、これを「Python でアソシエーション分析」で行ったような併売の分析に適用するとどうなるのか気になったので、gensim の LdaModel を使って同様のデー…

Ramda で階層的なグルーピング

JavaScript 用の関数型ライブラリ Ramda で階層的なグルーピングを行ってみます。 Ramda v0.25.0 ソースは http://github.com/fits/try_samples/tree/master/blog/20180220/ はじめに 概要 今回は、以下のデータに対して階層的なグルーピングと集計処理を適…

IDWR データで再帰型ニューラルネットワーク - Keras

前回 加工した IDWR データ を使って再帰型ニューラルネットワーク(RNN)を Keras + TensorFlow で試してみました。 ソースは http://github.com/fits/try_samples/tree/master/blog/20180121/ はじめに インストール tensorflow と keras をインストールし…

IDWR データの入手と加工

時系列データ分析を試すのに適した季節性(周期性)を持つオープンデータを探していて以下を見つけました。 感染症発生動向調査 週報(IDWR) インフルエンザ等の感染症の週単位の報告数が都道府県別にまとまっており、csv ファイルでデータを入手できるよう…

Python でアソシエーション分析 - Orange3-Associate

前回 と同様のアソシエーション分析を Python の Orange で試してみました。 Orange3-Associate 1.1.5 ソースは http://github.com/fits/try_samples/tree/master/blog/20180109/ はじめに データセット 前回 と同じデータファイルを使います。 data.basket …

R でアソシエーション分析 - arules

R

R言語の arules を使ってアソシエーション分析を試してみました。 arules ソースは http://github.com/fits/try_samples/tree/master/blog/20180108/ はじめに データセット 今回は、適当に作った下記データセット (100行) を使います。 1行が 1つの取引で…

R の MXNet で iris を分類

「MXNet で iris を分類」 と同様の処理を R言語で実装してみました。 MXNet R パッケージ 0.10 ソースは http://github.com/fits/try_samples/tree/master/blog/20171212/ 準備 今回は下記サイトの手順に従って MXNet R パッケージの CPU 版を Windows へイ…

Elixir でステートマシンを処理

「Akka でステートマシンを処理」 と同じ処理を gen_statem の Elixir 用ラッパー(以下)を使って実装します。 GenStateMachine ソースは http://github.com/fits/try_samples/tree/master/blog/20171121/ ステートマシンの実装(sample1) まず、以下のス…