oinume journal

Scratchpad of what I learned

Entries from 2012-01-01 to 1 year

2012年を振り返って

もうすぐ2012年も終わりだなーと感慨深くなってきたので振り返りエントリをば。 全体的にはやっぱり仕事が忙しくって、あまり何かを深く追求したりできなかったかなぁと思う。実は裏で勉強計画(MySQLのソース読むとかelisp書けるようになったる!とか)を立て…

ruby-lintでRubyのソースを静的チェック

An English version of the post 自分の知る限り、RubyってPythonでいうpylintやpyflakesみたいなSyntaxh Checkerってなかったと思うんだけど、最近とある外人の人が作っているruby-lintというものを見つけたの軽く使ってみた。 インストール ruby-1.9が必要…

jboss-loggingとlogbackを組み合わせて使いたい

「jboss-loggingとlogbackを使いたい」時には -Dorg.jboss.logging.provider=slf4 を指定するとslf4j + logbackを使ってくれる。詳細はLoggerProviders.javaを参照。

MySQLでbulk insertの途中でエラーになった場合の挙動

MySQLで insert into ... values (1, 'x'), (2, 'y'); のようにbulk insertした時に、途中でエラーになった場合にどういう挙動をするかを調べてみた。普通に考えれば「全てのレコードがinsertされてない」になるはずだと思ったんだけど一応。試したMySQLのバ…

commons-langのEqualsBuilderの速度

Javaの有名なライブラリでcommons-langというのがある。この中にEqualsBuilderというequals()メソッドを簡単に実装するための便利クラスがある(HashCodeBuilder, ToStringBuilderというクラスもある)。使い方はこんな感じ。 @Override public boolean equals…

FreeMarkerで余計な改行が入らないようにする

JavaのテンプレートエンジンとしてFreeMarkerがある。テンプレートエンジンって割とみたいに書くことで余計な改行が入らないようになるじゃないですか。このFreeMarkerではどうするの?っていうのを同僚の人に教えてもらったので、ググれるようにまとめてお…

PyramidでJjinja2をテンプレートエンジンとして使う

Pythonネタ。最近PyramidというWebアプリケーションフレームワークを使い始めてる。 Pyramidはデフォルトで Chameleon と Mako というテンプレートエンジンが使えるが、自分は Jinja2 派なので、pyramid_jinja2というモジュールをインストールする。 インス…

IntelliJ IDEAでヒープサイズを変える

Eclipseにいい加減うんざりしてきたので、評判のいいIntelliJ IDEAを試し中。とりあえず最初にやることと言ったら、当然起動時のヒープオプションの変更(IDEA自体もJavaでできているので)。 Version 11までの方法 Macであれば /Applications/IntelliJ IDEA 1…

homebrewでMacに複数バージョンのrubyをインストールする

よく rvm や rbenv を使ってMacに複数バージョンのrubyをインストールする例を見るんですが、「それhomebrewでもできるよ」って思ったのでメモ。 とりあえず最新版を入れる場合 2012/7/27時点ではruby-1.9.3-p194がインストールされるみたいです。 $ brew in…

MySQL 5.5をMac OSXにインストールする

公式のバイナリを落としてインストールするのが一番楽かなーと思っている。自動起動もできるし。 MySQL :: Download MySQL Community ServerからMac OS X ver. 10.6 (x86, 64-bit), DMG Archiveをダウンロード。DMGを開いて mysql-5.5.25a-osx10.6-x86_64.pk…

MySQLをインストールした後に設定する項目(5.5編)

[permalink id=174]このエントリ[/permalink]のMySQL 5.5版。大体本家のドキュメントのこことかにちゃんと説明項目が書いてあるので、詳しくはそっちを読むのがいいかと。 user = mysql pid-file = /var/run/mysql/mysqld.pid socket = /var/run/mysql/mysql…

プログラマーの開発速度

小野和俊のブログ:プログラマーの開発速度は「はまる」時間の長さで決まるを読んで「本当にそうだよなぁ」と感銘を受けた。はまると平気で丸一日潰れたりするし。 でで、この記事には書いてないけど、特にネットワークを介すアプリケーションを作っている場…

Pythonで標準出力をキャプチャする

PerlだとCapture::TinyというCPANモジュールがあるのだけど、Pythonだとやり方がわからなかったので調べてみたところ、Capture stdout from a script in Python - Stack Overflowで色々とやり方が紹介されている。 普通に標準出力の内容を文字列として取りた…

WikiならConfluenceがオススメ

※自分はAtlassianの回し者ではありません 会社で使っているConfluenceというエンタープライズWikiが気に入っている。Wikiと言えば今まで MediaWiki PukiWiki FreeStyleWiki RedmineのWiki を使ってきたんだけど、機能的なバランスの良さを考えるとこのConflu…

Shellで絶対パスを取得する

よく忘れてしまうのでメモ。例えば実行するスクリプトの絶対パスを取得する場合。 #!/bin/sh DIR=$(cd $(dirname "$0") && pwd) echo $DIR $ sh ~/Dropbox/code/sh/abspath.sh Users/kazuhiro/Dropbox/code/sh

自宅サーバのGitリポジトリをbitbucketに移行

