トップ «前の日(05-01) 最新 次の日(05-03)» 追記

2004-05-02

_ シャチハタ QR コードスタンプ

シャチハタが「QRコードスタンプ」 (ITmeaid)

実は使い道がよく分かっていない QR コード。でも面白そうだとは思うんだな、これが。

Tags: Biz

_ 2.5inch のディスクをマウント

あれこれ調べて、サーバを立てて以来初めて、昔使っていた 2.5" の 20GB の HDD をマウントできた。(スピンアップするとうるさいんだ、これが。)

見ると

  • 一生懸命 NTFS をマウントしようとしていたが、実は FAT32 だった。
  • てっきり2ドライブ構成だと思っていたが、実は 1ドライブ構成だった。

みたい。あー。そう言えばパーティション切り直すのが面倒(IBM のリカバリ領域とかあってちょっともったいないんだけど)でそのまま使っていたような気がしてきた。NTFS にしなかったのはまだあまり Windows 2000 を信用してなくて、いざというとき DOS や Win9x からの復旧を考えてのことだったのかも。

てゆーかここにあるに違いないと思っていたアナム&マキの mp3 はなかった。間違って消しちゃったのか。。。

Tags: 日々

2005-05-02

_ 冷房器具調べ

思うところあって冷房器具を調べる。

冷風機なるものがあるらしいことを知るが、最終的には湿度が上がるか気温が上がるかのどちらからしい。そりゃまぁそうだよなぁ。電気もガスもそのままでは冷却能力はないんだから、どうにかしてある空間の熱や湿度を奪ってそれを別な場所に逃がさなきゃならない。じゃーどこへ逃がすって話に行き着く。部屋の中に逃がしたら元の木阿弥以下の可能性は十分にある。

体感温度を下げることは十分に可能だろうけど、それは直接風を受けることが可能な場合に限られると考えて間違いはなさそう。では風を受けることがそもそも身体に触る場合はどうだろう? 暖房は温風を出さないタイプがあるけど、冷房はそういうのはさすがに無理なのかな。

なんて、別に大げさな話じゃなくて単にフェレット向けの冷房を考えてただけなんだけど。うーむ。経済的で健康的な冷房ってのは案外難しいな。

Tags: Tool 日々

_ 大人も勉強しろとは思うが、

科学常識このぐらいは――目安作り、文科省乗り出す

うーん。正答率91%(8/11)。 悔しいなぁ。

まだやってない人のためにどれが何とかは書かないけど、日本の入試とか免許の試験とかを受け慣れてると裏読みしてハマる可能性アリとだけ書いておきます。スパッといきましょう。

しかしこの手の基準を文部科学省が言うのはどうかなぁ。旧文部省じゃなくて旧科学技術庁が言ってるのかな。あ、これも裏読みか。

Tags: 日々

_ HHK Lite2 げと

なんかキーボードを買ってばかりのような気がするが、うち用に HHK Lite2 JP PS/2 黒を入手。予想通りちょっと音がでかい*1が、それ以外はそれほど不満はない。さすがにこの値段で細かいタッチに注文をつけるのは酷ってもの。サイズと値段とまともな配列を考えると十分にお値打ち品である。*2

しかし金沢はこれ1本手に入れるだけなのにちょっと苦労しますぞ。いいのか、こんなことで。置いてるキーボードのほとんどは Microsoft, Logicool を除くと Elecom はじめ安めのラインナップばかり。そもそもまともな配列のコンパクトキーボードがほぼ皆無。(変則配列*3の USB のものは割とよく見る。)いかんなぁ。まーまともなコンパクトキーボードってみんな高めだから、売れにくいってのはあるだろうけど、こうして店頭にモノがないという状況は完全に悪循環にハマッてるよね。以前は 100満ボルトにも置いてあったのになくなってしまった。パーツの品揃えは増えたのにキーボードが減るとは何事か。

Tags: Tool 日々

