Archive

Author Archive

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:

That’s What I’m Talking About!

March 3rd, 2009 Comments off

I wrote a while back that I missed Aaron’s blog.  The next day, coincidentally, Real Software started a blog.  It’s mostly been marketing stuff, but today that changed.  Finally, they’re talking about the product and changes that have occurred.

William Yu, Real Software developer, introduces himself and talks about some of the things he’s fixed in ’09 R1 and some of the people to thank for it.  I’ve met William a few times at Real World and he’s a very quiet person.  This is a good introduction.  Hopefully we’ll hear more from him in the future.

Thom McGrath, another RS developer, talks about the new TrueWindow function.  Thom’s post is brilliant, I think.  I think it’s what most RB developers want to see – some in-depth discussions about changes and how it affects them or makes their lives easier.

If you’re not following their blog you might want to check it out.  I look forward to seeing more technical posts in the future.

Categories: Opinion, REALbasic Tags:

COM Support

February 25th, 2009 Comments off

Many of my Windows-only clients are coming from Visual Basic 6 where they’ve invested tens of thousands of dollars in specialized libraries and controls.  And because REALbasic doesn’t fully support COM I have to tell them that the chances of their library or control working in REALbasic is not good.  Forget about ActiveX controls – my luck in getting them to work in RB is almost non-existent.

I know I’ve talked about this specific problem to anyone from Real Software that would listen at the past three Real Worlds.  I can’t be the only one that has this issue.  It is my opinion that this might be the single biggest deterrent to adopting REALbasic if you’re dealing solely with the Windows platform.  It makes it seem that RB is half-baked and awaiting completion.

I can only guess at the reasons for not implementing it so far.  One, they feel it does them no good in gaining new customers.  Two, the effort to implement isn’t easy and resources are scarce.  Three, no one’s asking for it.

I can’t see how having COM support hurts getting new customers.  I maintain not having it loses customers but, whatever, I have no data to back it up.

I feel partially to blame about number three.  In the December 2008 ARBP survey we listed 25 items that RS could work on and when I compiled the list, COM support didn’t make it to the list.  My bad.  I suggest that if you want COM support like I do, send them feedback.  It seems that the more people scream about it the more attention it gets.

Resources ARE scarce at RS after laying off a developer in late 2008.  I know they are working at getting Cocoa support in the first half of 2009 and so far it seems that the release is on-track.  Is COM support waiting for Cocoa support to be finished?

Am I missing another reason?  Do you think COM support is necessary and needed?  Does it hurt RB by not fully supporting COM?  Does anyone care?

Categories: Opinion, REALbasic, Visual Basic Tags:

Why Hiring SME’s Is Good

February 24th, 2009 Comments off

Carol and I enjoy wine and it’s not something I would ever have figured that I’d be writing about when I got married.  We went to Napa Valley a few years ago and while we enjoyed ourselves we didn’t think we had the best experience possible.  So this time we hired a guide.

Trevor, our guide, was worth every penny.  For one, his education gave us some awesome background on grapes.  It was unexpected and yet greatly appreciated.  Knowing why certain things happen in the wine business was interesting.  His many years in the area provided some great historical perspective.

Two, he had managed a wine bar for a few years in the Sanoma area so he knew the right questions to ask us BEFORE we started the tour and early in the tour.  I’m sure his tour would have hit many of the same wineries but it was interesting that he recommended different wines based on earlier observations from us.

It was also Trevor’s experience with wine newbies that was most appreciated.  While tasting a Pinot Noir that he described as the most aromatic in the valley he used two different glasses – one was a standard red wine glass, the other a Pinot glass (I didn’t know there were specific Pinot glasses!).  He swirled the same wine in each glass and had us sniff and taste.  What an amazing difference!  The same wine, swirled the same way in two separate glasses had a completely different nose and taste!  Carol and I would have NEVER tried that on our own.

Three, Trevor had a relationship with many of the winery employees.  On more than one occasion he was asked where we had been before and what we liked.  This gave the winery staff an indication of what we liked and therefore they started us on better wine (hopefully) than if we had just walked in off the street.  On several occasions Trevor gauged our reactions to a wine and asked the staff to pour something not on the shelf.  And because of his relationship with some of the wineries he gave us quick tours of the facilities (which was definitely not available to anyone walking in off the street).

In the long run we went to wineries that we would have never stopped at.  From the street some of them looked like crap (or deserted).  Most we had never heard of (which isn’t surprising since some had runs of less than 300 cases which never get sold to distributors that go to Kansas).  We tried wines that we wouldn’t have even known to ask for.  It is also safe to say we purchased more wine than we would have it we’d gone on our own.

