Home > Archives > 2008年02月

2008年02月

朝寝たら

夕方起きた.折角の4年に一度しかない日なのに昼間がいつの間にか終わってる…

自明とは

証明が面倒なものである.明らかに正しいのに証明しようとなると手間かかるなぁ.

ダウン

めがねを代え忘れたせいでスライドを見るのに目が疲れた.そのせいか頭痛が… 寝よう.

はて

Framework 3.5 は VisualStudio2005 で使えるのだらうか?

それはさておき,レンタルサーバの代金支払いに登録してあるレジットカードが限度額いっぱいまで使い切ってしまっている状況なのだが大丈夫なのかなぁ? 何の連絡も来ないけどとりあえず様子見しとこう.

Ajax

Asynchronous JavaScript and XML の略だそうだけど別の意味があるのかと調べてみたらギリシア神話に登場する英雄にAjaxというのがいるらしい.二人も.でも関係あるかどうかよくわからん.

C#久々続き

AnkhSVN でファイルの名前変更とかプロジェクトの追加とかがうまく動かない… ファイル追加だけは手動でやったほうが速いのかもしれない.

それはさておき,スレッドの動きを UI に表示するために Control.Invoke を使っていたら,Form の Dispose 時にフリーズする現象に遭遇.Dispose 中に Invoke よばれる可能性があるのが悪いような気もするけど… ロックと条件判定入れたけどうまくいかないので結局 BeginInvoke で非同期処理にしてお茶を濁す.EndInvoke も呼んでやらない.

C#久々

ThreadPool があると聞いていたので試した.でもスレッドを全部待つ wait がない.タスクすべての終了を待つような用途は想定していないというか,そもそも .NET 側の非同期系の操作でも使われるらしいのでユーザが明示的に登録したタスクだけを全部待つってのが無理なのか? とりあえず自前で各スレッドの終了時に処理を書くか,そもそも自前のプールを用意するかすべきなのかも.

猫の日

2/22で「にゃんにゃんにゃん」だということらしい.そして11/1が犬の日らしい.

うーん面倒だなぁ

この前仮想ハードディスクごと書き途中のソースを削除するとかいうあほなことをしてしまったので,VMware 中の Linux にあるソースを Vista (ホストOS) 上の svn リポジトリで管理したい.外部のサーバにおいてもいいけどネットワークが切れているときに困る.

で,ホストにsshd入れるのがめんどい.そしてホスト側のIPをゲスト側が知るにはどうすればいいか考えるのが面倒.VMware のネットワークドライバのIPって固定なのかな? そうなら問題ないのだけど.

T字路を直進

何も間違ってない.

せまるニック・オブ・タイム 読了

せっかくフラゲしたので36時間以上寝てないにもかかわらず読み始めてしまった.とりあえずいつもより時間かかった気もするけど読了.何で時間軸と空間軸しかないのだろう? たまには別のギミックがほしい.

燃えないゴミ箱

管理者権限にもかかわらずファイルが消せない.icacls.exe でもパーミッション変更がうまく出来なかった.しょうがないので「燃えないゴミ箱」フォルダを作って埋立地にした.そのうちいっぱいになったらドライブごとフォーマットしてやる.

EX-Z850を分解してみた

年末に落としてレンズの戻らなくなったEX-Z850,修理に出すとおそらく新しいやつを買える値段がかかる.それならばダメもとで自分で分解して直してみようと試みた.以下,再び分解・組立をする時用のメモ.

開始状態.レンズが引っ込まない.そのせいで電源を入れてものですぐに切れる.使い物にならないので分解する.

まず,外装に12本のネジがあるので全部はずして,前後のケースを取り外す.後ろ側のケースからはモード選択ダイヤルに繋がるフラットケーブルが出ているので,取り外すときにはコネクタからケーブルをはずす.

引っかかっているフレームの端を引っこ抜く.ついでにAF補助光の横のねじを抜いて浮かす.

対角部分も引っこ抜いてフレーム上部を分離.ボタンに繋がる2本のリード線(黄・橙)があるので切らないように注意.もしくは半田を溶かして取り外す.

反対の側面のフレーム部分を取り外す.下側のフレームに引っかかっているだけなのでうまくひねれば取れる.

裏に回って液晶パネルの上部のねじをはずす.左下の下部フレームとの引っ掛かりを解除してパネルを浮かせる.

