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

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

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

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

Elixir

もうとっくに Elixir を使ってゐない

もし觀測されてゐれば明らかだったらうが、もうとっくに Elixir を使ってゐない。代はりに Clojure と Clojerl を使ってゐる。 2020-09-03 には以下の通り、新しく Elixir でものを作りはしないだらうと書いてゐた。 scrapbox.io この時は Clojerl と Elixir…

tokyo.ex Reboot に參加して喋った #tokyoex

二年ぶりの開催でした。memo です。 scrapbox.io LT はこれ。Elixir でない BEAM 言語も OK だと主宰者の方から言っていただけたので、Clojerl を紹介しました。 scrapbox.io

holiday_jp-elixir に入れた binary の git diff をとる設定

自明なのだけれども。 github.com この data source は YAML 形式だが、實行時の YAML library への依存を除く爲と起動・動作速度の爲に ETS (Erlang Term Storage) file に變換して同梱してある。おそらく Erlang の ver. を上げたからなのだらうが、data s…

非同期に行はれる二種類の處理を繋ぐには四種類の channel が要る

非同期に行はれる二種類の處理を繋ぎたい。一つ目の處理から來る data は一つづつ二つ目の處理へ渡される。一つ目の處理は、二つ目の處理よりも速く data を作り出すとする。分散處理の出番である。CPU の core が複數有る場合や IO 待ちが支配的であるなら…

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

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

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…

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 をやってきた身だから、簡單に比較してみやう。 同じ所 函數型言語…

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…

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…

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 こ…

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

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

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 --…

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,…

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

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

Elixirで分散じゃんけんをシミュレートする

じゃんけんをシミュレートしてみる。練習問題だ。 人間を五人ほど作り、グー/チョキ/パーのなにを出させるかをそれぞれに決めさせ、勝負する。引き分けを考慮し、勝者が最後の一人になるまで繰り返す。 せっかくElixir (Erlang) でつくるのだから、各人間…

ElixirにてListのランダムな要素を取得する

追記:20170702 Enum.random/1を使ふのが好い。 Enum – Elixir v1.4.5Rubyだと xs.sample である。JavaScriptだと xs[Math.floor(Math.random() * xs.length)]; となる。Elixirでもこれに近いことを行ふ。Erlangのrandomモジュールを使ってみると Enum.at(xs,…

他言語から見た Elixir (macro, protocol, binary構文)

@udzura さま(〃l _ l)?? さっちゃんですヾ(〃l _ l)ノ゙ (憤怒の相直されました(〃l _ l) Elixir Advent Calendar 2013 14日目です。昨日はElixir - Sigil大好き!一番好きな機能です。 - Qiita [キータ]でした。あーRubyの。独自定義出来るのか、ふうむ。…

Elixirの日時用helper

きっと何人目だ感あふれる、日付時刻用にhelper moduleだよ。 Erlangは{{year, month, date}, {hour, minute, second}}形式のtupleを日時に使う事が多いっぽいから、其れとの相互変換も仕込んでるよ。 RubyのActiveSupport Timeみたいな1.years.beforeみたい…

Elixir 0.10.0のStreamで自然数列

此っち (Haskell (とElixir) でもMöbius関数を実装した) では、遅延無限listを作って自然数列を作ったが、ElixirにはStreamが有ったのだった。0.10.0に成って、|>がStreamを吐く様に成ったそうなので、使ってみる。 Stream.iterate(0, &1 + 1) |> Stream.tak…

Elixirをupdateする

Elixirをupdateする。 cd ~/elixir git pull make clean make test elixir --version 常識である。0.9.0から0.10.0に上げた。installするには公式web siteの通り。 1 Introduction - Elixir cd git clone https://github.com/elixir-lang/elixir.git cd elix…

Haskell (とElixir) でもMöbius関数を実装した

気に成ってHaskellでもMobius函數 (メビウス関数) を実装した。Elixir版も再掲する。 cf. Elixir (とJavaScriptとRuby) でMöbius関数を実装した http://c4se.hatenablog.com/entry/2013/07/12/210747 前回Haskellをまともに書いたのは人生で初めてである。今…

Elixir (とJavaScriptとRuby) でMöbius関数を実装した

Elixirでメビウス函數 (Mobius function) を実装する積りだったのだけれど、余りにもElixirを書けな過ぎて、JavaScriptとRubyでも実装した。 ElixirでMöbius函數 素數列 (素数列) は、エラトステネスの篩 (Sieve of Eratosthenes) で求めた。遅延listが無い…

Elixirの、Vim Unite outline sourceを書いた

ElixirのUnite outline sourceを書いた。 暫く使ってみて、有用ならなんとかする。 "============================================================================= " File : autoload/unite/sources/outline/elixir.vim " Author : ne_Sachirou <utakata.c4se@gmail.com> " Updat</utakata.c4se@gmail.com>…

UbuntuにErlang/OTP R16をinstallする

Elixirの為に。 直ぐに陳腐に成る記述をする。 Ubuntu 13.04のaptに登録されてゐるerlang packageは現在R14或いはR15と古く、最新のElixirが動かない。erlangをsourceからbuildするのは依存関係の解決が面倒なので、其れを簡単にする。 先ずversionの古いerl…