お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

ハワイ島 情報・観光ガイド

ブログ(Blog)

その他

関連サイト

: 日付別 アーカイブ :

2006年12月31日 - 2007年1月 6日

2007年1月 6日

Ruby における 「正規表現」

今後「正規表現 (Regular Expression)」について Rubyの上で、いろいろ 検証・実験を行ってゆこうと思っているのだが、 そのために、Ruby における 「正規表現」の取り扱い方法を先に学んでおく。

まず、Rubyにおける「正規表現」の表現方法は Ruby「正規表現リテラル」 にあるとおり、
/ で囲まれた文字列は正規表現です。
とある。つまり、「/Ruby/」も正規表現だし、「/^.*$/」も正規表現ということになる。 また別の表現方法として、 「Ruby正規表現クラス」にある 「Regexp.compile(string)」または「Regexp.new(string)」によっても表すことができる。 つまり、上記の例は「Regexp.compile("Ruby")」、「Regexp.compile("^.*$")」 または 「Regexp.new("Ruby")」、「Regexp.new("^.*$")」 とも表現できる。

Rubyにおいて 上記の正規表現とマッチを行う方法はいくつかあるが 最もオーソドックスな方法が Ruby「=~」メソッド を利用することである。 マッチが成功すればマッチした位置のインデックスを、そうでなければ nil を返す。 文字列の先頭にマッチした場合には値「0(ゼロ)」 が返されるので注意が必要だ。

Rubyによる 正規表現の試験プログラムの例題として
test="The quick brown fox jumps over the lazy dog."
p test =~ /quick/
としてみる。 このスクリプトを実際に実行してみると、画面には「4」と表示される。 これは、文字列 "The quick brown..." のうち 「quick」という文字列が 5文字目であり、 先頭の文字を0番から数えると4番目になるため 答えが 「4」となっている。 このスクリプト例は、
test="The quick brown fox jumps over the lazy dog."
p test =~ Regexp.compile("quick")
と書いても全く同じ結果となる。

ちなみに、文字列に全く含まれていない正規表現とマッチさせる、 例えば
test="The quick brown fox jumps over the lazy dog."
p test =~ /abcdef/
のような場合は、実行結果に「nil」と表示される。

【参考リンク】



カテゴリー: Ruby , 正規表現     22:52 | コメント (0) | トラックバック (0)

2007年1月 5日

第33回JBCフォーラム「ビザ&永住権相談室」(20070105)

今回のJBCフォーラムは「ビザ&永住権相談室」と題して、 主に 永住権(グリーンカード)の申請方法について 移民弁護士の先生が直々にご講演。

まずフォーラムの始めに、 SCSN(Southern California Scientists Network)オーガナイザーの 三木理雅(みきりか)さんから、SCSNについてのプレゼンがあった。 SCSNとは、JBCの南カリフォルニア地区版 といった感じ。 2005年ごろから、JBCの強い影響を受けて南カリフォルニア地区で発足された バイオ系研究者の団体である。 そんな背景から、JBCとSCSNは今後もコラボレーションを活発に行ってゆく予定だ。 その一環として、今日 お話された富田先生も実はSCSNからの紹介である。 富田先生はLA在住にもかかわらず、 このJBCのために わざわざシリコンバレー(Silicon Valley)までご足労いただいた。

SCSNについて説明の後、冨田有吾弁護士による 永住権取得についての講演となった。

お話を伺ってみると、 数年前までは 何年もかかっていた永住権取得が、 最近は随分と早くなったらしい。 順調に行くと約1年で永住権がもらえるらしい。

バイオ研究者を前提として 永住権取得のための多数あるカテゴリーの中から、
  • EB1-1 Extraordinary Worker(卓越した能力の持ち主)
  • EB1-2 Outstanding Researcher (優秀な研究者)
  • EB2 Advanced Degree Professional or Exceptional Ability (修士保持者、または、学士プラス5年の職歴保持者、または別の特定の条件を満たした者)
  • EB2 National Interest Waiver(国益になる能力保持者)