So Trevor, from Terrific Tours, was the perfect Subject Matter Expert (SME) for us.  He is a great reminder of why we, as developers and consultants, get hired.  Our customers expect us to:

•    Be knowledgeable about the process
•    Know the history of the product
•    Be attentive to their needs and recommend things outside the scope of work
•    Be adaptable as conditions change
•    Teach them what they don’t know
•    Give a great experience

Software development isn’t nearly as subjective as wine (thankfully!).  Heck, a wine will taste different six months from now than it does right now while our clients expect the software to work exactly the same in six months as it does right now.  But that doesn’t mean that our experience and knowledge isn’t as valuable as Trevor’s.  Think about that experience the next time you work with a potential client.

Categories: Opinion Tags:

Has The VB6 Window of Opportunity Closed?

February 18th, 2009 Comments off

We have an application available on the BKeeney website that lets users analyze their VB6 projects file and send us the analysis via email.  We then do some magic calculations and email them back with an estimate of between X and Y dollars to convert the application.

This is all without seeing a line of code so it really is a lot of guesswork.  However, you can tell a lot about a VB6 application by the controls that it uses, how many forms, number of lines of source code and so on.  If the application uses Crystal Reports it adds another layer of complexity to convert it to REALbasic.  Likewise with any special ActiveX controls and DLL’s.

I originally came up with this topic idea right after the first of the year because it had been months since anyone had sent in a VB6 project for analysis.  Then in mid-January we had three in one week (don’t you love the law of averages?).  One we never heard back from and the other two said the price was too high for non-saleable projects.

So it leads me to this question:  Is the Window of Opportunity Closing (or Closed) to Convert VB6 applications to REALbasic?

It was about a year ago where I lobbied Real Software to kill the Visual Basic Project Converter (VBPC) and they did.  It was an awful attempt at trying to do everything and it did none of it especially well.  At the time I thought it hurt the VB6 to RB cause and I still believe that.

At about the same time, AYB Computers introduced VB Convert! and it’s been updated several times since then.  I’ve used it a couple of times and it’s okay at some things and code conversion is, well, code conversion.

Visual Basic and REALbasic may have ‘basic’ in the name but that’s about how close they are as development languages.  Any conversion utility will fail given complex enough code.  That’s a fact.  To REALLY convert between VB6 and RB you’d need to create a syntax tree and mini-complier for VB6 and who wants to do all that work (and sell it cheaply enough to make it worthwhile)?

So in the long run it’s just easier to do it by hand.  But then you run into pricing issues because it costs more for a code monkey to convert code than it is for a utility to do it.  Then you get into Other People’s Code (OPC) problems because there are a lot of really poorly written VB6 apps out there (as well as in every other language but BASIC apps by their very nature are written by people that don’t have a lot programming experience) which takes even more time to figure out how to convert.

Let’s face it, even Microsoft’s VB6 to .NET compiler has issues.  It’s not perfect either and to have someone convert it for you it costs about $1 per line of code (the last time I checked).  Our prices are considerably less than that but in the past six months there’s been a considerable drop off of traffic.

At this point, .NET has been available for 5 years (more?).  You would think that if they wanted to convert to .NET they would already have done so.  If they haven’t, why not?  I image a few cases:  1) They don’t have the technical know-how to do so or; 2) It’s too expensive to have someone do it for them; 3) They have no need of newer technologies and VB6 apps work fine; and 4) all of the above.

Do you think the window has closed on people converting from VB6 to some other language?  Did I miss any reasons why they’ve waited?  Is REALbasic a viable alternative to VB6?

Categories: Opinion, REALbasic, Visual Basic Tags:

Face To Face Still Wins

February 11th, 2009 Comments off

I miss Real World greatly because it wasn’t about the sessions (though I thoroughly enjoyed them).  It wasn’t the after-hours entertainment (though I really enjoyed that as well).  It was the people that I talked to before, after and sometimes during sessions (in the hallway of course).  It’s where ARBP was born due to networking with a bunch of other REALbasic developers.

Here’s the money quote from the CPU blog:
The point is, face-to-face still matters. And in fact all our globally-connecting-social-networking tools are making face-to-face more, not less desirable. Thanks to the tools y’all are building, we now have more far-flung friends–including people we’ve never met f2f–than ever before. We now have more people we want to connect with in the human world, often after years of electronic-only contact.

Isn’t that the truth?  Now that I know more people and keep connected with business networking sites like Linked-In I want to meet these people face-to-face even more – not less.

I don’t know about you but I get inspired to do great things when I’m around other developers.  It’s one of the reasons why I like having my employees in the area.  I don’t need to see them every day (I’m sure they don’t want to see me every day either!) but, when we get together we get and feed ideas to each other that I’ve never gotten just via email and phone.  As much as video-conferencing is easy to do I don’t feel much inspiration with it (I think it’s the one thing that Star Trek never really got right IMO).

