田舎で並行処理の夢を見る

試したこと、需要がないかもしれないけど細々とアウトプットしてます

Elixir

【第17回清流elixir勉強会】Elixirを用いた並行和アルゴリズムの実装

トピック あけましておめでとうございます。1月2月は色々と忙しくて、全く清流elixirにて勉強会を開催できず... 2ヶ月ぶりの開催となりましたが常連の方、新規の方、リモートでの接続、多くの方に参加して頂けました。ありがとうございました。ハッピーター…

【並行コンピューティング技法】第3章のまとめ

前回までのあらすじ 実際に並行処理を記述する際にどのように手法を決めて実装していくのかという話が第2章のメインであった。 並行処理の方針を決める手法は以下の2通りで、第2章ではそれぞれの特徴やマナー、サンプルに触れながら内容が進んでいく。 タス…

【並行コンピューティング技法】第2章のまとめ

前回までのあらすじ 以前から気になっていた「並行コンピューティング技法」を衝動買い。全体の構造を読み解き、どんな知識がこの本から得られるかを考察した。合わせて、第1章を読み、内容を簡潔にまとめた。第1章は大きく以下のような内容を扱っている 並…

【並行コンピューティング技法】全体の構成と得られる知識 & 第1章のまとめ

今回の購入物 前から買おうとは思っていたが、読む時間ないなぁと手を出さずにいた「並行コンピューティング技法」をたまたま立ち寄った本屋にて発見し、思い切って購入。最近、学習に対するモチベーションが下がっているので気持ち新たにスタートするために…

ElixirのString.contains?で第1引数にbinaryを第2引数に日本語ひらがなを与えるとfalseになる理由についての調査報告

事の発端 たまたまElixirでhttp responseのbinary情報に対して、特定の日本語が含まれているかという判定式を記述していたところで、この現象に遭遇した。 iex> body = <<201, 202, 197, ...>> iex> String.contains?(body, "いちご") false 間違いなくbinar…

何度も同じようなテストを書くのがつらいので無名関数を使って楽しくしよう【golang/Elixirのサンプル有】

反応が良かったツイート テストを無名関数で書くと楽しいよという旨のツイートの反応が良かった。ただ言葉だけだと正確に情報が伝わらないので実際にどうやっているのかをコードに落としてみた テストケースを複数書くときは無名関数が凄く便利。わざわざ外…

数値をASCIIを用いてaからzまで(半角英字)の文字列に変換

何をしたいのか 業務で書いたコードなのだが、作成する元になったアイディアがボツになったため、お蔵入り。需要は無いだろうけど、せっかくなので当時、ググっても出てこなかったので公開しておこうと思う。1から始まる任意の数字をASCIIで定義されている数…

【第16回清流elixir勉強会】今年のElixirに関する学習を振り返る会

トピック elixir-sr.connpass.com 早いもので今年ももう終わろうとしています。今年度より清流elixirというコミュニティを立ち上げて勉強会を行い今回を含めて合計16回の勉強会を開催することが出来た。幅広い方に参加して頂き、多くの方と知り合うことが出…

golangでいい感じのclosure使ったカウンターが作れたのでElixirでも無理矢理に実装した

closureとは何か 難しい概念の説明は強いエンジニアや大学の賢い先生方にお任せするため、深い説明は行わない。ざっくりと言うと、関数の中である値を保持させておいて、その値を変化させる(操作する)ための変数を保持している関数の内部に用意された無名関…

Elixirの歴史を辿るうちに「電話はなぜつながるのか」を読んでいたので、その感想

なぜ読んだのか 【新品】【本】電話はなぜつながるのか 知っておきたいNTT電話、IP電話、携帯電話の基礎知識 米田正明/著posted with カエレバ楽天市場Amazon7net 個人的な興味があって、以前よりElixirというプログラミング言語を学んでいる。このElixirの…

プログラミングErlang7章を読んで。並行処理とアクターモデルについて考えてみた

並行処理について 人間なら誰でも並行処理を理解している。 この世界は並列だ。 Erlangのプログラミングは人間の思考と対話をモデル化している。 人間はそれぞれメッセージを送ることによって通信し合う独立した存在として動く。 誰かが死ねば、他の誰かが気…

【第15回清流elixir+fukuoka.exもくもく勉強会】Elixirでチャットサーバーを作りながらNode間通信を試す

トピック elixir-sr.connpass.com Qiitaのアドベントカレンダーの執筆したり、業務が忙しすぎたり、PIDの闇にハマっていたりで、少し間が空いてしまいましたが第15回のレポートをまとめました 今回も前回同様に、kogaさんにお声がけ頂きましてfukuoka.exさん…

Elixrのプロセスとは一体何なのか。探索の旅に出てた

今更だけど Node間通信のチャットサーバーを作っている時にふとなぜか、「Elixirでspawnとかした後に返ってくるPIDって一体何なんだ?」と思い立った なぜsend(target_pid, message)とするだけで対象のプロセスにdataを送ることが可能なのだろか。Node間通信…

【第14回清流elixir勉強会】Elixirのマクロを完全に理解する会

トピック elixir-sr.connpass.com 第14回目となる清流elixirの勉強会を開催しました 今回からは本格的にリモート参加枠を用意した。しかし、これが思っていたよりも何倍も難しい。会場のホットな温度感や議論が始まるとリモート参加者にはその現場感を伝える…

Elixirのマクロに非黒魔術士が挑む

マクロは黒魔術 以前からメタプログラミングという単語を耳にしたことはあり、存在は認知していた。マクロはメタプログラミングを行うための機能、言語という意味で捉えれば良い(マクロ in メタプログラミングという階層になっている) 要するに言語拡張のた…

人生で初めてLTしてきたので後日談【よわよわな新卒が勉強会を始めた話】

