_ 失敗談なのです.
もう一年ほど前のこと、お仕事で使うパソコンの画面が狭くていろいろ困っていました.
○○をやらせている間に××をやっておきたい、と言う際に、画面が何かと狭すぎたのよ.
この際、マルチディスプレイが出来ると何かと便利だろう、と一念発起し、マルチディスプレイ対応のグラフィックボードを買ってしまいました.
購入したのは Matrox の Millennium G550.
これが失敗(T_T).
2画面に表示させる事は出来るのですが、その後はどうしてもうまくいかないのよ.
悔しいので Buffalo の GX-6200/P128D を購入.
再度ハマってしまう...
結局は使用をあきらめました.
2枚のグラボはその後使われないまま眠っています.
_ 失敗しても業務での必要性が無くなるわけでは無し.
今でも狭い画面にイライラ、マルチディスプレイしたいとの欲望ムカムカなのよ.
画質や反応などは良くないようですが、USB接続のタイプのものなら失敗は少ないかも、試す価値はあるかも、と日々なのです.
上記の Millennium G550 や GX-6200 を試したときにはUSBタイプのものは画質や反応の悪さに「これではダメだろう」と考えていたのですが、"とりあえず"2画面表示をしてみたいの.
「サインはVGA」を買うかどうか考え中なのよ.
吹奏楽団の練習日です.
次の演奏会用の曲が配られ、練習に入ってから約1ヶ月.
ようやく聴けるような曲になってきました.
最初は楽譜にかじりついて、音符を追いかけて演奏するだけでしたが、メンバーの中で曲のイメージが組上がってきたのでしょう.
メンバーそれぞれが、曲として演奏出来るようになってきた、という印象です.
次は、メンバーそれぞれが持っている曲のイメージを全員共通のものとすること.
はかせの楽団では困った弱点を持っています.
曲をやっているとテンポがどんどん変化し、どんな曲もマーチテンポになってしまうのよ(T_T).
速い曲をやっているとどんどん落ちついていき、遅い曲はどんどん速くなっていくの.
今日の練習では、速いパッセージが出来ないのでテンポを落としてさらう際にも必ず元の正しいテンポを意識してやるような練習が出来ました.
そのせいか、全体で合奏する際にもテンポを保つ事が出来ましたよ(^Q^).
速度が速くなった分、雑な演奏にならなければいいのですが、なかなか難しい課題です.
夏休み頃から作っていた蔵書検索システムを来週からテスト公開するのですが、直前になって数カ所の不具合を発見.
原因を探し出して対応するのです.
8月の日記にも書いていた件についても修正しましたよ.
MSアクセスで作っていた元データからMySQLにデータ移行するにあたっても、アクセス上で Htmlspecialchars と同等の関数を作って変換をかけます.
Option Compare Database
Function myHtmlspecialchars(strData As String)
Dim i As Long, strTemp As String, OneString
For i = 1 To Len(strData)
OneString = Mid(strData, i, 1)
If StrComp(OneString, "<", 0) = 0 Then
OneString = ">"
ElseIf StrComp(OneString, ">", 0) = 0 Then
OneString = "<"
ElseIf StrComp(OneString, "&", 0) = 0 Then
OneString = "&"
ElseIf StrComp(OneString, "'", 0) = 0 Then
OneString = "'"
ElseIf StrComp(OneString, """", 0) = 0 Then
OneString = "'"
Else
OneString = OneString
End If
strTemp = strTemp & OneString
Next i
myHtmlspecialchars = strTemp
End Function
本番が近づいてきたので土曜日にも練習なのです.
とは言っても人数が集まらない...
そんなわけで来ているメンバーだけで合わせてみます.
少人数だとお互いの音が聞こえやすいので練習しやすいのよ.
また、お互いに、ここが違う、こうしよう、などとも言いやすいので練習が進むのが嬉しいぞ.
ジュビリープレリュードの63小節目からのフレーズが何度やっても遅れるのです.
最初の3つの音をひとつの固まりと捉えるのではなく、16分音符を次のEsにひっかけるように捉える.
シンコペーションで出てくるAsの直前で落ちついてはだめ.
いろいろ指摘してもらいながらなんとか形になってきました.
こんな練習は楽しいのです.
夏休み頃から作っていた蔵書検索システムのテスト公開初日なのです.
出勤後、サーバーを起動.
データの中味を更新.
tcpdump の画面を広げて利用者が来るのを待ちます.
どんなことになるのやら...
tcpdump の画面が忙しく動くようになったと思ったら、1講時目が終了なのです.
最初の休み時間に入りました.
利用者はどんな様子なのか、端末がならんでいるコーナーをチェックしてきました.
みんな神妙な顔で検索していましたよ.
動作は問題ない模様なのよ.
この調子でうまい事いってくれ.
MSアクセスで作って運用していたデータベースを MySQL に移行中です.
このデータベース、20年ほど前に原型が作られました.
まだアクセスがなかったころで、懐かしの dbase2 で作られていたのですよ.
その頃はまだ、カタカナは半角で入力するのが当然と言った頃でした.
その名残を引きずっているため、まだ半角カナでのデータだらけなのよ.
そんな半角カナを全角カナにうまく変換してくれる関数がアクセスにないようなのです.
ググってみたものの良いのが出てこない(T_T).
仕方がないので自作しました.
Option Compare Database
Function myHenkan(strData As String)
Dim i As Long, strTemp As String, OneString, TwoString
For i = 1 To Len(strData)
OneString = Mid(strData, i, 1)
If StrComp(OneString, "ア", 0) = 0 Then
OneString = "ア"
ElseIf StrComp(OneString, "イ", 0) = 0 Then
OneString = "イ"
ElseIf StrComp(OneString, "ウ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ヴ" Then
OneString = "ヴ"
i = i + 1
Else
OneString = "ウ"
End If
ElseIf StrComp(OneString, "エ", 0) = 0 Then
OneString = "エ"
ElseIf StrComp(OneString, "オ", 0) = 0 Then
OneString = "オ"
ElseIf StrComp(OneString, "カ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ガ" Then
OneString = "ガ"
i = i + 1
Else
OneString = "カ"
End If
ElseIf StrComp(OneString, "キ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ギ" Then
OneString = "ギ"
i = i + 1
Else
OneString = "キ"
End If
ElseIf StrComp(OneString, "ク", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "グ" Then
OneString = "グ"
i = i + 1
Else
OneString = "ク"
End If
ElseIf StrComp(OneString, "ケ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ゲ" Then
OneString = "ゲ"
i = i + 1
Else
OneString = "ケ"
End If
ElseIf StrComp(OneString, "コ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ゴ" Then
OneString = "ゴ"
i = i + 1
Else
OneString = "コ"
End If
ElseIf StrComp(OneString, "サ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ザ" Then
OneString = "ザ"
i = i + 1
Else
OneString = "サ"
End If
ElseIf StrComp(OneString, "シ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ジ" Then
OneString = "ジ"
i = i + 1
Else
OneString = "シ"
End If
ElseIf StrComp(OneString, "ス", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ズ" Then
OneString = "ズ"
i = i + 1
Else
OneString = "ス"
End If
ElseIf StrComp(OneString, "セ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ゼ" Then
OneString = "ゼ"
i = i + 1
Else
OneString = "セ"
End If
ElseIf StrComp(OneString, "ソ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ゾ" Then
OneString = "ゾ"
i = i + 1
Else
OneString = "ソ"
End If
ElseIf StrComp(OneString, "タ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ダ" Then
OneString = "ダ"
i = i + 1
Else
OneString = "タ"
End If
ElseIf StrComp(OneString, "チ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ヂ" Then
OneString = "ヂ"
i = i + 1
Else
OneString = "チ"
End If
ElseIf StrComp(OneString, "ツ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ヅ" Then
OneString = "ヅ"
i = i + 1
Else
OneString = "ツ"
End If
ElseIf StrComp(OneString, "テ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "デ" Then
OneString = "デ"
i = i + 1
Else
OneString = "テ"
End If
ElseIf StrComp(OneString, "ト", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ド" Then
OneString = "ド"
i = i + 1
Else
OneString = "ト"
End If
ElseIf StrComp(OneString, "ナ", 0) = 0 Then
OneString = "ナ"
ElseIf StrComp(OneString, "ニ", 0) = 0 Then
OneString = "ニ"
ElseIf StrComp(OneString, "ヌ", 0) = 0 Then
OneString = "ヌ"
ElseIf StrComp(OneString, "ネ", 0) = 0 Then
OneString = "ネ"
ElseIf StrComp(OneString, "ノ", 0) = 0 Then
OneString = "ノ"
ElseIf StrComp(OneString, "ハ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "パ" Then
OneString = "パ"
i = i + 1
ElseIf TwoString = "バ" Then
OneString = "バ"
i = i + 1
Else
OneString = "ハ"
End If
ElseIf StrComp(OneString, "ヒ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ピ" Then
OneString = "ピ"
i = i + 1
ElseIf TwoString = "ビ" Then
OneString = "ビ"
i = i + 1
Else
OneString = "ヒ"
End If
ElseIf StrComp(OneString, "フ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "プ" Then
OneString = "プ"
i = i + 1
ElseIf TwoString = "ブ" Then
OneString = "ブ"
i = i + 1
Else
OneString = "フ"
End If
ElseIf StrComp(OneString, "ヘ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ペ" Then
OneString = "ペ"
i = i + 1
ElseIf TwoString = "ベ" Then
OneString = "ベ"
i = i + 1
Else
OneString = "ヘ"
End If
ElseIf StrComp(OneString, "ホ", 0) = 0 Then
TwoString = Mid(strData, i, 2)
If TwoString = "ポ" Then
OneString = "ポ"
i = i + 1
ElseIf TwoString = "ボ" Then
OneString = "ボ"
i = i + 1
Else
OneString = "ホ"
End If
ElseIf StrComp(OneString, "マ", 0) = 0 Then
OneString = "マ"
ElseIf StrComp(OneString, "ミ", 0) = 0 Then
OneString = "ミ"
ElseIf StrComp(OneString, "ム", 0) = 0 Then
OneString = "ム"
ElseIf StrComp(OneString, "メ", 0) = 0 Then
OneString = "メ"
ElseIf StrComp(OneString, "モ", 0) = 0 Then
OneString = "モ"
ElseIf StrComp(OneString, "ヤ", 0) = 0 Then
OneString = "ヤ"
ElseIf StrComp(OneString, "ユ", 0) = 0 Then
OneString = "ユ"
ElseIf StrComp(OneString, "ヨ", 0) = 0 Then
OneString = "ヨ"
ElseIf StrComp(OneString, "ラ", 0) = 0 Then
OneString = "ラ"
ElseIf StrComp(OneString, "リ", 0) = 0 Then
OneString = "リ"
ElseIf StrComp(OneString, "ル", 0) = 0 Then
OneString = "ル"
ElseIf StrComp(OneString, "レ", 0) = 0 Then
OneString = "レ"
ElseIf StrComp(OneString, "ロ", 0) = 0 Then
OneString = "ロ"
ElseIf StrComp(OneString, "ワ", 0) = 0 Then
OneString = "ワ"
ElseIf StrComp(OneString, "ヲ", 0) = 0 Then
OneString = "ヲ"
ElseIf StrComp(OneString, "ン", 0) = 0 Then
OneString = "ン"
ElseIf StrComp(OneString, "ァ", 0) = 0 Then
OneString = "ァ"
ElseIf StrComp(OneString, "ィ", 0) = 0 Then
OneString = "ィ"
ElseIf StrComp(OneString, "ゥ", 0) = 0 Then
OneString = "ゥ"
ElseIf StrComp(OneString, "ェ", 0) = 0 Then
OneString = "ェ"
ElseIf StrComp(OneString, "ォ", 0) = 0 Then
OneString = "ォ"
ElseIf StrComp(OneString, "ッ", 0) = 0 Then
OneString = "ッ"
ElseIf StrComp(OneString, "ャ", 0) = 0 Then
OneString = "ャ"
ElseIf StrComp(OneString, "ュ", 0) = 0 Then
OneString = "ュ"
ElseIf StrComp(OneString, "ョ", 0) = 0 Then
OneString = "ョ"
ElseIf StrComp(OneString, "「", 0) = 0 Then
OneString = "「"
ElseIf StrComp(OneString, "」", 0) = 0 Then
OneString = "」"
ElseIf StrComp(OneString, "。", 0) = 0 Then
OneString = "。"
ElseIf StrComp(OneString, "、", 0) = 0 Then
OneString = "、"
ElseIf StrComp(OneString, "ー", 0) = 0 Then
OneString = "ー"
ElseIf StrComp(OneString, "・", 0) = 0 Then
OneString = "・"
Else
OneString = OneString
End If
strTemp = strTemp & OneString
Next i
myHenkan = strTemp
End Function
Yahoo!動画にてマクロスFの第1話から第5話までが無料視聴できます.
遅ればせながら第1話と第2話をようやく見ました.
そんなわけで世の中の話題から100歩ぐらい遅れているのを承知でいまごろマクロスFの話題なのです.
何をかくそう、はかせをヲタの世界に引きずり込んだのは初代マクロスとマクロスのヒロイン、リン・メンメイなのよ.
あの頃はまだ「萌え」などという言葉はありませんでしたが、あの頃はかせの感じていた感情 (RR) は、はかせのミンメイに対しての思いは「萌え」そのものでした.
美樹本晴彦のキャラクターデザインはネ申だった
そんなわけでマクロスF、ちまたではランカ派とシェリル派が銀河を2分する派閥争いをしているようで、でもはかせはマクロスF未見.
このままでは時流に乗れず悔しい.
そんなわけでマクロスF視聴なのです.
もはや美樹本晴彦が絡んでいないランカ、シェリルの造形については、はもうあきらめモードなのですが、どれだけ萌えるキャラなのか見てみたい.
出来れば萌えてみたい.
そんなわけでマクロスFを見てみたのです.
正直ここまでランカちゃんの方がかわいいよ(*^Q^*).
でもまだまだはかせを萌やすまでは至ってないぞ.
図書館の検索サービスに MySQL で作ったデータベースを採用すべくテスト中なのです.
そんな状況の記録なの.
mysqld で実行したSQLのログがないのか? と探したところ、デフォルトではログはとられていない模様.
自分で設定しなければダメなのです.
そんなわけでgoogleさまにお伺いをたてつつ、しこしこと設定なのです.
_ とりあえず、ログファイルを作ります.
ここで注意.
ログファイルの所有者を mysql とするか、ログファイルのパーミッションを 666 にして誰でも書き込み出来るようにしないとダメなのです.
(ここで一日はまってしまった...(T_T))
誰にでも書き込みが出来る、と言うのは問題がありそうなので、ログファイルの所有者を mysql に変更します.
# touch /var/log/mysqld.log
# chown mysql /var/log/mysqld.log
_ MySQL の設定ファイルは /usr/local/etc/my.cnf です.
用意されているものをコピーし、書き替えます.
# cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf
# chmod 644 /usr/local/etc/my.cnf
# vi /usr/local/etc/my.cnf
_ [mysqld] のセクションに以下のの2行を追加します.
これでmysqldを再起動するとログがとれている筈です.
log-output = FILE
log = /var/log/mysqld.log
_ このまま使っているとログが限りなくふくらむのでログをローテーションさせます.
ログのローテーションの設定ファイルは /etc/newsyslog.conf です.
# vi /etc/newsyslog.conf
_ 検索サービスは19時で終了、としていますので20時にログをローテートさせます.
pid は mysql のホームディレクトリ の mysql ディレクトリの「ホスト名.pid」ファイルに記録されています.
そんなわけで下記の1行を追加します.
/var/log/mysqld.log 644 7 * $D20 B /usr/home/mysql/mysql/ホスト名.pid
_ だがここにも罠があるのよ.
ログファイルの所有者は mysql じゃないとダメなのよ.
newsyslog.conf でローテートさせたログの所有者は自動的に root になるようなの.
これでは具合が悪いぞ.
そんなわけで、ログをローテートさせるのと同時にログファイルの所有者を mysql に変更させるべく、root の crontab に下記の1行を追加するのです.
1 20 * * 1-6 /usr/sbin/chown mysql /var/log/mysqld.log
_ はかせの環境では、この後サーバーをシャットダウンさせ、翌朝再起動するのでこれで問題ないのですが、24時間稼働させる場合は mysqld で ログをフラッシュしないと新しいログファイルを使ってくれないと言う厄介な事もあるの.
その際は crontab に登録するコマンドを下記のようにすると安心なのです.
/usr/sbin/chown mysql /var/log/mysqld.log ; /usr/local/bin/mysqladmin -u root -p MySQLのパスワード flush-logs
9/4の日記に書いたジュビリー・プレリュードの CD がアマゾンから届きました.
注文から手元に届くまで1ヶ月半もかかった...
早速聴きましたよ.
当然ですが、あちこちで私らの演奏とは違う事をやっています.
いちばん気になったのは出だしの第3トロンボーン.
1拍休んでF,Gと装飾音符が2つ並んでアクセントのA♭にひっかかっています.
CDではF,Gの装飾音符からA♭までをグリッサンドで演奏していました.
演奏はロイヤル・エア・フォース・セントラル.バンド.
これが本場英国での奏法なんだろうか?
BRN <バンド・レパートリー・ネットワーク> 1999-03 Vol.8 : 決定盤!! 吹奏楽コンクール自由曲選'99 Vol.2
ビクターエンタテインメント
¥ 2,100
はかせの吹奏楽団ではジュビリー・プレリュードの他に「Ode and Jubilation」を練習しています.
こっちもCDがあるのか?と検索してみたら見つかりました.
西関東バンドクリニック2006 新曲コンサート
ブレーン
¥ 2,765
買うか買わまいか、迷い中.
まずは画像をごらんあれ.
MS Access で大きなクエリを実行するとこんなメッセージが出てしまいます.
この画面で [はい(Y)] をクリックすると、
とあっさりと斬り捨てられます.
解決方法はMSのページに載せられています.
http://support.microsoft.com/kb/882113/ja
メモリを増設しようかと思っていましたが、不要なようです.
来週試してみよう.
_ ToshiOkada [うひゃー,それは大変ですね。私も音楽やってましたからお気持ちお察しいたします。回復されますことを心よりお祈り申し上げ..]