ブログ・ア・ラ・クレーム

技術的なメモとかライフログとか。

Netflix のデータパイプラインを読み解きたい

Netflix はマイクロサービスアーキテクチャ界においてプロダクションで成功例を積んでいる、いわば大先輩だと思われます。 彼らは数多くのイベント登壇や techblog の記事、 GitHub 上による OSS の公開を行っており、それらからアーキテクチャやその変遷を…

株式会社メルカリに入社して1年が経過した

ちょうど一年前の 2017年8月16日に株式会社メルカリに入社しました。キリがいいこともあり、ここらで個人的な振り返りをつらつら書いてみます。あらかじめ、はっきりいって個人の日記レベルの内容であることをお断りさせていただきます。 転職の経緯から入社…

Cloud Spanner の DDL parser と DDL 変換ツールを作った

Cloud Spanner の DDL parser の Go 実装と、 Spanner DDL を MySQL DDL っぽいものに変換するツールを作りました。 本記事はこれらの紹介になります。 github.com github.com spar: Cloud Spanner DDL parser in Go Spanner の DDL は こんな感じ で、 SQL …

技術書典4で配布した同人誌の原稿データを GitHub で公開しました

以下の記事でご紹介した、弊サークルの技術書典4の新刊を GitHub で public repo として公開しました。 syucream.hatenablog.jp リポジトリはこちらになります。 github.com ビルド済み pdf は無く、またその他配布した原稿にしか含まれないコンテンツなどあ…

embulk-input-datastore を作った

TL;DR Cloud Datastore からデータをぶっこ抜いてくるための embulk input plugin を作りました。 github.com 普通に embulk gem install embulk-input-datastore した上で input plugin としてご利用ください。 参照するエンティティ、プロパティを絞り込む…

protobuf の Marshal/Unmarshal や Any 型について確認していた

あるメッセージの送り元と送り先でスキーマを共有してそのスキーマに基づいたメッセージをやり取りしたいことが多々あると思います。 そんな際にスキーマの記述を protobuf で行い、かつメッセージをシリアライズして送る構想について調査したメモを本稿で記…

MySQL のテーブル定義から外部キー制約を推測するツールを作った

GW 中の自分へのプチ課題として、表題の通りのツール hakagi(葉鍵, Leaf and Key) を作りました。ツール名には特に意味はありません。 github.com テーブル名やカラム名から外部キー制約を張れるような気がするカラムを選出し、制約追加のための ALTER TABLE…

技術書典4にサークル名「まいにちがきんようび。」で暗号通貨とDNSの本を配布します 

直前のお知らせになりますが、 技術書典4 に「まいにちがきんようび。」というサークル名で参加して技術系薄い本を配布します! techbookfest.org 以下のような内容になっています! 基礎から説明する暗号通貨 @lunatic_star 今日から始める IOTA @syu_cream…

何気ない発言で師匠を傷付けるスマートコントラクトを実装してみた

はじめに コインチェックの例の騒動を受け、なんだか僕もブロックチェーンネットワーク上で何かワチャワチャしたくなってみました。 ちょうど Ethereum が気になっていたこともあり、ちまたには傑作アニメの発言が流行っていることも助けて、試しに発言ボッ…

第1回WSA研究会に参加してみた振り返り

あけましておめでとうございます。年末年始はほぼ寝て過ごしていました。 表題の通り、去年に 第1回WSA研究会 というイベントに参加したのでその振り返りなどをさくっと書いていきます。 第1回WSA研究会全体への雑感 発表内容は以下の通りで、名前の通り Web…

WSA 研 #1 予稿 "再利用性の高い Test Drive Intrastructure 実行環境に関する取り組み"

第1回WSA研究会 という催し物に出る予定でそれ用の予稿を書いたのですが、折角なのでブログにも掲載しておこうと思います。あとで更新するかもです。 再利用性の高い Test Drive Intrastructure 実行環境に関する取り組み Infrastructure as code や CI/CD …

RocksDB の mruby binding "mruby-rocksdb" を作った

これは mruby Advent Calendar 2017 17 日目の記事です。 本記事は表題の通りの内容になります。 Advent Calendar のネタがどうしても思い浮かばず、ふと去年の自分の記事を振り返ってきたところ KVS の mrbgem を書いてた ので、コードをある程度使いまわし…

文フリで配布するSF小説書いた

#bunfree 文ガクサークル大文妄、2017年11月23日の文学フリマ東京に、出ます。【ウ-77, 78】の合体劇場。ジャンルはSF、短編創作小説集、頒布価格は50円(予定)。未来でもきっと僕らは、アイも変わらず生き続けてるんだって、そんな風に思うのだ。— えむばー…

uniq を少し早く処理するツール "quniq" を作った

TLDR 重複行を除去する uniq コマンドを早く実行するツール "quniq" を Go で作ってみました。 github.com 自分が測った限りでは、他の重複除去を行なうワンライナーと比べて、処理に要する時間が少なくとも 1/3 程度になることが確認できました。 背景 みな…

Scala + Scio で Apache Beam あるいは Google Cloud Dataflow に入門する

Apache Beam データに対する ETL 処理を、様々なランタイムで同じコードで実行できるようにするものです。 これは Google Cloud Dataflow のモデルを元に OSS 化されたもので、バッチ処理とストリーム処理を(ほぼ)同じコードで実装できたり、 Hadoop や Sp…

