bar_1

contents_map

2007年12月5日水曜日

Overloading methods in Ruby

Ruby では、メソッドなどのいわゆる多重定義(オーバロード;overload)ができない。
したがって、引数の異なる複数のコンストラクタを持つことも、できないという話。

その回避策は:
[ruby-list:30553] Re: 名前の異なるコンストラクタを複数持つには?



多重定義は、抽象化のひとつの手だとおもうのだが、Rubyのこのような仕様はC++使いからすると、あんまりうれしくない。

2007年11月27日火曜日

bashのコマンドラインでのいくつかのキー設定・入力方法

入力モードをEmacsライクにするには?また、タブを直に入力したいときは?

入力モード設定には、setコマンド。直入力には、Ctrl+Vを使う。

コマンドラインの入力モード切替え方法。
# set -o vi
で、viモード
# set -o emacs
で、emacsモード。
コマンドラインで、タブなどを直接入力したい場合。
# [Ctrl+V][TAB]
で、入力される。

2007年11月25日日曜日

Cool Tools for UltraSPARC T1, T2

T1, T2向けの便利なソフト(開発者向け)が、配布されている。
http://www.opensparc.net/cool-tools.html

定番のGCC(gcc/g++)も、もちろんある。
locklint がおもしろそう。

プロジェクトに参加したいという向きは、おそらくこちら:
http://cooltools.sunsource.net/

これらのツールをダウンロードするには、下記で、Sun Developper Networkのアカウントを取得する必要があるようだ。
http://www.sunsource.net/servlets/Join

T1自体のチップデザインのソースコードも公開されている。Verilog HDLで記述されているらしい。
フリーのVerilogシミュレータ:Icarus などで、うごかせるのでないだろうか?

2007年11月19日月曜日

Weldone!

まぐまぐ[1]によれば、11月1日付で横尾茜氏(29)が社長に就任したとのこと。
若く女性であるという立場で、要職につかれたのは素晴らしい!

[1] http://www.mag2.com/profile/release/20071030.html

Investigate between PID and Descriptor.

素性が悪く、ある程度の規模のシステムである場合、アプリケーション・プログラム個別の振る舞いを調べるために、下記のようなことを調べたくなることがある:
  • あるファイルやソケット使用しているプロセスは、どいつ(ら)なのか?
  • あるプロセス使用している、ファイルやソケットはどいつ(ら)なのか?


前者を調べるには、fuser(1)コマンドが利用できる。
一方、後者をlsof(1)コマンドを利用する。
これらのコマンドでは、/procファイルシステムなどカーネルに近いデータにアクセスするため、rootで実行する必要がある。
fuserは、Linux, Solarisともにデフォルトで利用できる。
lsofは、すくなくともSolarisにデフォルトで用意されてはいないようだ。ソースコードは、ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
から入手できる[1]。移植性がよく考慮されたソースコードは、コンパイルが非常に楽だ。
[1] http://docs.sun.com/source/819-3789-10/methodology_security_toolkit.html#50597890_marker-829146

2007年11月18日日曜日

Some Regular Expressions on sed, and perl.

最近試してみる機会があったワン・ライナー。文中の2種類の語を入れ替えるには?いわゆるテキスト中での「置換」sedとperlで試してみた。
なお、下記実験では、アンダースコア(_)2つを入れ換え処理におけるメタなキャラクタとして使用している; つまり処理前の文には、この文字列が含まれないことが前提だ。

まずは基本としてsedから。
TEXT="おもしろきこともなきよをおもしろく"; echo ${TEXT} \
| sed -e 's@おもしろき@__おもしろく@g; s@\([^_][^_]\)おもしろく@\1__おもしろき@g; s@__@@g';
⇒おもしろくこともなきよをおもしろき
perlでは?
TEXT="おもしろきこともなきよをおもしろく"; echo ${TEXT} \
| perl -pe 's@おもしろき@__おもしろく@g; s@\([^_][^_]\)おもしろく@\1__おもしろき@g; s@__@@g';
⇒おもしろくこともなきよをおもしろく
う~んちょっとへんだ。
グループ演算子のクォーテーションを取ってみる:
TEXT="おもしろきこともなきよをおもしろく"; echo ${TEXT} \
 | perl -pe 's@おもしろき@__おもしろく@g; s@([^_][^_])おもしろく@\1__おもしろき@g; s@_
_@@g';
⇒おもしろくこともなきよをおもしろき
よし。所望の結果が得られた。
言語ごとの正規表現とふるまいについては、『詳説 正規表現』で丹念に論じられている。良い本だ。

2007年11月15日木曜日

SNMP, Daemon, Solaris 10

2014-05-26追記: Blogger への移行検討を期に用字、リンクを修正した。
今日ちょろちょろ調べていたのだが、かなり手間取ってしまった。
Solaris 10 は、それまでの UNIX 系 OS のサービス管理手法から、かなり変更されているようだ。/etc/init.d/ 配下の起動・停止スクリプトは、どういう扱いなんだろう。。。
ともあれ SNMP 全般に関して、[1] を参考にした。
どうやら、既存の snmpd の設定ファイル:
    /etc/snmp/conf/snmpd.conf
は、使用されない様だ—- かわりに、
    /etc/sma/snmp/snmpd.conf
を使用する (snmpd(1))。Solaris 10 から導入された Service Management Facilities (SMF) の一員となっているらしい。
また snmpd には snmpdx という親玉がおり、この親玉のサブエージェントとして、snmpd は起動する (snmpdx(1M))。
設定後に snmpdx を下記コマンドにて再起動し[2]p.161、PC から TWSNMP[3] で MIB ブラウズしてみると。。表示されないorz。もっとも、コレはまだ使いこなせていないからだが。。。
# /etc/init.d/init.sma restart
netsnmp コマンド群では、ローカルからでもリモートからでも、追加設定した MIB 情報を読み取ることができた。
netsnmp コマンド群は、ディレクトリ: /usr/sfw/{sbin,bin} 配下に配置されている。

References:

以下の書籍は、検定対策の本だが、Solaris10全般の機能について広く浅く知るのに役に立つ: