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

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

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

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

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

programmingは、GitHubで開発中です。

Programming

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にぶら下げてある。Phoenix…

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

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

遲延評價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を扱ってゐる。祝日と云ふのは本質的に難しい。何時が祝日であるかは国民の祝日に関する法律と云ふ法律に依って決まる。一年のいつ…

JSONを整形してからdiffをとるtool、diff-with-jsonを作った

JSONを整形してからdiffをとるtool、diff-with-jsonを作った。 github.com JSONをjq commandに通して整形し、colordiffが在れば其れを、無ければdiffを使って差分を表示する。 次のa1.jsonとa2.jsonが在ったとしやう。 // a1.json {"m":42,"n":57} // a2.jso…

OCamlでJavaScriptが幸せ

ML Advent Calendar 2016 - Qiita 12/11參加。 JavaScriptと云[い]ふ言語に變換[へんかん]する言語は沢山[たくさん]在った。活溌[かっぱつ]に活動してゐるものは未[ま]だ多いものの、多勢はTypeScriptやElmに流れたやうだ。TypeScriptの型systemは軈[やが]て…

Crystalで殺せ

Crystalで殺せ // Speaker Deck Crystalで作る簡單インタラクティブCUI。Crystalで面倒臭い作業を殺せ Gitの要らないlocal & remoteブランチを撰んで消すツールを作ったで書いたtoolを紹介したものだ。其の後多量のbranchが在ってもscroll出來るUIを作ってゐ…

private-values : Delete private values and private files from your git repos.

private-values // Speaker Deck private-values: 秘密情報や個人的なfileを共有リポジトリから隠す爲のツールで紹介したtoolだ。今あたらしい機能を一つ考へてゐる。複數のteamで使へるやう、site (假り名) と云ふ概念を入れやうと思ってゐる。後方互換性は…

Serverless Frameworkとは何か、何故使ふのか

Serverless Frameworkを本番環境に投入するために // Speaker Deck Tutorialは以下に書いた。本當に簡單なのだ。 Serverless Framework (1.0) でAWS LambdaとAWS API Gatewayを設定する、單純なサンプルを書いた 纏め丈轉記しておかう。 What? サーバーレス…

多量のデータをストリームして省メモリで統計処理するgemを作った

logを撫でまはし乍らごそごそしてゐたら出來てゐたのでgemにした。 github.com N個のデータから成るlarge_dataが在りRubyのEnumerableとして取得出來る時、標準偏差や分散等を計算しやうとしたら、単純にやるとN個のデータをディスクに置かなければならない…

Rustをスクリプト言語としてコンパイルせずに呼び出す

コンパイルはする。 crystal runやgo runやrdmdやrunghcのやうに、事前ビルドのコマンドを走らせる事無くインタープリタのやうに實行する機能がRustには無いらしいので自作した。 #!ruby -rdigest/sha2 o="/tmp/#{Digest::SHA512.file __FILE__}-#{File.base…

Serverless Framework (1.0) でAWS LambdaとAWS API Gatewayを設定する、單純なサンプルを書いた

Serverless Framework (1.0) でAWS LambdaとAWS API Gatewayを設定する、單純なサンプルを書いた。 github.com 説明は全部GitHubの方に書いてある。 サーバーレスアーキテクチャの好い所は、インフラの管理とアプリケーションの處理とを分離出來る事だ。イン…