Happy Birthday, Macintosh!

There have been a number of trips down memory lane this week regarding the Macintosh so now you’ll have mine.  If you’ve been living under a rock you may not know that the Macintosh was introduced 30 years ago this week.  It truly changed computing and it certainly changed my course in life.

I entered college in the Fall of 1985 to become an electrical engineer.  While PC’s weren’t unknown at the time they were still expensive enough where they weren’t common.  In the fraternity that I joined, they had two(!) IBM PC’s sitting in the basement ‘computer room’.  We were praised by the national fraternity for having all of our books on Lotus 123.  Looking back how quaint.

As with any fraternity we had our various committees and in the Fall semester of 1986 I ended up being the chairman of the Parents Committee and it was one our charges to send a newsletter out to parents to inform them of all the great things their kids (and money) were doing.  For many years we had people that worked at the newspaper and had access to the Linotype machine where we could print out the text at high resolution, lay it out on boards for printing.  That semester we had no one on staff and I was scrambling to figure it out.

One of the older Brothers worked at the school computer lab.  He mentioned they had these new Macintosh computers and this thing called a LaserWriter printer that was ‘very cool.  He handed me a copy of MS Word and Aldus PageMaker and told me to go figure it out (ah the days before anti-piracy solutions).  I was reluctant but curious and got to play around with the two apps on a Macinoths plus.

I was intrigued and hooked.  I had used quite a few different types of computers, TRS 80, Apple II, IBM PC’s, Atari to name a few but the Mac was something special with its 9 inch black and white monitor and its mouse where you pointed and clicked and dragged things in a What You See Is What You Get (WYSIWYG) environment.  It was SO intuitive.  If you didn’t know the exact command you could find it in the menu’s.

My parents newsletter went out with relative ease and our chapter won an award for innovative newsletter.  The following semester I was in charge of the Alumni Committee and we won an award for the newsletter we did then too.  From then on I can’t tell you how many newsletters I did for the fraternity.  Again, looking back on 30 years they’re pretty cheesy but superb for the time.

This was an engineering school so we were predominantly IBM PC’s (this is long before Windows came into play).  Our classes expected us to use PC’s, the software was PC only and I stuck out like a sore thumb.  It was common practice at the time to do all lab reports by hand and to use very expensive chart paper to hand draw lab results and it took many hours to make nice graphs.  I pissed off more than a few classmates off by turning in my lab reports done on a LaserWriter where I used Word, PageMaker and a charting app to chart my data.  The lab TA’s were impressed with my reports despite having crap data and questionable results.  This is when I learned that making it user friendly and looking pretty counts.

The rage of the era was attending Mac User Groups, or MUG’s, where you could meet with like minded Mac geeks and talk about the software you were using, get questions answered, etc.  I started one at school.  I had my own MUG newsletter (for the 30 engineering students that actually liked the Mac).  I hooked up with other MUG’s in the Chicago area and got involved with them and because of that involvement was able to help pay my way through school doing Mac training and graphic design (okay I wasn’t very good at it but I was better than most desktop publishers of the day).

One Fall (I think ’88, or maybe ’89) I went to a MUG conference in Ann Harbor, Michigan.  The keynote speaker was Bill Gates (really!) and he spoke about how well Microsoft Word, Excel, and PowerPoint versions 1.0 were doing on the Mac.  His engineers held breakout sessions that lasted ’til the wee hours of the night listening to what Mac users thought needed improving.  I even shook Mr. Gates’ hand when I passed him in the hallway.  Despite having more money at that point than I’ll probably ever have, he was just your average computer geek.  Go figure.

That conference also happens to be the first place I saw my first 1 GB drive.  It was the size of a suitcase and cost a couple of grand.  As we all filed past we kept muttering, “What the hell would you have that needed something that big?”  Remember, operating systems lived on a 1.5 megabyte floppy drives back then.  We were so naive.

At times it’s been a very long 30 years.  I remember the mid to late 90’s.  It was an ugly time to be a Mac user.  Windows was king of the hill and every year there were fewer and fewer of us.  Even though I was using a Windows PC at work I always came home to a Mac where I was writing software for fun.  I used Think Pascal and Metrowerks CodeWarrior.  I had learned Pascal in college but learned C and C++ on my own.  CodeWarrior was a great development environment in my opinion.

