2010年12月9日木曜日

ファイルメーカーでチェックデジットを計算する。

お仕事でとあるチェックデジットを生成する必要があったので作ってみた。

DBの
Tank No テキスト10文字
Check Digit Total 計算式
Check Digit 計算式

チェックデジットの計算は2段階に分けて実施
Check Digit Totalで合計をだしてそれを基にCheck Digitを生成する。

Check Digit TotalとCheck Digitは計算式

Check Digit Totalの計算式 これはちょっと長いですよ
--
(Case ( Left(Tank No;1) = "A" ; 10 ;
Left(Tank No;1) = "B" ; 12 ;
Left(Tank No;1) = "C" ; 13 ;
Left(Tank No;1) = "D" ; 14 ;
Left(Tank No;1) = "E" ; 15 ;
Left(Tank No;1) = "F" ; 16 ;
Left(Tank No;1) = "G" ; 17 ;
Left(Tank No;1) = "H" ; 18 ;
Left(Tank No;1) = "I" ; 19 ;
Left(Tank No;1) = "J" ; 20 ;
Left(Tank No;1) = "K" ; 21 ;
Left(Tank No;1) = "L" ; 23 ;
Left(Tank No;1) = "M" ; 24 ;
Left(Tank No;1) = "N" ; 25 ;
Left(Tank No;1) = "O" ; 26 ;
Left(Tank No;1) = "P" ; 27 ;
Left(Tank No;1) = "Q" ; 28 ;
Left(Tank No;1) = "R" ; 29 ;
Left(Tank No;1) = "S" ; 30 ;
Left(Tank No;1) = "T" ; 31 ;
Left(Tank No;1) = "U" ; 32 ;
Left(Tank No;1) = "V" ; 34 ;
Left(Tank No;1) = "W" ; 35 ;
Left(Tank No;1) = "X" ; 36 ;
Left(Tank No;1) = "Y" ; 37 ;
Left(Tank No;1) = "Z" ; 38)
+
Case ( Left(Right(Tank No; 9); 1) = "A" ; 10*2 ;
Left(Right(Tank No; 9); 1) = "B" ; 12*2 ;
Left(Right(Tank No; 9); 1) = "C" ; 13*2 ;
Left(Right(Tank No; 9); 1) = "D" ; 14*2 ;
Left(Right(Tank No; 9); 1) = "E" ; 15*2 ;
Left(Right(Tank No; 9); 1) = "F" ; 16*2 ;
Left(Right(Tank No; 9); 1) = "G" ; 17*2 ;
Left(Right(Tank No; 9); 1) = "H" ; 18*2 ;
Left(Right(Tank No; 9); 1) = "I" ; 19*2 ;
Left(Right(Tank No; 9); 1) = "J" ; 20*2 ;
Left(Right(Tank No; 9); 1) = "K" ; 21*2 ;
Left(Right(Tank No; 9); 1) = "L" ; 23*2 ;
Left(Right(Tank No; 9); 1) = "M" ; 24*2 ;
Left(Right(Tank No; 9); 1) = "N" ; 25*2 ;
Left(Right(Tank No; 9); 1) = "O" ; 26*2 ;
Left(Right(Tank No; 9); 1) = "P" ; 27*2 ;
Left(Right(Tank No; 9); 1) = "Q" ; 28*2 ;
Left(Right(Tank No; 9); 1) = "R" ; 29*2 ;
Left(Right(Tank No; 9); 1) = "S" ; 30*2 ;
Left(Right(Tank No; 9); 1) = "T" ; 31*2 ;
Left(Right(Tank No; 9); 1) = "U" ; 32*2 ;
Left(Right(Tank No; 9); 1) = "V" ; 34*2 ;
Left(Right(Tank No; 9); 1) = "W" ; 35*2 ;
Left(Right(Tank No; 9); 1) = "X" ; 36*2 ;
Left(Right(Tank No; 9); 1) = "Y" ; 37*2 ;
Left(Right(Tank No; 9); 1) = "Z" ; 38*2)
+
Case ( Left(Right(Tank No; 8); 1) = "A" ; 10*4 ;
Left(Right(Tank No; 8); 1) = "B" ; 12*4 ;
Left(Right(Tank No; 8); 1) = "C" ; 13*4 ;
Left(Right(Tank No; 8); 1) = "D" ; 14*4 ;
Left(Right(Tank No; 8); 1) = "E" ; 15*4 ;
Left(Right(Tank No; 8); 1) = "F" ; 16*4 ;
Left(Right(Tank No; 8); 1) = "G" ; 17*4 ;
Left(Right(Tank No; 8); 1) = "H" ; 18*4 ;
Left(Right(Tank No; 8); 1) = "I" ; 19*4 ;
Left(Right(Tank No; 8); 1) = "J" ; 20*4 ;
Left(Right(Tank No; 8); 1) = "K" ; 21*4 ;
Left(Right(Tank No; 8); 1) = "L" ; 23*4 ;
Left(Right(Tank No; 8); 1) = "M" ; 24*4 ;
Left(Right(Tank No; 8); 1) = "N" ; 25*4 ;
Left(Right(Tank No; 8); 1) = "O" ; 26*4 ;
Left(Right(Tank No; 8); 1) = "P" ; 27*4 ;
Left(Right(Tank No; 8); 1) = "Q" ; 28*4 ;
Left(Right(Tank No; 8); 1) = "R" ; 29*4 ;
Left(Right(Tank No; 8); 1) = "S" ; 30*4 ;
Left(Right(Tank No; 8); 1) = "T" ; 31*4 ;
Left(Right(Tank No; 8); 1) = "U" ; 32*4 ;
Left(Right(Tank No; 8); 1) = "V" ; 34*4 ;
Left(Right(Tank No; 8); 1) = "W" ; 35*4 ;
Left(Right(Tank No; 8); 1) = "X" ; 36*4 ;
Left(Right(Tank No; 8); 1) = "Y" ; 37*4 ;
Left(Right(Tank No; 8); 1) = "Z" ; 38*4)
+
Case ( Left(Right(Tank No; 7); 1) = "A" ; 10*8 ;
Left(Right(Tank No; 7); 1) = "B" ; 12*8 ;
Left(Right(Tank No; 7); 1) = "C" ; 13*8 ;
Left(Right(Tank No; 7); 1) = "D" ; 14*8 ;
Left(Right(Tank No; 7); 1) = "E" ; 15*8 ;
Left(Right(Tank No; 7); 1) = "F" ; 16*8 ;
Left(Right(Tank No; 7); 1) = "G" ; 17*8 ;
Left(Right(Tank No; 7); 1) = "H" ; 18*8 ;
Left(Right(Tank No; 7); 1) = "I" ; 19*8 ;
Left(Right(Tank No; 7); 1) = "J" ; 20*8 ;
Left(Right(Tank No; 7); 1) = "K" ; 21*8 ;
Left(Right(Tank No; 7); 1) = "L" ; 23*8 ;
Left(Right(Tank No; 7); 1) = "M" ; 24*8 ;
Left(Right(Tank No; 7); 1) = "N" ; 25*8 ;
Left(Right(Tank No; 7); 1) = "O" ; 26*8 ;
Left(Right(Tank No; 7); 1) = "P" ; 27*8 ;
Left(Right(Tank No; 7); 1) = "Q" ; 28*8 ;
Left(Right(Tank No; 7); 1) = "R" ; 29*8 ;
Left(Right(Tank No; 7); 1) = "S" ; 30*8 ;
Left(Right(Tank No; 7); 1) = "T" ; 31*8 ;
Left(Right(Tank No; 7); 1) = "U" ; 32*8 ;
Left(Right(Tank No; 7); 1) = "V" ; 34*8 ;
Left(Right(Tank No; 7); 1) = "W" ; 35*8 ;
Left(Right(Tank No; 7); 1) = "X" ; 36*8 ;
Left(Right(Tank No; 7); 1) = "Y" ; 37*8 ;
Left(Right(Tank No; 7); 1) = "Z" ; 38*8)
+
Case ( Left(Right(Tank No; 6); 1) = "1" ; 1*16 ;
Left(Right(Tank No; 6); 1) = "2" ; 2*16 ;
Left(Right(Tank No; 6); 1) = "3" ; 3*16 ;
Left(Right(Tank No; 6); 1) = "4" ; 4*16 ;
Left(Right(Tank No; 6); 1) = "5" ; 5*16 ;
Left(Right(Tank No; 6); 1) = "6" ; 6*16 ;
Left(Right(Tank No; 6); 1) = "7" ; 7*16 ;
Left(Right(Tank No; 6); 1) = "8" ; 8*16 ;
Left(Right(Tank No; 6); 1) = "9" ; 9*16 ;
Left(Right(Tank No; 6); 1) = "0" ; 0*16 )
+
Case ( Left(Right(Tank No; 5); 1) = "1" ; 1*32 ;
Left(Right(Tank No; 5); 1) = "2" ; 2*32 ;
Left(Right(Tank No; 5); 1) = "3" ; 3*32 ;
Left(Right(Tank No; 5); 1) = "4" ; 4*32 ;
Left(Right(Tank No; 5); 1) = "5" ; 5*32 ;
Left(Right(Tank No; 5); 1) = "6" ; 6*32 ;
Left(Right(Tank No; 5); 1) = "7" ; 7*32 ;
Left(Right(Tank No; 5); 1) = "8" ; 8*32 ;
Left(Right(Tank No; 5); 1) = "9" ; 9*32 ;
Left(Right(Tank No; 5); 1) = "0" ; 0*32 )
+
Case ( Left(Right(Tank No; 4); 1) = "1" ; 1*64 ;
Left(Right(Tank No; 4); 1) = "2" ; 2*64 ;
Left(Right(Tank No; 4); 1) = "3" ; 3*64 ;
Left(Right(Tank No; 4); 1) = "4" ; 4*64 ;
Left(Right(Tank No; 4); 1) = "5" ; 5*64 ;
Left(Right(Tank No; 4); 1) = "6" ; 6*64 ;
Left(Right(Tank No; 4); 1) = "7" ; 7*64 ;
Left(Right(Tank No; 4); 1) = "8" ; 8*64 ;
Left(Right(Tank No; 4); 1) = "9" ; 9*64 ;
Left(Right(Tank No; 4); 1) = "0" ; 0*64 )
+
Case ( Left(Right(Tank No; 3); 1) = "1" ; 1*128 ;
Left(Right(Tank No; 3); 1) = "2" ; 2*128 ;
Left(Right(Tank No; 3); 1) = "3" ; 3*128 ;
Left(Right(Tank No; 3); 1) = "4" ; 4*128 ;
Left(Right(Tank No; 3); 1) = "5" ; 5*128 ;
Left(Right(Tank No; 3); 1) = "6" ; 6*128 ;
Left(Right(Tank No; 3); 1) = "7" ; 7*128 ;
Left(Right(Tank No; 3); 1) = "8" ; 8*128 ;
Left(Right(Tank No; 3); 1) = "9" ; 9*128 ;
Left(Right(Tank No; 3); 1) = "0" ; 0*128 )
+
Case ( Left(Right(Tank No; 2); 1) = "1" ; 1*256 ;
Left(Right(Tank No; 2); 1) = "2" ; 2*256 ;
Left(Right(Tank No; 2); 1) = "3" ; 3*256 ;
Left(Right(Tank No; 2); 1) = "4" ; 4*256 ;
Left(Right(Tank No; 2); 1) = "5" ; 5*256 ;
Left(Right(Tank No; 2); 1) = "6" ; 6*256 ;
Left(Right(Tank No; 2); 1) = "7" ; 7*256 ;
Left(Right(Tank No; 2); 1) = "8" ; 8*256 ;
Left(Right(Tank No; 2); 1) = "9" ; 9*256 ;
Left(Right(Tank No; 2); 1) = "0" ; 0*256 )
+
Case ( Left(Right(Tank No; 1); 1) = "1" ; 1*512 ;
Left(Right(Tank No; 1); 1) = "2" ; 2*512 ;
Left(Right(Tank No; 1); 1) = "3" ; 3*512 ;
Left(Right(Tank No; 1); 1) = "4" ; 4*512 ;
Left(Right(Tank No; 1); 1) = "5" ; 5*512 ;
Left(Right(Tank No; 1); 1) = "6" ; 6*512 ;
Left(Right(Tank No; 1); 1) = "7" ; 7*512 ;
Left(Right(Tank No; 1); 1) = "8" ; 8*512 ;
Left(Right(Tank No; 1); 1) = "9" ; 9*512 ;
Left(Right(Tank No; 1); 1) = "0" ; 0*512 ))
--
Check Digitの計算式
--
(Check Digit Total/11 - Int(Check Digit Total/11)) * 11
--

