アーカイブ - 5月, 2012



2012年 5月 30

MAMP

ApacheもMySQLも常時起動しておくのは微妙だし、でも使う時にはサクッと使いたい。そんな時にMAMPがあればローカルのApacheとMySQLを自動で起動してくれるから便利。phpMyAdminもついてるしね。
インストールメモはこっち

で、MAMPデフォルトのMySQLではなく、先日インストールしたmroonga対応のMySQLをMANPで使えるようにする。

MySQLのrootユーザーのパスワードを設定

MAMPのMySQLはデフォルトで ユーザーroot パスワードrootで設定されているので同じように設定する(方が簡単?)ローカルのMySQLだからroot:rootでもおkでしょう。

MacBook:~ clicktx$ sudo /opt/local/share/mysql55/support-files/mysql.server start
Password:
Starting MySQL
.. SUCCESS! 
MacBook:~ clicktx$ /opt/local/lib/mysql55/bin/mysql -uroot
mysql> SET PASSWORD FOR root@localhost=PASSWORD('root');
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye

で、MySQLサーバを停止。

MacBook:~ clicktx$ sudo /opt/local/share/mysql55/support-files/mysql.server stop
Shutting down MySQL
. SUCCESS! 

MAMPの起動スクリプトを編集

/Applications/MAMP/bin/ の中にあるMySQL起動スクリプトや停止スクリプト等を編集する。編集するファイルは

  • checkMysql.sh
  • repairMysql.sh
  • startMysql.sh
  • stop.sh

の4つ。オリジナルはコピーしておきましょう。中身はこんな感じ。

checkMysql.sh

# /bin/sh
#/Applications/MAMP/Library/bin/mysqlcheck --all-databases --check --check-upgrade -u root -proot --socket=/Applications/MAMP/tmp/mysql/mysql.sock
/opt/local/lib/mysql55/bin/mysqlcheck --all-databases --check --check-upgrade -u root -proot --socket=/Applications/MAMP/tmp/mysql/mysql.sock

repairMysql.sh

# /bin/sh
#/Applications/MAMP/Library/bin/mysqlcheck --all-databases --repair -u root -proot --socket=/Applications/MAMP/tmp/mysql/mysql.sock
/opt/local/lib/mysql55/bin/mysqlcheck --all-databases --repair -u root --socket=/Applications/MAMP/tmp/mysql/mysql.sock

startMysql.sh

# /bin/sh
#/Applications/MAMP/Library/bin/mysqld_safe --port=3306 --socket=/Applications/MAMP/tmp/mysql/mysql.sock --lower_case_table_names=0 --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --log-error=/Applications/MAMP/logs/mysql_error_log &
/opt/local/lib/mysql55/bin/mysqld_safe --port=3306 --socket=/Applications/MAMP/tmp/mysql/mysql.sock --lower_case_table_names=0 --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --log-error=/Applications/MAMP/logs/mysql_error_log &

stop.sh

# /bin/sh
#/Applications/MAMP/Library/bin/mysqladmin -u root -proot --socket=/Applications/MAMP/tmp/mysql/mysql.sock shutdown
/opt/local/lib/mysql55/bin/mysqladmin -u root --socket=/Applications/MAMP/tmp/mysql/mysql.sock shutdown

動作確認

普通にアイコンダブルクリックでMAMPを起動するだけ。
ブラウザが立ち上がって下のような画面が出ればおk。

MAMP起動画面

phpMyAdminタブからエンジンを見てみるとストレージエンジンにmroongaが見える。

mroongaストレージエンジンを確認

これでテーブル作ったりデータ入れたりがGUIで出来るね!


Filed under: MySQL,phpmyadmin,メモ,開発環境

Trackback Uri






2012年 5月 28

Gunma.web #9
ATEND:http://atnd.org/events/28335

今回で9回目を数えるGunma.Web。噂のグンマーの人が来るかも!って期待していたのですけれど、スケジュール合わずだったようで残念です。
会場は群馬社会福祉総合センターで行われました。忘れ物を取り行って会場に着く時間がギリギリだったり、そのうえ何階か分からなくて5階に行って、3階に行って結局2階だったりとバタバタしていたのは内緒です。
遅れたくせにクールに、そしてスマートな登場ができたのでバレていないと思います。
簡単ながらレポート&感想を。

LT/発表一覧

