Almost everyone I know complains about the performance of their computer when an anti-virus (A/V) product has installed, and thinks they need more memory or a faster processor. Wrong! You need to get a faster hard disk, or disable scanning of certain files.
You’ll see from Task Manager that memory and other resources are plentiful on a modern computer, but page faults and other disk I/O (hidden by default) are occurring at very high levels. Disk I/O is still slow on modern computers and you’ll get better performance gains from improving this aspect.
Most A/V software has settings that let you control:
- Scanning inside archives like .zip files. Only files downloaded from the Internet or via other media are major threats. Consider tweaking these settings to avoid scanning too deeply into archives, or only scan in risky locations (external drives or downloads folder).
- Directories that excluded from automatic scanning. Real-time protection is valuable for certain users, but there may be files that a user must access very frequently. These include databases or virtual machines. Consider disabling real-time scanning of these files/folders.
Making changes to these settings will benefit performance, and security can still be maintained to a very high level. You are running Windows under a normal user account, aren’t you?
Microsoft and many other technology companies manage their certification programmes through Prometric. I was registering for an exam today and noticed that they ask you to ‘commit registration’ as opposed to just registering.
Little things like this really annoy me, I’m sure that some developer thought this was cool.
Last year I had the opportunity to attend the first RailsConf and had a great time. This year it’s back with a much bigger venue and support from O’Reilly. Alas the timing is not so good as I’ll be helping the folks at Savoy prepare for HMS Pinafore, but I’ll be able to tune into many podcasts and whatnot. If you are thinking of attending and can’t make up your mind I would thoroughly recommend attending RailsConf 2007. It’ll give you a great opportunity to network with a great bunch of people who are highly skilled, yet open to newbies.
The second half of the year is open for conferences and the like so maybe OSCON would be fun. Microsoft are running their PDC, but I’m not sure I’d get as much from that as I have done previously. I’ll have to have a think about it…
Rod Paddock recently posted on his experiences with WPF. Something that jumped out at me was his criticism of Microsoft for omitting a Datagrid control, although a basic grid control is included. The lack of a traditional Datagrid doesn’t bother me too much, but I can see how it might impact a lot of developers. WPF is at least six months from release so it’s likely a third-party will fill this gap, if Microsoft aren’t pressured into writing one.
In case you don’t know, the data grid is a UI control for Web and Windows development included with every release of .NET so far. It’s a staple for UI control vendors and has been replicated in many other development environments. At a base level it displays data in a tabular format. However most incorporate in-place editing and control hosting features.
Perhaps the lack of this control in WPF is a blessing in disguise since developers might stop to think for once. From my experience the data grid control is:
- Often misused by developers
- Too heavyweight on the client
- Complex for the developer to implement and maintain
Misuse is the biggest concern for me. Time after time I see projects where a developer has slapped on a grid as the UI, without concern for the end user. I refer you to the hideous multi-coloured grids with full editing enabled that litter business applications today. Vista is supposed to make us re-think the user interface to some degree - should we carry forward some of the rubbish that is produced today in the name of software UI design?
As an aside, I’m a big fan of FogBugz and it includes a grid UI for listing cases. However, it also includes a list view, which must be popular with some end users for FogCreek to include this functionality.
Onto point two which is only valid when you really care about your users (most line of business developers need not apply!). Grids are heavy on the client if thought is not put into their operation in production. I’m all for avoiding premature optimisation, but avoiding optimisation altogether is something else entirely. Costs for grids on Windows include the memory for the control and data. On the Web you often produce a lot of HTML tables and other junk which has to be delivered to the browser. If ASP.NET is used there is also likely to be superfluous viewstate information. As you cram more features in you are penalised for each one unless you can selectively control their use.
My final point, number three, relates to the complexity that you heap upon yourself as you strive to make your application more complex for end users. Why try to combine editing, deletion and creation of records into one screen? It’s often a false economy on behalf of the developer that all of this can be rolled into a single application form. If I had a penny for the number of a reasonable developer struggles with getting access to the value cell in an ASP.NET Datagrid, I would be very rich.
Getting back to WPF and Vista, I think that developers like Rod need to start looking at how they visualise information. Until now, .NET programming has been about ramping up productivity on the parts of an application a user shouldn’t experience directly. With WPF it’s about how the user interacts with the application, and this requires the attention to user experience that Web applications have had for years. If the current generation of developers don’t wise up and appreciate the implications of this technology they will deservedly end up on the scrap heap.
Unlike the Apache HTTP server, Microsoft’s IIS currently doesn’t have a built-in extension offering support for URL rewriting and ‘proxying’ of server requests. This means that you have to hack up some code to manually process URLs with ASP.NET or implement a nasty 404 handler in classic ASP.
Recently, I needed to centralise a number of services under a single domain name on one of my machines. Normally, an Apache user would use mod_rewrite to proxy requests through to another machine. I wanted to do this on IIS so I evaluated a number of ISAPI filters which purport to offer similar functionality. The candidates were ISAPI Rewrite, IISRewrite and OpUrl. After some spelunking in my Win2K3 virtual machine I decided to purchase an ISAPI Rewrite license. It fairly cheap and questions posted to the support forum are answered promptly.
I posted some setup instructions for proxying requests to a Kerio webmail server on their forums.