Macのcmd+qを封印する

Macではcmd+qでウィンドウを閉じることができるのだが、この機能を正直利用したことはない。逆にcmd+aとかcmd+wとかをおそうとして間違えて指があたってウィンドウが閉じるというデメリットしか受けていない。そのような中でとうとうVimやターミナルを閉じてしまい業務に支障が出たためこのショートカットを封印することにした。

スクリーンショット 2017-02-28 11.03.12.png

cmd+qを通知センターを開くに割り当てることで通知センターが反応してウィンドウが閉じることを防ぐことができた。

WordPressの http://gmpg.org/xfn/11 は削除して良い

WordPressのブログをSSL対応した所、エラーがあったのでたままたソースを確認したらhttp://から始まるURLが一件だけあり気になったので、クリックしてみたらセキュリティソフトから危険なページですと言われてドキッとしたので調べてみた所、WordPressのテーマにはよくあるものだけど不要なもののようです。

<link rel="profile" href="http://gmpg.org/xfn/11">

WordPress のテーマなどでは<link rel="profile" href="http://gmpg.org/xfn/11" />のようなコードがみられます。 これは XFN フォーマットを取り入れたページであることを伝えるメタデータです。 XFN(XHTML Friends Network) とはマイクロフォーマットの 1 つで、他者(他のサイト)との関係を示すものですが、現状では役に立つようなシチュエーションが存在しません。 したがって積極的に削除するべきです。

参考
http://xn--lcki7of.jp/848/

ファイルをターミナルからVimで開く時にウィンドウを選択して開く

今回はMacVimのパターンで説明します。ファイルを開く時--remoteコマンドでリモートのVimウィンドウで開くことができます。この時--servernameで開く先を指定することができます。ここに開きたいウィンドウ名を指定することで開く先を指定することができます。

仕事用のVimウィンドウで開く場合はこのようにofficeと指定します。

/Applications/MacVim.app/Contents/MacOS/Vim -g --servername office --remote-tab-silent [filename]

自宅用のVimウィンドウで開く場合はこのようにhomeと指定します。

/Applications/MacVim.app/Contents/MacOS/Vim -g --servername home --remote-tab-silent [filename]

以上のコマンドを.zshrcにエイリアスを貼るか、パスの通った場所にシェルスクリプトとして配置することでvim-officeとかvim-homeのように簡単なコマンドでファイルを開く事ができます。

参考
http://vim-jp.org/vimdoc-ja/remote.html

HBaseのカラムファミリから複数バージョンのQualifierのCellを取得する

昔はgetColumnを使ってKeyValue型を受け取ることで特定のQualifierのCellをVersions別に取得していたが、これらは非推奨となりgetColumnCellsを使ってCellそのものを処理する流れでQualifierのデータをVersions別に取得する必要がある。

Get get = new Get(rowKey)
.setFilter(filter)
.setTimeRange(min, max)
.setMaxVersions(3);
List<Cell> cells = hBaseTable.get(get).getColumnCells("ad".getBytes(), Bytes.toBytes("cvtime"));
for (Cell cell : cells) {
System.out.println(CellUtil.cloneValue(cell));
}

setMaxVersionsは指定するとResult型をループさせて複数のQualifierが得られる気がするが列ファミリーは1つずつが独立しているため複数セットで運用している場合は個別に取得する必要があり多少運用しづらいのが難点ですな。

参考

Dockerビルド時のIPv4 forwarding is disabledエラーの解決方法

yum updateしてからDockerのビルドを行ったら下記のエラーが発生した。

Step 2 : RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
---> [Warning] IPv4 forwarding is disabled. Networking will not work.
---> Running in 75b6c1a5516f
curl: (6) Could not resolve host: dl.fedoraproject.org; Unknown error
error: skipping https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm - transfer failed
Retrieving https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
The command '/bin/sh -c rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm' returned a non-zero code: 

下記のコマンドを実行することで解決した

sudo sysctl -w net.ipv4.ip_forward=1

参考

Symfony3で404エラーを発生させる

専用のExceptionをthrowすれば良いようだ。

class TagController extends Controller
{
/**
* @Route("/tags/{id}")
* @ParamConverter("Tag")
*/
public function indexAction(\AppBundle\Entity\Tag $tag)
{
if (!$tag->isActive()) {
throw $this->createNotFoundException('Tagがありません');
}
return $this->render('tags/index.twig', [
'title' => $tag->getName(),
'tag' => $tag
]);
}
}

phpMyAdminをDockerで立ち上げる

公式イメージのphpMyAdminを立ち上げるには以下のようにする。

docker run --name phpmyadmin -d -e PMA_HOST=dev.vm.local -p 8080:80 phpmyadmin/phpmyadmin

ログイン時に言語設定がうまくできずエラーが発生することがある、すぎに解決したい場合は言語をEnglishにしてログインするとうまくいく。