...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

Programming

脱Stateパターン

状態で分割するのではなくて処理で分割したらこんな感じにしたらいいのかなーと思って書いた. でも別の処理と競合しそうかなあ. import std.stdio; //ライブラリここから interface IForm { void onDraw(); void onMouseMove(); void onMouseDown(); } cla…

プログラミングTLすなあ

クラス設計

ううむ.同じことを書く.AがBを,BがCをメンバに持っていて,利用側はAからBを,BからCを取得する.こうなっていると,メンバ関数の呼び出しをフックできないんだよなあ.とはいえAでBとCを隠蔽すると,BとCの操作があるべきレイヤーはAではないのでモデル…

Visual Studio に Focus+Context が欲しい!

コンセプトが伝わればいいレベルの簡単な絵を描いてみた. スクロールを始めると(あるいはスクロールバーの上にマウスオーバーすると),上のように全体の構成とスクロールバーの位置関係が表示される. 研究分野ではよく見る手法だけど,何で実用化されて…

What is Der?

http://twitter.com/Rayerd/status/7712309633 struct D{ D opBinary(string s)(D o){ static if(s==" ")return o; } D opDispatch(string n)(){ return this; } } void main(){ D hentai; D der = hentai programmer; } 何言語でもありませんよ. 何言語で…

メンバ変数へのアクセスを自重するメンバ関数はどこまで使われるべきか

Rayerd メンバ変数をメンバ関数の引数で渡してメンバ関数の独立性を高めるってどの程度まともなやり方でしょうか http://twitter.com/Rayerd/status/3812033196 まずは普通にメンバ変数にアクセスをするとこんな感じ. class Parser { this(string[] tokens)…

関数合成っておいしいの?

関数型言語やC++のSTLでよく見かける関数合成って,関数の中で関数を呼び出すのとセマンティクスは同じなんだと想像するんだけど,それじゃあ関数の中で関数を呼び出すのに比べて何が嬉しいのだろう(前にもこんなこと書いたっけ?). 新しい機能を持つ関数…

オブジェクト指向は

現実世界のモデル化を指向するのではなくて,オブジェクトというモジュールの単位でのモジュール化を指向すること.

マルチスレッドプログラミングわかんねー(5)

勉強しながら書いているので鵜呑みにしたらダメですよ〜. 変数のスコープと生存期間 スコープと生存期間は違う. 関数内で宣言された自動変数のスコープと生存期間はその関数内だけ. 関数内で宣言されたstatic変数のスコープはその関数内だが,生存期間は…

マルチスレッドプログラミングわかんねー(4)

