2012年7月31日火曜日

[IntelliJ IDEA]djangoのmanage.py

IntelliJ IDEA で djangoを使ってWEBアプリを作るとき度々 manage.py たたくけど

IDEAの機能 Tools -> Run manage.py Task... 使うと便利。

CTRL+ALT+R がショートカットだよ。

いちばんはじめは manage.py startapp myapp みたいなんするからメモ。



[linux]find atime ctime mtime

linuxの日付周り色々あってややこしい。

http://ysweb.blog116.fc2.com/blog-entry-5.html

atime:ls -lu
ctime:ls -lc
mtime:ls -l
find のオプション atime ctime mtime それぞれは ls コマンドの上記オプションで参照できる日付と対応している。

で、一個ずつ見るのめんどくさいのでこんなのもある。
linuxなら、って記述されてたけどSolarisとかだとできねーの?
知らんけど。

stat /path/to/file

こんなん。

Access
Modify
Change

みたいなんがあるけどこれがそれぞれ atime ctime mtime に対応してるっぽい。


2012年7月30日月曜日

[rds]slow_query出力

RDSでは my.cnf 使えないのでパラメータで設定するみたいです。

http://digape.com/201206/aws-rds%E3%81%A7slow-query%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B/

ほぼここのまんまでOKです。

ただ、ちょっと戸惑ったところもあったのでメモ。


□AWS アクセスキー
←確認する
アカウント/コンソール -> Security Credential -> アクセスキー -> 表示
http://norinoritakanori.blog90.fc2.com/blog-entry-24.html

□Command Line Tools
環境変数
#export JAVA_HOME=/usr
export AWS_RDS_HOME=/usr/local/rds-tools
export PATH=${PATH}:${JAVA_HOME}/bin:${AWS_RDS_HOME}/bin
export AWS_CREDENTIAL_FILE=/usr/local/rds-tools/.credential
export EC2_REGION=ap-northeast-1

←シェルに書いておくと便利。ログイン時に実行するくらいでいいかも。
  あと、Linux の基本だけど shhでコマンド叩いているなら ./init.sh じゃなくて source ./init.sh しないと環境変数有効にならないかも。コマンドラインツール使う前にechoして確認してみるとかするといい。

上記の環境変数で .credintial ファイル参照しているけどこれは下記。
.credentialファイル
AWSAccessKeyId=XXXXXXXXXXXXXX
AWSSecretKey=XXXXXXXXXXXXXX
それぞれの値は AWS アクセスキーで確認した通りの文字列。

あと、このファイルの権限は600じゃないとダメっぽいので権限変更しとく。
chmod 600 /usr/local/rds-tools/.credential

切り分けのため、ec2-version 叩いてバージョン文字列返ってきたらコマンドラインツールのインストールと設定は大丈夫っぽいn

rds-modify-db-parameter-group modify-params-group \
--parameters="name=slow_query_log, value=ON, method=immediate" \
--parameters="name=long_query_time, value=1, method=immediate" \
--parameters="name=min_examined_row_limit, value=10000, method=immediate"

[mysql]ユーザ作成とか


RDSで開発用に共通環境を構築したときのメモ。

□ユーザ作成
http://linux.kororo.jp/cont/server/mysql_user.php

CREATE USER [user]@[host] IDENTIFIED BY '[PASSWORD]';

grant [create, alter, drop, index, select, update, insert, delete] on [db].[table] to '[user]'@'[host]';

←これで、データベースごとに権限を細かく分けることが出来る。

□ダンプ エクスポート/インポート
http://phpspot.net/php/pgmysqldump%E3%81%A7%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%EF%BC%86%E5%BE%A9%E5%85%83.html
mysqldump -u[user] -p -h [host]

source [dump_path]

←DBを移動するときに使った。よく使うけど覚えていないのでメモしとく。

2012年7月27日金曜日

[mysql]ユーザ作成&権限設定&外部アクセス設定


