Hatena::ブログ(Diary)

aircastle.py このページをアンテナに追加 RSSフィード

2010-10-13

node.js, websocketのURL少しまとめ

連休中にたまたまいじっていたら、id:naoyaさんも書いておられたので少しURLだけまとめます。

node.js, websocket概要

node.js 入門

node.js サーバサイドで動かす。

websocket 入門

node.jsでwebsocket

とりあえず、インストールしたもの

2009-07-13

MacPortsを掃除する

にゃんこ先生のジャンボぬいぐるみを購入して、毎日もふもふしているわさびです。今回はタイトルの通り、MacPortsの掃除のお話です。

きっかけ

先日、MacBookさんのHDDの空き容量が1.16GBという危機的状況になりました。いろいろソフトウェアを削除しても、すでに何度も掃除をしていたので、ほとんど変わらず、頭を悩ませていました。そして、ふと思ったのが、

「よく考えたら、MacPortsダウンロードファイルとか全然掃除いてないんじゃね?」

ということです。

MacPorts利用のスタンス

自宅で使っているMacBookはほとんど個人で利用してるため、ソフトウェアのバージョンはなるべく最新のものを利用しているだけで、ほとんど特定バージョンへのこだわりはありません。*1なので、MacPortsインストール済みのソフトウェアで2種類以上のバージョンの同一ソフトウェアインストールされていたら、古いバージョンのものはいらないのでは?ということになります。

MacPortsの何をどうして掃除できるのか

掃除について触れる前に、ソフトウェアインストールアップグレードについてです。

MacPortsを用いてソフトウェアインストールする仕組み

MacPortsを用いてソフトウェアインストールする場合、内部的にやっていることは、大まかには以下の3点だと思います。

  1. ソフトウェアソースコードダウンロードする
  2. ダウンロードしたソースコードコンパイルする
  3. コンパイルしたものを特定ディレクトリインストールする

インストール作業が終了すれば、ダウンロードしたソースコードと、コンパイルしたものはいらなくなりますね。これは掃除できそうです。でも、それだけじゃないんです。

MacPortsを用いてソフトウェアを更新する仕組み

今まで僕は、以下のようなport_upgrade.shを作っておいてソフトウェアを更新してきました。

port selfupdate
port sync
port outdated
port upgrade installed

やっていることは至ってシンプルで、

  1. MacPorts自体のアップグレード
  2. Portsツリーの更新
  3. アップグレードされるパッケージの表示
  4. パッケージのアップグレード

だけです。

上記のようなport_upgradeスクリプトを用いると更新を完全に自動化できるわけですが、あるソフトウェアAのバージョン1.14から1.15へのアップグレードの際に、MacPortsは古いバージョン(1.14)を削除しません。インストールした新しいバージョン(1.15)はアクティブという状態になり、古いバージョンはインアクティブという状態になります。コマンドを打って使われるのはアクティブなソフトウェアです。古いバージョンのソフトウェアを利用したければ、新しいバージョンをインアクティブにして、古い方をアクティブにすれば、アップグレード後に不具合があっても、もとの環境に戻すことができるようです。親切なんだけど、僕の利用方法だとあまり古いソフトウェアに戻すことは少ないような気がします^^;


インアクティブソフトウェアの削除と不要ファイルの掃除

というわけで、作成したのが以下のport_clean.sh

port -u uninstall
port clean --all installed

上記のスクリプトでは、

  1. インアクティブソフトウェアアンインストール
  2. インストール済みソフトウェアソースコードと作業ファイルを削除

という流れをやっています。

掃除の結果

# sudo sh port_clean.sh

というコマンドを用いて、空き容量は1.16GBから15GBに増加したのでした。

これで当分もちそうです。いらないインアクティブソフトウェアはたまには掃除しないといけませんね。*2

f:id:aircastle:20090710211125j:image

参考文献

*1:特に特定バージョンを使う制約もありませんし。

*2:upgradeでcオプションとか使っても良いかもしれません。

2009-04-20

ちょっと更新

更新するのを忘れてたので、今更更新

zshrc