フラットケーブルを引っこ抜けば液晶パネルが外れる.でも2本のリード線(赤・黒)があるので注意.

液晶の下に隠れていた下部フレームに繋がるねじをはずし,電池ボックス側面のフラットケーブルコネクタをはずしてボタン用基盤を取り外す.

表に戻って4本(右下はメイン基盤と下部フレームとの接合なので外す意味がなかった)のねじを外し,電池ボックス部分を外す.そして,表のコネクタと電池ボックスに隠れていたコネクタを外してレンズモジュールを取り外す.

ここまででの分解でようやく問題のレンズモジュールが取り出せた.分解された各部パーツの様子は以下のとおり.

こからレンズモジュールを分解する.ただ,このレンズモジュールは機械的におかしな状態になっているので,組み立て順の逆手順での分解にはなっていない.

後ろの中心周辺の3本のねじを外してCCDを取り外す.次いで,外周に近い4本のねじを取り外して最終段のレンズ部分を取り外す.ファインダ部分を二本のねじを外して取り外す.

表からモータ部分の三本のねじを外してモータ部分を取り外す.小さい金属製の歯車のついたガイド用リング(写真中央)を4本のねじを外して取り外す(シャッターへ繋がるフラットケーブルが通っているので自由にはなっていない).

そんでフラットケーブルのガイド(写真中央上のT字のやつ.ケーブルをはさんでる)を引っこ抜いて,最外の筒から内側を抜き出す.

レンズカバーを動作させるための三本足の生えたリングを取り外す(写真中央右下.金属歯車付リングの上).このはずし方はおかしいはず.

表に戻って内側の筒の金属カバーを外す(接着されてるけど裏からつついたら取れた).レンズの指紋はご愛嬌.

ねじを二本外してレンズカバーを取り外す.

シールをはがすと最前のレンズを外すためのネジが出てくる.

ねじを三本外して最前のレンズを外す.んで,最内のシャッターのついているパーツを,外側の筒のレールに入っている出っ張りを内側に寄せつつ後ろへ無理やり取り外す(これは絶対に間違った取り方で,普通は外側の筒の前から取り出す).このシャッター部分は内側の筒と三本のばねで接続されているのでうまく外す必要がある.

外側の筒の前面のリングを外して,最後に,外側の筒のレールから外れてしまっていた内側の筒を,とにかく無理やりにレールに戻し外の筒の前面から引っこ抜く.

外側の筒のレールの様子.内側の筒用とシャッター部分用との二つのレールがある.で,落としたときの衝撃でレールを外れて変な隙間に入ってしまうとレンズがしまえなくなると.性質の悪いことに,強度を上げるためにレール以外にも道筋が出来ているので,何処に入っているのかは外からだと推測しにくい.

ここからは正しく組み立てていく.

まず,シャッター部を内側の筒に入れる.シャッター部の外周にある3本のばねを内側の筒にかけなければならないので少々面倒.とりあえず糸で輪を作ってばねに引っ掛けて,それを内側の筒の穴に通して引っ張れば比較的簡単にくっつけられる.

最外のレンズを三箇所ねじ止めして,シールを貼る.

レンズカバー部分を二箇所ねじ止めしてくっつける.

内側の筒の前面カバーをつける.

で,ここから先の作業をするにはシャッターへつながるフラットケーブルが邪魔なので,写真の部分の半田を外してフラットケーブルを自由にする.そして,レンズカバーを動かすための三本足のついたリングをはめる.これで内側の筒の出来上がり.

出来上がった内側の筒を外側の筒の前面からレールに沿って入れる.レールの入り口が120度ごとにあるので,レンズをしまったときに正しい角度になる位置を選ぶ.そして外側の筒の金属リングをはめる.出来上がった外側の筒をモータとかのくっつくフレームに後ろから入れる.フラットケーブルをフレームの穴から通して元の位置に戻す(ガイド用の歯車付リングを先に通しておくべし.写真ではリングが通っていないので,このあとケーブルを一個抜いてリングを入れなおした.).

フラットケーブルのガイドを元に戻し,歯車付リングを4本のねじで止める.

最後段のレンズを4箇所ねじ止め.

ファインダを2箇所でねじ止め.モータ部分を表から3箇所ねじ止め.ファインダのギア位置もうまくあわせる必要があるのだけど,あわせ方がよくわからんので保留.また今度考える.

