Posts categorized “REALbasic”.

RBScoutSubmit is being used in REALbasic IDE

How about this, some of my REALbasic code is being used by REAL Software in their REALbasic IDE!

Aaron Ballman recently blogged about how they are now capturing any exceptions thrown in the REALbasic IDE to be submitted as bug reports to their FogBugz install. Turns out that they are using RBScoutSubmit, with just a couple of modifications.

Aaron was kind enough to tell me about the couple of improvements that they’ve made, I’ll see about adding them to RBScoutSubmit along with a couple more improvements I’ve thought about as soon as I get some time.

RBScoutSubmit now on Google Code

I’ve moved my RBScoutSubmit REALbasic classes onto Google Code in a project called rbscoutsubmit.

If you’re looking for some simple open source (MIT licensed) classes that enable submitting crash logs from your REALbasic application to your FogBugz bug tracker, please check out the rbscoutsubmit project.

There’s a download available of the latest version, and as with most Google Code projects you can check out the source with Subversion.

There’s also a discussion group and read-only commit log list hosted on Google Groups too.

UNIXCrypt for REALbasic now on Google Code

I’ve moved my UNIXCrypt REALbasic module onto Google Code in a project called rbunixcrypt.

If you’re looking for an open source (MIT licensed) module that enables verification of UNIX crypt style passwords, please check out the rbunixcrypt project.

There’s a download available of the latest version, and as with most Google Code projects you can check out the source with Subversion.

There’s also a discussion group and read-only commit log list hosted on Google Groups too.

In development: CaseDetective On Demand

I bet you didn’t see that coming! :)

I think it’s sometimes a good idea to conduct a thorough hard-hitting interview with yourself about a subject to fully explore said subject. There now follows an interview between you (U*) and me (I), where I pose and answer the questions I think you might ask of me, and I’m not going to hold anything back…

U: So, FogBugz On Demand is public, is there any likely-hood of a CaseDetective On Demand then?
I: Yep. CaseDetective On Demand is being developed as we speak, well not at this very moment as IMiJ Software’s sole developer is all tied up answering your inane questions … but it is being developed when I’ve got any time available.

U: Cool! Tell me more, what’s it developed in, I guess it’s not a REALbasic application then?
I: Your guess is right on the money, how clever of you! CaseDetective On Demand is being developed in Adobe Flex for that Rich Internet Application (RIA) experience. In fact, it’s not just CaseDetective On Demand that’s being developed in Adobe Flex, CaseDetective 2.0 is too.

U: Eh, CaseDetective 2.0 for FogBugz is being developed in Adobe Flex, how’s that going to work, I thought Flex ran in Flash?
I: Adobe Interactive Runtime, AIR for short. I can use pretty much the same code base for both CaseDetective 2.0 and CaseDetective On Demand.

U: Now that really is cool! If CaseDetective On Demand and CaseDetective 2.0 are being developed in the same technology, from pretty much the same code base, are they going to offer the same features?
I: Almost, but not quite. As it stands, I’m thinking of making CaseDetective On Demand a free taster of what’s in the installable CaseDetective 2.0.

U: So what’s going to be different then?
I: Nothing’s set in stone just yet, it’s very early days so things are very very likely to change as development progresses, but this is how I see things panning out…

CaseDetective On Demand will look almost identical, but obviously will be running in your web browser rather than on your desktop.

CaseDetective On Demand won’t be caching data like CaseDetective 2.0 probably will, it’ll grab “live” data from FogBugz when ever a selection changes. If it’s being run online, then you’ve got to have an internet connection anyway, right?

CaseDetective On Demand is unlikely to have all the report outputs of CaseDetective 2.0, these will be reserved for CaseDetective 2.0 as an incentive to download, but you will probably be able to get a good idea of what would be printed or extracted from CaseDetective 2.0, you just won’t be able to actually save it out.

U: Will CaseDetective 2.0 work with both an installed version of FogBugz and FogBugz On Demand?
I: Yep. In fact, if the installed version of FogBugz has it’s API URL available to be called from the internet, then CaseDetective On Demand will work with that too.

U: What if people find CaseDetective On Demand to their liking, and want it to become a fully featured application that they can access from any modern web browser?
I: If there is enough interest, then we’ll just have to see about making it so.