もっと簡単な方法ありそうなんだけどね。

2010年11月7日日曜日

パラサイトクリーンズプログラムをしてみる

寄生虫除去を実施してみる。

黒ぐるみ、ウォールウッド(ニガヨモギ)、クローブ(丁子)をつかって実施。
18日間のプログラムを実施することとなる。

このプログラムは扁形虫、線虫、原虫類、吸忠類、バクテリア、ウィルスなども殺虫する効果がある。

2010年6月24日木曜日

iSSHでリモートアクセス

iPadを購入して自宅や会社のマシーンへリモートアクセスをするのによいソフトです。

ぼくは、SSHのみしか使っていないのでこのソフトだとSSH経由でVNCを使うことができる。

Connection Settings 例
Description : iMac27 ←これは表示名だからなんでもいい
Host : hostname   ←これはsshするマシーンのホスト名
Port:22       ←これはsshのポート、もし変更しているのであればそのポート番号をいれる
login : name    ←sshするマシーンのログイン時につかう名前
Command : ←特に設定しない
Use RSA Key : ←特に設定しない(sshのホスト側でキーがあるときのみ接続するのであれば必須)
Use DSA Key : ←特に設定しない(sshのホスト側でキーがあるときのみ接続するのであれば必須)
Password:←sshするマシーンのログイン時につかう名前