最後に,CCD手前の透明な板とゴム枠をはめ,CCDを3箇所ねじ止めしてレンズモジュール完成.

基盤にくっつけたとこ.ちゃんとレンズが引っ込んでレンズカバーも閉じている.とりあえず機械的には正しくなったようだ.あとは外した液晶とがフレームを元に戻して組み立て終了.

で,ちゃんと電源入るようになった.レンズも動く(レールが歪んでいるのか時々最後の一押しを手動でやる必要があるけど.あと,再生モードにしたときにレンズが自動で引っ込むけれど,このときにレンズが戻りきらないと自動で電源が落ちる).液晶画面に画像も映る.動画もちゃんと撮れるし再生も出来る.が,写真を撮ると露出オーバーする.そしてシャッタースピードを0.6秒より遅くすると画面がおかしくなる.

シャッタースピードを1/1600にしても1/15にしてもあまり変化がないので,シャッター周りがおかしくなっている気もするのだけど… さて何が原因なのやら.とりあえず動画撮影用カメラとしては復活.

真・ビッグチロル

いまのところビッグチロルは箱が大きいだけで中身は通常サイズ.でもやっぱり人としては中身もあのサイズのものがほしい.ということで,自前でビッグチロルサイズの抹茶チョコを作ってみた.

couverture

左が作成された真・ビッグチロル(抹茶ミルク).右がビッグチロルの箱.とりあえず重さは520g.どうやって食べればいいのかわからないのが問題なのかもしれない.

以下,作成過程抜粋.

まず原料.抹茶入れて緑色にしたいのでベースはホワイトチョコ.今回は大東カカオのクーベルチュールホワイトチョコ2kg(2780円).体積比を考えると600gぐらいでビッグチロル一個分くらいなので作ろうと思えばビッグチロル3つ作れるはず.でも今回は一個で十分なので一個分(600~700g)だけを砕いて湯せんにかける.

couverture

そんで湯せん中に型の用意.型にはビッグチロルの箱を使用.面倒なのでクッキングシートを箱にしたがって折って内側に配置.

couverture

湯せんで溶かし終わったところ.塊を細かく砕くのが面倒だったので大きいままにしてたら溶かすのに時間食った.

couverture

んで,抹茶と混ぜ合わせる.分量は適当.いろいろと面倒なのでフードプロセッサで片付ける.ちなみにホワイトチョコの一部はビッグチロルの最上部として型に流し込んであったりする.

couverture

抹茶混ぜ終わったら型に流し込む.あとは冷蔵庫に入れときゃ完成.多少余った分は別の型に入れて固めた.

couverture

試食:もっと抹茶入れないと抹茶の味がしない.色はついてるけど色しかついてない….次回やるときにはもっと深い緑になるまで混ぜ込もう.ついでに,生クリーム入れてやわらかくしよう.

sedでmerge sortをしてみる

入力は空白区切りの小文字のみで構成される文字列のリスト.出力はソート結果.あなごるのWord frequency count (FIXED) 用に作ったのだが… 問題の入力に出てくる単語のソートだけで手元のマシンでも6秒弱かかる.

# input: word1 word2 ... wordn
# should be lower-case letters. no spaces except for the separator
 
 
s/ /\n/g
s/$/ /gm
 
# each line is a sorted list
 
:a
 
/\n/!q
 
s/^\(.*\)\n\(.*\)$/@\1: %\2/gm
 
# each line: @word11 word12 ... word1n : %word21 word22 ... word2m
# ':' is a separator of two lists
# '@' is the head of non-merged part of the first list
# '%' is the head of non-merged part of the second list
 
 
:b
 
# each line: sortedpart @word1i ... word1n : %word2j ... word2m
 
s/^[^%@:\n]*$/~&/gm                  # already done 
s/^\(.*\)@\(.*\): % *$/~\1\2/gm      # done (2nd list is consumed completely)
s/^\(.*\)@: \(.*\)%\(.*\)/~\1\2\3/gm # done (1st list is consumed completely)
 
/@/!be
h
 
s/^~.*$/~/gm                          # ignore merged lists
s/^.*@\(\w*\).*%\(\w*\).*$/\1 \2/gm  # prepare to comparation
 
 
#------------------- parallel comparation -----
 
# input: word11 word12\nword21 word22\n...\nwordn1 wordn2
# should be lower-case letters. no spaces except for the separator
# the entry '~' is ignored
 
