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) まず、以下のス…

MySQL Binary Log connector でバイナリログをイベント処理

MySQL Binary Log connector (mysql-binlog-connector-java) を使うと、Java プログラムで MySQL / MariaDB のバイナリログをイベント処理できます。 そのため、MySQL の CDC(Change Data Capture)として使えるかもしれません。 MySQL Binary Log connec…

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

前回 の有限ステートマシン(FSM)の処理を Akka の Java 用 API を使って実装してみます。 Akka 2.5.6 ソースは http://github.com/fits/try_samples/tree/master/blog/20171016/ ステートマシンの実装 まずは、以下のステートマシンを実装します。 初期状…

Spring Statemachine でステートマシンを処理

Spring Statemachine を使って単純な有限ステートマシン(FSM)を実装してみました。 Spring Statemachine 2.0.0 SNAPSHOT ソースは http://github.com/fits/try_samples/tree/master/blog/20171002/ はじめに Spring Boot 2.0.0.M4 を使用して Kotlin で実…

Akka Streams で MQTT Broker へ接続

ローカルで実行した MQTT Broker(前回 参照)に対して Akka Streams の Java 用 API を使って Groovy で接続してみます。 Akka Streams 用の様々なコネクタを備えた Alpakka に MQTT Broker 用の Source や Sink が用意されているので、今回はこちらを使い…

MQTT Broker をローカル実行

以下の MQTT Broker をそれぞれローカルで実行してみました。 Mosca Moquette ソースは http://github.com/fits/try_samples/tree/master/blog/20170910/ Mosca Mosca は Node.js 用の MQTT Broker です。 npm でインストールして mosca コマンドで実行でき…

MXNet で iris を分類

MXNet を使って、階層型ニューラルネットによる iris の分類を試してみました。 MXNet ソースは http://github.com/fits/try_samples/tree/master/blog/20170821/ 準備 MXNet は様々なプログラミング言語用の Docker イメージを提供しているので、今回は Pyt…

JanusGraph でグラフ操作 - Groovy

TinkerPop の API と互換性があり Cassandra 等をストレージとして使用できる JanusGraph というグラフデータベースがあります。 JanusGraph 0.1.1 今回は、「TinkerPop でグラフ操作 - Groovy」 のサンプルコードを JanusGraph 用に変更してみます。 ソース…

TinkerPop でグラフ操作 - Kotlin

前回 の処理を Kotlin で実装してみました。 Kotlin 1.1.3-2 Apache TinkerPop ソースは http://github.com/fits/try_samples/tree/master/blog/20170724/ a. ビルド定義・設定ファイル 今回は Gradle のサブプロジェクトとして実行します。 build.gradle (…

TinkerPop でグラフ操作 - Groovy

前回、Neo4j の Cypher を使って実施したグラフ操作を Apache TinkerPop を使って Groovy (@Grab を使用)で実装してみました。 Groovy 2.5.0 beta1 Apache TinkerPop 3.2 Apache TinkerPop はグラフ処理のためのフレームワークで、Neo4j 等の様々なグラフ …

アクセス制御リストをグラフDBで構築 - Neo4j

柔軟性のあるアクセス制御を考えた際に、アクセス制御リスト(ACL)を有向グラフで表現すればどうだろうかと思い、グラフDBの Neo4j を使って試してみました。 Neo4j Community Edition 3.3.0-alpha02 概要 アクセス制御リストを有向グラフで表現し、アクセ…

Docker で F# アプリケーションを作成

Microsoft による .NET Core の公式 Docker イメージを使って、単純な F# のコンソールアプリケーションを作成してみました。 microsoft/dotnet 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170619/ (1) Docker コンテナの実行 …

Docker で Haskell アプリケーションを作成 - MongoDB 利用

MongoDB へ接続する Haskell アプリケーションを Docker で作成してみました。 以下の Docker イメージを使用します。 mongo haskell ビルドツールは stack を使って、MongoDB への接続には以下のライブラリを使います。 MongoDB driver for Haskell 今回の…

D3.js で HAR ファイルから散布図を作成

前回、HAR (HTTP ARchive) ファイルから Python で作成した散布図を D3.js を使って SVG として作ってみました。 D3.js 4.8.0 ソースは http://github.com/fits/try_samples/tree/master/blog/20170515/ はじめに Node.js で D3.js を使用するために d3 と…

Python で HAR ファイルから散布図を作成

Web サイトの構成を可視化するため、Python で HAR (HTTP ARchive) ファイルをパースし散布図を試しに作ってみました。 今回作成した散布図の内容は以下の通りです。 横軸は time (処理時間 (ミリ秒)) 縦軸は bodySize (レスポンスボディのサイズ) MIM…

Go で Kafka の Consumer クライアント

下記ライブラリをそれぞれ使って Go 言語で Apache Kafka の Consumer クライアントを作成してみました。 sarama sarama-cluster 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170506/ Sarama の場合 まずは sarama を使ってみま…

Groovy で Kafka を組み込み実行

Groovy で Apache Kafka を組み込み実行してみました。 Apache Kafka 0.10.2.0 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170410/ Kafka 組み込み実行 Kafka の実行には ZooKeeper が必要なため、ZooKeeper と Kafka の両方を…