ぼうメモ帳

2003-10-31 夜眠れない

大学内3周、3500歩

| 大学内3周、3500歩を含むブックマーク

いつまで続くか分かりませんが、今日からはじめました。

最近、朝方まで起きていてもまったく眠れません。だいたい、一日周期であまり眠れない夜(浅い眠りが3時間ほど)と疲れが取れない惰眠(8時間ほど)を繰り返しています。肉体的な問題なのか、精神的な問題なのか分かりませんが、特にこの周期に入ってからは明らかに体の調子が良くありません。

ということで、友人がジョギングをしているので、それに参戦する前に体を馴らしておこうと思い、ウォーキングを始めました。

大学構内1周がおよそ1200歩(歩きながら数えた)なので、今日は3500歩ぐらい。これを目安に当分毎日続けていきたいと思います。

幸い、普段からウォーキングシューズを履いている(普通の靴だとかかとがすぐに痛くなる体質)ので、楽に歩くことができました。さすがに日ごろの運動不足のせいか、3周目の終わりは体が重かったですけど。

トラックバック - http://d.hatena.ne.jp/susumu/20031031

2003-10-29 今日もTAでつ

タブブラウザ

| タブブラウザを含むブックマーク

とりあえず、道に迷わないように、次に実装する機能をリストアップしておく。とにかく、めんどくさいことはユーザにさせないで、そのくせそれなりに使いやすいブラウザを目指す。ブックマークの整頓? ありえません。

  • マウスジェスチャー
  • 前回の状態復帰
  • 見たいときに見て、見たくないときには隠れる。しかも自動で。

タブブラウザ・続き

| タブブラウザ・続きを含むブックマーク

とりあえず「前回終了時の状態復帰・簡易版」を実装。終了時に、現在のタブで表示されているWEBのURLを全てテキストファイルに書き込み、起動時に読み込むというかなりいい加減な実装。

そのうちXMLフォーマットにしたいなあ。

それで、現在マウスジェスチャーを実装しようと思ってるんだけど、なぜかうまくいかない。HTMLDocumentEvents2_Event::onmouseupにハンドラを登録すると、マウスクリックが無効になってリンクとか飛ばなくなってしまう。

バグかなあ…

マウスジェスチャー

| マウスジェスチャーを含むブックマーク

ちょっとだけ、Donutマウスジェスチャー周りのソースをざっと眺めてました。mainfrm周りでマウスジェスチャーの処理を行ってるっぽいんだけど…

マウスジェスチャー

| マウスジェスチャーを含むブックマーク

WndProcを使おうと思ったら、AxWebBrowserにはメッセージが飛んでない。ということで、AxWebBrowser.PreProcessMessageで確かめたら、ほんとにMouseMoveメッセージをキャッチできない。

そこで、PreFilterMessageを使って、全メッセージを洗ってやろうと思った。たしかに、MouseMoveイベントをキャッチすることはできた。しかし、m.WHndがAxWebBrowserの子供の物なのかを判定することができない。ていうか、誰にメッセージが投げられているのかぜんぜん分からない。

C#からMessage.WHndを使ってActiveXのコントロールを得ようとすると、nullが返ってくるらしい。こうなると、どうにもなりません。

トラックバック - http://d.hatena.ne.jp/susumu/20031029

2003-10-28 TAは疲れるでつ

タブブラウザ

| タブブラウザを含むブックマーク

最近、自分でも良く続けてるなと思うタブブラウザです。そのいまのところの進捗報告をば。

  • タブを変えたときにボタンの状態が反映されないのを修正
  • タブを変えたときに、自動的にIEにフォーカスを持っていき、マウスホイールで自動的にスクロールをするようにした。

っていうか、キター!! 自動でフォーカスを当てるの、やっと実現しますた。長い道のりだった。

で、いまこの日記を、MyWebBrowserで書いているんだけど、ときどきバグが発生して…

参考文献としての他のタブブラウザ:TaBrowser

参考文献としての他のタブブラウザ:TaBrowserを含むブックマーク

今日はじめて触りましたが、素直に面白いブラウザだと思いました。すぐに、ノートのメインブラウザsleipnirから変えようと思います。ノートは12インチなので、ブラウザを開くとどうしても仮面が小さくなってしまいます(最大化は嫌いだから)。いままでは、sleipnirの無駄なバーを消して使っていました。だけど、やはりメニューバー、ステータスバーすらないTaBrowserのほうが、より広く使えそうです。すばらしい。

