Testing, testing…

Blog (the Delphi program) can get to Caffeinated Bliss and publish a blog to it. Took a bit of poking around to get the settings right, but it can be done. This is good. Now I know what settings I’ll need to put in Chronicle’s Site object, the next piece of the puzzle. Paul says the publishing part will be easy.

CQHost has stats that look a lot like Webalizer, which is a very good thing. I hadn’t realised Webalizer was free, GPL’d code though.

Open Source and Free Software licenses are complex beasts. I lean more towards Open Source than Free Software, mainly because it seems to work commercially, which is the acid test in my opinion.

If you know someone’s going to be looking at your code, you write it differently to some program only you will see. When the source to a popular game (it could have been Descent) was released, someone went through and counted all the profanities in the code, and there were several. The first serious programs I wrote in a real language (FORTRAN 77 does not count) were example and teaching programs to show others how to do Visual Basic database operations. I soon repented of using variable names like womble and hexagon and began using more useful ones, like SiteConfig and lblAbout. All it took was a few months wading through someone else’s spaghetti code in a program aptly named Erratic. I try to write my code for the poor soul who’s going to have to sit down and work through it in six months time with no documentation.

Debug

Deleting entries is harder than it looks. Definitely need to have an “Are you sure you want to permanently delete this entry” dialog. I’m nearly ready to do the Alpha release on SourceForge, Chronicle version 0.2. Everything’s still bare metal, you can’t change the config and theme files except by manually editing them, but it works.

34 source files, 6 sub packages, 29 support files. VB projects never got this big, but they did require about 3MB of support DLLs. The smallest program needed 4 install floppy disks.

Investigative debugging is so much easier when you can use an Integrated Development Environment (IDE) and step through each statement in turn, noting what each variable is at that moment. Unless you’ve got something like Visual Cafe you have to litter the code with System.out.println statements.

Bizarre. Adding two lines of code AFTER the line that was failing fixed the problem. That doesn’t feel logical to me.

Chronicle’s Alpha release, titled Winter, is up on SourceForge. Someone is monitoring the binary files release package, someone’s interested! And I’ve emailed the guy in Cuba to let him know it’s ready for use too. He only wanted a diary, so this release is all he needs. Next thing to do is the publishing. Changing the settings with a pretty GUI can wait until after it’s functional as a blog program. Paul wants it to publish indexed by titles instead of dates. I guess a macro would do that.

There were 45 downloads of Chronicle’s v0.11 binary release, 28 of its v0.11 source release. They weren’t all me and Paul testing. Someone out there is watching.

A lot of projects on SourceForge never get around to releasing any files. I just jumped a major hurdle and hit the Alpha stage, after going through Planning and Pre-Alpha. Pre-Alpha is basically “install at your own risk,” because it may or may not work/delete stuff at random/kill your computer. Alpha code is shaky but definitely taking getting there, like a Microsoft version 1.0 product. Beta One is the next major landmark, commercial software companies sometimes release them for testing. Then it’s downhill to Beta Two, then Gold Code, or Production/Stable, the big version 1.0 release. “Gold code” is named after the recordable gold master CDs that were given to the duplication company for the shrinkwrap version. Recordable CDs now are a delicate sea green colour on silver.

Roadmap

Why do they call it a development roadmap, when calling it a feature list would be more accurate? Map sounds more adventurous, you see Terra Incognita and “Here Be Dragons” on maps. Chronicle now has a roadmap, going from version 0.2 (add, update, save and delete entries only) to version 1.0 (config admin, theme admin, site admin, macro admin, installer, invocation script and documentation, an hopefully free of bugs).

The St. Louis Rams football team is going to the 36th Superbowl, after winning the 34th in 2000. The score wasn’t as dramatic as last week, but a win is a win, 29 to the Philadelphia Eagles 24.

Our domain is now registered and live. Caffeinatedbliss.com belongs to us. And I am doing a site redesign for the new address.

