インストールがとても高速化されたcapistrano-strategy-jenkins_artifact 0.4.0をリリースした

GitHub - aereal/capistrano-strategy-jenkins_artifact: Capistrano 2 strategy that uses Jenkins' artifact as a distribution provider.Release v0.4.0 · aereal/capistrano-strategy-jenkins_artifact · GitHubcapistrano-strategy-jenkins_artifactと…

ISUCON7予選に秒速5000兆クエリというチームで参加した

ISUCON7 開催&日程決定! #isucon : ISUCON公式BlogISUCON7のオンライン予選にid:astjとid:tanishiking24の3人で秒速5000兆クエリというチームで出場した。最終スコアは9万ちょっとで、ベストスコアとほぼ同値だったので実力を出し切ったと思う。ISUCONに競…

週5日8時間労働は厳しい

しばらく体調が悪く、週末になるとへとへとになる状態が続いている。土日に休むとリフレッシュできて月曜日には元気一杯になるので、老衰による疲れやすさがあるにせよ、体力の最大値がそんなに大きく目減りしていることでもなさそうなので、今週は午後から…

スマートフォンからSlackを消した

休んでいる時にたまに見たりしてしまい無闇に疲れていたので消してしばらく経つ。緊急の連絡はDMでやりましょうって合意できているし、DMはメールでも通知が来るようにしているので、ひとまず困らないだろうと思っているけど、実際どうかはわからない。あと…

『Scalaで自動作曲の練習』を社内勉強会で話した

speakerdeck.comだいぶ大仰なタイトルでありますが掲題の内容を社内勉強会で話しました。音楽を作る古典的な方法論 (機能和声) を取り上げ、その中でも和声 (harmony) をコアドメインと見据え、実際に和音進行の規則などを実装したという内容です。和声と周…

リモート勤務メモ

社内グループに書いていたメモをせっかくなので放流します。 前提 昼食はオフィスで食べられる 基本はオフィス勤務だが、相談の上リモート勤務も可能 自宅からオフィスには徒歩で20分、自転車で10分 京都在住 北海道の実家で2週間程度のリモート勤務を2回経…

#builderscon tokyo 2017で『Goで実装する軽量マークアップ言語パーサー』というトークをしてきた

Goで実装する軽量マークアップ言語パーサー - builderscon tokyo 2017buildersconは初参加。ぼちぼちパーサーを書いていたのでいい機会だと思って応募し採択されてこの度初ビルコンで話してきた。 トークについて 60分枠でひとりで話すのは初めてで時間配分…

Content-Security-Policyやらsubresource integrityなどに関するメモ

最近、セキュリティに特に気をかけなければいけないサービスの開発をしていて調べた知見のメモ。 subresource integrity Subresource Integrity - Web security | MDNいわゆるチェックサムの仕組み。 integrity 属性に ${hashalgorithm}-${hashdigest} 形式…

広告に関する考え

※やまなし、いみなし、おちなしWeb広告は目にするとイラつく 街頭広告はそうでもない テレビCMはイラつくWEB広告は有限のリソースを浪費されているかんじがする ページと関係ないと→ネットワークリソースや表示領域が浪費された ページと関係あると→広告とそ…

最近Atomでコードを書く時間を増やしている

最近思うところあってAtomでコードを書く時間を増やしている。といっても普段書くPerlはこれまで通りVimで、趣味でTypeScriptを書く時にAtomを使うようにした。Vimの使い勝手に慣れ切ったつもりだけど、昨年一年間はIntelliJでScalaを書く時間が多かった。そ…

grpcを見たメモ

クライアント (ブラウザ) とサーバーがやりとりするためにgrpcを使えないかなと思ってサンプルコードを見たりちょっと触ったメモ。結論からいうと今回の用途には合わないので見送ったけど、後のために。 ブラウザでは使えない Can I use it in the browser?…

Scalaで書いたWebアプリケーションのレスポンスにデプロイされているGitコミットのSHA1を含める

WebアプリケーションのレスポンスヘッダにGitのsha1を含めておくと、デプロイに失敗していて古いバージョンだった (そのせいでおかしかった) ということに気がつきやすくなって多少便利。Perl (PSGI) だと、 `git rev-parse HEAD > VERSION` などしておいて …

筋トレティータイム

僕はコーヒーが苦手で、飲むと必ずお腹を壊すので避けるようにしている。その代わりではないけれど、気分転換したいときには紅茶を淹れて飲むことが多い。コーヒーと違って蒸らし時間があるので待ち時間がどうしても発生する。ティーバッグを淹れてそれを処…

デフォルトでHTTPレスポンスがキャッシュされるのはどんな場合か

HTTP APIのキャッシュ戦略を考えながら、ふとcache-controlなどを指定しなかったとき、デフォルトのキャッシュ戦略はどのように定義されているのか気になったので調べた。 Storing Responses in Caches RFC7234のStoring Responses in Cachesにレスポンスを…

nginx: 同じ configuration level で auth_basic off は指定できない