zshの設定 - aircastle.py

ssh時に新しいscreenを開くなどなど

.vimperatorrc

今更だけどvimperatorが便利すぎる. - aircastle.py

colorscheme,hintcharsなどなど

2009-04-19

あればいいなと思うもの

emacsでパッケージ管理システム

現状、特定のelispインストールしようと思うと、依存するelispも手動で入れないといけない。おまけに、更新されたelispも自分で探さないといけない。

anything.elで特定の行をpatternにコピペ

findfileでanythingを起動させて、patternを打ち込んだ際に、候補に挙がってきたものをpatternに一発でコピペしたい。長いパスのものを開きたいけど、開きたいファイルと同一ディレクトリの別ファイルしか候補に上がってこないときになど。こういうのってあるのかしら。locate dbとかでなんとかするしかないのかなぁ。

自分の.emacs.d以下を公開してみた。

需要があるのかどうかわかりませんが、.emacs.d以下の掃除をやりきったついでに公開してみました。*1

http://github.com/aircastle/dot-emacs-dot-d

使い方は、至って簡単(?)で、

1. .emacs.dをgit cloneします。(~/.emacs.dの上書きに注意)

$ git clone git://github.com/aircastle/dot-emacs-dot-d.git ~/.emacs.d

2. .emacsをコピーします。

$ cp ~/.emacs.d/dot-emacs ~/.emacs

3. elispフォルダを作ります。

$ mkdir ~/.emasc.d/elisp

4. install-elisp.elをインストールします。

$ wget  http://www.emacswiki.org/cgi-bin/wiki/download/install-elisp.el ~/.emacs.d/elisp/

5. emacsを起動します。

$ emacs

6. ~/.emacs.d/update-elisp.elを開いて、ほしいelispの行でC-x C-eします。*2

7. 自動的にファイルが開くので、C-c C-cしてインストールします。

8. .emacsの所定の行のコメントアウトをはずします。

もうちょっとわかりやすくなるようになんとかします。

*1インストール済みelispは公開してないです。

*2コメントアウトしてあるところは、install-elispインストールできないです、多分

2009-03-19

私の転機

 メールマガジンのお題が「私の転機」だったので*1、ほんの少しだけ駄文を書こう。僕の大学時代の転機はいくつかあったと考えているが、書き始めると長いので、そのうちの1つである、大学院の進学を決めたことについて書きたい。

 今の時代、就職難や時代背景から、理系であれば大学院に行くことが当たり前のようになっている。しかし、僕は大学3回生の当時、院に行く気は全くと言って良いほどなかった。その理由の1つは、口数の少ない父親が「就職しろ」と言ったことであった。僕の父親は、僕の人生にとって重要なことを非常に選別して諭すような父親であり、その父親が「就職しろ」と言ったことの意味を僕なりに理解していたつもりだったからだ。そんな僕が大学院に進学しようと決心したのは、一言で言えば「欲張った」からである。就職すれば、大学院以上に束縛された環境に置かれるだろう。その環境にいるよりは、父親の意見に異を唱えても、自分の好きなことをもう少しだけ探求したいと思ったのだ。この願望は、以後2年間*2、継続的に叶える方向に動いていたと思われる。全速力で自分の好きなことを探求し、多くの目上の方々から、僕の悩みや進むべき方向性、人生経験の類について意見をいただく貴重な時間を得た。客観的に見て疑問視する声はあろうが、主観的に見ても結局のところ正しかったのかどうかはわからない。

 転機の重要性や、転機によって得られた事についてはいくつかの事実を語ることができる。しかし、転機において自身が行った判断の評価は非常に難しい。主観的に考えれば「(幸運であれば老衰のため)死ぬ間際にあの判断はよかったなと思える選択」を目指してはいるが、目指す方向性すらも、もしかしたら、後に納得できるものではないのかもしれない。その判断基準を歴史と経験から得、後にするかもしれない後悔をできるだけ少なくするのが人生において必要なことの1つだと思う。

*1:偶然にも昨日「転機」について別所で書く機会があった

*2:即ち、今年度まで