2014-01-01から1年間の記事一覧

Handlebars テンプレートをコンパイルした結果をファイルに出力する gulp タスク

aereal/gulp-handlebars-playground · GitHubHTML を出力するためのタスクを用意してみた。 gulp gulp-data gulp-compile-handlebars gulp-rename ……を使った。 gulp-data stream に data を追加できる。gulp-compile-handlebars などのようにパラメータを受…

Ansible の Variables の名前付けとデフォルト値の上書き

role で使う変数の名前が衝突しないよう配慮すると、素朴に辞書を定義して名前空間を導入したいと考えると思う: --- # roles/mackerel-agent/defaults/main.yml mackerel_agent: pid_file: '...' id: '...' ところが Ansible の Variables は辞書の deep mer…

テストの妥当性

ソフトウェア開発におけるテストは仕様の表現のひとつという風にも扱われるなど、重要な役割を担う一方で、テスト自体の妥当性の検証や保証は少なくて、こういう不安定な土台の上でいろいろやっていいのか、という気がする。レビューする時には、まずテスト…

Module が要求する実装を宣言して、実際に要求を満たしているか検証する

タイトルにあることを Ruby でやる実装を書いた:aereal/module-requirement aereal/module-requirement · GitHubSwift / Objective-C の protocol は具象クラスがメソッドを実装していることを要求できるので、Ruby でも似たようなことをやってみる、という…

Pow で静的にファイルのみをホストしてほしい

public/ ディレクトリがある場合 cd my_repo ln -sfv $PWD/public ~/.pow/my_repo public/ ディレクトリが無い場合 (ディレクトリ直下を ServerRoot にしたい) mkdir -p ~/.pow/my_repo ln -sfv $PWD ~/.pow/my_repo/public 結論 ServerRoot が ~/.pow/$vhos…

AquaSKK 4.2.1 をインストールする Homebrew Cask を書いた

以前に書いた AquaSKK をインストールする Cask を書いた - Sexual Knowing の続き。 Homebrew Cask で AquaSKK をインストールするには brew tap aereal/homebrew-aereal_casks brew install aquaskk Cask DSL 1.0 をサポート homebrew-cask/cask_language_…

