2008-02-01から1ヶ月間の記事一覧

初マック

人生で初めてのマックです(本当は大学のときに、PhotoShopだけ使ってたけど)。それにしてもデフォルトで使いやすいよ〜。別に理系の人間を意識している訳じゃないんだろうけど、コントロールキーの位置とか、日本語切り替えの位置とか、Cntl-hでBackspaceに…

1.15 文字列内の関数や式を展開する

関数呼び出しまたは式を文字列内で展開したい。そうすれば、単純なスカラ変数の展開だけでは作成できない複雑なテンプレートを作成できる。 # 式を個別の要素に分解してから連結 $answer = $var1 . func() . $var2; # スカラのみ # 卑怯な方法 $answer = "ST…

1.14 タイトルまたは見出しを適切にキャピタライズしたい

書籍、書類などにはタイトルや見出しがある。このタイトルおよび見出しに使用する文字列を適切にキャピタライズしたい。 INIT { our %nocap; for (qw( a an the and but or as at but by for from in into of off on onto per to with )) { $nocap{$_}++; } …

1.13 大文字/小文字の変換をする

大文字の文字列を小文字に、小文字の文字列を大文字に変換したい。 # 全体を変換 $big = uc($little); $little = lc($big); $bit = "\Ulittle" $little = "\L$big"; # 1文字のみ変換 $big = ucfirst($little); $little = lcfirst($big); $big = "\u$little";…

1.12 ユーザ入力した変数を展開する

次のような変数を含む文字列を読み込む。 You owe $debt to me. このとき、文字列内の$debtを格納されている値に置き換えたい。 # 変数が全てグローバル変数の場合は、シンボリックデリファレンスを使用して置換 $text =~ s/\$(\w+)/${$1}/g; # 変数にレキシ…

1.11 タブをスペースに、スペースをタブに変換する

文字列内のタブを適当な数のスペースに変換したい。または、その逆の操作をしたい。 # 冗長な置換パターン while ($string =~ s/\t+/' ' x (length($&) * 8 - length($') % 8 /e) { # 置換が失敗するまで空のループを回す } # Text::Tabsを使う方法 use Text…

ブログの手軽さ

今までブログってあんまし好きじゃなかった。と言うのも、昔、HTMLをほとんど手で作ってたので、そのときに、タグを挿入するのが凄い面倒で、そのイメージが残っていたので、好きになれなかった。でも、最近使い始めて、面倒なところは全て、サーバー側がや…

日の丸半導体株式会社

日本の主要な半導体メーカーは、ざっと6社ぐらいになるのかな。その6社が出資して、色んなコンソーシアムを作って、共同で研究・開発を行っています。半導体の微細化によって、開発費が(プロセスだけじゃなくって、設計もね)膨大に膨らむので、世界での競争…

今日はすんなり寝てくれた♪

昨日は、全然寝なくて寝なくて困ったけど、今日はすんなり寝てくれました。やっぱりお腹いっぱいになると安心して寝てくれるみたい。でも、問題はミルクを飲む量にバラつきがあること。飲むときは、200ccぐらい飲むけど、飲まないときはその半分。今は、昼夜…

1.10 Unicode文字列をオクテット単位で扱う

Unicode文字列をオクテット単位で扱いたい(例えば、その文字列の長さを計算するため、あるいは入出力を行うため)。 # use bytesプラグマを使う方法 $ff = "\x{FB00}"; # ffリガチャ(合字) $chars = length($ff); # 長さは1文字 { use bytes; # バイトセマン…

1.9 Unicode合成文字が含まれている文字列を正規化する

出力すると全く同じに見える文字列でも、eqで等しいかどうかを検証すると等しくなかったり、場合によってはそれぞれの長さが異なっていたりする。このような文字列をPerlに同じだと認識させたい。 # 等しくない文字列の一方または両方にUnicodeの基底文字と…

1.8 Unicode合成文字を1つの文字として扱う

合成文字を含むUnicode文字列がある。これらの文字シーケンスのそれぞれを1つの論理文字として扱いたい(通常の文字はそのままで、基底文字と結合文字のペアは1つの文字として扱いたい)。 # 正規表現の\Xを利用すれば、基底文字と結合文字のペアを1つの文字と…

1.7 文字列を単語または文字単位で逆順にする

文字列内の単語、または文字を逆順にしたい $revchars = revserse($string); $revwords = join(" ", reverse split(" ", $string));

週刊ダイアモンド

巷で評判の勝間さんの本を買おうかどうか迷っていたので、手頃なところで雑誌から入りました。週刊 ダイヤモンド 2008年 2/9号 [雑誌]出版社/メーカー: ダイヤモンド社発売日: 2008/02/04メディア: 雑誌購入: 1人 クリック: 79回この商品を含むブログ (66件)…

1.6 文字列を1文字ずつ処理する

文字列内の各文字を1文字ずつ処理したい。 @array = split(//, $string); # 個々の文字に分解 @array = unpack("U*", $string); # コードポイント(数値コード)に分解 # ループを使用して、各文字を順番に抽出 while(/(.)/g) { }

1.5 Unicodeの名前付き文字を使用する

Unicodeで利用できる特殊な文字を、コードポイント以外の方法で指定したい。 ファイルの先頭行にuse charnamesプラグマを書き、文字列リテラル内に"\N{CHARSPEC}"エスケープを挿入する。

子供から学ぶこと

う〜ん、なんだろ。産まれてから、早2.5ヶ月が経つ。この間にいろいろあって、子供も少しずつ大きくなって、いまや、わけわからない言葉をしゃべるようになった。産まれた直後は、すご〜くか弱い子だったけど、わずか70日あまりで、もうしっかりした個体にな…

1.4 文字から数値コードへ変換する

所定の文字に対応する数値コードを取得したい。また、数値コードに対応する文字を取得したい。 # 方法1 $num = ord($char); $char = chr($num); # 方法2 $char = sprintf("%c", $num); printf("Number %d is character %c\n, $num, $num); # 方法3 @bytes = …

1.3 一時変数を使用しないで変数の値を交換する

二つのスカラー変数の値を交換したい。しかし、一時変数は使用したくない。 ($var1, $var2) = ($var2, $var1);

1.2 デフォルト値を設定する

値が設定されていないスカラー変数にデフォルト値を設定したい。デフォルト値はハードコーディングしておき、コマンドラインや環境変数で上書きできるようにしたい。 # $bが真の場合は$bを、偽の場合は$cを設定する $a = $b || $c; # $xが真で無い場合、$xに…

1.1 部分文字列を抽出する

文字列全体ではなく、文字列の一部を抽出/修正したい。例えば、固定長のレコードを読み込んで、個々のフィールドを抽出する場合など、このような処理が必要になる。 substrを使う方法。 $value = substr($string, $offset, $count); $value = substr($string…

止まってる

5章の途中で止まっちゃってます。最後まで読み切りたいんだけど、いろんな誘惑が…。でも、今年度中には、読み切るぞ!!

首が…

今、約2.5ヶ月らしいけど、やっとうつぶせができるようになったみたい。動画をアップしようかなぁ…

最先端半導体製造会社

今の会社って会社のPCからフルにGoogleとかが使えないんだよね。 ま、あくまで会社から貸与されたPCだから、会社の規則に従うのは当然なんだけど、それにしても、一番優秀なツールが使えないってのは、時代の最先端を担うべき半導体製造会社としてどうかと思…

さぼりがち

1週間ぶりの日記更新か。やっぱ、サボっちゃってるなぁ。長続きしない性分なのかなぁ。 そういえば、今月の日経マイクロデバイスを読むと、ホンダの研究所で貫通電極を使った3次元LSIを開発した、と言う記事が載ってた。案の定、宮川さん達のグループだった…