最近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メディア:…

便利 zsh 設定 N 連発

zsh

シェルなどの設定の知見が意外と広まってないよね、ということで話題になったので書きました。 :q で exit https://github.com/aereal/dotfiles/blob/1be211fcda027f75b0624eab2c44a288f8e0691e/.zshrc#L174Vim 使っていると :q したくなるので alias をつく…

日本の伝統色を使ったカラースキーム: Japanesque

Vim

GitHub - aereal/vim-colors-japanesque: The colorscheme featuring Japanese traditional colors. 日本の伝統色を使ったカラースキーム: Japanesque GUI 版の Vim 向けカラースキーム・Japanesque を作った。iTerm 2 で使えるカラースキーム、Japanesque …

PageSpeed Insights のスコアを Mackerel に投稿するアプリケーションをボタン1つで Heroku にデプロイできる状態にした

GitHub - aereal/psi-metrics: Post PageSpeed Insights score to Mackerel PageSpeed Insights とは PageSpeed Insightsユーザが体感するページの読み込み速度を100点満点で評価するサービス。画像を圧縮せよとか HTTP キャッシュを使えとか、とにかく Web …

Capistrano 2で複数のログを tail するときに見やすくする

cap log するとデプロイ時に観察したいログがとにかく tail できるということになっている。しかしまとめて流れてくるので、どのホストからなのかなどわからなくて少し困る。ので、出力にホスト名とファイル名を含めるようにした。出力の例: [xxx.xxx.xxx.xx…

近況

フォローしている人がスターをつけたリポジトリを詳細に見たい https://github.com/ や https://github.com/USER.private.atom?token=XXX で見れるタイムラインを見て他の人が star をつけたリポジトリをチェックするといったことをしているとき、どういうリ…

Ruby でメソッド内で定数を定義する方法

Ruby ではメソッド内で定数を定義することは通常できない。 例: def k K = 1 end # /Users/aereal/Dropbox/sketches/const.rb:2: dynamic constant assignment # K = 1 # ^ ちなみに dynamic constant assignment は「メソッドの定義内で定数を定義できない…

2015 → 2016

2015 2015-01-01から1年間の記事一覧 - Sexually Knowing 「安全にソフトウェアをつくる」ことが大きな関心であり、そのために CI (Jenkins) をよりディープに使おうとしたり、Ansible や Homebrew を活用していわゆる Configuration Management を進めた。 …

CI で実行するスクリプトをリポジトリに含めるときに古いブランチでも実行できるようにする

Git

CI で実行すべき処理をシェルスクリプトなどにしてリポジトリに含めておく、というのはまっとうな管理というかんじで望ましい。とはいえ、新しく CI のジョブを追加するなどして新しいスクリプトをリポジトリに追加した場合、追加するコミットが含まれていな…

iTerm を全画面で表示するのをやめて画面の左半分に表示するようにした

Cmd-Return で全画面にできるのでそのようにしていたけれども、実際のところターミナルが全画面で表示できていて嬉しいことってあまりなかったので左半分に出すようにした。 上半分ではなく左半分にしているのは、ターミナルで見たい情報は幅よりも高さがあ…