SSH, Telnet, RawがあるのでここはSSHを選ぶ

VNC Settings 例
Password : Ask Every TIme
Shared Session : On
8-bit Color : On
VNC host : iMac27.local ← 内部ネットワークのiMac27への接続を指定しています。同じマシーンであればlocalhostです。
VNC Port: 5902 ← 自分はポート番号をかえている。通常は5900
ぼくはMacではVine Server をつかってます。結構快適ですよ。

あとは接続するだけ

いつもはターミナルから
$ ssh -N -p 22 user@hostname -L 5901/localhost/5901 -L 5902/iMac27.local/5902
SSH Tunnel Managerというソフトを使ってトンネリングもできますがそのままターミナルでやってます。

サーバーへの接続で
vnc://localhost:5901 ←ホストに直接
vnc://localhost:5902 ←内部ネットのiMac27へ接続

iSSHからは設定をしたDescription : iMac27を選択すれば接続できます。
このソフトは右側に赤、黄、緑で状態をひょうじしてくれとこがいいです。

ただし、ドラッグとかの処理がうまくできない。
そのほかグループとかも登録できるのでたくさんの接続先がある場合には便利です。




 

2010年3月29日月曜日

DOCOMOの携帯水没。

P08Aを使っていたのだが土曜日に水没させてしまったようで
電源が入らない状態です。全然だめです。