の四つに絞りこんで解説が行われた。 ここでのポイントは2つ。 雇用スポンサーがいるかどうか、 そして、労働局からの労働認定書(Labor Certification)を得る必要があるかどうか、 ということ。 これについて詳しくは 永住権 「雇用主」又は「特殊技能を有する者」がアメリカ永住権を申請する場合 に解説してある。

永住権取得に際し、どの方法を使うにしろ、 結局は移民局の審査官を納得させられるかどうかが問題のようだ。

【参考リンク】

カテゴリー: JBC/LSJ     22:56 | コメント (0) | トラックバック (0)

2007年1月 4日

正規表現 (Regular Expression)

UNIXやスクリプト言語の世界には 「正規表現 (Regular Expression)」 というものがある。 UNIX系のコマンド処理や Emacs等のエディタ操作、 さらに Perl、Ruby のプログラミングにおける テキスト処理には なくてはならない機能なのだが 初心者には敷居の高い 機能の一つだと思う。 この「正規表現」をマスターしてしまうと テキスト処理やプログラミングの幅がグーンと広がるのだが、 しかし 強力なものほど、習得に時間がかかるのも事実である。

私自身、「正規表現」を完璧に把握しているわけではなく 今まで 騙し騙し使いこなしてきたわけだが、 良い機会なので Rubyの習得を兼ねて、 Rubyにおける「正規表現 (Regular Expression)」について このブログ上でまとめて行こうと思っている。

「正規表現」には いろいろな方言があるが、 それについては 各プラットホーム毎に 「正規表現メモ」 に詳しくまとめてある。 その中でも 私のブログでは、基本的に 現行のRubyの実装について 調査・実験してゆこうと思う。

【参考リンク】

カテゴリー: 正規表現     22:26 | コメント (0) | トラックバック (0)

2007年1月 3日

D言語

次世代の プログラミング言語ということで、 C言語ならぬ「D言語」というものがリリースされているらしい。

この「D言語」を開発しているのは 「Digital Mars社」で この会社は 多くのプラットホームに対する C/C++ コンパイラを提供してきている会社だ。 「D言語」の詳細については、 「Digital Mars社」 の 「D Programming Language」 ページにある。 また、すでに 日本語版のページができているし、 D言語を紹介する 「D言語パーフェクトガイド」 という書籍も発売されている。

日本語ページから 「D言語」の説明部分を引用させていただくと、
D はシステムプログラミング言語です。 CやC++の高いパフォーマンスと、 RubyやPythonのような現代的な言語が プログラマにもたらした生産性とを併せ持つことに焦点をあわせています。 特に、品質保証、ドキュメンテーション、管理、可搬性、信頼性 を 実現することに留意して設計されています。
と説明されている。 また、ウィキペディア「D言語」では
C言語の後継としてはC++が有名であるがその複雑さも随一である。 Javaは複雑さを適度に押さえ、豊富な標準ライブラリを持つが、 仮想マシンを必要とするためパフォーマンスを求める場合には敬遠される。 かといってC言語では低レベルすぎるといった、 それぞれの言語の使いづらさに対して現実主義的な回答を模索した言語といえる。
と説明している。 RubyやPythonのような 先進的なスクリプト言語の生産性と、 Javaよりも早い実行スピードを併せ持つ事を 目指したようなコンパイラ言語と言えるだろう。

言語仕様の具体的な説明として 「D vs その他の言語」 というページで、 C, C++, C#, Java とD言語の機能について比較しているので、 従来の言語から どこが改善されたのかが比較できるはずだ。

【参考リンク】

カテゴリー: プログラミング     22:39 | コメント (0) | トラックバック (0)

2007年1月 2日

Ruby 変数とスコープ

変数の有効範囲のことを「スコープ」と呼んでいる。 最近の言語では、まず間違いなく 変数にこの「スコープ」の概念が取り入れられている。

Ruby では 変数や定数の種類が以下の様になっていて、 名前の最初の一文字によって識別されている。 また、上記以外にも「組み込み変数」という変数も存在する。

