はじめに Haxe ビルド環境をセットアップするための krdlab/setup-haxe を作成して Marketplace に公開しました. github.com github.com 背景 仕事の方で Haxe を使っているリポジトリ*1があって,このリポジトリから共通ライブラリが生成されている状況に…
はじめに Yeoman の generator みたいなテンプレート機能を自前のコマンドラインツール*1に作り込む必要が生じたので調査しました. 結論としては yeoman-environment と mem-fs-editor,inquirer あたりを組み合わせることで容易に実現できました. Yeomon …
はじめに 昨年末に以下の Issue が来ていたことに気付いて修正したのですが,リリース前に Keycloak を用いて haskell-oidc-client の動作確認をできないか試したところ,とても簡単に実施できました. github.com 今回はその方法をまとめたものです. 方法 …
はじめに Raspberry Pi 4 Model B (4GiB) に k3s を導入して複数の試作ボットを single node 上でコンパクトに稼働させられないかな?と考えていて,今回はまずベースとなるマニフェストを Docker Desktop for Mac の kubernetes 上で作成してみます. 要件 …
はじめに オープンソースとして公開しているとある複数のパッケージでリリースフローが整備されいないという問題があって,昨年末は少々頭を悩ませていました. そこで今回は GitHub Actions と semantic-release を組み合わせて npm へのリリース作業*1を自…
はじめに Ansible の実行時に --check を指定すると check mode (dry run) として (リモートに変更を加えることなく) 実行され,--diff を指定すると変更内容の差分が表示されます. ただしモジュール側がこれらのオプションをサポートしている場合に限りま…
はじめに 久しぶりに Haskell に戻って Servant を触ってみたら,いつの間にか認証周りの仕組みが実験的に追加されていました. 興味がわいたため,Authentication in Servant とコードを読みながら少しだけ仕組みをのぞいてみました. バージョン情報 lts-7…
はじめに 「Chainerによる実践深層学習」という本を読みながら実際に chainer を触ってみました. http://shop.ohmsha.co.jp/shopdetail/000000004728/ 実際に書いたコードはこちらです. https://github.com/krdlab/examples/tree/master/try-chainer 翻訳…
はじめに モジュール間連携のイベントバスとして RabbitMQ を使用したいのですが,クラスタを組む場合にどうするのが良いのかな?ということを調べてみました *1. なお,以降では「CAP のうち CP 特性が欲しい」ということを念頭において調査しています. …
Haskell で書いた Web サービスの自動テストを考えたとき,IO の部分が問題になる場合があります. KVS や DBMS を利用する部分は CI サービス上で必要なものを起動すれば問題ないのですが,外部サービスと連携する部分は問題として残ります. またデグレす…
タイトルの通り,OpenID Connect 1.0 のクライアントライブラリを作りました.Hackage に上げてありますので cabal install で導入できます. 背景 Web サービスを作成するにあたって認証をどうするかは悩ましいところです.先々の展望を考慮して自前で実装…
はじめに Haskell には大小様々な Web フレームワークがあります.(yesod, scotty, spock, apiary, rest, 等々) API サーバを作りたいときは scotty を利用することが多かったのですが,つい最近 haskell-servant というパッケージ群を知りました. 小さな A…
こちらの記事 で作者の方が haskell-relational-record の解説をされています. MySQL からも使いたいなぁと思ったので,他の RDBMS driver をまねて MySQL driver を書いてみました. haskell-relational-record-driver-mysql 少しずつブラッシュアップして…
はじめに io-streams パッケージがリリースされた折にふと「conduit,pipes,io-streams 以外の streaming data を扱うライブラリには何があるんだろうか?」と疑問に思いつぶやいてみたところ, machines がある ということを教えていただきました. 気にな…
はじめに 少し前から LTSV が話題になっています.ログ出力データの処理がやりやすそうです. http://ltsv.org/ 上記サイトに載っているとおり仕様がシンプルですから,パーサの練習問題としてもってこいな気がしました. attoparsec による実装 ByteString …
最近 Cassandra を利用する機会がありまして,今回はその絡みで調べてみたことです. そういえば最近になって 1.2 がリリースされましたね.atomic_batch とか気になります. はじめに cassy は Haskell で書かれた Cassandra クライアントです.ClientOptio…
長らく放置状態になっていた Lisys ですが,コード管理を GitHub に変更しました.コード管理が中途半端なまま放置するのは精神的によくありませんでしたので.https://github.com/krdlab/lisys これはなに? 「LAPACK のほんの一部を C# 向けにラップ + Mat…
久しぶりに時間を確保できたため,Resource モナドのあたりを調査してみました.結果としてはよくわからない部分*1 が残っているのですが,ごちゃごちゃを一旦整理する目的で書き出してみました. 見出し はじめに 基本的な使い方 リソース解放 例外安全性 m…
忙しいときほど他のことをやりたくなるのは人の性なのか...というわけで今回も Haskell 関連の内容です. はじめに Twitter の Streamimg API から取得した内容を Conduit で処理する,という内容です.Streaming API は Source として利用するのに最適な…
去年から,仕事の合間に時間を見つけてはちまちまと Haskell の勉強をしていました. でも本を読むだけでは今一なので,ここら辺で一回まとまったものを書いてみようかと.初心者なのは承知の上でコードをさらそうかと. あと Haskell 良いですね.まだうま…
前回の続きで今回は Fiber の話題.ずいぶんと日が空いてしまいました. 見出し はじめに 環境 node-fibers とは? Fiber の利用例 Fiber を使った非同期処理の記述例 終わりに はじめに 今回は fiber を導入し,非同期 API のコールバック周りを少し整理し…
前回からかなり時間が空いてしまいました...やっと時間取れた.今回は 2 回に分け,1 回目で TameJSを,2 回目で node-fibers を取り上げたいと思います. ちなみに,「この方法が良い」と言うよりは「こんな方法もありますよね」というスタンスで書いて…
node.js の負荷分散について考えてみました (フェイルオーバは考慮できていません).個人レベルなので 1 台のハード上に仮想マシンを 5〜6 個立ち上げて実験しています. 見出し はじめに cluster で負荷分散 寄り道:cluster の仕組み 例えばこんな全体構成…
久しぶりに Mongoose ネタです.Schema の API である static メソッドについて少しだけ. 今回は短め. 見出し 何ができる? 登録した関数内での処理 実際の定義 参考にした情報 何ができる? 例えば User というモデルを定義 (UserSchema) したとします.U…
またしてもスケジュールきつめのプロジェクトに放り込まれた KrdLab です.Java ジャバしてます.IDE がないとコード書くのがしんどすぎて,もううんざりです. はじめに 何らかのプラットフォームを利用する場合,その仕組みについて知っておくことは,より…
node.js + MongoDB はイイ感じです.というわけで Mongoose ネタの続き. 見出し connect と disconnect 明示的にコネクションを扱う Connection とイベント connect と disconnect require で取得する Mongoose オブジェクトには connect と disconnect が…
node.js から MongoDB にアクセススためのライブラリに Mongoose があります.今回はこれを紹介しようと思います.O/R Mapper っぽく使えるように設計されており,既存の O/R Mapper を使ったことがある人にとっては,比較的わかりやすい仕様です. 見出し M…
今,大災害の発生により大変なときであり,ここ数日のニュースは見てるとしゃれになりません. ひとまず今自分にできることを済ませた上で,できる限り平常運転で行こうと思います.何卒ご了承くださいますようお願い申し上げます. ...大学時代の研究室…
最近は残業と休日出勤ばかりでうんざりの KrdLab です. 今回はちょっと毛色の違う話題を.内容はいつの間にか自分用のまとめになってしまいましたが... Y combinator とは? 不動点コンビネータの一種. 不動点とは,ある関数 F を定義したとき,F(p) = …
最近仕事で Java ばかりの KrdLab です.そんな中,Eclipse の Memory Analyzer (MAT) が素晴らしかったので紹介. http://www.eclipse.org/mat/ はじめに Java ではメモリリークによって OutOfMemoryError (OOME) が発生する.このリークを特定する作業はな…