Archive

Archive for March, 2009

RB Pain Points #3: Reporting Tools

March 30th, 2009 Comments off

Nearly everyone coming from the Visual Basic world finds this hole eventually.  It was perhaps the very first feedback I ‘voted on’ in the old RS feedback system.  It is also a consistent talking point with REALbasic developers and it made a strong showing in the ARBP 2008 Enhancements Survey.  Some things have changed, however, and it bodes well for the REALbasic community.

The venerable REALbasic reporting tool, On Target Reports, is still actively developed and is used by many RB developers.  However, I know just as many RB developers that are frustrated by long-standing bugs and lack of power features.  Personally, I’ve stopped trying to use OTR because every time I do it frustrates me.  Your mileage may vary, however, so I highly recommend giving it a try.  ARBP has an OTR tutorial in its source code repository.

There are several new comers to the scene that you should also think about them as well.  The first is RSReport from Roth Software.  RSReport is not a ‘banding’ report generator like OTR.  Each element (text, graphics, line, rectangle, etc) must be placed on the report at runtime.  Their demo application has several good examples of its reporting capabilities.  RSReport has several drawbacks:  the first is that it does not have a graphical report designer.  The second is that they don’t offer support for the reporting tool (though they have been responsive to support emails).  I recently did a review of RSReport in the ARBP Blogs and Opinions section and added a tutorial in the ARBP Source Code Repository.

Long-time REALbasic developer Andy Dent recently announced the release of RB ReportWriter.  It’s based on the reporting tool he developed for OOFile (an open-source C++ database).  It’s still young but Andy said to expect some big changes in the project soon because he’s using it for a current project.

Paradigma Software, producers of the database Valentina, have added a reporting tool to their Pro version.  Valentina Reports only works with the Valentina database, however, so it’s not quite as flexible as some of the other tools but that’s not necessarily a bad thing.  The Valentina database works with multiple languages, not just REALbasic, and for some developers that might be a huge bonus.  For Mac developers this is a great option because there just aren’t that many reporting tools for Mac OS X that work with Cocoa.  RB Developer had a review in a recent edition and ARBP has a review in the works.

Einhugur has recently announced that they will soon be previewing a reporting tool soon as well.  We have no other information than that currently but considering the quality work they’ve done in the past this is a good thing.

ARBP also added a Reporting specific topic in their forum (free registration required for access).  It might be a good resource as you start evaluating the reporting tools available to you.

We’ve been looking to Real Software to provide a solution for years.  Now, instead, developers have made their own.  RS still needs to beef up their printing support in REALbasic but it’s nice to know that RS doesn’t need to do everything themselves.

Obviously none of these solutions is integrated with the REALbasic IDE.  I’m not sure that it has to be or that it is even desirable now with the multiple solutions available.  If they did do their own reporting tool would it hurt more than it helped now?  Would that be a good Studio only option?

Needless to say I find this sudden explosion of options very exciting.  This says to me that these developers think REALbasic is doing well and that they can make some money in the reporting tools market.  People vote with their wallets even in hard economic times.  This pain point just received some relief.

What say you?

Categories: Opinion, REALbasic Tags:

BSG Retrospective

March 26th, 2009 Comments off

I’ve been a science fiction fan since…forever.  The first scifi series that I can remember reading was Isaac Asimov’s Lucky Star series in fourth grade.  I think I’ve read everything from Robert Heinlein, James P Hogan, Peter F Hamilton, Alistair Reynolds and Orson Scott Card ever published.  I peruse the Baen website just so I can get decent scifi on my eReader.

Science Fiction on television and in the movies has generally been pretty awful and campy.  I enjoyed all of the various Star Treks and liked Babylon 5 and various others, but none of them compared to the updated Battlestar Galactica.  BSG was raw.  It was gritty.  It was in your face.  People died (regularly).   There were no win-win situations – just ones less bad than others.

Some people criticize BSG for having a major religious overtone throughout the series.  I think that’s part of what makes it so special.  Scifi often takes two approaches to religion.  It’s either non-existent or it’s a zen-like universal force (as in The Force in Star Wars).  BSG took it to the next level because one of its central themes is that the two sides are fighting about whether which god or gods is the true one(s).

