Sunday, December 28, 2003

XP seems to be all the buzz with me lately, doesn't it? Another fad that's soon to fade, (un?)fortunately.

The Mac dockbar is a nice little piece of eye-candy, and it's understandable to emulate the Aqua interface on XP. A few options exist - YzDock has apparently been shutdown by Apple, but you can still download it (there are also numerous docklets here). MobyDock is a promising program that's in development, although it crashed on me whenever I tried to remove items from the dockbar. Finally, there is ObjectDock, which I haven't used yet, primarily because of bad experiences I've had with WindowBlinds a few years ago. I guess I'm living proof of the scars bad software can create.

Actually, I don't remember WindowBlinds being bad at all; in fact, I don't remember it being anything- it just was. Come to think of it, I don't even remember installing it. So there you have it - I've got bad experiences with software I'm not sure I installed a few years ago.

"I'm sorry, our session is over"...
While Windows XP's default themes are pretty good, they are of course, a little limited - seeing as how there are only three of them. XP does have a theme format, allowing for user-created themes; however, by default, XP only recognizes themes made by Microsoft (which is a bit constrictive). However, the free PatchXP modifies the uxtheme.dll file on your system, allowing you to download any use any user-made theme. (Of course, a fair few user-made themes are much worse compared to the default MS ones!)

Friday, December 26, 2003

A nice set of Windows XP style icons can be found here.
While playing around with Window forms, I was disappointed to discover that there was no inbuilt mechanism for using Windows XP visual styles for controls - only the title bar appears XP style without any work needed. The actual process of using visual styles, however, is not that complicated.

What is needed is a manifest file placed in the bin directory of your project. The filename should be of the form ApplicationName.exe.manifest where ApplicationName is the name of your application. The actual contents of the manifest file should be like this:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="ApplicationName"
type="win32"
/>
<description>A nice program that behaves properly</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>


You can change the "name" attribute to the name of the program.

Finally, some controls have a FlatStyle property; for these controls, this needs to be set to "System".

Recompile and watch the glory of XP visual styles. Unless you're not running XP. In which case you're a very silly person.

Friday, December 12, 2003

My program has unfortunately come to a screeching halt..connecting to a website in .Net is pretty simple, but unfortunately the darn thing is throwing WebExceptions like nobody's business. The problem comes about when trying to create a HttpWebRequest to the All Music Guide site; it insists that the connection is unexpectedly closed. Not good.

I've posted my problem on three sites, but don't have any responses yet! Sometimes it makes you realize how alone you are on the net or something.

I've started driving lessons (at last), and so have been paralyzed with fear for the most part of the day. I'm looking forward to looking back (hmm nice juxtaposition) on these early days and laughing. That is, of course, assuming I haven't crashed the car by then.

Monday, December 08, 2003

A blog on my birthday was avoided perhaps a bit deliberately, in order to skip the inevitable reflection and retrospection, and the bold prophetic view of the future. Although, having said that, I don't think there's anything particularly wrong with any of those things. It's just the way I feel at this instant in time, that those things are..hmm I can't explain what, but they're something.

The music catalogue program has grown to a decent stage now, where it can query the AMG site and get information about albums and artists. I'm rather happy with the whole thing as it stands, which I suppose bodes well for any future projects in C#.

Friday, December 05, 2003

Although it has been clear for a long time that the internet is a medium so powerful that it is simply bound to become all-pervasive in software, I have remained unusually aloof in terms of web-related development. Perhaps it was the lack of standardized networking libraries in C++, or perhaps just a belief that it was all irrelevant. Hmm.

Thursday, December 04, 2003

Actually, to be fair, GUI design with Window Forms really ought to be compared with the use of an IDE for GUI design in C++/Java, and this is something that I have limited experience with.

Tuesday, December 02, 2003

At around 12 pm today, I was taking a much-deserved break from Baldur's Gate, and was browsing the net for ways to create a music catalogue in Access. I had tried coming up with a solution in Access, but I realized that I don't quite know enough about databases to make a thorough solution. Instead of finding something related to Access, I stumbled across a demo for a piece of stand-alone software for cataloguing music.

And then it hit me.

I could try to make a program like this!

I don't know why I found this experience so profoundly exhiliarting, but ever since I've been really excited; it's that lovely infectious excitement you get whenever you start out on something you want to do.

I decided to finally do something serious with C#, and so I'm going to try to use it to make the program. So far, my experience with C# has revealed some really nice features. For instance:


  • Properties At first I found them a bit odd, but now I am quite struck by them

  • Window Forms Oh yes! By far the best way to design GUIs that I've seen. I shudder thinking of the hours wasted in C++ and Java where I manually made my GUIs..

  • Operator overloading Yeah, yeah, it's in C++, but it's a relief using == once again with string comparisons after 4 months of Java