トップ 最新 追記

KeN's GNU/Linux Diary


2012年09月01日

_ [cooking] 鳥の唐揚げ、野菜のスチームスープ


鳥唐!鳥唐!鳥唐! という勢いで大いに充実。新しいオイルポットもデビュー。

野菜スープはセロリ、玉葱、ミニトマト、ブロッコリー、ニンニクで。味付けとしては塩、胡椒だけなのに野菜の風味がたいへんよろしい。


2012年09月02日

_ [cooking] パンチェッタとナスとエリンギのパスタ


パンチェッタの塩抜き不足でやはりしょっぱい……おいしいことはおいしいんだけど。


2012年09月03日

_ [review] Dell PowerEdge R210II、Si R&D静音ラック

先月頭に導入したものではあるけどようやくまとめ。写真撮影しておけばよかったな。

猛暑が近づきまた節電の叫ばれる中で、社内サーバルームの蒸し風呂化が危機的状況になることが予想されるため、今後のサーバ・ストレージの管理も見据えてラックおよびラックマウント型マシンでサーバルームをリプレースすることにした。

何分小規模企業なのでそんなに予算が潤沢でも専用の冷房付きサーバルームがあるわけでもありませんて。

サーバとして導入したのはサイズと手頃なスペック、あとは価格で、DELLのR210II。

http://www.dell.com/jp/business/p/poweredge-r210-2/pd

Xeon E31230、8GBメモリ、2TB SATAx2にカスタマイズ。奥行き394.3mmというのはラックに余裕ができて素敵だ。前と後ろ両方にアナログRGB端子があるのもモニタリングによい(もうDVIでもいいんじゃないの…という気もするが)。PCI情報は下記。

http://kmuto.jp/debian/hcl/DELL/PowerEdge+R210+II/

Debian(当然)のインストールでは、NICのBroadcom BCM5716にファームウェアが必要なので、d-iの普通のインストール手順のとおりUSBで途中追加した以外はとりたてて特別なところがない。

ただ2ディスクの起動順序がちょっと謎で、sdaではなくsdbから起動しようとしてしまい、ハマった。BIOSのメニューで一応設定はできるのだが表示されるHDD IDが同じなのであまり役に立たない。一時的に起動してからsda→sdbに/bootをコピーし、sdbのMBRにGRUBをインストールして、以降は定期同期するようにしておいた。

CPUは強力で、今までCeleron 1個でヒーコラしていたのとは雲泥の差。メモリもそこそこあるので、仮想化もぼこぼこ入れられる……。と思っていたのだが、カーネル(3.2)のバグなのかCPU仮想化支援のバグなのか、VirtualBoxのWindows環境が親のCPU Soft Lockupを引き起こしてカーネルクラッシュさせてしまうようになってしまった。

VirtualBoxと仮想Windowsはセットアップのかなり初期の段階で入れて問題はなかったのに、いろいろサービスを追加していくうちに何かがトリガしてしまったのか、Windows起動30秒ほどで全クラッシュしてしまう。ディスクのログには何も残っておらず、高速でLockupメッセージが流れるのであまりはっきりした見当もついていない状況。シリアルコンソールでもつなげないとダメだな。今後より新しいカーネルのテストやwatchdogまわりのチェックもしてみるつもり。

VirtualBoxのほうはおそらくソフト側の問題なのでともかくとして、ハード的に残念なのは下記2点。

  • eSATAポートはPMP(ポートマルチプライヤ)に対応していない
  • Expressカードスロットは飾り

eSATAについてはあまり期待はしていなかったものの、Intel C200 AHCI自体はPMP対応なので一縷の望みをかけていた。結局ディスクは1つしか見えずじまい。最近のカーネルでもAHCI PMPまわりを改良したという話はないし、このポートに期待するのは無駄そう。もしかしたらケース内の3や4につなげると……ということはあるかもしれないので、そのうち試す。

むしろ問題なのはExpressカードスロットのほうで、クロシコのSIL24チップや、別のSIL24チップを刺してみたものの、完全にBIOSからも内蔵のハードウェア検証ツールからも無視される(普通のPCではどちらのカードも問題ない)。Expressカードはライザー経由で差し込むのでライザーを外して試そうとしたものの、ライザーが刺さっていないと通電させてくれない仕様で壁にぶち当たってしまった。