MySQLサーバに他のIPから接続できるアカウントを作成するメモ。


grant権限付与あり
GRANT ALL PRIVILEGES ON *.* TO user@"hostname" IDENTIFIED BY 'pass' WITH GRANT OPTION;

grant権限付与なし
GRANT ALL PRIVILEGES ON *.* TO user@"hostname" IDENTIFIED BY 'pass';

IPどこでもOK
GRANT ALL PRIVILEGES ON *.* TO user@"%" IDENTIFIED BY 'pass';



□参考
http://sasuke.main.jp/useri.html
http://ext.omo3.com/linux/mysql_host.html

[git]git pullする

面倒くさいのでSSHで。


git clone ssh://user@hostname/path/to/repository
git pull


http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/chunked/ch04s03.html

2012年7月26日木曜日

[mysql]データベース作成の文字コード


最終的には下みたいにしたいです。


mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


まあここhttp://ext.omo3.com/linux/mysql_character_set.htmlそのままでOKです。
□データベースの文字コード確認
 mysql> show create database データベース名;

□文字コード指定でデータベース作成
mysql> create databaase xxxdb default character set utf8;

□テーブルの文字コード確認
mysql> show create table テーブル名 \G

□/etc/my.cnf の文字コード設定
[client]
default-character-set=utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

service mysqld restart とかで再起動。

[linux]update-alternatives メモ

あてにしてたサイトhttp://blog.eni.co.jp/tech/2009/08/update-alternatives.htmlが消えていた。
WEBだから仕方ないよね。
でも消えることはそうそうないだろうと思っててevernoteとかにもメモってなくて泣きそうになった。

やっぱりメモしないとな。

というわけで。

centosのはじめっから入ってるjavaの古いところに新しいjavaをインストールしてこっちにパスを通す方法。

update-alternativesを使う。

解説はできるほど詳しくない。
上述のサイトをアテにしてたから・・・。

□確認・リンク張替え

update-alternatives --config java

□インストール

update-alternatives --install "/usr/bin/java!" "java" "/usr/lib/jvm/jdk1.7.0/jdk1.7.0_04/bin/java" 1


java -version とかで確認を。

2012年7月20日金曜日

[IntelliJ IDEA]jvm optionを変更してみる

IntelliJ IDEA の jvm option を変えてみたら幾分早くなった気がするのでメモ。

Windows環境ならこのファイルがjvm optionをもってる。
C:\Program Files\JetBrains\IntelliJ IDEA 11.1.1\bin\idea.exe.vmoptions

64bitならこっちかな。
C:\Program Files\JetBrains\IntelliJ IDEA 11.1.1\bin\idea64.exe.vmoptions

中身は普通のjvm otpionです。

えらい古いけど公式にもこんな記事があった。
http://blogs.jetbrains.com/idea/2006/04/configuring-intellij-idea-vm-options/

とりあえずこうしてみた。

-server
-Xms1024m
-Xmx1024m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-XX:NewSize=250m
-XX:MaxNewSize=250m
-XX:SurvivorRatio=8
-XX:TargetSurvivorRatio=90
-ea



-server オプションあたりはけっこう快適さ変わるかも。

2012年7月14日土曜日

[python]openCVのサンプル

このへんからの流れです。
http://zonotex.blogspot.jp/2012/07/vcopencv.html

とりあえず、環境っぽいものはできたから動作させてみようというわけで。
まあopenCVやってる人は私みたいな薄っぺらいのじゃなくて
PG詳しい人とか研究者だからこんなこと書くものでもないだろうけど
同じくらいの人のためになればということで。

参考
http://opencv.jp/opencv-2.2/py/objdetect_cascade_classification.html
http://d.hatena.ne.jp/hogelog/20110512/p1
http://imagesensing.seesaa.net/article/214206116.html

CC0ってことなのでコードままぱくりました。
haarcascade_eye.xmlは
F:\data\opencv\data\haarcascades\haarcascade_eye.xml
みたいなところにあります。
SVNから落としてきたソースファイルの中ね。
face.jpgは適当な画像ファイル。人の写ってるやつがいいかな。


