小遣い帳も更新

Day bank stationを使って iPodに小遣い帳をつけている。これを下記のように1年でうまくファイリングして決算させている。

12月31日時点で、Cashならびに銀行のアカウントの額をCarry Overとして、マイナスで記帳し、同額を1月1日に繰り入れる。これをPCにBackUpし、昨年1月1日(この日にさらに前年のCarryOverが記されている)から12月31日分をエディットして年の収支とする。iPodのDay bankには1/1のCarry overからスタートさせる。これで昨年までの収支項目はクリアされる。

クレジットが課題。今クレジットは、一つの会社につきこの月に引き落とされる項目と、次の月以降に引き落とされる(tbi)の項目の二種類に分類して記入している。当月の請求が明らかになった時点で、(tbi)から本項目に移行している。従って年の履歴は本項目に貯められている。この場合、まず1月5,6日に引き落とされる予定分は、本項目に入っているので、ここを12月31日付で一旦+でCarry overとし、1月1日付で同額を赤字でCarry overで入れる(つまり借金を引きずる)。この額に対応した引き落とし項目をClearedから外す。2月以降に引き落とされる(tbi)分については、面倒なので、そのまま全部を次年度に持って行き、逆に昨年度分からは除外しておく。

これでとりあえずPCには昨年度1年分の収支が蓄積されるとともに、iPodには、最低限の昨年からの借金と本年からの収支項目がリフレッシュして入れてゆけるはずだ。

追伸:Day bank stationと同期させると、どこかでゾンビみたいなレコードがPC側に残っていて、合計額がiPodとPCで合致しないことがあった。SYNCさせる毎に、現時点の各項目のTotalについては絶えずチェックしておく必要がありそうだ。


新年Thunderbird更新

メールを利用し始めてすでに4半世紀は経ったと思う。初期はEudoraを使っていて、2008年からThunderbirdに乗り換えた。2000-2007までのEudoraもThunderbirdに変換した。これを全部一括で呼び出していると落ちてしまいそうなので、毎年正月に昨年1年分をアーカイブすることにしている。以下その手順。

1)1月早々に、defaultのプロファイルをどこかにコピーする(e.g., %User\AppData\Roaming\Thunderbird\Profiles\XXX.defaultを c:\tmp\配下など)
2)旧年中のアクセスプロファイルの作成:ThinderbirdからFile->Open Profile Managerを選択し、新規プロファイルを作成する。
(注:スタートのファイルとプログラムの検索窓から thunderbird.exe -p を入れてもプロファイルマネージャが起動する)
旧年中のプロファイルアクセス用新規プロファイル名を入力する(e.g.: 2011profile)。
これで新規ディレクトリが%User\AppData\Roaming\Thunderbird\Profiles\XXX.2011profileのような感じで作成される。
3)Profile switcherにおいてDefaultをデフォルト起動に選択しておく
・Profile switcherはから取得可能。
4)一旦Thinderbirdを終了する
5)1)で作成したプロファイルを2)で作成されたディレクトリ配下に移動させる。このとき配下には、デフォルトで
フォルダまたはファイルが出来ているかも知れないが、かまわず全部上書きする。
6)Thinderbirdを起動する
7)<メール取得非活性化(重要!)>
・アカウント名を削除、左のペインのアカウント名を右クリック。設定で自分のアカウント名を例えばThunderbird2011などと替える、popサーバをmail.yyy.jp->noreply.yyy.jp
(ありえない名前)に変更
・Gmail他のアカウントも同様にしておく。
8)以上で、ProfileSwitcher上で2011の古いprofileにアクセスできるはず。
あとはこのprofile上でメール自体の整理(box整理、ごみ箱消去、1昨年のファイルの消去など)
 各フォルダには空となったモノもおおくあるので、消去すること。またその
 あとには、フォルダの最適化をアカウントごとに行うこと(結構時間がかかる)。
9)普通にThunderbirdを起動すれば、これまで通りのメール履歴が入っている(デフォルト)なので、適宜古いファイルを
 削除するなどして整理すること、例えばメール検索を利用して半年前より古いファイルを選び出し、一括して削除するなど
 するときれいに整理することができる。
10)過去のメールを参照したいときには、ファイル->Launch another profileでLaunch可能