「”とてか”ではじめるなんとか活動」@vestige_ さん
とてか = 栃木テストの会議
とてか02開催の告知です。10月に開催。時間が合えば参加してみたいな。
テスト屋さんという存在を初めて知りました。
最近遅ればせながらようやくテスト書き始めたばかりなのでタイムリーな感じです。
他人にテストしてもらう、というのが大事なんだなと思いました。言葉では難しいですが、作った本人だとイレギュラーな動作のテスト(?)が難しい。一人開発者にとっては難問ですが。
テストの手法についてはまだまだ理解出来てないけれど、地道に学んでいきたいな。

「だから、作れる」とRO廃人は言った @parrot_studio さん
自分がほしいものを作る、基本なのだけれど忘れがち。
話題の技術は必須じゃないけれど、少し含めると良い。必要じゃないのに使う必要はないけれど、少しでも触れる事で今後につながるよ!
ROで動くAI面白そう!LUAで書いてゲーム上で動かせる。なんかすごい。
戦闘のためのツール群もあえて自動化しないで、規約を守って作っていたり、そういう精神が他のwebサービス作りにも影響するのかなと思いました。こういう姿勢を自分も見習っていかなくては。

「LDDによるWebアプリケーション開発」 @pinktx_jp さん
ぎりぎりアウトのLT。
あれだけ言ったのに…。知り合いだと思われると恥ずかしいので今度からは名前出さないでね、と。
レポートとか書きづらいので割合。ひとつ言えるのは…リビ道!
スライドはうp出来ないでしょうね…。

「WebエンジニアのためのCコンパイラ」 @tsurumau さん
ほとんど理解できていませんが、多言語で書いたコードをJavaScriptに変換するコンパイラ作っています!というお話?
その言語の機能が必要なのか、記法が必要なのかで実装が異なってくる。
LLをコンパイルするにはCから攻め落とそうという企み。
完成していなけれど出来たらgithubに上げるよ!
CoffeeScriptとか、そういうもの?という理解でいいのかしら?JavaScriptホットだなぁ。
それとVi(m)記事の執筆おめでとうございます!

「<video>で JS と CSS」 @kanayannet さん
HTML5のvideoタグの話。まだ仕様が決まっていないのではとのツッコミも。
個人的には動画埋め込み関連はタイムリーな話題でした。ブラウザによって動作が違うのでまだ使うには早いかも知れませんが、今後はお世話になるでしょう。
きっとIEが悪いのだろうから今後はHTML5全開にして、IE離れを起こさせればいいのかしら?
それと、スライドにブラウザベースのモノを使っていました。
reveal.js というらしいです。動画を埋め込んだり出来て便利そうだったので後で調べてみようかな。

いつも思うのは発表の後の質問コーナー。
これがなかなか難しい。アタマの回転が良くないから質問が出てこない。
良い質問ができるように精進していきたいな。
それと個人的にはイタリア雑談がなかったのが残念です><

スライドとかのリンクはこちらにアップされると思います。 Gunma.web #9 開催報告


Filed under: 勉強会

Trackback Uri






2012年 5月 9

※一番下の追記にありますが、Homebrewでインストールできるようになってます(2012/5/29リリース)

MySQL5.5のインストール

MANPでMySQL使えるんだけど、mroongaを(ローカルテストでも)使いたいので別にMySQLをインストールする。

ただしMySQLのバージョンは5.5をインストールしたいのでコマンドはこんな感じに。
mysql5 +server としてしまうとMySQL5.1.6が入ります。

MacBook:~ clicktx$ sudo port install mysql55 +server
Password:
--->  Deactivating mysql55 @5.5.23_0
--->  Cleaning mysql55
--->  Uninstalling mysql55 @5.5.23_0
--->  Cleaning mysql55
MacBook:~ clicktx$ sudo port install mysql55 +server
--->  Computing dependencies for mysql55
--->  Fetching archive for mysql55
--->  Attempting to fetch mysql55-5.5.23_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/mysql55
--->  Fetching mysql55
--->  Verifying checksum(s) for mysql55
--->  Extracting mysql55
--->  Applying patches to mysql55
--->  Configuring mysql55
--->  Building mysql55
--->  Staging mysql55 into destroot
--->  Installing mysql55 @5.5.23_0
The mysql55 client has been installed.
To install the mysql55 server, install the mysql55-server port.
--->  Activating mysql55 @5.5.23_0
--->  Cleaning mysql55

MySQLの初期化

  • mac OSXの場合はmysqlユーザーは作成済みなので改めて作成する必要はない。
  • 実際は_mysql?mysqlでユーザー指定しても_mysqlで処理される。