携帯を水没させることは今回で4回目なので事前に対処可能なサービルに加入済みです。

ドコモだと'ケータイ補償 お届けサービス"があります。
月額315円で、壊れたときには5,250円で同じ物を届けてくれるサービスです。

今日電話したので明日には在庫があったので届くみたいです。

加入しておいて良かった。 ただし、EdyとかDCMXとかモバイルSuicaとかはいろいろ手続きが必要なようです。

DCMX以外は残額が100円以下でほとんど使っていないのでDCMXだけすぐに移行しないと。

2010年3月28日日曜日

ソラニンを読みました。


映画のソラニンを観に行く前に原作を読んでみました。

今回ははじめてネットで漫画を購入して読んでみました。
アメリカの雑誌などはzinio Readerで読んでいたのですが日本のは初めてです。
zinio Readerの日本語版Fujisan Reaserはあるのですがいまいちほしいものがないので使ってません。

漫画はeBookJapanから購入できます。

ebiBookReaderをダウンロードしてつかってみたのですが。

ページめくり時間が標準では1秒の設定なのでAUTOで読もうとしたらついて行けなかった。

読みたいときに端末で読めるのがいいですな。1冊400円と書籍よりちょっとやすいし。


今週は、映画のソラニンを観に行こうかな。

2010年3月27日土曜日