未だRails 2.0.2

まだ自分の環境がRails 2.0.2である。とにかくまだ超初心者なので、簡単にCRUD的サンプルを作る。
(1)DB生成、
(2)scaffoldでアプリを作る
ruby script/generate scaffold XXXX name:string info:text
のように入力
(3)消すときは ruby script/destroy scaffold XXXX
(4) rake db:migrate
でマイグレーションしてくれる

(5)参考書によると同じアプリ名であれば、カラムの追加も
ruby script/generate scaffold XXXX name:string info:text newcolumn:text
などと追加で入れると対応してくれるらしい

今回不確かで申し訳ない。


Amazon EC2で簡単にWinSCPで接続する

これまでftpをセットアップする方法を調べてきたが、もっと簡単にWinSCPで接続できることがわかった。これを記しておく。
(1)PuttyGenを起動。ファイル->秘密鍵の読み込み、で鍵読み込みモードにする
(2)ここで、生成してあったKeyを入力する。OPENSSHヘッダの付されたPairである必要がある。これはKey genaration時に
 指定したファイル名である。Pairで生成されているcert-XX.pemやpk-XXX.pemではないことに注意。
(3)これでPutty用の鍵が生成されるので、生成した鍵の保存->秘密鍵の保存、を選択し、適当な名前で保存する。
(4)WINSCPを起動、新規でプロファイルを作成。ホストには、動作しているEC2インスタンスのPublic DNS名を入れる。
  ユーザ名は、ec2-user、秘密鍵には先ほど保存した鍵を指定、プロトコルは、SCPとする。
(5)これでログインするとファイルをローカルからサーバに転送可能となる。
(6)httpdはあらかじめセットしておくこと
   sudo yum -y install httpd
sudo /etc/etc/rc.d/init.d/httpd start
(7)コンテンツのホームディレクトリは、デフォルト/var/www/htmlなのでそこに転送。パーミッションには注意。

これでOKだ。


iPadからAWS S3上のファイルを閲覧する

これは、もともとAWS S3でiPadの容量を仮想的に増やす記事を見て、これで使えるのかな、と思っていたのですが、今回やってみるともっと簡単にできることがわかりました。
(1)最新のGoodReader(v3.18.6)で、Brouse the Webを選択
(2)AWSのホームURLにアクセスし、ログインする
(3)S3を選択し、ターゲットのバケツを選択する
(4)お目当てのファイルにたどり着いたら、上のメニューからActions->Download
(5)”please right-click the download link below and choose Download Linked File as..”とでるので、そこのDownloadボタンを押す
(6)Download Linked Fileを選択
(7)これでダウンロードが始まり、お目当てのファイルがiPadで見られた!


Plaggerで一部写真を取ってこれなかった

自分のWindows PCでCRON働かせて昼休みに、
Plagger.bat -c c:\Perl\usr\XXXX.yaml
でflickrからあるキーワードにひっかかる写真を自動的に取ってきていた。

ところがあるyamlはOKであるyamlはNGとなっている。わけわからなかったのだが、ファイルのencodeを見たらUTF-8で作ったファイルはOKでSHIFT-JISで作ったファイルがNGだった。全部UTF-8にしたら無事動いた。お騒がせだった。


Amazon EC2でftp機能を入れる

EC2でhttpサーバが動かせたとしても、結局コンテンツをuploadできないと意味がない。それでftp機能をどのようにして入れるかを
調べていたところ“Amazon EC2 (Amazon Linux) での vsftpd インストールと設定 “の記事が大変参考になった。

これで基本的には動くのだが、やってみて一点引っかかったところをメモしておく。
1) EC2のDashboardでSecurity Groupsがあり、そこでTCPポート21番ならびに60000-60010を開けるのだが、Addボタンを押しただけではだめで、Apply rule changeボタンを押さなければならなかった。これは失敗。
2) 同じくEC2のDashboardでElastic IPはアサインしておくこと
3) 動作確認のために、WinSCPで接続を試みた。このとき、
 セッションのホスト名には、Public DNSの名前を入れる(e.g., ec2-xx-xx-xx-xx.compute-1.amazonaws.com)
