Monthly Archives: December 2004

Journalism: Give me your opinion, not the news.

I was reading this entry on the Weblogg-ed blog by Will Richardson. I’ve started to believe that RSS aggregation technology is the closest we have come to a data mining technology accessible to the common man. Not only that, but it solves the filtering challenges associated with agent technologies because it builds upon easy to establish one way relationships between bloggers and their subscribers (note that it can be two way, but not necessarily).

When I was at university I did a few introductory journalism subjects, primarily focusing on journalism in print. On the whole I found that it was a very emotionless practice although you could employ emotional devices to make an impact – but there was definately a shortage of opinion (in good examples).

Is this changing? Will the new face of journalism be much more personal, will there be much more opinion. I hope so. If Kerry Packer’s minions started blogging would that constitute a violation of Australia’s cross media ownership regulations?

Introducing Fergus, our new cat.

Nicola and I decided now was the right time to get a pet. Nic is fond of cats and if you can get them young enough they can be trained to be good with kids. Anyway, on Friday Nic called me while my students were having a break and told me that he had a new addition to the household.

This is fergus exploring the house. He is on top of the box that we cut a hole in so that he could go inside and escape from the marauding toddlers that both infest and visit our house.

Fergus exploring, he is almost as hairy as my leg.

Of course, a big part of having a pet is to teach your kids to love animals and be gentle. Bella is pretty good, although she does squeel when excited which would be enough to scare anyone. When she isn’t squeeling, she and Fergus seem to get along fine.

Fergus getting some quality nap time with Bella.

You can only sleep with the humans for so long before you have to take a real nap. Here is Fergus in his box with his various blankets and toys. Bella donated her teddy bear to her younger sibling.

Fergus having a break in his box with his blanky.

Well, thats all the photos for now.

IIS 7.0 Hosting Proof of Concept

Last week I posted up some thoughts on IIS 7.0. The “big thought” was that application developers should be able to drag a component into their applications and automagically be able to host IIS in-process to provide management interfaces for head-less systems without the deployment headaches associated with IIS (which might get better with IIS 7.0 anyway).

Well, within a few hours Christian Weyer commented that I should just leverage the HttpListener class in Whidbey for this purpose. That was a great idea and I decided to tackle it this afternoon, although hooking HttpListener into the ASP.NET hosting infrastructure was too much like hard work for a lazy Sunday afternoon so I went hunting for the updated Cassini implementation that the ASP.NET team used in Whidbey to support web-development.

The result is this VERY CRUDE proof of concept which contains a component that you can drag onto a design surface – set a few properties and then call Start(). It just uses the Server class out of the WebDev.WebHost.dll file that ships with Whidbey (so its definately not production strength stuff – do not deploy).

So – for the ASP.NET and IIS team members out there listening, this is the kind of hosting support I am talking about – drag and drop. IIS shouldn’t need to be installed on the machine to support it either. In addition to that – the component should have events which can be hooked to enable the host application to interact with the requests and provide contextual information (especially useful for management tools).

William Luu on G’day World.

William Luu got on the G’day World podcast. Some of the comments suggested that Cameron and Mick should pre-screen their calls. That would be fair criticism except that I know these guys operate in the PM hours (don’t go by the times they post to their feed :P). I’m dreading what I sounded like at around 10PM that night, I couldn’t have been to coherent if I made posts like this.

Singularity: Microsoft Research

Microsoft is doing some interesting research in the OS space looking at how they could build a managed operating system to live up to users demands.

OS research is ready for a revolution. Modern systems are bound by abstractions largely defined in the early 1970s. OS research has not kept pace with changes in application composition or security needs of everyday usage scenarios. To a lesser degree, OS research has not exploited the exponential evolution of hardware exemplified by Moore’s Law. For example, operating systems are largely ignorant of the proliferation of processing cores beyond the CPU.”

Obviously these are long range plans but it is necessary research. I’d definitely love to be a fly on the wall for a few of the discussions happening in those corridors.

Equals Nothing – or throwing salt over your shoulder.

Wally writes about the practice of Disposing objects and then setting them to null/Nothing. Now in general the second step is redundant because while it does (or can, depending on other references) make the object eligible for collection, you never know when that collection is going to occur. In most cases the code is written such that the variable is well out of scope by time the next collection occurs.

So it is kind of like throwing salt over your shoulder before you put some into the pasta in the kitchen.

Having said that there are instances where setting objects to null is a good practice. The first one is nulling out fields that have objects that are no longer in use and probably won’t be in the future. This makes them collectable.

Inside the scope of a method with locals, the case is so much weaker. If you can predictably rely on allocating enough objects to force a garbage collection then setting locals to null that are no longer in use would mean they get collected. But if you are allocating that many objects freeing up one isn’t likely to make a huge difference, and if you needed it to be freed up then you would have implemented the IDisposable pattern anyway – right? Right.

One myth is that you should still set RCW’s to null. This isn’t true either, if you want to release them early call Dispose (if they have it), if not, consider using Marshal.ReleaseComObject(…).

Keep in mind that this won’t necessarily release the COM object because there might be other references to it – but if you called it repeatedly you could unravel the ref-count and force it out (dubious practice warning). In general its the job of the allocator to release the resources that they allocate.