handlename's blog

コード片など

ブログ移転しました

実はもう1年以上経っているのだけど、ブログをはてなブログから自前ホスティングのものに移転した。 http://blog.handlena.me/ 移転先の関連エントリ: ブログを移転しました はてなブログに書いた過去の記事をhugoの記事としてインポート ブログのホスティン…

Macbook Pro Early 2015をセットアップするときにやったこと

mac

メインマシンがMacBook Air 2011から MacBook Pro (Retina, 13-inch、Early 2015)に変わったので セットアップ時にやったことをメモしておく。 MacBook Airの時のメモはこちら MacBookAirを買ってからやったこと Airの時は結構細かく書いているが、 今回は設…

emacsで使い捨てディレクトリをさくっと作る

emacs 24.5.1 open-junk-fileを使うと 使い捨てファイルをさくっと作ることができる。 使い捨てディレクトリも同じようにさくっと作りたい。 ということでopen-junk-fileを真似してopen-junk-dirというコマンドを作った。 https://github.com/handlename/dot…

highlight-symbolとhydraを組み合わせると捗る

GNU Emacs 24.4.50.1 highlight-symbol 1.2 hydra 0.10.0 Awesome Emacsという 便利packageリンク集があるのを知って眺めていたら、 表題のhighlight-symbolとhydraを組み合わせてみたら捗るんじゃないかと 思って組み合わせてみたらやっぱり捗りそうな感じ…

tmuxのcopy-pipeとsplit-windowを組み合わせると捗る

tmux 1.8 以前こういうエントリを書いた。 tmuxのコピーモードの選択範囲を外部のコマンドにわたす - handlename's blog ローカルで使っているtmux.confに以下のような設定を書いて、 選択範囲をnopasteに投げられるようにしていた。 bind-key -temacs-copy …

flycheck用のgo-vetコマンドを再定義する

go 1.3.1 darwin/amd64 emacs GNU Emacs 24.4.50.1 わけあってgoamzのコードをemacs上で読んでいたら、 こことかで flycheck経由のgo-vetが次のようなワーニングを出していた。 composite literal uses unkeyed fields AttributeDefinitionsはsliceだから、…

#isucon 4決勝にfujiwara組として参加した感想

順位はこちら。 ISUCON4 本選結果 : ISUCON公式Blog 表題の通り感想がメインです。 結果 (2位以上に大差を付けられての)3位だった 推測できたはずのスコアアップポイントに気付けなかった 今年の問題 動画広告配信サービスをいい感じにスピードアップする 動…

emacsにマルチバイト文字を入力した時のエラー表示をどうにかする

emacs 24.4.50.1 emacsの設定を一からやり直してからか、 マルチバイト文字を入力した時に、 以下のようなエラーが表示されるようになってしまっていた。 These default coding systems were tried to encode text in the buffer `AppVideoSuggestHint.pm': …

goでJSONを比較したい場合

JSONでデータをやりとりするパッケージで、 得られるJSONが期待するものかどうかをテストするときにどうすればいいのか、という話。 ググってもこれといったものが見つけられなかったので interface{}な変数にjson.Unmarshalしてからreflect.DeepEqualしてみ…

#isucon 4にfujiwara組として参加しました

ISUCON4の予選にfujiwara組として参加したのでその感想です。 ISUCON公式Blog fujiwaraさん(ISUCON1,2優勝/ISUCON3出題) acidlemonさん(ISUCON3出題) handlename(ISUCON3予選敗退) というメンバーでした。(アレッ一人浮いてる!) まとめ 長いのでまとめを最…

atom から emacs に戻ったはなし

emacs 24.4.50.1 atom 0.124.0 .emacs.d が事故で消えてからはや半年、 そのあいだ atom を使っていたのだけど物足りない感じがしてきたので 一から emacs の設定をしたはなし。 リポジトリはこちら。 いちいちリポジトリ毎作りなおすのが面倒だったので、 …

emacs でシェルの環境変数を全部読み込む

emacs 24.4.50.1 zsh 5.0.2 perl 5.18.1 emacs で普段使っているシェルの環境変数を引き継ぎたい。 exec-path-from-shell を使うのがいいらしいが、 使いたい環境変数が増えるたびに el ファイルに追加していくのはめんどくさい。 ちょっと古いやり方かもし…

mimic っていう http mock サーバーを書いた

go 1.3.1 引き続き go 勉強中。 mux というものを知ったので これを使ってなにか書いてみた結果。 https://github.com/handlename/mimic ユースケース フロントエンドの人と平行して作業をするときに、 「このAPIまだ出来てないの?」 「とりあえず持っくで…

get-git-ignore というツールを書いた

go 1.3.1 なにか書き始めるとき、小さいものでもとりあえず git で管理するようにしている。 で、ちょっと大きくなると .gitignore ファイルを置く必要が出てくる。 このときいつも github/gitignore から 該当言語を探して raw の URL をたどってダウンロー…

go-opts というパッケージを書いた

go 1.3.1 go 言語でコマンドライン引数を受け取る場合、 flag というモジュールを使う。 http://golang.org/pkg/flag/ こんなコードを書くと --xxx / -xxx 形式でコマンドライン引数を受け取ることができる。 package main import ( "flag" "fmt" ) func mai…

zshrcにwidget定義して2ストロークでghq list -> pecoで絞り込み する

pecoとghqを組み合わせると便利やで〜 というはなしを聞いてはいたものの、まだ手を出していなかったので。 zshでzawを使っていて、gitのbranch切り替えとかは bindkey '^xb' zaw-git-branches みたいな感じでやっていたので、それに合わせてghqで管理してい…

GitHubのatomをちょろっと触ってみた感想

atom: 0.60.0 http://atom.io/ 運良くinvitationをゲットしたので軽く触ってみた感想。 atomで書きました! 見た目はSublimeTextにそっくり HTMLでできてるっぽい 「Toggle Dev Tools」するとChromeのインスペクタみたいなのが出てくる GUIの設定画面がある…

mykie.elが便利

mykie.el が便利だったのでいくつか設定してみた。 (require 'mykie) (setq mykie:use-major-mode-key-override t) (mykie:initialize) (mykie:global-set-key "C-w" :default '(kill-region (line-beginning-position) (line-end-position)) :region 'kill-…

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…