Elasticaの戻り値をいい感じにラップするライブラリを書いた

PHPでElasticSearchをあつかうときの定番ライブラリにElasticaというものがある。
Symfonyで扱うときはこれをさらにラップしたFOSElasticaBundleを使うとよい。

Elasticaの難点として、クエリを投げて帰ってくる結果が連想配列で得られるのだが、これが無駄に深いネストがあったりして地味に使いづらい。

Continue reading

マルチブート覚書

Change the partition size

  1. Use gparted from external disk (e.g., Ubuntu Live USB disk) and adjust partition sizes as you want.
    • note: gparted has bugs around handling HFS, so it behaves as if it has hung while it is moving a partition that contains HFS. Be patient and let it work. It may take more than 2 hours.
  2. If Windows won’t boot after this, you have to either reconfigure legacy MBR or rebuild BCD.

Reconfigure MBR

  1. Use gptsync from external disk.

Rebuild BCD

  1. Use fdisk and mark Windows partition as active.
    • This activeness seems not exclusive; i.e. more than one partition can be active at the same time. I’m not sure this causes any problems.
  2. Boot from Windows installation disk.
  3. Proceed to advance startup options and launch Command Prompt.
  4. Run bootrec /RebuildBcd. (you have to type y once, in most cases)
  5. Reactivate appropriate partition if necessary.

Restore initial bootloader

  1. Copy first 446 bytes from another disk; e.g. sudo dd if=/dev/sdc of=/dev/sda bs=446 count=1

yum upgradeしようとすると依存解決がうまくいかない

こんな感じで

# yum --changelog upgrade
Loaded plugins: changelog, fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package php-pecl-mongo.x86_64 0:1.6.2-1.el7.remi.5.6 will be updated
---> Package php-pecl-mongo.x86_64 0:1.6.11-1.el7 will be an update
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-mongo-1.6.11-1.el7.x86_64
--> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-mongo-1.6.11-1.el7.x86_64
--> Finished Dependency Resolution
Error: Package: php-pecl-mongo-1.6.11-1.el7.x86_64 (epel)
           Requires: php(zend-abi) = 20100525-64
           Installed: php-common-5.6.5-1.el7.remi.x86_64 (@remi-php56)
               php(zend-abi) = 20131226-64
           Available: php-common-5.4.16-23.el7_0.3.x86_64 (base)
               php(zend-abi) = 20100525-64
           Available: php-common-5.4.16-36.el7_1.x86_64 (updates)
               php(zend-abi) = 20100525-64
Error: Package: php-pecl-mongo-1.6.11-1.el7.x86_64 (epel)
           Requires: php(api) = 20100412-64
           Installed: php-common-5.6.5-1.el7.remi.x86_64 (@remi-php56)
               php(api) = 20131106-64
           Available: php-common-5.4.16-23.el7_0.3.x86_64 (base)
               php(api) = 20100412-64
           Available: php-common-5.4.16-36.el7_1.x86_64 (updates)
               php(api) = 20100412-64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Continue reading

pdflatex で US Letter の文書を出力する(PDF のページサイズを設定する)

ACM にカメラレディ論文を提出するために要項を見ていたところ,ページのサイズは US Letter (8.5 in * 11 in) でなければならないと書かれていた.
慌てて自分の手元のファイルを pdfinfo で調べてみると

Page size:      595.276 x 841.89 pts (A4)

と言われたので,ページサイズを設定する方法を調べた.

Continue reading

リンクをクリックしたとき強制的にファイルとして保存されるのを防ぐChrome拡張

Redmineとかで添付ファイルのPDFを見たいときにDownloadsフォルダが汚されるのが気に食わなかったので.Chrome以外のブラウザでは試していない.

っていうのがあります.べんり.インストール方法は

  1. GitHubに慣れていなければ右の方にあるZIPでダウンロードボタンを探す
  2. chrome://extensions を開く
  3. 「開発者モード」にチェックボックスが入っていなければ入れる
  4. 「パッケージ化されていない拡張機能を読み込む…」
  5. ダウンロードして展開した manifest.json のあるディレクトリを指定する

ってな感じ.ほかに書くことがない.

Emacs の設定ファイル (.emacs) を綺麗にした

本当はこんなことしている場合じゃないんですけど!!,レシピ不明の秘伝のタレと化していた .emacs を前々からフルスクラッチで書き直したいと思っていて,ついにやってしまった.

一応今回のテーマとして El-Getinit-loader.el の導入が目新しいところ.
El-Get が思いの外空気を読んでくれないようだったので結構苦労した.
作者に言わせればパッケージの書き方が悪いということになるのだろうが…….
まだ手元の環境でしか試せていないので職場でも動かしてみて色々調整が必要だろう.

ついでに初めての試みとしてすべての設定を GitHub で公開してみることにする.
https://github.com/kissge/.emacs.d
有識者におかしなところを直してもらえたりしたらいいなぁ.
そういえば init.el 読書会が気になる今日このごろ.