どうせダメだろうなとDELLサポートにメールしたものの、「eSATAをBIOSで有効にしてください(それはわかっていてPMPに対応しているのかと聞いたのに……)」「Expressカードスロットの動作についてはこちらからは提供できません(別途電話がかかってきて話したときも、「1Uなのでここに何か刺すことを想定していない」ということを言われたのだが……)」という予想範囲内ではあるが残念な回答。

どっちにしろPMP自体はパフォーマンスに問題あるし内蔵ディスクでも当面困ってないので、いいっちゃいいのだけども、少々DELLさんの対応には失望した。

素材自体は良いし、パフォーマンスも満足いくものなので、DELL特有の「余計なことをして欠点作っちゃってる」というパターンがまたしても、という感がある。

(追記)むつみさんから「sil24だと余計なものが挟まってしまうので、何かPCIeネイティブなものを試してみよ」という連絡が。なるほど。しかし実験素材がないな(笑)。社内で誰かから借りてみるか。

ラックはSi R&D社の静音19"ラックSYSTEM4.5。一度説明に来てもらい、収納物が決まったところで見積もり、配送。中にどのようなものを入れるかによって風の流れの計算あるいは特殊加工をするとのことで、今回は結果的にはPMP使えずで不要になっちゃったけど「なんちゃってRAIDボックス」を綺麗に納めるためのアクリルプレートが取り付けられた。

http://www.si-rd.com/

さて、値段は張るけど、このラックは本当に良い。R210 IIもそれなりな風切り音を出すのだが、ラックの蓋を閉めると、コピー機のアイドル状態よりも音がしない。

強力なファンで前蓋の上部から空気を吸い込み、後蓋の下部から同様に強制排出する。 まだラック内の台数が少ないというせいもあるが、サーバルームが室温と同期している(つまり人のいない時間はほぼ外気温+α)という状況で、R210IIのセンサー観測では、ケースが常時30度、CPUが40〜50度、HDDが常時40度と安定した冷却ができてる。

社内にもやっぱサーバないとやっぱり困るよね、という場面でこのラックはオススメ。

さて、R210 IIを次に止められるのはいつかな……。

_ [cooking] きりぼし大根の煮物、とろろ、かつお刺身


とろろ御飯に煮物というヘルシー系。でもお腹いっぱい。


2012年09月04日

_ [cooking] 味噌ラーメン、春巻


北海道フェアで売っていたラーメン。味噌の味は悪くないが麺がRubyラーメン風のねばり気のあるものでちょっと驚いた。 春巻は惣菜残り物的なやつで、野菜分としてはちと物足りないものに。


2012年09月05日

_ [cooking] あんかけチャーハン、冬瓜と鳥皮のスープ


卵チャーハンに、キャベツ、ネギ、筍、チョリソーのあんかけで。


2012年09月06日

_ [cooking] ジェノヴェーゼ、トマトときゅうりのサラダ


数日前にバジルを収穫してジェノヴェーゼにしようとしたのだけど、アンチョビを切らしていることに気付いてしまい、軽く茹でて松の実と共にミキサーしてからオイル漬けにしておいた。 今回はそのバジルソースを使ってニンニク、アンチョビと合わせてジェノヴェーゼに。 茹でた効果で色落ちせず、いい色のパスタになった。


2012年09月07日

_ [cooking] ロモサルタード


牛ロースを使ってロモサルタード。


2012年09月08日

_ [computer] PDFの前付用ページラベルを(Acrobatなしで)設定する

GitHub https://github.com/kmuto/roman-nmbl にて公開。

常々困っていたところ、iTextのメソッドを見ていたらできそうな香りを感じ、さっそく作成。Javaのコーディングは正直もう辛いので、エラーハンドリングなどもかなりおざなり。

たとえば、前付がローマ数字ノンブル(いわゆるページ番号)、以降の本文などは1から始まるアラビア数字ノンブル、という構成の分割されているPDFをpdftkで合体すると、PDFのページ情報としてはローマ数字だったところは無視されてPDFの1ページ目がアラビア数字1から始まるようになってしまう。紙面内のじゃなくて、リーダのボックスに表示されるほうね。

