タグ

ブックマーク / x1.inkenkun.com (5)

  • actix_web は Actorモデルでどのようにwebリクエストを捌いているのか

    actix_web は Actor モデルを採用した Rust の web frameworkです。 「Actor モデルでwebリクエストを捌く」仕組みを雑に想像すると、 TCPリスナーがHTTPリクエストをメールボックスに貯め、それをワーカーであるActorが拾ってレスポンスを返す? この仕組だと複数のActorで1つのメールボックスを共有する機構が必要になってきます。 しかし、Actorシステムを提供する actix にはこの機構はなさそうに見えます。 それに、恐らくこの仕組みでパフォーマンスを出すのは難しいでしょう。 そこで、actix_web がどのようにHTTPリクエストを捌いているのか、ソースコードを追ってみることにしました。 ※ 読み間違え等ありましたらコメント頂けると大変嬉しいです… 🙏 actix_web の構成 actix_web の依存関係を図示するとおおよそ下記

  • 2018年版: Jupyter Notebook で Scala を動かす

    Jupyter Notebook 便利ですよね! REPL感覚で使えるけれど、REPLより使い勝手良いし、セルごとに何度もやり直しできるし、リンクを共有すればコードもさくっと共有できます。 Scala にも spark-notebook や Apache Zeppelin などの ノートブック形式Webアプリケーションがいくつかありますが、いつも使っている Jupyter Notebook で Scala を動かしたかったので、今回 Jupyter Notebook のカーネルに Scala を追加しました。 この記事を書いた経緯なのですが、「jupyter-scala」 の名称が変わっていたりインストールの仕方が変化していたため、一旦まとめた次第です。 ※ この記事を書いているのは 2018.11.01であり、今後も変更の可能性は大いにあります。。。 Jupyterのインストール 既に

  • Rust を Bazel でビルドする〜前編〜

    そんなに需要がないだろうなあ、と思いつつも、ちょっと面白かったので記事にしました。 Rust で書いたソースコードを Google製ビルド・ツール Bazel を使ってビルドします。 Rust の場合、通常であれば迷わず Cargo でビルドしたいところです。 しかし、多言語を扱う monorepo スタイルの開発であったり、C/C++ソースも一緒にコンパイルしたい場合、複数言語のビルドを一貫して行える Bazel という選択肢がでてきます。 (tensorflow/rust を使うときもですかね) 参考: 大規模ビルドシステムにおけるRustの扱いに関する議論 (ここでも議論されています) Bazel では、ビルドするためのルールを BUILD というファイルに記述します。 様々な言語向けのルールが既にたくさん用意されているので、BUILD にダウンロード設定を記述して使うことができます

  • AWS Cloud9 を使って Lambda APIGateway をサクッと簡単に設定する

    半年ぶりくらいに動画作りました。 AWSのCloud9を使って、nodejs expressのapiサーバーを lambda APIGatewayのserverless構成でサクッと作ります。 動画で使用したソースはこちら

  • 機械学習で日本酒をクラスタリング Part1 スクレイピング編

    今回から何回かに分けて、機械学習で日酒の味のタイプのクラスタリングをする動画をやっていきたいと思います。 Part1はデータを取得するスクレイピング編です。 機械学習はまず、データを集めるところから始まります。 日酒の銘柄マスタを作るために、こちらの日酒物語のサイトからスクレイピングをかけて銘柄を取得し、日酒銘柄CSVを作ります。 スクレイピングにはPythonのBeautiful Soupを使います。こちらはAnacondaをインストールすると、一緒に入るのでそれを使います。 スクレイピングするソースはこちら python2系 # -*- coding:utf-8 -*- import urllib2 import codecs from bs4 import BeautifulSoup f = codecs.open('sake.csv', 'w', 'utf-8') f.wr

  • 1