The blog post continues with a list of suggestions for getting users to meet other users in the real world:
1    Put together a “How To Start A Local User Group or Club” document.
2    Offer free materials for the user groups
3    Treat your user group leaders like royalty
4    Instead of a traditional user group, provide guidelines for a Study Group
5    Hold a very low-cost annual weekend conference.
6    Encourage users to start a local BarCamp (or other *Camp).
7    Use Meetup.com as a resource!
8    If you already have online user forums, enlist moderators to try to form an offline meetup.
9    Hold special cocktail receptions/parties for user group leaders at industry conferences in your domain.
10    Advertise/promote your user group events on your main page!

Of these, perhaps #5 is the most interesting for RS.  As much as I like Austin, I’ve now been there multiple times and since I’m no longer young enough to be a bar hound I’d much rather go to some places that I’ve never been or have some interesting things to do.  Boston, Chicago, LA and maybe New Orleans would pretty much cover most of the US and those are interesting (if not destination) cities.  I’m not sure what cities would be good in Europe and Asia, but I’m sure you could get good coverage there as well.

Thankfully RS has already said they would hold regional events.  Only time will tell what the regional conferences will be like.  Hopefully there will be a mix of marketing and technical based on feedback of potential attendees in the area.  If RS will work with us, ARBP will try to hold a day of training before or after the event.

The drawback to this approach is that I can’t image RS saves any money by doing the regional events rather than just 1 event like Real World.  I might be wrong, but in Austin all the local people got to go home at night.  The regional events would require airfare, hotel and many other expenses.  Scaling back the engineers is the only way to save costs, but then is it as effective in drawing people in?  I know many people went to Real World JUST for the access to the engineering staff.  I dunno if it’s feasible in these economic times.

What are your thoughts?  Do you prefer the face-to-face events?  Do you think smaller regional ideas is better than 1 world-wide event?

REALbasic IDE Hooks

February 6th, 2009 Comments off

There are several tools out there that use the XML format.  Reality Check and RB Code Reports are two such examples that can’t use the binary format or the version control formats.  I think each one of them would be awesome IDE additions.  But alas, there is no IDE plugin architecture so they’re forced to look at the project files instead.  This seems needlessly constricting.

Many of us came to REALbasic from Visual Basic 6.  Let’s see a show of hands.  Who installed the free MZ Tools add-on?  Thought so.  For a free add-on it made the VB6 IDE, an (arguably) crummy IDE, into something that was powerful and useful for everyone.  MZ Tools wasn’t a separate utility to run on the project it was integrated into the IDE.

Here are a few things that having some IDE hooks would (hopefully) allow 3rd party developers to create for the IDE itself:

•    A class hierarchy view
•    String spell checking
•    A way to add code to all methods in a project
•    An alternative search and replace
•    Multiple search windows
•    Source Code Control utilities
•    A code snippet library
•    To Do Lists
•    An SQL Query builder
•    Code generators
•    Project snapshots
•    Dozens of other ideas!

I think having a plugin architecture for REALbasic would make RB much more attractive to pro developers.  For all its strength, the RB IDE is limiting in many ways when you use it all day long.  It would be nice to have some hooks rather than forcing us to use the XML format outside of the IDE.

By forcing developers to use the XML format RS is almost begging us to tap into the speed and power of the binary file format.  I’ve heard that using the binary format violates the REALbasic EULA which seems odd since the same data is present in the XML and version control formats since RB has to recreate the same project from all three sources.

Let’s be honest for a second.  IDE hooks would solve a lot of the reasons why developers want to read and write to the project file.  I don’t think anyone wants to be a criminal they just want a way to do their job faster and easier.

What are your thoughts?

Categories: Opinion, REALbasic Tags:

The Value of Rapid Prototyping (ie One of REALbasic’s Strengths)

February 5th, 2009 Comments off

Paul Buchheit (wikipedia entry) is the lead developer for Google’s Gmail.  In this blog post he talks about one of the things that he felt that Gmail did right and that was always have live (ie working) code.  Here’s the money quote:

The great thing about this process was that I didn’t need to sell anyone on my ideas. I would just write the code, release the feature, and watch the response. Usually, everyone (including me) would end up hating whatever it was (especially my ideas), but we always learned something from the experience, and we were able to quickly move on to other ideas.

If you’re still with me this describes the process we used last year on our big project for a Fortune 100.  In that project we used REALbasic as a prototyping tool and using the Agile process we spit out a major new release every three weeks.  Even in Sprint 0 (technically the planning sprint) we gave them a working prototype of our ideas.

