はじめに これまで Python での画像処理や AI の学習・推論は実務でも扱ってきました また、 Elixir は Phoenix を使った REST API に数年使っています しかし、 Elixir で画像処理、 AI というのは未経験です というわけで、 Nx と evision で Elixir での画像処理を実装してみました 実装したもの(Docker 上に環境構築):
Erlangの軽量プロセスが軽いというので、ちょっと眺めている。 Erlangは、BEAMという仮想機械で動作する。BEAMのソースコードは、erts/emulator/beam以下にある。コンパイルは、erlcコマンドで、.erlから.beamに変換することにより行う。 さて、軽量プロセスってふと思えば、スレッドのことである。しかし、それでも309ワード(1236バイト)というのはすごい(うちヒープのサイズはデフォルト233ワードらしい)。さらに、ネイティブスレッドではなくグリーンスレッドなので、メモリ消費が少ない。軽量プロセスは、spawnの延長で呼ばれるerl_create_process関数で起動している。やっていることは、メモリを取得して、プロセス構造体を定義して、それをrunq(add2runq)につないで終了となっている。これしか作っていないのだから、プロセスの生成は早くて当
何かと便利なので、anyenv から asdf にローカル環境を変更することにしました。 asdf のインストール 注意:情報が古くなっている場合がありますので、必ず、本家「asdf-vm」のGitHubリポジトリを参照しながらやりましょう。 依存するパッケージをインストールします。 brew install coreutils curl gitasdf をインストールします。 brew install asdf or brew install asdf --HEADGit からインストールしたい場合はこちら。 git clone https://github.com/asdf-vm/asdf.git ~/.asdf cd ~/.asdf git checkout "$(git describe --abbrev=0 --tags)"最後にパスを通します。 # zsh の場合 echo -
Elixirでプログラミングをするときは頻繁にプロセス間でメッセージ通信を行います。 Elixirのプロセスはネットワークに透過的なため、別ノード(別VM)へのプロセスへメッセージを送信することができます。 また、別ホスト(別サーバ)で動いているプロセスへも送信できます。 今回は異なるVM間、異なるホスト間のメッセージ通信を試してみます。 ノード接続 メッセージ通信を行うノード同士で接続します。 まず最初に名前付きでノードを起動しましょう。 (@以降の内容はホストネームです。hostname -s で確認できます) $ iex --sname foo iex(foo@kanmo)> 次に別のターミナルウィンドウを開き、同じく名前付きのノードを起動します。 $ iex --sname bar iex(bar@kanmo)> それでは、ノード同士で接続します。 iex(foo@kanmo)>
【Elixir】Enum を完全に理解する | 効率的な Enum の学習方法・暗黙のルール・意識すべきこと 作成するアプリケーションに依存するとも思うが、Elixir でアプリケーションを作成する時はかなりの比率で Enum モジュールの関数を使う。初学者は Elixir になれる意味合いでも Enum の使い方に慣れると良いと思われる。 ただし、全部の関数を頑張って手を動かしたりして学ぶ必要は無かった。自分もやってみたが結局は業務中には全部は使わないし記憶にも定着しにくいので。 最終的に良かった方法は よく使う関数のみ最初にマスターする ルールと意識すべき点を理解する 全体的にさらっておく だった。 自分が学習した際の大事だと思う観点も合わせながら、この流れで説明していく。 0. そもそも Enum とは? Elixir の言語自体にビルトインされている Module で配列に対して抽
こんにちは、あんちぽです。最近はNeos VRというメタヴァースプラットフォームにハマっていて、VR内でライブコーディングをしたり、プレゼンをできるツールを作ったりしています。いよいよVR元年ですね。 今日はNeos VRの話ではなく、先日行われたElixirConf US 2021で登壇してきた話を簡単に紹介します。 ElixirConf US 2021について ElixirConf USとは、プログラミング言語Elixirに関する話題を扱う技術カンファレンスです。今年は、オフラインとオンラインのダブル開催で、前者が10月12および13日、後者が10月14日および15日に行われました。そういう事情もあって、今年はキーノートを合わせて60名以上がトークをするという、大規模なイベントになりました。私は、オンライン開催の方で参加しました。 発表した内容の簡単な紹介 以下のスライドを用いて発表し
備忘メモ。 2021年7月7日に参加したkokura.exのオンラインイベント(※1)で聞いた、Elixirに関わる偉人についての話。 kokura.exのSlackの内容ほぼ丸写しだが、手元にも情報を残しておきたくて転記。 ※1:Twitter Spacesで配信された「kokura.exラジオ」になります。@zacky1972氏とim氏がElixir関連の話をしています。イベント詳細は以下を参照。 fukuokaex.connpass.com 紹介されていた人物 José Valim Joe Armstrong Chris McCord Chris Keathley Justin Schneck Frank Hunleth まとめ 紹介されていた人物 kokura.exラジオでは、以下の6名が紹介されていました。 José Valim Joe Armstrong Chris McCor
Elixir/Phoenixアプリをパブリックに公開するとき、一番手軽な方法はおそらく Gigalixir にデプロイすることです。 Gigalixirは、Elixirに対するサポートが強い(Hot Upgradeできたりします)HerokuのようなPaaSです。Herokuと同様にCLIでアプリを作って設定を行い、git pushするだけでデプロイできます。DB(PostgreSQL)も使えます。 Gigalixirの基本や導入については @piacerex さんの記事が分かりやすくまとまっているので、そちらをご覧ください。 手動でデプロイしたくない! PhoenixはProductive |> Reliable |> Fast なフレームワークなので、たくさん改善してたくさんデプロイしたいですよね。それなのに、git pushだけでいいとはいえわざわざ手動でデプロイしたくありません。
ここ最近、Elixirという言語がWebプログラマー界隈で話題になっています。 ElixirはErlangのVM上で動くRuby風味の関数型言語で、RailsコミッタのJose Valimさんが作ったプログラミング言語です。 この言語はErlangの並行性とRubyの開発生産性を持っています。 今回はこの言語が出てきた背景と文法の特徴について書こうと思います。 Elixirが注目されている理由 ここ数年、Webアプリケーションは以下の問題を抱えています。 C10K問題 10000以上のクライアントがサーバに同時接続すると、HWの性能は足りていてもOS、ソフトウェアの問題で処理が破綻する ムーアの法則の限界 CPUチップメーカーの製造するチップのクロックレートの成長に陰り。代わりにマルチコアアーキテクチャのCPUが開発されている リアルタイムWeb サーバ、クライアントが常時接続するアプリケ
Erlang & Elixir Fest 2019 で任天堂さんの発表について、懇親会で話せる範囲でお教えていただいたことなどを交えて、Erlang/OTP を利用してパッケージ製品を開発しているプログラマー視点で見ていきます。残念ながら運用については未経験のため、その辺りは触れません。 また自分が XMPP というプロトコルはなんとなく知っているレベルということもあり、XMPP 自体には踏み込みません。 XMPP/ejabberd という選択当たり前ですがプッシュ通知を送るには TCP/IP の接続を維持するという方針になります。その上、将来的には 1 億を目指して行くわけです。 TCP の常時接続が経験ない中で 1 億同時接続を目指す際の技術選定で、自作プロトコルに行かず、 枯れている XMPP という選択をしたのは本当に素晴らしいと思います。 また、そんな中で実績がある ejabbe
今回はErlangとElixirのバージョン管理ツールであるKerlとKiexを使用しての、ErlangとElixirの環境構築方法について記事でまとめました。 最近はElixirの特徴やおもしろさなどを紹介されたこともあり、Elixirを少しだけ勉強していますが、ある程度落ち着いたら本格的に第二言語?として始めたいと考えています。 Elixirはpiacereさんのコミニティ活動のこともあり、特に福岡で盛り上がりを見せているそうです。piacereさんが作った以下の資料も読んでElixirについて勉強しています。 Elixirとは?この記事を見に来た方には不要かもしれませんが、一応Elixirとは何かについて説明します。 ElixirはErlangのVM上で動作する関数型のプログラミング言語です。特徴としては、Erlang VM(仮想環境上)で動作することで、大量の並行処理を行うアプリケ
Discord はゲーマー向けのボイスチャットサービス。テキストチャットもできるし最近ではビデオチャットや画面共有もできるようになった。 UI はかなり Slack に似ている、モダンなデザインということなんだろう。 WebRTC 技術を利用しているということで、とても気にはなっていたが使うタイミングがなかったことからあまり追いかけていなかったが、先日ビデオチャットと画面共有が追加されたということで色々調べてみることにした。 ElectronWindows/Mac/Linux 向けのデスクトップクライアントには Electron を採用している。かなり早い段階から採用しているイメージ。Electron は Chromium ベースなので WebRTC が利用できる。WebSocket もバリバリ使ってる模様。 Electron を使うことでブラウザとほぼ変わらぬ動き、UI を再現している。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く