コードのスタイルを統一するなら EditorConfig

複数の作業環境を渡り歩いてソースコードを編集することって結構ありますよね?
こんな時、新しく編集した部分だけインデント文字(タブかスペース)やオフセットが変わってしまって、手作業でスタイルを合わせる破目になった経験があるでしょう。
テキストエディタが同じなら作業前に設定ファイルをコピーすればなんとかなりますが、違うエディタだと設定に使った時間の方がコーディング時間より長くなったという悲劇(笑い話?)も聞きます。

そんな時に頼りになる最終兵器 EditorConfig を発見しました。
共通の設定ファイルを用意しておけば、エディタにプラグインを入れるだけで同じスタイルで書けるようにしてくれます。
設定できる項目はインデント文字、オフセット幅、改行文字、文字コード等です。
ディレクトリを遡りながら設定ファイルを探すので、スタイルがプロジェクトごとに違っていても対応できます。

興味がわいた方は、分かりやすい説明がここにあるので参照してみてください。

参考

  • 公式サイトはここ
  • Emacs 用プラグインは Github

暗号化とか署名とかハッシュとか

まずは、ざっくりとした一覧です。

こうしてまとめてみると、思っていたよりも色々ありますね。

特に Windows に certutil コマンドがあって、エンコードとハッシュ計算ができるのには驚きました。

それと、暗号化ファイルを元に戻す時には(大抵の場合)同じソフトが必要になります。 渡す相手には何のソフトで暗号化したか伝えておきましょう。

phpMyAdminの環境保管領域が完全に設定されていない… エラー

おひさしぶりです。
不定期開催の今回のネタは phpMyAdmin on Ubuntu 14.04 LTS です。

とりあえずパッケージ入れてみたんですよ。
そしたら、ログインすると「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」と表示されたわけです。
コマンドラインから見てみると、環境保管領域に使われる phpmyadmin データベースが無かったので CREATE TABLE して…ダメ。
中身を入れればいいのかと /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz を流し込んでみても…ダメ。
権限の問題かと CREATE USER と GRANT を駆使しても…ダメ。

…結局、/etc/phpmyadmin/config.inc.php の中身で環境保管領域用のテーブル名を定義している部分で「_」(下線、アンダースコア)が一つ不足していたのが原因でした。
直接そのファイルを直すかわりに /etc/phpmyadmin/conf.d/env-storage.php を以下の内容で作りました。
ほとんどは /usr/share/doc/phpmyadmin/example/config.example.inc.php からコピーしたものです。


<?php // ここから

$i = 1; // インデックスを 1 に戻して(1-ベースなので最初が 1)
/* Storage database and tables */
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
?> // ここまで

それから、試行錯誤している時に /etc/phpmyadmin/config.inc.php を見ていたところ、設定ファイルは次のような順序で読み込まれるようでした。(後ろにある内容が優先)

  1. /var/lib/phpmyadmin/config.inc.php (phpMyAdmin/setup で変更されるファイル)
  2. /etc/phpmyadmin/config-db.php
  3. /etc/phpmyadmin/config.inc.php (今回の悪の元凶)
  4. /etc/phpmyadmin/conf.d/*.php (設定を追加した場所)

…以上で今回のレポートを終わります。

CraftLaunch から あふw を操作する件

いつも通りの不定期更新です。

今回は「CraftLaunch」(Ver3系列)からファイラーの「あふw」を操作するお話です。
つまるところ、CraftLaunch のパス補完を使って あふw の作業フォルダを一気に移動したいという事なんですが、無駄に苦労したのでメモしておくことにしました。

まずは結論ですが、config.py の window.launcher.command_list に以下の設定を追加すればいいです。
( u"afxr", command_ShellExecute(None, u"D:/tools/afxw64/afxwcmd.exe", u'&EXCD -r%param%', u"") ),
これで指定パスを右窓で開きます。

途中、紆余曲折(ソース見たり、print() でデバッグ表示したり…)がありました。
一番苦労したのは、「%param%」が処理の内部でダブルクォート(「”」です)を前後に追加していた点でした。

ええ、普通に「-r”%param%”」と書いていましたとも。
そこから苦難の旅路が始まったと言えます。
最終的にソースコードから command_ShellExecute の定義をコピーしてきて print() を埋め込んで表示を調べたら解決できました…

ちなみに、当初トライした command 定義のパラメータでゴニョゴニョする方法は挫折したままです。
どなたか「&EXCD -r”%1″」の「%1」部分に実行時引数を渡す方法をご存知でしたら、ぜひご教示いただきたいです。

オーケストレーションツールと愉快な仲間たち

間に何か挟まりましたが、連投です。というか、投稿するのは私だけなので、間隔の多少はあれど常に連投と言えなくもないです。
なんか寂れた掲示板とか購読者の居ないメルマガを彷彿とさせますね。

そんなブルー入った気分で始まる今回のネタは、前回に引き続きツールまとめです。

さて「オーケストレーション」が耳慣れない方もいらっしゃるでしょうから参考リンクを。
wikipedia オーケストレーション
wikipedia: プロビジョニング
…分かりにくいですね、はい。
個人的には「デプロイとかサーバ群の設定とかをまとめて自動化できるツール」みたいに考えています。(急募:ツッコミのできる有識者)
続きを読む

各言語のライブラリ管理ツールまとめ 他

雪降る朝にお届けしております。
最近、微妙に更新が多い感じですが、多分気のせいでしょう。

というわけで、なんとなく情報を集めたので紙からデータに起こしておこうかと思います。

■ ライブラリ管理ツール

出てくる言語の順序に他意はありません。思い付いた順です。経験と検索結果を焼いて砕いて粉にして、スプーン一杯すりきりにしてから載せております。

「コレが無いってどゆこと!」とか「こんなのはライブラリ管理ツールじゃねぇ」といったツッコミ大歓迎です。その熱い思いをコメント欄にぶつけて下さい。
続きを読む