ソモサン

私rohkiによる活動や読書の記録をつらつらと書くページです

2018-01-01から1年間の記事一覧

(追記あり) AWS Lambda が正式に Rust 対応したので KinesisFirehose にくっつけて性能計測した #rustlang #rust_jp

これは Rustその2 Advent Calendar 2018 の 2 日目の記事ということにしました。 結果(2018/12/3 更新) github.com ありがたい PR のおかげで更新できました! tatsuya6502 さんありがとうございます! 246k record を 57.6 秒で処理したので、4,270 record/…

PC 新調した

A485 Thinkpad(OS: Linux Mint) ひさしぶりの Linux 環境である。 Wi-Fi につまったり、日本語入力の設定につまったりしたけども、まぁ動きました。この記事も新しい端末から書いてます。 やったこと Wi-Fi ドライバが認識されなかったので、ドライバを追加…

Scala 関西 Summit 2018 でいろんな体験をしてきた #scala_ks

よかったー 新しい話をきいたり、初めて会う方とはなしたり、コントリビュートできたり、なじみの人に会えたり、同じ志向の人に会えたりしました。 まずスタッフの方と発表いただいた方、参加者のみなさん本当にありがとうございました。 2018.scala-kansai.…

Rust で書いた HTTP サーバーを Github 経由で Zeit へデプロイした

成果物 github.com でけたー。面白い。 Zeit zeit.co クラウドベンダーの模様。 CDN やら DNS やらがある。 今回はインスタンスを作るタイプ。 Docker でデプロイ zeit.co Docker image でデプロイできるすごいやつです。 僕にとっては、デプロイ先のサーバ…

builderscon.io 2018 に行ってきた #builderscon

はじめに builderscon.io いやー、最高でした! rohki.hatenablog.com rohki.hatenablog.com rohki.hatenablog.com 2016年からなんだかんだ 3 年連続参加してました。 以下で特に気になったところの書きます。 IoT の闇 / id:kazuph1986 さん やばいしか言え…

Rust で WebAssembly と戯れてどうにもならなかった

夢の跡 github.com 頑張ったけど無理でした。 やりたかったことは WebAssembly を使った音声操作です。 動機 Rust 実装の音声ライブラリについて調べてたところ、cpal に行き当たりました。 んで、何とそこには Emscripten という文字が。 お? ブラウザでも…

Kinesis Stream の中身を追いかけて出力する k-iter に verbose mode を付けた

github.com 0.3.0 でございます。 呼び出し方と形式 --verbose を付ける。以上! k-iter --verbose -n sample-stream -r ap-northeast-1 形式 JSON で出してます。 既定ではデータを UTF8 の文字列としてだします。 {"ApproximateArrivalTimestamp":15337044…

Rust のお試しコードを実行する: cargo run --example

タイトル落ち その通り。自分メモです。 背景 新しい Web フレームワーク warp が出ました。 それで試してみよう、となった時に "この examples ってどう実行するんだろう" となった感じです。 方法 cargo run --example hello 先に書いた通り、cargo サブコ…

OpenCensus について調べて試した

OpenCensus Google 発案の分散トレース/メトリクス収集の仕様および実装、のはず。 opentracing.io とは似て非なるもの。 分散トレーシングについての仕様がいくつかあるようなのだけれども、部分的なものや似たようなものがあるので、それを整理して一括り…

OpenAPI Generator で Gatling Client を生成してみた

OpenAPI Generator 3.0.0 リリース!! やったぜ。2.0 はとか野暮なことはなしです。*1 ということでリリースノートを見ていると、New Generators ところに Gatling の文字があるではないですか。 試すしかない、ってことでやってみました。 やってみた コマ…

Rust の CLI ツールで引数の値が特定のものであれば別の引数を必須にしたい

短く crap.rs の requires_if/requires_ifs を使おう。 .arg( Arg::with_name("iterator-type") .short("t") .long("iterator-type") .possible_values(&IteratorType::variants()) .requires_ifs(&[ ("AT_SEQUENCE_NUMBER", "sequence-number"), ("AFTER_SE…

Rust でクロスプラットフォーム対応するときに便利だった Cargo Plugin: cross

これ github.com 使い方 cargo install cross cross build --target i686-unknown-linux-gnu 実際に Travis で動かしている k-iter/.travis.yml at master · ROki1988/k-iter とかを見るとよいかも。 発端 rohki.hatenablog.com 前回 AWS Kinesis Stream を…

CLI で AWS Kinesis Stream の中身をひたすら追ってくれる k-iter をつくってる

作ったもの github.com インストール方法 rustup.rs - The Rust toolchain installer rustup を設定したうえで、下記コマンドを実行。 cargo install --git https://github.com/ROki1988/k-iter.git もしくは Releases · ROki1988/k-iter より合致するものを…

Rust で Scala の continually ぽいもの

こんな感じ? extern crate rand; use rand::{Rng, thread_rng}; use std::usize; pub struct Iterate<A> { func: A } impl<B, A> Iterator for Iterate<A> where A: FnMut() -> B { type Item = B; #[inline] fn next(&mut self) -> Option<B> { Some((self.func)()) } #[in</b></a></b,></a>…

Elasticsearch のクエリを知るのに elastic4s がよかった

Elasticsearch はややこしい ややこしいというか難しいというか、面倒くさいというか… で考えたところ、そも JSON を組み立てるのがそこそこ以上にしんどいんですよね。末尾の , とか。 Kibana も補完はあるのですが、そのあたりが面倒くさくて、なんか学ぶ…

Scala で Array 等を制限に合わせて分割する

短く grouped(size) を使いましょう 背景 Scala で AWS Kinesis へ PutRecords しようとしたときに、上限に引っ掛かりました。 で今回抵触した上限というのが、PutRecords 1 回あたりに含められるレコード数で、500 までとのこと。*1 なので 500 毎に分割し…

Prometheus + Grafana + Elasticsearch + Kibana を Docker でいじり中

prometheus.io いじってます。 進捗 docker-compose.yml はこんな感じ version: '3' services: prometheus: image: prom/prometheus container_name: prometheus volumes: - .\prometheus.yml:/var/app/prometheus/prometheus.yml command: - '--config.file…

elastic4s の json ライブラリ切り替えの実装にちょっと感動してる話

いつかの続き GitHub - sksamuel/elastic4s: Elasticsearch Scala Client - Non Blocking, Type Safe, HTTP, REST API, TCP リポジトリは上記。 elastic4s/package.scala at master · sksamuel/elastic4s · GitHub で、件のコードがこの辺り。ひっじょうに薄…

Kinesis Firehose のデータ変換 Lambda を Golang で作って計測してみた

概要 前回 やるといってたやつです。 AWS Lambda が Golang を公式サポートしたので、これまでやってきたのと同じような Lambda を作って計測してみました。 先に結果だけ書くと、 Rust: 55.8 k レコードを 23.4 秒で処理 => 1 秒あたり約 2384.6 レコードを…

API Gateway の Kinesis Proxy で追跡性をちょこっと上げてみる

AWS

結論 本文マッピングテンプレートを以下のようにします #set($inputRoot = $input.path('$')) #define ($data){"requestId": "$context.requestId","data": "$inputRoot"}#end { "StreamName": "STREAM_NAME", "Data": "$util.base64Encode($data)", "Partit…

CodeStar で AWS Lambda + Golang の雛形をサクッと作成してみた

前回 Golang サポートしたらやってみるといってたので、まずは雛形作成と調査だけ。Golang しっかり書いたことないですし。 CodeStar で雛形作成 AWS Lambda Supports Go をよむと CodeStar に対応しているぜー とかいてあったので、そちらで作りました。 gi…