言語によっては変数を宣言する際に「変数の型」を指定しなければならない場合があるが、 こと Ruby の場合、型の指定は必要ない。 変数に新たに値を代入すれば、いつでも代入したその値の型に変更される。 その様子を例として挙げて見ると、
i=10; p i            # 10
i="ABCDEF"; p i      # "ABCDEF"
i=[1, 2, 3 ]; p i    # [1, 2, 3]
となる。この例では、「i」という変数に 1行目では 数値「10」を代入してから値を表示。 2行目では 文字列を変数「i」に文字列「"ABCDEF"」を代入してから表示。 そして3行目では 配列を代入している。

グローバル変数に関しても 言語によりさまざまである。 Rubyの場合、上記のように、「$」で始まる変数はグローバル変数として扱われる。 一方 PHPでは、 関数(Function)の中で グローバル変数を利用する際には、 関数の内部で global命令により 明示的に グローバル変数として宣言する必要がある。

【参考リンク】

カテゴリー: Ruby     22:35 | コメント (0) | トラックバック (0)

2007年1月 1日

風林火山

今年のNHKの大河ドラマは「風林火山」。 戦国時代の武田軍の軍師、 山本勘助 (やまもとかんすけ)を主人公とした物語だそうだ。

こちらシリコンバレーでも、 昨日のブログでも取り上げた KTSF局の 日本語放送枠で NHKの大河ドラマが毎年放送されている。

この「風林火山(ふうりんかざん)」という言葉は 戦国大名である武田信玄の軍旗に記されたもので
疾如風疾(はや)きこと風の如く
徐如林徐(しず)かなること林の如く
侵掠如火侵掠(しんりゃく)すること火の如く
不動如山動かざること山の如し
から来ている。

自己分析してみると、 この四つの中で、今の自分に最も欠けているのは 「疾(はや)きこと風の如く」 だと思う。 ということで、今年は大河ドラマを見るたびに 「風林火山の『風』は『疾(はや)きこと風の如く』のこと」 ということを思い出すことにしよう。

【参考リンク】

カテゴリー: 個人ネタ     22:37 | コメント (0) | トラックバック (0)

2006年12月31日

シリコンバレーの大晦日

こちらシリコンバレーに住んでいても 大晦日 恒例の「NHK紅白歌合戦」を見ることはできる。

サンフランシスコ(San Francisco)から シリコンバレー(Silicon Valley)にかけての いわゆるベイエリア(Bay Area)向けの放送局に 「KTSF」 というのがある。 電波上では26チャンネル、ケーブル上では8チャンネルになっている この KTSF は 日本を含め、中国、韓国、フィリピン、ベトナム、インド、その他 いろいろな国の番組を放送している。

通常は、何曜日の何時から何時まではどの言語、 というように 各言語ごとのプログラム枠が決められている。 しかし、それぞれの国の特別な日、 例えば、中国の旧暦のお正月など の時などは 通常のプログラムを変更して 大々的に中国の特別番組が放送されたりしている。 そして、毎年この大晦日と元旦は 日本語用のの特別番組枠が設けられ、 大晦日の午後には「NHK紅白歌合戦」が放送されるのが恒例である。

「NHK紅白歌合戦」といっても放送時間帯がずれていて同時中継でもないし、 こちらで放送しているKTSFは 民放なので、NHKの番組であっても 番組の間に宣伝も入る。 このように、こちらで放送される番組は 多かれ少なかれ必ず編集されている。 今回の「NHK紅白歌合戦」では、 ヌード全身タイツ事件というのがあったらしいが、 こちらの放送では、その部分にしっかりモザイクがかかっていた。

【参考リンク】

カテゴリー: シリコンバレー     22:35 | コメント (0) | トラックバック (0)

 
ハワイ島での遊覧飛行ツアーとB&Bのスペシャリスト、スカイメリカ
Copyright © 2003,2009 Skymerica Corp. All rights reserved.