bar_1

contents_map

2008年1月30日水曜日

FireFoxプラグイン:マクロ機能を組み込むiMacros

これは便利かも。
 iMacrosはFirefoxの操作を記録し自動再実行するツールだ。Firefoxのエンジンを利用してFirefox上で行った操作を追跡しスク
リプトとして記録する。このスクリプトを保存しておけば、あとでロードして実行したり、コピーして別のコンピューター上で実行したりすることができる。(http://opentechpress.jp/developer/article.pl?sid=08/01/16/019223&tid=194
)
スクリプトをみんなで共有する仕組みもあるらしい(Social Scripting)。

Select "Share Macro" on the Edit tab to embed the complete iMacro in a link that you can share with others.
PerlのCPANみたいなものか?


・FireFoxを自動運転するツール、iMacros
http://opentechpress.jp/developer/article.pl?sid=08/01/16/019223&tid=194

・iMacros for FireFox
http://www.iopus.com/imacros/firefox/

2008年1月29日火曜日

Ruby: 数字に桁区切りを入れたい(その2)

前回 は、数字を区切るためのインスタンス・メソッドを作成した。
今回はこのクラス Price に、コンストラクタと比較演算メソッドを、追加しよう。
Price.new の引数として、文字列、または、整数をとるものとする。
オープンクラス を使って、クラスに機能を追加した。
class Price
  public

  include Comparable

  #Constructer
  #
  def initialize( p_ )
    @val_orig = p_.to_s;
    @val_s_wo_d = del_digit_delimiter( "#{@val_orig}" );
    @val_s_w_d = add_digit_delimiter( @val_s_wo_d );
    @val_i = @val_s_wo_d.to_i;
  end

  def <=>(other)
    self.val_i <=> other.val_i;
  end

end
コンストラクタ: initialize では、4種類のインスタンス変数: val_orig, val_s_wo_d, val_s_w_d, val_i; が生成される。
それぞれ、オリジナルの値、桁区切りなしの値、桁区切りありの値、数値変換時の値、となる。
インスタンス・メソッド: <=> は、クラス Price のオブジェクト同士の大小比較を行うために、定義した[1]。

References:

  • [1] 『プログラミングRuby 第2版 言語編』; ‘Mixin’, p.101

2008年1月24日木曜日

Ruby: 数字に桁区切りを入れたい (その1)

数字に桁区切りを入れたい。

クラスPriceをつくってみよう。
内部で文字列と数字で値を保存する。
class Price

protected

def add_digit_delimiter( v_ )

#remove comma from v_.

v_.gsub(/[,]/){ |c| "" };



#adding commas from lower, each 3-digits.

v_.reverse.gsub(/[[:digit:]]{3}(?=\d)/){|d| "#{d},"}.reverse;

end



[追記]2013-04-13 3の倍数桁のときに、左端にカンマが付いてしまうため修正: (?=\d)を追加した。
def del_digit_delimiter( v_ )

v_.gsub(/,/){|d| ""};

end

��

��

これで、メインとなる処理はできた。

2008年1月10日木曜日

FireFox:ページのリダイレクト設定が正しくありません

近頃FireFoxとそのプラグインをいくつかバージョンアップをおこなったら、mixiのニュースをクリックしても、
ページのリダイレクト設定が正しくありません
このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。
Cookie を無効化したり拒否していることにより、この問題が発生している可能性もあります。
などとでて、ページが表示されなくなってしまった。

以下のような環境で、当該現象が発生した:
NoScript 1.2.6
FireFox 2.0.0.11


WA:FireFox(NoScript)の設定でWhite listから当該ドメインを削除する
これは下記のように、いったんwhite listから当該ドメイン(ここではmixi.jp)を削除することで、現象を解消されることを確認できた。

NoScriptのアイコン右クリ>オプション...>Whitelistタブを選択
そして、問題の生じているドメイン名を、いったん削除。
(削除の影響:Javascriptなどは、削除したドメインで無効となる)
これで、リンク先にいけるはず。
より詳細なソースについては、こちら:
"Q: Looks like the Anti-XSS feature causes problems with URLs containing diacritics or other non-ASCII characters, e.g. with queries
to search engines (other than Google and Yahoo) containing Japanese or Chinese terms.
"
http://noscript.net/faq#qa4_2
[2008/1/18追記]NoScript 1.2.9で、本エントリの症状は改善された模様。忘備のために残す。

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';
⇒おもしろくこともなきよをおもしろき
よし。所望の結果が得られた。
言語ごとの正規表現とふるまいについては、『詳説 正規表現』で丹念に論じられている。良い本だ。