fchiba memo

仕様の曖昧さについて

仕様は http://editorconfig.org/#file-format-details だが、いくつか書かれていない暗黙のルールがある。
・セクションに "/" が含まれていない場合、先頭に "**/"がついているとみなす。
 (これがないと[*.js]と書いた場合にサブディレクトリ内のファイルにマッチしない)
・同じファイル内で複数のセクションに該当する場合はあとから設定された値で上書きされる

他にもある気がするが、何が正しいかはコアライブラリの実装を見るしかない。コアライブラリは各言語ごとに用意されているが、言語ごとに微妙に動作が違ったりする(固い仕様がないので当然といえば当然)。どうもPyhton版かC版を正として移植されているような雰囲気。上記のルールはPython版の動作をもとにしている。


独断と偏見のコマンドラインツール選び


普通に使うぶんには、エディタのプラグインを使えばいいのだが、既存プロジェクトの導入時に一括でチェック・修正したりとかCIで使う場合には、コマンドラインツールを使いたい。他にも、既存のファイルからルールを自動生成できると便利。

コマンドラインツールですぐに見つかるのは次の3つ。
https://github.com/jedmao/eclint
https://github.com/treyhunner/editorconfig-tools
https://github.com/slang800/editorconfig-tools

eclintはインデント判定でブロックコメントやヒアドキュメントを認識してくれない(&作者は対応を拒否している)ので使いづらい。言語ごとに手を入れたらキリがないのは分かるが、それでは使い物にならないのでパス。
treyhunner/editorconfig-toolsは、生成機能がない。READMEに"--generate"とかあるけど、あれはただの構想で、欠片すら実装されてない。
slang800/editorconfig-toolsはそこそこ使える。インデントはdetect-indentで判定。100%正確ではなさそうだが、実用的な範囲内では使えそう。

ということで、slang800/editorconfig-toolsを使う予定。

設定の削除

バッチで一括処理する際に、プロジェクト外から来たファイルには手を加えたくない事が多い。
対象ファイルの列挙時に除外する方法と、.editorconfigで除外する方法があるが、後者で行う場合は設定値にunsetを使うとよい。(昔は、"null"などのでたらめな値をいれると、パースできずに処理不能になることを利用して無効化していた模様。今はオフィシャルにunsetが使えることになっている)

が、unsetはslang800/editorconfig-toolsで対応されていない…
→修正するPR送った。

そこそこ複雑なコードを読む場合に、紙に印刷して読むことがあります。

例えば、1ファイル数千行ぐらいのあまり構造化されてないpythonスクリプトの処理内容を把握したいときなど。

紙に印刷するメリットは、
・同時に何枚も見ることができる
・現在位置がわかりやすい
・メモを書き込むことができる(文字だけでなく矢印なども)
などがあります。

紙は検索ができないので、PCを併用する必要があります。そのため、行番号の印刷は必須です。


Macで印刷する場合、enscriptとpstopdfを使っています。日本語未対応らしいのですが、幸いにも必要になったことはありません。

enscript -j -r -2 --highlight=python --line-numbers -o - emscripten.py |pstopdf -i -o emscripten.py.pdf 

これで、A4用紙1ページに120行ぐらい印刷できます。

10枚程度なら家庭用プリンタで、それ以上ならコンビニかKinko'sへゴー。紙代ケチって両面印刷にするのは、閲覧性が下がるのでおすすめできません。代わりに字を小さくしましょう。

必要なことが大体把握できたら本棚にでもしまっておいて、適当な時間がたったら捨てます。

前提
  • スキー初めてor数回目
  • 寒いの嫌い
  • スキー場は本州でそこまで寒くない
  • スキーウェアはレンタル
  • まだ、そんなに金をかけたくない

基本方針
インナーだけはしっかりしたものを買いましょう。

防寒の基本はレイヤリング(重ね着)です。アウターはレンタルするので、ミッドレイヤーとインナーを自分で準備する必要があります。ミッドレイヤーは普段着を流用してもなんとかなりますが、インナーは発汗対策の施されたスポーツ用(できればスキー用とかアウトドア用)を買ったほうがよいです。特に、初心者は無駄に力が入っていたり転倒から起き上がる頻度が高かったりと、発汗量が多くなりがちだからです。

