Is Programming Fun?

Monday, September 30th, 2002

Sometimes it makes me feel very powerful, like I have the ability to forge my own tools, and create software that other people might use in ways I hadn’t even anticipated, maybe going on to create something new themselves.

Other times I feel like a very dull person, who has wasted most of his adult life making phosphor dots dance on a screen, just for the sake of it, when there is a whole world out there to be explored and appreciated. I get spooked at the thought of a Solar Flare or something rendering all computers useless… not because of the obvious havoc it would cause, but because everything I know would become useless. If I was stuck on a desert island, I would probably go mad attempting to fashion a computer out of coconuts.

And look, it’s past 3AM, so it’s clearly not the most sociable profession.

Bye-Bye Win95

Monday, September 30th, 2002

Until now I have basically supported Win95 by default… ie: most of my software just happened to run fine on Win95. But since I started using certain functions to allow programs to get version information about themselves, a dependency on KERNEL32.DLL has been introduced which causes problems for at least one Win95 release. Normally in this situation I would attempt to avoid the dependency, but I am at the point where I haven’t got the time or resources to be bothered. I have therefore decided to officially NOT support Win95. Win98 will now be the minimum OS requirement (the new installers will refuse to install on Win95 systems). I hope that this change doesn’t disadvantage anyone too much down the track, but the bottom line is that maintaining compatibility with old versions often means foregoing the advantages of newer versions, which somewhat defeats the purpose of having a newer version in the first place.

Doesn’t Windows Suck?

Not as far as I’m concerned, for the simple reason that loads of people use it. Something like 70-90% [made up figure] of computer users out there (my potential market) are using PC’s running Windows. Clearly it is meeting people’s needs. The idea that I would resent them for this is ridiculous, as it means that 70-90% of people in the world could potentially download and run my software. Alternatives like Linux may be powerful, robust, reliable, well designed etc… but unless massive numbers of people are using it then it is of no use to me. The one thing that I think is absolutely bloody marvellous about Linux is that it is free (I think… although maybe you have to pay for particular distributions??? That is how little I know about the Linux world)

Busy

Have been knocking together preliminary installers for , and . Note the name changes there: JujuEdit is now Jujusoft Edit, and BookReader is now Jujusoft Reader. This is basically because I want a consistent naming convention, and I want the names to be reasonably representational. That said, I so far can’t decide whether JujuTool should be changed to Jujusoft Tool. Sounds kind of stupid…

Self termination…

The likelihood of me actually making these programs available in the near future (this week) has been greatly increased by the implementation of an expiry date into most of my software (test versions only). Knowing that the test versions will not run after a certain period of time (a few months is the general plan) is a comforting thought to me as an independent developer hoping to achieve some degree of Quality Assurance (QA). Of course the methods I’m using are not the most sophisticated, and I’m sure any hacker types who felt so inclined could easily circumvent the measures I’ve put in place, but the main point is to remind people to get the latest version, and what better way to do that than for the old version to self-terminate.

Plans

Saturday, September 28th, 2002

Time races by, and where am I with Reader? Nearly ready to stick a test version online I reckon! A few little fixes and a version 1 should be available within days. If all goes to plan I will post it (along with eLibrary) very soon. And if I fail to make good this prediction, I can always come back later and remove this text.

Other plans

is a troubling application, as it is the first windows App I wrote, and hence applies some rather "creative" solutions to non-existent problems. I actually still find it useful, but I feel wierd about having it at this site, because there are issues with it I know that I’m never going to get around to fixing. (sometimes code can be too old and strange to fix properly) So now I’m thinking of doing an all-new Fragt as a spin off from eLibrary, since eLibrary is already a file downloader (but currently specific to Gutenberg and without the bugs of fragt)

Gutenberg…

…was a great idea, way back when it all began, but to be honest I dont think it’s being used by many people (at least not as many as might be using it). Hopefully (along with ?) might help awaken people’s interests in free etext. I have yet to contact them about it, though I am hoping they will agree and offer some (moral) support to my endeavours. People shouldn’t have to stuff about converting files to make them readable (or palatable). Also it seems inappropriate to require loads of different formats to be made available in the Gutenberg set, just so the latest round of readers (eg Adobe and Microsoft) can display them (it’s a lot of extra work too). The point of Gutenberg is to make text available to everyone in the least obfuscated form possible. This is plain text. So it seems to me that Gutenberg should concentrate their efforts in this direction. Anyway, I’d better try to contact them before offering any more opinions here ;)

