Archive for July 2003

 
 

Heh

The Economist Style Guide: Break any of these rules sooner than say anything outright barbarous.

Getting CLR to Puke

Heh. I found a way to get CLR to puke with this error message every time I want to:

CLR error message

If I get any better at this I’ll be able to get .NET Framework to die simply by giving it evil looks.

Bug solved

Neno Loje: Juwal Löwy offers a solution to bug #19 in his book Programming .NET Components. Also he offers the sources with his KillThread-Helper on his homepage or direct download.

ListView.Cursor et al

Neno Loje writes:

The ListView.Cursor-Property has no effect / the cursor does not change.

Microsoft has confirmed this to be a bug and it will be fixed in the next version.

There is no known workaround.

I’ve added it as #21 in the .NET Bugs Registry.

They’ll probably “fix” it by adding the attribute to hide it in the designer. Sigh.

Sealed

Some time ago Chris Sells bitched about classes being sealed. I thought his arguments were flawed as the links between components should be interfaces, not classes, but didn’t give it much thought then.

Now Ingo has a nice article on why the .NET ImageList is sealed.

Control.Width and Height Bug

Ben Hadad <ben.hadad at biotronik.com> found the following Windows Forms bug:

Size(.Width/Height) of a control is a System.Int32, but is truncated as though the datum were a System.Int16 (without warning/error). Why do I want a control this large (>32000 pixels)? For a strip chart inside a scrolled panel. Example of the bug is enclosed. Reproducible in both VB and VC# using Visual Studio 2003/.NET 1.1

Ben

Thanks Ben. I’ve added it as #20 in the .NET Bugs Registry.

Thread.Abort Bug

Chihiro Kuraya has e-mailed me about the following critter:

I found .NET bug relating to threads.

This bug is detailed by someone in the following page. http://www.dotnet247.com/247reference/msgs/27/137192.aspx

Summary:

1. A short description of the bug:

Suspended thread cannot be Abort()’ed. If you call Abort(), ThreadStateException ocurrs, but the thread will not stop. Due to this problem, you cannot terminate application itself.

2. Steps to reproduce

See the above page.

3. What happens

Suspended thread never stops.

4. What should happen instead

Any thread must be stopped.

Chihiro Kuraya <kuraya at primal.co.jp>

I’ve added this bug as #19 in the .NET Bugs Registry.

Click the Start Button to Shut Down

Raymond Chen has a nice explanation of how the Start menu came to be.

I never did understand the people that criticized it. It’s the best trade off I’ve seen between used screen space and usability.

Reflection Memory Usage

Suzanne Cook, via e-mail:

“It turns out that pre-2.0, reflection does some grow-only caching, which is what you’re seeing.  Specifics from one of our reflection team members:

“Reflection used to be a grow-only cache.  Also, notice that the moment you are going to enumerate methods that is when the cache is growing. Invocation has very little to do with the cache and in many situations invocation has no effect whatsoever with the cache. I would expect the growth in your app to come from the hashtable reflection is building to map names to methods. Those tables are normally bound to the AppDomain they were requested from (with the possible exception of domain neutral assemblies) so they should go away once the AppDomain is unloaded. “

Best. Map. Ever.

Map screen shotI tend to judge first person shooter games mostly by their maps. While I respect the work that people like John Carmack or Tim Sweeney put into developing the game engines, the thing that breaks or makes a game for me is the maps.

A buddy of mine has showed me an Unreal Tournament map called DM-Crane. The map consists of a partially constructed building with two cranes on each side. It strikes a perfect balance between open and partially closed spaces and is just damn awesome.

Too bad I have kids to feed. I could play this all day long.