When I finally was smart enough to switch careers – okay my soon to be wife told me to find a job I liked before we got married – I found Visual Basic and Access gig.  It was decent and I did learn to appreciate what Microsoft had done in terms of wiping out alternatives and becoming ‘the standard’.  However, DLL hell and compatibility problems were still issues that plagued even 100% Microsoft shops.

I landed a development job working for an exclusive CodeWarrior shop doing very early Mac OS X development work.  They did a lot of fun stuff but they wanted to do some rapid prototyping of an app idea and since I was the new guy in the office they told me to look at this thing called REALbasic.  I did and without too many issues I created a proof of concept for a photo storage and management application – the iTunes for photos if you will.  Sadly for all of us, iPhoto came out just a few months later and killed the project.  But my intrigue for REALbasic remained and I kept working on small projects and when it could do Macintosh AND Windows builds with just a click of checkbox I was sold!  It was the best of both worlds.

One thing that I recall vividly was my reaction when Microsoft was officially convicted of being a monopoly.  I was sure they would NEVER again have 95% marketshare because the only way they got it initially was to do it illegally.  So far history has proven me right.  Of course the iMac, iPod, iPhone, and iPad have had something do with it.

When I started doing REALbasic (now Xojo) consulting 13 years ago few people cared about Mac versions of their apps.  A few years later when the iMac and iPod started to reinvigorate Apple it was a common theme to do a Mac version to keep the boss happy.  Nowadays, nearly all of our consulting clients want a Mac version first and if we can do a Windows version to keep the accountant happy (who is running some accounting app that’s still Windows only) that’s great.

Thirty years is a good chunk of my life.  I can remember life before the Macintosh but working on that first Mac literally changed my outlook on life and put me in a different path.  There are a lot of things about the Mac that made me a rebel, but also set the quality bar high.  I’m still willing to pay more for things that are of better quality from cars, to tools, to hiring contractors that work on my house because I firmly belied that you get what you pay for.

The Mac inspired me for 30 years.  I’m hoping it will for another 30.  Happy birthday, Macintosh!

What’s Your Real Studio Story? (Part Three)

In the first part of this series I talked about how I got involved with Real Studio.  In part two I talked about some of things I’m currently doing in Real Studio.  In this post I’ll talk a little about the future and what I think where Real Studio will be in the future and my needs and wants as a professional user.

For many people, using Real Studio is a Love-Hate relationship.  Mine is no different.  I’ve been using it for over ten years and while I find it easy to use and very powerful, there are times I feel like putting my fist through the monitor due to frustration.

Real Software releases a new version of Real Studio roughly every ninety days as part of their Rapid Release Model.  From one aspect it’s nice since I know when a new version is going to get released and plan for it.  I know that there will be some new features and a whole bunch of bug fixes.

Unfortunately getting a new version is often an exercise in futility because new releases can sometimes break existing functionality.  Since I work on so many projects I’m often waiting on a particular bug fix in the next version so I’m forced to upgrade.  The frustration of finding yet another bug upon trying the new release is sometimes too much.  If you find me grousing about Real Studio (see last summers Windows rants) it’s generally after one of these types of upgrades.

I’ve been very critical of RS in past because of new features that just plain don’t work.  Rightly so, in my opinion.  New features don’t get tested in the beta process because there’s usually no documentation and usually no example projects showing how it’s used.  Either case is bad and it has to get better.  The perception that Real Studio is buggy, wether right or wrong, has to improve.

Look, I know that every release has significant bug fixes and only a few new features.  I know because I’m part of the beta program and have been for a long time.  But as a beta member I don’t feel like the program lets me help Real Software very much.  I can’t tell you how many times I report a bug, it’s gets marked as fixed and then I have to scour the release notes looking for bug reports that look like mine.

The feedback system and releases aren’t designed to help me verify the fix.  I feel that a bug isn’t fixed until the bug reporter has verified the fix.  From my aspect it’s very inefficient and I wish it was better.  But since it’s not my system I can’t do much about other than offer suggestions.

The future on Mac OS X is Cocoa.  I expect that in the next release or two, the Mac OS X IDE will be built for Cocoa.  When that happens, you’ll know that Cocoa is really ready.  Building for Cocoa will give RB users the ability to harness some of the Cocoa goodies that Mac users come to expect from their applications.