Plan A was to make CaseDetective On Demand a fully working online application, with a small subscription charge per month per FogBugz user id used (with the first one being free). But by plan X things had settled down to CaseDetective On Demand being a great way to get a taster of the full CaseDetective 2.0. Who’s to say that in the future plan Z doesn’t loop right back to something similar to plan A?

U: I’m sure you can call web services such as the FogBugz API from within a REALbasic developed application, why are you jumping from REALbasic to Adobe Flex/AIR for CaseDetective 2.0, surely development time would be less if you stuck with REALbasic?
I: You’re probably right, if I stuck with REALbasic as my development platform for CaseDetective 2.0 I’ll probably be finished a bit quicker than I expect to be with a complete re-write to Adobe Flex/AIR.

The thing is, if I stick with REALbasic I’ll probably not be able to offer CaseDetective On Demand, I simply don’t have the time to be able to develop a brand new application of this scale for the web, and make the extensive updates necessary to CaseDetective for FogBugz 6.0. By developing in Flex/AIR I’m killing two birds with one stone, as the rather ugly saying goes.

U: Ugh, yes that really is an ugly saying, thanks for that! I’m still not completely sold though, why not forget about CaseDetective On Demand and just update CaseDetective for the FogBugz 6.0 changes?
I: OK, you want the real reason? The huge improvements to FogBugz 6.0 scare the life out of me!

One of the most sort after updates to FogBugz for quite some time has been the beefing up of the filters, making them much more flexible, with many more options. The rumour is that FB6 will have some seriously improved filtering and searching capabilities, just the thought of having to develop the changes needed to duplicate this functionality with direct queries to the database scares me rotten. And there’s a lot more coming in FB6 than just filter and search improvements.

With that in mind, and the fact that the FogBugz has an API that can be called as a web service which includes such things as a list of filters, and retrieving case details for those filters, there is nothing for it but to switch to using the API. And if I want to support FogBugz On Demand, it is absolutely necessary as there is no access to the database.

U: But you’ve pretty much said all that already, surely that’s not the real reason?
I: Switching to the FogBugz API is a big job, and although REALbasic has good web service features, other technologies do it better, Adobe Flex being one of them. When I first heard about AIR (called Apollo at the time) my interest in Flex was piqued even more.

When I took a long hard look at Adobe Flex 2, I saw lots of stuff I really liked. It’s got a very nice IDE (Flex Builder, based on Eclipse), MXML is very flexible and quick to work with, ActionScript 3.0 is familiar without even having seen any before (it’s very ECMAScript compliant), and the optional chart components are fabulous.

It’s those chart components that finally tipped the balance. The charts functionality introduced in CaseDetective 1.1 has been a big success, but they are very basic, and frankly not as good looking or feature full as I would like. It would take me a humongous amount of work to improve the current charts, in fact they would most likely have to be re-written from scratch as at present they are a third party component that hasn’t seen much improvement of late. Flex’s charts are really good looking, easy to work with, and have many options for extension.

And besides, I’m still looking for a development platform that I can take forward and start consulting with when Informix 4GL finally dries up. Flex is much much more exciting to work with than Informix 4GL, and has a much bigger job market than REALbasic even at such an early stage in it’s own development, so I’m hoping I’ll be able to get some serious experience in Adobe Flex with this project and a couple of other projects I have in mind to show off to prospective clients or employers.

U: Ah-ha! Now the truth be told! You’re developing CaseDetective 2.0 and CaseDetective On Demand in the technology you’re looking to use for making a real living at for the next few years!
I: That is the truth m’lord. As much as I’d like to think CaseDetective could pay the the mortgage, it’s a long way off from it at the moment, I mean light years away at present.

U: What about backwards compatibility, will CaseDetective 2.0 work with FogBugz 4 and 5 as CaseDetective 1.3 does now.
I: Unlikely.

U: That sucks.
I: Yeah, I know. FB5 will be partially supported as there is a version of the FogBugz API available that can be downloaded and installed already, in fact the skeleton of CaseDetective On Demand has been developed so far using that existing FB5 API. But it’s very light weight, hardly any data is available.

