code logs -> 2009 -> Wed, 25 Mar 2009< code.20090324.log - code.20090326.log >
--- Log opened Wed Mar 25 00:00:39 2009
00:08 * Thalass eyes this gibberish, headasplode
00:11
<@AnnoDomini>
What does it mean? "string does not name a type"? WTF?
00:12
<@Vornicus>
Means that it needs a type for its template, I think. I don't remember how to deal with STL strings as they are horrible though.
00:14
<@AnnoDomini>
http://pastie.org/426065 <- WHAT.
00:14
<@Derakon>
Do "std:string" instead of "string".
00:15
<@AnnoDomini>
With one semicolon?
00:15
<@Derakon>
Yes. It's a namespace.
00:15
<@AnnoDomini>
*colon
00:15
<@ToxicFrog>
Derakon: isn't that std::string?
00:16
<@Derakon>
Oh, geeze, it might be.
00:16
<@Derakon>
Sorry, AD, it's been ages since I dealt with C++.
00:16
<@ToxicFrog>
Or "using namespace std;" at the start of the file.
00:18
<@AnnoDomini>
http://pastie.org/426067
00:18
<@AnnoDomini>
New errors.
00:19
<@Derakon>
Did you remember to import string?
00:19
<@AnnoDomini>
Right there in the .cpp
00:20
<@McMartin>
Two colons for namespaces.
00:20
<@Derakon>
You'll note that the error is in a header file.
00:20
<@McMartin>
#include <string> at the top of that header file
00:21
<@AnnoDomini>
That's funny - I didn't need to do that with the SDL functions; they allowed me to link the libraries only in the cpp.
00:22
<@AnnoDomini>
http://pastie.org/426074
00:22
<@ToxicFrog>
Pastebin the source along with the errors, please?
00:22
<@McMartin>
Functions and datatypes are different
00:23
<@Vornicus>
What McM said. If you use a datatype described in the other headers when declaring your own functions you need to deal with that in the header.
00:24
<@AnnoDomini>
http://pastie.org/426078
00:33
<@AnnoDomini>
Any ideas?
00:35
<@AnnoDomini>
What the fuck...
00:35
<@Derakon>
Should be "#include <string>", FWIW.
00:35
<@AnnoDomini>
Apparently, #include <string.h> is wrong.
00:36
<@McMartin>
Yup.
00:36
<@Derakon>
Second pass at mazes, still needs lots of work: http://derakon.dyndns.org/~chriswei/games/jbrl/maze/2.png
00:36
<@McMartin>
C++ standard libraries are distinguished from their C equivalents by a lack of .h
00:37
<@McMartin>
(And the C++ ports of the C library routines are in things like <cstdio> and <cstdlib>, where, IIRC, they also get moved into namespace std)
00:37
<@AnnoDomini>
http://pastie.org/426083 <- What do I do with this?
00:37
<@McMartin>
(Like a real STD, that namespace infects all code it touches)
00:37
<@McMartin>
OK, so, you've got a constructor with initializers something like this:
00:38
<@McMartin>
foo::foo() : a (1), b(2), c(3) { }
00:38
<@McMartin>
Right?
00:38
<@AnnoDomini>
Yes.
00:38
<@McMartin>
It's warning you that they won't be initialized in the order "a, b, c" because C++ initializes in field declaration order, not initializer order.
00:38
<@McMartin>
So, if the def of the class foo was "public: int b; int a; int c;", the order of assignment is b = 2, a = 1, c = 3.
00:39
<@McMartin>
Which could be unfortunate if b was actually initializing to, oh, a+1
00:39
<@McMartin>
Modify your initializer order to be in the same order as they are declared in the .h file.
00:39
<@AnnoDomini>
Done.
00:39
<@AnnoDomini>
Thanks.
00:43
<@Derakon>
Better: http://derakon.dyndns.org/~chriswei/games/jbrl/maze/3.png
00:44
<@Derakon>
The main annoyance with this maze generation algorithm is that it makes either a horizontal or a vertical cut, but not both; properly handling this means a lot of nearly-duplicate code. :\
00:50
<@AnnoDomini>
Alright. At its core, the textbox works.
00:51
<@AnnoDomini>
It displays text only within its bounds, wraps without concern for words, though.
00:51
<@Derakon>
Semi-sensible wordwrap is not too hard to do.
00:51
< Reivles>
Derakon: The vertical cuts also need to be 3 squares high, don't they?
00:52
<@Derakon>
Reivles: I'm assuming at the moment that the player can crawl and contort enough to make it through arbitrary corridors.
00:52
<@Derakon>
If I find this to be too hard to implement later, then I'll have to change this algorithm.
00:52
<@Attilla>
I ponder some sort of genetic random walk algorithm over a randomly generated map of resource squares, block squares, and rock squares where blocks are impassable, the resources are wanted and the rock squares are just tunneled through, to simulate some sort of primitive mining AI-like thing that tries to get the most efficient mining of resources possible whilst getting around the blocks. But eh.
00:53
<@Attilla>
it'd probably be a simulation of dwarves, mining the depths of the world. Probably want to complicate it a bit more (that is, by the way it'd start off as a random walk but change via genetic algorithm over iterations)
00:58 Reivles [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has quit [Quit: CGI:IRC (EOF)]
01:04 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
01:06 AnnoDomini [~farkoff@Nightstar-29342.neoplus.adsl.tpnet.pl] has quit [Quit: Now, I shall divide you... BY ZERO!]
01:10
<@Derakon>
...bahhh, mazegen is going to run into issues with non-90°-aligned walls, I can tell.
01:12 * Derakon eyes http://derakon.dyndns.org/~chriswei/games/jbrl/maze/4.png balefully.
01:13
<@Derakon>
I'm beginning to think that recursive slicing is not the algorithm I want to use here.
01:13
<@Derakon>
I definitely need something that considers the local topography.
01:46
< Thalass>
ah good, it's populated in here now.
01:47
<@ToxicFrog>
Yes.
01:48
< Thalass>
Good sirs, and madams. I seek the knowledge of where a usb mass storage device's settings is kept in ubuntu. I fucked up the other day and changed the mount point of my usb stick via the gui (properties, then volume tab), and now it won't mount because I used a / in the location...
01:48
< Thalass>
and because it won't mount i can't change it back. ;p
01:49
< Thalass>
I'm going to formate the stick anyway, mind you, since there's nothing of value on it.
01:50
< Thalass>
but I want to know where the config file should be ;p
01:50
< Thalass>
for when I fuck up later on
01:51
< Rhamphoryncus>
Normal stuff is in /etc/fstab, but not usb.. dunno where it is
01:53
<@ToxicFrog>
How did you change it the first time?
01:53
< Thalass>
ah yes, no usb there. also: can't format 'cos I can't mount.
01:53 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
01:53
<@ToxicFrog>
And you don't need to mount to format; the command is mkfs.<whatever> /dev/foo
01:53
< Thalass>
I right clicked on the icon, clicked on properties, then went to the volume tab and changed it there.
01:53
< Thalass>
aah see. thinking in gui's again ;p
01:59
<@ToxicFrog>
If you want a GUI, I believe gparted also has a "format as" command :P
01:59
<@ToxicFrog>
(and gparted is generally awesome anyways)
02:00
<@ToxicFrog>
As for the actual problem...
02:01
<@ToxicFrog>
Start the GNOME configuration editor. On my system it's Applications->System->Configuration->GNOME Configuration Editor.
02:02
<@ToxicFrog>
The actual program is gconf-editor.
02:02
<@ToxicFrog>
Go to system->storage->volumes->_org_freedesktop_Hal_devices_volume_uuid_<UUID of the USB stick goes here>
02:02 * Derakon mutters at maze generation algorithms.
02:03
<@ToxicFrog>
Change "mount_point" to something simple, or simply delete system->storage->volumes entirely.
02:03
<@Derakon>
Is it too much to ask for one that assumes that walls are the same thickness as openings? :(
02:04
<@Vornicus>
Your usual mg algorithm should handle that, but then you're constrained to a grid.
02:04
<@Derakon>
I'm confined to a grid anyway, but all of the algorithms I'm seeing (which are grid-based, note) assume that walls have no thickness, AFAICT.
02:04
<@Derakon>
I'm looking at this list: http://www.astrolog.org/labyrnth/algrithm.htm
02:09
<@Vornicus>
Well, okay, /essentially/ that walls have no thickness, but you can increase the thickness by thickening your draw pen.
02:39
< Thalass>
TF you are the awesome
02:41
< Thalass>
though... I was wrong. Everything I put on there is still there. Only, yesterday at work I put it in one of the windows computers, and all that came up were the jpg images, but not the folders or anything else.
02:45 * Vornicus gneegs
03:04 * Thalass plays with gparted
03:05
< Thalass>
I suppose I should format to FAT32, since I'll also be using it on windows machines sometimes.
03:08
< Thalass>
... if it'll let me
03:26
<@ToxicFrog>
It will, but not if it's mounted.
03:28
< Thalass>
ah
03:28
< Thalass>
duh
03:30
< Thalass>
though it didn't ask for information from me like volume label or anything like that as it does in windows. but I can do that with nautilus I guess
03:34
< Thalass>
... it's an empty drive, but it's still too busy for me to rename... even as su
03:38
<@ToxicFrog>
Ummm
03:38
<@ToxicFrog>
That's odd
03:38
<@ToxicFrog>
Or, rather
03:39
<@ToxicFrog>
It makes sense that you can't rename it while it's mounted. It doesn't make sense that gparted didn't prompt you for a filesystem name, I could swear it asked me.
03:39
<@ToxicFrog>
Anyways, if you want to do it by hand:
03:39
<@ToxicFrog>
# mkfs.vfat -F 32 -n name /dev/whatever
03:39
<@ToxicFrog>
(while it's unmounted, of course)
03:40
< Thalass>
ok so "mkfs.vfat -F 32 -n Exocortex /dev/sdb"
03:44
<@ToxicFrog>
Yep
03:44
<@ToxicFrog>
Wait what
03:44
<@ToxicFrog>
No
03:45
<@ToxicFrog>
Are you sure you don't mean /dev/sdb1?
03:45
<@ToxicFrog>
/dev/sdb is the entire disk, and I'm not sure how windows will react to a disk without a partition table.
03:45
< Thalass>
ah
03:46
<@ToxicFrog>
Typically it'll be /dev/sdX1 (the first partition), or /dev/sdX4 if it's partitioned for boot compatibility with old BIOSes.
03:46
< Thalass>
it spat out "mkfs.vfat: will not try to make filesystem on full-disk device '/dev/sdb' (use -I if wanted) so I guess you're right
03:46
<@ToxicFrog>
Aah yes, forgot that mkdosfs has that safety feature
03:46
< Thalass>
heh
03:47
<@ToxicFrog>
It is, I note, a perfectly valid thing to do, and linux handles it just fine; it's just not guaranteed to work on anything else.
03:47
<@ToxicFrog>
Although I'm confident BSD and OSX would also have no trouble.
03:48
< Thalass>
heh
03:48
<@McMartin>
Most OSes assume all USB storage is FAT.
03:48
<@McMartin>
I believe advanced Windows OSes will allow NTFS.
03:49
<@McMartin>
But that will break everything else so nobody does this.
03:49
< Thalass>
heh
03:50
<@McMartin>
... I guess I should say "most *devices* assume this"
03:53
< Thalass>
I wonder if its possible to get a usb to sd converter. that is, to plug a usb mass storage device into an sd card slot.
03:54
<@ToxicFrog>
NT-based windows at least doesn't care; it guesses based on the partition contents and filesystem ID in the partition table.
03:54
< Thalass>
though sd card slots are usually hard soldered into a usb port
03:54
<@ToxicFrog>
NTFS USB disks will work just fine.
04:19 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Ping Timeout]
04:29
<@Derakon>
Vorn: any ideas for having non-2D walls with these algorithms that don't devolve to doing this? http://derakon.dyndns.org/~chriswei/temp2/grid.png
04:34 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
04:34 mode/#code [+o ToxicFrog] by ChanServ
04:36 Thalass [~thalass@Nightstar-24524.dyn.iinet.net.au] has quit [Quit: worktime zomg]
04:37
<@McMartin>
TF: I meant more "If you do that, they won't work in your cell phone again"
04:37
<@Vornicus>
Der: not that I can think of.
04:38
<@Vornicus>
Well... how about this. you could populate your zone with a bunch of little rooms and then use a wall-breaker algorithm to create mazes like that.
04:39
<@Derakon>
I think that's functionally equivalent.
04:39
<@Derakon>
View "drawn square" as "room" and "dash" as "wall of room".
04:40
<@Vornicus>
Right, what I'm saying is /not 1x1 rooms/
04:40
<@Derakon>
Ahh.
04:41
<@Derakon>
2x2 isn't really any better than 1x1, and 3x3 would leave me with too little space to make interesting mazes.
04:41
<@Vornicus>
Go for a variety of sizes.
04:41
<@Vornicus>
anywhere from 1x1 to 1x4 to 3x3
04:42
<@ToxicFrog>
You can also just create 1x1 rooms spaced 1 tile apart and then wallbreak, for a gehennom-style maze.
04:43
<@Derakon>
TF: how is that different from what I described?
04:43
<@Derakon>
"Derakon: View "drawn square" as "room" and "dash" as "wall of room"."
04:43
<@Derakon>
Oh, wait, you're missing the image link. http://derakon.dyndns.org/~chriswei/temp2/grid.png
04:53 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
05:02 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
06:08 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
06:08 mode/#code [+o ToxicFrog] by ChanServ
06:27 Derakon is now known as Derakon[AFK]
06:34
<@Vornicus>
TF: Man, what is with your connection issues?
07:20 Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Quit: ]
07:42 Derakon[AFK] [~Derakon@Nightstar-4920.hsd1.ca.comcast.net] has quit [Operation timed out]
07:48 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
07:48 mode/#code [+o gnolam] by ChanServ
08:10 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
08:49 AnnoDomini [~farkoff@Nightstar-29342.neoplus.adsl.tpnet.pl] has joined #Code
08:50 mode/#code [+o AnnoDomini] by ChanServ
09:49
< EvilDarkLord>
I'm fiddling with LaTeX to make some algorithm pseudocode. Is there some cleaner way to do \textbf{for}? I am pondering making e.g. a \for macro, but since this is my first stab at LaTeX I have no idea what's preferred.
14:11 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
14:12 mode/#code [+o Attilla] by ChanServ
15:03 Syloq [Syloq@Admin.Nightstar.Net] has joined #code
15:04 Syloq is now known as Syloqs-AFH
15:13 Derakon [~Derakon@Nightstar-5066.hsd1.ca.comcast.net] has joined #code
15:13 mode/#code [+o Derakon] by ChanServ
15:15 AnnoDomini [~farkoff@Nightstar-29342.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:15 KBot [AnnoDomini@Nightstar-29587.neoplus.adsl.tpnet.pl] has joined #Code
15:16 KarmaBot [AnnoDomini@Nightstar-29342.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:18 KBot is now known as KarmaBot
15:24 AnnoDomini [~farkoff@Nightstar-29587.neoplus.adsl.tpnet.pl] has joined #Code
15:24 mode/#code [+o AnnoDomini] by ChanServ
15:58 Finale [c0cb88fd@Nightstar-14595.mibbit.com] has joined #code
15:58
< Finale>
xxx: mov year, 0x7D8h
15:59
< Finale>
yyy: call celebrate
16:22 Vornicus [Vornicus@Admin.Nightstar.Net] has joined #code
16:22 mode/#code [+o Vornicus] by ChanServ
16:27 * Derakon eyes http://derakon.dyndns.org/~chriswei/games/jbrl/maze/5.png and wonders how he'd go about making that actually navigable for a morphball-less protagonist.
16:28 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout]
16:30 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
16:30 mode/#code [+o Attilla] by ChanServ
16:41
<@ToxicFrog>
Derakon: cooool.
16:42
<@Derakon>
Heh.
16:42
<@ToxicFrog>
Although it has a certain look, like most of the corridors were generated vertical or horizontal and then the whole thing was just rotated a bit.
16:43
<@Vornicus>
Yeah, there's a strong bias in the large corridors.
16:43
<@Derakon>
Well, the algorithm is required to make every area accessible in the map, and most of the mazes are in tunnels which have one axis longer than the other.
16:43
<@Derakon>
Which lends itself to a natural bias.
16:43
<@Vornicus>
Not the mazes; the large corridors, I think.
16:43
<@Derakon>
But take a look at the top-left; that's an area that "overcame its natural bias".
16:44
<@Derakon>
Oh, I see.
16:44
<@Derakon>
Yeah, that's the "straight" tunnel type at work. It likes to generate offshoots at 90° angles.
16:44
<@Derakon>
This is a small map for testing purposes. A moment.
16:45
<@Derakon>
http://derakon.dyndns.org/~chriswei/games/jbrl/maze/6.png
16:46
<@Derakon>
I suspect I'll need to tweak the tunnel type probabilities, but it should also become less of an issue as I add more types.
16:46
<@Derakon>
Mazes are, currently, way too common, for example.
16:48 * Derakon eyes the maze in the bottom-left corner of that map, which is inescapable due to some deep shafts.
17:11 Ksenia [~Ksenia@91.194.191.ns-22586] has joined #code
17:12 Nolmorn [~Lumren@Nightstar-1328.ns.teleos.ru] has joined #code
17:13 Nastia [~pIRCuser6@91.194.191.ns-22586] has joined #code
17:13
< Ksenia>
Hello everybody
17:13 Nastia [~pIRCuser6@91.194.191.ns-22586] has left #code []
17:14 Nolmorn [~Lumren@Nightstar-1328.ns.teleos.ru] has left #code []
17:16 Ksenia [~Ksenia@91.194.191.ns-22586] has left #code []
17:18 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
17:19 * Derakon eyes that.
17:19
<@Derakon>
D'you think those three people were all the same person?
17:28
<@ToxicFrog>
Yes.
17:41 * Derakon opens up 76 PNGs each about 500KB in size.
17:41
<@Derakon>
Ahh, the fun of debugging issues where your only repro case is on a large map.
18:00
<@Derakon>
"straight" is one of those words that starts looking really weird if you write it too many times.
18:01
< Finale>
hm. nastia and ksenia were from the same address, 2 different connections - one was pIRC. nolmorn was also pIRC, but from a different hostmask - most likely the same address, but no way to tell from my end.
18:02
< Finale>
My opinion is that it was either someone testing bots, someone testing multiple connections for some other reason, or just several people in the same place all connecting at once.
18:02 * Finale shrugs.
18:02 somnolence [~somnolenc@203.160.1.ns-3171] has quit [Client exited]
18:03
<@Derakon>
I think I overdid it a little... http://derakon.dyndns.org/~chriswei/games/jbrl/maze/7.png
18:04 somnolence [~somnolenc@203.160.1.ns-3171] has joined #code
18:04
< Finale>
oh wow.
18:04
< Finale>
albeit, it's a little small for a modern platformer. >_>
18:04
<@ToxicFrog>
Finale: not the same address, but the same block. Differs only in the last few bits.
18:05 somnolence [~somnolenc@203.160.1.ns-3171] has quit [Client exited]
18:05 somnolence [~somnolenc@203.160.1.ns-3171] has joined #code
18:06 * Finale shrugs.
18:06
< Finale>
not like I can see it from here.
18:07
< Finale>
oh, and they were all from Russia.
18:07
< Finale>
Nastia and Ksenia are Russian names, and Nolmorn has a .ru hostmask.
18:09
<@jerith>
whois the 203.160.1.0 network. :-)
18:09
<@Derakon>
"for type, weight in constants.tunnelTypeProgressionWeights[self.parent.type].iteritems()"
18:10 * Derakon sighs.
18:10
<@jerith>
Then look up the .ru domain the other was from.
18:12
< Finale>
that's not the ip whois gave me for them.
18:12
< Finale>
it gave me 91.193.191.ns-22586 for them.
18:13
<@jerith>
Yes, because it's masked out.
18:14
<@jerith>
But IP blocks are usually allocated in bigger blocks than /24
18:14
<@jerith>
In this case, it's a /23 allocation.
18:16
< Finale>
simplest site ever <?php echo"Site under construction";?>
18:17
<@Derakon>
This is simpler: http://derakon.dyndns.org/~chriswei/temp2/foo.html
18:18
<@jerith>
Finale: echo "Site under construction" > foo.html is simpler.
18:18
<@jerith>
You also don't need php for that.
18:19
< Finale>
:P
18:19
<@jerith>
Also, touch foo.html gives you a valid site.
18:22
<@Derakon>
That's what I did.
18:22
<@Derakon>
...well, I had to nuke foo.html first since I'd used it for testing earlier~
18:25
<@Derakon>
This looks more reasonable: http://derakon.dyndns.org/~chriswei/games/jbrl/maze/8.png
18:28
< Finale>
whoa
18:29
< Finale>
what is the half-life of Cesium-137?
18:29
<@Derakon>
Hrm. It is possible, though extremely unlikely, for this algorithm to make incomplete mazes, because I'm enforcing a maximum tallness for vertical passageways.
18:29
<@Derakon>
Wikipedia, Finale. Learn to use it.
18:30
< Finale>
ahahhaa.
18:30
<@Derakon>
I am entirely serious.
18:31
< Finale>
<Danas Darguzas> I would like to request a leave of absence for the duration of the half-life of Cesium-137.
18:35
< Finale>
"Difficult, you say? Difficult is when you have to, not knowing the meaning of the word, figure out the principle of random() from sample calls and their results."
18:46 Derakon [~Derakon@Nightstar-5066.hsd1.ca.comcast.net] has quit [Ping Timeout]
18:50 Derakon [~Derakon@Nightstar-5066.hsd1.ca.comcast.net] has joined #code
18:50 mode/#code [+o Derakon] by ChanServ
19:13 Derakon is now known as Derakon[AFK]
19:58 Derakon[AFK] is now known as Derakoen
19:58 Derakoen is now known as Derakon
20:07 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
21:09 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Connection reset by peer]
21:11 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
21:45 Derakon is now known as Derakon[AFK]
22:39
<@gnolam>
Finale: 30 years? :o
22:42
< Finale>
apparently. :D
22:46 * gnolam played with Cs-137 today.
22:47
<@gnolam>
The guys over at the radiophysics department are a bit... odd.
22:47
<@McMartin>
DEPARTMENT OF IRRADIATION
22:47
<@gnolam>
Actual conversation from today's customer meeting:
22:47
<@gnolam>
"So... why exactly do you have a box of uranium in here?"
22:47
<@gnolam>
"Err... I don't know. Someone donated it..?"
22:49 AnnoDomini [~farkoff@Nightstar-29587.neoplus.adsl.tpnet.pl] has quit [Quit: I am Magellan-R-MGE. I see your group is missing a Hygiene officer.]
23:01
< Finale>
my Physics Lab has a closet. which has a sign, "Radioactive Material Inside".
23:05
<@gnolam>
Interesting. Their radioactive materials storage bore a striking similarity to a common janitor's closet. :)
--- Log closed Thu Mar 26 00:00:50 2009
code logs -> 2009 -> Wed, 25 Mar 2009< code.20090324.log - code.20090326.log >