サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やろう!確定申告
handlename.hatenablog.jp
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 べんり〜
emacs 24.4.50.1 emacsの設定を一からやり直してからか、 マルチバイト文字を入力した時に、 以下のようなエラーが表示されるようになってしまっていた。 These default coding systems were tried to encode text in the buffer `AppVideoSuggestHint.pm': (undecided-unix (482 . 12354)) However, each of them encountered characters it couldn't encode: undecided-unix cannot encode these: ¤¢ Click on a character (or switch to this window by `C-x o' and select the characters by
GNU Emacs 24.4.50.1 highlight-symbol 1.2 hydra 0.10.0 Awesome Emacsという 便利packageリンク集があるのを知って眺めていたら、 表題のhighlight-symbolとhydraを組み合わせてみたら捗るんじゃないかと 思って組み合わせてみたらやっぱり捗りそうな感じだったのでメモしておく。 highlight-symbolとは 名前の通りコード内の同一シンボル(と思われるもの)をハイライトしてくれるツール。 hydraとは 関連するコマンドを複数定義して、 それらのコマンドを連続して簡単に呼び出せるようにするツール。 捗る設定 init.elに以下のように書いて、評価して、 (global-set-key (kbd "C-x H") (defhydra hydra-highlight-symbol (:post (pro
tmux 1.8 以前こういうエントリを書いた。 ローカルで使っているtmux.confに以下のような設定を書いて、 選択範囲をnopasteに投げられるようにしていた。 bind-key -temacs-copy C-q copy-pipe "cat | ~/bin/np" 上の例にあるnpというコマンドは、 nopasteした後にそのURLを標準出力に出す そのURLをブラウザで開く というもの。 copy-pipeした場合は標準出力が見られないものの、 ブラウザで開くというのは有効なのでローカルで使っている分には特に問題がなかった。 しかし、リモートでtmuxを使っている場合は ブラウザが開けないのでnopasteしたURLが得られず 無意味な設定になってしまう。 アカウントに紐付いたものリストが見られるような nopasteサービスを使っていればそこから辿れなくはないが、 めんどく
順位はこちら。 ISUCON4 本選結果 : ISUCON公式Blog 表題の通り感想がメインです。 結果 (2位以上に大差を付けられての)3位だった 推測できたはずのスコアアップポイントに気付けなかった 今年の問題 動画広告配信サービスをいい感じにスピードアップする 動画広告の入稿・配信・レポート機能がある サーバーは3台 残業(開始が遅れたことによる1時間延長)あり やったこと @acidlemonさんの記事を読んでもらうのがいいかと。 Cache-Controlを有効にして高qps勝負に持ち込むところまで行けなかったので、 後半はアプリよりもnginxとベンチマーカーのパラメータのチューニングがメイン。 感想など 複数チーム分同時に走らせていた影響か、 ベンチマーカーの結果が乱高下して打ち手が効いているのかどうなのか 判断できなかったのが残念。 とはいえキャッシュを効かせて帯域勝負を
ISUCON4の予選にfujiwara組として参加したのでその感想です。 fujiwaraさん(ISUCON1,2優勝/ISUCON3出題) acidlemonさん(ISUCON3出題) handlename(ISUCON3予選敗退) というメンバーでした。(アレッ一人浮いてる!) まとめ 長いのでまとめを最初に書いておきます 最終スコアは67782 アプリが激薄だったので、できるだけ外部(MySQLとか)への接続がなくなるよう変更を入れた 静的ファイルの点数を捨てた 無理せず普段から使い慣れているもの(Perl,Redis,MySQL)を使った 少なくとも競技中に見えていたものについて、やるべきことは全てできた ISUCONたのしい 以下時系列順でお送りします。 主に自分がやった変更を書いています。 誰がやったか覚えているものについてはカッコ書きで名前を書いてます。 fujiwaraさん
emacs 24.4.50.1 atom 0.124.0 .emacs.d が事故で消えてからはや半年、 そのあいだ atom を使っていたのだけど物足りない感じがしてきたので 一から emacs の設定をしたはなし。 リポジトリはこちら。 いちいちリポジトリ毎作りなおすのが面倒だったので、 タグ を切って ファイルを全消しするスタイルにした。 handlename/dot-emacs 移行したもの quelpa なんか新しいらしい。 "ケルパ" って読むのかな? el-get から移行。 el-get はキャッシュファイル(?)が壊れるとリカバリーが面倒だったので。 (そんなに頻繁になることではないから、実質大した不満はなかったのだけど) 自分でレシピを追加できるのがいい。 でもまだ MELPA にあるものしか使ってない。 気に入らなくなった時に package.el にすぐ戻れそうなと
go 1.3.1 なにか書き始めるとき、小さいものでもとりあえず git で管理するようにしている。 で、ちょっと大きくなると .gitignore ファイルを置く必要が出てくる。 このときいつも github/gitignore から 該当言語を探して raw の URL をたどってダウンロード、というのをやっていたのだけど、 いいかんげんめんどくさくなってきたので楽して取ってこれるツールを書いた。 go の練習も兼ねてる。 https://github.com/handlename/go-get-git-ignore REAMEにあるように言語一覧のファイルを用意して設定を .zshrc に書くと、 こんな風にこんな風にインタラクティブに絞り込んで目的の言語の .gitignore を取ってくることができる。 peco 便利。 言語一覧ファイルの生成機能くらいはつけてもいいかなーと思っ
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-region) (mykie:global-set-key "M-w" :default '(kill-ring-save (line-beginning-position) (line-end-position)) :region 'kill-ring-save) (mykie:define-key-with-self-key "a" :region 'a
今回の成果↓ (参加してきましたエントリにちょこちょこ登場しててうれしい) 予選でなすすべなく敗退したので、本戦では問題アプリの言語移植と、テスト回答、当日運営のお手伝いをしていました。 移植 @fujiwaraさんが作ったperlのリファレンスアプリをnodejsに移植するというのを担当したのですが、 mysqlのユーザー指定が空になっている(オブジェクトのキーが間違っていた…!)ことを本戦中に指摘されてしまいました…。 nodejsで挑戦していたチームの方々ごめんなさい。 いちおう言い訳をしておくと、 nodejsのmysqlモジュールは、ユーザー名の指定がない場合はrootとしてつなぎに行くようになっていて、 検証中(=サーバー1台)では問題なく動作してしまっていたのです。 サーバーを増やすとrootでは外からつなぐことができないので正常動作しないという…。 すべての言語のアプリをが
4年ほど使ったemacsからST2に乗り換えてみたメモ。 ST2の使用期間は1週間くらい。 emacsの設定は ここ。 ST2の設定につてはまだ固まってないので割愛。 きっかけ Marvericksをクリーンインストールして、 .emacsのバックアップをそのまま置いたら動かなかったので。 el-getでパッケージを入れなおしても バイトコンパイルで失敗したりしてうまく行かなかったので この際乗り換えてみるかーということでやってみた。 emacsの機能/拡張と同等のプラグインが見つかったもの el-get → Package Control https://github.com/dimitri/el-get https://sublime.wbond.net/ 検索サイトが見やすい。 画面分割 → origami 基本機能 https://sublime.wbond.net/package
ISUCON2013 に参加したやったこととか感想とか。 @w650、@nobu_ohtaとチームを組んでの参戦。 横浜会場の様子です #isucon pic.twitter.com/M7F9yac21o— NAGATA Hiroaki (@handlename) 2013, 10月 5 DS置いてあるけど狩りに行ってたわけじゃないです。 あ、始まる前は狩りに行ってたけど始まってからは行ってないです。 さっきHR51になりました。 最終的な構成 perlアプリ + nginx + mysql + redis memcachedを使っていると思ったら実は使ってなかった。 やったことを覚えている範囲で書いてみましょうか。 git とりあえずサーバー上にgitリポジトリを作る。 各自このリポジトリからcloneして、変更を加えたらpushする、とういうやり方にした。 スコアが下がる変更を入れてし
テストとか、ファイルのアップロードとか、 時間のかかるコマンドが終わったら通知してほしい。 rsync heavy.tar.gz remote:/path/to/dist && <終わったら実行する処理> みたいにしてもいいけど、やっぱり自動で通知してほしい。 zshにはhookというものがあるので、これを使えば何とかなりそう。 で、なんとかしてみたのが以下。 使うときは、 .zshrc に次のように書く。 source /path/to/notify.sh # 秒数。これ以上時間がかかったら通知する notify_threshold=30 # コマンド実行後に呼ばれる関数 function notify_notify { `curl https://im.kayac.com/api/post/*** -s -d message="done: $notify_prev_command" >
追記 こんなエントリを書いておいてなんですが、 結局 /usr/local 以下にインストールし直しました。 libディレクトリの位置が変わったりして、 正常にインストール出来ないパッケージがあるようなので。 brew doctor したときも、デフォルトの位置から移動していると次のような警告が出ます。 Warning: Your Homebrew is not installed to /usr/local You can install Homebrew anywhere you want, but some brews may only build correctly if you install in /usr/local. Sorry! 追記終わり remote リポジトリを追加したり、自分で書いた Formula を commit したりしてたら brew update するた
znc 1.0 IPv6: yes, SSL: yes, DNS: threads irssi 0.8.15 (20100403 1617) 「複数のサーバーに繋ぐときにはアカウントを同じ数作ろう」っていう エントリをいくつか見かけたけど、 わざわざそんなことする必要ないような。 単に Network タグを並べればOK。 <User handlename> ... <Network freenode> <Chan #minecraft> ... </Chan> ... </Network> <Network 2ch> <Chan #ロビー> ... </Chan> ... </Network> </User> irssiでつないだ時のチャンネル表示も freenode/minecraft みたいになるので 別のサーバーで同じチャンネル名があっても問題ないはず。 いまのところこれで不便はし
最近使い始めたmuCommanderのショートカットキーをメモっておきます。 ヘルプから見れるものそのままですが、一覧として見たかったので。 "/"は"または"の意味です。 操作 ショートカットキー アクション Alt+F1 左ドライブ選択 Alt+F2 右ドライブ選択 Ctrl+G パス入力 Tab / Shift+Tab もう一方のペインに移動 Backspace / Left 親ディレクトリに移動 Enter / → ディレクトリ/アーカイブに入る Shift+Enter 関連づけにしたがって実行 Ctrl+L エクスプローラ/Finderで開く Esc 取り消し Home 現在のペインの先頭にあるファイル/ディレクトリを選択 End 現在のペインの末尾にあるファイル/ディレクトリを選択 選択範囲 ショートカットキー アクション Space or Insert 選択されたファイル/デ
http://atnd.org/events/21982#comments:title=Emacs Advent Calender jp: 2011 の12日目です。 11日目は id:rubikitch さんの 集中力5倍!小よく大を制するミニマリストEmacs - (rubikitch loves (Emacs Ruby CUI Books)) でした。 昨年は org-modeでTODO管理 - handlename::blog というエントリで参加しました。 今年はalignのルール設定について、例を挙げながら説明してみます。 align emacsにはalignという機能があります。この機能は拡張elispを追加することなく、デフォルトの状態で使用することができます。 たとえばこんなコードを、 int count = 0; float degree = 0.2; リージョン選択し
MacBook Air にしたときに macports から homebrew に乗り換えた、が、 macports に比べて homebrew ははじめから入っているパッケージが少ない。 入っていないものは自力でコンパイルすればいいのだけれど、 homebrew で入れたものと自力で入れたものが混ざってなんだかいやだ・・・。 そんなときは自分で Formula (パッケージ(のようなもの)を定義するRubyファイル) を書けばいいのです。 macports でもパッケージを追加したりできたんだろか…。 調べずに移行してしまったのでその辺はわからず。 参考ページ。本家。 https://github.com/mxcl/homebrew/wiki/Formula-Cookbook 以下は apache の Formula を書く手順。 内容は参考ページに書いてあることほぼそのまんま。 ソース
前回の記事で出ていたエラーメッセージについて、解決したので。 darwinでgdbを使って デバッグする = プロセスを制御する ためには権限が必要なんだそうです。 Building GDB for Darwin - GDB Wiki なので、gdbを実行するときに $ sudo gdb hogehogeとすればデバッグはできるのですが、わざわざ管理者権限でデバッグするのは嫌><!ということで、証明書をつくってプロセスの制御を許可する、というのがスマートな方法らしいです(ということがまんま上記のページに書いてあります:p) せっかくなので証明書のつくりかたと登録の方法をSS入りで。 証明書の作成 キーチェーンアクセスでつくります。 キーチェーンを起動して、 キーチェーンアクセス > 証明書アシスタント > 証明書を作成...を選択。 名前: gdb-cert (わかればなんでもいい) 固有
新しいMacBookAirを買ってから1週間ほど経ったので、その間やったことをまとめてみます。 スペック 11インチ Core i7 1.8GHz メモリ4GB SSD256GB ベンチマーク とりあえずベンチマーク。 GeekBenchを使用。 MacBook Air4,1 MacBook Pro (13-inch Mid 2009) Score 5822 3554 Integer 4330 2915 Floating Point 8039 5241 Memory 5201 2589 Stream 4536 1823 速い。 設定など システムフォルダ名を日本語に 日本語のままだとコマンドラインでの移動がやりにくいので。 $ cd /System/Library/CoreServices/SystemFolderLocalizations/Japanese.lproj $ sudo mv
Test::mysqld を別ウィンドウで立ち上げたら開発時の prove が快適過ぎる件 - Craftworks Tech Blog - Branch OSX で tmpfs 的なことをする方法 - unknownplace.org OSX で tmpfs 的なことを試してみる - すぎゃーんメモ を参考に、Test::mysqldを使い回しつつメモリ上のディスクで読み書きするようにしてみた。 メモリ上に仮想ディスクをつくってマウント man 8 hdid に書いてあるものをほぼそのまま利用。 hdimount #!/bin/sh NUMSECTORS=128000 mydev=`hdid -nomount ram://$NUMSECTORS` newfs_hfs $mydev mkdir /tmp/mnt mount -t hfs $mydev /tmp/mnt ~/bin に置いて
id:k1LoW さんの 空気のようなEmacs Lisp -2010 冬- - Emacs/Lisp/Drill - Emacsグループ を読んで、いまだに smartchr を使ってなかったことを思い出したので入れてみた。 全てのモードで有効にするのは逆に不便になるので("-"を使った箇条書きとか)、add-hook で必要なモードでだけ有効にするようにした。 ;; INSTALL ;; (install-elisp "https://github.com/imakado/emacs-smartchr/raw/master/smartchr.el") (require 'smartchr) (defun my-smartchr-setting () (local-set-key (kbd "=") (smartchr '(" = " " == " "="))) (local-set-k
perltidy、便利ですね。なにも考えなくても(見た目が)きれいなコードになおしてくれます。 で、最近読んでるPerlベストプラクティスに、こんな設定例が書いてありました。 perltidy -q -l=78 # Max line width is 78 cols -i=4 # indent level is 4 cols -ci=4 # Continuation indent is 4 cols -vt=2 # Maximal vertical tightness -cti=0 # No extra indentation for closing brackets -pt=1 # Medium parenthesis tightness -bt=1 # Medium brace tightness -sbt=1 # Medium square brace tightness -bbt=
ケータイサイトではカタカナを半角で表示するのが慣習ですが、ぼくはこの変換をしょっちゅう忘れてしまいます。カタカナの書き直しのためだけにデプロイし直すのはなんともむなしいです。 そんなむなしさを解消するためにカタカナを半角カタカナに変換するelispを書きました。 最初から入っている japanese-hankaku-region を使ってカタカナを変換しています。japanese-hankaku-region はひらがなも半角カタカナに変換してしまうため、一度カタカナの文字列を検索してそれらを対象に処理をおこなうようにしています。 ファイル保存時に ktai-hankaku-katakana-buffer を実行すれば、変換し忘れミスはなくなるはずです。 今回初めてまともに elisp を書いたんですが、そもそもバッファの文字列を読み取る方法がわからなかったり、デバッグ方法がわからなかった
maeshimaさんの記事と、それに対する rubikitchさんの記事を見てMacでsudo-ext.elが使えるか試してみた。 たしかに、ただsudo-ext.elを入れただけでは使えない(emacsがフリーズ)。 で、最終的に使えるようになった手順は以下の通り。 portでsudoをインストール sudoeditを使うため。 $ sudo port install sudo sudoersを編集 visudoでsudoersファイルを編集する。 このときファイルを指定して編集するようにする。 $ sudo sudoedit -f /etc/sudoersファイルを指定しない場合、/opt/local/etc/sudoersが編集対象となる。emacsからsudoeditする場合はこちらのファイルは見ていないようなので、先ほどのようにファイルを指定して編集する必要がある。 sudoed
昨日グリー株式会社であったモダンPHP勉強会でメモったことへのひとり突っ込み。 引用部分がそのときのメモ、その下が見返したときの感想です。 Twig by @cocoitiban ZyngaではPHP5.3は1年ほど案件で使ってる 特にトラブルなし[2010.12.19 9:10 追記] Zyngaさんの社名をタイポしていたので修正しました。 以降は細かい変更点に対応するのが大変そうですが、新規案件なら問題なさそうですね。 今のところCentOSではじめから入っているPHPは5.1.6なので(たしか)、どうせ5.2にアップグレードするなら5.3にしてしまってもいいのかもしれません。 クロージャ使いたい。 Smaryが高速なのはキャッシュしてAPCに載っけてるから 最近のPHPはテンプレートエンジン使ってない ->テンプレートエンジンはモダンじゃない? 議論が一周してテンプレートエンジンが使
Emacs Advent Calendar jp: 2010 : ATND の10日目です。 2011-01-02 タイポ修正 勢いで参加したものの、elispはさっぱりかけないので、 日々使っている機能を紹介する路線で行ってみようと思います。 org-mode でTODO管理をする方法を紹介します。 今回は素の org-mode で使える機能について触れてみます。 org-mode? 超高機能なアウトライン記述用メジャーモードです。 日付タグを入れたりファイルやWebページにリンクを張ったり表計算とかができたりします。 この辺参照。 OrgMode - Emacs上のアウトライナー なんでorg-mode? TODOの管理方法でいろいろ試して悩んだ結果、 結局 org-mode に落ち着きました。 理由は、 emacs(= メインの作業環境)上で操作が完結する 時間が計れる の2点です。
limeのis_deeply。配列を比較できて便利だけど、いかんせん結果が見にくい。 と、いうわけで自前で書いてみた。 たとえばこんな配列を渡すと、 $a = array( 'hoge' => 'hogehog', 'huga' => 100, 'moga' => array( 'a' => 'aaa', 'b' => 'bbb', ), ); $b = array( 'hoge' => 'hogehoge', 'huga' => '100', 'moga' => array( 'a' => 'aaa', 'b' => 'bb', ), ); $diffs = is_deeply($a, $b); こんな結果が帰ってくる。 Array ( [[hoge]] => Array ( [0] => hogehog (string) [1] => hogehoge (string) ) [[hug
MIME::Base64 を使用。 perl v5.12.1 use MIME::Base64; my $image_base64 = '<base64エンコードした画像'>; # base64形式からデコード my $image_bin = decode_base64($image_base64); # ファイルを開く open $fh, '+>', '/path/to/file' or die "Cannot open : $!"; # ファイルをバイナリモードに binmode $fh; # 書き込み print $fh $image_bin; # ファイルを閉じる close $fh;
次のページ
このページを最初にブックマークしてみませんか?
『handlename's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く