Unfortunately, Cocoa isn’t going to help Windows or Linux as it just makes the platforms that much more different.  However, I do know that much of the work that has gone into Cocoa has involved rewriting major portions of Windows and Linux to fit the newer event models rather than the old Carbon/Classic model.  I don’t know the specifics but it wouldn’t surprise me if almost all of the frameworks was rewritten accomplish this.

I’m not sure where Windows is heading in the future.  Real Software is a Mac heavy company and it’s hard to know how serious they are about Windows.  Last summer there were some very easy and very serious Windows bugs that bit me very hard (because of the upgrade cycle) that very nearly cost me a big project.  I just don’t see much going on for advanced Windows support but perhaps that is just a byproduct of the march to Cocoa.  After ten years they still don’t have full COM support and without it there’s just a bunch of stuff that Real Studio won’t be able to do.  It’s also unknown when 64bit support is coming and when Microsoft will switch over to a full 64 bit OS.  I think this is as every bit as important as the switch to Cocoa on the Mac side.

I have reservations about Linux support.  I wonder if the time and effort is worth it in sales for Real Software.  As a consultant I get no one asking for Linux apps but perhaps that’s anecdotal evidence since I’m heavy into Mac and Windows development.  Also anecdotally my blog and website just have a few percentage points of Linux users that visit on a regular basis.

We know that a User Interface change is coming.  Geoff demoed it at the Atlanta Summit but no pictures have surfaced yet.  From what I can remember, it should reduce mouse clicks as the Project Tab will be easily accessible all the time.  Unused events will not show in the Events list until you add them (I believe the most common event(s) will automatically be added).  A new tool palette was revealed that reminded me very much of xCode/Interface Builder.

I would also expect a lot of the Web Edition editor features will make it into the new IDE.  The in-line editors are generally okay but I’m not a huge fan of them.  I really hate the new Tab Order Editor as it’s confusing once you get more than a dozen controls on the window.  I’m also not a big fan of the object handles (that allow you to resize controls) since they’re a major pain to use – they disappear when you’re resizing.  This means that controls have to have special visual modes to show their sizes unlike the current Window Editor where controls have a visible outline.

One feature that I do like is the pasteboard that is automatically populated at the bottom of the WE page editor when placing non-visual objects (like timers).  This probably means that Dialogs will be rewritten to act just like the new WebDialogs.  One can hope that they will retain the existing methods.  I also expect the Radio Button control to be replaced by the RadioGroup – again, similar to what Web Edition did.

Some of these changes make a lot of sense from a beginner perspective.  They are common questions from new users and are a solution to aid them.  From a power user perspective I’m trying to be as open as I can to the changes.  Some will grow on me I’m sure with usage.  Others, I’m just as sure, will make me pine for the ‘old days’.

We can only hope that Real Software has a feature complete IDE when it makes it into the beta program and lets hope that they’re not adding major functionality to it during the beta.  Otherwise I expect a chorus of very vocal naysayers and boo birds.  A User Interface change is a big deal and should not be taken lightly.  I hope they do their own (very strenuous) internal testing on it before foisting it on us.

Eventually, Real Software will switch the back-end compiler to LLVM.  RBScript is already using LLVM and while that was a significant step, it’s probably going to be a lot of work to switch over all of Real Studio to it.  If my sources are correct, they’re going to writing their own linker for Windows which I have no doubt is more work than they expect (Cocoa was only going to take 18 months remember?).

Will LLVM lead to Real Studio being able to compile for iPhone and other mobile devices?  My answer is a big maybe.  I have a hard time figuring out the marketing for including mobile devices in the current product other than to saying you can reuse much of the same code, but just like with Web Edition you really have a separate product with separate editors and separate compilers.  I have no problem with a mobile optimized IDE that leaves the cruft of desktop and web apps behind.  I think it could be brought to market faster that way too.  Like much of the rest of this post, it’s pure speculation on my part.