From what I can tell, most FogBugz users upgrade within a few months of a major upgrade being available, so I can’t imagine there’ll be a lot of new customers wanting to use CaseDetective with FogBugz 4 or 5 in the not too distant future anyway.

I expect FogBugz 6.0 will be available quite a bit before I’ll be able to get CaseDetective 2.0 developed and out anyway, so I don’t think backwards compatibility is going to be a major issue, it might be the case that CaseDetective users upgrade their FogBugz install to v6 and then start contacting me about when CaseDetective will support it! I’m more worried about that.

U: Hmmm, that is tricky, how long of a delay are we looking at before you’ll get CaseDetective 2.0 out the door with support for FogBugz 6.0?
I: I really can’t say at the moment. Life is pretty darn busy, I’m in a full time contract for a few more weeks, with an extension being offered for a few more months, and I want to spend some time with my wife and baby daughter now and then, so development time is pretty scarce.

With some feature prioritisation, missing out the least used features for now, concentrating on the core of CaseDetective’s being, I might be able to get something out by the end of the year, but it’s more likely to be early next year.

U: Wow, that’s quite some time away until release, sorry to hear that.
I: Me too.

U: Is there any good news for existing customers?
I: Well yeah, of course!

I’m confident CaseDetective 2.0 will be a much nicer experience for the user, Flex/Flash/AIR has some usability features that can make an application much more enjoyable to use.

Those new charts should look great, and those much requested pie charts will finally be available.

CaseDetective 1.x will still be around, supporting FB4 and FB5 for a while. Although all development efforts are aimed at CaseDetective 2.0 just now, any show stopper bugs in CaseDetective 1.3 will be squished where necessary.

And CaseDetective 2.0 will be a free upgrade to existing users of CaseDetective 1.x.

U: CaseDetective 2.0 a free upgrade to existing users, that’s a nice gesture.
I: It’s the least I can do, considering the delay and what not.

U: Well, thanks for such a candid warts ‘n’ all interview, your time is very much appreciated.
I: You’re welcome, thanks for giving me the opportunity to talk to you, I enjoyed it.

Were my questions and answers simply not good enough, do you have some proper questions for me? Then please post your questions in the comments for this post.


* I was going to use Y, but I simply couldn’t cope with Y-I, “pet” kept popping into my mind.
Caching of data on the desktop may not make it into CaseDetective 2.0, it may have to come a little later. I want to make CaseDetective a lot lighter than it has been, this may take considerable work.
In fact, I enjoyed it so much I might just be doing this kind of thing at lot more often!

FogBugz On Demand

So, the cat is finally out of the bag, Joel Spolsky has announced FogBugz On Demand, a professionally hosted version of FogBugz.

In my opinion FogBugz On Demand is a wonderful idea, it vastly reduces the barriers to getting up and running with FogBugz, if you have an internet connection and a few dollars at hand ($21 per user per month), you’re all set. No install, no server needed, no backups or upgrades to worry about, sign-up and go.

Some of us have been privy to the existence of FogBugz On Demand for a few months now, as frequenters of the Business of Software discussion group were let in early to beta test it. The deal was very good for being a beta tester, two users for free, perfect for the MicroISVs and such like that make up the Business of Software group.

Although FogBugz On Demand is a great deal at $21 per user per month, considering you’re not needing to pay up front for licenses, don’t have to worry about maintaining a server, backing up the database, or upgrading software, I do think Fog Creek have missed a trick.

I think Fog Creek would do well to extend the free license deal to any new account beyond the existing 45 day free trial, maybe just a single license for free, but preferably two per account.

Consider the hapless developer who finds himself in a new project with no feature, bug or inquiry tracking facilities. Imaging that poor sole being able to create a FogBugz On Demand account in just a few seconds, and start entering features and bugs to be implemented or fixed, passing the URL to their customer(s), fellow developer(s) or tester(s). Happy days! Suddenly the developer can have a central repository of all the work they have to do, can keep track of discussions related to the cases and project design and development (via the in built discussion groups functionality), and know when they have completed the work for each release. Even if the client hasn’t got a system of their own to track the project effectively.

