悪魔茶屋
*BSDにまつわる記録… 間違ってたらゴメン
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。
iTuneでCDのジャケを表示する
一年間使っていて今頃になって知ったのですが、DAAPサーバ内の曲をiTuneで再生するとき、その曲のジャケを表示することができます。

iTuneでCDのジャケを表示

設定ファイル mt-daapd.confart_filename にファイル名を指定するだけです。ファイル名は一つしか指定できないのでコツがあります。CD毎にディレクトリを作ってそこに曲とジャケ画像を入れます。ファイル名を cover.jpg とすると下のようになります。

 [mt-daapd用データディレクトリ]
  :
  ├ [アーティスト名]
  ├ [アーティスト名]
  │ ├ [CD名]
  │ │ ├ 1曲目.mp3
  │ │ :
  │ │ ├ n曲目.mp3
  │ │ └ cover.jpg
  │ ├ [CD名]
  │ │ ├ 1曲目.mp3
  │ │ :
  │ │ ├ n曲目.mp3
  │ │ └ cover.jpg

ディレクトリ内の曲を再生すると、同じディレクトリにある cover.jpg が表示されます。

テーマ:iTunes - ジャンル:コンピュータ

pdf-writer で日本語を表示
先に書いた ruby で PDF を出力する記事はインストールまででしたが、ここでは日本語を含む PDF ファイルを作成します。
下記の簡単なスクリプトを Vine 上で実行して PDF ファイルを作成し、Windows 上の Acrobat Reader で表示しました。
#! /usr/local/bin/ruby

$KCODE='e'
require 'pdf/writer'

en='CARCASS'
ja='かーかす'

pdf=PDF::Writer.new(:paper=>'A4')
pdf.stroke_style(PDF::Writer::StrokeStyle.new(0.4, PDF::Writer::StrokeStyle::SOLID_LINE))

center=pdf.mm2pts(105)
y1=pdf.mm2pts(200)
y2=pdf.mm2pts(150)

pdf.select_font('Times-Roman')
tw=pdf.text_width(en, 36)
pdf.add_text(center-tw/2.0, y1, en, 36, 0)
pdf.rectangle(center-tw/2.0, y1, tw, pdf.font_height(36))
pdf.stroke

pdf.select_font('Ryumin-Light', 'EUC-H')
tw=pdf.text_width(ja, 36)
pdf.add_text(center-tw/2.0, y2, ja, 36, 0)
pdf.rectangle(center-tw/2.0, y2, tw, pdf.font_height(36))
pdf.stroke

pdf.save_as('test.pdf')

かーかす1

かーかす2

PDF::Writer#text_width は正しい値を返してますが、PDF::Writer#font_height はどうなんでしょう。説明書(*)によるとデセンダの下からアセンダの天辺までとなっていますが。
* http://ruby-pdf.rubyforge.org/pdf-writer/ から manual → download

テーマ:プログラミング - ジャンル:コンピュータ

ruby で PDF ファイルを作成
仕訳帳や総勘定元帳などを紙に印刷するために ruby から PDF を出力することにしました。ruby から PDF を扱えるライブラリはけっこうあるようですが、日本語を使えて pure ruby な pdf-writer を利用することにします。

pdf-writer を使うには下記のものが必要です。

pdf-writer 1.1.3
http://raa.ruby-lang.org/project/pdf-writer/
trans-simple 1.3.0
http://raa.ruby-lang.org/project/trans-simple/
color-tools 1.3.0
http://raa.ruby-lang.org/project/color-tools/
pdf-writer日本語フォントパッチ
http://www2s.biglobe.ne.jp/~Nori/ruby/ja/


インストール時に気がついた点

  • pdf-writer-1.1.3.tar.gz の展開時にエラーが出ますが、ライブラリには影響ないようです。無視しました。
  • Austin Zieglerさんのライブラリにはインストール方法が書いてあったり無かったりでナニです。が、要はライブラリとなるファイルを ruby のライブラリのディレクトリにコピーするだけでよいようです。(使えたのでよしとしまいした)


インストールします。すべてのファイルを展開します。

$ tar zxvf pdf-writer-1.1.3.tar.gz
$ tar zxvf transaction-simple-1.3.0.tar.gz
$ tar zxvf color-tools-1.3.0.tar.gz
$ tar zxvf pdf-writer-1.1.3-ja_font_patch-20060516.tar.gz


日本語フォントパッチをあてます
$ cd pdf-writer-1.1.3
$ patch -p0 < ../pdf-writer-1.1.3-ja_font_patch-20060516/→
pdf-writer-1.1.3-ja_font_patch-20060516.diff