One thing I wish was improved was the Real Studio debugger.  Anyone that’s come from the Visual Basic and .NET world understands what I’m saying.  The Real Studio IDE debugger just isn’t easy to use.  No watchpoints and always having to refer to the listbox to view variable values is huge pain (wouldn’t it be nice to hover your mouse over a variable and get the value in a tooltip?).  Many Real Studio users don’t even realize that you can view the call stack since it’s a popup menu (poor UI choice, in my opinion).  Many also don’t get the whole breakpoint and exception handling either.

There is still a bunch of essential controls missing from the standard control list.  After ten years there’s still no date, time, or calendar control.  While the standard listbox is fairly powerful, it’s a beast and you just get to a certain point where it’s too slow and cumbersome to use.  For those needing them, they’re forced to use a 3rd party set of controls.

I think much of these limitations is all based on how Real Software uses the tool themselves.  The IDE has absolutely no need for grid, date, time, or calendar controls.  You could certainly argue that the reason why the TextArea RTF support is so weak is because the IDE has no need for it.  The same with the lackluster support for TextField masks.  Likewise, to the best of my knowledge, the IDE does not use the built-in reporting tool and, it too, suffers from having no strenuous use from the company that designed it.  Modern toolbars?  Need I say more?

I’ve argued for years that RS could really use a consulting group that bids and works on projects just like the rest of us consultants.  A lot of the projects I work on run into the same constraints time and time again and I’m forced into less that optimal solutions.  I can submit Feedback reports until my fingers bleed, but until RS has to fulfill a need for themselves it probably won’t happen.  Personally, I’d welcome them into the consulting business.  Sure, it means more competition for me personally, but I’m okay with that as it will make the product better.

Sorry for the rambling post as there are lot of things that I’d love to see RS do a better job at and improve in the product.  I really do appreciate the work they’ve done as it pays for my, and my employees, salaries.  As a professional user my needs are vastly different than a majority of Studio users but as someone who spends a considerable amount of money on yearly license updates and the referral program, and spend a lot of effort selling the product to clients I feel that my needs should be aired publicly.  My time with ARBP has shown that many of you agree to varying degrees.

Those are some of my wants, needs, future predictions, fears, worries and gripes.  What say you?

 

What’s Your Real Studio Story? (Part two)

In part one of this series I talked about the early chapters of my Real Studio story.  Today I’ll talk about some of the things we (because we have multiple employees) with Real Studio.

Let’s go back to the 2008.  That was the last year that Real Software held the REAL World conference in Austin, Texas.  I begged Real Software to let me have a meeting at 8:00 AM to hold an organizational meeting for a REALbasic users group of some sort.  I was surprised at the turnout and the Association of REALbasic Professionals (ARBP) was born.  http://www.arbp.org

Starting ARBP has been a job of persistence and overcoming inertia.  Since we started with nothing: no organization, no leaders, no website, no expectations, we really had no idea what we were going to be when we grew up.  Thankfully I was supported by an awesome group of dedicated individuals that really helped push the organization, and me, along.

In three years, ARBP has hosted two conferences.  The first was in Boulder, Colorado in 2009 and the second was in Atlanta, Georgia this past March.  Both of those conferences were recorded and are available for ARBP paid members.

Besides helping organize both events I’ve spoken at both of them.  So has my #1 employee, über programmer, Seth Verrinder.  Seth has been with us for three and a half years and has been an awesome addition to the team.  Without him, we wouldn’t be as successful as we are.  Between the two of us we’ve also written a fair number of the tutorials, newer projects in the source code repository, and articles.

Sharing code with the community is great way to contribute.  Many of us ‘old timers’ have a library of code just sitting around that would contribute to the community and help people just starting out with Real Studio.  Think about adding your source code to the ARBP Source Code Repository.

Speaking of training, in late 2009 I was contacted to do some video training for Real Studio.  They only wanted about eight hours of video and I felt that I couldn’t do the language or the IDE justice in that short amount of time.  But it did start my creative juices flowing and now I have over 30 hours of Real Studio video training material available at http://www.bkeeney.com.  That 30 hours comprises over 110 separate videos including most of the common Real Studio controls for both desktop and Web Edition.  Most videos come with a project file that you’re free to use in your own projects.  I have two complete series where I start at the beginning of a project and follow it through to the end.  Needless to say, I’ve been very happy with the results and the comments I get from users are very encouraging.