nginx の ngx_http_auth_basic_module を使って BASIC 認証をかけることができる。ドキュメントを読むと明示的に `auth_basic off` を指定することで BASIC 認証を切ることができそうだったので試したけど、うまくいかないケースがある。結論からいうと `aut…

生活における夢を集めるTrelloのボードを作った

プライベートで締切のあるタスクや、忘れてはいけないタスクは To Do 管理ツールでリマインドしている。それらのようなタスクは、誰かに依頼されるだとかして具体的なタスクとして直接インプットされる一方、日々の生活における夢はたとえば「石油を掘り当て…

YAPC::Kansai 2017 OSAKAに参加した

YAPC::Kansai 2017 OSAKA オーディエンスとして参加したので聞いたトークのメモなど。 Webアプリケーションのキャッシュ戦略とそのパターン (40min) speakerdeck.com 主に Web アプリケーションの世界におけるキャッシュの話。目新しい話題ではないけれど、…

Git であるディレクトリ以下に最近追加されたファイルを見る

git log \ --grep 'Revert' --invert-grep \ # revert コミットを除く --diff-filter=A \ # 新規追加のみ --format='' --name-only \ -- lib/Plack/Middleware lib/Plack/Middleware/ 以下に最近ファイルを新規追加したコミットの一覧: lib/Plack/Middleware…

Vue.js で分割払いの手数料をわかりやすく表示するページを作った

Card Paymentリポジトリ: playground/card-payment at gh-pages · aereal/playground · GitHub実質年率って意味わからないし計算がめんどうなので、金額と支払い回数を入れると総支払い額と月々の支払い額を表示するページを作った。普段自分が使うブラウザ…

Go の text/scanner で改行をトークナイズしたいときは

Go

Go の text/scanner はレキサを書く面倒な仕事の大半をいいかんじにしてくれて本質的なコードに取り組みやすくとても便利。 しかしはてな記法や Markdown のように、行全体が単なるテキストではなくいくつかのパターンからなる文法のレキサを書くときは、パ…

WANDRD Prvke Pack を買った - カメラバッグ考2017

PRVKE Pack というバックパックを買ったのでそれの紹介と、バックパックを選ぶにあたっていろいろ比較検討したメモについて書いておく。 新たなバッグに求めること 他に検討したバックパック WANDRD PRVKE Pack 気に入っているところ いまいちなところ 新た…

セットアップスクリプトでは必ず rbenv exec/rbenv which したほうがいい理由

簡単に言うと、rbenv の shims はシェルの `PATH` 探索とは独立して実行ファイルを探索しているため。以下、単に rbenv としているけれどクローンである plenv なども同様と考えてよい。 shims とは rbenv の README が詳しい。 Shims are lightweight execu…

Perl で memcached を使うときは Cache::Memcached::Fast::Safe がよさそう

memcached はコマンドインジェクションの機会が主に2つあって、1つはプロトコルで定められたキー長250文字を越えた場合と、キーに改行文字を含む場合。詳しくは: 第2回 memcachedのセキュリティと脆弱性:memcachedの活用と運用 実践編|gihyo.jp … 技術評論…

markdown-toc: Go で Markdown の見出しをパースして目次を作る

Go

github.com Go でテキスト処理をする練習のために書いてみた。 mdtoc - The markdown ToC generator - ウェブログ - Hail2u.net が元ネタで再実装というかんじ。 小難しいことをやるとどうしても泥臭くなるけど、普段書いている高水準なコードはこれくらい泥…

数字で振り返った2016年

社内 LT 大会で「数字で振り返る2016年」と題していろいろ個人にまつわる数字を集めたので整えたものを遅ればせながら旧年の振り返りとします。 Amazon で購入した金額 年 金額 前年比 2016 389,277 円 (124.54%) 2015 312,547 円 (136.27%) 2014 229,352 円…

はてなブログのデプロイを約6倍高速化したはなし

今年、稼働中のサービスであるはてなブログのデプロイ方法を新しい方式へ無事故で移行し、従来と比べて約6倍速くデプロイできるようになりました。 この記事では、安全にデプロイ方式を変えたプロセスを順を追って紹介します。 はてなブログと継続的デリバリ…

レビュー依頼はすばやく見る

お題「エンジニア立ち居振舞い」 ということでエンジニアの立ち居振舞いについて書きます。今いるチームでは毎日午後からレビュータイムということでレビュー依頼された Pull Request を見ています。最近、他のチームからレビュー依頼が消化されなくて頑張っ…

indirect object notationでハマらないためのno indirectプラグマ

普段、Perlを書くときは require_ok などでモジュールがコンパイル可能か・構文エラーがないかをテストするようにしているけれど、 require_ok では発見できない構文エラーを発見したのでそれの詳細と対策について。 実行時エラーになる構文エラー (?) とind…

PENTAXで残した記憶たち

小学生のころにレンズ付きフィルムを少し使ったくらいで、カメラといえばデジタルの自分にとって長らく写真は、親に言われるまま渋々と学校行事のスナップ写真を注文して買うだけのものだった。高校生のころ、京都や東京で淡々と、あるいは鬱屈と撮った写真…

Scala めく春

春なので4年前くらいにコップ本の初版を読んで以来の Scala を書きます。 Scalaスケーラブルプログラミング第2版作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版社/メーカー: インプレスジャパン発売日: 2011/09/27メディア:…