Real Software and Real Studio no longer exist.

Deep breath.

Okay, seriously, that’s a little dramatic (ya’ think!?) but what might be described as the boldest decision the company has ever made.  Real Software has changed its name to Xojo, Inc. and Real Studio (formerly REALbasic) will now be named Xojo.  I think this move is good and bad and I’ll explain both.

First the bad.  Changing the company name and renaming the product is inherently risky and time consuming.  Real Software has over a decade of presence on the internet and people have come to know it (for better or worse).  Changing the name means different things to different folks.  For some it signals a new owner.  For some it smells of desperation.  It is neither.  It’s really just a change of direction.

The name Xojo itself is confusing at first.  It’s pronounced “Zoh Jo” and depending upon your language the z sound either makes sense to you or not.  Regardless, I don’t think it’s a huge issue but it might cause some confusion initially.  I’ll be honest that I didn’t like the name at first but it has grown on me.  Seeing it in big capitalized letters somehow makes it better.  Give it some time.  It will grow on you too.

The good part of Xojo is that it’s unique or pretty darned unique.  Doing a quick Google search of ‘xojo’ shows that there is a sports drink named Xojo and a few people using Xojo in their names.  We’ve been told that Xojo Inc. owns the copyright for Xojo so I can only guess what that means for Xojo the sports drink though I can’t imagine anyone getting confused between the two products.

Perhaps there’s a cross licensing deal to sell the energy drink to Xojo developers.  You heard it from me first – could be a goldmine.

I was a very big proponent of ditching the name “REALbasic”.  For years I argued that a) BASIC has a negative connotation in the developer community and b) adding ‘real’ in front of “basic” implies ‘simplicity’.  I always heard “Oh, it must be really simple BASIC” and therefore not very powerful.  I can’t say it cost me work but my consulting business did better after the name change than before.  Causal or correlation?  I can’t really answer that.

I applauded the name change that happened a few years ago to “Real Studio” but never took into account what that meant for search engines.  If you do a generic search on Duck Duck Go instead of Google (which remembers past searches) and search for Real Studio you’ll find some pretty generic references to photo and music studios.  Not that Real Studio by Real Software isn’t at the top of the search list but it certainly doesn’t bode well for search engine results.

Obviously this name change will take a while to take hold.  Xojo doesn’t officially get released until June 4th but you’d think by then posts like this will have spread through the search engines and started the conversation.

Earlier I said that a name change can signify a new start.  Along with the name change Xojo has a completely redesigned IDE that has a more modern feel to it.  The other big change for Xojo is new licensing.  The IDE is free with only one restriction:  you need a license to make a build.  As long as you’re debugging in Xojo you can develop for Mac, Windows, and Linux desktop, console, and web apps.  When the iOS version is released you will also be able to develop for that platform without having a license either – until you build.

A new, fresh looking IDE, along with a free(ish) IDE should make it a more attractive development platform for many.  Let’s hope that release quality and new features go hand-in-hand with the new look and licensing.  It should be interesting to see how it works.

So meet the new boss.  Same as the old boss just with a different name.

So what say you?  Do you think it’s a good or bad name change?

BKeeney Shorts

picAppIcon256Reporting for many developers is a big deal.  When I first came to Real Studio (then REALbasic) there was really only one commercial option – On Target Reports.  Eventually Real Software released a built-in reporting tool.  Not too much later than that RothSoft released RSReport.

On-Target Reports now appears to be defunct.  Its domain has been hijacked and as far as I can tell there is no way to purchase or get support.  The built-in reporting tool is okay but lacks some features that would make it a good reporting tool.  We’ve used RSReport for many years but we’ve increasingly found it lacking for some of our more advanced projects – including those that are Web Edition based.  The fact that we can’t change the source (because it only comes encrypted) is also a major drawback to us.