What sort of work do we do with Real Studio?  Well, it varies all the time since we’re a consulting firm.  In the past year we’ve done major updates to professional athletic training system (we did version 1 as well), updates to teleprompting software (we did the version 2 rewrite), major work a Web Edition project for an underwriting company, fixed some right-to-left language support in an existing Real Studio app, updates to a veterinary management app, and updates to credit repair software.

From-scratch projects include a PDF viewer/annotation/organizer app, a military strategy simulator, a family genealogy organizer, a front end user interface to a serial lightning detection device, a neurological test for patients with brain damage, a proof-of-concept app for a Mac OS X computer to talk to a electronic keyboard that uses a proprietary ethernet protocol, and a Web Edition app to share URL’s among registered users.  Most desktop projects are cross-platform.

On top of all that, we’ve created a number of smaller, proof-of-concept/training projects for folks that want to do something specific in RB but don’t have the time or inclination to learn it on their own.  These projects are actually kind of fun since they’re very specific and allow us to explore a control or API that we’ve not spent much time on without having to worry about the nit picky details of a full-blown application.

I’m very picky on how I organize documents (I am an engineer after all) so every now and then I go through the older directories as a refresher.  We’ve done a LOT of projects over the years and not one of them is similar to another one.

So how do I find the clients?  At this point we’ve been doing Real Studio consulting for a long time and a lot of long-term clients keep coming back for rewrites and major new additions.  I’m very happy about that as the relationship is already in place and they trust us.  It’s an awesome feeling.

Believe it or not, the video training has been a nice addition to our consulting business.  The progression is that people sign up for the videos and then after a couple of weeks (or months) they send us an email asking if we are available for work.  Because of the videos we already have a ‘relationship’ even if I’ve never talked to them before because they see how I work with Real Studio.

I’m also a member of the Real Studio Consulting Referral Program https://secure.realsoftware.com/store/consulting.php.  It currently costs $495 for twelve months and $295 for six months.  It’s worth it.  By the time a potential client sends in their information to the Find a Developer Page at https://secure.realsoftware.com/support/consultants.php they’ve already decided that Real Studio is what they’re looking for.

At one Real World I said being part of the Referral Program is “like shooting fish in a barrel”.  I still believe that.  The cost is insignificant.  One very small project and it pays for itself.  If you want to start working with Real Studio on a full-time basis, this is the place to start.

One last note on ARBP.  I’m happy, and a little sad, to say that today is my last official day as leader of the organization.  Tonight is our board meeting where a new board will take over and a new president will lead ARBP into the future.  I’m still on the board as Treasurer (assuming no one else wants it) but the day to day stuff will no longer be in my hands.  I urge you to volunteer as it’s a great organization that is always looking for help.  You don’t have to be a Real Studio expert (or professional) help out.

So those are the current chapters in the BKeeney Software Real Studio story.  What sort of projects are you working on?  How are you finding work?

 

What’s Your Real Studio Story?

All of us have a story on how we came to use Real Studio, what we’re doing with it today, and what we plan on using it for in the future.  I thought it would be interesting to get some stories on how I, and others, came to use the product.

For those that don’t know, I didn’t start off as a software developer.  I have a degree in electrical engineering from an engineering school, IIT (Illinois Institute of Technology), in Chicago.  I did take some programming courses (since they were required), but was never into programming.  That might have had something to do with the state of software development at the time since Pascal was the hot language and as engineer we were more concerned with FORTRAN and Assembler.  User Interfaces were pretty bad at the time too.

In school I joined a fraternity and was immediately immersed in the Greek culture.  Our fraternity had a lot of committees and activities that required a fair amount of planning, work and communication.  This led to being placed in the various committees that communicated with parents and alumni, and remember that this was before email and the internet.

As a freshman (IIT allowed freshmen to be Greek), we did all of our newsletters the old fashioned way.  One of our members that worked at the newspaper used the typesetter to create a high res proof, we laid it out, and then we sent it out for printing.  It was a long and rather expensive process.

They did that for years – until the year that I was on the Parents Committee and was in charge of the newsletter.  That year, the upperclassman that had done it was gone and we had no one on the newspaper staff.  Our resource was gone.  After the suitable panic period another upperclassman recommended that I take a look at one of “those” Macintosh computers in the computer lab and take a look at some program called “PageMaker”.

