Some posts in the Borland newsgroups have got me thinking about what a professional programmer's responsibility is when a bug occurs in code that is not theirs. The result is this list of guidelines and principles. The main thrust of this list assumes that a programmer is a technical person by nature. They do not need to be coddled and led by the hand.
- Most bugs that are perceived to be bugs in a vendor's codebase, are usually not the vendor's fault. The first Maxim of Debugging is: The bug is most likely in your code.
- Make the effort to work with the vendor of the bug to provide a clear, minimized, reproducible test case that demonstrates the bug. Expecting the vendor to fix a bug that they don't know about is just silly. If the bug is important to you, report it in a thorough manner.
- If the bug is a true show-stopper (a term that is much over-used, in my opinion), then find a work-around. There are always other ways to express what a program should do. Rarely is a bug so serious that you can - in good faith - throw your hands up in the air and claim defeat. A professional programmer looks at this as an opportunity to distinguish themselves. If you code the work-around in a non-intrusive way, you can remove it easily when the vendor does fix the problem.
- If you have source code for the library, debug it. It will help you understand exactly what the bug is, and hopefully, help you down the road by preventing you from making the same mistake. This can also help in bug reporting and finding a work around.
- If you don't have source code, you can still make assumptions about what part of the black box isn't working and write a test case to prove that. If your assumptions are wrong, modify the test case.
While bugs are an inevitable fact of life, it's how you deal with them that truly defines what kind of programmer you are. Everyone has deadlines, but taking time out of your schedule to work with your vendors to resolve problems is part of your responsibility as a professional programmer.
I've been playing with ObjectSpaces (OS) lately. I like the idea and the implementation is pretty good. The main limitations I see are:
- For the foreseeable future, it will only talk to MSSQL (and it's various flavors). If they're writing an Object Persistence Framework (OPF), shouldn't someone have mentioned that they should probably abstract out the DB-specific stuff? I understand this is 1.0, but please, that is so limiting that it almost makes OS unusable. Do I really want to have DB lock-in to MSSQL? I don't think so.
- It is tied to Whidbey. With the delay shipping Whidbey, this means that we won't see a production-capable version of ObjectSpaces until Q1 of 2005! That is a long time to wait to get OPF. Microsoft should find a way to unbundle certain pieces of the PDC preview - such as ASP.NET 2.0 and OS - and deliver them on a schedule that is independent of an IDE release.
At any rate, here is some good material to help get up to speed on OS:
I plan on writing some articles detailing my experiences (good and bad!) with OS, discuss alternative OPFs, including ECO (available in C#Builder and Delphi 8), and flesh out some best practices when using this kind of technology.
Here is another open source project worth checking out. If you want to do some VNC development using Delphi, check this project out.
MidEss is still alive and kicking. Not much has happened with it lately, but that's due to it being rather stable. Be sure to leave a comment here or on SourceForge if you have bugs and/or features that you want to see incroporated into this project.
Also, in case you didn't know, SourceForge has RSS feeds for each project. For example, to subscribe to an RSS feed of MidEss releases, click here. Check out all of the RSS feeds out for MidEss.
This is a rather good overview of different traits that developers possess as they go through the levels of proficiency.
The first paper on BDP is up on my web site. This paper talks about what you need to do to get your custom BDP provider to work with the Borland DataExplorer. I plan on adding more content to this area ASAP.
I hate being required to do anything. Being required to be connected to the Internet to have an application work is especially ugly to me. To that end, I downloaded w.bloggar. It is a freeware application that allows you to enter your blogs in a Windows application and publish the entries to your blog server. It has worked rather well so far. However, in order to get this to work with .Text, you need to take a look at this. I had to make sure that the content handlers were working properly (I used the wrong web.config file) and that I could log in properly (I had the wrong value for the blog_config.Flag column). After that, the directions in the link are all you should need to get going. Be sure to add the Categories that you want in the .Text web interface too, as I couldn't find a way to add categories from w.bloggar.
I also took a brief look at BlogJet. It appears to be poised to be better than w.bloggar in many ways. The GUI is crisper. It supports .Text out of the box. However, I'm a bit concerned about the pre-beta status and having it time expire on March 15, 2004. They're also going to make it shareware as opposed to freeware. I'm OK with buying shareware, but it better add value over freeware apps then. w.bloggar will suffice for now.
Lastly, I did some digging on RSS aggregators. In my mind, FeedDemon stood head and shoulders above the rest. Plus, Nick Bradbury is a Delphi guy who writes amazing software (see HomeSite).
OK, so maybe I'm a little late to this party. But better late than never! I'll use this blog to capture and record things that I find interesting, post workarounds and tips on things that bother me, and launch into an occasional diatribe or two along the way. Feel free to email me, and if I get time, I'll get back to you!
I'm using version 0.95 of .Text as my blog engine. It looked like the best of the bunch from my fairly brief look into products in that space. It's OpenSource and uses ASP.NET and C#.
The author, Scott Watermasysk has a pretty good blog and some info on installing and using .Text. The main technical issues that I had installing .Text were:
- Follow the Installation Walk Through
- For more guidance for installing, read this.
- You need to grab the right web.config template depending on your setup. For example, if you use a virtual directory for a single blog, use Configs\Single2_Web.config as your base web.config file
- I needed to get my ISP host to add a virtual directory for me
- After going through the install, insert a record into the blog_config table. For example:
insert into blog_config
(username, password, email, title, subtitle, skin, author, application, host, timezone, lastupdated, flag)
values
('admin', 'admin', 'your@email.com', 'Title', 'Subtitle', 'simple', 'Your Name', 'VirtualDirectoryName', 'distribucon.com', getdate(), 5)
Note that Flag = 5. This is needed as the Flag field is a bit field that controls how .Text will work. If you only had Flag=1, then you would get a 'User does not exist' error message if you tried to login from another source
|