Skip navigation

Monthly Archives: February 2007

Does anyone remember the days before broadband? Today I got a random Connection Reset error on some website, which was quickly fixed by reloading the page. The phrase “connection reset” quickly sparked a path of synapses somewhere, causing me to remember my days with only dialup. You could go with a local service that connected at 56k, but had a download speed of 3.3kb/s (because the ISP cheaped out) or a national service, the most popular of which being AOL. There were other national services, but most didn’t have any decent access numbers for many users. So your choice was lower price and local business, or double the speed, shaky connectivity, evil. Oh, and a huge world of advertising, free to access by proprietary keyword. Bah.

Yes, the times when loading pages almost always took more than 5 seconds (gasp! no no, not again!) instead of the comfortable 2-5 second span we broadband users typically enjoy (nonscientific data-collection methods implied here). A time when downloading any sort of file was a long and ardous process, from the largest (maybe a game demo or media) to the low shelf of around 500kb, which, assuming a (top notch for dialup i might add) transfer rate of 10 kb/s, would take 10 seconds.

Eh, jusht 10 shecondsh?

I won’t get into the plethora of reasons that 10 seconds can be ardous and unhealthy for you (oh, especially around the time that broadband became prominent among other people you knew), but if you took the evil option (that’s AOL, for the snoring), you can also look forward to turning 10 seconds into a continuous gamble. A dramatic horror movie climax, if you will, where the intensity grows as the progress bar stretches toward it’s goal. Quickly, youthful databytes! Race quickly before the road falls apart a(Connection reset.)

…gain.

I’m currently working on a garbage collector written in C# for the SharpOS project. It’s an interesting project as the code must avoid making use of new managed objects to keep track of the old ones. Without managed objects I’m left with two possibilities–deal directly with unmanaged memory space and pointers or I can have the runtime have all objects explicitly implement an interface which includes the size of the GC tracking data in the size to be allocated. So the GC indirectly allocates the resources necessary to track it implicitly. This work is dependent on having a VMM to handle paging, swapping, etc. Chriss said he looked into it and will handle writing it. The GC code I have currently implements all the appropriate System.GC methods/members which are useful.

I’m following a site that lists the basic compacting/generational GC design. I’ll write more as I make the code more capable.

I was rather inspired by the return of Cosmoe today, so I decided to start a window system in C#.. which adds nicely to all the other things being rewritten for C#. It’s more of a back burner project, but maybe one day it’ll show stuff on the screen :). I’ll have more details later as I make them up.

First post by the way!