Tuesday, October 31, 2006

A bug in the Microsoft ReportViewer control

I found a bug in the Microsoft Report Viewer 2005 control. When used in LocalMode in an application that does not have a strongName signature, the reportViewer control saves temporary files to IsolatedStorage folder and does not ever delete the temporary files that it creates. So the result of this is that it takes up a lot of harddrive space, about 240k per page of the report. And when a report has 900 pages, this is a problemo. The problem is solved simply by making sure that your application has a strong name key (see the “signing” tab of project properties).


Nevertheless, this untidy habit of not cleaning up after itself caused me a lot of problems, several customer servers where this application is installed almost ran out of hard drive space because of this bug. Not good!





Friday, October 27, 2006

Joseph's programming tidbit #1 - scope in .NET

No, I'm not talking about mouthwash.

There are five scopes in Visual Basic.NET
  1. Private
  2. Friend
  3. Protected
  4. Public
  5. Protected Friend
An important thing that I learned about scope in the context of inheritance:It is important that the parent class of a child class be public, otherwise the child class won't be able to be instantiated. There is however, an instance when this is Ok. And that is when a class factory method is available to instantiate the class. A factory method is a static method that instantiates members of a separate class.

Another sly nuance exception to scope arrises from nested classes. Private class level variables of a class that is nested within another can be accessed by the parent class. Ah ha! There not so private after all! Kinda like the neighbor who has a view into your living room from theirs. Like my neighbor for example.

Singelton class: A class designed such that only one instance of that class exists at any one time. I typically accomplish this in my code with a DefInstance static method which hold the one instance of the class that I want the rest of the project to access.

Saturday, October 14, 2006

I've started creating an artificially intelligent program.

I've always wanted to create an artificially intelligent software application. So today I have begun this endevor. I have affectionatly named it HAL, after the 2001 Space Odessy HAL.

So far it can answer questions like "What will the weather be today." and "Am I pregnant?"

My goals in building this program are:
  • Create a program that is intelligent. The criteria for success is that my friend Ilijits Bos will judge this program to be intelligent. If he uses it, interacts with it and after using it says "it is intelligent", then I will have achieved this goal. He will determine his criteria for success at his sole discretion. The only caveat is that I can't bribe him to say yes, or drug him or blackmail him into saying yes.
  • learn new programming techniques

In the near future, you will be able to download HAL from Fluckiger.org.

HAL will be written in C# .NET, deployed via click-once, and will run as a low-permissions desktop application (security friendly) and will access a knowledge database via webservices.