トラ技オフ会2012年02月04日 23時22分41秒

トラ技オフ会参加。USBオーディオ。












しゃぶしゃぶ食べ放題2012年02月05日 23時50分29秒

しゃぶしゃぶ食べ放題で食べる前の状況。食べ放題は結構きつい。


svnリポジトリダンプスクリプト2012年02月11日 08時21分53秒

KURO-BOX/Debian Lenny環境でSubversionリポジトリを管理するようにしています。 自動でsvnadmin dumpを使ったリポジトリバックアップ運用も既に行っていたのですが、1週間に一度単純なdumpを日付のフォルダを作って保存する形でした。

でもその形だと以下の問題があります。

  1. 更新がなかったリポジトリも毎回バックアップしてしまう
  2. 途中でリポジトリが壊れた場合差分loadで復元したい

ということで以下の機能を追加

  1. バックアップ時点のリポジトリのレビジョンを保管
  2. 保管したレビジョンとその時点のレビジョンに差分がある場合のみバックアップ実行
  3. 差分がある場合はフルバックアップと差分バックアップの両方を実施

念のためですが「自動」の部分はcronで実施で、ここで紹介するのは単なるスクリプトです。

なお、バックアップ元のディレクトリと保存先のディレクトリはスクリプト内で指定する形。引数(第一引数)で指定するのはリポジトリの名前(相対パス)。 オプション(第二引数)で更に他のディレクトリに最新のバックアップをコピーします。

#!/bin/sh
##########################################
#      svn repository dump
##########################################
# setting path
rtop="/mnt/svn"
svnbackupdir="/mnt/backup/svndump"
#
if [ "$1" = "" ]; then
       echo "Usage $0 repository-name"
       exit
fi
repo=$rtop"/"$1
if [ ! -d $repo ]; then
       echo "$repo not found"
       exit
fi
echo "## $repo dump start ##"
logger "## $repo dump start ##"
datedir=`date +%F`
echo "today is" $datedir
if [ -d $svnbackupdir ]; then
       echo "already exist" $svnbackupdir
else
       echo "mkdir" $svnbackupdir
       mkdir $svnbackupdir
fi
backupdatedir="$svnbackupdir/$datedir"
backupbase=`echo $1 | tr "/" "_"`

# history save
hisfile="$svnbackupdir/svn_$backupbase.history"
newrev=`svnlook youngest $repo`
echo "$repo revision is $newrev"
backupfile="$backupdatedir/svn_$backupbase.dump"
if [ -f $hisfile ]; then
       lastbackup=`cat $hisfile`
       echo "$repo last dump revision is $lastbackup"
       if [ "$lastbackup" = "$newrev" ]; then
               msg="## $repo no change ##"
               echo $msg
               logger "$msg"
               exit
       fi
fi

# backup dir create
if [ -d $backupdatedir ]; then
       echo "already exist" $backupdatedir
else
       echo "mkdir" $backupdatedir
       mkdir $backupdatedir
fi

# svndump diff
if [ -f $hisfile ]; then
       lowrev=`expr $lastbackup + 1`
       difffile="$backupfile""_""$lowrev""_""$newrev"
       echo "difffile = $difffile"
       msg="svn dump $repo -r $lowrev:$newrev --incremental  --> $difffile"
       echo $msg
       svnadmin dump $repo -r $lowrev:$newrev --incremental > $difffile
       logger "$msg"
fi

# svndump all
msg="svn dump $repo --> $backupfile"
echo $msg
svnadmin dump $repo > $backupfile
logger "$msg"

# dump history save
echo $newrev > $hisfile

# copy svndump file
if [ "$2" != "" ]; then
       cpdir="$2/$datedir"
       if [ -d $cpdir ]; then
               echo "already exist" $cpdir
       else
               echo "mkdir" $cpdir
               mkdir $cpdir
       fi
       echo "svn dump copy $backupfile --> $cpdir"
       cp -p $backupfile $cpdir
       cp -p $difffile $cpdir
fi
msg="## $repo dump end ##"
echo $msg
logger "$msg"

EAGLEでのシルク印刷編集2012年02月12日 10時14分28秒

EAGLEで回路設計、基板設計をしてP板.comに基板製造を依頼したことがあります。その時はシルク印刷をどうしていいのかが分からず、結局シルク印刷なしで発注してしまいました。

たまたま、他のサイトの記事でulpフォルダにツールを追加するという説明をみてそのツールを追加操作したときにフォルダの中身を見たのをきっかけとして[silk.ulp]なるファイルがあるのに気付きました。
これ、実行してみると以下のことを行っているようです。

1.tPlaceレイヤのデータを_tplaceレイヤにコピーして色を黄色くする
2.bPlaceレイヤのデータを_bplaceレイヤにコピーして色を黄色くする

tPlace、bPlaceレイヤは部品ライブラリから配置した部品データの外形データを貼り付けているレイヤのようです。このレイヤは元から存在しているようです。tPlaceが表面。bPlaceが裏面です。
※以降[t]は表面、[b]は裏面のデータということで説明は省略します。

もともと配置した部品の属性は回路図上で部品名や端子名が対応付けられていて、基板データ上のデータとしてはtNames/bNames/tValues/bValesとして表示されるようになっています。
EAGLEのレイヤの説明はこちらもご参照ください。

これらが全てシルク印刷イメージとして「自動配置」されれば特に苦労はないのですが、基板からはみ出たりするのでそのまま使うことはできません。
つまり、部品名などは自分で描く必要があったわけです。

今回実施した手順は整理すると以下になります。

(a) [silk.ulp]を実行(もともとEAGLE5.11.0に入っていました)

(b) _tplaceレイヤで部品名やオリジナルの文字列を追加

(c) _bplaceレイヤで部品名やオリジナルの文字列を追加

(d) P板.comで提供されている[gerb274x[4L].cam]を使ってCAM Processor実行

(e) [Silk screen CMP]タブで対象レイヤがtPlaceになっているのを_tplaceに変更

(f) [Silk screen SOL]タブで対象レイヤがbPlaceになっているのを_bplaceに変更


 以下、[silk.ulp]を実行


tPlaceレイヤ表示は以下の状態


bPlaceレイヤは以下の状態


[silk.ulp]を実行直後の_tplaceレイヤの状態は以下。単なるtPlaceレイヤのコピーだということが分かる


[silk.ulp]を実行直後の_bplaceレイヤの状態は以下。同様に単なるコピー。



以下は表面のシルク印刷レイヤとして_tplaceレイヤに文字などを追加したところ

同様に裏面のシルク印刷レイヤとして_bplaceレイヤに文字などを追加したところ

全レイヤ表示状態

ACER ASPIRE ONEのBIOSアップデート2012年02月14日 23時53分51秒

気がづいたら充電できなくなったAcer Aspire One初代機。ネットで調べたらBIOSアップデートすれば良いらしい。結論から言えばそれで問題は解消した。

以下はアップデート前。

アップデート中。



アップデート後。