MacBook:~ clicktx$ sudo -u mysql /opt/local/lib/mysql55/scripts/mysql_install_db
Password:
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/opt/local/lib/mysql55/bin/mysqladmin -u root password 'new-password'
/opt/local/lib/mysql55/bin/mysqladmin -u root -h MacBook.local password 'new-password'

Alternatively you can run:
/opt/local/lib/mysql55/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt/local ; /opt/local/lib/mysql55/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/local/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/local/lib/mysql55/bin/mysqlbug script!

MySQLを起動する

MacBook:~ clicktx$ sudo /opt/local/share/mysql55/support-files/mysql.server start
Starting MySQL
... ERROR! The server quit without updating PID file (/opt/local/var/db/mysql55/MacBook.local.pid).

そのまま起動すると上記のようにエラーとなってしまう(自分の環境だけ?)

デフォルトでは /opt/local/var/run/mysql55 以下にソケットファイルを作成するらしく、フォルダが無いので作成する。アクセス権も777を与える。

MacBook:~ clicktx$ sudo mkdir -m 777 -p /opt/local/var/run/mysql55

改めてMySQLを起動。

MacBook:~ clicktx$ sudo /opt/local/share/mysql55/support-files/mysql.server start
Starting MySQL
.. SUCCESS! 

成功

