oinume journal

Scratchpad of what I learned

Entries from 2011-01-01 to 1 year

rlwrapを使ってmysqlコマンドのプロンプトに色をつける

どうもこんにちは。北海道に旅行中でこの記事は札幌のホテルから書いている oinume です。MySQL Casual Advent Calendarも11日目になりました。「MySQL Casualが全然カジュアルじゃない!」という意見をよく耳にするので、今日はウルトラカジュアルなエント…

Pythonでモジュール内のクラスを抽出する

inspectを使えば簡単にできる。 class MyClass(object): pass def func(): pass な感じのmymodule.py があるとして #!/usr/bin/env python import inspect import mymodule for name, member in inspect.getmembers(mymodule): if inspect.isclass(member): …

uWSGI+virtualenv+Flask

Pythonで今一番熱そうなWSGIコンテナのuWSGIというものをインストールしてみたんだけど、virtualenvと組み合わせた時にちょっとはまったのでメモ。 前提 Pythonは2.6 virtualenv(wrapper)を使って /usr/local/virtualenvs 配下に flask という環境を作ってい…

へろぅわーるど

ぼくはまちちゃんじゃないよ!

pydoc -g でモジュールのドキュメントが読める

Shellで $ pydoc -g ってやったら↓のようなダイアログが出てきて "open browser" クリックしたら、ブラウザで標準モジュールやインストールされているモジュールのドキュメントが読めましたとさ。Pythonすげー。 [tmkm-amazon]4873112761[/tmkm-amazon]

SQLAlchemyでMySQL独自のDDL方言を使う

例えばDDLでBIGINT使いたい場合は下記のように sqlalchemy.dialects.mysql から import する。 あと engine = InnoDB したい場合は __table_args__ を使うらしい。詳細はSQLAlchemyのドキュメントを参照。 from sqlalchemy import Column, Unicode from sqla…

Flask + python-oauth2 + python-twitterでTwitter APIを叩く

いろいろ面倒だった。

JavaのString.format()とStringBuilder#append()の文字列結合速度比較

Javaで文字列を結合するときは一般的にはStringBuilderを使うけど、個人的には結合後の文字列がより直感的になるString.format() が好き。ただ、ソースを見ると明らかにString.format()は遅そうなのでベンチを取ってみた。 1万回ループを実行した場合の結果…

MySQL Casual Talks Vol.2 で話してきた

MySQL Casual Talks Vol.2で20分枠をもらって話してきた!こんなに長い時間人前で話すのは初めてだったので緊張しまくりでした。話した内容は仕事(ピグ)で利用しているMySQL上で運用しているNoSQLのやり方について。MySQLの設定とかの話は一切せずJavaのコー…

rednoseを使ってnoseの出力をわかりやすくする

下記のようにテスト結果をカラフリャにしてくれる。ただし0.2.4はテストに失敗すると"TypeError: enumerate() takes exactly 1 argument (2 given)"というエラーになるので、こんな感じで修正が必要。 びふぉー あふたー [tmkm-amazon]4048686291[/tmkm-amaz…

Pythonでファイルを読み込むスマートなやり方

結論から言うと下記が最もスマートでモダンな書き方っぽい。 with open('/tmp/test.txt') as f: for line in f: print line 下記はファイルの中味が全部メモリに乗っちゃうから危険。 f = open('/tmp/test.txt') for line in f.readlines(): print line f.cl…

自宅サーバからso-netのSMTPにリレーする

そういえばISPをso-netに変えてからSMTPの設定変更してなかったのでメモ。 まずは /etc/postfix/main.cf に以下を追記。 relayhost = [mail.so-net.ne.jp]:587 smtp_sasl_type = cyrus smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/pos…

iPhone4で読書のススメ

最近PDF化した技術書をiPhone4で読むようになった。最初は全部iPadに入れてiPadを持ち運ぼうと思っていたんだけど iPadは意外と重い 電車の中でかばんから出すのがめんどい iPhoneだったら常に持ち歩いているのでどこでも本が読める ということでiPhone4で技…

logbackでJavaVM起動時にログレベルを指定する

[permalink id=413]logback-test.xmlを使ってログレベルを変更する[/permalink]のエントリでlogback-test.xmlを用意すればこっちが先にロードされるので、logback.xmlより優先されていいよね的なことを書いた。で、こういうログレベルってJavaVM起動時に自由…

logback-test.xmlを使ってログレベルを変更する

Javaにlogbackというlog4jに代わるロギングライブラリがあって、これのちょっとしたTIPS。 本番環境ではなく、ローカルマシンでの開発時のアプリケーションのlogback.xmlでは、下記のようにログレベルをdebugにしているとする。 %d{HH:mm:ss.SSS} [%thread] …

ブログのMySQLを5.1から5.5にバージョンアップ

5.5ってどうなんだろう?と思ったので試しにこのブログのMySQLを5.1 -> 5.5にしてみた。 tar.gz のバイナリを取ってきて /usr/local/mysql-5.5.13-linux-2.6-i686 に展開して /usr/local/mysql にsymlink (バージョンアップに失敗したときにすぐに戻せるよう…

Emacsでetags関連のキーバインドを変えた

Emacsのタグジャンプ系のキーバインドが M - . とかであまりにも打ちにくいので変えた。 ;; etags (require 'etags) (global-set-key "C-cj" 'find-tag) (global-set-key "C-cb" 'pop-tag-mark) (global-set-key "C-cn" '(lambda () (interactive) (find-tag…

SIM Lock Free iPhone4+DoCoMo SIM

auガラケー SoftBankのiPhone4 という2台持ち状態だったのを、一念発起してSIM Lock Free iPhone4を購入してDoCoMo SIMにしてみた。そもそもガラケーは仕事で動作確認ぐらいにしか使用してないし、2台も携帯を持つことに疲れてしまったので。 DoCoMoのいいと…

SIM Lock Free iPhone4 + b-mobile プラチナの回線速度

もう個人で携帯2台持ちしたくないので、iPhone4 SIM Lock Free版をヤフオクで買った。で、せっかくなのでb-mobileがどのぐらい使い物になるのか、1ヶ月分のSIMを買って試してみた。買ったのはb-microSIM Platinum。 BNR SpeedTestの結果 BNR スピードテスト…

Emacsでキーの割り当てを調べる

M-x describe-bindings でいける。よく思い出せずに苦労するのでメモ。

Linuxで容量の大きいディレクトリを調べる

# du -m /home | sort -nr | head -10 で容量の大きいディレクトリTOP10を調べられる。

MacのEclipseで「フォントが小さい」とお嘆きの方へ

Mac

解像度の高いMacのEclipseは下のようになぜかPackage Explorerのフォントが小さい。Source EditorなどはEclipse上でフォントサイズを設定することができるけど、なぜかPackage Explorerはできない。 んで、色々調べてたどりついたのがMake Eclipse use large…

MySQLでデータベースの全テーブルを強制的にInnoDBに変換するPythonスクリプト

仕事でMyISAMなテーブルをInnoDBにしたかったのでこんなん書いた。 $ ~/to_innodb.py -h localhost -u root mydatabase #!/usr/bin/env python # -*- coding: utf-8 -*- # INSTALL ==================== # $ sudo easy_install argparse # $ sudo easy_insta…

wgetでURLにアクセスできるか簡易的にチェックする

Webサーバがちゃんと立ち上がったかどうか、URLにアクセスしてチェックしたいので。 wget -o /dev/null -O - http://twitter.com/ > /dev/null if [ $? -eq 0 ] ; then echo "OK" else echo "Failure!!" fi な感じかなぁ。 [tmkm-amazon]4822282090[/tmkm-am…