If that sounds familiar it’s because it is.  Scifi is often one of the few philosophical avenues we can explore subjects and not be considered bigoted by a judgmental society so bent on taking offense at talking about our differences.  Instead of talking about Christians vs Muslims BSG talks about the human gods versus the Cylon’s one god and how they go to war over that idea.  It’s an ugly war.  Humans and Cylons do awful things to each other and perhaps worse, to their own side.  Throw in Cylon resurrection (and subsequent loss of it) and you get some interesting stories.

Scifi also has a tendency to gloss over politics as well.  BSG in its gritty way lets us explore our cannibalistic and dysfunctional ways of dealing with extreme situations.  Take 50,000 people (at the beginning of the series) and make them run for their lives.  Throw in shortages of everything.  Crowded living conditions.  And then throw in every mix of life from the military to refugees to convicts and see what happens as they fight (but mostly run) for their lives.  I don’t think I saw a final count on survivors at the end of the series but it’s around 20,000 (?).  Along the way we have dirty politics (trying to throw an election), a military coup,, trials and executions, and unification with former enemies.

It’s kind of funny because few TV shows (much less scifi stories) talk about sex, drinking or even bathroom habits.  BSG takes it to the extreme by having the ship crewed by a mixed crew of men and women in close quarters.  Not having been in the military I can only guess how far off this vision from current reality is but I thought it made for a good juxtaposition of our reality.  You put men and women together in stressful situations and you’ll get the sex, drugs and rock and roll (All Along the Watchtower?  Who the F picked that song?  Not that I’m complaining but it seemed an odd mix.  Jimmy H was a science fiction fan, if you didn’t know).  I don’t remember any gay characters in BSG but it’s hard to explore everything in a series.

The characters in BSG are incredibly complex.  You get to know even the ancillary characters in a way that makes you know them feel for them.  I think the whole series should be subtitled “The Redemption of Gaius Baltar” because of his incredible journey from traitor of humanity to puppet politician to narcissistic prophet and finally to selfless human.  It’s quite the journey.

Some say the ending was bad.  I disagree.  It’s rare for a TV series to have an ending at all and I thought it was awful to end at finding a radioactive Earth (from what we thought was the end of the series last year).  I’m glad they were able to do the final episodes because it gave us some closure.  There is no possibility of movie sequels because they gave it an ending worthy of the series.  In case you haven’t seen the ending I won’t spoil it.  (I guess there are some spinoffs from BSG but I don’t give them much of a chance to live past a couple of seasons.)

If BSG wasn’t the best scifi television series ever (to date at least), what was it?  What was your take on the series?  Was it good, bad or meh?

Categories: Opinion, Personal Tags:

RB Pain Points: Solution #2

March 24th, 2009 Comments off

This one is totally my mistake.  I own up to it.  I released my latest app to a very good beta tester who happens to be German and is, quite frankly, the best beta tester I’ve ever worked with.  So he writes to me and says that while the app works great, he’d really like it to be in German.  This obviously would have been a lot easier if I had thought about it 6 months ago rather than 6 hours ago.  So I started doing some research.

The RS recommended way is to create a dynamic string constant and export it to Lingua so the various languages you want to support are added.  Again, this would be fine if I had started with this 6 months ago.  Going back and taking all the control captions and making them a constant isn’t hard, just very, very time consuming.

Another big drawback to the RS approach is that you have to have create a separate executable (and subsequent installer packages) for each language.  With IDE scripting this isn’t a horrible solution but it’s less than optimal.

An ARBP member uploaded a Dynamic Localization example project to the ARBP source code repository last week that is interesting.  It uses a database to store the strings in language pairs so as long as you have your db populated it would allow the user to change the language on the fly.  It uses subclassed controls to query the database and replace the strings.  This allows the user to switch the language of choice on the fly.  I’d make some changes (naturally) to allow users to add their own language if they want and make it cross platform (if I can).