AWS Lambda と CloudWatch を使ってローカルで動かしていたcronの処理をサーバレスにする

普通に生きていると「あっこのバッチ処理定期的に動かしたいな」と思うことがあると思われます。 自分もご多分に漏れずそうだったのですが、私物 PC で cron で回すのも煩わしい(外出中はスリープさせたいので)し、 VPS などでインスタンス借りるのも目的…

Mac で ngx_mruby 込みで nginx をビルドする際にいろいろハマってた

ちょっと前に解決した話なんですが備忘録的に書いておきます。 (2017/10/03 記述に漏れがあったので修正しました) 前提 最近の openssl の Formula は link を --force を付けたとしても禁止しています。理解はできるけどサクッとビルドしたい時にやや面倒・…

mruby を使ってワンバイナリで Serverspec のテストを実行可能にするツール "sssspec" を作った

ながすぎる;よんでない リポジトリは以下にあります。 本体 https://github.com/syucream/sssspec 関連 mrbgems https://github.com/syucream/mruby-rspec https://github.com/syucream/mruby-serverspec 以下のように spec を書いて… def __main__(argv) d…

技術書典2でmrubyに関する薄い本をだします

表題のとおりです。 4/9(日) アキバ・スクエアで開催される 技術書典2 にて mruby に関する薄い本を出します! う-10 サークル名「なるはやでいい感じにやるマン」*1です。 https://techbookfest.org/event/tbf02/circle/5686683802533888 主なターゲット読…

KVS をゆるくつなぐ mrbgem "mruby-neco" を作ってみた

あけましておめでとうございます。正月は実家に帰省してネコと戯れて過ごしました。 新年一発目の記事は、新しく作成した mrbgem "mruby-neco" を紹介してみます。 mruby-neco について mruby-neco は NoSQL Elastic Command Organizer の略としています。は…

Yahoo! JAPAN がオープンソースにした KVS "K2HASH" を mruby スクリプトから利用するための mgem "mruby-k2hash" をつくってみた

この記事は mruby Advent Calendar 2016 26 日目の記事です。・・・というのは嘘です! mruby Advent Calendar 2016 、つつがなく完走しましたね!みなさまお疲れ様でした! 本記事では表題の通り、 mruby-k2hash という mgem を作ってみたことに関する共有…

mrb_state を跨いで Proc オブジェクトをやり取りしたい話

この記事は mruby Advent Calendar 2016 11 日目の記事です。 Advent Calendar のネタとしてはやっぱりイカした mrbgem を作りました的な内容をブチ上げて行きたいところですが、残念ながらそのようなネタは思いつかず。 本記事では自分が拙作プロダクト ts_…

mruby の実装を読んで知見をまとめてみている

これは mruby Advent Calendar 2016 3 日目の記事です。 mruby に関するプロダクトを実装していると、 mruby 本体の実装に関して情報が欲しくなる場面があります。(ありますよね?) そんな時は Qiita 等巷で共有されている情報とか、あるいは 組込Ruby「mr…

ApacheTrafficServer と mruby で、 Key ヘッダ処理を実装してみる

こんにちは。一番好きな Key 作品は Air です。 本記事では draft-ietf-httpbis-key-01 - The Key HTTP Response Header Field により定義される、 "Key" という HTTP ヘッダフィールドによって実現されるセカンダリキャッシュキーの処理を、拙作プロダクト …

ts_mruby, Apache Traffic Server mruby extension version 0.1 released.

(日本語版は こちら) I released ts_mruby version 0.1, Apache Traffic Server(ATS) plugin that enables you write simple logic and configuration by mruby. In this entry, I write ts_mruby-0.1's features. ts_mruby-0.1 ts_mruby-0.1 supports featu…

ts_mruby-0.1 をリリースしてみました。さーて今後の課題は?

(English version is here.) このブログで何度か紹介している、 Apache Traffic Server(ATS) の設定やちょっとした制御ロジックを mruby で記載することを可能にするプラグイン、 ts_mruby の 0.1 バージョンをリリースしました。 せっかくなので本記事では…

C++ のラムダ式のデフォルトキャプチャの対象となる変数について確認していた

C++初学者なので勉強のため会社の有志の人々と Effective Modern C++ の輪読会をやっているのですが、その際にラムダ式のデフォルトキャプチャの挙動に関する話題になり、個人的に無性に気になってしまったので調べてみました。 もし誤りや補足などございま…

ts_mruby + mruby-mrmagick で画像リサイズするリバースプロキシをサクッと実装してみた

今日は夏コミのようですね!僕は今年は特に原稿を描いておらず用事も無いためコミケに縁のない夏を過ごしてしまいました。 ところで最近拙作の ATS(Apache Traffic Server) プラグインである ts_mruby にレスポンスボディをいじくるメソッドを追加し、ふと思…

週報仲間というやつを試してみる

プライベートにおける作業、たとえば英語の勉強だとかちょっとしたプロダクトを実装してみるとか、はたまたプラモデルを組み立てるだとかを実行しモチベーションを維持するのは、どうにも難しいように思えます。 僕の最近の実体験でいうと、去年電子ピアノを…

HTTP/2 のコネクション再利用について確認してみる

はじめに 本記事は http2 Advent Calendar 2015 の 12 日目の記事となります。 本記事では HTTP/2 における TCP コネクション再利用とその周辺仕様を確認してみようと思います。コネクション再利用の挙動を理解することは、実際の Web サイトにおける HTTP/2…