# algorithm:
#   make pairs of corresponding characters in two words
#   compare all pairs at the same time
#   take the first non-equal result of he comparisons
 
 
s/^\| /&#/gm
s/^#~ *$/~/gm
 
:5
s/#\(\w\)\(.*\)#\(\w\)/\1\3 #\2#/mg
s/#\w.*#$/>/mg
s/# #..*/</mg
s/# #$/=/mg
t5
 
:1
 
:2
/a/b9
y/bcdefghijklmnopqrstuvwxyz/abcdefghijklmnopqrstuvwxy/
b2
:9
 
s/a[^a] /</g
s/[^a]a />/g
s/aa /=/g
 
/[^\n=<>~]/b1
s/^=*\(.\)/\1/gm
s/^\(.\).*/\1/gm
 
#----------- parallel comparation done ------
 
s/\n//g
s/$/#/
G
 
# [<>=]*#\nmergedpart @rest_of_list1 %rest_of_list2\n... 
 
# according to the results of comparations held in the head,
# move a head of either the rest of list1 or list2 to the tail of merged_part.
 
 
:m
s/^[<=]\(.*\)\n\(.*\)@\(\w*\) \(.*\)%\(\w*\)/\1-\2\3 @\4%\5/m
s/^>\(.*\)\n\(.*\)@\(\w*\)\(.*\)%\(\w*\) /\1-\2\5 @\3\4%/m
s/^~\([^\n]*\)\n~/\1-/
tm
s/-/\n/g
s/#\n//
bb
 
:e
s/~//g
ba

一文字目でバケットソートしてマージソートを各バケットに適用とかしないとダメっぽい.とにかく操作文字列長を小さくしないと速度が…

TCO08 Qual 3 again

Primのアルゴリズム間違ったかな? 有向グラフ用の最小全域木アルゴリズム実装し始めた時点で終わってた気もする.問題よく読もう.そして1000点問題を全探索で書くのはバカだ.ということで,250点問題しか解けてねー.それ以前に開始直後にキーボードが反応しなくなるという時点でいろいろと悲惨だったのだが…

250点問題:シミュレートして終わり.

500点問題:最小全域木作って終わり.

1000点問題:行と列で奇数部分をフリップすると他方の偶奇の数が入れ替わる.これに気づけば簡単な条件判定.

追記:どうやら本戦にいけるらしい.

Remove Duplicate Messages (Alternate)

サーバ置換のせいで重複メールを受信しまくったのでそれらを削除するアドインRemove Duplicate Messages (Alternate) を入れてみた.とりゃーず重複メール全部打ち殺せた.めでたし.

TCO08 Qual 3

せっかく根性でポーカー書いたのにまた明日やり直しか... 

結局サーバ停止は何が問題だったんだろう?

Emacs でインデントにタブを使わない

(setq-default indent-tab-mode nil) 

でいいのだとか.Fortress のインタプリタがタブに反応してしまうのでこれをやっておかないと効率が悪い.

むしゃくしゃしてやった.sedならなんでもよかった.今は反省している.

数日前,あなごるのLanguage RankingでsedがTop10外になっているのを見たとき,今回の反攻を思いついた.

なんとなく手の届きそうなところに bash と C がいたので,とりあえず手付かずだった問題を10問強ほど sumit してこいつらを追い越してみた.ほとんどの問題が sed では計算のしようのない問題で embed 中心.だけど,たまにまともなアルゴリズム(?)でといたのもある.reverse entire input は最後の改行だけずるするとか.Permutations は全部のpermutationをまじめに生成するとTLE食らうので,最初の二文字だけは別生成させた上で残りの4文字文をまじめに生成するハイブリッドなアルゴリズムとか.(今のpermutation生成部は打数削減のために遅くなっていて,そのせいでへんなことをする羽目になっている.なので,打数を余計に消費してでも高速なアルゴリズムに切り換えれば全体の打数を小さく出来るかもしれない.)

あとは123 とか解けるといいんだけどなぁ.sedのファイル読み込みは読み込んだ文字列の加工が出来ないから難しい.どこかに 1 2 3 の値をランダムにとるファイル落ちてねえかなぁ?

追記:permutation生成部を高速化したら生成部それ自身が縮んだ.なのでPermutationsのサイズがかなり小さくなった.ついでに permutator のほうも 9B 縮んだ.やっぱ m オプション便利だわ.