And who knows, after the developer has given the spare free login to their manager, development partner, prime customer representative or favourite tester, how many others on the team are going to want to get in on the act rather than just use the public interface functionality? Now the customer has given the authorisation for 5 users of FogBugz On Demand for the remainder of the project. Next project they add another 5 users, now those two free logins have turned into $210 per month, every month, for this one client of the developer alone.

And once they have got comfortable with the great features of FogBugz (and the fabulous additions coming in FB6), maybe they’ll decide to buy the self-hosted version for all departments in the company.

Just how many contractors are there floating around from poorly setup client to poorly setup client? I suspect metric butt-loads!

As I said, FogBugz On Demand is a fantastic idea, it just needs to get one foot in the door as a couple of free licenses (not just a 45 day trial), and I think it’ll do very well indeed.

***

UPDATE 2007-07-11 15:40: Both Joel and Eric have contacted me to let me know that there is a “Student and Startup Edition” of FogBugz On Demand, that gives you the exact same two users for free functionality that I was whinging about being missing. It’s an option within the “Your Account” page for everyone. It has not been advertised just yet for fear of overloading the servers at a time when lots of people will be testing out the new service.

So, all my millions of readers, don’t go sign up for your free two person FogBugz On Demand Student and Startup Edition account at the same time, or else you’ll get me into trouble!

***

How does FogBugz On Demand impact CaseDetective?

Those who know anything about CaseDetective for FogBugz will know that it currently talks directly to the FogBugz database. With FogBugz On Demand being hosted by Fog Creek, there isn’t going to be any way to get to those SQL Server databases, it’s just not going to happen, they’re locked away tight. In fact, Eric Nehrlich from Fog Creek was kind enough to email me as soon as the beta was announced to tell me that there fact, and offer to help me in any way he could in getting any requirements championed for improvements to the FogBugz API for FogBugz 6.0.

As such, I’ve been emailing back and forth with Eric and Michael Pryor for a few months as Michael made progress with the spec and then development of the upgraded FogBugz 6.0 API.

With any luck the new API for FogBugz 6.0 is going to have enough information for me to reproduce all the basic functionality in CaseDetective that my customers rely on, not only so that I can support the huge changes in FogBugz 6.0, but also FogBugz On Demand.

***

So, the fun begins.

Just how am I going to cope with such fundamental changes to the data retrieval method for CaseDetective?

Will the next version of CaseDetective for FogBugz use the same code base, or start from scratch?

Will the next version of CaseDetective for FogBugz still be developed using REALbasic even?

Will the next version of CaseDetective for FogBugz have any other improvements?

There’s only one way to find out … stay tuned for the next post!

RBScoutSubmit 1.0 Released

A couple of weeks ago there was a discussion on the REALbasic NUG regarding what bug tracking systems everyone uses, and of course I chimed in with FogBugz! But I also mentioned that I could make my code for submitting crashes to FogBugz available.

I had a few responses looking for the code, so I cleaned it up a little to remove some project specific stuff that was in the modules, created a simple little example program, and then sent the classes on there merry little way to those who responded.

Even though these classes are pretty very rough, I decided to stick them up on this interweb thingy, you can find them in the Free Stuff section of my company website rbscoutsubmit Google Code project, along with the UNIX Crypt module I put up there some time ago.

Here’s a quick run down of how it looks when you run the example application…

RBScoutSubmitExample.jpg
When you click the “Go BANG!!!” button in the example app an OutOfBounds exception will be raised (I’m referencing an element of an array that isn’t initialised).

RBScoutSubmitAppError.jpg
An “Application Error” window will be shown that says very sorry for going bang, and asks that the user submit the error report with details of what they were doing at the time.

RBScoutSubmitErrReport.jpg
If the user wants to see what the error report contains before sending it, they can. This is always a good idea, gives the user a little more confidence that you haven’t just scanned their hard disk and are about to send out all their passwords!
This report format can be changed by you (the REALbasic developer) to whatever format you like, and can include extra info if you like (e.g. in the Windows version I add info as to whether the user is an admin, and memory available, as these tend to be important).

RBScoutSubmitSending.jpg
When the user hits the Send button, RBScoutSubmit uses your FogBugz installations’ scoutSubmit functionality to submit details of the crash. If you’ve set some pithy response on a case that already matches the Title, Project and Area submitted, the user will get that back (usually, “we’ve already fixed this, please update your version”), or some default “Thanks for submitting the report” message you supply in the application.