In this regard, REALbasic excels.  Since the entire environment is integrated and the language is easy to use we were able to create incredibly complex user interfaces in a matter of days.  The end result is that we exceeded their expectations on creating a user interface that solved their problem.  This was, after all, why they hired our team because their internal groups had struggled for years to come up with something.

This company was used to web apps and we were obviously writing desktop apps with RB.  This was causing a ton of comments from them because they couldn’t think in anything other than a web app which we obviously were not coding.  So we took a sprint and took our desktop app and turned it into something that ‘looked’ like a web app complete with back/forward and home buttons.  This was easy to accomplish in REALbasic using Container Controls and a little bit of extra coding.  In the long run it accomplished the goal of creating a prototype that was more in tune with their expectations even though we never changed development environments.

Since the project was about prototyping a rather large and extremely complex user interface we had no real guidelines from the client other than this nebulous goal of fixing their problem.  One team member would do some layout sketches on paper (and later in OmniGraffle) and get preliminary approval from the client at the end of a sprint.  The developers would take the sketches and turn it into working code in week 1 of the sprint and turn it over to testing in week 2 and we’d do tweaks in week 3 for turnover to the client in the end of sprint review with what I (affectionately) called the developers “Dog and Pony Show”.

More than a few times we scrapped entire areas of code and completely rewrote it for the next sprint.  This meant that the clients gave feedback early and often and could get changes that didn’t mean anything to the developers, in terms of time, but helped them sell the project internally.  When the client goes into a meeting with a roomful of corporate vice presidents and during the obligatory PowerPoint demo they start chanting, “Demo!  Demo!,” you know you’ve accomplished something.

All in all, the project was a lot of work and what we gave them at the end of the project was only minimally what we showed them in sprint 0.  We could not have delivered as many fully thought out features without REALbasic.  It’s an awesome prototyping tool.

Made With REALbasic

February 3rd, 2009 Comments off

The RB Forums thread has been awesome!  I know I’ve enjoyed seeing what everyone has done with REALbasic.  Seeing the awesome user interfaces and innovative things that people have done with REALbasic is a very cool.  It’s also obvious that people want to show their work off and get feedback based on the length of the thread.

The Association of REALbasic Professionals (ARBP) decided it was a neat idea too and we smacked ourselves on the forehead when we thought about it.  I mean, really, what should a developers association be doing for the product?  Show what developers are doing with that product of course!

So, today, we opened up the Made With REALbasic section on the ARBP members-only website.  Anyone can view the product listing but to add, rate, or comment (I think it is cool that a thread is available for EACH product myself) you have to be a registered member (registration is free by the way).  We have some extra fields to describe anything special development-wise what went into the product as well as pricing, what platforms it supports and so on.

Needless to say, we’re pretty pumped about this feature of the ARBP site.  I think it fits in well with our mission of educating people on what REALbasic can do and educating users on what is possible.

ARBP is ultimately run by REALbasic users.  So if you have ideas on things that ARBP should be doing, let us know!

Categories: ARBP, REALbasic Tags: ,

Who Are Pro Users?

February 3rd, 2009 Comments off

Aaron talks about the three types of customers:  Mort, Elvis, and Einstein’s.  I think there’s some illusions as to who ARBP represents and people think ARBP only has the Elvis and Einstein’s interests at heart.  This is untrue.

In my opinion, we represent those that use REALbasic for the following:
a) For a living, meaning their employer has them use REALbasic for their job
b) To develop commercial, shareware or any type of public application either for themselves or for their employer

In other words, we represent nearly everyone!  We don’t exclude the hobbyists by any stretch of the imagination, but the average hobbyist probably isn’t as concerned about the same things as the pro users (there will always be exceptions to this rule obviously so don’t email complaining!).

REALbasic is an awesome tool.  It’s very powerful and can do a lot of things.  It’s not without some shortcomings, however.  For years, I’ve heard the same stories from RB developers until I finally got sick of them (the stories not the developers).  They love RB, but….  It’s the ‘but’ that ARBP is trying to help eliminate and reduce.

Some of our work is education.  Some of our work is perception.  Some it is an apparent lack of focus from RS in areas that would make a bulk of the pro users happy.  Some of it is a lack of communication from RS.  So we question, we prod, we ask uncomfortable questions and in the long run we hope that REALbasic gets better and more people use it.  Simple, right?

If you have not had the opportunity to check out ARBP, please do so at www.arbp.org and the members-only site at www.arbpmembers.org.  If you are thinking about buying RB tools, utilities or source code, the ARBP vendors have significant discounts available for subscribers that can easily pay for a subscription.  Registered users have access to the source code repository where you can find some awesome tutorials and articles and to the ARBP forums where pro users can ask and answer questions that’s not related to source code.

Happy Coding!

Categories: ARBP, Opinion Tags: