c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programmingに分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡

音樂はSoundCloud等バラバラの場所に公開中です。申し訳ないがlinkをたどるなどして探してください。

考察は現在は主に此のblogで公表中です。

programmingは、GitHubで開発中です。

Programming

macOS に Homebrew で入れた PostgreSQL の query log を見る

忘備。 brew info postgresql (私の手元ではbrew info postgresql@9.6) で plist file を探す。色々と PATH が表示されるので勘で plist file を見附ける。例へば/usr/local/opt/postgresql@9.6/homebrew.mxcl.postgresql@9.6.plist。 postgres 實行 file に…

Web front で ANTLR4 を使ひ DSL を作る (但し Python で書く)

世に parser generator や parser combinator が生まれてから兔角、文脈自由或いはそれに近い文法の構文解析器を作るのは簡單で、私も度々作ってきた。 PEG (Parsing Expression Grammar) が表現し易く好きでよく使ってゐた。PEG.js – Parser Generator for …

throw しない函數が吐く console.error を補足する

error が有るのにそれを console に吐くだけで throw しない不屆きな函數が有る。壊れた data で處理が進んでは困るから throw して貰ひたい。或いは error を UI 上に表示したいから catch したい。詰まり console に吐かれた error を捕捉して何かを行なひ…

Google Cloud Load Balancing を ingress-nginx に置き換へて値段を節約した

幾つかの個人 service や chat bot を GKE (Google Kubernetes Engine) で運用してゐる。K8s の機能を試す爲であったり server を運用する上では K8s が一番樂であるので GKE を使ってゐる。 GKE は價格が高い。先月に、古い cluster だと自動更新を有效に出…

Python で React Web front を書く

Web front は樂だ。UI が組み易い (だから皆 Electron を使ふのだ)。deploy & release し易い。そして今やどんな programming 言語ででも書ける。勿論 Python ででも書ける。 Transcrypt - Python in the browser - Lean, fast, open! Transcrypt は Python …

WSL でも macOS でも、Docker で開發する

もう WSL 2 も出ると云ふのに WSL 1 の話だが。 Python 3 で開發するとしやう。開發環境を Docker container に閉じ込めたい。と云ふのも Python の依存 library 管理は pip や Pipenv、Poetry と未だ固まってゐず、手元の環境は即座に捨てられるのが望まし…

XML を表現する時 XML の階層が表現する code にも表れて欲しい (Python)