An issue that isn’t addressed in either method is dynamically changing controls widths based on the size of the text.  Some of the Northern European languages can be quite long when compared to English and some of the Asian ones can be very short.  Apple handles this by having all of the supported languages in separate UI files in the application bundle and the developer can adjust UI dimensions based on the language.  For the end user it’s great but for the developer it can be somewhat time consuming (assuming they do it at all).  Microsoft handles it similarly (without the bundle obviously).

Assuming I want to do it the RS-preferred way, I’d have to go through the project, control by control, copying and pasting the string into dynamic string constants.  Not undoable but it is time consuming.  I think this is one of those places where IDE hooks would come in handy.

It would be awesome to have an IDE hook that allowed me to iterate through the project, find strings in control captions, add them into a module (after searching to see if it already existed) as a dynamic string constant and then replace the control caption with the constant.  I would also like to do this with strings in code as well and this one’s a bit trickier because of SQL statements and the like.  This is just one example of what IDE hooks could do but it would save me a boatload of time.

IDE hooks unleashes the imagination of the community.  It can provide solutions to common problems that RS doesn’t necessarily think are problems, or are so far down on their priority list that it would be years before they get to it.  I first started thinking about this problem was years ago before exception handling was added to RB and the only way to add error handling at the method level was to add it yourself.  At the time I was relatively familiar with VB6 and a couple of utilities that added error handling to every method in every object with a click of a button.  The only solution then (and now sadly) is to use the XML format and create an app to do it for you, or to break the RB EULA and use some of Thomas Templemann’s projtools code.

RS’ argument for not having IDE hooks is simple.  They feel that they’d be held responsible for IDE hooks gone awry.  Despite what I think, a vast majority of RB users wouldn’t understand the difference between RB code and the hooks – if it runs in RB it’s RS’ responsibility.  For an example, all you have to do is look at the complaints about RB that are really a plugin problem.

An example solution already exists.  Look at Apple and duplicate what they did with the iPhone.  If you want to play in the RS’ sandbox (the IDE) the IDE hook has to be approved by them and distributed by them.  The trick is determining how IDE hooks get tested and approved and what happens in every new release of RB.

Personally I think this approach could unleash the power of RB in ways that RS could never imagine or do on their own.  It instantly creates a third-party market for developers and could (potentially) be an additional revenue stream to RS (probably not a big one in my opinion).

So what say you on IDE hooks?  Am I missing a solution for my localization problem?

Categories: Opinion, REALbasic Tags:

RB Pain Points: Solution #1

March 19th, 2009 Comments off

Ever since REALbasic went from the single Windows executable to the separate DLL folder people have complained.  They liked the single exe distribution and so did I.  It was incredibly convenient.  But it was also a bad idea and I won’t rehash the arguments here.

Occasionally I see people asking for the option to go back to the single file exe.  I’ll agree to it only if that checkbox is labelled thusly:  “I want a potentially unstable Windows executable that Microsoft has said on multiple occasions will (not maybe) cause this executable to fail on certain machines for weird and mysterious reasons.”  I would then make then confirm it with progressively more wordy, lawyeresque verbage, message dialogs until they agree to give away their first born child if they ever complain to REAL Software about said problems.

The answer to their problem is really pretty simple, in my opinion.  What they really want is REALbasic to create an installer for them automagically.

I believe that most of the developers wanting this are developing on the Mac platform.  They don’t understand what an installer does for Windows or how to even go about creating one.  The single file executable made sense to them.  Installers can be a bear if you’ve never done it before.

Using Inno Setup isn’t very hard but you have to do from within Windows and for some folks that’s like wrestling with a porcupine on an air mattress.  Not everyone has a machine capable of running VMWare or Parallels or another machine sitting around either so it can be a chore to achieve that.  Wouldn’t it be awesome if REALbasic could make an installer for you?

Of course the trick is making it robust enough to handle the typical scenarios like shortcuts and putting files in odd places, uninstall routines, registry entries, etc.  Matter of fact, if I had my choice, I’d add a better GUI front end onto Inno Setup (there are some options on Windows to do just that but I digress) and make it available for REALbasic on all three platforms.  Now THAT would give some immediate relief to a lot of cross-platform developers.