RBScoutSubmitInFogBugz.jpg
In FogBugz a case will be created with the Project, Area and Title you baked into your application, and if the user added some comments and/or their email address, they’ll be available too.

RBScoutSubmitInFogBugz2.jpg
You can see in this last screen shot that my example message made it intact.

If you want to give the classes a try, please do, the license is a standard MIT open source license, so you can do pretty much what you like with them except claim the code is yours (not that you’d want to)!

Any suggestions on how to improve the classes, or if you want to submit code changes back, please drop me an email, there’s contact details in the README.txt.

Notes from the States – Day 8 & 9: It's good to be home

Yesterday I made it home to bonnie (cold) Scotland. It’s good to be home, I had a great time in Austin but it’s great to see Mandy again.

The trip back on Friday was super smooth, but still a little nerve wracking as between my flight from Austin and Houston I had 40 mins scheduled between arrival and departure, and in Newark I had only 35 mins between arrival and departure for Edinburgh.

Arrived in Houston a few minutes early at a gate only a little way from my next departure gate, waited about ten minutes before we started to board. Things were looking good, I thought we’d be off on time. However, what I didn’t factor in was that nearly everyone on the plane decided to take on board a huge bag, so that there was absolute chaos as it was impossible to get all the bags on the plane, some had no chance of fitting overhead, even if there was no-one else on board! Why do people show so little common sense and consideration for others in this way?

This of course meant that we took off a good hour late, leaving me a little concerned about getting my next flight. But I shouldn’t have worried, we got in only a few minutes late, and when I arrived at the gate I sailed straight on as my row number had already been called.

And so I arrived back in Edinburgh (at about 8am) in a lot shorter time than it took to get to Austin, not having 12 hours of waiting between flights will do that for you.

Not long after getting home I had a great sleep, even though it was early morning, I slept for about 5 hours before Mandy made me get up or else I wouldn’t sleep at night. No problem with that though, even though I did have an hour or so early morning where I woke up and couldn’t get to sleep, once I did I didn’t get up until midday. I guess I was a little tired after my trip!

And so ends my trip to REAL World 2006. I had a great time in Austin, Texas. I met some great people while there, and learnt a lot of cool stuff and experienced many new things. Sure, it cost me (my company rather) a lot, but I feel it was more than worth it.

Thanks to everyone at REAL Software that worked so hard to make the event happen, with any luck my business will take off this year and I’ll be able to afford to go again next year.

Notes from the States – Day 7: Even more history

Today was a nice easy day, just as I planned it to be, a day to wind down after REAL World before flying home the day after.

Got up quite late, watched some TV (the movie Dodgeball) and then wandered up to the “Story Of Texas” museum. Had some lunch there (”Marbled Rueben”, another fine sandwich we don’t get back home) and then spent a good three hours or more going around the exhibits.

Pretty good, if you’re ever in Austin and want to get a good history lesson of how Texas was founded and all the troubles the Lone Star state has been through with lots of easy to read stuff and movies etc, it’s well worth the $5.50 it costs (and I got $1 off with a leaflet I’d picked up from the visitor’s centre. They also have an IMAX theatre, but I didn’t have a chance to watch anything as I spent too long in the exhibits.

It was a very nice day in Austin, completely clear blue sky with the sun beating down, not what I’d call a winter’s day at all! So the walk up to 18th street from 8th to the museum and back was very pleasant, nice to feel the sun on my face before I go back to chilly Scotland. :-)

Later on had a really tasty meal in the hotel’s restaurant (Omni Downtown), a Flat Iron Steak “Chuto Roso”. This consisted of a really nice cut of beef, done just as I like it (medium, a little pink) with a “smoked nopales vino rossa butter, corn pudding and fried spinach”. Very good, never had a “corn pudding” before, nice, it all went very well together.

Finished off my relaxed day with a beer in the atrium bar watching some basketball. Basketball is mesmerising, wish we got more of it in the UK. After that packed most of my stuff and then watched Hostage with Bruce Willis on the TV, not too bad a movie for a standard “troubled cop / action movie”, enjoyed it.

