Archive for April, 2004

It’s Never too Late to Fix Bugs

Time once again to mention my dirty little secret… yes, I’m a Visual Basic programmer. Of course, I also do alot of Perl, and I’ve done my share of Java, but much of the software I’ve written in the past 10 years has been VB, starting with VB3.0 (I did play with VB 1.0, but not for work). My current major project at work is mostly implemented in VB6.0 (service pack 5) because of the requirement to interact with the Excel and Word application binaries.

Why do I bring this up now? Because Microsoft has released Service Pack 6 for Visual Studio, which includes updates for VB6, VC++ 6, and SourceSafe. I took a look at the list of VB bugs addressed by this update, and found a couple that make this upgrade worthwhile for me.

Knowledge Base article 297112, “BUG: Visual Basic Compiler Pads Embedded Resources to Align on 32-Bit Dword Boundaries”, is an old friend of mine. I have an application that makes use of a number of XSLT stylesheets and W3C Schema Defs (XSD). In order to ease deployment issues I decided to load these documents into the app’s DLL as resources. When I tested this, some documents would work, but others would not. At the time (a couple of years ago), this article was not in the KB (or at least, I was unable to find it. Fortunately, I was able to work out the solution on my own. Every now and then, I forget to check the file sizes when build a maintenance release, and run into the problem again. Nice to see it’s finally being addressed.

The other fixed bug that caught my attention is KB Article 312218, “BUG: Deadlock in Multithreaded Process If You Use Declare Statements for APIs in Visual Basic ActiveX .dll Files or .ocx Files.” The short version is this: VB6-authored DLLs which use the Declare statement to access API functions can deadlock things like IIS and MTX. If you’re using such a DLL under IIS, it’s running under one of these two executables. I don’t know how long this problem has been documented, but it may be the answer to many untraceable, non-reproducable issues I’ve had. The problems occur on a production IIS webserver that uses a custom COM component written in VB6 for mainframe access. I think I’ll be putting a new build into production soon. This one really ticks me off, since it I’ve been having these problems for a long time, and since it affects such core techonologies… the ones Microsoft spent so many years convincing me to use (before .NET came along and changed the rules. Again.)

If you, like me, have any ongoing interaction with VB6 or VC++6, give this service pack a look. If not, well, congratulations.


Nearly two months after its release, I’m finally using Mozilla Firefox 0.8 on my Powerbook. I’ve been using it on my Win2K box at work since the release, but I had issues under OS X.

Since yesterday, two important things have occurred. First, Arvid Axelsson released the Qute theme for Firefox OS X. I don’t care for the new default theme under OS X, and I think it was a mistake to release 0.8 with a new default and without the theme used on other platforms (Qute). One of the big advantages I find in Firefox is that it’s the same on my Mac and on my PC. By not offering the same default themes (at least as choices), its value as a cross-platform browser is diminished. It’s not completely the same as before; the icons are the same but the tabs look different. Hopefully this will improve.

Today, Shimoda Hiroshi (a.k.a. Piro) released an update to his Tabbrower Extentions, which finally lays to rest the last of the OS X/FF0.8/TBE compatibility issues. TBE has become an such an integral part of my browsing experience that I just refuse to work without it.

So far, the ‘Fox seems to working ok. As well as Firebird 0.7 served me for many months, I was really looking forward to this upgrade. 0.7’s performance under OS X was pretty poor at times. Closing a tab or window could at times take 10 seconds or more. Shutting down the whole app could take minutes. I haven’t noticed performance problems so far under 0.8, but it’s early yet. To be fair, some of the issue I had under 0.7 could have been the fault of TBE; Piro says on his site that the TBE can slow browser performance. At any rate, it never got so bad that I’d consider dropping TBE. In addition to the FF upgrade, Piro’s had a number of releases to TBE in the past couple of months, so hopefully I’ll see improved performance across the board.

The Future is Now

In a move calculated to occupy all my free time, and the free time of Blosxom afficianados everywhere, Rael Dornfest today announced the availability of Blosxom 3.0+1i (aka 3.0 alpha). As Rael put it:

It’s been massively refactored, all but rewritten, object-oriented, and usable as a CGI script, module, or indeed subclassed. Oh, and I’m afraid it’s grown a bit, now weighing in at a massive 15K (slightly less, actually) ;-)

Once I’ve had a chance to play with, I’ll post some thoughts.

Tweaking the Robot Tweak

Recently, I updated my Blosxom template to provide <meta name="robots" value="..." /> tags on each of my pages. The idea is to set the value to "index,follow" for permalinks and to "noindex,follow" for all other pages (i.e., index pages) to prevent category and date archives from being returned by search engines.

It has been bothering me for several days that the side affect of this change is that my blog homepage, is now marked noindex. This is particularly an issue for me since I normally use the blog homepage URL when posting on other sites, etc. Tonight a comment to that post from Lou Quillio got me to do some checking. It appears that Google Searches for my name that used to return the blog homepage in the top 10 hits no longer do so.

In order to undo this damage, I decided to serve "index,follow" for the blog homepage as well as for permalinks. In order to make this change, I’ve updated my head.html template:

  <!-- other head stuff like title omitted for brevity -->
    <meta name="robots" content="index,follow" />
    <meta name="robots" content="index,follow" />
    <meta name="robots" content="noindex,follow" />
    <meta name="robots" content="noindex,follow" />

As before, this requires Rael Dornfest’s interpolate_fancy plugin and my own storystate plugin. It’s a bit cumbersome, but it works. Now I just have to wait and see if it fixes my Google juice.

Update: Re-enabling the indexing of seems to have done the trick. It’s once again the number 2 result for “Jason Clark” and the number three hit for “jclark”.

More Spanish Resources

Since my previous post on resources for those studying Spanish, I’ve found a few more. Here are some of my favorites:

  •’s Spanish Dictionary – I mentioned in my last post that had not found an English-to-Spanish online dictionary that I like. I’ve finally found one. It’s the online version of the Collins Consise Spanish Dictionary. In addition to providing English translations for Spanish words and vice versa, it also lists common phrases that use the word with translations. A “See Also” list includes words with similar spellings. Unlike several Spanish dictionaries I’ve tried, searching for a conjugated form of a verb returns the infinitive version of the verb. A definition link provides access to full dictionary definitions in the original language. For a good example, look at this entry for the Spanish verb tener (to have).

  • – Spanish reader Choan C. Gálvez recommended this dictionary site. The interface is primarily in Spanish (which is good and bad). There are a number of nice features here, including verb conjugations. However, after running several lookups, I started getting a screen that seemed to be requiring a login. I couldn’t translate the whole page, but it looks like this is a pay site with limited free searches per day. For comparison, here’s the entry for tener.

  • Mundo Du – “Short stories, surprising tales” is the subtitle of this Spanish language short story site. Choan is a contributing author on this site. This is just the kind of practice I need… it also shows how much I have left to learn.

  • Cuentos de Cien Palabras – Another literary site, the name says it all – “One Hundred Word Stories”. These seem just the right length for someone like me who has to look up every other word. Thanks again to Choan for the pointer.

  • – This is the blog of Diego Martín Lafuente, focusing on technology and design. It’s a great, clean looking site. The level of difficulty is way over my head right now, but the subject matter is right up my alley. I’ve subscribed to the RSS feed, and I’ll continue trying to read it. This find was true serendipity… I stumbled across this while playing around on I was looking at who else had bookmarked articles I had bookmarked, and noticed that one entry had Spanish keywords. Looking through that user’s bookmarks list, I found this blog.