あと、URLはブックマークではなく、タブで管理するみたいですね。これは、私もブックマークではなく、他の管理方法を模索していたので、少し心強いです。ただ、TaBrowserの場合、ブックマークとあまり差がないかな、とは感じました(ほとんど使ってないときの感想なので、間違ってたらごめんなさい)。

あと、ぴこって隠れたり出てきたり、というのは面白いです。こっそりWEBブラウジングというのがメインかもしれませんが、私は画面を広く使いたい!!なんてときにも役に立つんじゃないかなあ、とか思います。

タブブラウザ

| タブブラウザを含むブックマーク

とりあえず、

にて放置。これより徐々にバージョンアップを図ろうかと思う。

現在の出来を見てみたい人はどうぞご自由にお持ち帰りください。

トラックバック - http://d.hatena.ne.jp/susumu/20031028

2003-10-27 最近、体調が悪いです

susumu2003-10-27

タブブラウザ・がんばってます

| タブブラウザ・がんばってますを含むブックマーク

とりあえず、まだがんばってます。これから実装したいのは、

です。

ちなみに、この画像は、動いている画面をキャプチャしたものです。見ての通り、かなり基本的な機能しか実装していません。

タブブラウザ・今日はここまで

| タブブラウザ・今日はここまでを含むブックマーク

ほかにもC#タブブラウザを作ってる人はいるんですね。ソース公開とかしてくれると嬉しいけど、そうもいかないか…

で、今日やったところは、上記の4つのボタンの実装です。ということで、あまり進んでいません。日本シリーズを見てたら、コーディングが手につかなかった。

トラックバック - http://d.hatena.ne.jp/susumu/20031027

2003-10-26 Windowsのプログラミングは良く分からん

タブブラウザ進捗状況

| タブブラウザ進捗状況を含むブックマーク

Windows上では、初めてのプログラミング(Cygwinは別)ということで、かなり手探りの状態で開発しています。それで、現在の状況はというと、

  • 指定したURLを表示
  • タブによる切り替え
  • googleでの検索

というところまではできました。疲れた。

で、今後の予定は、

  • 新しいウィンドウで開くと、IEが立ち上がってしまうのを防ぐ
  • タブをマウスホイールで動かす
  • タブを選択したとき、自動的にフォーカスをIEに与える

です。

タブブラウザ・続き

| タブブラウザ・続きを含むブックマーク

フォーカスをIEに移す方法をひたすら探しているんだけど、見つからない。なにげに、AxWebBrowserって糞なのか? なんか、細かい設定はCOMを通して自力でやらないといけないみたいだし。所詮は.NETか…

タブブラウザ・続きの続き

| タブブラウザ・続きの続きを含むブックマーク

とりあえず、新しいウィンドウを開いたときに、新しいタブで表示するようにはできた。AxWebBrowser.NewWindow2とppDispを駆使して実装。なんとなくだけど動いてる。

だけど、相変わらずIEにフォーカスを与えることができないので、マウスホイールを使ったスクロールを有効にするためには、IEのどこかをクリックしなければならないというへたれっぷり。

よく分からない…

トラックバック - http://d.hatena.ne.jp/susumu/20031026

2003-10-25 頭痛が止まりません

ここ3日間、高血圧に悩まされています。というのも、3日前に血圧を測ったら、180-120-100という今にも死んでしまいそうな値をたたき出してしまったからです。それで、その日は10回ぐらい測っては不安に陥り、測っては泣きそうになり、測っては…

結局、昨日の朝に保健室に行って測定してもらったら、一回目は180-120、二回目は160-100、三回目は135-95と、だんだんと下がっていきました。そして、徹夜明けなんだから、そんなものと言われておずおずと引き下がっている状態です。

今日、改めて測ってみると、150-100を超えることはなく、135-90前後でうろついています。まあ、これでも高めであることには変わらないんですけどね。

ということで、ウォーキングでも始めてみようかなと思ってるしだいです。

タブブラウザを作ってみるぞ

| タブブラウザを作ってみるぞを含むブックマーク

ということで、一連の高血圧事件のおかげで研究したくない症候群に陥ってしまいました。そして、某有名タブブラウザが私の環境ではあまりに不安定なので(なぜか私の環境ではよく設定ファイルが壊れてくれる。そのたびにマウスジェスチャーや検索バーの設定はしたくない。)、いっそ自分で作るかと思い立ちました。

で、最初はDonutを改造して自分用にアレンジしようと思ったのですが、なぜかVC++.NETでコンパイルが通りません。一行も改変を加えていないにもかかわらず。