Get that done first and then, if possible, figure out how to create a Mac OS X disk image from Windows and Linux.  Then determine what the best format for Linux folks are.  To get it going added as quickly as possible I would make these installers dirt simple and make the simplest platform specific installers possible.  Then see what changes need to make for developers that are using them.  The key is getting into developers hands and go from there.

As a side note:  One of the more popular tutorials added to the ARBP source code repository is on how to use Inno Setup to create a Windows installer.

So what are the pain points in RB for you?  Do you think you have a solution?

Categories: Opinion, REALbasic Tags:

REAL Studio: The Good, The Bad, The Ugly

March 18th, 2009 Comments off

First, the good news is that the Personal edition isn’t changing features or pricing.  The pricing for the Professional Edition is getting lowered from $500 to $300 (with a $150 upgrade).  More people will be able to afford the Professional Edition than ever before.

The Studio Edition will now cost a whopping $1495 (with a $749 upgrade price) but that’s for 12 months instead of the usual 6 months and works on all three supported platforms.  It comes with REAL Server with an unlimited connections license and priority technical support.

The bad news is that features are getting removed from the Professional Edition and getting moved to the Studio Edition.  These features include:
•    The Profiler for optimizing code performance
•    Remote Debugging
•    IDE Scripting

I consider the announcement a mixed bag.  RS obviously recognizes that they need a new product mix.  I’ve long felt that REALbasic was underpriced for what I do.  I understand that not everyone is like me and that this will cause some folks to move away from REALbasic which is bad news because once lose customers it’s hard to get them back.

REALbasic’s strength is cross-platform development.  By removing the remote debugging from the Professional Edition they’re screwing over anyone currently using the Pro version and I just don’t get it.  Because if they really want to do cross-platform applications they will now have to buy TWO (possibly three) editions at $300.  That’s not a price decrease that’s a price INCREASE.

What I find an absolutely insane idea is removing features from an existing product and creating a more expensive product with not a whole lot of benefit.  I use the Profiler rarely.  IDE Scripting is so pathetically hard to use that it’s not a feature.  The only must-have for me is Remote Debugging because it’s the only real advantage that REALbasic has.  And if I have Remote Debugging having a license for all three platforms is kind of pointless except in rare situations.

REAL Server?  I don’t think so.  Without the same feature set as MySQL, PostGreSQL or nearly any other ODBC database I just can’t use it for my clients.

Where are the reporting tools, the grid components, IDE extensions that professional level users need, want and demand (see ARBP Dec ’08 survey results)?  How about a true cross-platform web browser control?  What about ActiveX controls?  Those are some features that might be worthy of putting in the Studio edition.

I guarantee that Remote Debugging will be the one feature that everyone will be pissed off about losing.  Some people will say that RB ‘just works’ cross-platform and I’ll call BS on that.  It takes a fair amount of work to make a very good Macintosh, very good Windows, or very good Linux application and remote debugging is the only sane way to do it.

Some people are going to call this a money grab by RS but I don’t think.  I believe that they will soon be flooded with cash as people rush to upgrade before the new release and have a lot of cash on hand.  Will that still be true a year from now?  I don’t know but I hope RS puts the money they get now in a safe bank account for when sales aren’t as good.

I believe that the feedback given to RS before this announcement has gone unheeded because I can tell you that there are some people really pissed off about it.  Me, not so much because I see the need for it in the long run.  I would have preferred a simple statement of something like:  “We will be adding new Studio only features in the upcoming releases.”  That’s all that needs to be said for me.  Alas, no word (or hints) on new features.

The cynical part of me says that this might be RS’ “New Coke” moment.  They do something so painful and the user-base screams so loud they relent and put remote debugging back in the Pro version.  Then they’ll be heros and they’ll still have their new product mix.

How will this affect you?  Other thoughts?  You think I’m wrong, right, or somewhere in between?

[UPDATE]  RS is now saying that the Remote Debugger will stay in the Pro Edition.  Check out the announcement here.

Categories: Opinion, REALbasic Tags:

My Offshoring Experience

March 16th, 2009 Comments off

Well, okay, it’s not a bad story.  But it should serve as a reminder that offshoring isn’t for everyone and it comes with certain risks.

