本文へジャンプ

GIDEON STAFF BLOG

ライスペーパーを使って

最近のお弁当ブーム、景気の悪化による食費抑制にメタボリックシンド ローム対策が相乗効果を成したのか?
お弁当の売り上げは伸びているらしいです。
ある会社ではお弁当部なるサークルがあり、男女、既婚未婚 問わずお弁当作りに勤しんでいるようです。

お弁当に野菜を入れるのって、入れる側も食べる側も意外と面倒ですよね・・・ でも、やっぱりお野菜は健康の為にも入れたいし。
そこで、簡単一品にライスペーパーがお役に立ちます。

水戻ししたライスペーパーにハム、お野菜になどを巻き込んで ドレッシング(トロミありがGOOD)をかけちゃう。
あとはくるんで一口大にカットしてしまえばかさばらず、 食べるときも丸ごとぺろりときれいにお口の中に!!

残り物を何でも包んでしまえば、残り物整理にもお役立ち!! 前の晩の野菜炒めや、サラダの残り葉などなど。

そうそう、急なお客さんの時にもライスペーパー料理! ちょっとカッコがつきますよ(笑)

POSIX.2 標準仕様のシェルによる変数展開

シェルスクリプトを作成する際に シェル変数に値を代入したり参照したりする事は頻繁に発生するが、 シェル変数の展開にも便利な使い方がある。
basename (1) や dirname (1) と同様な動作が シェルの組込みとして利用できるので資源の節約にもつながり、 上手に利用すると可読性の高いスクリプトが作成できる。

機能一覧