そういうことで、C#を使ってお手軽プログラミングと相成りました。

コンセプトは「なるべくシンプルに、私が楽しく使えればよい」です。あくまでユーザは自分を想定し、自分が使いやすければ他人が遣いにくくても問題ないとします。

具体的には、次の機能を中心に実装したいと思っています。

  • らくちん自動ブラウジング
  • 超強力な経歴機能
  • キーボードでらくらく操作

で、次の機能は面倒なので省きます。

  • ツールバー、リンクバー等無駄なバー:どうせ使わないし
  • ブックマーク等:同上

基本的な操作はキーボードから、もしくはマウスジェスチャーで十分、ブックマークは使いやすい経歴機能と検索機能があれば十分という判断から、これらの機能を省きます。

てな感じで、少しずつ実装して完成したらいいなと思ってます。

トラックバック - http://d.hatena.ne.jp/susumu/20031025

2003-10-21 TAは疲れる…

ぼう授業のTAをしています。で、とても疲れる。お昼をはさんで、正味3時間のTA。3時には終わるんだけど、へとへとでそれ以降何もやる気が起きません。で、結局帰ってきて、今酒を飲んでいます。

ということで、この前、アマゾンで買った本について。

はじける頭脳 -MITのすごい奴ら-

| はじける頭脳 -MITのすごい奴ら-を含むブックマーク

ISBN:4901006509

大学に入ったころ、私の周りにはすごいやつらがいっぱいいました。で、学部時代のときは、そいつらに負けじと一生懸命勉強したものです。特にプログラミングに関しては、相当勉強しました。理論から実践まで一通りです。

でもまあ、そういう人たちはだんだんと少なくなるんですね。卒業したり、他大学に行ったり。まあ、私の人付き合いの狭さも原因ですが。

で、最近、「自分、自惚れてるな」と感じ、それを戒めるために、1000円と言う安さとタイトルだけで買ってしまいました。世の中にはこんなすごいやつがいるんだ、私もがんばんなきゃ、と思うためです。

それで、本の内容ですが、裏切られました。大まかに、MITに留学したとき、その後の生活が語られています。ようするに、カルチャーショック(まではいかないまでも)を受け、いろいろ考えさせられたた、というようなことが書かれているわけです(もちろん、ほかにもいろいろあるけど)。

ということで、私としてはだいぶ不満足な買い物となってしまいました。いろんなすごい連中が紹介されているものと思っていたのですが、そうではないわけです。

ただ、読み物として見た場合、1000円はだいぶお買い得で面白かったです。これを読んで思ったことは、私もMITで勉強したい…

トラックバック - http://d.hatena.ne.jp/susumu/20031021

2003-10-17 ねみい

残念ながら出場しません

| 残念ながら出場しませんを含むブックマーク

なんか、ACM/ICPC関連でこの日記および私のWEBにたどり着く方がいるみたいです。で、その方たちに少しでも面白い話を読んでいただきたいと思い、少しはACM/ICPCネタの文章を考えていました。

それで、一番の話のネタは、今年のACM/ICPCです。うちの大学で開催されるので取材もしやすいなど、これほど面白いネタはないと思います。本来ならば。

ですが、残念ながら、私はもう出場することができないんです。本来なら、今年はチャンスがあったのですが、私の個人的な理由(ほとんど私のわがまま)により、出場を見合わせました。まあ、そのときは来年があるからいいかと思っていたんです。そしたら、どうやら、M2は来年から出場できないみたいですね。残念です。ですから、今年のACM/ICPCをネタに話を書くことができそうにありません。せっかく来て頂いたのに、ごめんなさい。

不満と恐怖 過去2回のACM/ICPC参加より得たモノ

| 不満と恐怖 過去2回のACM/ICPC参加より得たモノを含むブックマーク

さて、ACM/ICPCのコンテストに対し、少しの不満と大きな恐怖を持っています。出場を踏み切れなかったのは、それらも少なからず関係しています。

私はACM/ICPCはプログラミング技術を競うコンテストだと認識しています。確かにコンテストに参加することで、すばやいコーディング技術を手に入れることができました。複雑なアルゴリズムやプログラムを短時間で実装する技術も手に入れました。ですけど、それ以上に汚いプログラムを描く癖がついてしまいました。これは私が未熟だったせいもありますが、この癖を直すのに、半年以上かかったのも事実です。

私が理想とするプログラミングは、シンプルで美しいコードを書くことです。ぱっと見ただけで全体像が把握でき、細かいコードを観ることで、それを書いたプログラマのコードに込めた想いが伝わってくるような、そんなコードを書けたらと常々感じています。