テンプレートエンジン Night (#tenight) で「テンプレートの静的解析とリファクタリング」について発表した

テンプレートエンジンNight というイベントで Text::Xslate を使ってテンプレートの静的解析とリファクタリングを行った知見について発表した。 テンプレートエンジンを使ってこういうことができる、というような内容から、テンプレートエンジン作った・作っ…

Mackerel で QNAP も監視したいのでする

Go

最近、MacBook の SSD の空き容量がいつの間にか無くなっていて、スワップを作れなくなった結果、フリーズするということがあって反省したのでちゃんと管理しようという気持ちになった。 ひとまず家にある中で壊れたりトラブルが起きると一番困るのは QNAP …

Shipped Text-Xslate-AST-Walker @ 0.01

Text::Xslate::AST::Walker - Filter Nodes in the AST made by Text::Xslate - metacpan.org ae real / Text-Xslate-AST-Walker-0.01 - search.cpan.org これはなに? Text::Xslate::Parser が返す AST を文字通り「歩きまわる」ためのモジュールです。0.01…

HTML::Selector::XPath @ 0.17 で normalize-space() するようになった

HTML::Selector::XPath@0.16 は CSS における class セレクタと等価な XPath を出力しない - Sexual Knowing HTML::Selector::XPath@0.16 は CSS における class セレクタと等価な XPath を出力しない - Sexual KnowingNormalize space characters of the cl…

HTML::Selector::XPath@0.16 は CSS における class セレクタと等価な XPath を出力しない

再現コード class_with_lf.t class 属性の値における「空白文字」 class 属性の値は: The attribute, if specified, must have a value that is a set of space-separated tokens representing the various classes that the element belongs to. HTML Stand…

YAPC::Asia Tokyo 2014,プログラマブル Mac OS X

Mac

プログラマブル Mac OS X - YAPC::Asia Tokyo 2014「プログラマブル Mac OS X」というタイトルで YAPC::Asia Tokyo 2014 のトークに応募した。ひとつの仕事をうまくやるプログラムの組み合わせでより大きな仕事をこなす、という UNIX 的な考え方は Mac OS X …

npm でモジュールのバージョンを固定する

A. npm shrinkwrapnpm shrinkwrap を実行すると package.json に列挙されている依存を読みとり、実際にインストールされるべきモジュールのバージョンが列挙された npm-shrinkwrap.json というファイルが作られる。npm install はこのファイルが存在すればこ…

aws-cli とファイルのパス

aws route53 change-resource-record-sets の --change-batch 引数の値にファイルパスを渡すには file スキームの URI を渡す必要がある。 aws route53 change-resource-record-sets --hosted-zone-id /hostedzone/XXXX --change-batch file://${PWD}/batch.…

work tree の外から git pull する

Git

バッチスクリプトなどで work tree の外から git pull を行いたい、ということはままあるシチュエーションであると思います。git コマンドは --git-dir オプションでコマンドで操作する .git ディレクトリを指定できるので、これを指定すれば済むと思うかも…

Kyoto.なんかで“Introduce browserify”という発表をした

Kyoto.なんかという Kyoto.js の潮流を汲んだような汲んでいないような、勉強会のようななんなのかよくわからないイベントで発表した。browserify という Common JS Modules/1.0 などに互換のあるモジュールを、Common JS Modules/1.0 などモジュール機構に…

anyenv-exec を作った

anyenv のプラグイン anyenv-exec を作った。 使い方 たとえばインストールされている *env のバージョンを出力する例: anyenv exec --version # plenv 2.1.1-9-g26dbef7 # pyenv 0.4.0-20140404-10-g601ac4b # rbenv 0.4.0-97-gfe0b243 rehash する例: anye…

chrome.contextMenus.create() に parentId とコンテキストを指定するプロパティは同時に指定できない?

chrome.contextMenus.create(), に parentId と contexts, targetUrlPatterns, documentUrlPatterns などのコンテキストメニューのコンテキストを制限するプロパティを同時に指定できないのかな— ♨️ (@aereal) April 13, 2014 contexts や documentUrlPatter…

Vim で現在カーソルがあるテストメソッドを実行する

Perl には Test::Class という JUnit 風にテストを書けるモジュールがある。すなわち: テスト用のクラスを定義し アサーションをインスタンスメソッドとして括り出す ことができる。Test::Class はテスト実行時に環境変数 TEST_METHOD に与えられた値で実行…

OS X でプロセスの環境変数を眺める

Mac

Linux では procfs がマウントされているので strings /proc/PID/environ と実行すると出力される。OS X では procfs はない。ps(1) に -E オプションを渡すとプロセスの環境変数を出力する。参考: osx - OS X - Determine the enviroment for a given PID? …

rbenv など *env でどの設定 (global, local, shell) を参照しているか知る

zsh

rbenv *1 は rbenv version-origin というサブコマンドがあり、それは「rbenv がバージョンを決定するのに使われた設定」を出力する。出力は次の3つのうちのいずれかとなる。すなわち: global の設定 $HOME/.rbenv/version ディレクトリごとの設定 (local) $…

ログインシェルに fish を指定しているときに Vim の system 関数を実行すると E484 が発生する

解決 set shell=/bin/sh する。あるいは POSIX 互換のシェルを shell オプションに設定する。 原因 Vim の system 関数はシェルに文字列を渡してコマンドを実行しようとするが、実行するシェルが POSIX 互換であることを期待している。 参考 Answer : Bug#60…

Homebrew で入れた Pow が起動しなくなる問題の解決

Mac

brew install pow したあと brew info pow に書かれている以下の手順でインストールした Pow が突然起動しなくなった。 sudo pow --install-system pow --install-local 原因 ~/Library/LaunchAgents/cx.pow.powd.plist にインストールされるプロパティ・リ…

Go-lang で書かれた Fast GitHub command line client: gh を試している

jingweno/gh · GitHubGo で書かれた hub の port のひとつ、と表現するのが簡潔でわかりやすい。インストールの方法はいろいろある。拡張・追加しているサブコマンドは hub のそれとあまり変わらない。hub のおよそ2倍ほど速いので、alias git=gh してもそれ…

かばん情報

鞄情報 - ✘╹◡╹✘ かばん情報 - 鈴木うどんの横須賀おもしろ生活 いちがつじゅうさんにち - diary.sorah 情報が集まっているので僕も提供します。 通勤、散歩 master-piece | MSPC PRODUCT : Effect No.12341これのベージュを使っている。通勤 (徒歩20分) やカ…

AquaSKK をインストールする Cask を書いた

homebrew-cask homebrew-cask という OS X の GUI アプリケーション (*.app のこと) も Homebrew のような DSL で管理できたらいいじゃん、という発想に基づいたプロジェクトがある。homebrew-cask は tap という Homebrew に formula を追加する仕組みの上…

OS X の Network Locations を使ってプロキシの設定を分ける

Mac

SOCKS プロキシ 社内サーバなどファイアウォールの内側にあるサーバに SSH するために SOCKS プロキシを経由する必要がある。また ProxyChains のようなソフトウェアを使って SOCKS プロキシ下でも名前解決ができるようにしたい。(参考: (ProxyChainsの最新…

はてなブックマーク REST API のクライアントライブラリ in Ruby

aereal/hatena-bookmark-restful · GitHubJSON over HTTP な API であるのではたして「クライアントライブラリ」が必要なのか怪しい気もするけれど、手軽に API を利用しようと思ったときに生の Hash じゃなくてちゃんとオブジェクトが返ってくると嬉しいこ…

2013→2014

2013年のこのブログではなんらかのトピック (たいていはソフトウェア技術) に関してなんらかの成果を生み出したら書く、というようなルールで概ね運用されていた。自分の中で「成果」=「結果」に対するハードルが高くなりすぎた結果、なにか書こうと思っても…

ソフトウェア・テストと Web サービスの寿命

終身雇用制度が有用に活用されるとソフトウェア開発がまた変わるんじゃないかなー、といった雑な想像をしている— 一級河川 (@aereal) 2014, 1月 3 チームを離れる者 (離職者、異動) がいないと期待していいのなら、ソフトウェア・テストの書き方も変わると思…