Tuesday, September 24th, 2002

is back online, with some extra functionality. It’s a very small beginning, but at least it’s a start. One of the main changes is that it is beginning to support symbolic expressions with text strings, which basically means that you can get it to tell you your current ip by typing:

dialog text Your IP: $[ip]

Isn’t that exciting!

Thoughts

Monday, September 23rd, 2002

Hmmm… time slides by so fast sometimes doesn’t it? What have I achieved recently? Not so much. I’ve fixed a few little things here and there, but I can tell I’m definitely at the bottom of the productivity cycle right now. Possibly this log will actually help me get an idea of my patterns. I have so many lines of code generated over so many years of programming, but it is sometimes hard to estimate how much is an unrealistic amount of work to attempt. If I was looking for another project I might attempt to analyze all my old backups and try to work out in reality how many hours I’ve worked on my software, as well as average line of code per day, etc. I have a feeling that the end results would be somewhat shocking. (If I am ever to make money from my software I feel like I have to make at least enough to pay my own "back wages" which is probably no small sum these days)

Something I’m having trouble getting through my thick head is that THIS IS NOT ROCKET SCIENCE! I am NOT writing software to be used on life-support systems or interplanetary guidance systems. It is just software to be run on ordinary computers (many with weird configurations and even weirder weirder users). I should just release some of the damn stuff and deal with bugs/user frustrations as they occur. Yessir that’s what I’ll do.

As soon as I’ve added just a couple of little things here and there. Eg JujuTool is now about ready to replace the run command, with the ability to run ‘internal’ commands as well as create shortcuts from command lines. Unfortunately the syntax for JujuTool is incredibly inconsistent, so I should probably fix that up… *sigh* It now uses a run history (a list of previous commands) so that certainly makes it a relief to use (the standard run has always had this logical feature)

BookReader has gotten a couple of very minor tweaks, since it is so long since I’ve worked on it seriously I dont want to just dive in until I’m more familiar with it again.

So, how’s BookReader going?

Sunday, September 22nd, 2002

Oh really really great! I’m so nearly finished you wouldn’t believe it!

What the …?

Wednesday, September 18th, 2002

One of the file formats which has been added to Gutenberg is mp3! At first I thought: "Hey, how cool that people would read stuff aloud and record it for posterity!" but after downloading one I was amazed to find out that it is in fact (at least the "Dracula" mp3 is) a recording of synthesized speech. ie a computer program reading the text aloud in a boring [although fairly intelligible]mechanical voice. This seems particularly stupid to me, since one needs a computer to access and play these things, why the hell bother saving these massive files in the first place. I seriously wonder why someone 5 years down the track would download and listen to mp3 files of text-to-speech circa 2002 when there will be better text-to-speech technology then anyway. What a boring rant.

Grumpy

Sorry but I’m a bit annoyed because here I am thinking that certain applications are just about ready to go online again, when I realize that there will be problems running under 2000 and XP because of user privileges. Basically to keep things simple I have been commonly storing application specific data in the same folder as the application itself. It turns out this is actually illegal if you aren’t logged in with administrator (or at least Power User) privileges. What this would mean is that settings would not be saved under some circumstances, and this is clearly a problem.

So now I’ve got to go through all my apps and make sure they put data in the properly sanctioned place (C:\Windows\Application Data or similar). This includes log files etc, which are going to be much harder for a novice to find now, as they will no longer be stored along side the executable. There are good reasons to do it this way I admit, but I’m not going to bother mentioning them here ;)

Anti-competitive ebook formats

I wonder if I am the only one who thinks it stinks that even out-of-copyright texts are being published in Microsoft’s proprietary *.lit format instead of an open format based on the "Open Ebook" specification. If *.lit was a totally in-house format then I wouldn’t find this so offensive (eg Adobe’s pdf is nothing like oeb). But the real crummy thing about *.lit is that it IS BASED ON OEB! According to ! So what they are doing is taking a format which many groups have contributed to, and then wrapping it up in an encrypted proprietary wrapper, so no one else can read it. Generally I’m not an MS basher (I use windows after all) but sometimes they really are scum-bags. All we need is for an open format called *.oeb to be made known and for MS Reader content creation tools to be able to output it as well as *.lit (should be technically fairly straightforward). Then other vendors (like me) can write software that supports OEB. I could attempt to support it now, but the problem is that if no one else does then no content will be produced for it, so there’s not much point.