偶々 Clojure で Atom を、Python で SVG を生成する機會が有った。どちらも XML だ。Python には標準でxml.etree.ElementTreeと云ふ class が含まれてゐて、これで XML を讀み書き出來る。 Clojure だと XML を生成するには、 (require '[clojure.xml :as x…

Clojure で task runner を書く

度々簡易な task runner を書いてゐる。いつもは Makefile を使ってゐて、makeと打つだけで何をするべきか思ひ出せるやうにしてある。例へば、 .PHONY: help help: @awk -F':.*##' '/^[-_a-zA-Z0-9]+:.*##/{printf"%-16s\t%s\n",$$1,$$2}' $(MAKEFILE_LIST) …

tacit programming : Point-free, Concatenatives & J

tacit programming は point-free style としても知られてゐる。函數適用を使って函數を組み立てるのではなく、函數合成を基本の部品とするやり方だ。見た目上では函數の定義から引數が消える。 tacit programming から連鎖性 programming 言語 (concatenati…

Elixir を何故採用したのか

Elixir Advent Calendar 2019 - Qiita 12/11 Kubernetes を何故採用したのかの續きだ。各項目の一般的な前提も前の記事に準ずる。よって讀んでくださってゐる事を期待する。 下記 slide 時期の昔話をする。何故技術撰定で Elixir を採用したのか。 ステート…

Elixir で non-programmer 向けに DSL を作り提供する

言語実装 Advent Calendar 2019 - Qiita 12/11 C に lex / yacc と云ふ字句解析 generator と構文解析 generator が有る。Erlang には標準 library に leex / yecc と云ふ同じ役割のものが有り簡單に構文解析器を作れる。Elixir からもこれを使える。 昔 Eli…

Kubernetes を何故採用したのか

Kubernetes3 Advent Calendar 2019 - Qiita 12/11 昔 Kubernetes を技術撰定した事が有ったのでその時の話をする。以下の slide の時の話だ。 ステートフルで大規模アクセスのある soft-realtime なゲームサーバーを easy につくる 採用後の具体的な運用の話…

Elixir の application を Mackerel で監視する

Mackerel Advent Calendar 2019 - Qiita 12/11 以前にKubernetes 上で動く Elixir アプリを監視するを書いた。これが完成した。 確かに Erlang/Elixir の system は落ちない。programmer が落ちないやうに書けば落ちなく出來るからだ。基本的な道具は BEAM V…

Elixir をやってきた者が Scala を暫くやってみて同じ所と違ふ所を舉げる

はてなエンジニア Advent Calendar 2019 - Qiita 12/6 12/5 はAWS コストエクスプローラー API と気軽につきあう(2019) - Qiitaであった。 今暫くは都合で Scala を書いてゐる。數年 Elixir をやってきた身だから、簡單に比較してみやう。 同じ所 函數型言語…

parallel に變更・參照される resource が競合せず整合性を保つ事を試驗する

だいたいに於いてそんな方法は存在しない。 test するうまい方法が既に有れば人類は parallelism で苦勞しない。競合しないやうにする爲に施した對策が動いてゐる事は test できるが、その對策に依って競合が防がれる事はよく test できない。 たまたまうま…

Kubernetes 上で動く Elixir アプリを監視する

去る九月七日にElixirConfJP 2019 小倉城が開かれ、公募 (審査無し) で五分間喋った。 過去 K8s 上で Elixir の Phoenix.Channel を運用してゐて、今は個人で、K8s 上で Elixir の bot とかを運用してゐる。運用するのに監視は必要なものであり、樂に充分な…

Elixir で stateful なアプリケーションを作るのは簡單です

Let's create stateful systems, by Elixir. Elixir で stateful なアプリケーションを作るのは簡單です。 Elixir の得意な事としてよく眞っ先に擧げられるのは竝列性 parallelism です。確かに、簡單で安全に或る程度效率好く parallel にできるのは Elixir…

Develop Google Apps Script in ClojureScript

qiita.com What is Google Apps Script? Google Apps Script (以下Apps Script) は、Googleのserver上でのserverlessなJavaScript實行環境です。serverlessなJavaScript實行環境ですのでCloud Functionの仲間です。函數を起動できるeventの種類が限られてい…

The Best of Access @ Elixir

Immutable data is a foundation of abstraction - it localizes program computation. So immutable data makes concurrency easy & decreases bugs. All data in Erlang/Elixir is immutable. We are happy to use functional programming techniques, wor…

Format JSON by jq, on Vim

Vimのbufferの内容をjqでformatする。下の記事に書いて在る事でしかないが。 cf. pipe - Piping buffer to external command in Vim - Stack Overflow 大きなJSONを得たがそれがformatされてゐない。ざっと目で眺めたいから、jq .に流し込めればよいが、手數…

Monitoring Elixir Plug/Phoenix Web application easy. KomachiHeartbeat v0.1.0 ヾ(〃l _ l)ノ゙

Rails にはKomachiHeartbeatと云ふ何かと有り難い mountable engine が在り、Elixir/Phoenix にも欲しかったので移植した。 KomachiHeartbeat github.com Plug 若しくは Phoenix の application の、適当な path にぶら下げて使ふ。例では/opsにぶら下げてあ…

Testable readonly ETS. Mnemonics.ExMachina v0.1.0 ヾ(〃l _ l)ノ゙

讀み取り専用 on-memoryで高速 再起動せずに新しいver.のdataへ入れ替へられる 古いver.で處理してゐた計算はそのまま古いver.を讀み出し續けられる heap領域にcacheできる。讀み出したdataをsnapshotとしてsystem外に持ち運べる parallel これらを滿たしたM…

ねぎ姉さんを見る

はい。 bookmarkletです。 javascript:{let n=""+(Math.floor(Math.random()*1213)+1);while(n.length<3)n="0"+n;window.open(`http://negineesan.com/comics/negi/negi${n}.jpg`)} 貼り附けてやりましょうよ。 駄目でした。

Haskell is good for scripting language ヾ(〃l _ l)ノ゙

Clojure/Haskellの誓ひと云ふのを立ててゐる。個人的なprogrammingをClojure/Haskell以外でしないと云ふ誓ひだ。大体の事は置き換へてゆける。Javaを使ふところはClojureに置き換へる。Lispを使ひたかったし、SuperCollider (Overtone)とProcessing (Quil)を…

7 libraries I made by Elixir ヾ(〃l _ l)ノ゙

qiita.com 12/5 Elixirを使って製品を作ってゐると、releaseして此れ程の時が経ち此れ程の人が利用してゐるのに樣々のものが足りない。此の世では、必要なものは作る事に成ってゐるさうだ。なので一つづつ作ってきた。 みなさんも一つづつ作ってゆきませう。…

Work lein-droid with Leiningen 2.8 ヾ(〃l _ l)ノ゙

Clojureをやる。Overtone (SuperCollider)とQuil (Processing)が目當てだったが、JVM は此いつで濟ませて了へさうだ。Android も Clojure で書ける。 書けてゐた。 或る日突然書けなく成った。Leiningenを更新したからだ。lein 2.8 に成った。 % lein -v Lei…

A patch to run whatyouhide/stream_data in Elixir 1.4.* ヾ(〃l _ l)ノ゙

github.com whatyouhide/stream_dataは素晴らしいlibraryだがElixir 1.5以上でなければ動かない。他の事の序でついでに1.4に對應させてみた。 diff --git a/lib/ex_unit_properties.ex b/lib/ex_unit_properties.ex index f9822b1..f95bcad 100644 --- a/lib…

Elixirの優先度附きキューライブラリPQueue2を作った

pqueue2 | Hexを作った。 github.com Erlang で書かれたpqueueに含まれてる pqueue2 モジュールを、Elixir でラップしたもの。 q = PQueue2.new |> PQueue2.put(:a, 2) |> PQueue2.put(:b, 1) |> PQueue2.put(:c, 1) {:b, q} = PQueue2.pop Collectable と E…

遲延評價Streamでgzip/gunzipするElixirのライブラリを作った

Streamでhashを計算する stream_hash | Hex 何故無かった。 github.com "test/fixture/xyzxyz.txt" |> File.stream! |> StreamHash.hash(:sha512) |> Enum.to_list |> hd # <<215, 133, 241, 243, 115, 159, 59, 127, 111, 242, 140, 106, 171, 211, 130, 48…

日本の祝日を扱ふholiday_jpをElixirに移植したholiday_jp-elixirを作った

日本の祝日を扱ふ holiday_jp を Elixir に移植した holiday_jp-elixir を作った github.com 普段は Ruby や Elixir や Python や Crystal を扱ってゐる。祝日と云ふのは本質的に難しい。何時が祝日であるかは国民の祝日に関する法律と云ふ法律に依って決ま…