kenju's blog

About Programming and Mathematics

会社ブログに Go x AWS で作ったログ基盤のアーキテクチャについて公開しました

書きました。 『cookpad storeTV の広告配信を支えるリアルタイムログ集計基盤』https://techlife.cookpad.com/entry/2018/10/18/100000 もしここらへんの技術に興味ある方がいらっしゃったら、ぜひ Twitter なりでご連絡ください。 こんにちは。最近 Go x A…

『Cookpad の広告配信を支えるアーキテクチャ』という題でLOB Tech Night 第2弾にて話してきました

LOB Tech Night - 管理画面の裏側ぶっちゃけます ( https://lob.connpass.com/event/100491/ ) というイベントで、『Cookpad の広告配信を支えるアーキテクチャ』というタイトルで話してきました。 LOB の中の人から依頼があり、フロント寄りで話をしてほし…

『ウェブ進化論』を読んだ

ウェブ進化論 本当の大変化はこれから始まる (ちくま新書)作者: 梅田望夫出版社/メーカー: 筑摩書房発売日: 2006/02/07メディア: 新書購入: 61人 クリック: 996回この商品を含むブログ (2375件) を見る 本書が書かれたのは 2006 年。もう 10 年以上も前のこ…

『オペレーティングシステム』を読んだ

IT Text オペレーティングシステム(改訂2版)作者: 野口健一郎,光来健一,品川高廣出版社/メーカー: オーム社発売日: 2018/01/24メディア: 単行本(ソフトカバー)この商品を含むブログを見る 情報工学系の大学の学部授業でも利用されている、オペレーティン…

『クラウドゲームをつくる技術ーマルチプレイゲーム開発の新戦力』を読んだ

読んだ感想。 クラウドゲームをつくる技術 ──マルチプレイゲーム開発の新戦力 (WEB+DB PRESS plusシリーズ)作者: 中嶋謙互出版社/メーカー: 技術評論社発売日: 2018/09/20メディア: 単行本(ソフトカバー)この商品を含むブログを見る 実際に現場で使われて…

社内技術イベント"Hackarade"で Go で MinRuby の Interpreter を書いた

書いた。 https://github.com/kenju/go-minruby Background Cookpad 社内では、"Hackarade" と呼ばれる、全エンジニア参加を必須とする技術力向上イベントが有る。今年度第一回(トータルでは第四回)を迎える今回は、Ruby committer が講師を努めつつ、自分…

TICKStack, InfluxDB and InfluxData's Design Architecture & Key Concepts Notes

I am considering to put gRPC load testing metrics into InfluxDB, and visualize with Grafana. That drives me to have strong interests in the background architecture & its design key concepts of InfluxDB, and TICK Stack. This blog post is my…

『エンジニアの知的生産術』を読んだ

エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)作者: 西尾泰和出版社/メーカー: 技術評論社発売日: 2018/08/10メディア: 単行本(ソフトカバー)この商品を含むブログを見る Reading Notes 知的生産とは、知…

Run Multiple gRPC Load Testing using ghz

先日、gRPC server の負荷試験に、ghz が使えるという旨の記事を書きました。 "Great tool for benchmarking gRPC server - github.com/bojand/ghz" ghz の欠点は、複数の RPC を呼び出したいときに、複数の ghz binary を動かす必要がある点です。例えば、3…

Great tool for benchmarking gRPC server - github.com/bojand/ghz

While I am searching benchmarking tool for gRPC server, I found a really great tool with clean API: https://github.com/bojand/ghz Here is a working example repository for simple gRPC server/client and benchmarking test, written in Golang. …

Reading Notes of "Designing Data-Intensive Applications" Chapter 6: Partitioning

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る 「Reading Not…

Reading Notes of "Designing Data-Intensive Applications" Chapter 5: Replication

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る 社内の輪読会…

論文『Dynamo: Amazon's Highly Available Key-value Store』を読んだ

AWS DynamoDB がサービスとしてローンチする前、Amazon 社内でショッピングカート機能などに利用されていた "Dynamo" の設計について書かれた論文。DynamoDB を普段使う身として、そもそもどういう課題を解決しようとしていたのか、そのためにどういった解決…

論文『A Note on Distributed Computing』を読んだ

https://dl.acm.org/citation.cfm?id=974938 "論文『Orleans: Distributed Virtual Actors for Programmability and Scalability』を読んで" ( http://itiskj.hatenablog.com/entry/2018/08/30/142538 ) を書いたときと同様のきっかけで、"Designing Data-In…

Bandit Algorithm における各方式の概要をまとめる

ε-greedy Abount 全体のアーム選択数 T の内、 εT 回 ... 探索期間。すべてのアームを均等に選択する (1 - ε)T 回 ... 活用期間。探索期間中の結果を受けて、もっとも標本平均の高かったアームをひたすら引き続ける という方式。 Pros/Cons UCB に比べて性能…

