Notes on NebulaXLite
A significant update for NebulaXLite has been posted to our website (see download link from product page). Some people might visit the blog here and not the forum, so I’ll provide a couple extra notes here.
If you aren’t familiar with NebulaXLite, you can get another intro here (search the blog for XLite or NebulaXLite for more references). In short, it allows you to generate spreadsheets from BASIC which can then be used in Excel, OpenOffice, and Google Docs. A lot of developers are now using this utility and I’m quite pleased to see it’s being deployed to a number of end-user sites and happy management types.
If you have looked at XLite but haven’t spent much time with it, I think there is an "oh I get it" moment for a lot of people. Once they’re over the hump, if there is one at all, they start churning out new reports for end-users – and getting a lot of new requests for more. In short, the process is as follows: You create a dynamic array for data cells, create another one to define what the cells look like, pass it all to a subroutine, and you get back a dynamic array with a bunch of XML. You can simply write that to an OS directory and send it to users. You can open it with Excel and then save-as a binary XLS file (even automate that process). You can email the document – I dare say with NebulaMail.
The unusual thing about how XLite and all Nebula products work is the extensive use of equated constants. I use this structure to minimize coding errors and ensure standards. I have never received an inquiry about an invalid request being made in a spreadsheet because unless someone is hardcoding XML tags an issue like this won’t get past the compiler. The only issues reported so far are with invalid data, like strings passed into numeric fields. Also, you should be able to maintain code written by anyone else using a Nebula product, and I should be able to make changes to the software internals without breaking your application code. That sort of freedom is very difficult to achieve with hardcoded attribute references and string constants.
When working with a Nebula product, I envision a developer who knows what he/she wants to do, with the documentation open in one window and the editor in another. Anything you want to do should be accessible via keyword and index in the doc, and I provide a lot of code samples to kickstart the development process. If this process does not work for you, I’d really like to hear your opinion about what might work for you better – in addition to the techniques in place now. Obviously I don’t want people to stop using the software for reasons as simple as "there are too many equated constants" or "it’s not clear whether data should be in values or subvalues".
So about the latest release – I’m really interested to know if you get any use out of the new code generation enhancements – see the Developer Guide Supplement on the download page. In short you can create an Excel sheet that looks like what you want and then turn it into BASIC code. This should save hours of development time. If you convert XLS to XML to BASIC and then compile and run the BASIC code, you should get equivalent XML and XLS. If not, that’s a target for the next product update.
As you are working with the software, if you find there are things that it doesn’t do, or things that could be done more intuitively, please pass along the request to moc.DnR-alubeNnull@troppuS, to the forum, or to the NebTrak issue tracker, and I’ll see what I can do. The easier it is for you the better it is for all of us.
Finally, as mentioned here recently, I’ve also been working on utilities to sync MV data with Microsoft Outlook, including appointments, contacts, and journals. If you have end-users that make significant use of Office applications, just ask them if they’d like to see data in their business software shared with Outlook. Let them think about it for a while and then get back to you – once you’ve planted the seed it often takes days or weeks to sprout into productive ideas. In my experience, once end-users start opening up with "wow, can we really do that?", for better or worse, the ideas just keep flowing.