後日談とは(1週間以上経ってる いつもお世話になっているからpiacereさんから声を掛けて頂き、人生で初めての自身のネタでのLTかつリモートLTをしました fukuokaex.connpass.com 今回話したネタは「清流elixirのこれまで -東海にElixir界の異端児が生まれた…

【レポート】第13回清流elixir勉強会を開催しました【Elixirで作成されたOSSのコードを読んでみる会】

トピック elixir-sr.connpass.com 第13回目の清流elixirの勉強会を開催しました 今回はOSSのコードを読んでElixir力をあげるという目的かつ、弊コミュニティ初の試みとしてリモート(Zoom)での参加にも対応しました これで全国からのジョインが可能に!! 勉強…

Elixirでプロセスをspawnで生成してErlangの:random.uniformを呼び出すと全て同じ値になる

何が起こったのか これの実行結果が全て同じ数値になるのなぜ...???https://t.co/DoUBNy6BoJ(1..10, fn _ -> spawn(fn -> num = :random.uniform() IO.puts(num) end) end)— OKB(岡部) (@sing_mascle69) October 22, 2019 まず、プロセスを複数立ち上げて並…

Elixirで定数を定義する

Elixirには標準にconstがない ※書き方が早く知りたい方はこの章は読み飛ばして頂いて構いません Elixirはいわゆる関数型言語だが変数の再代入、正しくはパターンマッチを何度も行うことが出来る。またgo-langのような厳密な型の指定も必要ない user_input = …

docker-composeを使ってReact+phoenix+postgresの環境を構築する

概要 ほとんど個人的メモです 自身でよく構築することの多い以下の環境を毎度、調べながら作るのが面倒なのでまとめたって感じです React(front end) phoenix(backend, elixir web framework) postgres(open source database) 毎度悩むのが、dockerのimageを…

【レポート】第12回清流elixir勉強会を開催しました【elixirでミニCodeReTreatやろうぜ!!】

トピック 今回で第12回目の勉強会を開催致しました。いつのまに12回も... elixir-sr.connpass.com 以前よりずっと個人的にやりたいなーって思っていたCodeReTreatを開催しました 名古屋でも開催されているのをちらちらと見たことがありますが、中々参加でき…

【レポート】第11回清流elixir勉強会を開催しました【Taskを使った並行処理に入門】

トピック 今回で第11回目の勉強会を開催致しました elixir-sr.connpass.com 隔週にて勉強会を開催していたのですが、先月は仕事の都合で日程が合わずで3週間時間が空いてしまった こういうのは一回サボる癖が付いてしまうと徐々に習慣化してしまうので気をつ…

スタックサーバーを実装しながらElixirでOTPへ入門する

そもそもOTPとは 一言で言えば、Erlangで用意された便利なライブラリなどの集合体で便利ツールをまとめたものという認識をしている OTPとはopen telecom platoformの略で当初は堅牢性が重要な電話交換機を開発するために使用されていた 今になってはElixirで…

【レポート】第10回清流elixir勉強会を開催しました【Elixirで速度測定】

トピック 今回で第10回目の勉強会を開催致しました elixir-sr.connpass.com 3月の下旬に始めた当勉強会も、気づけば10回もやってたのかと感慨深い 「どうやって運営してるんですか?」とよく聞かれることがあるが別に何か特別なことはしていないはず ただ、自…

fukuoka.exさんのもくもく会にリモートで参加させて頂きました【Phoenix入門】

参加したもくもく会 以前から合同で勉強会をさせて頂いていたり、様々なことを教えて頂いているfukuoka.exさんのリモート勉強会に再び参加させて頂きました 名古屋には多くの勉強会があるとは言える状況ではないですが、リモートで接続可能な勉強会があると…

Elixirでの実行速度の測定と色々と実験してみた【Enun.sum vs Enum.reduce etc...】

測定に至る背景 再来週に開催する清流elixirの勉強会でifとパターンマッチでそれだけ実行速度に差が出るのかを測定しようと企画している そのために自身の予習を兼ねて、Elixirでの実行速度の測定方法について調査し、簡単な実験を行なってみた 以前から気に…

【レポート】第9回清流elixir勉強会を開催しました【ウェルカムElixir入門会】

トピック 今回で第9回目の勉強会を開催致しました elixir-sr.connpass.com 東京で参加したElixir&ErlangFest2019やfukuoka.exさんの勉強会にリモート参加させて頂いた中で コミュニティの盛り上がり、参加する人の多さが非常に重要であると痛感した fukuokae…

ElixirでアセンブラとVM変換器がとりあえず出来た

なにこれ(5度目 Elixirでコンピューターサイエンスを学ぶシリーズの第5弾で以下記事の続編です www.okb-shelf.work この本を参考に勉強しつつコードを書いています www.oreilly.co.jp 以前の記事まではかなり低レイヤーの部分をメインとして扱っていた 論理…

ElixirでDフリップフロップと1Bitレジスタをそれっぽく実装してみる【順序回路】

なにこれ(4度目 Elixirでコンピューターサイエンスを学ぶシリーズの第4弾で以下記事の続編です www.okb-shelf.work この本を参考に勉強しつつコードを書いています www.oreilly.co.jp 今回は順次回路と呼ばれるCPUのクロックを受けて同期する回路の作成に取…

【レポート】第8回清流elixir勉強会を開催しました【競プロ(Cake and Donuts)@Elixir2】

トピック 今回で第8回目の勉強会を開催致しました elixir-sr.connpass.com 隔週で勉強会を開催して早3ヶ月... 当初はElixirについてほとんど知らなかったが、現在ではある程度語れるレベルにはなった Elixirを勉強しないという気持ちから、この面白い言語を…