autojump入れた
- autojump最新版はpython2.6を要する
- prefix変えて2.6入れたけど、tagsに2.4対応版があったのでそっち使った
- ただし大分古い。機能の違いは知らん
2.4しか入っていない状態(2.6が$PATHに無い)でinstall.shを叩くと以下のように言われるのでv12を入手。
Alternatively, you can download v12 that supports Python v2.4+ from: https://github.com/joelthelion/autojump/tags
git submoduleにしようと思ったけど、install.zshを見て少々書き換えたくなったので直にzip持ってきて俺dotfilesに配置。
どこに置こうか悩んだ挙句 dotfiles/.opt/autojump_v12 とかいうパスに。ubuntuが確か /opt にoptionalなパッケージ入れるんだっけとか思って。
vundleみたいにそもそも ~/.vim のようにパッケージが属するのに適したディレクトリが無い(多分)ので、まあここでいいかと。
zshを使うと $fpath という環境変数が作られる。基本的にsudoが不要な場所にzshを入れて使っているけどそうじゃない環境もある。
fpathは /usr/local/share/zsh/site-functions みたいな場所。install.zshの中でここに_jをcpしているがさすがにsudoが要る。
自分一人だけの環境しか使わないならまだしも、そうはいかない場合も多々あるので、極力自分にしか影響が及ばないようにしたい。
さて。
まずはインストールのためのスクリプトを作る。setup_autojump.zshと名前を付ける。
cd .opt/autojump_v12/ _fpath=`echo $fpath | cut -d " " -f 1` sudo cp _j $_fpath mkdir -p ~/.autojump/share/man/man1 $SHELL ./install.zsh --prefix ~/.autojump
こんなのを /path/to/my/zsh ./setup_autojump.zsh で実行する。shだと $fpath が定義されない。
cdするのは後でそうしといたほうがいいため。
mkdirは後々使う。そして実行時に $SHELL がzshであることを期待する。さすがにそんくらい期待していいと思われる。
あと俺の場合は$HOMEにbinディレクトリが有る前提なので作ってないけど、無いなら作る。
んでinstall.zshを書き換える。fpathが絡むところ以外はsudoを除外する。
% diff org/install.zsh /path/to/my_dotfiles/.opt/autojump_v12/install.zsh 42,46c42,48 < sudo mkdir -p ${prefix}/share/autojump/ < sudo cp icon.png ${prefix}/share/autojump/ < sudo cp jumpapplet ${prefix}/bin/ < sudo cp autojump ${prefix}/bin/ < sudo cp autojump.1 ${prefix}/share/man/man1/ --- > mkdir -p ${prefix}/share/autojump/ > cp icon.png ${prefix}/share/autojump/ > cp autojump.1 ${prefix}/share/man/man1/ > > _pwd=`pwd` > ln -s "${_pwd}/jumpapplet" $HOME/bin/ > ln -s "${_pwd}/autojump" $HOME/bin/ < < if [ -d "/etc/profile.d" ]; then < sudo cp autojump.zsh /etc/profile.d/ < sudo cp autojump.sh /etc/profile.d/ < echo "Remember to add the line" < echo " source /etc/profile.d/autojump.zsh" < echo "or" < echo " source /etc/profile" < echo "to your ~/.zshrc if it's not there already" < else < echo "Your distribution does not have a /etc/profile.d directory, the default that we install one of the scripts to. Would you like us to copy it into your ~/.zshrc fil to make it work? (If you have done this once before, delete the old version before doing it again.) [y/n]" < read ans < if [ ${#ans} -gt 0 ]; then < if [ $ans = "y" -o $ans = "Y" -o $ans = "yes" -o $ans = "Yes" ]; then < echo "" >> ~/.zshrc < echo "#autojump" >> ~/.zshrc < cat autojump.zsh >> ~/.zshrc < else < echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" < fi < else < echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" < fi < fi
jumpstatとautojumpの2つのファイルをパスが通ったところに置こうとするので、symlinkで我慢していただく。
オリジナルのinstall.zshが、
- /etc/profile.d/ にファイルを置こうとする
- 置けるならよし。置けないなら「.zshrcでsourceしてね」という
となっている。/etc/とかにもの置いてほしくないので、.zshrcに "$HOME/.opt/autojump_v12/autojump.zsh" が存在すればそれをsourceする、ように書く。
load_if_exists () { if [ -e $1 ]; then source $1 fi } load_if_exists "$HOME/.opt/autojump_v12/autojump.zsh"
あとは ln -s .opt ~/ などとする。
さてこれで j が使えるようになったわけだけど正直そんな便利だとまだ感じていなかったりする。
ああそれにしても人が見ても意味分からんなこれ。むしろ自分も分からん。
ソース見つつ書き換えつつ色々やるのはいいんだけど後からそれをまとめる能力が欠けている。
人に上手に説明できる人凄いよねー
まあ分からんくなっても https://github.com/hirafoo/dotfiles をcloneするだけで済むし俺は困らんので別にいい。
そして一通りsetupしたところでautojumpよりz.shのほうがPythonなしで動いて良いよ | この先生きのこるにはとか見つけて何ともいえなくなる。何使えばええんや。
vimが重い件の詳細のメモのようなもの
--prefix=/usr/local/vim \ --enable-multibyte \ --enable-rubyinterp \ --enable-gpm \ --enable-cscope \ --with-features=huge \ --enable-fontset \ --disable-gui \ --without-x \ --disable-xim \ --enable-pythoninterp \ --enable-perlinterp
- dotfiles
git clone git://github.com/hirafoo/dotfiles.git cd dotfiles ./dotsetup.sh git submodule update --init vi :BundleInstall
vimでrubyのコードを編集するとき重かったら let g:ruby_path = "" とgem入れすぎとかを疑うとか後色々
いつからか分からないがvimでrubyのコードを編集しようとすると異常に重くなっていた。
最初はこんな重くなかったんだけど気が付けばマジでコードを書くのに支障が出るくらい重くて重くて。
しかし原因がさっぱり分からないし調べられるほどvim力が強くないので致し方なく耐える日々が続いていたのだけど、ふとtwitterでぼやいてみたら、あることを教えていただいた。ありがとうございます。
全然知らなかった。
というわけでまずは .vimrc に let g:ruby_path = "" を追記すべし。
.vim/bundle とか plugin とかいじったりしたら軽くなったりするので、僕の環境ではプラグインが原因なのかなあと思いつつ。
周囲の人に聞いてみたら、同じようにvimでrubyファイル開いたら重いわーって人が一人居たのだけど、これマイナーな問題なのか普通の人は出くわさないのか分からない。そしてその人からは「rubyの補完がそもそも重い」とか聞いた。
「vim ruby 重い」でググっても全然同様の症状に悩んでる人が見つけられないのだけど、マイナーなのだろうか。emacsとかだと関係ないのかな?
あとgem 121個って最初は入れ過ぎかなーと思ったけど比較対象が無いのでこれも分からないけどまあいいか。
むしろモジュール入れ過ぎると重くなるのはそっちを何とかして欲しいきも。Moose入れたらvimでperlのコード書くとき重くなりました!とか笑えんし。
エゴサーチ
という言葉をこないだ覚えた。
やってみた。
yahooオークションにハンドル被ってる人が居ることに今更気づいた。
別人です。
目に付くサービス全て取得とかしてないのでそらまあ有りえるのだけど。
地味に驚いた。
レプリケーションフローチャート
mysql40dumpを使おう。
始まり。
mysqldのバージョンは4.0以上?
- いいえ(=3.x以下)
- mysql40dumpがサポートしてるかは知らんが、そんなもの使ってるお前は帰れ
- はい
- 下へ
dumpしたバックアップが存在するか?
- はい
- 帰ってそれ使ってさっさとやれ
- いいえ
- 下へ
雑感
俺はコードを書くことができる。
が。
- ログやmod_statusを頼りにサービスの状態を可視化することはできない
- なのでサーバの状態、コードの改善すべき点などを発見できない
- そもそもコードを書く土台を作れない
- ミドルウェアに明るくない
- 今動いているものより性能のいいものを取り入れたりして負荷軽減やサーバ軽減などができない
- デフォルトのconfigそのままで、各パラメータの細部まで把握していない
- 何かしたいことがあったときにそれを実現できない
- 障害が起こったときに即座にアタリをつけられない
- perlしかできない
- それも少々
- 他の言語で作られたサービスに対応できない
- というかそもそもお金を得るためにコードを書くところまでもってこれない
- 営業もできない
- 戦略も立てられない
- ユーザビリティを知ることが出来ない
- デザインもできない
- ロゴも作れない
- マークアップも出来ない
- 人をまとめられない
- そもそも集められない
- 議論を開けない
- 人の意見を取り入れる・物事を進めることができない
- そもそもコードもそんな書けない
- 誰でも書ける程度のものしか書けない
- 俺個人の能力に価値が無い
- 居なくなっても影響が無い
- 有るようならそもそもそんな状況が終わってる
- 他の人より特化した能力が無い
- 誰でも書ける程度のものしか書けない
- 自分のみで何かを生み出すことが出来ない
- lanを構築することが出来ない
- メールサーバも構築できない
- セキュリティに明るくない
- セキュリティホールを見つけられない
- なので塞げない・アタックを防げない
- セキュリティホールを見つけられない
- 英語が出来ない
- confのコメントが読めない
- 読んでも正確に意味を読み取れない
- 意思疎通が出来ない
- confのコメントが読めない
飽きたので中断するけどこんな感じで出来ることはほんの一握りで、出来ない事のほうが圧倒的に多い。
出来ない事はもっともっとある。あれもこれも出来ないし知らない。一人ではほぼ何も出来ない。
というか一人で何でも出来る人なんてめったに居ない。居たらそいつ一人で会社起こして事業してればいい。そしてそれはとても難しい。
だから先のエントリのように会社に属して集団で仕事するんだよねー
というのを理解した上でそれでもぶん投げたい日々もある。だって(自粛)
あー元々こういう下らない事を書いていたんだったブログでは。