Still reading the caffeine book. Tea cannot be traced back any further than China, but it didn’t originate there the same way coffee didn’t originate in the Middle East. Strange to not know completely something that is so well integrated into our lives and culture. It must be very difficult to study caffeine when almost everyone is a little bit addicted to it. It’s even in some headache pills.

Scientific American has an article this month about TV addiction, and defined a heavy “user” as someone who watches 4 hours a day, and a light user as someone who watches two or less. I don’t have four hours a day to spend sat in front of the TV. There’s books I haven’t read yet, jewellery to make, programming, web sites to maintain and extend, housework, laundry, grocery shopping… Four hours a day? How can anyone do that?

Tower of Babel GUI design.

It used to be that you could tell what language a program was written in just by looking at it running. Visual Basic 3.0 and 4.0 were kind of chunky, Borland Delphi had those nasty yes/no buttons where the check mark floated above the button when it was pressed down, Hubby could tell which version of MFC a program was using. And then we got Java.

You’d think that programs produced in the same language should look about the same. After all, they use the same components. There’s a free set of rather nice button images available from somewhere, Sun probably. So why is it that jEdit and Jext look so radically different? They were made for the same purpose: a programming editor with multi-language syntax highlighting. Jext uses jEdit’s syntax highlighting code and is written by a Frenchman, Romain Guy. jEdit is written by a big team. Jext looks WAY nicer than jEdit.

My Chronicle program isn’t the prettiest thing ever, but it’s got themes you can change on the fly and a functional layout. It doesn’t make you go “Ooh, that’s pretty!” but it doesn’t make you say “That’s an ugly piece of GUI design” either. Something just doesn’t look quite right with jEdit. Jext is easy on the eyes, easy to install, it even gives you an uninstaller, and I am indebted to its’ author for showing me a free Java installer creation tool that I plan to use for Chronicle later.

I have nothing against jEdit, it’s a very powerful program with excellent features, but Jext is prettier. Users are fickle creatures, easily wooed by simple things like documentation, intuitive GUIs, and prettiness. The first two are sorely lacking in Linux, even if KDE and Gnome do polish up nicely after a bit of tinkering. Prettiness alone can’t win the day, but it helps.

So I’m looking at Jext to see how you create prettiness in code. I’ve given up on using the jEdit syntax highlighting component, it messed up my diary entry loading and switching between entries. Documentation for Chronicle isn’t written yet, but I’ve done it before and not had complaints from my users.

It’s not easy to design a GUI that looks good, acts the way you expect AND has all the features you want easily accessible. Study the things that look good, work out what looks less good, experiment always. And write code like someone will see your source files.

Version 0.2

Chronicle version 0.2 is complete. It can load, save and update entries, and that nasty random flood of exceptions is gone. Amazing what a little re-ordering in the constructor will do for you. The next version’s big task is to sort out publishing the blog to a remote site, creating archives, archive indexes, and the XSL transform from the XML file the database dumps out.

In progress

Caught up with marking my HTML student’s web sites, nine so far.

Our domain name is propagating through the name servers, should be online by the weekend. I put a place marker page there with another new Paint Shop Pro background. I am 100% certain that no other web site has the same background, because it didn’t exist before this morning. It’ll probably be at least a week before someone finds it and takes a copy. Likewise the new background here.

A new domain and paid hosting warrants a site redesign, but I have no idea what to do. Paul’s done something very cool looking.

Latin and layers

Created a few new web page backgrounds with Paint Shop Pro 7. Amazing what you can do with a pattern fill, colorize, and a semi-transparent white layer.

Paul got the tree component on Chronicle working. I loaded all my existing Blog entries in, so both programs have a complete data set.

(Translation: What is said flies, what is blogged stays. Replace “bloga” with “scripta,” meaning “written.”)

Found a web page full of Latin phrases and their translations. I always feel like an idiot when I hear something in Latin and don’t know it, even though I only managed one year of Latin at Copleston High.