May 22, 2011

HomebrewでMySQL 5.5.10をインストール

HomebrewMySQLをインストール。

brew install mysql

でインストール。この後にすべきことはすべてターミナルに表示されています。ただ、ちゃんと見ないで適当に進めていたら、動きませんでした。ターミナルは管理者権限で実行しなければならないものもあります。(コマンドの前に sudo を付ける)

unset TMPDIR
mysql_install_db --verbose --user=satomacoto --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
satomacotoはオーナー権限のある自分のユーザ名を。--verboseで色々出力されているはずなので、この時点でエラーが起きていないか要確認

(追記)
5.5.14にするときはwhoamiを使った
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
(追記終わり)

mysql.server start
で起動。なお、停止は mysql.server stop

/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
でパスワードなど設定。

mysql -uroot -p
でrootで接続。

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mysql/5.5.10/com.mysql.mysqld.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
でOS起動時にMySQL起動。なお、このままだと、mysql.server stop で停止しようとしてもすぐに再起動されてしまうので、停止するときは launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist する。phpAdminがうまく動かないものだから、Property List EditorでWorkingDirectoryとUserNameの項目は削除してしまった。

ソケットはデフォルトで /tmp/mysql.sock 。以下で確認。
mysql_config --socket

うまく行かなかったので何度かやり直した。
削除は、
brew uninstall mysql
sudo rm -rf /usr/local/var/mysql

MySQL 5.5ではデフォルトでutf-8設定になっている。

May 5, 2011

Googleの検索結果に言語を変更するためのリンクを追加するChrome Extension

Googleの検索設定では、たとえば表示言語を日本語に設定していると、英語だけの検索結果がほしいとき、優先する検索言語を英語“のみ”にすることが出来ません。たぶん。そこで、検索言語を変更するためのリンクをGoogleのサイドバーに追加するChromeの拡張機能を作ってみました。

インストールは以下のページから。
Language Links for Google - Chrome Web Store


(以前にも、Greasemonkeyで似たようなものを幾つか作りました。今は動くかわかりません。)
使い方。

インストールしてGoogleで検索するとアドレスバーにアイコンが表示されます。これをクリックするとオプションページに飛びます。


オプションページで追加する言語を選択し保存します。


サイドバーに選択した言語での検索結果へのリンクが追加されます。


リンクをクリックすると該当する言語で検索を行います。
(まだうまく動かない時もあります…。)


以下、開発メモ。

Instantへの対応

function addLink() {
...
}

document.addEventListener('DOMNodeInserted', addLink, false);
ページ要素が変化するたびにリンク先を変更。割と力技。もっと効率のよいやり方があるような。

Page actionの表示

background.html
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.method == "getLang") {
        sendResponse({lang: JSON.parse(localStorage.getItem("lang"))});
        chrome.pageAction.show(sender.tab.id);
    }
Page Actions - Google Chrome Extensions - Google CodeのExamplesから…

Content scriptでlocalstorageを使用

Chrome extension accessing localstorage in content script - Stack Overflow

複数言語への対応

国際化 Chrome Extensions API リファレンス

May 1, 2011

Googleの検索結果のイメージ


Googleの検索結果の"Google"の画像を保存すると…


こんなかんじ。