ライブラリ用ディレクトリにインストールします。
ディレクトリはシステムごとに適当にあわせてください。
# cd lib
# cp -R pdf /usr/local/lib/ruby/1.8
# cd ../../transaction-simple-1.3.0/lib/
# cp -R transaction /usr/local/lib/ruby/1.8
# cd ../../color-tools-1.3.0/lib/
# cp -R color color.rb /usr/local/lib/ruby/1.8


これで require 'pdf/writer' すれば利用できます。irb などでライブラリを読み込めるかてすとしてみましょう。
$ irb
irb(main):001:0> require 'pdf/writer'
=> true
irb(main):002:0>

true が返ってきたら OK です。


mswin32 版 ruby の場合、irbを起動した時点で readline のライブラリが無いと言われたり、pdf-writer をロードすると zlib が無いと言われます。これもバイナリが配布されているので ruby.exe と同じディレクトリに入れておきましょう。

http://www.garbagecollect.jp/ruby/mswin32/ja/documents/install.html

テーマ:プログラミング - ジャンル:コンピュータ

白箱を開ける
カーペット鋲

白箱のHDDがクラッシュしたら箱を開けてHDDを交換しないといけません。それを想定して箱を組み立てて電源を入れる前に開けてみました。

そう簡単に開きません

箱背面の小さな穴には組み立て時に気がついていました。CD-ROM の穴と同様なものだろうということで、金属クリップを伸ばしてグイグイ押してみました。

びくともしません。やたら硬いです。クリップが曲がってしまいます。CD-ROMなら簡単に開くのに。いろいろこの穴に合う金属の棒を探してみました。ぴったりなものがあります。カーペット用の鋲です。棒の太さといい硬さといい最適です。さらに鋲なので頭に傘がついています。棒と垂直に力が入れやすいです。これでいつHDDがクラッシュしても大丈夫です...

テーマ:周辺機器 - ジャンル:コンピュータ

やっとNAS
NAS といっても Windows 対応のみで片手落ちなんですが、まずは Samba です。Samba を利用してファイルをサーバが読み出したり書き込むにはサーバにアカウントが必要です。多くの人はIDとパスワードを嫌いますが、マルチユーザで使用するときは仕方がないです。家庭用 NAS ということでマルチユーザにしましょう。一人しか使う人がいないと思っている人も何時使いたい人が現れるかわかりませんから。

Samba を利用して LanTank のディスクを Windows にマウントするとき、アクセス権やマウントするディレクトリは /etc/passwd の内容が利用されます。なので LanTank をハードディスクとして使いたい場合、LanTank にアカウントを作らなければなりません。普通に useradd でアカウントを作成すればよいのですが、気をつけることが一点あります。作成するアカウントのホームディレクトリを /home/xxxx のように /home としてしまうと、そこに保存したデータが RAID1 の恩恵を受けられなくなってしまいます。しかも /home のある hda1 はかなり小さいパーティションなので役に立ちません。
次のように /share/home というディレクトリを作っておきます。

# mkdir /share/home
# chown root:root /share/home
# chmod 755 /share/home


Samba をインストールします。
※「白箱の本」とは異なりますが、パスワードデータベース /var/lib/samba/passdb.tdb を利用する としています。また、Samba を設定するアプリ SWAT もインストールしません。

# apt-get install samba


次にアカウント(xxxx)を作成します。
このアカウントではログインすることはなくファイルサーバ用のアカウントと想定します。ログインシェルは /bin/false にしておきます。ホームディレクトリは先ほど作成した /share/home 下にします。

# useradd -g users -d /share/home/xxxx -s /bin/false -c Samba\ User\ xxxx xxxx
# passwd xxxx
nter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
# mkdir /share/home/xxxx
# chown xxxx:users /share/home/xxxx
# smbpasswd -a xxxx
New SMB password:
Retype new SMB password:
Added user xxxx.


最後に Samba の設定です。

# vi /etc/samba/smb.conf


[homes]セクションの writable を no から yes に変更します。

writable = no


writable = yes


[homes]セクションの create mask 0700 を 755 に変更します。

create mask = 0700


create mask = 0755


サーバを起動して作ったアカウントでアクセスできるか確認してください。サーバの起動は次のとおりです。(再起動後には自動的に起動されます。)

# /etc/init.d/samba start


Windows の Explore (IEではありません) の[ツール]メニューから[ネットワークドライブの割り当て]を選択して、\\Lantank\xxxx というディレクトリを割り当ててください。これが Windows でのディスクのマウントにあたります。割り当てる際にはアカウント情報を入力するよう促されますので、ファイルサーバ用に作成したアカウントの情報を入力してください。

テーマ:UNIX/Linux - ジャンル:コンピュータ