So I did and it was like water to a fish and that started my love affair with the Macintosh.  It won our fraternity some award for newsletter design and it helped pay my way through college as the more I did the better I got at PageMaker, FreeHand, and Persuasion.  I did a ton of work through MacTemps doing miscellaneous stuff and still have friends in the Chicago area because of my Mac work.  And my skills translated into really good looking lab reports that consistently got good grades despite sometimes shaky experimental results.

But, after graduation I entered the engineering work force and was stuck with DOS and eventually Windows.  At home I always had a Mac and was dumbfounded that more people didn’t write software for the Mac because it couldn’t be that hard, right?  So I bought the Inside Mac book series, practically every book written on Mac software development, Think Pascal and then Code Warrior and programmed for fun in Pascal and then C/C++.  During all this time I was the lone Mac user in the engineering wilderness.

Fast forward a bunch of years and I meet my wife, a long-time software developer.  She gives me permission to change careers since during all this time I’m still developing for fun and she’s “hired people with less experience.”  Cool.

At that point I get into Access and Visual Basic programming and really, really enjoy it (despite working in Windows).  Then my son is born and I have the honor to stay home with him.  Literally just a few weeks after I start staying home with him I get contacted by a local company that needs a part-time Code Warrior developer.  Awesome!

Over the next couple of years I do more and more C++ work and one day they call me in for lunch (I was remote worker) and they ask me to do some prototype work for a photo management app they were thinking of developing.  They wanted to do it as quickly as possible so they recommended this product called REALbasic which, at the time was at version 3.5.

I learned REALbasic as quickly as I could and did a quick and dirty prototype for them.  Weeks later though, Apple introduced iPhoto, so my work never went anywhere.  But, it was enough to show me the possibilities of REALbasic.

Over the next year or so I kept using RB for small utilities including one that would eventually become Task Timer.  Task Timer made me money the first week I used it because I was always underestimating the time I spent on my projects.

The CodeWarrior gig ended and I joined the Real Software referral program (still the best way to find Real Studio work, by the way) and started doing REALbasic consulting.  I’ve done that ever since.

REAL Studio (as it’s called now) has come a long way since the version 3.5 days.  It’s gone through a lot of changes.  They now support Windows and Linux in addition to Mac OS X.  Even Mac OS X support has transitioned over the years from Mac Classic and PowerPC support to Universal Binaries and soon Cocoa.

The move to Cocoa has been a long, rough road for Real Software.  I remember sitting through a Cocoa session at one of the REAL World conferences (2007, 2008?) thinking there was no way this was going to fly with the user base because it was simply hackish and way too hard to use.  With the amount of work you had to do to implement Cocoa in your RB app you might as well have learned xCode and Interface Builder.  Thankfully they pulled it and started over.

In 2005 they transitioned from the old code base and User Interface to one that relies upon REALbasic itself.  Some people hated it and some people loved it.  If nothing else, ‘eating their own dog food’ proved to be good in some respects and just as frustrating in others.  At the same time they introduced the Rapid Release Model where every 90 days a new version is released.  The upside is that you can set your calendar to when a new release is going to happen.  Every release brings new features, enhancements, and bug fixes.  The downside is that every 90 days you may discover a critical bug in of those new features, enhancements, or bug fixes.  I know I’ve been bitten by this in the past (as anyone whose read this blog can attest).

Late last year they introduced the Web Edition which was their second attempt at making web applications.  A version codenamed SwordFish was demoed earlier in the decade (2006?) but was never released since Ajax and other web technologies took off about the same time and it was apparent Real Software missed the boat on that one.  Only time will tell if Web Edition is everything they promise it to be.  It’s still very young and has some very annoying limitations as well as difficulties in deployment.

Over the past ten years as a Real Studio consultant I’ve done work in a dozen different industries.  I’ve written accounting, professional athletic training, military strategy, legal utility, movie editors, foreign country election, and credit repair applications and dozens more that I’d have to go look up.  Some of these have been for private use in a single company or individual use, some for Fortune 100 companies, some for entrepreneurs in vertical markets and some for myself.

So that’s where I came from and what I’ve done in the past.  What did you start using Real Studio for?  What version did start with and what do you remember about the ‘old days’?  Was there a transition that was particularly painful to you?