${parameter:-word} デフォルト値への置換
${parameter:=word} デフォルト値の代入
${parameter:?[word]} 値の検査とエラー
${parameter:+word} 代替値の使用
${#parameter} 文字列長の取得
${parameter%word} 最短後置パターンの削除
${parameter%%word} 最長後置パターンの削除
${parameter#word} 最短前置パターンの削除
${parameter##word} 最長前置パターンの削除

デフォルト値への置換

  • ${parameter:-word}
  • ${parameter} が NULL の場合 word に置換される。

    $ echo ${foo}
    
    $ echo ${foo:-FOO}
    FOO
    $ echo ${foo}
    
    $ foo=BAR
    $ echo ${foo:-FOO}
    BAR
    			

デフォルト値の代入

  • ${parameter:=word}
  • ${parameter} が NULL の場合 word に置換され、 かつ parameter に代入される。

    $ echo ${foo}
    
    $ echo ${foo:=FOO}
    FOO
    $ echo ${foo}
    FOO
    $ echo ${foo:=BAR}
    FOO
    			

値の検査とエラー

  • ${parameter:?[word]}
  • ${parameter} が NULL の場合 word が指定されていればその値を、 指定されていない場合はデフォルトの値を表示し、 非対話実行されているシェルをエラー終了させる。

    $ echo ${foo}
    
    $ echo ${foo:?value not set}
    value not set
    			

代替値の使用

  • ${parameter:+word}
  • ${parameter} が NULL 以外の場合 word に置換される

    $ echo ${foo:+FOO}
    
    $ echo ${foo}
    
    $ foo=BAR
    $ echo ${foo:-FOO}
    FOO
    $ echo ${foo}
    BAR
    			

文字列長の取得

  • ${#parameter}
  • ${parameter} の文字列としての長さに置換される

    $ echo ${foo}
    
    $ echo ${#foo}
    0
    $ foo=FOO
    $ echo ${foo}
    FOO
    $ echo ${#foo}
    3
    			

最短後置パターンの削除

  • ${parameter%word}
  • ${parameter} の右から word で示されるパターンの最短部分を削除する

    $ bar=/foo/bar/baz
    $ echo ${foo%/*}
    /foo/bar
    $ foo=foo.c
    $ echo ${foo%.*}
    foo
    $ foo=foo
    $ echo ${foo%.*}
    foo
    			

最長後置パターンの削除

  • ${parameter%%word}
  • ${parameter} の右から word で示されるパターンの最長部分を削除する

    $ foo=foo.example.com
    $ echo ${foo%%.*}
    foo
    $ foo=http://www.example.com:8888/
    $ echo ${foo%%:*}
    http
    $ foo=foo
    $ echo ${foo%%.*}
    foo
    			

最短前置パターンの削除

  • ${parameter#word}
  • ${parameter} の左から word で示されるパターンの最短部分を削除する

    $ foo=foo.c
    $ echo ${foo#*.}
    c
    $ foo=foo.example.com
    $ echo ${foo#*.}
    example.com
    $ foo=foo
    $ echo ${foo#*.}
    foo
    			

最長前置パターンの削除

  • ${parameter##word}
  • ${parameter} の左から word で示されるパターンの最長部分を削除する

    $ foo=foo.example.com
    $ echo ${foo##*.}
    com
    $ foo=/foo/bar/baz
    $ echo ${foo##*/}
    baz
    $ foo=foo
    $ echo ${foo##*.}
    foo
    			

HP ProLiant ML110 G5 で FreeBSD 7.0-RELEASE を稼働させる

PCクラスの筐体でサーバとして稼働できる Hewlett-Packard 社の ProLiant ML110 G5 で FreeBSD を動かしてみました。

ML110 G5 はマザーボードから IDE やパラレルポートといった 旧いインタフェイスが省略されている所謂レガシーフリーなサーバなので、 当然光学ドライブも SATA 接続となります。
FreeBSD 7.0 では(一部の) SATA 接続光学ドライブとは相性が悪いので、 起動時の boot prompt で hw.ata.atapi_dma="0" を指定すると、 スムーズにインストールできる様になります。 インストールした後は /boot/loader.conf に 以下の記述を追加しておくと自動で設定されて便利です。

hw.ata.atapi_dma="0"
	

ML110 のマザーボードに搭載されている NIC は Broadcom 社の GbE ですが、 型番が "NetXtreme BCM5722 Gigabit Ethernet PCIe" となっていて 標準のカーネルでは利用できません。
インストールの際は CD からのインストールを実行したり、 USB 接続の NIC などを利用してインストールした後で、 以下のパッチを適用してカーネルの再構築を行うと、 無事にギガビットイーサが利用できるようになります。
diff -cr /usr/src/sys.orig /usr/src/sys
*** /usr/src/sys.orig/dev/bge/if_bge.c	2009-04-03 12:05:39.000000000 +0900
--- /usr/src.sys/dev/bge/if_bge.c	2009-04-02 12:51:46.000000000 +0900
***************
*** 169,174 ****
--- 169,175 ----
  	{ BCOM_VENDORID,	BCOM_DEVICEID_BCM5715S },
  	{ BCOM_VENDORID,	BCOM_DEVICEID_BCM5720 },
  	{ BCOM_VENDORID,	BCOM_DEVICEID_BCM5721 },
+ 	{ BCOM_VENDORID,	BCOM_DEVICEID_BCM5722 },
  	{ BCOM_VENDORID,	BCOM_DEVICEID_BCM5750 },
  	{ BCOM_VENDORID,	BCOM_DEVICEID_BCM5750M },
  	{ BCOM_VENDORID,	BCOM_DEVICEID_BCM5751 },
diff -cr bge.orig/if_bgereg.h bge/if_bgereg.h
*** /usr/src/sys.orig/dev/bge/if_bgereg.h	2009-04-03 12:05:39.000000000 +0900
--- /usr/src/sys/dev/bge/if_bgereg.h	2009-04-02 12:51:13.000000000 +0900
***************
*** 2011,2016 ****
--- 2011,2017 ----
  #define	BCOM_DEVICEID_BCM5715S		0x1679
  #define	BCOM_DEVICEID_BCM5720		0x1658
  #define	BCOM_DEVICEID_BCM5721		0x1659
+ #define	BCOM_DEVICEID_BCM5722		0x165A
  #define	BCOM_DEVICEID_BCM5750		0x1676
  #define	BCOM_DEVICEID_BCM5750M		0x167C
  #define	BCOM_DEVICEID_BCM5751		0x1677
	

構成にもよりますが デュアルコアの Xeon は早くて快適です。