Today we are announcing BKeeney Shorts our own set of reporting classes for Real Studio.  Using Shorts you can create practically any type of report you need.  Shorts is a set of classes that allows you to place your report objects (text, line, rectangle, image, etc) on the page in practically whatever placement you need.  This leads to some incredibly rich and detailed reports that would be very hard (if not impossible) in a typical banded reporting tool that uses the concept of ‘rows’.  Shorts has no rows, only objects.

Shorts render to multiple formats.  If you are in a desktop application you can render it to the graphics object for display or printing.  If you are in a Web Edition application you can render to an HTML file/page.  And, if you are a user of the Monkeybread Software DynaPDF plugin you can render to a PDF document.

BKeeney Shorts is Retina display ready (Mac Cocoa only) and the only thing required is to add the appropriate plist settings in your application.  It automatically scales depending upon the printer setting so your printed output should always be crisp and bold.

Shorts Viewer

BKeeney Shorts is fast.  In a recent test I ran a 24,000+ page report on the main thread (I would not recommend doing this as it froze the UI for a while) but it did it at a respectable rate of about 300 pages a second.  I’m sure a more complex report would be slower but the point is that for most developers a 300 page report in a second is fairly fast.  Since you control the paging I would certainly recommend bailing out in a report that had more than 100 pages (or at least asking the user if they want to continue).

This is a 1.0 product and we’re just getting started.  We have a lot of plans for it.  Eventually we’d like to come up with an external format and designer so you could create your own report in a designer and then simply load the report into your application and it would create the report for you.  This feature would be nice since you wouldn’t have to recompile your apps if you have new reports or have changes to your reports.

Another high want feature is to have a runtime interaction with the report output.  In many financial reports it’s quite common to have a type of report that shows a list of accounts.  Currently if you wanted to drill down into a specific account you’d have to go back to where the report was created and pick the account and rerun it.  In the future with BKeeney Shorts you’ll be able to click on the account, capture the event, and you, as the developer, would know which account they clicked.  As far as I know, no one in the Real Studio world has anything like that.

ShortsCode1BKeeney Shorts has two licensing options.  The first is the Standard License for $150 where you get a set of encrypted classes.  We know that many developers like having the full source code to their products they buy so we also offer a Professional License for $300 that comes entirely unencrypted.  In either option we will support to the fullest extent we can.  Chances are good that if you have a feature request or find a bug it’s affecting us too.

I invite you to take a look at BKeeney Shorts at http://www.bkeeney.com/allproducts/bkeeney-shorts/ and try out the demo application.  It has a sample report for you to modify and change to your hearts content.  The only restriction is that the encrypted classes cannot be used in a compiled (non-debug) application.  If you use any of the classes it will immediately quit with a nag message.

As always, I appreciate your support and good wishes.  Happy coding!


Analyze Project

Real Studio has an Analyze Project function that scans your project for a variety of things and reports on them.  It checks for unused local variables, unused event parameters, and unused method parameters, to name a few.  It also checks for deprecated method calls in addition to checking for true compiler errors.

I hate to say it, but who cares?  Except for the deprecated methods check I don’t find many of these tests to be all that useful.  I checked with Seth and he doesn’t use it very often (he said rarely) either.  Are we being bad Real Studio developers?

Over the years I’ve worked on projects with outside developers.  Some of them are very vigilant (i.e. OCD) about analyzing their projects and, by golly, if there’s one single item in the list they have to get rid of it.  To me it’s over the top and, if not a huge waste of time, it’s not an efficient use of it.

Don’t get me wrong.  Knowing if you have unused local variables *IS* useful.  Deprecated items *IS* useful.  Unused event or method parameters?  Not so much.  I suppose there is *some* compiler advantages but it seems minor at best and certainly not worth the effort.

So my question for you, dear readers, is this:  Are you obsessive about Analyze Project?  Or do you even care?  If so, why is it so important to you?

Happy coding!

Last Day for Regular Pricing for Real World

Real World is just 5 weeks away in Orlando, Florida!  Real World is one of my favorite events.  You will find no greater concentration of Real Studio developers than Real World.  This will be my fifth Real World and in every one of them I’ve met Real Studio developers that have remained as friends.