And that was me, my last full day in Austin Texas, tomorrow it’s a day of traveling as I make my way home to Dunfermline Scotland, and as I’m going eastward my day will end in the morning of the following day back in the UK, so you’ll probably not get a wrap up post for a day or two.

I’m so looking forward to seeing Mandy, wish she had been here to enjoy this little bit of Texas, maybe next year!

Notes from the States – Day 6: REAL World Last Day

Before I tell you about the last day of REAL World, I think I better clear up some miss-understandings from yesterday’s post.

Apparently some people have got the impression that we were out until 4am, that’s wrong, we were all back in our rooms by 2am at the latest, it probably was earlier, can’t remember. I was checking my mail, forums and then writing the post up until 4am, not out on the town.

Also, I didn’t have anywhere near as much to drink as on the Saturday night, and I don’t think anyone else was chucking it back either, but I could be wrong. I for one didn’t want to feel ill for the last day of the conference as there were sessions I really wanted to get the most out of, and I don’t think anyone else would risk wrecking their last day either. Sorry for any confusion on that one.

However, something went a little wrong with that, I must have eaten or drunk something that didn’t agree with me, as I had a really dodgy stomach in the morning. Didn’t feel bad otherwise, just a nasty stomach.

My first session of the day was “Accessibility and You!” by Aaron Ballman, with special guest Dr Scott Steinman. This was a superb presentation describing how disabilities can make using your application almost impossible to use unless you develop with them in mind, some ways of testing for and improving accessibility and how these changes will make a positive impact for disabled or non-dissabled users alike were discussed. It was only marred by the fact that it was being shoe-horned into an hour when it really needed at least an hour and a half. I felt really sorry for Scott, his very interesting explanation of how colour blindness (or rather “weakness”) physically happens and what the results are had to be zipped through as Aaron’s part went on too long. Well, it didn’t go on too long really, in fact it should have been longer, but us attendees had too many questions during Aaron’s part that we lengthened it too much. Still, it was an excellent session, a good way to start the day.

My second session of the day was “RBScript 201″ by Thomas Tempelmann. I’m not sure whether this was a good session for me to attend or not. Having only just got my head around RBScript the day before, Thomas’s explanation of a couple of pretty advanced concepts was a little too much for me. Maybe if I’d had a little experience with RBScript I’d have appreciated it more, although I understood the concepts and problems he addressed it was a little over my head for just now.

The very last session I attended at REAL World 2006 was Aaron’s “Windows User Interface Design” presentation. Again, this excellent session needed to be at least an hour and a half as it covered so much, and prompted a lot of discussion among the group on Windows, Mac and Linux user interface design and accessibility. Aaron really knows this stuff, I learnt a lot, and made many notes on how I could improve CaseDetective for Windows and Mac to make it more compliant with their respective user interface guidelines and also improve accessibility.

There were a few sessions after lunch, but I wasn’t feeling well enough to sit through a 2 hour session with my dodgy stomach and all. A bit of a shame as I fancied seeing Joe Strout’s session on creating 3D games with REALbasic.

So I did some email and caught up with some feeds from the REAL World Internet Cafe, which had a great connection at the time, much better than it had been on the previous two days. I also tried to call my wife through Skype once I was back in my room, but that didn’t work so well, and AIM, instant messenger and even email all ended up being pretty useless. The wireless internet connection in my room has been terrible throughout my stay, and it’s been the same for many others too. Maybe that’s why there was a letter in my room to say that from 5pm until midnight the in-room wireless internet would be down as they were to change supplier.

Right at the end of the REAL World schedule there was a feedback session, where everyone could pipe-up and say what they liked or disliked about the conference, any ideas for improving it and generally chat about it. This was great, most people were very happy with the venue and new single venue format, lots of good feedback on what worked or didn’t work with the sessions and session schedule, and other general comments about the conference. I won’t bore you with the details, mainly because I didn’t take notes, but also I don’t think it’s appropriate, it’s something between the attendees and REAL Software and hopefully we’ll just see the fruits of the discussion next year. Although I will mention that I asked that they considder a european conference now that they are going to have a European office. Even a mini conference would help, maybe just a two day event with two or three distinct tracks for newbies, intermediates and experts. Fingers crossed on that one, I’d love to be able to attend a conference with say three or four of the engineers in attendance, and then some speakers from the community. Obviously there’s a lot of issues around language and venue to be considered.