追記の追記:さらに縮んだ.結局最初の permutator から 22B 減少.

TCO08 Qual 2

500点問題にバグを埋め込んだ.青くなってしまった.だめだこりゃ.

250点問題:ある点から右にある最も近いインターバルの始点を求めて最小のやつを取るのみ.間違えられない.

500点問題:DP.辞書順最小のための優先順を間違った.

1000点問題:長方形の演算を繰り返して最後に足し合わせる.プログラム書き終わらなかった.

追記:1000点問題書き終わったのをPracticeに投げたら通った.例外処理が面倒なので,とりあえず入力されうる長方形の最大サイズの真っ白な長方形を用意.そのうえで,入力された長方形の四辺の直線で下にある長方形を全部切断し,切断された長方形のタイリング(2x2ブロックの塗りわけ16種類)を更新していく.細分化に最適化を入れないと間に合わないかと思ったけどナイーブな実装で間に合った.まあ,細分化された長方形の最大数が10000程度なので問題なかったと.もう少しアルゴリズムの確定が速ければ間に合ったかもなぁ.

メールが取れん

木曜のサーバ置換から引き続きうまくメールが受信できない.というより,サーバ上に保存してあるファイルをすべて取得しなおすような展開になってしまっているので... 六千通以上のメールを受信するにはまだサーバが混みすぎているもよう.いろいろとどうにかしてほしい気分.

Xのキーボードを...

VMwareからXを転送してWindowsのXmingで表示しているのだが,WindowsネイティブのウィンドウはdvorakなのにXmingのウィンドウはqwertyとかいうわけのわからん環境でしばらく作業してた.が,いい加減疲れたのでXmingの.launchファイルにxkbの設定を書き込む.

ExtraParams="-xkbmodel us101 -xkblayout dvorak"

何でXMLなのに属性に設定を書かなければならんのかよくわからんのだけど,とりあえずこれですべてのウィンドウがdvorakになった.

M-x re-builder

Meadow/emacs で正規表現にマッチする部分に色をつけたいときに使える.結構便利な気がする.

Vistaで動くpsプリンタドライバないかな?

スライドを変換したい.

あー

ISDNしか接続できないビデオ会議システムなんか使うなー.IPで繋がるように穴あけてくれー.というより,穴あいてないことをもっと早く教えてほしい.あー,準備やり直し&接続テストできず.どこかに協力に穴を突き抜けるビデオ会議システムはないものか?

フォントが...

Vista上で作ったスライドをXP上に持っていくとどうもスライドの表示がおかしい.で,よく見てみると Consolas というフォントを使っているところが妙にはみ出している.何が悪いんだろうと思っていろいろやるもしばらく原因がわからず.で,なんとなくふとフォント一覧を見てみたら Consolas が入っていない.あー... XPだと Consolas 入ってないのか.つーかこれ別のマシンでプレゼンすることになったときとかに嵌りそうな気配.かといってフォント埋め込むのもファイルでかくなるし... PowerPointがもう少し頭よくなってくんないかなぁ.似たようなフォント使って無理やり元の範囲に文字をはめ込んでくれればそれでいいのに...

CDBurnerXPとかいうのを使う

これまではDVDを焼くのに PlexTools Professional LE を使っていたのだけど,どうもファイル名周りでエラーが出まくるということで別のソフトを使うことにした.で,適当に検索かけたらCDBurnerXPとかいうのがあったので使ってみた.感想:ファイル名の問題とかなくて楽に焼ける.つーことで,PlexTools は焼くことに関して能力が微妙であったということがよくわかった.とりあえずこれからデータを焼くときにはCDBurnerXPを使うようにする.

そういや Blu-ray Disc はまだ安くならんのかなぁ.複数枚のDVDに分割でバックアップするの面倒だから Blu-ray Disc 一枚に焼きたい...

軽量バッテリをゲット

去年のLet'snote の予約キャンペーンで申込みが先着1000名に入っていたらしくW7用の軽量バッテリが送られてきた.定価2万円なので結構得した気分.遠出するときの予備として使ってあげよう.

疲れた...

同じフロアの反対の端にある部屋までダッシュで往復しまくったので疲れた.久々に走りまくった気がする.とりあえず衝撃が逃げ切れていなかったのか脛に負荷がかかったようで痛い....

さて,あとは向こうから連絡が来れば終わりなのだが.

Home > Archives > 2008年02月

Search
Feeds

Page Top