You can find out more information and register for Real World here:  http://www.realsoftware.com/community/realworld.php

The Tuesday before Real World we will be holding a training day.  We will be talking about databases in the morning and after lunch we’ll be talking about the little things that can help you polish your Real Studio applications.  You can find out more about our training day here:  http://www.bkeeney.com/real-studio-training-2013/

The regular pricing ends today for both Real World and our training day.  Sign up now because I’d love to see you in Orlando.

No, I Won’t Fix Your App For You

I love the t-shirts that say, “No, I won’t fix your computer.” I’m thinking about getting one that says, “No, I won’t fix your Real Studio project.”  Or maybe I should just add that to my email signature.

It’s odd, I’ve been part of the community for well over a decade. I have done a lot of writing, blogging, tutorials, and examples about Real Studio. I’ve always had the occasional “can you please help me with X Real Studio problem” sorts of questions. Depending upon how much work they’ve already tried to put into it (and articulated it to me in their request) I will occasionally write back.  The past couple of months, however, I’ve had, on average, an email a week with someone asking me about generic questions about Real Studio. What’s worse, is that some of the recent emailers have been asking for whole, and complete, projects.  So here is my official stance on this.

You should ask your questions on the Real Studio forums. They are found at http://forums.realsoftware.com and many fine people (including me) post answers there. Chances are your question has already been asked and answered years ago (I know searching isn’t an instant gratification but you should really try it sometime). You can try StackOverflow at http://stackoverflow.com but that’s not a very active site for Real Studio users. You can also try the Network Users Group (NUG) mailing list. You can find the archives at http://www.realsoftware.com/listarchives/realbasic-nug/ and somewhere, I’m sure, you can find directions on how to sign up for it. Many Real Studio old-timers hang out in that list.

There are many ways to get your questions answered.  I should probably be your last resort unless you want to become my client.

eSellerate Issues with Real Studio

Even though I’m a consultant, I still believe in the axiom that “Time equals money”. So while I don’t have a problem creating my own solution, if there are existing solutions out there I’ll use them. This is why I have the full suite of Einhugur and MonkeyBread Software plugins (including Chart Directory and DynaPDF) to name a few. I acquired the Formatted Text Control and Simple Help Editor when they became available because they scratch an itch that we have as Real Studio developers and they save me time in one form or another.

One item that seems to come up with regularity in our products and for our clients is licensing and registration. Add in web store functionality and it becomes a can of worms. Not that you can’t do it yourself, but most developers (and clients) are in the business of selling their products, not coming up with solutions for web stores, licensing and registration.

For several years we used a web only solution called phpAudit. It worked okay, but the the software wasn’t designed with desktop applications in mind. We made it work but it wasn’t ideal. For one, it required a web connection to check registration and the only way to purchase was through the web and the only payment option was PayPal. Again, we weren’t unhappy with that solution. Heck, several of our clients still use it and are happy with it.

We made the switch to eSellerate for our own products a few years back. It’s a decent solution with a web store solution AND an integrated store so users never have to leave your app to purchase the software. It can accept payment from credit cards in addition to PayPal and several other forms of payment.

It has an offline mode where you can still activate the software even if the end user machine doesn’t have an active internet connection. This came in handy when someone purchased our software while on a ship traveling the South Pacific.

I have had many conversations over the years with people who despise third party solutions like eSellerate because if their service gets broken/hacked then their apps get broken too. This has happened at least once in eSellerate’s history but not recently. While I can’t disagree with their reasoning I find it amusing that they’ve spent an inordinate amount of time trying to come up with their own unique licensing/registration solution. Remember my opening statement about time equals money?

eSellerate requires a plugin for Real Studio and it works on Macintosh and Windows. Until recently there have been zero issues using this plugin. The switch to Cocoa took eSellerate a while to come up with a solution (that you have to ask Support to get, by the way) but that’s okay since Real Software’s Cocoa solution has been in beta for a while.