Once it was all done and dusted it was decided that we’d all go get some Texas BBQ, as there was quite a few people staying for the evening.

As we waited for the arranged time for us all to wander down to “Stubbs”, I had a chance to chat with Mars about his excellent debugging session and then with Geof about the REAL SQL Server (which I’m very interested in). How often do you get a chance to bend the ear of the CEO of a company who’s product you rely on, and have a very frank discussion about the future of it’s technologies. This kind of access to people like Geoff and all the engineers working on REALbasic and other REAL Software products is absolutely priceless, and when Will Lesher joined in on the conversation about REAL SQL Server he explained a couple of details about the REAL SQL Server implementation that make it a very attractive proposition in deed. I am worried about the licensing model for it, it’s got to be attractive to enable developers to bundle it with their applications, but nothing’s been decided yet so I’m keeping my fingers crossed that it’s going to be simple and affordable.

The BBQ at Stubbs was very nice, I really enjoyed my Beef Brisket, fries and onion rings, and Pepsi. I decided that I’d not tempt fate and have a beer with my meal, and I think this was a very good decision. My stomach felt much better after a good sized feeding of BBQ, and what’s more Geoff picked up the tab for everyone there! What a nice guy, can developer relations get any better?! :-)

After the meal I and a few others headed back to the hotel, while some stayed a little longer at Stubbs, and I guess they’ll probably have gone onto somewhere else. Maybe someone will blog about that in due course or leave a comment here.

I ended the night chatting with Tom Dixon and Peter ??? (sorry, never caught his last name over all the time I’ve spent with him this week, shame on me) over a beer. By this time I was really starting to feel the lack of slumber from the night before, so although I could of happily chatted with them for another hour or two I decided to call it a night after just one beer. My mind had basically crashed, I think it was a SleepDeprivationException which I had failed to trap, so I said my goodbyes to them, and then to Geoff, Will, Steven, Lisa and others that I bumped into in the lobby, and made my way up to my room.

The only way to combat a SleepDeprivationException is to quit all threads of input, and close your windows on the World!

