Archive

Archive for September, 2010

Ruminations on REAL Studio 2010 Release 3.2

September 29th, 2010 11 comments

REAL Studio released a point update to REALStudio this week and brought it up to version 3.2.  The only bug fix listed is a Windows-only memory leak that affected various controls.

I know that the leak affects the StaticText control and the timer.  The bug is simple to reproduce:  add a StaticText control and a timer to the window and change the text in the timer.action event.  Run it.  That’s it.

The memory leak memory was so bad that one of my Windows apps was gobbling up tons of RAM to the point where the app was unusable.  Though, to be honest, part of the huge memory leak I was experiencing was the fault of my networking code, but the StaticText and timer leaks weren’t helping matters any.

The bug was big and whether it was my ranting or enough customers complaining about it, RS fixed the leak and issued a 3.2 beta.  Which I tested and the same day logged another memory leak.  The original leaks were fixed but now just by putting window.refresh in the timer event caused a leak in the StaticText control.  I actually logged it improperly because I wasn’t sure where the leak was and speculated on several different possibilities.  The RS engineer in charge of it added a simpler example project into the Feedback report the same afternoon.  So, obviously, they knew about the issue.

And yet, Release 3.2 went out the door with that known memory leak in place.

I’m not sure how I feel about it.  I spent an awful lot of my own time (because I sure as hell can’t charge the client doing all this testing to fix a problem that’s not theirs).  I provided timely feedback (less than 12 hours from the beta release) to test and document the bug and it was released anyway.

R3.2 is better, but it still has a major hole in it that may or may not be acceptable for my Windows builds.  I’m very disappointed that R3.2 saw the light of day since it obviously wasn’t really fixed.  In many ways I feel like this was a “Let’s shut Bob up and give him a new build.”  I know that’s not the case or at least I hope not (not to mention that sounds sort of narcissistic).

I really am starting to question their commitment to the Windows environment given their current workload.  Cocoa is late but is getting closer to reality all the time.  The new Web Edition is generating lots of buzz and even though the Cocoa and Web Edition teams don’t overlap much, the keyword is ‘much’ so it means there is *some* distraction.

It’s been another miserable week of 12 hours days trying to debug my app AND Studio at the same time.  So, yeah, it’s not been a pleasant one.

Formatted Text Control Version 2

September 21st, 2010 Comments off

As a consultant I use the best tools available to me and my clients.  One of those tools is the Formatted Text Control (FTC) from True North Software.  Today they announced version 2 of their excellent text editor control.

FTC is one of those controls that I find indispensable and use a lot because of its power and flexibility.  Because it’s done in 100% unencrypted REALbasic code you have complete control over how you use it.  Need to do something that it doesn’t do?  You can do it yourself if you have the patience for implementing your own changes.

FTC is big and powerful.  It has around a hundred classes that let you implement a full-featured word-processor with very little work (literally drag and drop and maybe add ten lines of code).  With a little bit of elbow-grease it’s very easy to create your own reports via code (perhaps I’ll write a little tutorial on that one of these days).

If you’re interested in learning how a control can be implemented in REALbasic using just a canvas this is excellent code to learn from.  FTC does class inheritance well, is optimized, and the code is easy to follow.

Brendan Murphy, the creator of FTC, is very responsive to bug reports and feature requests.  We’ve been users since the early days of development so you’ll see the BKeeney name in a few places in source code from bug reports and feature requests.  It’s rare to see somebody share the credit so readily.

Version 2 has a number of welcome new features and enhancements.  The first is that the alignment of the display when it’s in Page display mode.  Before it was always flush left, but now you can center and right justify it.  It’s a minor thing, but very high on my own wish list.

New search and replace functionality was added.  You can do it either programmatically or interactively.  There is also a new Replace All function.

You can now scroll to the selection which, as the name suggests, scrolls the display to the current selection (and presumably the insertion point).

A new KeyPress event was added that allows you to have more control over what characters can be inserted to the control.  Since this is an event in the TextField and TextArea controls this is a welcome addition.

A new subclass was created from the FTC.  The FTTextField is a replacement for the RB TextField control and has all of the advantages of the FTC.  This means that the FTTextField can do spell-checking, undo, and the ability to read/write true Rich Text Format (RTF) files where as the RB TextArea is fairly limited in what it can do with RTF (no graphics).

Also new in the FTTextField is the ability to limit the number of characters in the control and the ability to use masks.  Given that the RB mask property in the TextField is bad (perhaps sucks is a better word) this by itself might be worth the purchase price.

