Non-partisan software developer

Friday, August 18, 2006

The New Desktop Wars... (part 2)

I blogged earlier about Novell and the new desktop wars. I've been playing with Mac OS X and love it. Leopard is coming out and it looks like it's taking user interface concepts further with Time Machine, which makes backup intuitive to a user. If I need an old version of a file I just enter the time machine and locate it by flipping through snapshots of my application (iPhoto) or my folder. Wow...so simple but it works.

Miguel blogged about people that think wobbly windows are just eye candy...they would be wrong. Sure it looks great but it's more about "feeling great." It's about user experience. Somehow I just feel better when my windows have some physical properties to them, it makes the computing experience feel more real-life.

I've used Ubuntu and SLED with XGL enabled and I do miss my wobbly windows and virtual desktops that spins on a cube. Hopefully Apple starts building in things like this into their OS.

And well Windows XP just isn't enjoyable at all but it's so old....I'm sure Vista will be better.

Honestly of the three next gen desktops I think an XGL enabled Linux distro is in front in this area.

Saturday, August 12, 2006

Displaying a Log4Net log file on an ASP.NET website

I wrote a simple web page to display the log file in a textarea from a data synchronization application that logged all it's juicy details to a Rolling log file.

I fired up the page to see my creation and it worked... until the sync service was fired up and started writing to the log file. After that the blasted page just threw a IO exception at me--another process has an exclusive lock on the file and I can't READ it! Turns out it's the default locking mode for FileAppenders but you can configure whatever you are comfortable with.

<appender name=\"RollingFile\" type=\"log4net.Appender.RollingFileAppender\">
<layout type=\"log4net.Layout.PatternLayout\">
<conversionPattern value=\"%d [%t] %-5p %c{1} - %m%n\" />
</layout>
<file value=\"Application.log\" />
<appendToFile value=\"true\" />
<maximumFileSize value=\"500KB\" />
<maxSizeRollBackups value=\"5\" />
<lockingModel type=\"log4net.Appender.FileAppender+MinimalLock\" />
</appender>

The element configures the Appender to use a MinimalLock which only will acquire a lock while it's writing. It appears that it also uses FileShare.Read which will not lock others from just reading it.

It's amazing that this information was so hard to come by, or maybe I was just having a bad google day. At anyrate I thought I'd be a good netcitizen and blog about it so hopeful some poor sap can find this and speed up the troubleshooting--even if that poor sap is me :P

Open Source Graphing Library!

Yea! I learned from Joe Audette on the Mono list about Zed Graph.

I have been looking for a long time for a good C# graphing library that was open source so it could be used on leaner budget projects and just because I don't believe much in paying for SDK and APIs--I have had too many problems with proprietary SDKs and developer APIs that just don't work and their vendors don't support them (e.g. fix or listen to customers) once they have your money. For some reason community based efforts are much better at this. And if they don't listen you can fix it yourself! Sorry, I'll get off my soap box now.

http://www.zedgraph.org

ZedGraph can be used in Web / and Client applications. This looks promising.