I put my project up on Guru and in a day I had a half dozen replies – all of them from Indian companies.  I sent emails to several and ended up choosing one that had a US representative because I felt it was important that I be able to communicate with the people doing the work for me.  Their representative is an American who walked me through on how to get going and asked good questions about the project.

A few days later they gave me the price (which was reasonable) along with a fairly detailed project scope.  I gave my approval and I promptly received an invoice from Guru for half the price up front which I thought was reasonable.

I talked to an engineer from India several times and was pretty happy with the process.  I was invited to see their progress via screen sharing and how it worked (live) on their demo server.  Generally I was pretty happy with the progress though it took three weeks rather than the two they had initially talked about.  Really, the time frame was no big deal.

I asked when they were going to merge the existing customers and they came back with another price!  According to them the number of customers in the database exceeded the number they had expected and that it would take 25 hours to manually enter them by hand.  Oh, and it will cost an additional $600 to do it.  (Keep in mind that the original contract said they’d convert the data).

Wow.  I don’t know about you friends, but in 25 hours I could write a whole import routine that would do the whole thing in seconds.  And these people were supposed to be experts at using the CMS software.  After a very brief phone conversation they halved the price and I said go for it because it was holding up my business.

The saga continues because to get the software changes put on my server I had to pay the entire remainder of the bill.  Again, I balked and paid them all but $100 (plus their additional money for the ‘conversion’).

It took them a week to get the conversion done and then I started getting some trickle down reports from international users reporting that they couldn’t create an account.  After investigation I determined that their code didn’t have proper error handling which I reported to their engineer.

To their credit they’ve responded promptly to my emails but I doubt they will fix it given they’ve been ‘working on it’ for over three weeks.  I have no leverage over them.  For $100 it’s not in their interests to spend that much time trying to fix the bug.  What am I going to do?  I dunno, it’s not like I can take them to court, but I can give them unfavorable ratings on Guru and I can write blog posts about their behavior and shoddy work.

I won’t name them because they still have work to do (assuming I can get them to do it).  If you want to know who they are, send me an email.

All-in-all I am very unimpressed with their business practices.  If you are interested in off-shoring your project I think you should think twice about it.  Once they have your money you don’t really have much leverage with them.

Let me state this for the record:  I do not believe that all off-shoring companies are bad.  This one has certainly not been good for me.  Obviously I’m not their average client.  I am a developer myself.  I have multiple clients that I work with on pricing and bug fixes and so forth and I don’t think I’d be in business very long if I treated my clients like I’ve been treated.

What stories do you have about off-shoring?  Any similar experiences?

Categories: Business, Opinion Tags:

Listen To Your Elders

March 11th, 2009 Comments off

After a particular successful startup, where I sat around doing nothing (this is good), I went to another plant to install and get running the exact same piece of equipment with the same software.  It went horribly wrong for numerous reasons that I don’t even remember but half of them were my fault (or if not fault then a failure to plan properly).

There’s nothing like having a gristly old plant manager (former marine) smoking a cigar right behind you tapping his watch while you’re sitting on a 5 gallon bucket with your laptop sitting on another 5 gallon bucket in 95 degree heat as his workers are sitting around waiting for you to finish.  It’s not a position I particularly enjoyed and thankfully it didn’t happen like that ever again.

After the problem was fixed and the entire plant could start working again I said something like, “Well, at least the last one went better.”  In all seriousness, he looked at me and said, “Bob, one oh shit wipes out 50 that-a-boy’s.”  No truer statement was ever uttered.

Forget about your successes because people don’t remember them but they sure do remember your failures.  If that plant manager is still alive I bet he still talks about the day where some stupid engineer shut his plant down for a few hours!

Categories: Business, Opinion Tags:

Emotion vs Logic

March 10th, 2009 Comments off

Perception is a tough thing.  It’s why it’s important to not give your customers a reason to not like you and this is why I advise business bloggers to not mention sex, religion, or politics unless that’s part of your business.

Perception is based (at least partly) on emotion.  When emotion and logic are battling it out emotion will always come out ahead.  Customers don’t sit down and logically compare competing products which is why businesses spend tons of money to come up with a brand identity.  Think about what you think of Apple every time you see their logo or what you think about the new Pepsi logo – it makes a difference.