これを直すにはAcrobatで調整するしかないというのが定説で、スイスアーミーナイフであるpdftkも、update_infoで一見いじれるように見えながら書き込むコードは実装されていないっぽいという罠。

で、update_infoの情報からlabelとLowercaseRomanをキーワードに探していくと、JavaからのPDF生成でよく使われるiTextライブラリにsetPageLabels()という何やら「ピキーン!」とニュータイプ音がしそうなメソッドを発見。

使い方を最初勘違いしていて変なラベルがついたりクラッシュしたりしてしまったのだけど、ともかく前付部はローマ数字、以降は1リセットしてアラビア数字、という希望の出力ができるようになった。

pdftkで合体してさらにこのツールを使ってというのもだるい感じはあるのでiTextで合体も実装してしまえばいいとは思うんだけど、Javaでオプションを解析したりエラーハンドリングしたりというのを考えるとそれはそれで面倒なので、ひとまずここまで。

iTextのメソッドを見ているとほかにもいろいろ面白げなものがあるので、そのうちまた何か作るかも。

_ [cooking] BBQ、とその前菜セット


同僚をお呼びしてBBQ。 昼間に急な雨があったり、遠くの落雷が見えたりとドキドキだったけど、無事に降られることもなく楽しく完了。

写真はBBQ前の前菜盛り合わせ。ナスのマリネ(中)と田楽(上)は同僚から。

こちらからはエンサラータルサ(左。じゃがいも・にんじん・グリーンピース・ツナ・緑オリーブのマヨネーズ和え)、 タルカリ(右。じゃがいもとオクラのターメリック炒め)、ロモ(赤身のサラミ。だいぶ味が落ちてたような……)。


2012年09月09日

_ [cooking] 豚とナスの味噌炒め、きゅうりのぬか漬け


焼肉に使わなかった豚バラとナスを辛み味噌で炒め。汁と一緒に食べるととてもおいしい。


2012年09月10日

_ [cooking] 鶏肉のバジル巻き


鳥もも肉に、収穫し放題なバジルを巻いてロースト。肉!というかんじでうまい。 つけあわせはルクルーゼ鍋でブロッコリーとミニトマトを。これもうまい。


2012年09月12日

_ [indesign] 索引をスクリプトからなんとかして埋め込む

弊社の作業では(さまざまな事故が起き得ることから)InDesignのデータの中に索引を入れるということはまずない(別ファイルで管理)のだけれども、まれに入れざるを得ない案件もある。

手作業で選択→ヨミ入力→選択→ヨミ入力 とやっているとアホになる。スクリプトプログラマとしてはそんなの自動化だろということで、kakasiなりYahoo!なりを使って形態素解析するわけだ。

さてここまではたいして難しい話ではなく、pageReferences.addを使ってめでたく索引埋め込みスクリプトは動作するわけだが、どうも奇妙な現象にぶつかることになるだろう。

というのも、表が途中に存在すると、登録しようとした位置からその行数の累積の文字数分、実際に配置される索引位置がずれるのだ。これはひどい。表が実装されたCS2以来、CS6でも未だ直ってない。表の実装はややこしく、いくらでも不具合はある(たとえば未だに脚注ができずにだまって消えるとか…)のだが、ともかくこのままだと表が登場するたびにどんどんずれていって使い物にならないし、ドキュメント末尾にさしかかると今度はドキュメント先頭やら表の中やらおもしろすぎる場所に索引が入るというオマケ付きだ。

1つの作戦としては表が登場するたびに行数を数えて処理するという手があるが、これは検査が面倒で時間がかかりすぎる。

そこで、前置きが長くなったが、「コピペ」作戦である(正確にはカット&ペーストだが)。「スクリプトだとどうにもだめなのに手作業だとなぜかできる」という処理がInDesignにはよくある。今回も手作業をエミュレートすると、バグを回避して索引を埋め込めた。

埋め込み処理のメソッド実装は次のとおり。