Git

サーバの設定ファイルや個人のdotfileを格納していた自宅サーバのGitリポジトリ、よくよく考えたらbitbucketって無料でプライベートリポジトリ作れたよなぁって思って移行してみた。 bitbucketのアカウントさえ取ってしまえば、Gitのリポジトリの移行自体は…

複数バージョンのPythonでテストしてくれるtoxが便利すぎる

tomahawkはPython 2.4/2.5/2.6/2.7 対応を謳っている。ただ、テストするたびに virtualenv で切り替え→テスト実行が非常に手間だった。そんなところにこのスライドでtoxという複数のバージョンのPythonでテストできるツールがあることを知った。実際使ってみ…

pythonbrewで新しいPythonをインストールできるようにする

Python-2.7.3がリリースされたので早速入れようと思ったら $ pythonbrew install 2.7.3 ERROR: Unknown python version: `Python-2.7.3` と言われて残念な気持ちになったので、どうすればpythonbrewで新しいPythonがインストールできるか調べてみた。 やり方…

Shellでset -uした時の引数の取り扱い

#!/bin/sh DIR=$1 rm -rf $DIR/ なんてやると$1がなかった時に / が消されてしまうので非常に危険。こういう場合は set -u して、未定義の変数があればエラーにすることが推奨される。 /Users/kazuhiro/Dropbox/code/sh/set_u.sh: line 3: $1: unbound varia…

amazon.comでKindle版オライリー本を買うと$4.99でDRMフリーなバージョンが買える

先日amazon.comでKindle版の[tmkm-amazon]1449306403[/tmkm-amazon]を買ったら、その本の中に Upgrade this ebook today for $4.99 at oreilly.com and get access to additional DRM-free formats including PDF and EPUB, along with free lifetime update…

CentOS 6.x上でtomahawk-0.4.x使ってsudoつきのコマンドが失敗する場合

CentOS 6.2で sudo 付きのコマンドを送る場合は tomahawk -o=-t -l -h localhost 'sudo uptime' のように、-o=-t をつけます。これでssh時に pseudo-tty が割り当てられる。ちなみに今開発中の0.5系はデフォルトで -o=-t がつく状態になっています。 あと、-…

Firefoxで開いているタブのタイトル/リンクの一覧を生成するアドオン

FirefoxにCopy Urls Eexpertというアドオンがあって、最近これを便利に使っているので紹介。 どういうアドオンかというと、「ウィンドウ内で開いているタブの一覧から、タイトルとURLをリスト化してくれる」というもの。リストは下記のようになる。 1. Matt …

Linuxでディスクが壊れた場合のデータ復旧方法

先日自宅サーバのディスク(SSD)がお亡くなりになって、「あーやっべー、データ全部バックアップしてないわー」ということが発覚し途方に暮れていたんだけど、グーグル先生に問い合わせたところ dd_rescue なるコマンドがあり、これを使ったらほぼ完全にデー…

iPhoneのホームボタンを延命するためのAssistiveTouch

iPhoneのホームボタンって酷使されるもので、よく「ホームボタンがきかなくなった」などの症状を訴える人が多い。そんな人達に朗報なのが、このAssistiveTouchという設定。設定→一般→アクセシビリティ→(身体機能サポート)AssistiveTouchをオンにすると、 写…

Shellでset -e の状態を解除するにはset +e

"set -e": 実行コマンドが0以外の終了コードの場合、シェルスクリプトを終了する - RX-7乗りの適当な日々にある通り、Shellスクリプトで set -e すると実行結果が0以外の場合、勝手にスクリプトが終了する。で、この挙動をスクリプトの途中で元に戻したい(=…

python-mode + auto-complete-mode + ac-pythonでPythonのコード補完

Pythonの補完をEmacsでシンプルに最小労力で手早く使えるようにする - 牌語備忘録 - pygoの通りなんですが、手っ取り早くEmacsでPythonのコード補完を実現できた。ちなみにpython-modeでもac-pythonは問題なく動いてる。これ設定したらコード書くスピードが…

特定のホスト用のssh秘密鍵は ~/.ssh/config に記述しておくとラク

ssh

例えばお仕事で使っているサーバで 仕事用のサーバへのssh秘密鍵 github.comなどの個人用のssh秘密鍵 などと複数の秘密鍵を持ちたい場合がよくある。メインは1.の仕事用のサーバだとすると ~/.ssh/id_rsa (id_dsa) は仕事用サーバ向けの秘密鍵 ~/.ssh/id_rsa…

Sphinxで複数のman pageを生成する

前置き つい最近tomahawkのドキュメントをGithub WikiからSphinxに移行したのでそのメモ。SphinxにはHTMLを生成する以外にもman pageを生成する機能があって $ make man を実行すると _build/man/ 配下に mycommand.1 みたいな感じでman pageが生成される。 …

2011年の振り返りと2012年

明けましておめでとうございます。2012年は元旦早々風邪を引いて意図せず寝正月でした。やっと風邪も落ち着いてきたので、やや周回遅れですが2011年の振り返りを行おうかと思います。 1-3月 1月早々に引っ越し ウィルス性胃腸炎で初めて死を意識した(ぐらい…