« 2007年6月 | メイン | 2007年8月 »

2007年7月30日

オンラインCSSジェネレーター

Category: コンピュータ

WYSIWYGでデザインを作成できる、オンラインCSSジェネレーターが公開 (slashdot.jp)

HTML の見た目を決める CSS を手作りするのは結構面倒なので、一度作ったものをどうしても使い回してしまうのですが、こういうのがあると便利そう。まだ試していないけど出力された CSS がエディタで編集しやすいものであることいいなぁ。

WYSIWYG って今となっては死語のような…

参考 URL:
WYSIWYG型オンラインCSSデザインツール【CSSEZ】

投稿者 kato : 05:53 | コメント (0) | トラックバック

これはすごい

Category: pya!

一万分の一奇跡 (pya!)

pya! に載る前にもどこかで見たことがある気がしますが…。ひげを生やしていたら or 職業が配管工ならば完璧だったかな。

投稿者 kato : 05:08 | コメント (0) | トラックバック

2007年7月25日

手作り化粧水

Category: 雑記

基本レシピ:手作り化粧水
ローション(化粧水)を作ってみましょう

を参考に化粧水を作ってみました。用意したものは

■ フローラルウオーター(月桃)
■ グリセリン
■ エッセンシャルオイル(ティーツリー、ラベンダー)
■ エタノール

で、これらを先に挙げたサイトに従って調合して遮光瓶に入れて終了。予想以上にあっという間に出来た。一番時間がかかったのは容器の熱湯消毒か。

調合のためにビーカーや漏斗なども用意して作成しましたが、そのせいもあってなんだか理科の実験のようで楽しかったです。香り的にはフローラルウオーターが一番勝っている気がする。でも今回は最初と言うこともあって奮発したけど次からはけちって精製水にしてしまうでしょう…

エッセンシャルオイルも高いのでおためし程度の 3ml のものを購入。使用感がよければもう少し量の多いものを買っても良いかな。

投稿者 kato : 19:08 | コメント (0) | トラックバック

2007年7月18日

ネタ人生?

Category: 雑記

昨年末より皮膚科に通っているのですが大分よくなったおかげもあって次は2週間後になった(それまでは1週間おき)。さすがに通うのも長くなったので看護師さんたちともすっかり顔馴染み。ということもあって

「ちょっと寂しいねぇ」

というありがたいお言葉も頂いたのですが、

「話題性が無くなる」

とも言われました。それどういう意味?そんなに病院でネタを振りまいた記憶はないのだが。まぁ、しゃべり方がおかしいのはそれなりに自覚してはいますけどね(「この子」とか…便利な言葉だと思うんだけどなぁ。でも確実に初対面では笑われる)。

まぁ、研究室内でも「いぢられキャラ」らしいのでそういうことなのかな。

投稿者 kato : 01:30 | コメント (0) | トラックバック

復活

Category: 雑記

先日バスケットボールで肉離れをおこして約1ヶ月。なんとなく痛みが残っているような気がしつつも昨晩バスケットボールをやりに行ってまいりました。さすがにストレッチを入念に行い、軽いダッシュを何度かしてみて問題がなさそうでした。違和感があったら脇でリハビリをと思ったのですが8割程度の力ではありますがすべてのメニュー参加できました。

そうなるとやっぱり筋力と体力を戻さないとなぁ…

投稿者 kato : 01:26 | コメント (0) | トラックバック

2007年7月11日

可変長の文字型処理

Category: Fortran

Fortran で任意のバイナリを扱うために、BufferSize 文字の文字型でキャッシュして transfer 関数を用いて値に変換するということは前のエントリで書きました。その際、バッファサイズは外部から与えたいので可変長で文字型を定義する必要があります。しかしんがら Fortran において文字型は最初に定義されてしまうという問題があります。そこで

character, dimension(:), allocatable :: Buffer allocate( Buffer(BufferSize) )

のように1文字の文字型配列を allocatble で定義しまし。これで最初うまく行くと思っていたのですが、例えば

Buffer(1:5) = 'abcde'

のように文字列 "abcde" を代入してみると結果は Buffer(1) 〜 Buffer(5) すべてに "a" が入る。これは「1文字の文字型の配列」なので、上の代入文の時に2文字目以降は無視されるということのようです。

次の手を考えねば…といいつつ現在の私の知識ではよく分からんと行き詰まっていたのですが、試しにこのまま read 文でデータを呼んでみたら何事もなかったように読んでくれた。ifort でも pgf90 でも問題なく動いたのできっと大丈夫でしょう。

投稿者 kato : 02:56 | コメント (0) | トラックバック

2007年7月10日

いい方法はないのかしら

Category: Fortran

Fortran で不定長の単純バイナリを読むのはとても大変。昔は C の fseek, fread に対応する Fortran 用の関数を C で作成してライブラリ化していたのですが、どの環境でも動作することを考えたりするとやっぱり Fortran で閉じていた方がいいなぁ。ということで頑張ってみた。

アイディアは単純。ファイルを直接探査で呼び、レコードサイズを BufferSize だけの文字型で定義する。つまり以下の用に読む。

integer, parameter :: BufferSize = 1024 character(len=BufferSize) :: Buffer open( 11, file=filename, access='direct', recl=BufferSize ) ... read(11,rec=irec) Buffer ...

そして必要の範囲のデータを切り出して型変換を主に transfer 関数を用いて行い、Buffer の最後まで来たら次のバッファを読むという戦略。ちょっと面倒なのと速度的にどうかと思うものの、データ変換くらいならば時間はあまり気にしなくてもいいかと自分に言い聞かせます。

一見うまくいったようなのですが、セグメントエラーで落ちる場合が出ました。最初は読み込み部分が問題とは思わず、ポインタ関連だと思い込みその周りをずっとチェックしていました。ところがあることをきっかけにそうではないことに気づきました。

エラーの原因は分かってみると単純で以下の通りでした。適当なバッファサイズ(上では 1024バイト)で呼んでいくと最後のレコードが必ずしも、というよりもほとんどの場合、バッファサイズよりも小さいサイズを読むことになります。その結果、アドレス空間に異常が生じてセグメントエラーになるということでした。ということで、バッファサイズはファイルサイズの約数でないとダメだということです。ファイルサイズが奇数の場合はどうしよう ^^;

ちなみにきっかけですが、コンパイラを ifort から pgf90 に変えてみた事でした。ifort の場合、レコードサイズと読み込むデータサイズが異なっていても読み込んでしまっていたのに対し、pgf90 ではその段階でエラーが出ました。それでようやく気がつきました。やっぱりどの環境でも動くというのはかなり気をつけないと難しいものだと改めて実感しました。

投稿者 kato : 02:21 | コメント (0) | トラックバック