function embedIndex(document, sel, ins, item1, yomi1, item2, yomi2) {
  var tf = document.pages[0].textFrames.add(); // ダミーのテキストフレーム
  tf.geometricBounds = [0, 0, 30, 30];
  tf.contents = "♦";
  if (item2 != "") {
    var topic1 = document.indexes[0].topics.add(item2, yomi2);
    var topic2 = topic1.topics.add(item1, yomi1);
    topic2.pageReferences.add(tf.characters[-1], PageReferenceType.CURRENT_PAGE);
  } else {
    var topic = document.indexes[0].topics.add(item1, yomi1);
    topic.pageReferences.add(tf.characters[-1], PageReferenceType.CURRENT_PAGE);
  }
  tf.characters[0].select();
  app.cut();
  ins[-1].select();
  app.paste();
  tf.remove();
}

selが索引用選択中のテキスト系オブジェクト、insがsel.InsertionPoints(ということはinsは実はリファクタリングできるな…)。item1/yomi1がレベル1索引のペア、item2/yomi2がレベル2索引のペアの文字列。

ポイントとしては、ダミーのテキストフレームをかなり適当に作り、索引をまずそちらに貼り付けるというところ。それをカットして、あるべき箇所にペーストし、ダミーは削除する。

この時点では索引参照ページを見ると空になっているので、すべての索引登録作業を終えたら索引ウィンドウで「プレビューを更新」をすればよい。

あ、topics.addについて重複検査とかしていない(笑)。まぁ基本はできたので、もうちょっとマジメに直そう。

_ [cooking] カレーライス


「燻製カレー」なるルーを冒険心で買ってみた。 燻製というか、若干香料っぽいな…。最初違和感があったけど、食べてるうちに慣れた。けど、あえてまた選ぶかというと微妙なのでたぶんコスモルーに戻りそう。 燻製卵を作ってカレーに入れたらうまいんじゃないか、とはちょっと思った。


2012年09月13日

_ [cooking] 牛肉のごぼう巻き


定番な感じでゴロゴロと。ちょっとごぼうが固め。


2012年09月14日

_ [cooking] サーモンとトマトのクリームソースペンネ、ピクルス


鮭の切り身をソテーしてトマトと一緒にクリームソースで。 ピクルスはBBQ時の同僚の持ち寄り品。甘酸っぱい上品な味だった。


2012年09月15日

_ [cooking] サンマの塩焼、すだち、きゅうりのぬか漬け、レンコンと人参の辛み炒め煮、厚揚げと小松菜の味噌汁


すだちをいただいたので、まずはサンマで利用。合うねぇ〜。 レンコンの煮物は、唐辛子フレークと一緒に炒めてから塩、醤油、味醂、酒、水少々で煮詰めたもの。あっさり甘辛。


2012年09月17日

_ [cooking] とろサーモンのポキ風丼、ブロッコリーの蒸し物


サーモンをごま油・醤油・わさびに漬け込んでヅケにし、レタス、バジルと一緒に。 自家製バジルはちょっとワイルドすぎたか……。オーソドックスにトマトとアボカドのほうがよさそうだね。


2012年09月18日

_ [review] OpenBlocks AX3