Perception is reality.  If the customers perceive that you are trying to screw them they will abandon you when a find an alternative to your product.  Raising prices can sometimes be perceived poorly.  Removing features from products is also a very bad idea unless you can convey to the end user that something better is coming along.  Poor quality is another thing that customers hate because it affects their use of your product.

Major changes to products need to be carefully thought out before the user base is informed.  Maybe those changes are good in the long run but will it cause anger in the short term?  How much does that negative perception hurt you?  In todays web-based world a few people can change perception of you, your company, and your product for better or worse.

Well thought out communication needs to occur so that whatever intellect the customer is willing to put into a decision about your product can (hopefully) overcome any emotions they already have.  Good luck with that because, remember, emotion will always win.  The damage you cause now may take years to overcome if ever.

Changes are sometimes necessary to the survival of a product or business.  No one doubts that.  Don’t lie to your customers about the reasons, though.  Brutal honesty may not win you any new customers but it might just save some of the existing ones – especially if they use your product to make money themselves.

I’ve heard that you spend as much as six times more energy (I equate this to time and money) in getting new customers as you do in retaining existing customers.  I know that in my own business I spend a lot more energy in getting new clients than I do in retaining existing ones and it is certainly no different with products.  New customers are good, don’t get me wrong, but you’ll get one sale from them whereas existing customers might represent many sales over time.

Retaining paying, already proven customers, is important in tough economic times.  Loyalty to your product may be the difference between making it through tough economic times or being just another footnote in the history books.

What do you think?  Will emotion trump logic?

Categories: Business, Opinion Tags:

Jabaco

March 9th, 2009 Comments off

Today someone gave me a reference to Jabaco at http://www.jabaco.org.  Take a look at it and come back.

Interesting, huh?  That’s what I thought.

I’ve not played with it so all I’m doing is basing my info off of their web site.  If you have first hand knowledge please add your comments.

The IDE is unabashedly Visual Basic 6.  In all of it’s ugly glory it is definitely VB6-like.  For people thinking about moving away from VB6 to something else it looks like a potential solution.  Of course, if you have a low opinion of Java applications it’s probably not a good choice, but for many people Java apps are good enough if not a great solution.

One of the things that we don’t know about is how easy it is to customize the UI for each platform.  Based on the chatter in the forums they’re still getting the compiler working properly but I suspect that it would be easier than REALbasic’s approach because it’s compiling to one platform – Java – while RB is compiling to three.  The current version is 1.4 Beta so it definitely has some needs before it’s ready for primetime.

Compiling to a Java application and being able to use the vast array of libraries, reporting tools and other fun stuff might make this development environment that much more compelling.  Honestly, one of the drawbacks on the Mac platform (and RB by extension) is that there just isn’t a lot of choices when it comes to reporting and libraries.  Java, since it’s been worked on for over a decade, has the tools and libraries available.

Another interesting thing about Jabaco is that it opens and converts VB6 projects from within the IDE.  Having looked (a lot) at conversion utilities in the past couple of years I can’t imagine it being any better than bad for anything other than simple code.  All Windows declares would have to be rewritten and in their demo on their website it looks like Jabaco doesn’t make any attempt to convert system calls.  In that respect it’s no better or worse than any of the utilities to convert VB6 to RB.

So what do you think?  Do you think Jabaco has some potential?  Is it a worthy competitor to REALbasic?

Categories: Opinion, Visual Basic Tags:

OPC (Other Peoples Code) Column

March 4th, 2009 Comments off

This issue’s topic was about dealing with OPC (Other Peoples Code) as a consultant.  It’s a difficult thing, sometimes, to say no to a potential client based on your first (and sometimes second) look at their code.  While I always regret saying no to paying work I’m always helpfully reminded by my wife why it’s a good idea NOT to take some work.  She does, after all, have to listen to be complain about it!

I’ve certainly learned a few habits over the years by trying to decipher someone else’s code.  Naming conventions are the number one problem I see with most OPC projects that I see come my way and I spend a fair amount of time deciphering what the name of the controls and variables *should* be.

What about you?  What horror stories can you share?

Categories: RB Developer Tags: