サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
shotat.hateblo.jp
10分でわかるアクターモデルです。 Erlang, Elixir, Scalaあたりを触るときに理解すべき内容です。 元ネタ: www.brianstorti.com Introduction 我々のCPUは速くなりません。 CPUには今やたくさんのコアを積んでいますが、 全てのハードウェア資源を利用したければ コードを並行的に走らせる必要があります。 マルチスレッドの利用が進むべき道でないことは、 数十年もの追跡不能バグや開発者の憂鬱が示しています。 しかし恐れることはありません。 素晴らしいいくつかの代替案があります。 今回はその中の一つを紹介しましょう。 それはActor Modelです。 Model Actor Modelは並行計算を取り扱うための概念的なモデルです。 システムコンポーネントがどのように振る舞い、相互作用すべきかについてのいくつかの原則が定義されています。 Acto
Multi-Stage Build docs.docker.com Docker の 17.05 (ce) から multi-stage build 機能が追加されました。 multi-stage build とは、ベースイメージを複数利用し、多段階で build を行う機能です。 利用シーンはビルド環境とランタイム環境の分離が挙げられます。 ビルド環境とランタイム環境を分けるとランタイムがネイティブである Go のような言語では Docker image を劇的に小さくすることができます。 golang の ベースイメージは 数百 MB ありますが、alpine のような 軽量 Linux イメージ単体では 数 MB のため、効果としては 90 % 以上のダイエットに繋がります。 Docker image サイズを小さくするメリットや、一般的なプラクティスについてはページ下部のリンクが非
Dockerの勉強を始めたのでGolangもついでにやります。 スターティングGo言語 作者: 松尾愛賀出版社/メーカー: 翔泳社発売日: 2016/05/11メディア: Kindle版この商品を含むブログを見る GoのInstall & 環境設定 $ brew install go GOPATHを設定しないといけないらしいので、 使ってるshellの設定に以下を記述します。 $ export GOPATH=$HOME/go $ export PATH=$PATH:$GOPATH/bin 開発に必須なバイナリを入れる 補完エンジンのgocodeとLinterのgolintを入れます。 $ go get -u github.com/nsf/gocode $ go get -u github.com/golang/lint/golint Neovimの設定 plugin managerはdei
Rails & Node.jsの構成で Docker環境を作ろうとしたらハマったのでメモ 現象 npm installを実行する Dockerfileを記述 ... RUN mkdir /app WORKDIR /app # npm install ADD package.json /app/package.json RUN npm install ... カレントディレクトリを /app にマウントするdocker-compose.ymlを記述 version: "2" # これは失敗 services: web: build: . command: bundle exec rails server -p 3000 -b '0.0.0.0' ports: - "3000:3000" working_dir: /app volumes: - .:/app するとnode_modulesが消
Rubyで並行処理を書きたかったのですが、自前でスレッドセーフなプログラムを書ける気がしないのでgemを探して来ました。 Concurrent Ruby github.com Be an 'unopinionated' toolbox that provides useful utilities without debating which is better or why と書いてあるので、諸々の並行処理の実装があるみたいです。スレッドセーフらしいです。 READMEを読むとActorやらChannelやら書いてあります。 とりあえず今回は一番basicっぽいAsyncを使って並行でHTTPリクエストを投げる処理を実装してみます。 Async Async: A mixin module that provides simple asynchronous behavior to a cla
vimconf.vim-jp.org VimConf 2016 に参加してきました。会場はmixiさんで、コーヒーが無限に飲めて最高でした。 vim-jpの中の人や普段お世話になっているプラグインの開発者の方と話せて楽しかったです。 印象に残った発表と感想書きます。全部は書けないので3つほど紹介します。ちなみに全部面白かったです。 Introduction to Vim 8.0 Introduction to Vim 8.0 from k-takata www.slideshare.net 日本一のVimコミッターのK.Takata さんの、Vim8.0についての発表でした。 Vimの歴史的な話や、Vimのpatchを書いてる開発者の多くが日本人、という話が印象的でした。 Vim scriptもいつの間にかLambdaやClosure等のモダンな機能が使えるようになっているそうです。Vim
Hubotに飽きたので、HedwigというElixir製のFWでbotを作ってみようと思い立ちました。 Hedwig github.com Adapter baseのHubotっぽいBotフレームワークです。Elixirです。 公式のAdapterでSlack対応してます。 Setup mixでprojectを適当に作ります。supervisor (--sup)つきで。 $ mix new hoge --sup $ cd hoge $ vi mix.exs # 以下の設定を記述 $ mix deps.get mix.exs ファイルの設定 ... def applications do [applications: [:hedwig]] end ... defp deps do [{:hedwig, github: "hedwig-im/hedwig"}] end ... Bot作成 以下
以前会社の同期とご飯を食べていた時、 HTTP負荷テストツールのVegetaというものを紹介してもらったので試してみました。 github.com GitHubのプロジェクトページを開くとイカしたサイヤ人の王子が目に飛び込んできます。 Golang製ツールで、CLIで比較的簡単に扱えるのが特徴のようです。 大量のリクエストを投げるコマンドが vegeta attack です。 大量にエネルギー弾を撃ちまくるイメージですね。 ドラゴンボールの負け確フラグです。 "王子戦法"、またの名を"グミ撃ち"というらしいです。 dic.nicovideo.jp Vegeta で負荷をかける とりあえず使ってみます。他所のサーバに負荷をかけると本当に怒られるのでやめましょう。自前で用意したサーバかlocalhostに向かって実行しましょう。 負荷テストの対象は最近ハマってるPhoenix (v1.2.1,
このページを最初にブックマークしてみませんか?
『shotat.hateblo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く