There is still a big place for the plain text version I think, since most texts require no special formatting, but if BookReader in it’s current form becomes at all popular, then it might be a good platform to try to launch a proper open oeb compliant format, but that’s a pretty big IF right now, since no one has even seen BookReader. The sooner a reader is available for reading these generic files the better the chance they will be readable by everyone. One nice thing about OEB is that it’s based on XHTML, which is basically a strict version of HTML conforming to XML syntax. This is good news for someone who has already seen enough of the problems which the sloppiness of HTML can create.

Hooley Dooley!

Tuesday, September 17th, 2002

I have just removed the restriction on txt files in Elibrary when downloading from Project Gutenberg, (because I noticed that some files weren’t actually available as *.txt) and to my surprise mp3 files are now part of the archive! The number of files listed has now jumped from 5000 to over 13000! and with the multiple file types, there are often multiple versions. I think I’d better work out an elegant way of coping with this…

The Anti-Joy of Documentation

Monday, September 16th, 2002

It’s just one of those things I dread. Partly because it implies a sense of finished-ness, the software is complete and now all we need is a manual…. Where-as in the real world (my real world anyway) the software is never finished, because the way it is used feeds back into the development process. If I create an application to help design levels for the latest Quake or whatever (how old do I suddenly sound) and people start using it to design skateboard parks or hotel lobbies, do I ignore them and continue pushing it as a level editor? OF course not! If a niche is staring you in the face you have to jump in (before it closes crushing Lois Lane in her car). Does it sound like I’ve got business sense yet? I even had myself fooled there for a second ;)

Anyway, I figure that before any software goes public it must have at least a modicum of documentation to go with it. A factor that doesn’t help is that I never read documentation myself, usually being too impatient to just try out a new bit of software. So I dont really know what level documentation is appropriate. Do other people read it? I think it’s just there to look stuff up generally, which come to think of it, makes the job of providing it worse, because to look stuff up requires a decent index and table of contents. Which is much more fiddly to do. Yuk.

Where Book Reader Where?

Ok, this is it. I am going to get a version of Book Reader ready for Beta Testing! It’s so wrong for it to moulder away while I waste valuable time on things of less import. People want to see it, I want to see it. I downloaded the latest version of tonight, expecting it to have improved dramatically since I last peeked (about a year ago). Instead I find it unpleasantly slow and clunky to use, with poor access to settings. This on top of the fact that you have to get the books you want to read in *.lit format. So you can’t just grab any text from Project Gutenberg (although they have some texts in *.lit format now). All this is a little annoying for the potential reader, and so I thought: It’s time to stop piss-farting about and get something done! So…

This week I am going to focus on BookReader, with particular attention to the following:

Sometimes it is a massive pain in the arse being a programmer because you get sucked into doing things a certain way, and then down the track you realize that you (and a bunch of other people) have followed a stupid path.

One of my biggest criticisms of MFC (and any automatically imposed framework) would have to be that by hiding the underlying mechanisms (eg of Windows, or Sockets) from you, when the framework doesn’t meet your needs you end up doing twice the work just to get around the damn thing. Most of my software now uses my own minimal Win32 framework.

  1. Strip out what MFC is remaining in the current version. It just gets in the way and prevents me from speedily doing things. I dont think MFC is very popular these days (I dont know if the new Visual Studio even supports it… ATL is the business these days for C++ I think)
  2. Develop a minimal interface (it doesn’t really have one at the moment - a major sticking point) probably just a menu-based system.
  3. Stop piddling about with this damn website so as to devote more time to creating some decent software.
  4. Stop making lists of things I’m going to do, and bloody do them!

Things

Saturday, September 14th, 2002

Hmmm… here is something interesting. I wonder if many scripts about great computer programmers will be submitted…

In totally non-Jujusoft related news, Xbox is amazing! I was totally blown away by the hyper-realism of Wreckless, with sequences and shots that look totally prerendered. It seems a bit of shadow buffering and glow effects can create a realism that’s almost tangible. Omazing! Incredible! Rallisport Challenge looked very nice as well, in a surreal almost painterly way. Go read reviews about these products and then buy them!

