Glee wants to run on every platform. Right now it runs on one ... Windows 95 and up. Linux is my next target. Since my last article I have been distracted by my explorations into Linux. I discovered KNOPPIX. KNOPPIX gives me Linux with no hassle. But there are issues that my tunneling methodology and code early and often philosophy have revealed.
It's been an interesting six days ... six days I hadn't planned for. In my last (and first) BLOG article I said I was going to start tunneling toward Glee's Object Store. And I did start. But then I attended a Linux workshop and was told about KNOPPIX. I became distracted ... and pleasantly and gainfully so.
KNOPPIX is a Linux distribution on a single CD. You just put the CD in the machine, press enter at the boot prompt, and up comes Linux. You can do it on your existing Windows machine without breaking the glass. When you're done, it's as if you were never on the machine with KNOPPIX ... because, effectively, you weren't. KNOPPIX, in this native form, is not persistent. However, you can make your work persistent quite easily and thus have a fairly effective dual use computer. Importantly, you get a low cost (like $0.15) taste of Linux and Open Office (the Linux answer to Microsoft Office).
With KNOPPIX I was able to get a version of Linux running. Linux has WINE (WINdows Emulator). WINE lets you run Windows programs on the Linux OS. Glee is a Windows program. Would Glee run under Linux/WINE? Yes and no (or as I will show ... know.)
With KNOPPIX and my computer connected to my internet connection, I was able to navigate to the GLEE website and it's download page. I downloaded the zip versions figuring Linux wouldn't know what to do with the Windows exe self extracting version. The first time I tried all this it didn't go smoothly at all. I was totally disoriented ... and impatient (but thanks for those little lights on the computer that flash and tell me the computer is not dead! ... they should never take away those lights!) In time I learned to slow down (seems like by a factor of 10) and let KNOPPIX do its thing. It seems everything I touch is riddled with COIK (Clear Only If Known). This escapade has been no exception. But now having been through it a couple times, and knowing, the steps are really simple and intuitive. I achieved my desired result ... Glee running in a Linux environment.
Glee came up ... but it wouldn't do anything. Press the Glee GO button and no "Hello World"! Why not? Well, evidently WINE can't do RichEdit controls yet. The Glee Code Pane and Output Pane are RichEdit controls. So I go back to my Windows PC and change Glee to use Memo controls instead of RichEdit controls. Bingo! Glee now works on Linux ... well, sort of.
It seems that RichEdit contols and Memo controls differ in the way they handle new lines ... under real Windows. Under Windows, Memo controls require both the return and linefeed characters (in that order) to start new lines. Under Windows, RichEdit controls are more foregiving. They will accept return, linefeed, return-linefeed, or linefeed-return ... all yielding a simple new line.
Under WINE, as I said, the RichEdit control doesn't work at all. The Memo control works better than under real Windows ... it works for return and return-linefeed ... Windows only works for return-linefeed. Neither systems work for just linefeed or linefeed-return. So I must program for the least common denominator ... Memo controls under real Windows. I hope to have that version running by the end of the day. Ah ... if I could have discovered all this as quickly as I have told you about it.
I'll close with a little plug for my code early and often philosophy and for my tunneling methodology. I will develop both of these concepts later in these BLOG articles. But you have to wonder ... how many people are aware of the issues I just described? And what's the chance of my finding such a person to be the knowledgable source required by an exhaustive interview methodology? And what's the chance I would have probed these issues in my comprehensive requirements gathering? ... zip ... zero ... nada ... none! Tunneling and coding early and often exposed these issues ... and opened new and unanticipated issues.