ユーザ名は先ほど作成したユーザ名、パスワードもその時作成したパスワード
 プロトコルはftp, 暗号化なし
 環境パラメータのftpのところで、パッシブモード接続でIPアドレスを強制する、にチェックを入れること。これで接続が可能となった。

当然httpdのデフォルトだとコンテンツは、/var/www/htmlにおく。おかげでやっとEC2上でWebコンテンツが上がった。この週末ぐらいは置いておこう。


Irvineでダウンロードが早すぎてNGとなる

Irvineで複数ファイルをダウンロードしていると、ダウンロードが早すぎてその後のダウンロードを拒否されるケースがある。
普通だとダウンロードの間隔を指定したいところだが、Irvineにはその機能がない。
(1)ひとつにはshで、

wget –wait=4 xxxURL/photo/3/251533/251533-25843-8-75614.jpg; sleep 10;

のようなshellを書いてダウンロードさせるのがひとつ。でもこれで拒否されることもある。
(2)実はダミーで dummy1M.jpg
のようなファイルを作り、交代でダウンロードさせる。これは %home/dummy/300k/[001-999].jpgのようなファイル群を作るとよいと思う。全部シンボリックリンク貼っておけば、分量も問題ないだろう。1k, 100k, 300k, 500k, 1M, 10M ぐらいをサンプルで作った。
(3)結局無難なのは、ダウンロード速度を制限することだろう。default100kとなっていたが、これを10kにするとゆっくりではあるが着実にダウンロードしていってくれる


Amazon EC2を使う

同じくAmazon EC2を使ってみることにする。この目的としては、もし短期間にアクセスが集中するようなコンテンツを提示せねばならないようなときの準備をしておくためである。それから、たとえば週末のみにオープンさせるようなテンポラリなサーバがあってもよいだろう、との考え方による。

基本はAmazonのサイトの記述による。
0.まずアカウントやKey Pairを用意しておく。
1.Amazon EC2 コンソールダッシュボードの Launch Instanceでインスタンスを起動させる(これまで0であることを確認する)。
2.Create a New Instance ページがでるので、オプションを選ぶ。ここではClassic wizardを選んだ。
3.使用したいOSを選ぶ。
4.Security Groupを選んで、セキュリティオプションを選ぶ。quicklaunch-xは以前quickstartを選んだ時のテンプレート、defaultはデフォルトのようだ。セキュリティとは、外部からどのポート・プロトコルを許すかのセットを選択する。デフォルトは22のSSHのみだが、80のHTTPも入れてWebサーバになるようにする。(ひょっとしてこれはLauch後に設定したかもしれない)
5.設定確認後 LAUNCHする
6.Navigation ペインの Instances をクリックすると、稼働中のインスタンスが表示される。緑色のマークになっていたら、稼働中。
+ここでSecurity Groupを選んでHTTP 80ポートを追加
7.このインスタンスを右クリックしてConnectを選ぶと、組み込まれたJavaのコンソールが開く
8.ログインネームに注意!Amazon Linuxだとec2-user.Ubuntuだとubuntu. 他のAMIの例だとrootのケースがあるらしい。パスワードは公開鍵で自分のPCに書き込まれたファイルを指定する。
 (自分の場合はC:\AWS\ec2service と極力簡単にした)
9.これでLAUNCH SSH CLIENTを押すと、仮想サーバの画面が出てくる。

以下もしもapacheを立ち上げる際の手続き
10. sudo yum -y install httpd
11. /etc/rc.d/init.d/httpd start
12. ブラウザでapacheのデフォルト画面がでているかチェックする(これはうまく行かなかった)。
13. コンテンツは/var/www/html/ 配下に入るので、ここにindex.htmlを入れる 
sudo でviが必要かもしれない
  
    
    
     Hello world!
    
    
    

Hello World!!

    
    
  ぐらいで十分
14. 再度ブラウザでチェック。
15. ftpでコンテンツが入れられるようにする。

終わる際には、
16. コンソール動作中のインスタンスのStateを右クリックして、Instance LifecycleをTerminateにする。
17. 確認が来るのでYesを選択する。State がShutting downを経てterminateとなる。
18. EC2 Dashboardを確認し、自分のグループでRunnning Instancesが0であることを確認して終了する。