In Real Studio 2012 Release 1 the plugin API was changed slightly to make applications a bit safer. Until then it was possible for a plugin developer to do some unsafe things and this might have caused instability and hard crash issues. Many plugins worked just fine in this transition but the eSellerate plugin was one of the casualties. Ironically, the Macintosh (Carbon and Cocoa) version works fine but the Windows side of things crashes the application when certain plugin calls are made.

I know there are others who have reported the issue as well, but I first reported it in October of 2012. Since then I have received several updates from them with this being the latest:

I’m afraid I have some bad news.  As you know, we’ve lately had an engineer working on a daily basis to try and resolve the issue with Windows apps crashing if compiled with REALStudio 2012.  The folks at Real Software had been awaiting the results of our engineer’s investigation to try and troubleshoot further.

Unfortunately, as of last week, our engineer who had been working diligently on this case is no longer available.  I’ve taken this matter up with my manager, the director of eSellerate, and she has escalated it above her as well, trying to get some dedicated engineering resources to get this taken care of.  However, it doesn’t appear that we’re going to be able to continue the investigation in the immediate future.  We’re not sure when we may be able to resolve this.

We do understand how important this is for your continued integration with eSellerate, and we sincerely apologize for the trouble.  I’m very sorry I don’t have better news for you.  If it might be possible for you to integrate with a 2011 version of REALStudio, that might be your best bet for the time being.

This is not good news and their proposed solution is less than ideal. As the 2013 release nears completion this issue will continue to grow. Eventually Cocoa will be the defacto build for Macintosh and there will be features in Real Studio that can NOT be reverted to 2012 R2.1.

Because we’ve developed plugins for Real Studio I offered our services to eSellerate. I also contacted Geoff Perlman, CEO of Real Software, to see if they could help. RS has also offered to fix the plugin for eSellerate. So far neither RS or I have received any additional feedback.

So now I’m stuck between a rock and hard place. I can assume that eSellerate will fix their plugin but I’m currently advising one client NOT to do so. What’s the point of converting their entire user base over to eSellerate if they’re going to abandon the Real Studio market. Now, I’m not suggesting that they are, but it’s been four months and they don’t appear to be any closer to fixing this bug then they were in October of 2012.

If I go with my motto that time equals money what are the other solutions out there that handle payment, licensing, and registration in one package with Real Studio applications? I know of Kagi and FastSpring that are being used by some Real Studio developers. What are you using?  I’ll look at just about anything.

Formatted Text Control 3.0

For many developers the TextArea control that Real Software provides with Real Studio is more than adequate for their needs.  It provides basic StyledText support, spell checking for Cocoa (Mac OS X Only) builds, and limited Rich Text Format (RTF) support.  If you’ve ever wanted to do add graphics, you’re pretty much out of luck and it doesn’t look like Real Software will add support for graphics any time soon.

The Formatted Text Control (FTC) is our solution to the limits of the TextArea control.  It provides word processing capabilities in true WYSIWYG format similar to what Apple Pages and Microsoft Word provide.  It has three view modes to help control how the user interacts with their document.  It provides better (not complete, however) support for RTF, plain text, and XML document formats.

If the FTC doesn’t do exactly what you want it’s relatively easy to create your own special objects using the FTCustom class to provide practically anything your application needs.  We’ve used these capabilities in our consulting work to provide inline file references, inline tagging capabilities as well as database merging.  Really, your imagination is the only limit with these objects.  And, just to add some icing on the cake, you can easily save these custom objects to and from XML.

For true cross-platform spell checking it can also make use of the Spell Checking Utilities (SCU) plugin, also available from us at http://www.bkeeney.com/spell-check-utilities/.  The SCU uses the Wintertree spell checking library and they have additional languages and even medical and legal supplements.

We took over the FTC from the previous developer in July of last year and we’ve been busy updating it for version 3.  New in this version is Retina Display support for Cocoa builds and provides the crisp quality that many Mac users expect from their applications in the higher resolution.

