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

連打を支える技術

この記事は、はてなデベロッパーアドベントカレンダーの19日目の記事です。 昨日は、id:t_kyt による あれから一年、あの TypeScript プロジェクトは今 - 多幸感 でした。 すばやく、かつ堅牢にアプリケーションをつくる ボタンを連打したくなる性と向き合う…

JSON::TypeInference 1.0 と JSON::Schema::Generator (trial) をリリースした

JSON::TypeInference 1.0 metacpan.orgだいたい欲しいものは実装したので覚悟を決めるという意味での 1.0 リリース。 これはなにか? Perl の値 (スカラ値、ハッシュリファレンス、配列リファレンスなど) が JSON のどの型であるかを推論するモジュール。 Per…

JSON::TypeInference 0.04 で null かもしれない値を Maybe 型として推論するようにした

metacpan.orggithub.comNull と値型のただ2つからなる Union 型を Maybe という特別な型として推論するようにした。ちょっと便利。Maybe だったら {"type" : ["null", "string"]} のように出力するようにすると、より厳密な JSON スキーマを生成することがで…

最近の CPAN モジュールを作るときの構成

github.comMinilla を使っている。minil new してからちょっと手を入れる。 .mailmap <aereal@aereal.org> <aereal@users.noreply.github.com>GitHub の Web インターフェースで Merge Pull Request ボタンを押すとコミットの AUTHOR_EMAIL がこれになる。たぶんメールアドレスを非公開にしているとこれになるよう</aereal@users.noreply.github.com></aereal@aereal.org>…

Perl の値から JSON の型を推論するモジュールを書いた

github.com metacpan.org これは何か Perl の値 (スカラ値、ハッシュリファレンス、配列リファレンスなど) が JSON のどの型であるかを推論するモジュール。Perl の 1 という値は JSON の number である、Perl の "a" は JSON の string である、という風な…

Config::ENV で各環境で必ず定義すべきキーを定めておく

metacpan.orgちょうどいいデフォルト値が見当たらないので、このキーは各環境で適宜、定義せよ、という風にしたい。interface みたいなかんじ。 use strict; use warnings; use Test::More tests => 2; use Test::Fatal qw(exception); { package My::Config…

#yapcasia に参加した

トークしつつ、トークを聞いたりなどした。 1日目 いろいろ聞いたけど印象的だったトークについて。HTTP/2時代のウェブサイト設計 - YAPC::Asia Tokyo 2015yapcasia.orgkazuho さんの発表を初めて見た。声が高い。僕は大学を中退していてアカデミアどころか…

#yapcasia で『世界展開する大規模ウェブサービスのデプロイを支える技術』という発表をした

世界展開する大規模ウェブサービスのデプロイを支える技術 - YAPC::Asia Tokyo 2015世界展開する大規模ウェブサービスのデプロイを支える技術 - YAPC::Asia Tokyo 20152年ぶり2度目の YAPC::Asia Tokyo でタイトルにある通り発表をしてきました。資料は近日…

YAPC::Asia Tokyo 2015 のトークスケジュールを集めたカレンダーを作った

https://www.google.com/calendar/ical/037qm3orvt1bkf5g2lsi1br0bg%40group.calendar.google.com/public/basic.icsYAPC::Asia Tokyo 2015 も来週に控えて、どういうトークを見にいくか悩むこの頃なのでカレンダーをつくりました。Talks - YAPC::Asia Tokyo …

npm install -g gulp とかしない流儀

gulp とかを使っているプロジェクトの場合、ビルドツール類も devDependencies に含めてバージョンを固定したいという要求があると思う。ところが実行ファイルにパスを手軽に通したいという理由のみで npm install -g gulp などしてしまうとバージョンが固定…

#小学生のときにやってた悪夢っぽいこと選手権

スコアメーカーという楽譜入力ソフトがあってこれを買ってもらって遊びはじめたところ、MIDI というもので勝手にコンピュータに演奏させることができるとわかって大喜びしはじめた。ひたすら入力して演奏させる。アーティキュレーションが思ったかんじではな…