weblog of key_amb

主にIT関連の技術メモ

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

TAI64N

daemontools で利用されるタイムスタンプの形式。 仕様はここにある。http://cr.yp.to/libtai/tai64.htmlこの形式のログを人間が読みやすい形式で見るには、daemontoolsに付属される tai64nlocal コマンドを使う。 $ tai64nlocal < /path/to/log逆に、tai64n…

gdbperlの使い方

ちょっと固まったプロセスに strace してたら、「それgdbperl使った方がいいっすよ」って後輩に言われたので使ってみた。 gdbperlは https://github.com/ahiguti/gdbperl ここにある。 使い方は https://www.slideshare.net/akirahiguchi/gdbperl にある。 |…

rbenvでruby-2.0.0-p247をインストール

まだ途中。 環境は Fedora 18 on AWS。基本的に、https://github.com/sstephenson/rbenv のマニュアルを見ればできる(はず)。 rbenv のインストール git clone https://github.com/sstephenson/rbenv.git ~/.rbenvこの後、rbenvのコマンドを使うためのPATHの…

プロセスが使用している環境変数を調べる

Linuxでプロセスが使用している環境変数を調べるには、/proc/$pid/environ を見るといい。 sudo cat /proc/${pid}/environ 参考 プロセスが使用している環境変数を調べる at technote

git clean - 追跡されてないファイルを削除する

Git

ワーキングツリー上のgit管理下にないファイルは git clean で削除することができる。 git clean [-d] -n # 削除対象の確認 git clean -f # 削除実行 git clean -d -f # ディレクトリも含めて削除 d をつけると、ディレクトリも対象になる。 参考 transitive…

git filter-branch - 過去の歴史をまとめて塗り替える

Git

パスワードファイルが間違えてcommitされていたことに後から気づいた場合、過去のコミットにわたってこれを一括で消したい。 そんなことを行うときに、git filter-branchを使うといい。 || git filter-branch --index-filter \ "git rm -rf --cached --ignor…

IO負荷の高いプロセスを特定する方法

カーネルの I/O Accounting 機能を利用する Linuxでカーネルのバージョンが 2.6.20 以降であれば、IO Accounting機能を使うとよい。 これが有効になっていれば、プロセス毎のI/O統計情報が /proc/${pid}/io に出力される。 …が、全プロセスについて、これを…

Vimでセッションの保存と読込み

Vimで次のコマンドを打つと、現在開いているバッファやウィンドウの状態を ~/Session.vim というファイルに保存してくれる。 :mksただし、既に ~/Session.vim があるときは上書きしてくれず保存に失敗する。常に上書きたい場合、 :mks!として、強制保存する…

skip-character-set-client-handshake

mysqld でこの設定を有効にしていると、クライアント側の文字コード設定を無視する(=サーバ側で設定した文字コードを使用する)。 クライアント側で接続時に文字コード設定を行うのであれば、この設定をすべきではない。 参考 MySQL :: MySQL 3.23, 4.0, 4.1 …

Mac上のVMwareでWindowsを動かすときのTips

おそらくこの記事を読んで役に立つ人は少ないと思われるが、個人的に忘れがちなTipsをまとめておく。 Ctrl+Alt+Delete を打つ WindowsのAlt => MacのOptionキーに相当。 手元のMacBookAir 日本語キーボードだと Delete = 「Fn + Backspace」なので、 Ctrl+Al…

git:リモートブランチの作成/削除

Git

branchの作成 git checkout -b {branch名} 作成したbranchをリモートリポジトリにpush git push origin {branch名} リモートブランチからローカルに作業ブランチを作る git checkout {branch名} origin/{branch名} リモートブランチの削除 git push origin :…

Vimでテキストの折りたたみの設定

最近まで知らなかったのだが、VimではFoldingという機能があって、テキストを段落ごとに折りたたむことができる。 http://vimdoc.sourceforge.net/htmldoc/fold.html 例えば以下のように設定する。 || set foldmethod=indent set foldlevel=2 set foldcolumn…

Amazon EC2にFedora 19のインスタンスを作ってみる

AWS

EC2でDebian Squeezeのインスタンスを作ってみる - weblog of key_amb と同じような流れ。 fedoraproject.org が用意してくれているEC2用のAMIイメージは https://fedoraproject.org/wiki/Cloud_images にある。 2013/6/21現在、Fedora 19-Beta x86_64のAMI …

誤って作成したbonding deviceをきれいに削除する

とあるCentOSのVMで誤って tcpdump -i bond0 を実行してしまったところ、bond0 が作成されてしまった。 が、実際にはbondingは有効になっておらず、bond0は上がってなくておかしな状態。該当時刻にkernelが次のようなログを吐いていた。 kernel: bonding: MI…

git stashの使い方

Git

ローカルのワーキングツリーを編集した状態でgit pullすると、警告が出てpullできないことがある。 そんなときは、git stashで一時保存するとよい。 すると、ローカル編集がstashに退避されるので、pull可能になる。pullした後、git stash pop で stash に退…

