...ing logging 4.0

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

2010-01-01から1年間の記事一覧

型Tと数値nを与えられたとき”T[1][2][2][3][3][3]...[n]をn回繰り返し”という型の配列を作成する

コンパイルタイムプログラミング - 主題のない日記昨晩、これと同じことがC++で出来るかどうか質問を受けた。5という数字が与えられたときに、0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5という数列をコンパイル時に生成できるかという問題である。 本の虫: C++0xによ…

core.sync.*を使ってみる

色々教えてもらってすごくありがたいけれど,全然理解できなくてしょんぼり.勉強が足りなさすぎる・・・orz とりあえず動いているように見える・・・が? import std.stdio, core.thread, core.sync.condition, core.sync.mutex; class Actor { private con…

Issue 5328 - The addressof-expression that should be rejected is accepted

本文では全然説明してないですが「"m"がインスタンスメソッドなのに"&A.m"と書けてしまっているけどこれバグじゃないの.クラス定義の中ではちゃんとエラーになるけど外ではエラーにならないで実行時にならないと問題が発覚しなくなっているよ」というつもり…

non-static member functionのアドレスを取る

import win32.windows; import core.thread; import std.stdio; class A { this() { EnumWindows(&A.enumWindowsProc, 0); // ここではコンパイルエラーになるのに } /*static*/ BOOL enumWindowsProc(HWND hwnd, LPARAM lparam) { return TRUE; } } void ma…

std.concurrency.spawnで実行しているスレッドでのassertが捕捉されない

ずっとassertが使えなくて困っていたのですが,ふと思いついて試してみたところ, AssertError型を自分で捕まえるtry-catchを自分で書かないといけないことがわかりました. import std.stdio; import std.concurrency; void f() { //try //{ writeln("1"); …

似たような人いませんか?

よいこのみんな!やりたいことがあるなら卒業を待たなくてもいいよ!今からやり出してそのまま卒業しても続けて行けばいいんだ!2010-11-22 12:22:24 via web というのも,ぼく自身が ←の経歴:'99高校卒業→'99就職(現職)→'00大学入学→'04大学卒業→'04大学…

Null object Pattern

メソッドを呼ぶ前にnullチェックを呼ばなくてもよくするパターン. import std.stdio; // 誰かが作って中身を変えられないコード //////// enum 乱数 = 1; interface I { void m(); } class A : I { override void m(){ writeln("hi"); } } I foo(){ if (乱…

Decorator pattern

インスタンスを包含して機能を拡張するパターン. import std.stdio; interface Ice { string name(); } class VanillaIce : Ice { override string name() { return "バニラアイス"; } } class ChocorateSomeIce : Ice { Ice ice; this(Ice ice) { this.ice…

Composite pattern

入れ物と中身を同一視するパターン. import std.stdio; interface Element { uint countChilds(); void append(Element c); } class Folder : Element { private Element[] elems; override uint countChilds() { uint sum; foreach (c; elems) { sum += 1 …

mixi reply helper

返信時のコメント欄に「>○○さん」と表示します. Firefox用のGreasemonkeyスクリプトmixi Name Quoterをchromeにextensionとして移植したものです. mixi Name Quoter http://pear.jp/docs/works/greasemonkey/mixi_name_quoter.uhtml https://chrome.googl…

scopeがなくなるらしいので

色々お話しましたがもう自分用にこれでいいやと思った. import std.stdio; struct AutoDeleted(T) { private T t; public this(Args...)(Args args) { t = new T(args); } public ~this() { delete t; t = null; } private @disable this(this){} public al…

風呂の修理

嬉しいので自慢しますw 結構前から自宅の浴槽から水が漏れていたのですが,今日,とうとう直りました. というか,自分で直しました. 昨日今日とホームセンターに足を運び,ネットで調べ,どんな構造で,修理にどんな部品がいるのかわかってきました. 「…

Subversion: コミットメール(2) 〜GmailのSMTPサーバを使ってコミット時にメールを送ろう〜(更新)

Subversion: コミットメール(2) 〜GmailのSMTPサーバを使ってコミット時にメールを送ろう〜 - ...ing logging 3.0 バグが取れました.

std.concurrency.receiveってそういうもんじゃねえし

というわけで,頑張った割りに意味なかったらしいorz receiveに複数のdelegateを与えたら分岐するんだね. via. http://www.curoles.com/j/dstdconcur.html import std.stdio; import std.concurrency; struct A { int v; } void test() { for(bool fun = tr…

とある学生の仮想端末《ジョークコード》

とある高校にて 誰かがコンピュータ室にある1台のPCに,あるBASICプログラムを置いておいた. しばらく経ち,ひとりの学生がそのプログラムの存在に気づき, 何気なく実行してみた. すると,こともあろうに,FDDのアクセス音と,FDDのすべてのファイルを削…

USTでD言語生放送

何日か前に第一回みたいなものをやりましたが,だらだらとD言語の仕様を思いついたものから説明した後,D言語自体のデバッグをしてただけでしたw

UST試験配信終了

Vol.0ということで試験配信してました. 次は音声を入れられるようにしたいです.

dmd r627とdfl r97でdmdがクラッシュ【原因編】

dmd r627とdfl r97でdmdがクラッシュ - ...ing logging 3.0 の続き. //a.d import b; void main() { A a = new A(); } //b.d class A { protected this(){} } >dmd a b a.d(5): Error: class b.A member this is not accessibleでクラッシュすることがわか…

dmd r627とdfl r97でdmdがクラッシュ

nextがnullになっていてアクセス違反で落ちてる. 何が原因だろう. std.socket.dが怪しい? type *TypeFunction::toCtype() { type *t; if (ctype) return ctype; if (1) { param_t *paramtypes; tym_t tyf; type *tp; paramtypes = NULL; size_t nparams =…

dsource.orgのプロジェクト活性度ランキング(完全版)

http://dsource.org/projects/ の全プロジェクトの最終更新日時から,プロジェクト活性度ランキング(完全版)を作ってみました*1. ではどうぞ. *1:C++とboostで(ボソッ

dsource.orgのプロジェクト活性度分布

縦軸がそのプロジェクトの最終更新日時で,横軸がそのプロジェクトの全プロジェクト中における最終更新日時順位(=活性度ランキングの順位)です. こうしてみると,割と普通な感じがします. 何か面白いグラフにできないですかねえ.

dsource.orgのプロジェクト活性度ランキング(暫定)

追記:完全版ができました(dsource.orgのプロジェクト活性度ランキング(完全版) - ...ing logging 3.0). http://dsource.org/projects/ の全プロジェクトの最終更新日時から,プロジェクト活性度ランキング(暫定)を作ってみました*1. ではどうぞ. *…

ごそごそ

mango: Tue, 09 Mar 2010 05:52:28 GMT dsp: Sun, 21 Aug 2005 16:54:43 GMT corbasuite: Tue, 28 Sep 2004 04:59:16 GMT d_server_platform: Wed, 22 Feb 2006 13:48:40 GMT ddbi: Sat, 13 Mar 2010 15:01:03 GMT dlanchat: Fri, 20 Mar 2009 15:16:14 GMT …

typename

まずはC++. #include <iostream> template <typename T> struct A { typename T::X v; }; struct B { typedef int X; }; void main() { A<B> x; x.v = 42; std::cout << x.v << std::endl; } 次にD言語. import std.stdio; struct A(T) { T.X v; } struct B { alias int X; } void m</b></typename></iostream>…

通らなくなっている inout

inout(type)[] or inout(type[])? - ...ing logging 3.0 dmd 2.037ではダメっぽい.

メモステがまた壊れたので純正品に

しました. ちょっと本体をぶつけたくらいでメモステ壊れるとか衝撃耐性がなさ過ぎで困ります. たった1cm落としただけじゃないか(T_T) 任天堂のだったら2階から落としても壊れないぞ(ほんとか? これで2枚目. おかげで勇者のくせに生意気だ:3Dのデータが…

Subversion: コミットメール(2) 〜GmailのSMTPサーバを使ってコミット時にメールを送ろう〜

Debian だとはじめは Ruby とか入ってないと思うので入れます. apt-get install ruby apt-get install rubygems gem install tlsmail apt-get install libopenssl-rubyリポジトリの ./hooks にある post-commit.tmpl を post-commit という名前で同じディレ…

Are you enjoying the time of EVE?

ニコ生で全話放送していたのをタイムシフト予約しておいたので,ついさっき観た. 「イヴの時間」 あ〜,いいもん観た〜♪ もし,アンドロイドは人間と区別が付かない形態をしてはならない,というルールがなければ,アンドロイドはアンドロイドらしく振る舞…

プログラミングTLすなあ

インクリメンタルリンク失敗?

C++

なんだこれ. リンカーが死にやがった. 1>------ ビルド開始: プロジェクト: console, 構成: Debug Win32 ------ 1>コンパイルしています... 1>main.cpp 1>リンクしています... 1>main.obj : fatal error LNK1000: Internal error during IncrCalcPtrs 1> V…