handlename's blog

コード片など

2013-01-01から1年間の記事一覧

ST2のマーク機能を有効活用する

st2

Sublite Text 2.0.2 emacsから乗り換えたので、マークをもっと活用したい欲がある。 run_multiple_command 的なものを定義して、 マーク+(何かしら操作)を簡単にできるようにした。 マークからキャッレットまでをコピー マークからキャッレットまでをカット …

scalaでirc botを書く場合

Javaのライブラリを使うのがらくちんみたいだ。 PircBotを使う場合はこんな感じ。 package com.example.IRCBot import org.jibble.pircbot._ class Bot() extends PircBot { override def onMessage( channel: String, sender: String, login: String, host:…

#ISUCON 3 本戦に(スタッフとして)参加してきました

今回の成果↓ (参加してきましたエントリにちょこちょこ登場しててうれしい) 予選でなすすべなく敗退したので、本戦では問題アプリの言語移植と、テスト回答、当日運営のお手伝いをしていました。 移植 @fujiwaraさんが作ったperlのリファレンスアプリをnodej…

emacsからST2に乗り換えたメモ

4年ほど使ったemacsからST2に乗り換えてみたメモ。 ST2の使用期間は1週間くらい。 emacsの設定は ここ。 ST2の設定につてはまだ固まってないので割愛。 きっかけ Marvericksをクリーンインストールして、 .emacsのバックアップをそのまま置いたら動かなかっ…

AWS Simple IconsをPNGに変換する

ImageMagick 6.8.7-0 http://aws.amazon.com/jp/architecture/icons/ PNG形式で欲しかったので、ImageMagickでSVG形式のファイルを変換した。 mkdir png find . -name *.svg | perl -ne '$f = $_; chomp $f; (undef, $d) = split("/([^/]+)\$", $f); `conver…

#ISUCON 2013に参加しました

ISUCON2013 に参加したやったこととか感想とか。 @w650、@nobu_ohtaとチームを組んでの参戦。 横浜会場の様子です #isucon pic.twitter.com/M7F9yac21o— NAGATA Hiroaki (@handlename) 2013, 10月 5 DS置いてあるけど狩りに行ってたわけじゃないです。 あ、…

tmuxのコピーモードの選択範囲を外部のコマンドにわたす

tmux 1.8 tmuxのコピーモードで、選択中のテキストを外部のコマンドに渡せたら捗るのになー と思ってman引いたらそのまんまな例が載ってた。 One command accepts an argument, copy-pipe, which copies the selection and pipes it to a command. For examp…

YAPC::Asia Tokyo 2013に参加してきた

参加するのは今回で4回め。 今回はスピーカーとしての参加だった トークのページ 40分枠なのに30分ではなす内容は終わってしまったけど、質問をたくさんもらえたので命拾いした 自分が所属しているプロジェクトのこと(=自分が直接関わった物以外も含まれる)…

buffer-moves導入してみた

emacs 24.2.1 bufferの移動には buffer-moveがいい感じ - Life is very short 便利そうだったので導入してみた。 el-get のレシピに最初から入っているので、 M-x el-get-install<RET>buffer-moves でインストールできる。 カーソルキーが空いていたので、キーバ</ret>…

ログイン時にencfsをマウントする

encfs 1.7.4 zsh 5.0.2 .zshrc に次のように書いておく。 if [ ! -d "$HOME/crypt" -o -z "$(ls -A $HOME/crypt)" ]; then encfs ~/.crypt ~/crypt fi ログイン時には必ずターミナルを立ち上げるので、これで充分。

直前の発言を置換する IRC bot

タイポして投稿した時に handlename: 毛根な時間 handlename: s/毛根/もうこん/ みたいな感じで発言を訂正することがある。 Skype だと実際に自分の発言が修正されるので、IRC でもやってみた。 過去の発言を修正することはできないので、修正版の発言を再投…

IRC に issue 番号に反応する bot がいると捗る

IRC bot のはなし。 #123 みたいな文字列に反応して、 github の issue のタイトル github の issue の URL を返してくれる bot をつくったら思いの外便利だった。 #!/usr/bin/env perl use strict; use warnings; use utf8; use AnyEvent::IRC::Client; use…

emacs から git diff を開く

emacs 24.2.1 git 1.8.2 tmux 1.7 iTerm 1.0.0.20130319 emacs から tig blame を開く - handlename's blog の派生。 diff も見れたら便利なんじゃないかということで追加してみた。 ついでにリファクタリング。 tmux にコマンド送るのは他にも色々応用でき…

emacs から tig blame を開く

emacs 24.2.1 tmux 1.7 iTerm 1.0.0.20130319 tig blame が便利らしいということで、emacs からさくっと開けるようにしてみた。 git-project-p はこちらから拝借。関数名は変えてある。 http://shibayu36.hatenablog.com/entry/2013/01/18/211428 べんり〜

マージ済みのブランチをまとめて削除する便利スクリプト書いた

git 1.8.1.1 perl 5.16.2 マージ済みのブランチを消したい。 リモートリポジトリにあるのもいっしょに消したい。 というのを叶えるために簡単なスクリプトを書いた。perl。 https://github.com/handlename/bin/blob/master/delete-merged-branches ドライラ…

tmux で直前の window に戻りたいとき

tmux 1.7 last-window にキーバインドを設定しておくと捗る。 むしろなんで今まで設定しておかなかったのか…。 bind-key C-t last-window 自分の場合プレフィックスキーを C-t にしてあるので、 C-t C-t とすれば直前の window に切り替えられる。 大量に wi…

大量のJSONをデコードする場合

全てつなげて一つのJSONにしたほうが速くなるんじゃないかと思ったんだけどそんなことなかった。 #!/usr/bin/env perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; use JSON::XS; my @jsons = map { encode_json({ hoge => 'huga' }) …

Warn::Colorful というモジュールを書いた

printf デバッグをするとき、perl の場合 warn を多用する。 warn はメッセージといっしょに呼び出し元のファイル名/行番号も表示してくれるので 出力元の特定が簡単、なんだけど、 ファイル名/行番号表示に埋もれて肝心の値が見にくいことがあるので、 値 …

時間がかかったら通知する設定を2段階にした

zsh

以前書いた、 時間がかかるコマンドを実行した後に通知する をちょっと改良。 notify_threshold 以上の時間がかかったら notify_notify を実行 notify_threshold2 以上の時間がかかったら notify_notify2 を実行 となるようにした。 次のように書いて、 時間…

helm の C-h を delete-backward-char にする

helm で文字入力中に C-h で delete-backward-char したい。 現時点ではデフォルトの C-h C-d helm-debug-output (helm.el) C-h C-b helm-send-bug-report-from-helm (helm-files.el) を定義しないフラグは用意されていないようなので、無理やり上書きする。…

Chromeウェブストアに拡張を公開してみた

初回費用として$5払えばストアに公開(ただし20個まで)できるとのことなので、 せっかくなのでお布施して公開してみた。 tab anything PostIt スクショとか説明とか、ちゃんと用意したほうがいいかも。 21個以上公開したい場合はどうするんだろう?

emacsでwhitespace-cleanupした時のスタイル

emacs24.2.1 余計な行末のスペースを一括削除するときは、 whitespace-cleanup を使うと便利。 whitespace-style にもとづいて空白文字の整形をしてくれる。 先日拡張 elisp の管理をすべて el-get に移行したら どの部分が原因かはわからないけど whitespac…

package + auto-install から el-get に移行する

auto-install だったり github から個別に clone していたものを el-get に一本化。 https://github.com/handlename/dot-emacs パッケージをリストアップ require や auto-load している部分を grep して抽出。 こんな感じのインストール処理を用意。 (defva…

時間がかかるコマンドを実行した後に通知する

zsh

テストとか、ファイルのアップロードとか、 時間のかかるコマンドが終わったら通知してほしい。 rsync heavy.tar.gz remote:/path/to/dist && <終わったら実行する処理> みたいにしてもいいけど、やっぱり自動で通知してほしい。 zshにはhookというものがあ…

homebrew ディレクトリを home ディレクトリ以下に移動したメモ

追記 こんなエントリを書いておいてなんですが、 結局 /usr/local 以下にインストールし直しました。 libディレクトリの位置が変わったりして、 正常にインストール出来ないパッケージがあるようなので。 brew doctor したときも、デフォルトの位置から移動…

ZNCってひとつのアカウントで複数サーバーに接続できるよね?

znc 1.0 IPv6: yes, SSL: yes, DNS: threads irssi 0.8.15 (20100403 1617) 「複数のサーバーに繋ぐときにはアカウントを同じ数作ろう」っていう エントリをいくつか見かけたけど、 わざわざそんなことする必要ないような。 単に Network タグを並べればOK。 <User handlename></user>…

最近のzshまわり

zsh

色々変更加えたので今どんな感じなのかメモっておく。 zaw https://github.com/zsh-users/zaw zsh で使える anything ライクなインターフェイス。 自分で絞り込み対象を追加できるみたいだけど、 いまのところデフォルトのもので事足りてる。 source ~/dev/c…