日記
この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. 写真のような画像は画像生成AIもしくは念写によるものです.
2009-01-29
S玉先生にレポートを送っておく. これでOKかな?
CGIの自分の名前
CGIでURL上での自分の名前を知りたいときは,環境変数のSCRIPT_NAMEを参照しますが, .htaccess等でmod_rewriteを使ってたりすると,SCRIPT_NAMEに もともとのファイル名が入ってしまっていて宜しくない.
大抵の環境では,REQUEST_URIがセットされるので,この文字列から, PATH_INFOとQUERY_STRINGを引いたものが,CGIの名前になるはず. mod_rewrite対策ならば,REDIRECT_URLかSCRIPT_URLをセットするみたいなので, これを使うのも良いか.
2009-01-28
プログラム書いたり.
2009-01-27
ゼミに出るため研究室へ. でもゼミの時間を間違えました….
修論はまだ急がなくても大丈夫そうな雰囲気?
最近いじっているもの: データベース,ネットワーク,Perl,Flash,ActionScript…
2009-01-25
やらないといけないことがあると,それ以外の作業がはかどりますね(笑)
一昨日こっそり公開した/library/kwui/db db.hを少しは使えるように. commit,rollbackを追加したので,一応トランザクションできるようになった.
データへのアクセス方法がまだ微妙だなぁ. 今の「>>」と「,」を使ったアクセスは,「,」の優先順位が低すぎで 微妙に使い勝手が悪い.
2009-01-24
修士学位論文
なんだか,修論をそろそろ書き始めないといけない気がした. 一週間くらいでなんとかしないと.
とりあえず,「修論」フォルダを作って「修論.txt」を書く. 今のところテキストで5kb.
夕方は研究室へ.
関数のオーバーロードとchar
charはunsigned char,signed charのどちらとも区別して扱われるんですね…. 符号の有無はコンパイラ依存なのでそうするのが妥当かもしれませんが, unsigned charとsigned charとcharの関数のうちひとつを実装し忘れたりすると, intの関数が呼ばれたりして危険です.
さらに,構造体とかも渡すので統一して参照渡しをしてたのですが, constな参照渡しって値渡しになることがあるんですね…. charな変数でconst int &な関数を呼ぶことが出来ると 思ってなかったので,気づくのに時間がかかりました.
参照渡しのつもりだったのに,試しに変数のアドレスを見たら別物に なっているし…. アドレスの値で変数の同一性を判定するようなコードは constな参照渡しでは書けないということかな? (良く考えたら,一時オブジェクトが作られているだけだ…)
2009-01-23
来週が最後の授業料の引き落としみたいなので,口座の残高を確認. とりあえず今度は大丈夫そう.
授業料を払わないと,休学も退学もできないようなのですが, そのまま払わないと除籍になるらしいです. 除籍と退学の違いを調べてみましたが, 除籍は大学にいたという記録自体が無くなるようですね. まぁ,どちらでも良いような気がしますが….
FreeBSDでODBC
FreeBSDでODBC経由でデータベースにアクセスしたいのだけど, ライブラリのインストールで悩み中. unixODBCとiODBCってどっちが良いんだろう….
とりあえず,databases/unixODBC, databases/mysql-connector-odbc をインストール.
mysql5.1のmysql-connector-odbcがうまくインストールできなので, mysql5.0にダウングレード.
2009-01-21
研究室.サークル.ラーメン.
ActionScriptのSocket
普通にソケットが使えるんですね. ネトゲとか色々作れそうです.
ただ,すぐにサーバに接続できるわけではなくて,接続されるサーバ側の ポリシーファイルで接続を許可してやる必要があるみたいです.
最近のFlashPlayerの場合, サーバの843番ポートで待ち受けて「<policy-file-request/>」というリクエストに 対して「<cross-domain-policy><allow-access-from domain="" to-ports=""/></cross-domain-policy>」というような応答をすれば良いようです.
843番に接続できない場合は,実際に通信に使うポートに対して上記のリクエストが 投げられるので,やっぱり同じように応答すると, 一度コネクションが切断された後に,本当の接続が来ます.
気をつけないといけないのは「0」がデリミタだということです. これに嵌りました. バッファを文字列として管理している場合は気をつけないとです.
とりあえず,C++でチャットサーバ書いてみたりする.
ついでに,普段使っているsocket.hを公開. …最近はSafiiのsocketstream.hをメインに使ってる気がしますが(汗)
2009-01-18
今日も寒い.夕方は雨….
ActionScript
久しぶりにActionScriptで遊んでみる. MTASCとかも使ったことがあるのですが, 今回はActionScript3.0を使いたいので, AdobeのサイトからFlex SDKをダウンロードしてくる. コンパイラはJavaで出来てるか….
2009-01-17
自転車を大学に置きっぱなしだったのだけど, センター試験のせいで入れない….
しかも部屋が寒い. コップの水に氷が…って,何年か前にも同じこと書きましたね. あと,水道の蛇口からつららがぶら下がってるんですが…. この部屋はまずいです.普通に布団をかぶって寝てても寒くて起きるので….
センター試験のせいで暖を取るために研究室に行くこともかなわず, 毛布を被って震えながらプログラム書いたりしてました.
2009-01-15
新横浜で会議…. このプロジェクトの会議に参加するのはこれで最後.
2009-01-14
午後は研究室へ. 久しぶりにサークル. 夕食はターバンカレー.
[Perl] $(ドル記号)と戦う
Perlの変数の頭の $ が邪魔だと思ったことはあると思います.
sub x:lvalue{$x};
x=10;
printf("x=%d\n",x);
あまりきれいじゃないなぁ.
sub var{
my ($n)=@_; *$n=sub :lvalue{${$n}};
}
var b;
b()='hello\n';
print b();
「var 変数名」で宣言できるようにと思ったけど, プロトタイプ宣言が無いので「()」を省略できない….
sub var{
my ($n)=@_; *$n=sub :lvalue{${$n}};
}
var b;
sub b:lvalue;
b='hello\n';
print b;
無理矢理プロトタイプを書いてみる.冗長すぎ …最初のが良いな.
2009-01-12
明日はゼミで発表か...
研究の中間発表は話せることがあまり無いので, 別の話題に時間を使おう. 前回は,パフォーマンスとプログラミング言語の話だった気がするので, 今回はセキュリティにしようか. この研究室ではセキュリティと言っても, 仕様書の記述しか出てこないので, 思いっきり実装側の話をしてみよう….
kukiki.cgi
日記の更新時刻を保存するように. 見た目は変わってませんが,Atomには時刻まで出力しています.
2009-01-11
CAIやったり,少しだけプログラム書いたり.
Perl
Perl5.8の解説とかを見ていて,実は知らないことも多いと再確認. ちゃんと全て分かった上で書いている人ってそんなにいないんじゃないかと思う.
CAI
そろそろ,単位についてもまじめに考えないといけないなぁ…. ということで,試しにS玉先生のCAIに手をつけてみる.
線形代数は面倒くさいので,途中からOctaveに頼る. ニューラルネットとか良く分からないので, 問題文から意味を想像しつつ解いていたのだけど, テキストを見たら,ほぼ問題の答えと言えるものが 書いてあって損した気分だ…. もちろん,テキストは読むべきものなのだけど.
…さらに,線形代数の問題がどこかで見たパターンだと思ったら 学部時代になんとなく途中まで解いた奴だった. 学部の学籍番号で進捗を見たら出てきたので,言えば続きからで良かったのかも.
//!夕食はオムライス
2009-01-10
雪降ってます.
研究室.
Perlで配列やハッシュを生成するサブルーチンを作るとき, 戻り値のコピーが起きるのが嫌なので,引数でリファレンスを渡すことにしてるけど, どうにかならないのかなぁ…. 暗黙的なリファレンス返しが出来る宣言方法って無かったっけか.
Googleのfavicon…今度はまた変わりすぎじゃないですか. ブラウザのタブに見慣れないサイトがあるな…と思ったらGoogleでした.
2009-01-09
今日が金曜日だということを完全に忘れていて, K谷先生との約束をすっぽかしてしまった. 電話もかかってこなかったので,昨日の日記を見て気づきました….
2009-01-08
レポートを書いて提出.
微妙に色々と忙しい.
明日はK谷先生のとこ行かないと….
[Perl] CGI.pmのパフォーマンス
試しに,kukiki.cgiでCGI.pmを使うようにする…って, 処理時間が2倍以上になったんですが.
「use CGI;$q=new CGI;」だけで0.1秒くらいかかります. そもそも,現状のkukikiで普通のページを生成するのに0.1秒もかからないんですが….
使うのはファイルをアップロードするモジュールだけにしておこう…. CGI::Liteも試してみるかな.
2009-01-06
ゼミ.
pkg_addからパッケージをインストールするとき, 依存関係のあるパッケージをダウンロードするのが面倒なときは, PACKAGESITEにFTPのURLを入れておけば,-rオプションを使ったときに, 参照してくれます.
setenv PACKAGESITE ftp://ftp3.jp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/All/
pkg_add -r portupgrade-2.4.6,2.tbz
ってなかんじで,portupgradeをインストール.
2009-01-05
そろそろHAL研のが終わりか….やる気がでない. 記念品は欲しいなぁ.
久しぶりに午前中から研究室に行ってみる.もちろん誰もいない.
FreeBSDのpkg_addはPKG_PATHだとURLが指定できないので, PACKAGESITE環境変数で.なんか,良く忘れるので. portupgrade使えばいいんだけど.
2009-01-04
部屋,寒すぎ.