*1 ゆっくり丁寧に押せばもちろん音は出ないんだけど、HHK ユーザーにそれを求めるのは無理。ここだけはものすごい不満なんだよな。

*2 実際には入手できる店がほとんどないので、若干お値段高めになってしまったけど。

*3 何を以って変則と呼ぶのかは人それぞれだと思うけど、個人的には Enter の脇に一列だけキーを配置するタイプは許せない。逆に Ctrl が左下だろうが Fn 左下だろうがそこはどうでもいい。どうせ A の隣に持ってくるから。

_ FreeStyle Wiki こんな感じかな

accesskey だけでなくついでに title もつけてみた。

lib/Wiki.pm

319a320,321
>         my $title  = shift;
>         my $access = shift;
330c332,344
<         push(@{$self->{"menu"}},{name=>$name,href=>$href,weight=>$weight});
---
>         if ( $title !~ /^$/ ) {
>                 $title = ' title="'.$title.'"';
>         }
>         if ( $access =~ /^[0-9a-zA-Z\/.,]$/ ) {
>                 $access = ' accesskey="'.$access.'"';
>         } else {
>                 undef( $access );
>         }
>         push(@{$self->{"menu"}},{name=>$name,
>                                  href=>$href,
>                                  weight=>$weight,
>                                  title=>$title,
>                                  accesskey=>$access});

accesskey に使える文字は正規表現にあるように制限したけど、これは手元の Firefox で適当に確認しただけなので、間違ってる可能性あり。まーでも普通は英数字以外使わないでしょ。

tmpl/header.tmpl

7c7
<       <a href="<!--TMPL_VAR NAME="href"-->"><!--TMPL_VAR ESCAPE="HTML" NAME="name"--></a>
---
>       <a href="<!--TMPL_VAR NAME="href"-->"<!--TMPL_VAR NAME="title"-->
        <!--TMPL_VAR NAME="accesskey"-->><!--TMPL_VAR ESCAPE="HTML" NAME="name"--></a>

途中で改行入れましたが。