#!/usr/bin/env python
# -*- coding: utf-8 -*-
from cv2 import cv

__author__ = 'isann'

def main():
    # *参考
    #  * リファレンス
    # http://opencv.jp/opencv-2.2/py/objdetect_cascade_classification.html#haar-feature-based-cascade-classifier-for-object-detection
    #  * 解説ページ(C言語)
    # http://www.aianet.ne.jp/~asada/prog_doc/opencv/opencv_obj_det_img.htm
    
    storage = cv.CreateMemStorage()
    
    # 「目検出」のための教師データの読み込み
    hc = cv.Load(r"C:\Users\isann\IdeaProjects\proto_opencv\data\haarcascade_eye.xml")
    
    # 画像の読み込み
    img = cv.LoadImageM("face.jpg")
    
    # 顔認識(速度のため適当にパラメータ)
    faces = cv.HaarDetectObjects(img, hc, storage)
    # こっちはうまくいかなかった…
    #faces = cv.HaarDetectObjects(img, hc, storage, 1.1, 100, 0, (50, 50))
    
    # (R, G, B)
    color = (255, 255, 255)
    
    # 検出したパーツそれぞれの領域を
    # 四角で囲む
    for (x, y, w, h), n in faces:
        p1 = (x, y)
        p2 = (x + w, y + h)
        cv.Rectangle(img, p1, p2, color)
    # 四角を描いた画像を保存
    cv.SaveImage("face_detected.jpg", img)

if __name__ == '__main__':
    main()

2012年7月13日金曜日

[vc++]openCVビルド

これは大変・・・。
自分の知っている言語界隈はたいてい理解したつもりでも、
異なるプラットフォームになると何も知らなかった頃に戻る…。

ということで、
Windows7 32bit python2.7 環境でopenCVの環境構築メモ。
書いてる今はpythonでimport cv2 が成功する、までしか確認していませんので悪しからず。

参考にしました。
http://dokumaru.wordpress.com/2011/08/11/opencv-2-3-svn-%E3%82%92-python-%E3%81%8B%E3%82%89%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/
http://volga.esys.tsukuba.ac.jp/~sat/2011/09/opencv-installing-memo/
http://cvwww.ee.ous.ac.jp/oc20inst.html#cmake
http://d.hatena.ne.jp/ksef-3go/20100813/1281692520
http://mecab.mine.nu/dokuwiki/doku.php?id=blog:2011:07:%E6%B3%A3%E3%81%8D%E3%81%9D%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%AA%E3%81%8C%E3%82%89opencv_cvblob_on_python


前提

  • python2.7インストール済み
  • SVNクライアントインストール済み(TortoiseSVNとか)


無心にやるべきこと

  1. Microsoft Visual C++ 2010 Express をインストール
  2. CMakeをインストール
  3. SVNで http://code.opencv.org/svn/opencv/tags/2.3.1/opencv からソース取得(確実に動作させたいならバージョンあわせるべき。そのあとで最新にチャレンジしたほうがいいと思った。)ここではF:\opencvにDLした。
  4. CMake起動してBrowserSourceを3でDLした F:\opencv 、Browser Build は  F:\opencv \release とか適当なパスを指定。Configureを押して Visual Studio 10 を選択。  Configuring done  になって、赤色の項目があるので一応目を通して必要そうなものをチェックするとかしてみる。(あんまりしないほうがいいかもしれんけど)もう一度Configureを押下。そしてGenerateする。 Generating doneが表示されればOK。このとき、Python や NumPy をインストールしていないと BUILD_NEW_PYTHON_SUPPORT が表示されず、pythonのライブラリがビルドできないので注意。
  5. OpenCV.slnファイルをダブルクリックしてVS VC++ Expressを起動。
  6. 上のメニューの下くらいにアイコンが並んでるツールバーがあって、プルダウンにDebugとなっているところがあればReleaseに変える。デバッグビルドではなくリリースビルドに変えてる。デバッグビルドだとpython27_d.libがなくて怒られた。
  7. 左の方にあるソリューションエクスプローラーのALL_BUILDを選択して右クリック->ビルドを押下。ビルドが始まるので待つ。
  8. ========== ビルド: 19 正常終了、0 失敗、0 更新不要、0 スキップ ==========」みたいな表示で失敗がなければ多分ビルド成功。
  9. PYTHONPATH に F:\opencv\release\bin\ReleaseにあるdllファイルとF:\opencv\release\lib\Releaseにあるcv2.pydとcv2.libをコピー。
  10. python で import cv2してみてエラーなければきっといけてる