gitの出力に色をつける

Git

下記を実行する。 $ git config --global color.ui true これで git diff や git status の表示がカラフルになって、はかどる。 参考 Git - Git の設定

Term::ANSIColorでテキストに色を付ける

前掲のText::LTSV::Linerでも、そもそもText::LTSVの中で使われているYAML::Tiny::Colorでも使われている Term::ANSIColor というモジュールを使うと、ターミナルに出力するテキストに色を付けることができる。http://perldoc.perl.org/Term/ANSIColor.html …

Text::LTSV::Liner 書いてみた。

LTSVのPerlのパーサをCPANで探していたら、Text::LTSVとApp::YGが見つかったけど、どちらも次のような感じで複数行に分けて表示してくれるものっぽかった。 $ cat sample.ltsv | ltsview -k id,name --- id:001 name:taro --- id:002 name:jiro --- :ログと…

Macでマウスカーソルを見失わないようにする

Macはマウスカーソルが小さい。 しかも、ターミナルやエディタを開いていると、ほぼほぼ背景に溶け込んで見失うことがままある。 Windowsだと「Ctrlキーでマウス位置を表示する」みたいなマウスオプションがあるのだが、Macにはそういうのはないのだろうか。…

unite-outlineで見出し・関数にジャンプする

タグジャンプといえばCTagsですが、わざわざタグ生成するの面倒ですよね。ファイル編集したらタグを再生成しないと、変な位置にジャンプしちゃうし。 そんな人のために打ってつけのプラグインがunite-outlineです。 ** NeoBundleの場合のインストール vimrc…

Vim - Alignプラグインで表整形

Alignというプラグインを使うとテキストを縦に整形できます。 使い方は参考記事がわかりやすいですが、一応本文にも書きます。 NeoBundleの場合のインストール vimrcに NeoBundle 'Align'を書いて、 :NeoBundleInstallを打つだけ。 使い方 こんなコードがあ…

Vimで:set expandtabしてるときにタブ文字を入力する

入力モードで<C-v><Tab>を入力する。 以上。 参考 :set expandtab(:set et)設定の時に、タブ文字を挿入する — 名無しのvim使い</tab></c-v>

Vimで縦分割時に狭くなりすぎないようにする

Vimをファイルブラウザ的に起動して、oやvでファイルを分割して開くことはよくあるのではないかと思います。(ここまで前記事のコピペ) ですが、vで開くとデフォルトだと画面が狭すぎて大変不便です。vimrcに次のように書いておくと、いい感じの広さになりま…

Vimで新しいウィンドウを右や下に開く

Vimをファイルブラウザ的に起動して、oやvでファイルを分割して開くことはよくあるのではないかと思います。 そのとき、デフォルトだと上か左に開いてしまうのですが、以下のようにvimrcに書いておけば、この挙動を変更できます。 " 新しいウィンドウを下に…

CentOS 5にVim7.3をインストール

CentOS 5の開発環境でNeoBundlerを使おうとしたら、動かなかった。 カッとなったので、参考記事を参考にVimをバージョンアップした。 ** 1. 事前準備 ビルドに必要なパッケージをインストールしておく。 || $ sudo yum install ncurses-devel ||< ** 2. ソー…

Vimプラグインの管理にNeoBundleを使う

※2015/6/12 .vimrc の書き方を最新に更新しました。 NeoBunlde は Vundle を元にして作られた改良版のようだ。 http://vim-users.jp/2011/10/hack238/ に作者の記事がある。 使い方は簡単。 || mkdir -p ~/.vim/bundle git clone https://github.com/Shougo/…

CentOS 5にruby 2.0.0をインストール

rootで作業する。 http://www.ruby-lang.org/ja/downloads/ から最新のrubyを取ってくる。手元の環境だと古いバージョンのrubyがyumでインストールされていたので、 yum remove rubyで、予めアンインストールした。 tar xvzf ruby-2.0.0-p195.tar.gz cd ruby…

Module::Installでモジュールを作ってみる

おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史 にCPANモジュールのパッケージングの歴史があり、トレンドを知ることができる。Module::Installには課題もありそうだが、現在は広く普及してて無難っぽい。 ので、手始めにこれを使っ…

Macにplenvを入れる

https://github.com/tokuhirom/plenvplenvはperlbrewのようにPerlの複数バージョンを切り替えて使えるツールである。 githubのREADMEにあるように、Mac OS Xであれば、以下でインストールできる。 ※事前にHomebrewのインストールが必要。 brew update brew i…

MacのHome/End/PageUp/PageDownキー

Macbook AirのキーボードにHome/End/PageUp/PageDownキーがなくて困っていたら、commandキーで代替できることを知った。 Home command + ← End command + → PageUp command + ↑ PageDown command + ↓ ※参考記事だとFnキーが正しそうだが、手元のMacbook Air…