バームクーヘン作りました。



今日は、友人宅で餃子、バームクーヘン、カボチャプリンなどをつくりました。
近くの、公園の桜がきれいだったのでちょっとお花見気分で。


僕が担当して作ったカボチャプリンはカボチャの大きさが大きすぎで失敗してしまいました。
おおきめなかぼちゃでやるのは難しいです。
これはリベンジして次回成功させたいですね。

餃子は前回やっているので失敗することはありません。
今回は、焼き餃子も作れるようにホットプレートにて焼き餃子も作りました。
なかなか好評でです。 やっぱり焼き餃子はいいですなぁ。

バームクーヘンは、お店で売っているような柔らかくなく。ちょっと焦げてるところがあったので苦かったです。

次回までにはカボチャプリンをつくれるようにリサーチをしておこう。

2010年3月26日金曜日

新作実写版の"時をかける少女"をみた。






新宿で、時をかける少女をみてきた。

アニメ版の声優だった仲 里依紗さんがヒロイン役です。

とてもいい映画で、大好きな映画のひとつだな。

仲里依紗さんは"ゼブラーマン -ゼブラシティの逆襲-" にゼブラクィーン役で出演している。

2010年3月25日木曜日

リモートアクセスの設定(VNC over SSH)

仕事場だとプロキシがあって外部への接続が制限されている場合があるんですよね。
そんなときにリモートアクセスをさせるための設定方法をまとめます。

接続先へはsshで接続可能なSSHサーバー環境を用意しておくことが前提です。
これを利用してSSH TunnelをしてVNC Serverへアクセスします。


Windowsの場合とMacの場合でまとめます。

Windowsの場合
sshクライアントが標準ではインストールされていないためPuTTYをつかう。
ダウンロードとインストールをしたら下記の設定をする。
1.ConnectionにProxyの設定をします。
2.SSH Tunnelを設定します。
VNCは5900〜5910を使うため自分でアクセスするポートをきめる。
ぼくの場合は
Source Port を 5901
Destination localhost:5901
に設定しました。
これでSSH Tunnelはできました。
3.PuTTYでログインを実行する。
 SSH Tunnelされる

4.VNCクライアントをつかって
localhost::5901
とVNC Serverをしてしてあげればリモートアクセスできるようになりますよ。

WindowsのおすすめVNCクライアントはUltr@VNC Viewerかな。

Macの場合
sshトンネリングをするまえにProxyの設定をする。
http://www.meadowy.org/~gotoh/ssh/connect.c

コンパイルしてconnectを/usr/binあたりへ置いておきます。
オーナーはroot:wheelあたりにしておいてね。
sudo chown root:wheel connect2

Proxyの設定はサーバーごとにconfigへ記述する
~/.ssh/configを作成する。
--
Host [HOSTNAME] ←SSH接続するサーバー
ProxyCommand connect -S [SOCKS5_USER]@[PROXYSERVERNAME]:1080 -5 %h %p ←ユーザー名とサーバーを記述。
--
ログイン時のパスワードを下記のファイルに設定しておくと利用しやすくなります。
~/.connectrcを作成して
SOCKS5_USER=[USER]
SOCKS5_OASSWD=[PASSWARD]

configと.connectrcのパーミッションは600にしてね。
chmod 600 ~/.ssh/config
chmod 600 ~/.connectrc

あとはターミナルから
ssh -N -p 22 -c des username@servername -L 5901/localhost/5901

SSH Tunnel Managerをつかう接続を容易にできるので便利ですよ
http://projects.tynsoe.org/en/stm/