白金動物園は ISUCON 9 本選において優勝しました。言葉になりません https://t.co/Zhy9tzsA2M— Issei Naruta (@mirakui) October 5, 2019 感無量です。 やったことは GitHub 上ですべて公開されています。 github.com いつものことですが、メンバーが何をし…
エンジニアが『このデザインは最高!』とか褒めてるサービスもどんどんぶっ壊れるし最高の気持ちになれる。とりあえずエン転職さんははてブに出してる広告直したほうがいいです。肝心の社名が切れてます。 さあ、今すぐ有効にしよう! (こういうの気を使っ…
今年も @mirakui と @sora_h と一緒に ISUCON5 に出場して、準優勝しました。 やったこと 時間は投入した時間。 12:00 : API リクエストを送る先の services が DB に入ってるけど大した数でもない(7つ)ので、全部アプリケーションにハードコードした。 これ…
スクリーンキャプチャやそれらを共有するツールはいろいろ出ては消えの状態で、どれを使うのがいいのかという話になると難しいかと思います。 スクリーンキャプチャを撮りたい状況には概ね3くらいあって 単純にファイルとして保存したい チームメンバーや友…
今年は参加者側として ISUCON5 に出てきました。チームは白金動物園。いつもの(@sora_h, @mirakui)メンツです。 何やってたかについては大体 sorahのエントリ に書いてあるので割愛。というか前頭葉破壊されて覚えてないです。 真剣な与太話 9:30 チームビル…
TL;DR https://anime-search.herokuapp.com/ 捗る 動機 各社の一覧ページ、わざわざ五十音順でページ分けされたりしていて厳しみがあるので、一括で検索するページが欲しかった。 あとインクリメンタルサーチしたい。 内容 現在はバンダイチャンネルと D ア…
2015-04-30 版。俺が使ってるあのサービスがねえぞどうなってんだという方はコメントでサービス名を書いていただけますと僕が金を払いに行きますのでよろしくお願いします。 TL;DR コスト及び物量重視なら d アニメストア。コメント見たかったらニコニコ。い…
今回の ISUCON 、みんなはどうだったかな?楽しかったかな?ベンチマーカーについての文句?いいよ、こいよ、俺がベンチマーカー実装者だ。 ということで、まずはお詫びを。今回、過去の ISUCON に比べて本当にトラブルが多くて申し訳なかったです。次の出題…
Docker のキャッシュは mtime ベースっぽい - 鳩舎 って話は前にしたんだけど、そんでじゃあどうするのっていう解決策がなかったので、 CI サーバー上で都度ソースをひっぱってくるような場合でも Docker のキャッシュを効かせるために、 git-set-mtime を作…
特定の極小数の一部 Ruby ユーザーの皆様お待たせしました。Ruby 2.1.0 以上でも uninclude が使えるようになりました。 新しくリリースされた uninclude v1.1.0 のテスト済み Ruby のバージョンは以下です。 ruby-head 2.1.3 2.1.0 2.0.0 1.9.3 1.9.2 1.8.7…
ruby の SSHKit というのがあって、まぁいろいろ端折ると on "10.0.0.1" do as :root do within "/tmp" do execute :echo "Hello > log" end end end みたいなのが書けて、『あー 10.0.0.1 に入って root に sudo して /tmp に cd して echo するんだなー』…
タイトルそのまんま。 Dockerfile ではすでに ADD したファイルの追加なんかはキャッシュされるのでスキップされる # Dockerfile FROM ubuntu ADD text text こんな感じの Dockerfile があったとして、これを2回ビルドすると、2回めの時には Step 1 : ADD te…
.code-body .line, .file-diff .file-diff-line { tab-size: 2; -moz-tab-size: 2; -o-tab-size: 2; } 何らかの方法で上記の CSS を読み込むと2タブになります。4タブがいい人は2を4にしましょう。 go fmt は基本的に問答無用でタブインデントにするので、こ…
https://github.com/rosylilly/pprocess ~/.pprocess.json に { "token": "application token", "user": "user token" } てな具合で設定を保存して、 $ go get github.com/rosylilly/pprocess $ pprocess -m "通知" とか送ると、 Pushover 経由で通知が飛ぶ…
Object Design Rough Talks というイベントを開催して、Points of View という内容で話ました。 いろんな意味で面白いイベントだったので、詳細なまとめはまたこんど。
config/initializers/json_with_oj.rb あたりに以下のコードを置く class Oj::Encoder def initialize(options) @options = options end def encode(value) ::Oj.dump(value, @options) end end ActiveSupport::JSON::Encoding.json_encoder = Oj::Encoder …
1人でよいコードを書くのは、3人でよいコードを書くことの3倍難しい。悪いコードを書くときに説得する人間が 1/3 でよいので、つまり自分に向かって『まぁいいじゃん今回は』と言えば事が済む。続けているといつの間にか引き返せないところまできていて、適…
引数、変数によってオブジェクトに適切な名前を与えるのはあたりまえのことです。 class Calc def plus(x, y) x + y end end calc = Calc.new calc.plus(1, 2) この場合、 #plus の中で 1 は x 、 2 は y と名前付けがされており、それぞれ加算式の左の項と…
思いつきの雑文 メソッドを『呼び出している』のは誰か、という疑問。これが最近僕の中で実にひっかかりを覚えるところなので。 とりあえずコード。 1) publisher.send 2) publishing.execute この2つの違いについてずっと考えている。なにが違うと言われる…
ポッポー package main import ( "github.com/go-sql-driver/mysql" ) type Pigeon struct { LastFlewAt mysql.NullTime `json:"last_flew_at"` } みたいなことしたいとき、普通に mysql drvicer 生で使ってるとこういうことは起こらないけど gorp とか使っ…
NOTE: 最下部に追記があります。 よく言われる話として、 DCI なんて実装が面倒な上に夢の実装の話をしており、現実解としては Service クラスを用いて実装すればシンプルな実装になるのだから、そういったものは必要ないのだ、というご意見への返答です。 …
単に CPU 時間を使い切るだけならすぐ出来る package main import ( "runtime" "time" ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) for i := runtime.NumCPU(); i > 0; i-- { go loop() } for { time.Sleep(1 * time.Second) } } func loop() { f…
Web アプリケーションのパフォーマンスにうるさいみなさんこんにちは。 Rails アプリのパフォーマンスプロファイリングだと、 rack-mini-profiler が有名で、それ以外だと New Relic とかを使って測定していくのが普通のようですが、物足りない部分があった…
自前で Error() string なメソッドを持った struct を定義した際、エラーコードなどを持たせていて、それを取り出したい。 package main import "log" type MyError struct { Message string } func (e *MyError) Error() string { return "MyError" } func …
以下の様なクラスがあるとき class Company < AR::Base has_many :employments has_many :engineers, through: :employments, source: :employee, source_type: 'Engineer' end # STI の基底クラス class Employee < AR::Base; end # STI class Engineer < E…
How to じゃなくて、何かの言語を学ぶ、もしくはあるパラダイムにチャレンジするとき、に僕がよく使うサンプルアプリケーションとして、ファイルアップローダというのがあり、それの仕様をまとめておこうと思い至っただけです。 ちょっと研修資料っぽい感じ…
ruby 標準の autoload は後々非推奨的なアレになりそうらしいので require 'active_support/dependencies/autoload' module Mod extend ActiveSupport::Autoload autoload :Foo # => require 'mod/foo' autoload :Bar, 'bar' # => require 'bar' autoload_un…
そういやまだ新しい経験だから覚えてるし、 golang を勉強していった過程を書いておく。 正しさとかは気にせず、動くものが出来るまでがむしゃらに。 Hello, world まで 特にひねりはない。 homebrew は便利だ。 $ brew install go $ cd ~ $ mkdir -p go/src…
grape-msgpack という gem を作った(github / rubygems)。 最近 golang ばっかり触ってるように見えるのは幻覚で、僕はずっと Rubyist だし Ruby は最高だしオープンクラスは地獄だ。 Grape では Formatter がいくつか選べるようになっていて、大体 JSON マ…
Go Conference 2013 Autumn で命短し恋せよ乙女というタイトルで Gondler の話をしてきました。 他にもたくさんおもしろい発表があって、個人的には Hatena で Go の REST サーバーを立てて運用している話とかおもしろかったです。 Golang in Production !!…