Added some lovely cute funtionality to JujuTool today, at Richard’s suggestion. JujuTool will now render text to a bitmap using a command line. What the hell for? Why lots of things! I use it to display the date and time in giant bold letters on my desktop, and Richard will use it to keep track of IP addresses and machine names (he has to deal with networks quite a bit). It’s like active desktop (does anyone use that?), only it’s in-active!

Hey, I worked out what the deal was with cookies going wrong! I didn’t realize that not only are they site specific but by default they are folder specific! (How clever of me to finally RTFM). So now cute tricks like the following can store settings across a whole site, which means that you could easily set up a user-control panel for customizing the pages based on a user’s preferences.

Stuff

Friday, September 13th, 2002

There was a freakily well made fictio-mentary (or docu-drama) on telly tonight, called Smallpox 2002 - Silent Weapon . When I heard the title, I thought blech! That sounds like a tacky piece of junk, but then I ended up watching the whole thing and got rather spooked at how real it all seemed. The people being interviewed were fantastic, I think possibly because at least some of them were "real" ie they are in real life experts in the fields portrayed in the show.

Here’s a cute site. I feel a kind of empathy with this person, and am distressed at the idea that only 1 in 5000 people donated money through PayPal. I’m going to check out the calendar and if it’s any good (if I keep it) I think I will make a donation. I suppose what that implies is that "voluntary" shareware is a pretty much a joke, and only trial ware (or cripple-ware!) is going to make people get out their e-wallets.

Have been working on a few items this week… and seriously planning to put some stuff online really really soon now ;)

has very nice selection modes now, with word, line and paragraph modes to facillitate the whole process. One tricky thing about word selecting is working out where to end the selection. For instance in this selection the space following the word selection is also selected. This seems to be the default in most word processing applications, because it makes dragging and dropping words easier (because the selection ends with a space, the end of pasted text won’t butt up against another word). The problem is that if what you are selecting is a password, to be copied into a box as *******, you dont want that extra space, as it will stuff up your password without it being immediately apparent why. One option is to reserve the special Ctrl-click to select a single word with notrailing space.

got a bit of a revamp this last week, with the ability to specify a filter for simplifying a search, as well as better sorting on Author and Title text. (also added the option to view author names ‘Raw’ which simply shows them as they appeared in the index, eg: "William Shakepeare" instead of "Shakespeare, William"). Should be putting a version up any day now. Any day. Any.

Day

Tuesday, September 10th, 2002

Well, it’s been an interesting day today. For a start I am beginning to incorporate generic logging routines for the purposes of beta testing. The logs will eventually feature a time code for every major event (like opening or closing a file, doing a search & replace etc), and where applicable a text description. Any exceptions (errors) caught will also be recorded in the log, and the user will have the option of continuing even after such an error. These logs should greatly streamline the beta testing process, as well as providing useful statistical information. So as to assuage those who are paranoid about spyware (which I loathe too), I will state now:

  1. No personal data will be collected and sent to me without your knowledge. In any case where there is data to be sent, you the user will be informed of this need and offered the choice to accept or decline.
  2. Where possible any data being sent will be first accessible to the user, such as the log files I just mentioned. This means you can read it to make sure there’s nothing in there you’re not happy about.

A program log is one of those things which is amazingly bloody useful, but often as a programmer you dont get around to implementing one until you run into a mighty awful bug that cant be tracked in any other way.

Today I added a v.cool feature to HTML Editor, which allows me un-include style sheets while keeping the actual styles they impart. This could be useful for taking content from totally differently styled pages and sticking it on one page without the styles clashing (except aesthetically of course). What was nice is that in the process of adding this feature, I came across a couple of really stupid mistakes I had made months ago in the style handling I use for my v early prototype anti-aliased HTML Renderer. It’s nice to come back to something and find an obvious problem with an obvious solution… It feels like I’m getting smarter instead of dumber! (which is how it normally seems)

Also added a bit more Javascript to my site… because I was worried that for some people my font choice may be a little too small. The 2 arrows in the header of each page adjust font-size upGrow Font or downShrink Font , in smallish increments. A cookie will then be stored so that when you view other pages from this site, they will automatically choose that font size. How’s that for waste of time which would be better spent on software? Not only is it not essential, but it’s really asking for trouble (causing pages to modify their own display settings… yuk!) In fact I’ve already noticed a glitch… I think I’ll get rid of it shortly.