あとは plugin/*/Install.pm とかにある

$wiki->add_menu("編集"  ,"",997);

$wiki->add_menu("編集"  ,"",997,"このページを編集[e]","e");

こんな風に直す。使い方は

add_menu( リンクテキスト, href, weight, title, accesskey)

で、title も accesskey も任意。設定しない場合は当然 HTML 上には現れない。(これは HTML::Template の機能。)

title はともかく、accesskey は管理画面で有効にするかどうか選べた方がいいんだろうなぁ。

Tags: Web Tool Perl

2007-05-02

_ Xen が少しわかってきた

実験環境を用意したっていうか自分が実験できる環境に出向いた。

Domain 0

  • 基本的に Xen 向けにカスタマイズされたカーネルを利用した普通の Linux
    • みたいな感覚で扱えるもの
    • ディストリビューションが対応している場合、そのインストールはびっくりするくらい簡単。基本的に普通にカーネルをインストールするのと同じ。
    • 自分でソースから build とかするとカーネルのアップデートが面倒になるので個人的には対応ディストリを使うべきだと思う

Domain U

  • 構築は、フロッピーも DVD も何もない状況で起動可能なディスクを作ってそこからブートさせるプロセスに似ている
    • VMware と違ってとりあえず空っぽの仮想マシンを立ち上げてインストーラからインストール、という手順を踏めない
    • だから debootstrap がどうこうという話が wakatono さんの記事によく出てくる。debootstrap に inspire された rpmstrap というものもあるので、rpm ベースのシステムはこっちを使えばいいんじゃないかと思う。xen-tools.org - Xen Software: xen-tools の xen-create-image はどっちも対応しているらしい。
    • Debian 4.0, CentOS 5.0 など対応ディストリビューションではこのプロセスも結構簡単
  • 仮想ディスクに相当するデバイス(ファイル、論理パーティション、物理パーティション、物理ディスク)と設定ファイルをコピーすればどの Domain 0 環境でも使えるはず
    • 仮想ディスクイメージとして設定まで中に持っている VMware や VirtualPC とはちょっと違う。逆にそのおかげで特別な設定ツールを必要とせずに Domain 0 上で設定ファイルを直接編集できる
    • Live migration なら動作中でもコピーできるらしいが具体的な方法はまだ知らない

Hypervisor & Monitering Tool

  • 仮想環境を操作するために xm コマンドを利用する。最近流行のサブコマンド形式ですげーいろんなことができる。基本的に xend に依存している。
  • が、仮想環境の操作を行わないなら必要ないし削除してよい。というか wakatono 推奨環境では Domain 0 からは xend 削除しちゃえば?って感じ。

今のところのまとめ

  • VMware と違って従来は基本的に GUI がなく*1、非常にとっつきにくい感じのしていた Xen だが、ちゃんと段取りを押さえていけば一部を除いて非常にオーソドックスに考えることができる。むしろ完全に GUI なしで環境構築できるのでサーバ向けにとてもよい。
  • Domain U の「環境」構築は Domain 0 でなければできないわけではないので、構築環境は別に用意しておけば Domain 0 に余計なもの入れなくていいよね。
  • Domain 0 に IP アドレスを割り当てない方法も可能なので、完全リモートでないならそれがいいような気がする。

※ 別に Debian 好きではないが、Debian 4.0 と CentOS 5.0 ならやっぱ Debian の方が好きだな。余計なことを何もしないので目的に向かって最短距離で突っ走るにはよい。まぁ 4.0 が出たばっかだから思うのかもしれないけど。

cf. Open Tech Press | CLIマジック:debootstrapによるDebian GNU/Linuxのインストール

*1 入れてないから詳しくは知らないけど CentOS 5.0 には GUI 用のツールもある。

_ 生活リズムが変わると

どうでしょう Classic の録画を忘れる。

どちくしょう。でもまぁ昼間充実してたからどうでもいいや。

Tags: 日々
本日のツッコミ(全1件) [ツッコミを入れる]

_ TrackBack [http://www.takumi-server.net/2007/05/virtual_pc_2007vmware..]


2011-05-02

_ FasterCSVでの改行の扱いメモ

日本語で改行入りのデータにうまく対応できるだろうか。以下、FasterCSV 1.5.3 で実験。

まとめ

FasterCSV は改行コードは LF でも CRLF でもどちらでも良い。レコードセパレータとしてもセル内の改行としてもどちらでも良い。ただし、当然セルは " " で囲まれていないとダメ。

実験

OOo calc のデータ
RS LF
セル内改行LF

大丈夫。

全部CRLFのデータ

作ってみた。

RS CRLF
セル内改行CRLF

問題なし。

Excelを想定して

Windows の Excel が手元になかったので教えてもらった通りにデータを作成してみた。

文字コードShift JIS
RS CRLF
セル内改行LF

全体を LF にしたあとに行末だけ CR を付加した。

問題なし。

結果

FasterCSV は文字コードが UTF-8 なら改行コードは LF, CRLF のどちらでもよい。これはレコードセパレータとしてもセル内の改行としてもどっちを使っても良いという意味。セルが " " で囲まれていればその外の改行をレコードセパレータと解釈してくれる。

改行を含んでいるのに " " で囲んでいない場合は Malformed CSV になる。

Shift JIS のデータはそもそも食えないので与える際に NKF で文字コードを変換してある。

Tags: CSV Ruby

2012-05-02

_ Mongoid試してみた

特に目先の目的はないんだけど、スキーマとデータを後から自由に、しかもメンテナンスストップせずに変更できそうな気がして MongoDB を動かしてみようと思い、Mongoid をちょっと触ってみた。

自分用のメモなので特に面白い話はないです、念のため。

Mongoidを使った開発の準備

MongoDBのインストール

省略

新規アプリ作成

rspec を使いたいので

rails new APP_NAME -T -O

で、作成。

できあがったアプリケーションのGemfile

assets とか省略して最低限こんな感じ。

gem 'mongoid'
gem 'bson_ext'

group :development, :test do
  gem 'rspec-rails'
end

で、これを

bundle instal

します。bson_ext はなくても動くみたいだけど、なんかいろいろメッセージが出てうるさかったのでインストールして黙らせた。

generatorを叩いて設定ファイル作成

mongoid のインストールが成功していれば

rails g mongoid:config

これで config/mongoid.yml ができる。これは中身いじらなくて ok. rspec の分は省略。

dbの場所確保とmongod起動task

MongoDB は SQLite3 のような組み込み用ではないので daemon を起こす必要がある。繊細な感じがしていやだったので以下のような rake task を用意した。

これは

db/mongodb/
config/mongo_develop.conf.erb

を作って、conf.erb の内容から conf を生成してこの conf を mongod -f に与えて起動するようになっている。

screen を起こして一つの window で mongod を、もう一つで rails server を起こすようにすると邪魔じゃないしタブの意図が明確になっていいんじゃないかと思う。mongoid.yml の配置以降は mongod 起きてないと rails コマンドがちゃんと機能しないかも。

少なくとも migration は migration 実行時に初めて DB に変更が加わるんだけど Mongoid の場合はその場で変更できるものは変更するらしい。したがって mongod が起きてないと generate や destroy は実行できない。

Modelの作り方

普通に generator を使う。上のセットアップを済ますと generate model は Mongoid の model 生成用 generator に差し替わっている。*1

できるのはこんなモデル。

class Foo
  include Mongoid::Document
end

ただし、これだと timestamps 相当の field がない。ActiveRecord::Migration が標準で作るのと同じ感じの Model にするには以下のように作る。

class Bar
  include Mongoid::Document
  include Mongoid::Timestamps

  field FIELD_NAME, { option }
end

Mongoid はこんな感じで便利機能をイロイロ include できるらしいので一度確認しておくとよさげ。

cf. Play With Mongoid!

Mongoid + Dragonfly

ActiveRecord の場合は以前

今さらRails3メモ - 番外編その1: Paperclip and Dragonfly

で書いたように require するだけでいいんだけど、Mongoid の場合はもう一手間必要。

File: Mongo ― Documentation by YARD 0.7.4

と言っても本家に書いてある通りで、

require 'dragonfly'

app = Dragonfly[:images]

...

# Allow all mongoid models to use the macro 'image_accessor'
app.define_macro_on_include(Mongoid::Document, :image_accessor)

MongoDataStore 使わないなら上の実質2行を initializer に加えるだけ。

感想

migration がないので最初のセットアップのテンポがいい。ActiveRecord のときは

  • migration の方に column を書く
  • Model に attr_accesible 定義や validation で column を書く
  • さらに管理画面に Typus を使ってると Typus で編集可能な column 定義書く

という感じで、

DRY !!!

って叫びたくなる。それが Mongoid + RailsAdmin だとだいぶ楽ちんな感じ。*2

とは言え migration がないので逆に field 名変更は全 document に対して実行しなければいけない。rails runner でのバッチ処理の出番か。

もともとできるだけ生SQLは書かないようにしていた*3し、別に RDBMS 脳でもないので Mongoid 縛りで MongoDB を使うのにはそれほど抵抗ないんじゃないかなーと思っている。まだ Relation 使ってないから join ねーよ!ってときの気持ちが分からないけど、ま、なんとかなるんじゃないかな?

参考

Tags: Rails Ruby

*1 ActiveRecordを使うgeneratorは active_record:model に退避されているので使おうと思えば使える。

*2 RailsAdminについては別エントリで。

*3 といっても凝ったことしようとすると書いた方が早かったりするんだけど