ですから、汚いコードを許してしまうようなコンテストに参加することで、また弱っちい自分が流されて、理想とするプログラミングを忘れてしまうのが怖いと感じました。今忘れると、もう二度と思い出せないような気がするので。

コードの美しさを競い合う。そんなコンテストがあれば良いんですけどね。

後悔も…

| 後悔も…を含むブックマーク

そんな感じで、出場をうっかり見合わせてしまいました。正直、未練タラタラです。今年は大切なものをたくさん失ってしまいました。そのうちのひとつがこれです。

まあ、こんな偉そうなことは優勝してから言えという感じですけどね。

余談ですけど、とある教授に何で出場しないのかと聞かれました。まあ、大学内の予備選で優勝を掻っ攫っていった人間に参加して欲しかったという気持ちがあったんでしょう。それに、ホスト校として、コンピュータサイエンス専門大学の面子として恥ずかしいチームは出せないというのもあったのでしょう。

(もっとも、自分のチームよりもはるかに優秀なチームを知っているし、彼らは出場するので安心してみてられますが。そのチームとは、個人技では良い勝負ができると思います。ですけど、チームとしてみた場合、私のチームのほうが経験値が少ないので総合力では向こうのチームのほうが上回っていると思っています。)

それで、その質問に対して、上記の理由を答えたのですが、英語力の不足から、うまく伝わらずに口論になってしまいました。

やっちった…

トラックバック - http://d.hatena.ne.jp/susumu/20031017

2003-10-12 家に居ようが大学に行こうがやること2chでヒキー確定

むずむず足とアリス症候群

むずむず足とアリス症候群を含むブックマーク

2chこわい話まとめページさんの過去ログをずっとボーと眺めていたら、おもしろいものを見つけた。

まず、むずむず足症候群。

いつごろから始まったのかは分からないけど、夜とかから、すごく皮膚が突っ張った感じがするのが時々起こる。何をやってもその日は直らなくて、結局一晩中気になってうとうとしてるだけで朝になって次の日ものすごい寝不足に見舞われると言う恐ろしい症状。で、むずむずと言う感じなのかは分からないけど、とにかく変な感覚。皮膚とその下あたりがひたすら変で、痛くはないけど眠れない。どうやらそれがむずむず足症候群と言うらしい。

なんか、中高年ぐらいに現れて、後はひたすら悪化していくだけらしいけど、ちと待て、20台半ばの私はどうなるのでしょう。こんなことを書いている今も、足が変。いや、今まであんまり気にしてなかったけど、こんな病名があることにびっくりですよ。

次にアリス症候群。

これは今はすっかりないと言うか、起こさないようにしているだけかもしれないけど、小学校高学年から高校初期のころまでよくあった。

寝る前、窓のカーテンから漏れる月光が作るも模様を見つめていると、突然視界がぐにゃりとゆがむ。そして、月光と影の二つに分化していき、突然影がシーソのごとく揺れだす。当時はそれが砂糖をスプーンですくっている様子に見えた。そして、だんだんと速度が上げっていく。周囲の時間もどんどんと速く流れ出して、つられて心臓もばくばくしだして、息苦しくなり、胸が締め付けられる。そして突然普段の世界に戻って、それまでの焦燥感が嘘のように消えてなくなる。でも、めちゃくちゃ息が荒れてて、それを落ち着けて再び寝ようとすると、またやってくる。そんなこんなで何時間か格闘すると、気づいたら朝になってるっていう感じ。

で、今は夜は絶対にカーテンに隙間を作らないのと、わざとオレンジ色の明かりを残して寝るから最近はお目にかかってない。てか、かかりたくない。まあ、月光に映し出される影は危険という方向で。

トラックバック - http://d.hatena.ne.jp/susumu/20031012

2003-10-09 今週も明日で最後!!

スケジューラ・続き

| スケジューラ・続きを含むブックマーク

スケジューラの開発は、微妙に継続してます。

現在GUIを構築してます。とてつもなくシンプルなGUIを想定しています。

ユーザーは、スケジュールのグループを指定する文字列だけを入力できます。そして、指定された文字列で限定されたスケジュールのリストを表示します。たったのそれだけです。

とりあえず、GUIが完全に実装し終えたら、適当なところにでもおいておきたいと思います。

トラックバック - http://d.hatena.ne.jp/susumu/20031009

2003-10-05 日光浴びたら気分爽快

スケジュール帳・作業記録

