以前の 『TwitterのリストタイムラインをSlackへ連携する』 で作成した mountベースのSlack Bot chabonze をClojureのサーバサイドフレームワークである Duct 0.7.0-beta1 を使って書き直した際のメモ。
...
OpenJDK11を使うようにしたところductを利用したアプリケーションのREPLでエラーが発生するようになった。
...
面倒くさがり長らくOracle JDK8のままだったがそろそろOpenJDK11へ乗り換えてみる。
...
lein-ductで作成したプロジェクトのREPL環境とmain実行環境でコンポーネントの初期化範囲に差異があるというメモ。
...
Clojure core.asyncのtimeoutに関するメモ。
...
httpkitで空いているポート番号を自動的に割り当てし、割り当てられたポート番号を取得する方法に関するメモ。
...
Dockerコンテナからコンテナを操作するのは特殊なユースケースで縁遠い存在と思いきや、アプリケーションをコンテナ化しそれをコンテナベースのCIで扱おうとすると割と直ぐに直面することになったのでメモ。
コンテナ内でコンテナを操作する主立ったやり方には
DinD(Docker in Docker) DooD(Docker outside of Docker) の二つがある。
またコンテナのビルドに限定すればDockerに依存せず独立してコンテナイメージをビルドするDaemon-less Image Builderを使う方法もある。
...
Clojure core.asyncのalts!とalt!
名前、機能共に似ており違いや使い方をよく失念するのでメモ。
...
『java.nio.file.Pathをslurp/spitで使えるようにする』からの続き。
clojure.java.ioのmake-parents/file/as-relative-path はString、File、URI、URLなどを対象とする多相的な関数だが、java7で追加された java.nio.file.Pathは対象に入っていない。
ということでPathも扱えるようにするためのメモ。
...
以前利用していたMacBook Pro (Retina, 13-inch, Late 2013)を有効活用するべくOSの再インストール、High Sierraへアップグレードしようとしたところ、App Store からHigh Sierraのインストーラをダウンロードできない現象と遭遇。
...
core.asyncのmultでIllegalArgumentException "No implementation of method:〜"が発生するケースを調べた際のメモ。
...
『Clojure Deps and CLIを利用する』からの続き。
tools.deps.alphaでクラスパス、依存ライブラリを管理。 各タスクはClojureの関数として記述。 外部コマンドで済むタスクは外部コマンドを利用する makeを起点に各タスクを実行。
...
pgModelerはPostgreSQL用のモデリングツールでWindows, Linux, macOSのマルチプラットフォームで動作する。
同サイト上で配布されるバイナリー版は有料になっており6ヶ月の利用で12ドルほどかかるが、ソース自体はOSS(GPLv3)で公開されているため自分でビルドすれば無料で利用することができる。
ということでmacOS上でソース(v0.9.1-beta1)からビルドしてpgModelerを利用するための手順をメモ。
...
Karabiner-Elementsを12.0.0へアップデートしたところキーボード配列が変わってしまい、Virtual keyboradタブにあったKeyboard Typeも消えていた。
...
axios(v0.18.0)をサーバサイドで利用する際に計らずもbaseURLが無効になるケースがあった件のメモ。
...
Clojureのslurp/spit はFile、URI、URL、Socket、I/O Stream、Reader/Writerなどを対象に入出力を行う多相的な関数だが、java7で追加された java.nio.file.Pathは対象に入っていない。
ということでPathも入出力対象として扱えるようにするためのメモ。
...
実験的にcore.asyncをベースとしたEvent Bus nijohando/event を書いた。
今回試したかったのは以下の3点。
core.async チャネルベースのインタフェース REST API風なパスベースのイベント処理 Request-Replyパターンのサポート
...
Vimではtablineを常用しているのでSpacemacsでも同じようにバッファをタブ化して表示させたい。
ということで tabbar を試してみる。
...
Leiningenやbootといった既存のビルドシステムを利用せずに、Deps and CLIと必要な処理を自分で記述するスクリプティング型のビルド方式を試してみた。
...
cemerick/pomegranateを使ってclojarsでデプロイを行った際に ReasonPhrase: Forbidden - no checksums provided でデプロイ失敗する場合のメモ。
...
ClojureScriptの非同期処理テストケースで使用するcljs.test/asyncは一つのdeftest内で一度しか使えないという制約がある。
...
複数のソースディレクトリに含まれるClojureScriptをコンパイルしたい場合、 lein-cljsbuildは :source-paths に複数ディレクトリを指定できるのだが、 cljs.build.api/build ではどうしたら良いのかを調べた。
...
Clojure 1.7から導入されているTransducerの初期処理に関するメモ。
...
SpacemacsでClojure を書くためのメモ。
CIDER を使いたくて『Spacemacs入門』した件の続き。
まずはSpacemacsにClojure layerを導入し[ evil-lisp-state ] (https://github.com/syl20bnr/evil-lisp-state)によるS式操作とCIDERの基本的な使い方を学ぶ。
...
前回の『ドアの動き検知システムの構築2』ではAWS IoTのルールを作成しドアの動き情報を時系列データとしてS3に保存しAmazon Athen
...
『ドアの動き検知システムの構築1』ではドアに貼り付けたTWELITE 2525Aの加速度情報をMONOSTICK経由でアプリケーションが拾いAWS IoT上に作成したドアを表す「モノ」のステータスを更新するところまで作成した。
...
TWELITE 2525Aというコイン電池で動く500円玉相当の小型加速度センサーなるものを見つけた。
MONOSTICKというUSBスティックを併用することでTWELITE 2525Aのセンサーデータをリアルタイムに受信することができる。
これがあれば電子工作能力ゼロの自分にもIoTっぽい何かが出来そうな気が沸々と沸いてきたので早速これを使ってドアが動いた事を検知する鳴子のようなシステムを構築してみる。
...
エディタはVim派だけどClojureの開発でCIDERを使ってみたいという動機から唐突に Spacemacs へ入門してみる。
まずはインストールと基本的な使い方をメモ。
...
『打刻システムの構築(前編)』 『打刻システムの構築(後編)』 では打刻APIを作成し、APIが受け取った打刻イベントをSNSのトピックにパブリッシュ。トピックのリスナーであるLambda関数 dakoku-google-sheets-writer が Google Sheets へ打刻イベントを記録する仕組みを構築した。
...
iPhone7とSuicaでオートチャージを有効にし現金を持ち歩かない生活を満喫していたところ支払い時に想定外の残高不足で遭遇。
「ええ! オートチャージされない事ってあるの?」と調べてみると、そもそも自分は全くオートチャージについて理解していなかった事が判明。
...