Also new in this version is true hyperlink support.  In previous versions you could have fake hyperlinks using the FTCustom class but now it’s part of the internal StyleRun and can be read in and out of RTF documents.  In addition to that we added support for text opacity and text shadow to have even better control of your text.

We’ve done a little bit of custom development work for various clients that have made their way into this release as well.  We added AutoComplete support for those that want to offer their users shortcuts and hints to words they’ve already started typing.  This should be helpful for anyone that’s using the RBScriptEditor subclass or who makes heavy use of custom words.

Along the way we’ve rewritten the Undo Manager to allow for unlimited undo/redo.  We’ve rewritten the RTF Reader class to handle RTF input faster and cleaner.  Based on our own project needs we greatly enhanced the HTML Export functions so that it exports more style information and many other things including images and any FTCustom objects the developer might be using.

We also listened to what users were having problems with.  Many people found the big monolithic demo application too complicated so we created a number of smaller, more targeted demo applications that should hopefully make things easier for people to get started.  Also based on feedback we removed the dependency of the main demo application to have the Spell Checking Utilities (SCU) plugin installed and made a smaller Spell checking specific demo.

We are keenly aware that Cocoa is soon going to be the new normal for Real Studio builds and we’ve added more/better Cocoa support.  Not all is well in the land of Cocoa for us, however.  Text input handling is vastly different in Cocoa than in Carbon and there are major issues with accented characters in controls that weren’t designed for text input.  One of those is the Canvas control and currently the FTC, nor any other canvas control doing keyboard input in Cocoa builds, is able to capture nor detect accented characters.

Real Software has found a solution (since the IDE code editor itself is a canvas subclass) and we are working closely with them to modify the FTC to use this new solution.  The drawback is that it will require a plugin that eventually Real Software will release to the public sometime after 2013 Release 1.  I’ve been told that this plugin will be open sourced so that the community will be able to modify it as they need but so far there’s no timetable on that.

Switching to this plugin will require that developers using the FTC will need to have this plugin installed for it to work.  It’s a drag but there’s no way around it.  It also means that starting in version 3.1 of the FTC it will NOT be backwards compatible with older versions of Real Studio.  This plugin will ONLY  work with Real Studio 2013 Release 1 or better.  Again, not ideal and it’s possible that we will maintain multiple versions.

Formatted Text Control is $150 which gives you the entire source code base.  Nothing is encrypted so you have total control over it.  Existing users of the FTC (versions 1 or 2) are eligible to get version 3 at 50% off and should have received an email with the coupon code a week ago.  Contact support at BKeeney if you are an existing user that did not receive a coupon code.

For more information on the Formatted Text Control please visit http://www.bkeeney.com/formatted-text-control/.  There you’ll find demo and documentation downloads as well as a full list of enhancements and changes in version 3.0

Real Studio 2012 Release 2.1

Between the entire family being sick for what seemed like weeks, client work, and our efforts to get Formatted Text Control updated (release in the next 5 days?), we’ve been busy.  So it’s no wonder that I forgot to do a writeup on Real Studio 2012 Release 2.1 that was released last(?) week.

As with many dot releases, this release only has a few changes that may or may not affect you.  Take a look at the release notes at for more information.

The bug that I talked about with saving Web Edition VCP projects that had only code changes in control events appears to be fixed. Yay!

If you are a Web Edition user there are a couple of big bug fixes.  They fixed a data leak that could occur between WebSessions.  They also fixed dynamic constants that are used in WebPage Titles so you won’t see the #Name anymore.

RS fixed a couple of WebCanvas bugs.  As you may know, the WebCanvas SDK lets you create custom controls for WebEdition.  It’s a pretty well thought out SDK that promises to extend Real Studio a lot.  Sadly, I’ve not had the time to play with it yet.

The other thing that’s notable in this release is more changes to the Remote Debugger Stub.  In Release 2 they started using compression on the debug applications as they were sent to the Remote Debugger Stub that resulted in some nice time improvements.  In the 2.1 Release they sped up the Windows Remote Debugger Stuff even more.