import dfl.all; import dfl.internal.winapi; import std.cstream; import core.thread; class MyForm : Form { private shared(bool)* start; private shared(bool)* restart; private shared(bool)* end; this(shared(bool)* start, shared(bool)* restar…

マルチスレッドプログラミングわかんねー(3)

import dfl.all; import dfl.internal.winapi; import std.cstream; import core.thread; shared bool startFlag; // trueでcollectorが仕事を始める shared bool restartFlag; // trueでcollectorが仕事を最初からやり直す shared bool endFlag; // trueでc…

マルチスレッドプログラミングわかんねー

Windowsのコントロールの入力を受けて処理を開始して,その処理が終了するまでに再入力があったら処理を最初からやり直すコードの設計がうまくできない. 体系的に学んでいないから経験不足でよくわからないな−.

一時変数とか再帰関数とかなしに

void g(const vector<int>& v){} void f(int length){ vector<int> v; for(int i=0; i</int></int>

マルチスレッドプログラミングわかんねー(2)

マルチスレッド特有のバグをコンパイラが指摘してくれたらいいのに. これでいいのかどうかわからないぞ.

ICFPC 2009 ≒ ルール解読コンテスト

でまぁ思ったのだけど、来年からルールについての議論と調子どうすか的な馴れ合いだけを目的とした IRC チャンネルとか作って話すといいんじゃないかなぁと思った。ログもどっかに上げて。ルールについての議論だけならチーム外と話しても失格にはならないと…

ICFPC 2009 の情報集めを開始

スコアボードには載ってませんがチーム名rayerd.wizで初参加. @Rayerd on Twitterであーだこーだ言ってました. kt3k 日記 ICFP Contest 2009 (1) む.「シミュレーションの実行マシンを解釈している様子」を見るとそこまでは正解だったようだ. 紫ログ:ICF…

ICFPC 2009

http://icfpcontest.org/ 今年もやってきました. ICFPC 2009 プログラミングコンテスト. 3日間の間に与えられた課題をチームでどんどん進めていってスコアを競います. 優勝者の使用した言語が1年間イケテル言語認定されます. いつも参加できなかったけど…

プログラマの三大美徳

ラリー・ウォールによれば、プログラマの三大美徳とは 無精(Laziness) 短気(Impatience) 傲慢(Hubris) との事。これはプログラマに必要とされる、 効率や再利用性の重視・処理速度の追求 品質に賭ける自尊心をいったものである。 一回くらいはブログに…

ファイルの同一性とIDからのファイルアクセス

ファイルの同一性はBY_HANDLE_FILE_INFORMATION構造体のnFileIndexHighとnFileIndexLowを見ればよい. Windowsで、inode 情報に当たるファイルの ID は、GetFileInformationByHandle() API の戻り値 BY_HANDLE_FILE_INFORMATION 構造体の nFileIndexHigh お…

オブジェクト指向設計原則

改めて読む. * 単一責任の原則(SRP) * オープン・クローズドの原則(OCP) * リスコフの置換原則(LSP) * 依存関係逆転の原則(DIP) * インターフェイス分離の原則(ISP) http://d.hatena.ne.jp/asakichy/20090122/1232879842 アジャイルソフトウェア…

契約の継承

id:uskzさんと昨晩朝方まで話し込んでしまった. と言っても,僕の理解力が貧弱すぎただけだが. in, out と、継承 関数が基底クラスの関数をオーバーライドしたものである時は、 その関数自身かまたは基底クラス達の in 契約のうち、 どれか一つが満たされ…

プログラミングの常識の非常識

うは,すごい長文お疲れ様です. クラスは型である グローバル変数を使用していたコードをローカル変数を使用する方法に改良して、さらに最終的には「より良いコード」としてひどいコードを紹介している。 あー・・・.完成形のコードとして見るならこれはひ…

Subversionのリポジトリどこー?

TortoiseSVNを使っているのだが,svnリポジトリのアドレスをすぐに忘れてしまい,いちいちターミナルでログインしてディレクトリ名を確認しないとチェックアウトできない.何とかならないのかこれ.リポジトリ一覧くらい簡単に出せて当たり前だと思うんだけ…

「久しぶりの出向で開発環境について考えさせられた」を読んで

Selfkleptomaniac — 久しぶりの出向で開発環境について考えさせられた 静かな開発環境というのは大事. 研究室では難しいけど. 頑張ってる人がいる横で騒いで邪魔になるようなことしないようにしないとね. あと研究で使うプログラムでもちゃんと進捗管理し…

結合度が高いクラス群には後で手を入れられない

前に作ったプログラムを改善しようと思った. さてどこからいじり始めるかと「切れ目」を探してみたが,クラスの関係が集約ばかりで構築されているのでどこからも手が出せない orz どうも僕は, イベント発生 イベントハンドラが呼び出される ここからState…

詳細仕様書?

http://blogs.wankuma.com/episteme/archive/2008/12/24/164852.aspx コード1行1行に対応するものを欲しがってるんだろうなと思ったらそうだった. 時代錯誤もいい加減にせいよと. しかしそれを必要としているのは一体誰なのかね? んー. そうか,作業分担…

できるプログラマにより多くの給料を与えてみんなが幸せになる方法

元ネタは例のレジ打ちのおばちゃんの話ですが・・・, とはいえ、例えばプログラマであれば「良く出来る人の給料は高いほうが良い」という話は悪い話ではない気もします。この「良く出来る」という単語に対して納得がしやすい一律な基準があれば良いのでしょ…

Network Programming

通信プログラムは全然経験値溜まってないなあ. WinSock2や,・・・Linuxのはなんだ? その辺りを体系的に学べる本を読むべきなんだろうな. 良い本に巡り会わない.探してないせいだけどどど.

デスクトップ拡張記1「送る>新しいフォルダに移動」

前々からデスクトップの機能が貧弱過ぎると言っていました. いわゆる画面サイズを仮想的に広げるデスクトップ拡張が欲しいわけではないです. ファイルやフォルダを直接操作するときにごくごく単純な支援しかしてくれない点が不満なのです. 今回,この部分…

多態・・・性?

http://d.hatena.ne.jp/bleis-tift/20081006/1223298057 ちょw 本屋で立ち読みしただけだったので気づかなかった. こんなの書いてあったのか.