PC関係のメモ
tDiary 1.5.7リリース / yum使ってみた
tDiary 1.5.7リリース
待望の新バージョンがリリースされました。ので、早速1.5.6のスナップショットから入れ替え。
まずはテストディレクトリtdiary2を用意してそこに1.5.7を解凍した。そして最低限動かすために必要なファイルをコピーしてきた。
cp tdiary/.htaccess tdiary2/ cp tdiary/tdiary.conf tdiary2/ cp tdiary/misc/style/rd/rd_style.rb tdiary2/tdiary/ cp tdiary/plugin/image_ex.rb tdiary2/plugin/ cp tdiary/theme/my tdiary2/theme/ -R
yum使ってみた
動作が重すぎ。でも便利。
Windows XP SP2でのWebDAVアクセス / バッテリ再生サービス / アルゴリズムの勉強中 / ユークリッドの互除法 / ファミレスに移動 / 日曜日は勉強の日 / e-typing / .procmailrc / Canon PowerShot Pro1 / IXY DIGITAL 600
Windows XP SP2でのWebDAVアクセス
アルゴリズムの勉強中
自分は今までアルゴリズムの勉強とかしたこと無かったので、今からでも勉強することにする。
一応知識としては持っていて、業務で必要であれば調べて使ったりするけどそれでは効率が悪い。一通りいつでも使える状態のほうが何かと便利だし、応用もできる。
と、去年から似たようなことを書いてる気がするが、今回きちんと集中するために図書館にきて集中して勉強することにする。
教科書として「岩波講座ソフトウェア科学3 アルゴリズムとデータ構造」を選択した。
どうでもいいけど前に座ってる人(かなり分厚い専門書を読んでいらっしゃる)から酸っぱい匂いがして敵わない。多少の体臭ならともかくこれは公害だ。ていうか気持ち悪くなってきた。
ユークリッドの互除法
アルゴリズムの基本例であるユークリッドの互除法から。
教科書ではPascalのサンプルコードなのでCで書き直した。これから暫くはこんな感じの拙いコードを日記で公開していこうと思う。かなり恥ずかしいけどこうでもしないと続けられなさそう。
/*
- 最大公約数を求める
- (ユークリッドの互除法)
- /
#include "stdio.h"
#include "stdlib.h"
int gcd(int, int);
int main(int argc, char *argv[])
{
int ans;
if(argc < 3){
fprintf(stderr, "input error.\n");
return 1;
}
ans = gcd(atoi(argv[1]), atoi(argv[2]));
printf("gcd = %d\n", ans);
return 0;
}
int gcd(int m, int n)
{
int r;
while(r = (m % n)){
m = n;
n = r;
}
return n;
}
再帰でも書けるけど、あまりわき道にそれないように愚直に書いていく方向で。
他、今のところ(アルゴリズムと計算量の途中まで)の重要ポイント。
- アルゴリズムの正しさは以下の2点で保証される
- 答えが正しいこと
- 計算を完了すること
- アルゴリズムの証明の方法
- プログラム中の特定の場所で変数の間に成立する条件式を表明(assertion)という。
- ループ中で常に成立している表明をループ不変条件という。
- ループ不変条件では前述の正しさの(1)を証明できる。
- (2)は忘れがち。ていうか忘れると無限ループになったりするので気をつけること。
初心に返った気分。
Googleで見つけたユークリッドの互除法の証明とか
ファミレスに移動
図書館は夕方に追い出されたのでファミレスに移動。
タイピングの練習をしつつ雑談。
e-typingで遊んでみたところ、レベルは「Great!!」と出た。もう一度やったところ「Lighting!!」で「イナズマより速い!」とかなんとか。一応職業プログラマとしての面目は立った?
ここ最近作りたいと思ったもの(アプリ)をメモった。
日曜日は勉強の日
これから日曜日は他に予定が無ければ勉強の日とする。
忘れないうちに日曜日の持ち物をメモしておく。
勉強道具
- 筆記用具
- メモ帳、ノート
- 教科書(「岩波講座ソフトウェア科学3 アルゴリズムとデータ構造」)
- ThinkPad X31
- Thinkpad 予備バッテリ(充電しておくのを忘れずに)
その他
- ThinkPadのトラックポイント
- タイピング練習ソフト
- iPod(充電を忘れずに)
- 図書館の利用カード
- デジカメ(充電を忘れずに)
デジカメとタイピング練習ソフトとThinkPadのトラックポイントは今回忘れた物。
追記:高校数学の本も追加
e-typing
3回目で「Mania!!」になった。コメントは「タイピングマニアです!!」。
入力時間は52秒82。スコアは379pt。
でも歴代ランキングを見るとトップランカーのスコアは600〜700点台。遠いな。
.procmailrc
「未承諾広告※」のフィルターを追加
かなりいい加減。ちゃんと整理しないと。
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin MAILDIR=$HOME/Maildir/ DEFAULT=$MAILDIR LOGFILE=$MAILDIR/procmail.log SENDMAIL=/usr/sbin/sendmail TIMEOUT=60 :0 fw | /usr/local/bin/bsfilter --pipe --insert-flag --insert-probability :0 * ^Subject:.*\/.* * ? echo "$MATCH" | nkf -Zme |grep '未承諾広告' .00Spam/ :0 * ^X-Spam-Flag: YES .00Spam/ :0 * ^X-ML-Name: cppll .cppll/ :0 * ^Sender: owner-mfc@ml.acty-net.ne.jp .mfc/ :0 * ^Sender: php-users-bounces@php.gr.jp .PHP-users/ :0 * ^Sender: php-dev-bounces@php.gr.jp .PHP-dev/ :0 * ^X-ML-Name: xyzzy .xyzzy/ :0 * ^To: root@mylab.jp .root/ :0 * ^Sender: pgsql-jp-admin@ml.postgresql.jp .pgsql-jp/ :0 * ^Sender: tdiary-devel-admin@lists.sourceforge.net .tdiary-devel/ :0 c * < 10099 ! 携帯メールアドレス :0 $DEFAULT
参考にしたページ
http://www.jaist.ac.jp/~fjt/procmail.html
同ページより「未承諾広告※」のより厳格なパターン
# SPAM filter # 「未承諾広告※」と書かれているメールをゴミ箱へ捨てる :0 * ^Subject:.*iso-2022-jp * ^Subject:.*\/.* * ? echo "$MATCH" | nkf -meZ2 | sed 's/[[:space:]]//g' | egrep '未承諾広告※' $MAILDIR/trash/.
Canon PowerShot Pro1
最近、別々の友人がCanonのデジカメを購入した。どちらも試用させてもらったので素人から見た感想を書く。
まずは「PowerShot Pro1」から。
スペック的には、一眼レフを除けば最近の小型お手軽志向のデジカメとは一線を画す製品だと思う。それは本体の大きさや800万画素という画素数だけでなく、フラッシュのアタッチメントが付いていることや、広角の写真も撮れるレンズ(この表現あってるのかな)がそうさせている。
友人としては「外付けのフラッシュを付けたい」というのが選択の基準になったとか。
今自分が持っているCONTAXの小型デジカメに比べて特に羨ましかったのは、近くの被写体に焦点を当てて遠くの背景をぼかす写真が撮れる事。よく知らないがこれは多分、レンズが収まってるタイプのデジカメでは難しいんだろう。
ひとつ残念だったのはファインダーが光学式でなくデジタルだったこと。つまりファインダーを除くと液晶画面があって、そこでメニューも表示できる。でもこれは通常の液晶画面でも確認できるし、ファインダーは光学式のほうが良かった。
液晶と言えば、液晶画面が独立して動くのはかなり便利。以前使っていたSONYのデジカメもそうだったんだけど、これは色んなアングルで撮影する際にとても役に立つ。
一眼レフの大きさを考えると、気軽に持ち運べる大きさで以上のようなカメラ本来の楽しみを味わうことができるこの機種は性能と手軽さをうまくトレードオフした製品だと思う。
レビューサイト
IXY DIGITAL 600
次は「IXY DIGITAL 600」。
さっきのPro1とは別の制約の中で性能を追求した製品という印象。制約とは、Pro1とは明らかに違うそのコンパクトなスタイル。さっきの感想から引用すると「レンズが収まってるタイプのデジカメ」。かと言って「小型お手軽志向のデジカメ」というほど小さくはないし「お手軽」というのもちょっと違う。
もちろん、お手軽ではあるんだけど、それだけでなくマニュアルでの撮影もいい感じ(これは後日書く)。それに今までのCanon製デジカメに比べて起動が早いのも特徴らしい。これは実際に試してみて確かに早いと感じた。
まだ書きたいことがあるんだけど後日。
レビューサイト
MSXMLを使ってみる
loadさえできてしまえば後は他の言語のDOMと同じだと思うので、そこまで。
#include <string>
// for MSXML
#import "msxml.dll" rename_namespace("msxml")
using namespace msxml;
int load(std::string path)
{
IXMLDOMDocumentPtr doc("MSXML.DOMDocument");
// ファイルをロード
doc->load(path.c_str());
// ここであれやこれや。
return 0;
}
int main(int argc, char* argv[]) {
// COMの初期化
::CoInitialize(NULL);
// XMLファイルの読み込み
load("test.xml");
// COMの後処理
::CoUninitialize();
return 0;
}
Canon PowerShot Pro1 PSPRO1
Canon IXY DIGITAL 600 IXYD600