参考:

  • Mac OS X に MacPorts で MySQL をインストールする – make world
  • MacPortsを使ってMySQL 5をインストールする – めも帖
  • mroongaのインストール

    2. インストールガイド — mroonga v2.02 documentation

    2.11.3. 前提条件
    MySQLおよびgroongaが既にインストールされている必要があります。
    またmroongaをビルドするためにはMySQLのソースコードも必要です。

    先日groongaはインストール済み。

    先程MacPortsでインストールしたMySQLのでソースは
    /opt/local/var/macports/distfiles/mysql55/mysql-5.5.23.tar.gz
    かな?

    作業スペースを~/src にする。
    まずは作業スペースとなるsrcフォルダを作成。

    MacBook:~ clicktx$ mkdir ~/src

    MySQLのソースファイルを ~/src にコピーして解凍する

    MacBook:~ clicktx$ cp /opt/local/var/macports/distfiles/mysql55/mysql-5.5.23.tar.gz ~/src/mysql-5.5.23.tar.gz
    MacBook:~ clicktx$ cd src/
    MacBook:~ clicktx$ tar xzvf mysql-5.5.23.tar.gz

    mroongaをダウンロード&解凍

    MacBook:src clicktx$ wget http://cloud.github.com/downloads/mroonga/mroonga/mroonga-2.02.tar.gz
    MacBook:src clicktx$ tar xzvf mroonga-2.02.tar.gz 
    

    mroongaをビルドする

    MacBook:src clicktx$ cd mroonga-2.02
    MacBook:mroonga-2.02 clicktx$ ./configure PKG_CONFIG_PATH=/opt/local/lib/pkgconfig --with-mysql-source=$HOME/src/mysql-5.5.23 --with-mysql-config=/opt/local/lib/mysql55/bin/mysql_config
    MacBook:mroonga-2.02 clicktx$ make

    makeでコケる…
    googleで漁っているとこんなの発見。
    installing mroonga on Mac OS X Lion — Gist
    早速試してみる。

    MacBook:~ clicktx$ cd ~/src/mysql-5.5.23/include
    MacBook:include clicktx$ ln -s probes_mysql_nodtrace.h probes_mysql_dtrace.h
    MacBook:include clicktx$ cd ~/src/mroonga-2.02
    MacBook:mroonga-2.02 clicktx$ aclocal -I /opt/local/share/aclocal
    MacBook:mroonga-2.02 clicktx$ automake -a
    MacBook:mroonga-2.02 clicktx$ autoconf
    MacBook:mroonga-2.02 clicktx$ autoheader
    MacBook:mroonga-2.02 clicktx$ automake -a
    MacBook:mroonga-2.02 clicktx$ ./configure PKG_CONFIG_PATH=/opt/local/lib/pkgconfig --with-mysql-source=$HOME/src/mysql-5.5.23 --with-mysql-config=/opt/local/lib/mysql55/bin/mysql_config --with-mecab
    MacBook:mroonga-2.02 clicktx$ make

    コケる…

    mroongaをMac OSXでビルドするためのアドホックなパッチを書いてみた « いわぶろ(ろてん)
    ココらへんに解決策?もう神頼み。
    https://gist.github.com/1015079 を参考に、~/src/mroonga-2.02/ha_mroonga.cpp っていうファイルの560行目付近に

    static_cast(static_cast(pthread_self())),

    っていう箇所があるから、

    static_cast(static_cast((unsigned long int)pthread_self())),

    に修正。
    pthread_self で検索すると修正箇所がすぐ分かる。

    修正した後にmakeしたら見事成功。

    MacBook:mroonga-2.02 clicktx$ sudo make install
    .....
    libtool: install: ranlib /opt/local/lib/mysql55/plugin/ha_groonga.a

    インストールできたぽい。

    公式ガイドに

    その後、mysqldを起動し、mysqlクライアントで接続して”INSTALL PLUGIN”コマンドでインストールします。

    とあるので、MySQL起動してインストール&確認。

    MacBook:~ clicktx$ sudo /opt/local/share/mysql55/support-files/mysql.server start
    MacBook:~ clicktx$ /opt/local/lib/mysql55/bin/mysql -u root
    mysql> INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';
    Query OK, 0 rows affected (0.48 sec)
    
    mysql> SHOW ENGINES;
    +--------------------+---------+------------------------------------------------------------+--------------+------+------------+
    | Engine             | Support | Comment                                                    | Transactions | XA   | Savepoints |
    +--------------------+---------+------------------------------------------------------------+--------------+------+------------+
    | CSV                | YES     | CSV storage engine                                         | NO           | NO   | NO         |
    | PERFORMANCE_SCHEMA | YES     | Performance Schema                                         | NO           | NO   | NO         |
    | InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
    | MyISAM             | YES     | MyISAM storage engine                                      | NO           | NO   | NO         |
    | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
    | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
    | mroonga            | YES     | CJK-ready fulltext search, column store                    | NO           | NO   | NO         |
    +--------------------+---------+------------------------------------------------------------+--------------+------+------------+
    7 rows in set (0.00 sec)

    なんとか入ったみたい。
    苦労した…。

    なお参考ブログに

    なお,MySQLへの組み込み後の動作については,何も確認を行っていないのであしからず,です.(影響があるとしても,ログ出力部分だけ?)

    とあるように、とりあえずmake出来て、インストールまでこぎつけたってシロモノです。

    追記:2012/6/2
    エラーが出た時にはこちらが参考になります。
    MySQL の INSTALL PLUGIN に失敗する時の処方箋(mroonga-1.20編) – よし研 -日々クリエイション-

    また、mroongaはHomebrewでインストールできるようになったみたいです。こちらの方が簡単でしょう。MacPorts使っているボクは負けg(ry
    mroonga 2.03リリース


    Filed under: Mac,MySQL,インストールメモ,開発環境

    Trackback Uri






    2012年 5月 7

    BlogMail
    スパムボット対策とかでメールアドレスを掲載したくないっ!、って方にうってつけのブログパーツですが、黒背景とかのブログに設置すると入力欄と文字色が同じになってしまって書いている文章が見えないってご意見を頂きました。

    テキストボックスにCSSを適用させる事でこの問題を回避できます。

    BlogMailを設置するには

    <!-- ここから -->
    <script>
        var ClicktxBlogMail={};
        ClicktxBlogMail.UID='作成されたユーザー固有ID';
        (function(){var p=(("https:"==document.location.protocol)?"https://":"http://");
        document.write('<scri'+'pt src="'+p+'tools.clicktx.jp/blogmail/js/blogMail.pack.js" charset="UTF-8"></scri'+'pt>');})();
    </script>
    <!-- ここまで -->

    こんな感じのコードを挿入するのですが、このコードのすぐ後に

    <style><!--
    #ClicktxBlogMail input, #ClicktxBlogMail textarea{ background-color:#FFF; }
    #ClicktxBlogMail input.button{ color:#333; }
    --></style>

    こんなコードを挿入すればテキストボックスの背景が白に、文字色が濃いグレーになります。
    黒系背景でBlogMailが使えない!ってお悩みの方は是非試してみてください!


    Filed under: 提供サービス

    Trackback Uri






    2012年 5月 5

    MacPorts導入しているので

    sudo port install groonga

    で一発!…のはずが、

    macbook:~ clicktx$ sudo port install groonga
    Password:
    Warning: port definitions are more than two weeks old, consider using selfupdate
    Error: Port groonga not found
    To report a bug, see <http://guide.macports.org/#project.tickets>

    どうやらMacPortsが古いからupdateしろや、こら!らしいのでupdateする。

    macbook:~ clicktx$ sudo port selfupdate
    --->  Updating MacPorts base sources using rsync
    MacPorts base version 2.0.3 installed,
    MacPorts base version 2.0.4 downloaded.
    --->  Updating the ports tree
    ...

    2.0.3から2.0.4に無事アップデート完了。

    気を取り直して再度挑戦。

    macbook:~ clicktx$ sudo port install groonga
    --->  Fetching archive for expat
    --->  Attempting to fetch expat-2.1.0_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/expat
    ...
    Error: Unable to execute port: Can't install mecab-utf8 because conflicting ports are installed: mecab
    To report a bug, see <http://guide.macports.org/#project.tickets>

    groongaをインストールする時にmecabもインストールするらしく、以前インストールしたmecabがコンフリクトしてるみたい。とりあえずmecabをアンインストール。

    macbook:~ clicktx$ port uninstall mecab*

    続いて再々挑戦。

    macbook:~ clicktx$ sudo port install groonga
    --->  Computing dependencies for groonga
    --->  Dependencies to be installed: libevent mecab-utf8 mecab-base mecab-ipadic-utf8 msgpack zmq
    --->  Fetching archive for libevent
    --->  Attempting to fetch libevent-2.0.18_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/libevent
    --->  Attempting to fetch libevent-2.0.18_0.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/libevent
    --->  Installing libevent @2.0.18_0
    --->  Activating libevent @2.0.18_0
    --->  Cleaning libevent
    --->  Fetching archive for mecab-base
    --->  Attempting to fetch mecab-base-0.993_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/mecab-base
    --->  Attempting to fetch mecab-base-0.993_0.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/mecab-base
    --->  Installing mecab-base @0.993_0
    --->  Activating mecab-base @0.993_0
    --->  Cleaning mecab-base
    --->  Fetching archive for mecab-ipadic-utf8
    --->  Attempting to fetch mecab-ipadic-utf8-2.7.0-20070801_0.darwin_10.noarch.tbz2 from http://packages.macports.org/mecab-ipadic-utf8
    --->  Fetching mecab-ipadic-utf8
    --->  Verifying checksum(s) for mecab-ipadic-utf8
    --->  Extracting mecab-ipadic-utf8
    --->  Configuring mecab-ipadic-utf8
    --->  Building mecab-ipadic-utf8
    --->  Staging mecab-ipadic-utf8 into destroot
    --->  Installing mecab-ipadic-utf8 @2.7.0-20070801_0
    --->  Activating mecab-ipadic-utf8 @2.7.0-20070801_0
    --->  Cleaning mecab-ipadic-utf8
    --->  Fetching archive for mecab-utf8
    --->  Attempting to fetch mecab-utf8-0.993_0+ipadic.darwin_10.noarch.tbz2 from http://packages.macports.org/mecab-utf8
    --->  Fetching mecab-utf8
    --->  Verifying checksum(s) for mecab-utf8
    --->  Extracting mecab-utf8
    --->  Configuring mecab-utf8
    --->  Building mecab-utf8
    --->  Staging mecab-utf8 into destroot
    --->  Installing mecab-utf8 @0.993_0+ipadic
    --->  Activating mecab-utf8 @0.993_0+ipadic
    --->  Cleaning mecab-utf8
    --->  Fetching archive for msgpack
    --->  Attempting to fetch msgpack-0.5.7_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/msgpack
    --->  Fetching msgpack
    --->  Attempting to fetch msgpack-0.5.7.tar.gz from http://msgpack.org/releases/cpp/
    --->  Verifying checksum(s) for msgpack
    --->  Extracting msgpack
    --->  Configuring msgpack
    --->  Building msgpack
    --->  Staging msgpack into destroot
    --->  Installing msgpack @0.5.7_0
    --->  Activating msgpack @0.5.7_0
    --->  Cleaning msgpack
    --->  Fetching archive for zmq
    --->  Attempting to fetch zmq-2.2.0_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/zmq
    --->  Attempting to fetch zmq-2.2.0_0.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/zmq
    --->  Installing zmq @2.2.0_0
    --->  Activating zmq @2.2.0_0
    --->  Cleaning zmq
    --->  Fetching archive for groonga
    --->  Attempting to fetch groonga-2.0.2_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/groonga
    --->  Fetching groonga
    --->  Attempting to fetch groonga-2.0.2.tar.gz from http://packages.groonga.org/source/groonga/
    --->  Verifying checksum(s) for groonga
    --->  Extracting groonga
    --->  Configuring groonga
    --->  Building groonga
    --->  Staging groonga into destroot
    --->  Installing groonga @2.0.2_0
    --->  Activating groonga @2.0.2_0
    --->  Cleaning groonga

    無事 groongaインストール完了。バージョンは2.0.2のようです。
    さて、何しようかな。


    Filed under: Mac,インストールメモ

    Trackback Uri