The cost of the version 2 of the FTC is $150.  A demo and more information about  version 2 is available at http://www.truenorthsoftware.com/formattedtextcontrol/

REAL Server Discontinued

September 15th, 2010 9 comments

REAL Software quietly announced on the NUG yesterday that REAL Server is no longer part of its stable of products.  They also said that current licenses for REAL Server will be honored by SQLabs, the once and current owner of the product.

This is not particularly good news for those that use REAL Server.  REAL Server was a product that was heavily hyped for several years and is no longer available for sale and support through REAL Software.

The good news is that the product isn’t going away.  REAL Server (or REAL SQL Server for those that have been around long enough) was purchased from SQLabs years ago and the primary developer, Marco Bambini, became a REAL Software employee and continued development of the product.

Marco and REAL Software parted ways several months ago.  It was not until this week that REAL Software acknowledged his departure and its effect.  It seems that as part of their separation deal, REAL Server will go back to SQLabs and be sold and supported by them.  More info here.

REAL Server, for those that don’t know the history, was originally written by Marco Bambini of SQLabs.  It was original called SQLite Server  and it made SQLite database files networkable and multi-user.

This was pretty exciting at the time because even though SQLite databases were lightweight and easy-to-use they didn’t work very well across network drives, it had none of the mechanisms required to handle multiple users, and it had no foreign key constraints.  From a certain perspective the acquisition and subsequent development of the product made sense from REAL Software’s perspective because it gave a migration path from the single-user SQLite database to an easy-to-use, install and administer database server.

Unfortunately, making SQLite into a database server proved to be difficult.  Until very recently, an SQLite database knew nothing about foreign key constraints (and even now you have to go out of your way to use them).  It also didn’t do any logic to handle concurrent users and all the headaches that go along with it (like record locking and user access control).  The fact the REAL Server did do some of this was a testament to how much work they put into it.  They fit the proverbial square peg into the proverbial round hole.

Unfortunately, REAL Server cost money and it was hard to compete against the MySQL and PostgreSQL database servers of the world which were mostly free.  For a while the license of MySQL was  a huge unknown mess (is it really any better now?) and REAL Server was marketed as a safe alternative to MySQL.

It’s hard to compete against free and well established database servers with hoards of developers contributing to it.  Foreign key constraints and stored procedures and all sorts of other goodies were already in MySQL and PostgreSQL and both continued to evolve with new features while REAL Server stagnated.

At REAL World 2008 Geoff Perlmann showed off a demo of a new version of REAL Software that allowed for plugins, written in c, to become its new pseudo stored procedures.  It was also supposed to show huge improvements in the number of concurrent users, have server side cursors, have client messaging and a host of other new features.

The demo was light on details but it was released later that year.  The last official release of REAL Server was in 2009.  However, many developers have found some of those new features to be buggy, and have stuck with the 2008 version.  Meanwhile, REAL Server has been stuck in perpetual beta since then with no appreciable work.  Now, users are stuck in limbo waiting for SQLabs to come up with a new release version.