論文『Orleans: Distributed Virtual Actors for Programmability and Scalability』を読んで

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Orleans-MSR-TR-2014-41.pdf "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" の Chapter 4 を読んでいて、章末の文献…

『海外志向と遠回り ─ 20年近くかけて少しずつやりたいことに近づいたソフトウェアエンジニアの生存戦略』を読んだ

https://geek-out.jp/column/entry/2018/08/23/110000 @higepon さんの『海外志向と遠回り ─ 20年近くかけて少しずつやりたいことに近づいたソフトウェアエンジニアの生存戦略』という記事を読んだのだが、非常に刺さることが書いてあって参考になった。 技…

Migrate from dep to Golang 1.11 Modules

Here is the complete document https://github.com/golang/go/wiki/Modules#modules How to merge from dep If you have already checked-in Gopkg.lock, just run below commands:n $ go mod init $ rm Gopkg.toml Gopkg.lock $ git add -A $ git commit -…

"Serverless Streaming Log Architecture ~ Theory & Practice ~" Presentation Slides

I had a talk at "adtech研究会", where we learn, discuss, and hands-on advertisement technology with other programmers from adtech companies in Tokyo. https://speakerdeck.com/kenju/serverless-streaming-log-architecture-theory-and-practice

Write Kinesis Firehose Lambda Translation Layer in Golang

You can use Lambda to convert data of Kinesis Data Firehose. This is the transformation process of ETL, and called "Data Transformation Flow" officially. https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html Data Structu…

Resources To Read Before Developing Streaming Engine Architecture

I am developing a realtime log architecture for advertising delivery system. While researching about best practices or common solution, I found a bunch of useful resources to read through. Here is a memo to myself about those resources. St…

技術力と英語力の関連性

"メタファーを身につけてプログラミングの生産性を向上させる" をたまたま見つけて読んでいたら、「技術力の差は英語力の差」という言説に出くわした。 新しいライブラリを学習しようと思って、GitHub のページを読んでいると、フランス人の同僚 Williams が…

『JavaScript 関数型プログラミング - 複雑性を抑える発想と実践法を学ぶ』を読んだ

JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ (impress top gear)作者: Luis Atencio,株式会社イディオマコムニカ加藤大雄出版社/メーカー: インプレス発売日: 2017/06/09メディア: 単行本(ソフトカバー)この商品を含むブログを見る …

"Teach Yourself Programming in Ten Years" と技術との付き合い方

http://norvig.com/21-days.html "Teach Yourself Programming in Ten Years" というエッセイがある。Peter Norvig という America のエンジニアが書いたエッセイで、界隈では有名だったらしい。ひょんなことからこの存在を知った。 So go ahead and buy tha…

『コンピュータアーキテクチャ改訂4版』を読んだ

コンピュータアーキテクチャ 改訂4版作者: 馬場敬信出版社/メーカー: オーム社発売日: 2016/11/23メディア: 単行本この商品を含むブログを見る 普段の仕事では高水準言語を書いているばかりであり、PC(program counter) や IR (instruction register)がどう…

『Understanding Computation』を読んだ

アンダースタンディング コンピュテーション ―単純な機械から不可能なプログラムまで作者: Tom Stuart,笹田耕一,笹井崇司出版社/メーカー: オライリージャパン発売日: 2014/09/18メディア: 大型本この商品を含むブログ (11件) を見る 実際に読んだのはだいぶ…

『Amazon Web Services 定番業務システム 12 パターン設計ガイド』読書メモ

Amazon Web Services 定番業務システム12パターン設計ガイド作者: 川上明久出版社/メーカー: 日経BP社発売日: 2016/07/12メディア: Kindle版この商品を含むブログ (1件) を見る Why reading this book? 今のチームになってから、仕事で AWS の各種サービスの…

Reading Notes of 5th Chapter of "Writing An Interpreter in Go"

Recently I have written a reading node blog post of "Writing An Interpreter in Go". http://itiskj.hatenablog.com/entry/2018/06/19/083208 After posting the article, I found that the author kindly publish a "lost" chapter - which is about im…

eslint-plugin-compat のメンテナになった

https://github.com/amilajack/eslint-plugin-compat 仕事で利用しているライブラリの一つで、広告表示の JavaScript SDK の互換性担保のために最近入れたもの。 ブラウザ互換の問題で広告表示ができない、といったクリティカルな問題は避ける必要があって、…

Reading Notes of "Writing An Interpreter in Go"

I have just finished reading & writing sample codes "Writing An Interpreter in Go". https://interpreterbook.com/ This is really a great book, especially because: You can write an interpreter from the scratch, with unit testing You can unde…