8月初旬にぷらっとホームさんからOpenBlocks AX3 ( http://openblocks.plathome.co.jp/products/ax3/ ) を評価用にお借りしている。

本当はいろいろと実験してみたかったのだが、最近十分な時間が取れないのと、レンタルという性質から実働投入もしがたい、ということで、極めて表層的な評価となる。

お借りしたのはOBSAX3/4/DPJ7。4ポートギガビットEther、Java SE for Embeded、16GBのSSD、メモリは本来1GBだが最大の3GBまで増設した状態。


幅101x奥行142.1x高41 と非常にコンパクト(CDケースと比較した画像を参照)。ファンレスで表面が放熱シンクになっており、背面にAC差し込み口。ケースはかなり頑丈。


AC以外の口はすべて前面にまとめられている。コンソール(シリアルコンソール)とRS-232CもRJ45を流用しているので、イーサネット4つと合わせてRJ45の口が6つ並ぶという圧巻。

USBは2口、eSATAまで用意されている。eSATAがポートマルチプライヤに対応しているか確認しようと思ったのだが、あいにく擬似RAID箱を今取り出せない状態のため調べられなかった。

中まで開けてみようとしたがちょっと固くて、ドライバなどを使うと傷つけてしまいそうだったので断念。ぷらっとホームの技術掲載情報から引用。

board_4ports_l.jpg

CPU/アーキテクチャにはARMが採用されており(Armada XP Dual-Core 1.33GHz)、armelアーキテクチャ対応のOSのほか、ハードウェア浮動小数点演算を利用するarmhfアーキテクチャで利用すれば(映像系などで)より良好なパフォーマンスが得られる。

現在のOBSAのプリインストールOSはDebian GNU/Linux 6.0でarmelアーキテクチャを採用している。armhfはDebian GNU/Linux 7.0に向けてまだ開発が継続しているというくらいの段階なので、当面はarmelが最適解となるだろう。

コンシューマ向けの製品ではないため、ソフトウェアのほうはユーザインタラクションについての作り込みはさほどなく、むしろdebootstrapで作ったシンプルなDebian環境に近い。デフォルトのネットワーク設定も、DHCPでつながるわけではなく、シリアルコンソールでログインして調整するか、またはOBSAの初期設定に合わせたネットワークブロック(eth0かeth1を利用)に接続機を合わせてsshでログインして調整することになる。rootユーザアカウントがぽつんとあるだけなので、パスワードの設定、アカウントの追加などはすべて手動となる。玄人向けではあるが、DebianのCUI操作に慣れているならとまどうことは少ないだろう。無論、apt-getでいくらでもDebianらしく拡張可能だ。VNCやXDMCPなどを使えば、リモートからGUIデスクトップを扱うこともできるだろう。

機構としては、フラッシュROMから展開される124MB程度のRAMディスクにSSDをunionfsでかぶせるという手法になっており、/etc/network/interfacesの変更後など必要に応じてflashcfgコマンドでフラッシュROMを更新する必要がある。

 root@obsax3:~# df -m
 Filesystem           1M-blocks      Used Available Use% Mounted on
 /dev/ram0                  124        97        22  82% /
 udev                        10         1        10   2% /dev
 tmpfs                       64         1        64   1% /dev/shm
 /dev/sda1                14091       498     12878   4% /.rw
 unionfs                  14091       498     12878   4% /etc
 unionfs                  14091       498     12878   4% /bin
 unionfs                  14091       498     12878   4% /home
 unionfs                  14091       498     12878   4% /lib
 unionfs                  14091       498     12878   4% /sbin
 unionfs                  14091       498     12878   4% /usr
 unionfs                  14091       498     12878   4% /var
 unionfs                  14091       498     12878   4% /root
 unionfs                  14091       498     12878   4% /opt
 unionfs                  14091       498     12878   4% /srv
 unionfs                  14091       498     12878   4% /media

いくつかパッケージをインストールし、コンパイルなども実行してみた限りでは、CPUおよびメモリに十分なパワーがあることもあり、使い慣れたx86と何ら遜色はない。コンパクトかつファンレスでOSの自由度の高いサーバ/ルータ/ファイアウォールとして、Debianに慣れたネットワーク管理者には非常に魅力的な製品だ。Debian armelの開発環境としてもハイスペックで、Debian armhfのデファクトなリファレンスになりそうな雰囲気もあり、Debianで組み込み開発を進めている人にも重宝されるだろう。

1点気になるところとしては、その発熱の大きさだ。放置していても上面の放熱フィンが触われないくらい熱くなるので、sensorsを入れてCPU温度を計測してみたところ、外気温28℃の状態で、アイドルで80℃、少しストレスをかけると容易に90℃をオーバーする。ケース側は触れた感覚では50℃前後だろうか。料理温度計で計ろうとしたが形状的にうまく計れなかった。←追記しましたが、発熱は初期不良でした。

本体自体は熱への強さをぷらっとホームさん自身が謳っているので問題なさそうとは言え、紙やビニール系(たとえばACアダプタのケーブルなど)のものが接触しないよう注意が必要だと感じた。ぷらっとホームさんの回答では、CPUの消費電力で発熱はするものの、内部コンデンサへの110℃/140℃品の採用や、匡体放熱で動作に影響はないとのことだ。ケーブル類が整理された環境であれば問題になることは少ないが、家庭やごちゃごちゃしたオフィスで使うときにはちょっと周辺環境を気に留めたほうがよさそうである。

オフィスでは現在もぷらっとホームのOpen Micro Server( http://openblocks.plathome.co.jp/products/oms400/price.html 、mipselアーキテクチャ)+Debianが現役でルーティングに活躍している。当初はカーネルに起因する障害でぷらっとホームさんといろいろ検証作業をすることになったが、今ではとても安定化しており、信頼性の高い高機能ルータとなっている。 とはいえ、Open Micro Serverはすでに販売終了しており、OpenBlocks 600ファミリではイーサ3ポート以上というオフィス利用での要件を満たすことができず、万が一故障・復旧不能になったときの代案は頭の痛いところであった。 ギガビット4ポートを選択できる本機は、Open Micro Serverの正当なる後継者として大いに期待が持てる。

#とはいえ、OMSがまだ丈夫で壊れておらず、AX3がなかなかお高いことは確かなので、調達は悩ましいところではあるのです……。Bフレッツニューファミリ程度だとOMSでさほどの速度低下はないし。

追記

記事に書いた高温発熱や、ファイルシステムを作成するだけで奇妙なカーネルクラッシュが発生するなど、どうも本体の不良が懸念されたため、2013年3月にサポートに連絡した。3月24日に交換品が届き、室温状態でアイドル55.9度で安定するようになっている。ほんのり程度の暖かさとなり、これなら確かにまったく利用に問題ない。

_ [cooking] ミラノ風カツレツ、エリンギとカボチャのグリル添え


全体に熟成バルサミコ酢で。


2012年09月19日

_ [cooking] お好み焼き


キャベツ、豚肉、人参、椎茸とシンプルに。


2012年09月20日

_ [cooking] ガッパオ、きゅうりのぬか漬け


だんだん涼しくなってきたし、そろそろバジルの収穫も終盤だね。


2012年09月21日

_ [cooking] ゴーヤと鶏肉とエリンギの黒酢炒め、茹で枝豆


同僚からゴーヤと枝豆をいただいたので、さっそく調理。

黒酢炒めは、ニンニク、片栗粉をふった鶏肉、ゴーヤと炒め、エリンギを混ぜ炒めて、塩、醤油、オイスターソース、紹興酒、黒酢、胡椒、仕上げにごま油という味付け。 作り方はシンプルながら、深みがあって美味。

枝豆もおいしかった。ごちそーさまでした!


2012年09月22日

_ [cooking] ピッツァ


4回目の結婚記念日。朝に生地を仕込んだら昼にはえらく膨らんでしまったので、冷蔵庫で少し大人しくさせた。 マルゲリータ、アンチョビとオリーブ、挽肉とナス、ベーコンとトマト、ミックスと食べ、最後はキウイのデザートピッツァで。お、重い……


2012年09月23日

_ [cooking] 新米、牛肉のトマト煮、フォッカッチャ


同僚から新米をいただいた。粒が立っててうまい! ピッツァ生地の残りはオリーブを詰めてバジルをかけ、フォッカッチャ。これもうまい!


2012年09月24日

_ [cooking] コロッケ、豆腐とオクラとひじきのサラダ、きゅうりのぬか漬け


寄りすぎ(笑)。コロッケは出来合い。豆腐オクラひじきサラダは定番化。


2012年09月25日

_ [cooking] ミートソースパスタ


がっつり挽肉とナスの入ったものを食べたかったので。


2012年09月26日

_ [cooking] サバの塩焼、かぶの煮物、きゅうりのぬか漬け


かぶはまるごとをルクルーゼでコトコトと。


2012年09月28日

_ [cooking] ジェノヴェーゼ


バジルは少し前に収穫していたのだが、アンチョビを切らしているという失態により、オイル漬けのまま待機していた。 ようやくアンチョビを入手したのでジェノヴェーゼに。やはりバジルが野性味あふれる味だ。


2012年09月29日

_ [cooking] しょうが焼きとニンジン炒め、豆腐とワカメの味噌汁


しょうが焼きを焼いたあとに軽くチンした人参を炒めるとおいしいらしい、ということで作ってみた。なんかちょっと野菜炒めっぽい味な気がしなくもないが…。