tmuxが固まる

tmuxを愛用してるんですが,

  • アクティブなウィンドウ内に複数のペインがあって,
  • そのペインのうちどれかの中で大量のコンソール出力がある

という条件のときに,tmux自体が固まる現象が生じます….

固まると,

  • 一切の入力を受け付けなくなる
  • 別のウィンドウに移動することもできない
  • セッションの情報が残らないので,どうにもできなくなる

    • とりあえず殺すけどセッションを復旧できない

ヒストリーバッファのサイズは十分だし,あるいは逆に小さくすることで肥大化しないようにもしてみたし,
「大量の出力」と言っても具体的にどのくらいなのかわかりません.
どんぐらいのペースで出たら,というのも不明.
(例えばgccのmakeなんかで出るペースだと大丈夫そう)
topで見た感じだと無限ループのようなかんじでもないし.

tmuxのバージョンは1.5でUbuntu 10.10 x86です.
調べた感じ同じ現象に遭遇してる人があんましいないみたいです.
とりあえずヒマなときにどっかに投げてみるか,自分でデバッグを試みるか.

GCC 4.6.2が出たので手動インストール方法メモ(Linux)

先週にRCが出て,昨日4.6.2が出ました.
さすがにNightlyを常用するようなアレじゃないので,公式リリース待ってました.
で,ディストロの標準パッケージではたいてい落とせないと思うので,手動インストールを.

ということで,Linuxな人がgccを初めてイチからインストールするときの手順を簡単にまとめます.

Continue reading

ハードリンクはgitでは…

ファイルAをgitリポジトリに置いて,AのハードリンクBも同じリポジトリに置きます.
んで,Aを変更したら?

ハードリンクって何…と知ってたらそのまんま予想通りなかんじ.
そのまんまです.はい.なにも不思議なこともなければ面白いこともありません.

% git init
Initialized empty Git repository in /○○○○○/.git/
% echo "hogehogehogehoge" > hello.txt                        #一つ目のファイルを作ってコミットします
% git add hello.txt
% git commit -m "hello.txt"
[master (root-commit) acee5b5] hello.txt
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello.txt
% ln hello.txt hello2.txt                                    #ハードリンクを作ります
% git status                                                 #新しいファイルが追加されたことに
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       hello2.txt
nothing added to commit but untracked files present (use "git add" to track)
% git add hello2.txt                                         #ハードリンクもコミットします
% git commit -m "hello2.txt"
[master bd15fe1] hello2.txt
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello2.txt
% echo "fugafuga" >> hello.txt                               #一つ目のファイルをちょっと変更します
% git status                                                 #変更は検出されたでしょうか
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   hello.txt
#       modified:   hello2.txt                               #もちろん二つ目のほうのファイルも変更されたことになります
#
no changes added to commit (use "git add" and/or "git commit -a")

くそおもしろくない記事でごめんなさい.
そもそもgitだからどうのっていう話ですらない.これはひどい.

boost::serializationでほげほげうまうま

オブジェクトをまるごとファイルに書きだしたりネットワークに送ったりしたいとき内容を直列化し再構築することやその仕組みをシリアライズと呼び,boostではserializationライブラリによって実現できます.
どのような形のデータ列に落としこむか?という話で,boost::serializationはテキスト,XML,バイナリの3種類がサポートされています.

Continue reading

GitoriousをUbuntu 11.04 Serverにインストール

GitHubクローンの代表格なGitホスティングサービスGitorious,今では例えばQtもホスティングされています.
このシステムをまるごと自分のWWWサーバに入れて,ユーザ数やプロジェクト・リポジトリ数,非公開設定まで無制限な,WEBベースのリポジトリ管理システムを構築することができます.

タイミング悪いですね

もともとMarcurialホスティングサービスなBitbucketがGitに対応して,無料アカウントでもユーザ数5人まで,公開/非公開・数・容量共に無制限のGitリポジトリを置けるというとんでもないサービスが始まりました.
何と言うことでしょう.やっぱ外に置くのは不安じゃんって人もいるでしょうけど,それにしても今日の記事は無駄になるのでしょうか.

ビルドサーバとしてfook書いてCIと連携したりできるシステムを構築するところまですれば,差も出るのかもしれません.
そこまでするならRedmineでも入れましょう.

都合の悪い話はおいといて話を進めることにしましょう><。。

Continue reading

VirtualBoxでWEB開発するときのネットワーク設定

したいこと.

  • ゲストでWWWサーバを稼働
  • ホストからそのサーバにHTTPアクセス
  • ゲストへはsshで入って作業

このために

  • ゲストは外に行けるように
  • ホストはゲストに入れるように
  • ゲストは外から見えないように

公式マニュアルだとNATにしてport forwardingにするといいよとのことですが,それだと外から見えちゃうし,設定が(・A・)マンドクセ

解決策.
NATをプライマリNICにして,ホストオンリーアダプタのNICを追加で設定すると,できます.
ゲストOSからはそれぞれeth0とeth1が見えます.
ホストからHTTPやsshでeth1にあたる端末に接続するとゲストに入れます.

ただゲストが例えばCentOSだと問題ないらしいのですが,Ubuntuとかだと,非プライマリなNICの接続設定は手動でする必要がある模様.
以下ゲストがUbuntuのときの設定です.

/etc/network/interfaces

の設定ファイルへ,

auto eth1
iface eth1 inet dhcp

と追記してネットワークを再起動するとおっけーです.
でもDHCPはアレなので,固定IPにしてしまうのもイイと思います.

auto eth1
iface eth1 inet static
address 192.168.56.254
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255

んで,終わったらroot権限で

/etc/init.d/networking restart

これでおーけーです. ifconfigしてちゃんと設定出来てること,ホストからもつなげることを確認してください.

ついでにホストのhostsも設定しておくともっと(゚Д゚)ウマー

TeX Live 2011のインストール

メモです.
Ubuntu 10.04 LTS (x86)にて.

今まではTeX Live 2009 + ptexliveでやってて入れるのも使うのも結構めんどくさかった気がするんですが.
TeX Live 2011だから簡単なのか? 自分の入れ方使い方がマズかったのか? 後者だろうけど.

インストール手順

TeX Liveのサイト(http://www.tug.org/texlive/)の,”How to acquire TeX Live”のとこの”download”を.
ここで小さなオンラインインストーラ(install-tl-unx.tar.gz)を落とします.

% tar xf install-tl-unx.tar.gz
% sudo ./install-tl-20110805/install-tl

日付のとこは変わるかも. だいぶ時間かかります.

あとは,

PATH=/usr/local/texlive/2011/bin/i386-linux/:$PATH

なる設定を適切に.

確認に今まで書いた資料いくつかptex→dvipdfmxしてみましたが問題なく.ptexliveを入れなくてもいけるんですね.nkfでeucにせずUTF-8のままいけて(゚Д゚)ウマー