手持ちのものを使う場合は、なるべく化繊かウールだけのものを選びます。綿は水分を保持しやすいため、汗をかくとすぐに寒くなります。ただし、化繊でもヒートテックなどの一般の衣料品店で売っている吸湿発熱素材は避けたほうがよいです。あれは、汗を外に逃す効果がほとんどないので、運動するとあっというまにビシャビシャになります(あくまで日常生活レベルの発汗に対応するもの)。また、世の中にはジーンズで滑ってた人もいるようですが、綿であるとかそれ以前に運動しにくいのでさすがに論外でしょうw

スポーツ用のインナーは普通のものと比べると値段が張りますがそれ相応の効果はあります。また、寒い地方への旅行など、スキー以外でも使えるので、のちのち無駄になりにくいかと思います。

買う場所
  • 総合スポーツ店(例:ゼビオ、スポーツデポなど)のスキー用品売場
  • スキー用品店(例:アルペン、ヴィクトリアなど)
インナーだけならならモンベルなどのアウトドア用品店でもよいかと。売り場のベテラン店員っぽい人に相談するのがベストです。

部位別買うものリスト
(凡例:◎必須 ◯あると快適 △レンタル)

頭:◎毛糸帽子+◯フリースネックウォーマ+△(メガネ族は◯)ゴーグル
帽子は寒さ対策&転倒時の衝撃吸収のためです。本当は、ヘルメットを買ったほうがよいのですが、さすがに初めての人に買わせるには躊躇う金額なので。レンタルに付いてるところもあるのですが、無い場合もあってその場合現地で買う羽目になるので、念のため買っておきましょう。どちらも安物でよいです。
ネックウォーマは首筋からの冷気の侵入を防ぐためにあったほうが良いです。フェイスマスク兼用のものだと晴れている時にも支えて便利です。
メガネ無いと生きていけない人は、メガネ対応のゴーグルを買っておくことをお勧めします。メガネinゴーグルは曇りやすいのですが、レンタルで借りられるものは大抵安物なので、それに拍車がかかります。買う場合はゴーグルのレンズが2重になっているものにしましょう。もしくは、この際コンタクトにするという手もあります(自分はスキーのときのみワンデイレンズ使用)。

上半身:◎スキーorアウトドア用長袖シャツ+◎ユニクロフリース+△スキージャケット
前述のとおり、シャツは汗を逃す作用のあるものにしましょう。具体的にどれがいいかは、商品の説明書きを読むか、店員に聞くべし。枚数は、日数分あるとよいのですが、2枚を手洗いして交互に着ることもできます(疲れると洗濯する気力はなくなりますが…)。ミッドレイヤーはユニクロフリースや厚手のセーターなどで十分です。

下半身:◎タイツorジャージ+△スキーズボン
特に寒い場所でない限り、厚手のタイツを履けばミッドレイヤーは不要です。こちらは特にスキー用と銘打ってなくてもよい気がします。ただし、素材には注意して化繊orウールだけのものを選びましょう。また、ジャージなどがあればそれでもよいです(綿のルームウェアみたいなのは駄目)。こちらも日数分用意するか、2枚を洗濯して交互に使いましょう。

足:◎スキー用ロングソックス+△スキーブーツ
ソックスはスキー用の厚手のロングソックスを買いましょう。足先は予想以上に汗をかくし、場合によっては雪が侵入して濡れることもあるので、乾きやすいスポーツ用(スキー用)を買ったほうがよいです。厚さが変わるとスキーブーツのフィット感が変わってしまうため、なるべく同じブランドのものをまとめて購入するのがよいです。これも日数分を推奨します。

手:◯インナーグローブ+△グローブ
グローブはレンタルで付いてきます。冷え性や汗っかきの人は、インナーグローブがあるとよいです。スマートフォン対応だったりするとさらに便利です(待ち合わせなどで意外に操作する機会は多い)。 

その他:◯ チケットホルダー
リフト券を入れるホルダーです。大抵は現地調達できるのですが、稀に売ってないこともあるので、事前にあるとよいです。

このページのトップヘ