This is indeed good news for us.  Before all the improvements I would start the remote debug session going from the Mac to VMWare on the same machine and depending upon the size of the project I could go get a drink and come back and the debug app would have just started in Windows.  It’s been like that ever since I can remember in Real Studio.

It wasn’t until I had to remote debug to another Mac that I saw the difference.  Literally, I was going across the wireless network faster than I could remote debug on a VM environment on the same machine!  So I put in a Feedback Report basically asking why the Windows version was so slow in comparison.

Now, going from my Mac to the Windows environment is so fast that the progress bar rarely has time to even do a value.  Now that’s fast and is a welcome improvement.

It would be arrogant of me to presume that it was only my Feedback report that got this fixed.  I’m sure others had reported it and the powers that be gave a little development time to the debugger stubs.  Regardless, it’s a very welcome improvement and it dramatically speeds up my work flow.

And now we wait for 2013 Release 1.  The Bataan Death March long road to Cocoa being final and the new IDE user interface is almost at an end.

Happy Coding!

Mountain Lion and Saving Real Studio Projects

We noticed a very disturbing thing over the past couple of weeks in a couple of different Real Studio projects.  Occasionally, we find that changes to code are not getting saved to disk despite what the IDE.

In both instances we had things in the code editor not get saved.  The sequence was this:

  • Open up code editor.
  • Make changes (dirty flag goes on).
  • Save (dirty flag goes off).
  • Close project and then open it back up.
  • Code changes are not saved.

There is a thread on the Real Studio NUG http://www.realsoftware.com/listarchives/realbasic-nug/2013-01/msg00188.html about this very issue and it appears that it might be a Mountain Lion issue.  I wouldn’t necessarily disagree, EXCEPT that I was using Mountain Lion with Real Studio 2012 Release 1 with Mountain Lion and never noticed this issue.  As someone working on projects all day long and using version control format I think I would have noticed it before R2.

Movie of our code loss:


For us the problem seems to occur when using the VCP project format in 2012 Release 2.  That might be spurious data as we use VCP for practically everything and most of our projects are running in R2.  This has happened in both desktop and Web Edition projects.  Only 1 of these projects is being actively used by multiple people.

In one case I did a Save As over the existing VCP files and it appeared to make everything better and I’ve not seen the issue (in that project) since.  I have not tried using Disk Utility to check permissions and other disk errors.

Is it a pure Mountain Lion issue, is it a Real Studio issue, or a combination thereof?  Regardless, this is a very serious issue that the community needs to help figure out.

Have you seen this issue?  Was it using the binary or VCP file format?  Did you do anything to try and fix it?  What and how did that fix work?


As seen in the comments section it appears that Norman from Real Software found the issue we were seeing and has it fixed.  To recap: my bug only manifested itself in 2012 R2 version control format projects.  You had to change source code in the event of a control on a web page and not change any property anywhere else on the page nor any code in any of the methods.  It should be fairly rare to see this bug and we only found it because we hit that exact sequence.

Anyway, good news that it was found and fixed.  I don’t think it’s the same bug as reported in the NUG though it might be distantly related.  Only RS will be able to discover that.

Real Studio Training Day Early Bird Pricing Ends Soon

Training Day Banner 2

Real World is the best place to catch up on the latest things related to Real Studio.  It’s also the place to find a higher concentration of Real Studio developers than anywhere else on the planet!  I love going and talking to everyone.  More information about Real World at http://www.realsoftware.com/community/realworld.php

We are holding a training day on the day before Real World starts (registration and a meet and greet are that night).  You can find out more information on our training day at http://www.bkeeney.com/realbasic-training-section/training-2013  Our entire staff will be there to help answer your questions on databases and on finding those things to help you polish your Real Studio applications.

January 5th is the last day to get the early bird pricing for both Real World and our training day.

Hope to see you there!