Am I surprised by any of these developments?  No.  I always thought (http://www.bkeeneybriefs.com/2009/03/real-studio-the-good-the-bad-the-ugly/, http://www.bkeeneybriefs.com/2008/11/changes-at-real-software-part-deux/) that REAL Server was a product waiting for an audience.  And, as I said earlier, it’s very hard to compete with free, especially when you get into all of the drawbacks.  Heaven help you if you tried to get REAL Server inside of a corporate environment where database servers are specified to the nth degree and require dedicated support personnel.

This news sucks – especially if you had invested a lot of time and effort into REAL Server development in your projects.  The lack of new versions in the past year should have been a good clue, though.  Also, there were very few posts about REAL Server in the REAL Software forums.

I feel that the focus on the hobbyist developer blinds RS, sometimes, to what professional developers will gladly pay for.  Don’t get me wrong, there are a LOT of hobbyist REAL Studio developers and that’s great, but it’s been my experience that the hobbyist developers can’t pay for much and REAL Studio was a cost (even as inexpensive as it was) that most couldn’t afford.

It was a losing battle from the start, really.  It’s too bad that RS had to go through the painful realization that buying and building upon a product sometimes isn’t good enough.  It was too expensive for hobbyist developers and it wasn’t powerful enough for the professional developers.

In a nutshell it never took off and that’s sad.  It was a distraction and a drain on resources during a time when multiple developers were laid off due to the hard economic times.  Cocoa is now running into its third year of development and one has to seriously wonder if the distraction of REAL Server, even if it was just one developer, cost them some serious development time.  Certainly one could argue the money spent on development and marketing of REAL Server could have been better spent on other things.

Ultimately, the message this sends to the community is not a very good one.  From now on, we, as users, will have to weigh the impact of relying upon any tool from the company since it may or may not be supported years from now.  Granted, in this case, REAL Server is finding a new home and there will be support for the foreseeable future but what about the next new thing?  Do we have to wonder about Linux or Web App support five years from now?

What are your thoughts?

What a !$&# Week

September 10th, 2010 15 comments

It’s not been a great week – even though it’s been a short week.  I’ve now seen two separate bugs that are HUGE and affecting me for Windows.  In REAL Studio Release 3.1 there is memory leak in the Timer Class and in the StaticText class.  The end result is that my app, in Windows, will eventually chew up all available memory and bog the entire machine down to the point of being unusable.

Not good at any time, but this mean that both 3 and 3.1 are not usable for me, at least for Windows builds.  R 3 has some issues and a memory leak as well.  Thankfully, the leak is not as bad. I would go back to R 2.1 but since *that* release also has a nasty Windows bug I can’t go back to it.  Dare I go back to R 2?

Initial indications are that RS will not be issuing an interim 3.2 release, however.  This is why I think their Rapid Release Model stinks.  I’ve got two bugs that keep me from using the latest and greatest release and now have to wait to get a fix.

Your plan runs out in the next 60 days or so?  Sorry.  You’re S.O.L.  It might be great for RS but the Rapid Release Model is becoming the Rapid Bug Model for me.  Pretty soon, it’s going to start costing me clients.

———-

A couple people have asked me what I think about Apple changing their stance on letting 3rd party development tools for developing iOS apps and what that means for REAL Software.  Meh.

Really, there are so many items RS has to get done before thinking about iOS that it’s not even a concern right now.  The only thing that would concern me is if they decided to jump both feet first and devote a lot of resources to it.  Cocoa has taken way longer than anyone ever dreamed of (I feel that personnel changes have bit them hard on that one) and now the highly anticipated Web Edition will distract them too.

Don’t get me wrong, I’m looking forward to the Web Edition.  I think being able to leverage all my RB knowledge for iOS apps is a great idea too.  But, as they say in Missouri, “Show Me!” – I’ll get excited when I see them and can work with them and keep my business in the black.

Atlanta REAL Studio Summit 2011 Call For Speakers

September 3rd, 2010 1 comment

The Association of REALbasic Professionals and REAL Software are hosting a conference in Atlanta in March 2011.  The window to select speakers is about to close!  If you’re interested in speaking at the conference, I recommend you take a look at the Call for Speakers page on the ARBP site and sign up as soon as possible.

With this weeks major announcement from REAL Software about the new Web Edition, I know we’ll have at least one session at the conference devoted to it!  REAL Software confirmed this with me this afternoon.

So why go to conferences?  Good question.  Here’s a decent video about meeting folks in REAL Life: http://elizabethpottsweinstein.com/irl This video is about South by Southwest, but you get the point – the reasons are all valid for the REAL Studio Summit.

Many of the people I’ve met at the old REAL World conferences have become friends and I value that friendship greatly.  Without the REALbasic conferences I would not have made these friends.  Without the conferences there would not be an ARBP organization (which in turn would mean no more conferences).

I hope that you seriously consider the conference and if you have something to share I encourage you to sign up as a speaker.  Please do it quickly as we need to start making decisions on sessions.

Categories: ARBP, REALbasic Tags: ,

Failure is Always an Option

September 2nd, 2010 5 comments

The September/October 2010 edition of REALbasic Developer came out this week.  Marc Zeedar has additional information about the REAL Studio Web Edition and includes some details that I didn’t cover in my Web Edition blog post.

JC has an article on Trapping For Errors which is a good read.  Coincidentally, in my regular column I talk about how having a program fail can be instructive and how ‘failure is always an option’.

More information on REALbasic Developer Magazine can be found here.

In almost all of my applications I have an automated bug reporter class that allows the user to send me the Runtime Error type, the Error Stack and (hopefully) a brief description from the user on what they were doing.  It lives only in the App.UnhandledException event and nowhere else.  It’s far from perfect, but it’s better than nothing.

What do you have in your RB apps to get that crucial error information?

Categories: RB Developer, REALbasic, Web Apps Tags: