ソモサン

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

オブジェクト指向入門した(つもり)

ほんまにたつんかーいしかし流し読みでもツラカッタ pic.twitter.com/eXVlp5QddN— rohki (@r_ohki) 2020年5月16日 モチベーション 買った時は オブジェクト指向 #とは を源流を知りたくてかった、はずでした。 実際に届いたら厚さにビビったり、仕事でコード…

rusoto が async/.await 対応したのをきっかけにさわってみた雑感

タイムラインに ↓ が流れてきたのでこれはやらねば async/.await 対応 してみての雑感です。 rusoto 0.43.0-beta.1 is available now with async/.await support, please help test! here's a blog post about the near-term future of rusoto https://t.co/…

Rust.tokyo に参加した

rust.tokyo 遅ればせながら感想を。*1 まずは、スタッフや登壇者のみなさん、本当にありがとうございました。 セッションや Networking Time で非常によい刺激を受けられました。 セッション一覧で Servo や TiKV by PingCAP が見られたので、努めてそちらを…

思いつきメモ: ふりかえりにつかうチームレーダーチャートを最大値/最小値で作ると面白そう

アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き作者: Esther Derby,Diana Larsen,角征典出版社/メーカー: オーム社発売日: 2007/09/01メディア: 単行本購入: 10人 クリック: 1,282回この商品を含むブログ (117件) を見る えー、…

AWS Kinesis ひたすら読みにいく k-iter の複数 shard 対応(と、Rust の Future/Stream/Tokio 話)

github.com AWS Kinesis Stream Subscriber USAGE: k-iter [FLAGS] [OPTIONS] --region <NAME> --stream-name <NAME> FLAGS: -h, --help Prints help information -V, --version Prints version information --verbose Enable verbose mode. OPTIONS: --data-format <TYPE> Set</type></name></name>…

Rust での Iterator 返し + from_fn + Self

自分が作りたいもののためにメモ。きっと忘れて見返す。 こんな書き方できるんですねー。 ちょっと前までコンパイルエラーで落ちてた記憶がうっすらとあります。 #[derive(Debug)] struct SpanIdentity { trace_id: String, span_id: String, } #[derive(Deb…

OpenCensus meetup vol.1 に参加してきました!! #opencensusjp

参加してきました https://opencensus.connpass.com/event/123885/ いやー面白かった。 自分が気になって見積もりに時間かけてるところがやっぱりネックになっていて、みんな気にしてるという同じ認識を持てたのもよかったです。 京都からきてよかった。 資…

nand2tetris に入門中

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方作者: Noam Nisan,Shimon Schocken,斎藤康毅出版社/メーカー: オライリージャパン発売日: 2015/03/25メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る 01 の nand gate …

(追記あり) 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…

Kinesis Firehose のデータ変換を Rust でやってみて速度向上が見込めた話

概要 Rust コードを Lambda 上で動かせたーと喜んだんですが、活用どころあるんだろうかと考えてみて検証してみました。 結果として Python 比較で1秒当たりで 15 倍ほど多く処理できました。 以下でつらつらと書いていってます。