| スケジュール帳・作業記録を含むブックマーク

いままで1つのクラスにまとまっていたMVC全ての役割を、それぞれのクラスに分割した。もともと1つだったので、互いに依存しまくりだけど、これから徐々に抽象度を高めていくつもり。

いままでは、YCUIAppというクラスが、コマンドの入力受付、結果の表示、状態の保持およびファイルの操作等の全ての業務をこなしていた。で、最終的にはCUI版とGUI版それぞれを同じ実装で両立させたいと思っているのと、幅をネットワークに広げたいという意味もあり、クラス分割という手術に踏み切る。

コマンド入力については従来どおりにYCUIAppが行う。表示についてはYCViewが行い、状態の保持はYCEnvironmentが、ファイルの操作などはYCDatabaseが行う。

コマンドが入力されると、YCUIAppからコマンドオブジェクトが評価される。コマンドオブジェクトは、YCEnvironmentとYCViewに命令を発行してそれぞれ操作を行うという感じ。

トラックバック - http://d.hatena.ne.jp/susumu/20031005

2003-10-04 一日中引き篭もってゲームばっかり。欝だ

ゲームばっかりやってたわけだけど、ちょっとはプログラムも書いたのでその話をば。

例外処理の怪

| 例外処理の怪を含むブックマーク

構造化された例外処理を持つ言語ならば、次のような構文は必ずあるはず。

try {
    ... 何らかの処理 ...
} catch(...) {
    ... 例外処理 ...
} finally {
    ... 後片付け ...
}

で、私は常々疑問に思う。私は例外処理はだ〜い嫌いだから(ソースが醜くなるし、意味的に意味のないインデントが入る)、なるたけなら使いたくないんだけど、Javaとかだといつかは使わないといけない。

よくJava系の例外処理のサンプルについてくるのが、入出力の例だ。こんなの↓。

try {
    FileReader reader = new FileReader( ... );
    .....
} catch( IOException e ){
    e.printStackTrace();
} finally {
    try {
        reader.close();
    } catch( IOException e ){}
}

よく、finally節でポートのcloseをかけると素晴らしいみたいな記述を見かける。でもさあ、ポートをcloseするとき、例外が発生するかもしれないわけよ。それで、finally節でさらに例外処理を行わなければならない。それで、closeのときに例外が発生したら、どうするのかと。ポートは閉じられないのかと。

ようするに、結局のところ、誰がcloseしたことを保障してくれるのかと。

ちと愚痴っぽくなったが、例外処理が例外処理を呼ぶと言う微妙な構造を何とかして欲しいと思ったわけさね。それとも、もっとうまいやり方があるのかなあ。

スケジュール帳

| スケジュール帳を含むブックマーク

昨日の時点だと、コンソール版スケジュール帳のコマンドはすべて1つのクラス内にあるメソッドで実現されていたけど、今日は、コマンドそれぞれをクラスとして独立させた。その間の糊をコーディングするのが若干面倒だったけど、まあよしとする。

新たに、

  • edit : 編集
  • find : 検索
  • help : ヘルプ表示

コマンドを追加。コンソールアプリの癖して、editをかけるとswingのJFrameが立ち上がるという恐ろしい罠付きだけど。

これからモデルの独立と、範囲つきディレクトリの表現と言う、若干厄介なコーディングに入る。ってか、これを自力で実装するくらいなら、SQLを叩いたほうがましと言う罠。

トラックバック - http://d.hatena.ne.jp/susumu/20031004

2003-10-03 眠れない夜のために何かをください

スケジュール帳

| スケジュール帳を含むブックマーク

私的には、意外にも続いているこの企画。何気に開発を進めています。

で、GUIについてJTableを使ったほうが楽だなと考え始めています。JTableもどきを作ろうとして初めて分かる、その偉大さ、ってやつです。

とりあえず、スケジュールを管理するデータベースに必要なインターフェイスを洗い出すために、CUI版ミニミニスケジュール帳を作りました。

使い方はいたって簡単で、シェルがごとくコマンドを打つだけです。現在対応しているコマンドは、

です。しょぼ…でも、触ってると結構面白いんだな、これが。やっぱ、時代はshellも時間管理!?

ただこのミニミニスケジュール帳、Javaでなくても良いと思う。今の状態だと、shellとまったくの意思疎通を取っていない。といことで、それぞれをコマンドとして独立させてshellから起動できるようにすれば…まあ、それはそのうち。

トラックバック - http://d.hatena.ne.jp/susumu/20031003
270940