Deleting forum posts?

Let's say you are selling a product and you have a support forum where your (potential) users can ask questions, give suggestions, etc. - the usual stuff support forums does.

So, what do you do when unpleasant questions pop up? IMO one shouldn't delete them. However, some companies don't think so. Unpleasant questions - no problem, just remove them from the forum. Or even worse, when the support is really in trouble - just remove the entire forum and voila, no problems shown. Unnecessary to say that I detest such actions. Such actions also may suggest that there are other problems with the product and calls for caution.

So you are wondering why I am blogging about this. Because it happens here and there. Recently I looked at MaxiVista software for utilizing my laptop as a 3rd monitor. While it works it has some annoyances – one of them, asked by many users, should be really easy to fix but for some obscure reason it isn’t. Anyway, one day I saw a post in the forum asking whether MaxiVista will run on 64bit Windows one day (it doesn’t right now). The answer was something like: “no, we are working on Windows Vista support instead”. Ok, this is their strategy. The strange thing is that the topic was locked so no further comments could be posted. Even more bizarre was the description of the forum: “MaxiVista is for YOU, so please let us know what you would like to see in the next version. We carefully listen.”. They might be listen but what for, since no one can post anymore? So I asked about why the topic is locked and expressed my opinion that 64bit support should happen before Windows Vista support since 64bit CPUs are becoming maninstream and Vista is futher down the road. After the response “read previous thread” and my another opinion on the matter the whole topic just disappeared into the void. And I thought that they are listening to (potential) users. After that I posted the question about where did my topic disappear. Needless to say that this post soon disappeared, too.

What should one think of such behavior? It certainly doesn’t fill you with confidence…

 I won't even write about the other product I have pleasure to met. It was a fine product (again with some bugs here and there) but the support forum was a disaster so they just removed the entire forum to "fix the product"

Where has strong typed dataset's XSD gone?

If you use an earlier version than Visual Studio 2005 (who doesn't?) it is easy to change or view XSD that defines a strong typed dataset: you have to open a strong typed dataset and then, at the left bottom of the window, you have two buttons: DataSet and XML.

DataSet & XML option

So, going to xml view was just a matter of clicking XML button. Now, there are no options anymore in Visual Studio 2005. How do you go to XML view? It is not that difficult after all - right click on xsd file in Solution Explorer, pick Open With ... and then XML editor. I wonder why there aren't those two buttons anymore. Btw, one of the reasons that you have to edit strong typed dataset's XSD is connection string removal - Visual Studio 2005 embeds connection string into XSD if the table was build by dragging a table from Server Explorer. Usually you don't want to carry the original connection string - it doesn't make sense in team development and deployment scenario. So, you have to delete the connection right out of XSD manually (you'll find <Connections> node at the very top of the XSD).

Deploy multiple .net assemblies as a single file with ILMerge

Ever wanted to merge all .net assemblies (or just some of them) into a single file? Don't look further, MS has a free ILMerge tool available for download here.
Brief description from download page: "ILMerge is a utility that can be used to merge multiple .NET assemblies into a single assembly"

I have tried it some time ago, for fun, and it looks just fine.

GOLD is good

I am not talking about gold but about GOLD - A Free, Multi-Programming Language, Parser. Recently I had a need to implement a text box that allows entering either a string|int|date or a list of string|int|date divided by char '|' meaning OR. The obvious solution is to create a proper grammar to parse the input. But how? There are plenty of parsers out there but all of them I saw are difficult or complex or both. IOW overkill for such a simple grammar and I really wasn't in mood to dig into them. Luckily I've came across GOLD which seemed powerful and easy enough to do the job.After a day I am already bulding my grammars and appropriate code to handle them which I consider a pretty good result.

Change in nullables implementation

Acording to this post Microsoft has decided to change the nullable types implementation for the August CTP. This is a bold move (and also a good one) being so late in development cycle. Anyway, now you can compare a boxed nullable type against null value and the result is the one you would expect. The not so obvious benefit is also support for data binding against controls that didn't support nullable types so far.

How to deserialize a Dictionary&lt;TKey, TValue&gt; descendant using binary formatter

I just run across the problem of how to deserialize a Dictionary<TKey, TValue> descendant using BinaryFormatter. Serialization is not a problem, just mark the derived class with [Serializable] attribute and there you go. However, when you try deserializing it an exception is rised saying that there is no appropriate constructor for Dictionary<TKey, TValue> even if a parameterless constructor exists (which is usually enough). The trick is that you have to implement a constructor with (SerializationInfo si, StreamingContext sc) parameters (in simple case it has just to call base class' constructor). The reason for this is, that Dictionary class uses custom serialization via ISerializable interface.

OziExplorer's map-&gt; GPSTuner's gmi converter

These days I am evaluating GPSTuner PocketPC application. It displays your position on a map based on GPS input (and of course it has many more features besides this). The maps are basically normal bitmaps with calibration info added in a separate file with an .gmi extension. The thing is that there aren't many calibrated maps out there for GPSTuner. OTOH there are plenty of calibrated maps for OziExplorer, a similar application. On the bright side, the calibration file is easily converted from one to the another format. Thus I've created a simple conversion application that convert's OziExplorer's map to GPSTuner's gmi format. I've tested it on OziExplorer's 2.1 and 2.2 calibration format. You can find the converter application here.

NDoc is another fine utility

I have been using NDoc here and there for quite some time and I recommend it as a very cool utility for generating documentation out of your code comments. Generation of great looking help file is a matter of settings few properties, clicking on Build Documentation button, and few minutes.