Notes from the States – Day 5: REAL World Second Day (Will won't stop until we drop)

Damn, woke up early again! And neighbour did the same 06:00 alarm and two phone calls thing. Ah well, plenty of time to check email and stuff before heading down for first session at 09:00.

A bit panicked before first session though, couldn’t find my note pad from previous day, definitely wasn’t in my room or bag, so figured I’d left it in my last session the day before (had already left my pad in previous sessions during day, normally I’m pretty good at looking after my stuff but obviously Austin has some strange aurora going on), but of course the room had been cleaned ready for for the next day’s sessions. After a quick look around the room, asked reception whether my note pad had been found, they checked with house-keeping and then Lost And Found but there was no luck. What a pain, I hadn’t only lost my notes from the day before (including Jon’s declares stuff that I found so useful), but the pad has a CD stuck in the back with all the other REAL World sessions and example projects on it! A little depressed and dejected, I decided to double check the last room I’d been in the day before, went right up to the seat I had sat at and guess what I found? Yes, my pad, neatly placed on the chair I’d been sitting at, some kind person had saved my notes, what a relief! I guess I owe house keeping a nice fat tip before I leave.

First session of the day was Will Lesher’s Database 201 presentation where he talked about REALSQLDatabase and how easy it is to use, and the kind of funky stuff you can use it for, e.g. as a fast searchable dictionary replacement. Learnt some important stuff about REALSQL’s time handling, glad I found out about that.
Then Will moved onto REAL SQL Server, which most people were really there to find out about. Looks good, all the benefits of SQLite wrapped up with a multi-user server, with a neat little admin app that allows you to create users and groups, assign users to the groups and give the groups permissions on the server and it’s database’s objects. It’s great, really simple to add databases whether existing (drag and drop) or new, and modify the schema with minimal fuss. Passwords for connecting to the database are sent with a secure encryption scheme, and you can even set all communication to be encrypted.

Second session of the day was Steven Tallent’s XML 101 (if you have a blog or website Steven, let me know, couldn’t find it). I nearly left it because at the beginning of the session he stressed how simple the session was going to be. But I stayed and was very glad I did (actually I did leave, vacating my very comfortable second row seat, but then came back in and sat at the back). Steven’s description of XML and how the DOM (document object model) is handled by RB was very good, I learnt a lot of very seemingly insignificant facts that really are very important (e.g. absolutely everything in XML is a “node”) and a lot more besides. Well worth attending, I may know a thing or two about XML but Steven’s session really solidified some very important stuff for me and gave me some very useful info on how to manage it in RB. Steven, you sell this session much shorter than you should, please do it again next year and don’t put off so many people by describing it as being so simple. This session is a perfect grounding in XML and how it can be used within RB, stop selling it short!

My last session before lunch was Aaron’s Design Patterns session. Again, I’ve already learnt a lot from Aaron’s blog about design patterns, but when it’s discussed and questions asked by other attendees you learn so much more. Aaron’s a great presenter, I’m looking forward to his “Accessibility and You!” talk, but I wish he’d had a chat with Charles Yeoman about his RBDeveloper article about the “Messenger Centre” (proper spelling) pattern, as I think a lot of people would have clicked once they’d had that described. I personally use a variation and much extended version of the Messenger Pattern (threaded) as described by Charles’s article in CaseDetective, and have found it to be extremely flexible and powerful.

Second half of lunch was a presentation by Tylor from Apple. Very fortuitous timing as apparently Apple released a couple of items today. :-)
It was a very good session, he also described a number of ways that Apple can help promote indipendent software vendor’s products and also some other vendors that could help (e.g. SoftwareToGo). I won’t give out his email address, but Tylor also gave himself up as very good point of contact when needing help to get noticed for various initiatives within Apple. But to be honest, you really needed to be at the session to get an idea of how he could help promote you product. What, you didn’t pay over £1500 to go to REAL World but still want to know how to get in contact with Tylor? O.K, try and ask me, go on, I dare you!

After lunch I attended the Debugging Principles and Techniques session by Mars Saxman. Although with negative vanity I would consider myself rather comfortable with the debugger, I was very happy that I attended this session as Mars described a lot of very good ways of making debugging much less painless and explained some ways he hoped the debugger would improve (assuming we furnished the appropriate feature requests, you know what you’ve got to do!!!).

The sixth session of the day I attended was Steven Tallent’s XML 201 presentation. This session was primarily an explanation of XPath, and for this I am eternally grateful. I now have a good understanding of just how powerful XPath really is, and how XPath can be used to access any specific part of an XML document. Steven has presented both his sessions while nursing a broken arm from a skate-boarding accident, and apparently is an expert on dumper trucks.

My last session of the day was “RBScript 101″ presented by Dave Grogono. This presentation proved to be a very good grounding in RBScript, although I did get a feeling that many of the attendees didn’t quite appreciate just how powerful the concept of RBscript is ( no one raised there hands when asked who had experience with RBScript, and I seemed to be the only one asking many questions at the end of the session). With RBscript you can open up parts of your application to your users by allowing them to use RBScript to create equations on instructions that interact directly with your application. When you start to think about the possible applications of RBScript, imagination is the only limitation!

Once the sessions finished I dropped by the REAL World Internet Cafe to get a better internet connection for dealing with my email etc, and to post my last post. Then I got cleaned up and came back downstairs for dinner.

Did you know that this year REAL Software will celebrate their 10th anniversary in May? Pretty cool, although it is just 8 years since REALbasic was first released.

Geof had a few words to say, and I had a great time picking both Jon’s and Will’s minds on various subjects related to REALbasic and REAL SQL Server / SQLite respectively during the dinner with free bar (hooraah for Merlot). In particular I learnt a lot from Will about REAL SQL Server, as well about how not to dance (somehow we ended up back at “Bourbon Rocks” on Sixth Street, and Will showed just how much of a dancing machine he really is). Seeing as it’s nearly 4am and I want to attend Aaron’s session on Accessibility in less that five hours, I guess I should probably sign off now.

Goodnight my friends, sleep tight!