こんな感じでした。
最終的に、以下のファイルがpythonのパス通ったところに下記ファイルが配置されました。

C:\Python27\Lib\site-packages\cv2.lib
C:\Python27\Lib\site-packages\cv2.pyd
C:\Python27\Lib\site-packages\opencv_calib3d231.dll
C:\Python27\Lib\site-packages\opencv_contrib231.dll
C:\Python27\Lib\site-packages\opencv_core231.dll
C:\Python27\Lib\site-packages\opencv_features2d231.dll
C:\Python27\Lib\site-packages\opencv_flann231.dll
C:\Python27\Lib\site-packages\opencv_highgui231.dll
C:\Python27\Lib\site-packages\opencv_imgproc231.dll
C:\Python27\Lib\site-packages\opencv_legacy231.dll
C:\Python27\Lib\site-packages\opencv_ml231.dll
C:\Python27\Lib\site-packages\opencv_objdetect231.dll
C:\Python27\Lib\site-packages\opencv_video231.dll


2012年7月12日木曜日

[php]centosにpdoを入れる

centos5.7環境でpdoが使えるまで。
mysqlは別サーバー。
centosはセットアップした初期状態。
Fatal error: Class 'PDO' not found in 

  1. centos5.7なのでapache入ってた
  2. yum -y install php
  3. yum -y install php-pear php-devel httpd-devel
  4. yum -y install mysql
  5. yum -y install mysql-devel
  6. pecl install pdo
  7. pecl install pdo_mysql

■参考
http://centossrv.com/apache.shtml

http://blog.sunone.me/2011/06/07/php-pecl%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/

http://dd0125.blogspot.jp/2011/06/configure-error-mysqlquery-missing.html




まだあかんなー…


http://blog.suz-lab.com/2008/11/cent-52pdo-mysql.html


  1. yum -y install php-pdo
  2. yum -y install php-mysql
これでphpinfo叩いたらPDOの項目増えててとりあえず環境はできた感じー。

PHP全然簡単じゃ無いじゃん!
なんかイマイチこのあたりの情報をまとめているサイトないんだけど、
phperには当たり前の世界だからなのかなー。
CやJava、Pythonならなーなんて…。


なんか、SELinuxを無効にしたらいけました。
なんだろうなこれ。

権限か?とか思ったけど。

普通、3306ポートのmysqlコマンド通ったら大丈夫だと思うでしょ。
pythonからもアクセスできたし。
jdbc経由でもアクセスできたし。
phpだけがダメ。

他にもphp.ini だったか httpd.cnf だったかで、httpdプロセスから他のサーバへの接続を許可するみたいな設定も見た気がするが今回はそれは設定できていて問題なかった。


2012年7月6日金曜日

[MySQL]MySQL WorkbenchのEER Diagram

これ、使いにくいな…。
GUIGUIしてていいんだけど。

無償版のCommunityEdition使ってるから?

さて、これでオブジェクトを配置できる範囲(グリッドの背景)を広げる方法がわからずしばらく悩んだ。

メニュー

Model -> Diagram Properties and Size で Width と Height を数値で指定したら広げられる。

わかりにくかった。。。
私だけか?