2006年02月
send を再び
- 2006-02-27 (Mon)
- プログラミング
ということで数日前の現象( non-blocking の send ではまる)を再現させようと思ったらプログラムはすでに書き換わってて再現不能.別のプログラム書いて試してみたら今度はうまく送信したバイト数だけが戻っていたので実は数日前の現象は見間違いだったか別の問題との兼ね合いだったように思える.ただ,どっかであの記述を見た記憶があるのでほんとのところどうなんだろうか? それはさておき,今度は "MSG_DONTWAIT" 指定してるのにブロックされてしまう現象が…
- Comments: 0
- TrackBack (Close): -
gcc2.95.2 をコンパイル
適当なバージョンの libstdc++ がほしいので gcc2.95.2 をコンパイル(ムダ).しかし, glibc-2.2 以降ではパッチを当てないとコンパイルできないことに気づかず時間を無駄に.
結局 ftp://ftp.ilog.fr/pub/Users/haible/utf8/gcc-glibc-2.2-compat.diff のパッチを当てなさいとのこと.それはさておき glibc のバージョンを下げないとやりたいことができないのかも…
- Comments: 0
- TrackBack (Close): -
SUIFのC++ frontend
- 2006-02-24 (Fri)
- プログラミング
5年前のLinux用バイナリ配布って… うまく動きません.
- Comments: 0
- TrackBack (Close): -
non-blocking の send ではまる
- 2006-02-23 (Thu)
- プログラミング
socket でデータを送るときに send に MSG_DONTWAIT を指定して非ブロックにして送る.
int ret = ::send(sock, buf, len, MSG_DONTWAIT);
このとき,戻り値 ret は -1 ならエラー, 0 ならすべて送信キューに入った,正の値なら送信キューに入れられただけの長さ.とういことで,戻り値は送った長さではない.write と違うんじゃないのかとマニュアルに問いかけたい…
追記:
後日再び試すがちゃんと write と同じ結果になっている( send を再び).すべてキューに入った場合にもう一度0バイトを送信しにいってたのかもしれないなぁと思ってみたり.
- Comments: 0
- TrackBack (Close): -
ぐりちゃれ予選
- 2006-02-22 (Wed)
- プログラミング
5問の計算時間を全部足しても1分未満.もちろんプロセッサひとつで… こんなんでいいのだろうか? サンプルプログラムに少々手を加えただけでこの結果なので全チーム予選通過という事態が待っている気がする.
- Comments: 0
- TrackBack (Close): -
ぐりちゃれ
- 2006-02-20 (Mon)
- プログラミング
初期分割をランダムにして走らせたら収束までの時間に十倍以上の差がでた.これを踏まえてランダムシードをばら撒いてワーカに計算させるモデルで計算しようかと思う.リトライをどの条件で始めるかは考えて無いが...
- Comments: 0
- TrackBack (Close): -
Java to C#
Visual Studio .NET に Java から C# への変換機能があることを知ったので試してみた.結構機械的に置換できるからうまくいくだろうと思っていたら
//UPGRADE_TODO: コンストラクタ 'java.io.FileReader.FileReader' は、動作の異なる 'System.IO.StreamReader' に変換されました。
とかいわれて FileReader まわりがうまく変換されないらしい.ついでに複数個の Main があると怒られるのもどうにかしてほしいような... なんだかんだで結構面倒な気がする.
- Comments: 0
- TrackBack (Close): -
ぐりちゃれ2006
- 2006-02-15 (Wed)
- プログラミング
ようやくアカウントが出来上がったようなので各クラスタへログイン.SSHの認証も成功しているようで一安心.今年は参加チームが昨年の2/3に減少したようだけどやはり入賞は難しそうだなぁ.とりあえず逐次部分を高速化しよう.
- Comments: 0
- TrackBack (Close): -
続・QRコード
ついでなのでQRコード生成プログラムに GUI をつけてみる(ソース(C#))..NET Framework 2.0 から FlowLayoutPanel と TableLayoutPanel が増えたので試してみたがどちらも微妙に使いきれず... TableLayoutPanel の下端がどっかにいってしまうのをどうにもできん.あと, NumericUpDown という数字を矢印ボタンで上下できるコントロールも使ってみたが,こちらは非常に使いやすかった(単純だし).とりあえず次は40型まで対応したデコーダがほしいので時間があったら作るとしよう.
- Comments: 0
- TrackBack (Close): -
QRコード
とりあえず「QRコードは(株)デンソーウェーブの登録商標です」 と書いておく.
壁にかかっていたポスター見たらQRコードが入っていたので,おもむろに生成プログラムを自分で組んでみた.規格自体は JIS X0510 でオープンなのでオンライン閲覧で誤植を発見しつつゴリゴリと.勉強のため C# で組んだはいいが全然 C# らしく無いコードだったりするけど.(ソース(C#))(仕様書からパラメータを拾うのが一番面倒で大変だった...).んで,できたのがこれらで,携帯使うと確かに読み取れる.
アドレスのみ (2-Q (Size: 25x25), Mode: BYTE) | アドレス+α (8-Q (Size: 49x49), Mode: BYTE) |
プログラムは最大の40型(177x177)まで対応してるけどこのサイズを読めるリーダが無く確認できない... どうでもよいが手元の携帯の限界は15型(77x77)らしい. 最後に,このLICENSEを40型(37型で足りるけど)でやってみる.
- Comments: 0
- TrackBack (Close): -
Metapostのマクロ
マクロで suffix を取れるのはいいけれど,普通の式を受け取るのと同時に使うには
def item_draw_impl(suffix $)(expr x, y, r, pos) = ...
のように引数の括弧を別々に書かなければならない.別に定義のところだけならいいのだが,実際に使うときでも
item_draw_impl(item_a)(x, y, r, pos);
とか括弧を別に書かないといけないのはどうにかならんもんかなぁ... やっぱもう一段上の言語を考えるべきなのかな MetaMetapost とか.
- Comments: 0
- TrackBack (Close): -