開発用のサーバでmemcachedのキャッシュを全消しするために flush_all をよく使うんだけど、telnetで対話的にコマンド送り込むのだるいのでそういう場合はnc(netcat)を使えばいいよー、という話。
下記はlocalhostの11211でLISTENしてるmemcachedにflush_allを送りつける例。
$ echo flush_al | nc localhost 11211
開発用のサーバでmemcachedのキャッシュを全消しするために flush_all をよく使うんだけど、telnetで対話的にコマンド送り込むのだるいのでそういう場合はnc(netcat)を使えばいいよー、という話。
下記はlocalhostの11211でLISTENしてるmemcachedにflush_allを送りつける例。
$ echo flush_al | nc localhost 11211
3ヶ月前ぐらいからPython、RubyやJavaScriptなどのスクリプト言語でコードを書く時はIntelliJ IDEA(有償版)を使うようになった。以前はEmacsユーザだった。乗り換えた理由としては
などだろうか。有償版はパーソナルライセンスで2万円ぐらいだけど、そのぐらい払う価値はあるかなぁと今のところ感じている。ただ、そんなIntelliJさんもやっぱり使いづらいところはあるので、個人的に必ず設定している項目を書いてみる。なお環境はMacで、IntelliJのバージョンは13。
Eclipseユーザの人はEclipseユーザの為のIntelliJ IDEA QA を読むといいと思う。Eclipseとの違いが書かれている。ちなみに自分はJavaを書く時はいまだにEclipse使ってるw 長年蓄積された手癖というものがどうにも捨てられない。
IntelliJでPythonやRubyを書くにはプラグインをインストールする必要がある。PreferencesのPluginsからポチポチ選択する。自分が入れているのは下記。
IntelliJはJVM上で動く。そのJVMを変えたい場合は
/Applications/IntelliJ\ IDEA\ 13.app/Contents/Info.plist を下記のように修正
<key>JVMVersion</key>
<string>1.6*</string>
↓
<key>JVMVersion</key>
<string>1.7*</string>
Version 12以降は /Applications/IntelliJ IDEA XX.app/bin/idea.vmoptions を ~/Library/Preferences/IntelliJIdeaXX/ にコピーして編集する。自分は下記のようにしてる。
-Xms768m -Xmx768m -Xmn384m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=96m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops
Preferences -> File -> import settings / export settings
でできる。SDKの設定はexport/importしない方が無難かもしれない。
Preferences -> Editor -> Editor Tabs
以下の2つの設定をデフォルトから変えている。
コピペする時に勝手にフォーマットしてくれて元のテキストの体裁を維持してくれない場合があるので、自分はCmd + V でペーストした場合の挙動を変えている。
Preferences -> Keymap -> Paste Simple にCmd + V を割り当て
造語などにいちいち波線がついてうざいのでオフにしてる。
Preferences -> Inspections -> Spellingのチェックを外す
自分はこういうのオフにする派。
Preferences -> Editor -> SmarkKeys -> Insert pair bracket
Eclipseではデフォルトで有効になっている機能。ファイルが多いプロジェクトだとこの機能ないとつらい。
最近日々思っていることを文章にしてみる。特に深い意味はないし結論もない。
何年も同じ会社や部署にいると、自分の立ち位置・イメージみたいなものが凝り固まってくる。「この人はすごいデキる人だ」「この人と一緒に仕事をすればいいものが作れる」とか、もしくはその逆。こうなってくると自分は定期的に「ああ、リセットしてゼロからやり直したい」と思ってしまう。いわゆるダーマの神殿行く的な?おそらく頻繁に転職する人だったり部署異動する人はこういうリセット志向が強い人だと思う。
例えば転職して新しい会社でまわりは誰も知らない人だと、早く一人前に仕事できるようになってまわりからの期待に応えたいと思うし、そうやって信頼を勝ち取って行くのは自分にとってもすごく嬉しい。何より転職前に比べてモチベーションは圧倒的に高い。
なので、頻繁に転職するいわゆるジョブホッパーな人は、ネガティブに見れば「どこの組織でもうまくやれてない」可能性もあるんだけど、上のようなリセット力の高い人もけっこういるんじゃないかなぁと思うし、そういう人はいろんな環境・仕事をやってて経験豊富で優秀だったりする。でも世間ではあまりこういう考え方が浸透していない気がしていて残念。
こんな感じでPATHが通っているところにsublコマンドのシンボリックリンクをはってやる。
$ ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
で、あとはsublコマンドでファイルなりディレクトリを開けばOK。
https://pypi.python.org/pypi/iocapture
PerlでいうCapture::Tiny みたいなやつのPython版が欲しかったので作ってみた。Python3にも対応させた(つもり)。
去年から新規のソーシャルゲームの立ち上げのヘルプをしていて、つい最近も1つリリースした。リリースも何とか無事に終わりデスマも落ちついたので、ここ3ヶ月ぐらい主に仕事で使ってきた技術をここらでまとめておこうと思う。
うちの会社はサーバサイドの言語はJavaかNode.js(JavaScript)が多い。自分がたずさわっているプロジェクトはJava。正直Javaなんて面倒なんでやめたいんだけど、これ使えばけっこう開発が楽になる、っていう技術が2つ。
いわゆるホットリローディングを実現してくれるソフトウェア。IDEに組み込んで使う。該当クラスのソースを編集すると自動的にクラスを再ロードしてくれる。有償製品だけどJRebel Socialなんていう謎なライセンスで無料で使うことができる。
会社のブログ に概要を書いたので見てくらはい。
パフォーマンス解析ツール。負荷テストをしながらNewRelicを使ってどこがボトルネックかを調査した。任意のURL(に対する処理)を一定時間プロファイリングするX-Rayっていう機能が便利だった。ただNewRelicの全機能の10%も使ってないと思われる。
うちの会社はChefでサーバ構築するようになってきていて、自分もやっと真面目にChefに取り組んでみた。VagrantはChefのレシピをテストするのに使っていた。
$ vagrant up $ vagrant provision
で cookbooks がゲストOSに転送されてchef-soloが実行される。すごいシームレスに統合されていてすごいなぁと思う。ドキュメントもしっかりしていて特に躓くこともなかった。
Python版のCapistranoみたいなやつ。最初はShellScriptでディプロイスクリプトを書いていたんだけど、複雑な処理をやらせるにはちょっと役不足だったので、代わりにこれを使った。@parallel っていうデコレータつけるだけでタスクが並列で実行されるのがよい。
最近流行っているnode.js製のJavaScript関連のタスクランナー。JavaScriptのminifyとかconcatするのに使った。
Skypeの代わりにこれを使っていた。ただ正直Skypeの方が好きだ。HipChatはいつか試したい。
JavaのコードはEclipseで書いてたんだけど、PythonやRubyのコードはIntelliJで書いてる。ちょっと設定するだけで補完が利くようになるのがいい。
@la_luna_azul さんと@oranie さんとでISUCON1日目に参戦してきた。結果から言うとトップと約8倍差がついて惨敗10位ぐらいには入れるかなーと思ったけど考えが甘かったし、準備も実力も足りなかった。