1954

Thoughts, stories and ideas.

RedisのHyperLogLogの誤差について

HyperLogLogは集合のcardinalityを近似する確率的アルゴリズムです。 RedisにもPFxxxというcommandで実装されており、標準誤差は0.81%です。 The returned cardinality of the observed set is not exact, but approximated with a standard error of 0.81%.…

2018年の振り返り

登壇 LINE関連をメインに、いくつかのイベントで登壇の機会がありました。 sbt-uglifier ScalaMatsuri 2018の懇親会「オプテピピック」でのLTです。 LINE NEWS の広告配信を支える LINE DMP の裏側 LINE Developer Meetup #37「ニュースメディアにおける広告…

複数サーバーでtail -fっぽく読むJavaライブラリtailer7

tailer7というJavaライブラリを公開しました。 github.com これを使うと、たとえばcommons-io Tailerでログをtail -fしつつtailer7のLogSenderに投げれば、複数サーバーでLogTailerを立ち上げてstreamingでログを受け取れます。 アイデアについてはこの記事…

ISUCON8本選に出場して5位だった

Webアプリケーションの高速化バトルISUCON8本選に「チーム人間性」で出場しました。 最終スコアは13,914で5位という結果に終わりましたが、素晴らしい運営と問題で、大変楽しいコンテストでした。 使用言語はGoでした。 やったこと 3人チームで参加し、自分…

redshift-fake-driverでAmazon Redshiftをモックする

Amazon Redshiftは便利でコスパのよいDWHですが、時間に対する従量課金なので、ちょっとした動作確認のために立ち上げっぱなしにしとくのが気がひける場合もあります。 もしJVMプロジェクトを開発しているなら、redshift-fake-driverを使うことでRedshiftを…

Redis cluster + lettuceでmget/msetすると複数リクエスト飛ぶ

Redis clusterに対してmget/msetしたとき、slotが異なるものが混在しているとCROSSSLOT errorが返ります。 したがってhash tagを用いてslotを指定するか、まとめたい単位でhash型のvalueに突っ込むなどのkey設計にする必要があります。 Redis Cluster Specif…

goofysを使ってS3以外のストレージをfstabでマウントする

goofysはAmazon S3またはAPI互換なストレージをfile systemとしてマウントできるツールです。 github.com 起動時に自動的にマウントするにはREADMEにあるように/etc/fstabへ追記すればよいですが、S3以外のストレージを使う場合は、以下のようにendpointを指…

AIKATSU! STREAMというChrome extensionを作った

生産性をあげるため、アイカツ!のライブシーンを延々と再生し続けるAIKATSU! STREAMというChrome extensionを作りました。 (dアニメストアへのログインが必要です) chrome.google.com とはいえ、jsで動画を解析してライブシーンを抜き出すようなことをし…

2017年の振り返り

1-3月 広告効果測定ツールADPLANのリリース 自分は集計周りをメインで担当してましたが、無事にリリースすることができました。 ScalaMatsuri 2017登壇 Introduction to ScalikeJDBCというタイトルで喋りました。 4-6月 #bq_sushi tokyo #5 @ Google Cloud C…

JavaとしてもScalaとしてもコンパイルできるHelloWorld

タイトルの通り、以下のコードはJavaとしてもScalaとしてもコンパイルできます。 /*/**/ class JavaMain { public static void main(String args[]) { System.out.println("Hello, World"); } } // */ /*/**/ class App {} // */ /*/**/ class A { int objec…

Ammonite REPLで任意のclasspathを追加する

MavenやGradleプロジェクトでも、sbtみたいに手軽にREPLで動作確認したいときがあります。 お手元の開発環境にAmmonite REPLを入れておけば、以下のようにScalaを使って動作確認できるので便利。 $ amm Loading... Welcome to the Ammonite Repl 1.0.2 (Scal…

アイカツ!の曲のかっこよさについて

この記事はアイカツ! Advent Calendar 2017の25日目の記事です。 はじめに 女児向けアーケードゲームやアニメには、そのターゲット層とは裏腹に、コアな音楽ファンをも虜にするような楽曲を繰り出してくる作品が少なくありません。 とりわけアイカツ!は、…