Archive

Archive for August, 2009

REAL Software Announces Two Regional Events

August 29th, 2009 2 comments

See the official announcement here:  http://www.realsoftwareblog.com/2009/08/announcing-2-regional-real-world-events.html

REAL Software used to hold an annual event called Real World in Austin every year where the REALbasic faithful would gather and immerse themselves in REALbasic for a couple of days.  It was fun and you could learn some good stuff as well as pick the brains of other RB developers.  Citing the worldwide economic downturn and a projected lack of attendance Real World was canceled and we were told about ‘regional events’ to be announced later.  These are it.

I think this is a good thing/bad thing.  It’s good because people will attend a regional event because it doesn’t cost them as much to attend.  If you were thinking about using RB you might be tempted to go to one closer.  From a marketing perspective it’s a good thing.

The bad part is that the events will (most likely) be less technical and become more of an overview of REALbasic and REAL Server.  If you wanted to learn some advanced object oriented programming for databases techniques then these regional events probably aren’t for you.

It’s a one day event in Atlanta and Chicago.  They will have a keynote address and an unknown number of sessions.  Sessions topics to be announced later.  Pricing is $250 ($200 if you register before October 20th).

So what are your thoughts?  Do you find the regional events appealing?  Do you think they’ll get into the technical details of RB or will it be more about sales and marketing of the products?  What are your thoughts on the price?  Does this change your opinion of the Colorado Summit sponsored by ARBP and Inspiring Apps?

Categories: REALbasic Tags: ,

Looking at Valentina…Again…

August 27th, 2009 8 comments

I’m doing some research for my presentation at the Colorado REALbasic Summit at the end of September.  One of the Reporting tools that I’m excited to take a look at is Valentina Reports.  Valentina has been around for a long time in the REALbasic community and I’ve used them in the past for several projects and I’ve more or less kept up-to-date on updates but recently stopped because I hadn’t used it for a long time.

There are a number of things to really like about the Valentina database.  It’s fast – there’s no doubt about it.  Valentina is truly a relational database (you cannot say that about SQLite or REAL Server) and it comes with a file (single connection) version as well as a server (multiple connections) version.  It’s been around a long time in REALbasic and you can use Valentina in a variety of ways including a class-way that is very object oriented.  It is also strongly type-cast meaning it won’t let you put a string into an integer field and so on (again SQLite and REAL Server are NOT like this).

There are a number of reasons why I stopped using Valentina but the biggest was bugs.  In one of my projects I got caught in a transition between db formats and because of my project deadline I was forced to use beta versions.  Which meant, of course, that they’d fix one bug and create another.  It was an ugly couple of months and it’s (obviously) left a bad taste in my mouth.  And yet I keep coming back for more….

It’s been a few years and I was really hoping that it was a nice stable environment.  Alas, I can’t say that it is.  I downloaded Valentina Studio 4.2 (their general admin tool) and decided to import my standard SQLite demo database for reporting tool comparisons.  Everything started off fine but when using their import wizard and hitting Finish it just goes *poof* (hard crashes) and a standard Apple error dialog comes up.

I suddenly remember why my eye tick comes back when I start working with Valentina.  Hard crashes were a common occurrence when I last used Valentina and is still obviously an issue (at least in Studio).  When you can’t perform a simple data import using a standard text file it makes you wonder what’s going to happen with your database.

It’s a trust issue, really, because the first experience with the product is the admin tool.  Instability in the showcase application (in my opinion), hints at deeper problems in the entire database.  Hard crashes are evil, bad things because it means the app quit in an uncontrolled fashion.  What happened to your database write just then?  Is the data good, bad or in some unknown state?  Either way I have a hard time telling a client that things will be okay if it happens to them.

If you are a Valentina and REALbasic user I’d like your opinion.  Am I just having a bad day or do you have these same frustrations as well?  Have you used the new reporting system?  Do you like it or not?

Colorado REALbasic Summit: Sessions Update

August 24th, 2009 3 comments

The Colorado REALbasic Summit schedule page has been updated.

http://www.inspiringapps.com/REALbasicSummit/schedule/

I’m doing a presentation on Reporting Tools, Options, and Techniques which is pretty wide open topic.  It is, however, a topic that’s very near and dear to my heart.  I’ve done a pure Graphics object, On-Target Reports and RSReports tutorials that are in the ARBP source code repository.  They continue to be popular.  I think I have my work cut out for me to include other recent additions as well as looking at pure Windows only solutions.  Regardless, it should be very informative.

Seth, BKS employee extradorinaire, is doing a session combining Object Oriented programming, advanced RB techniques and databases all in one session.  Imagine, if you will, a database class that knows when the class that represents a table doesn’t have all of the required fields and has events for before/after create/save/load/update.  All-in-all I think these techniques are very useful.  We’re using them in a lot of our projects now.

Anyway, check it out.  We hope to see you there!

Categories: ARBP, REALbasic Tags: , ,

2009 REALbasic Consultants Survey

August 20th, 2009 Comments off

I almost forgot about this one in the rush to get the Colorado REALbasic Summit setup and announced.  ARBP is currently hosting its 2nd annual REALbasic Consultants Survey.  As we did in 2008, we’re asking REALbasic developers about their consulting business.  Also, we are now breaking out ARBP members versus non-ARBP members to see the differences and to help determine the ARBP demographics.

ARBP members should log into the ARBP Members site and click on the “2009 ARBP Consultant Survey” link under the ARBP Info menu.

Non-ARBP members can take the survey at http://www.surveymethods.com/EndUser.aspx?A185E9F5A2E6F0F6

Some of the preliminary results are interesting because in last years survey we didn’t stop the survey if you said you didn’t consider yourself a consultant and this led to a lot of answers about pricing and employees being skewed.  This year non self-declared consultants do not take a majority of the survey.  We also refined some of the questions to include more details.

If you haven’t already, I would appreciate it if you could take the survey.  The results help ARBP determine who our users are and in the long run it helps the RB consulting community by giving some baseline numbers for comparison.

Windows 7 and the REALbasic HTMLviewer

August 17th, 2009 3 comments

I don’t venture into Windows-land very often but I ran across a couple of articles today that gave me cause for concern.

http://www.microsoft.com/presspass/press/2009/jul09/07-24statement.mspx is talking about how European users might get to choose which browser is used by their machine.

The second is http://www.aeroxp.org/2009/03/ie8-functionally-removable/ is about how Internet Explorer is functionally removable from Windows 7.  The article states that the procedure only removes the Internet Explorer executable and not all of the supporting libraries so it shouldn’t be much of a concern to RB developers.  Or is it?

During the ARBP chat last week, REAL Software president and CEO, Geoff Perlman stated that he was unaware of any Windows 7 incompatibilities.  No one asked specifically about what happens if the user uninstalls Internet Explorer in Windows 7 or a European users chooses FireFox, Safari, Chrome or Opera as their web browser rather than Internet Explorer.

Will the HTMLviewer still work?  I think it will because it’s dependent upon the supporting libraries but it’s a question that I’d like reassurance on from RS.  But perhaps the real question is whether the HTMLviewer.IsAvailable is an adequate check and it jumps into the libraries or if it’s simply a check on what version of Windows you’re running?  After all, if you’re using Windows XP or Vista you HAVE TO HAVE Internet Explorer.  But it seems like Windows 7 might be changing that rule.

I’ve been particular critical of the HTMLviewer control over the past several years.  Yes, RS has worked some of the bugs out but it’s still not as stable as I’d like to see it.  My biggest beef is that it’s not using the same supporting libraries on Windows, Linux and Mac OS X.  On Mac OS X it uses WebKit.  On Windows it uses Internet Explorer and on Linux it uses GTK.  This leads to platform incompatibilities, instabilities and downright bugs between the platforms.

If you didn’t read the release notes for RB 2009 R3 you’ll find that RS isn’t shipping REALbasic with the Language Reference for Linux because HTMLviewer has too many issues so Linux users have to rely upon a PDF version.  Ouch.

REALbasic’s strength is cross-platform so why not use a cross-platform web browser as the basis for HTMLviewer?  Use Gecko (Firefox) or Webkit (Safari and Google’s Chrome)!  We might need it for Windows 7 which is being released in October?

Thoughts?

Colorado REALbasic Summit: I’m Pumped!

August 14th, 2009 1 comment

People are signing up for the Colorado REALbasic Summit!  I can’t wait to see the other developers and talk about RB!  It looks like it’s going to be heavy in advanced topics so I think it’ll be more useful than Real World for people that have spent a lot of time using RB.

In case you haven’t heard about it, the Summit is being held in Boulder, Colorado September 24th through the 26th.  The official website is http://www.inspiringapps.com/REALbasicSummit/

To sign up, just go to the ARBP members site http://www.arbpmembers.org and click the Add To Cart button on the home page.  Paid ARBP members get a $50 discount so it really is a good reason to get a membership.   Seating is limited so it’s first come, first serve.  I hope to see you there!

ARBP Chat Transcript Available

August 13th, 2009 3 comments

After some technical difficulties with the chat room last night the chat with Geoff Perlman, President and CEO of REAL Software, went rather well I think.  At one time we had 20 people in the chat room and even though we didn’t have moderation on, everyone was polite and there were very few interruptions.

Interviews like this are always interesting.  I don’t think we learned anything particularly new, but it was nice to get some hints about what’s on their minds:

We learned that the upcoming reporting component in REALbasic will most likely not have an end user editing component.  RS isn’t opposed to someone writing one, though.

64 bit compatibility is on their list and all of the Cocoa work is 64 bit ready.  Framework issues are the biggest issue with 64 bit.

Look for some new Studio Edition only features for release 5.  Will be part of the Release 4 beta testing.

Many people are asking about being able to make iPhone applications using REALbasic.  Cocoa support is a prerequisite and then ARM processor compiling.  Geoff also said there’s not as many requests for Palm, Android, or Windows Mobile.  (No one asked if Apple had given permission to pursue this cause or not!)

For the full transcript, please go to:

http://www.arbpmembers.org/index.php?option=com_resource&controller=article&article=126&category_id=3&Itemid=26

What are your thoughts of the chat with Geoff?

Categories: ARBP, REALbasic Tags: , ,

ARBP Chat With Geoff Perlman Tonight 9PM EST

August 12th, 2009 Comments off

Just a reminder that tonight the Association of REALbasic Professionals (ARBP) will be hosting a moderated chat with REAL Software CEO Geoff Perlman.  He will take part in a moderated chat starting at 9PM EST on the Association of REALbasic Professionals www.arbpmembers.org website.

To gain access to the chat room you’ll have to register with the site (it’s free!).

VB6 To REALbasic: VB Migration Assistant

August 4th, 2009 Comments off

Converting from Visual Basic 6 to REALbasic is no trivial matter.  When Real Software offered the Visual Basic Project Converter (VBPC) I lobbied long and hard to get it removed from their website because it gave a really bad first impression of REALbasic.  In many respects, it made the conversion process worse because it tried to, and failed miserably, to convert code that couldn’t be converted.  To their credit, Real Software pulled the free application and went back to the drawing board.  Now they’ve come back with a new product called the Visual Basic Migration Assistant (VBMA).  Did they get it right this time?

VB FormTo test VBMA out, I found a simple calculator control on Planet Source Code (www.planet-source-code.com) to convert to REALbasic.  The project URL is http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=32575&lngWId=1 and you can download it if you want and follow along.  I’m doing this using the Mac OS X version so your results may be slightly different.

When first opening VBMA you are presented with a simple window.  Its minimal design is somewhat confusing but given that you’ve just started the VB Migration Assistant you should probably know that you’re here to try to migrate your VB6 project to REALbasic.  Clicking on the Import Project button allows you to select your visual basic project.  You may also attempt to convert individual items by using the Add Item button.  You may also choose which VB project encoding to use from a simple popup menu in the lower right portion of the window.  Clicking the Next button takes you to the control mapping panel.

The control mapping panel is pretty important if your project uses non-standard controls.  This is your chance to choose the REALbasic control to use.  For example, if your VB6 project uses a TreeView control you could choose to use the RB listbox or, if you use the Einhugur TreeView control you could easily create your own control map to convert use it by creating and modifying the control map.

One oversight in VBMA that needs to be rectified in the next release is that the ControlMap file has no file extension nor does it have a type or creator code so in both Macintosh OS X and in Windows the OS doesn’t know what type of file it is.  In reality, it’s a simple text file and may be opened and edited with any text editor.

There are two checkboxes on this panel that are important.  The first is a checkbox to change all control fonts to System.  The second checkbox is change the font size to zero.  I really recommend that you check both optionVBMA Screen2s.  Click the migrate button, name and choose a location for the project and VBMA will create a REALbasic project and open REALbasic for you.

Looking at the RB project it created a new App object, a menubar and a window named frmCalcu.  Opening the window shows us that it did a pretty reasonable job of converting from the VB6 form to an RB window.  In retrospect I might have changed the mapping from the buttons to bevel buttons but that’s debatable and you can play with this later.

Opening the code editor you’ll find some interesting results.  VBMA doesn’t try to convert any code for you at all.  What it does is copy all of the VB6 code into a Notes named after the VB6 object.  It also attempts to copy code into the proper RB control events.  For example, in VB6 we have the event code cmdDot_Click() and VBMA correctly places the code in the cmdDot.Action event.  In this simple project VBMA got everything correct.  Simply running the project at this point creates no errors and our window opens but none of the controls do anything.

Some would argue that Real Software cheated with just copying the code over.  I disagree because even though Visual Basic and REALbasic have ‘basic’ in the name they are not the same language.  Unless you’re going to write a VB6 compiler I don’t think there’s any easy way to convert the language with 100% accuracy so why try?  I think this balances the need to convert the form layouts quickly and getting the VB6 code into the RB project.

Converting the forms, honestly, is the easy part.  The hard part will be converting the code by hand.  We’ll start in the number buttons named Numero.  VBMA conveniently adds some comments at the top of the function that shows what the parameters are and if there is a return variable.  In this case, the Numero.Action passes in the control array index number and doesn’t return anything.  What this method does is read the number and then puts the new number into the display editfield.

If we uncomment all of the code in the project and try to run the project we get a Type Mismatch error on the InStr line because RB expects a boolean value in the IF statement and InStr returns a number.  Simply changing the line to If InStr(txtDisplay.Text, “.”) > 0 Then let’s the project compile and work allowing you to click on any of the numbers.

Then we continue on to the other buttons testing each one.  The cmdDot button is similar to the Numero.  Once we get to the cmdCancel we get to an On Error Resume Next error in VB6.  There is no exact equivalent in RB so this is where some human intervention is necessary.  In this case I’m not sure why they added this error handling in.  It’s entirely possible that the Mid function in VB6 creates an error if the 3rd parameter is negative.  Regardless, it’s a good example of trying to figure out what the original VB6 code was trying to do and then having to figure out the RB equivalent.

Other issues that commonly occur when converting to REALbasic is that VB6 is a very loosely typed language.  This means that you can assign a number to text field and it will happily convert it to a string for you and this is bad.  If you try to concatenate the string “12″ + “12″ in VB6 you’ll get “24″ as the result.  Not surprisingly there is a work around in VB6 with the & symbol.  Using “12″ & “12″ results in the string “1212″.  So when you get to the cmdEqual.ActioFirst Look at RB Windown event you’ll see this code txtDisplay.Text = answer which is valid in VB6 but not in RB because answer is a double and the RB compiler rightly complains about it.  In RB you would change this to txtDisplay.text = cstr(answer).  Alternatively you might want to use the Format function to make the display text better.

A lot of code will convert cleanly.  However, code that will almost always require additional attention are recordsets.  REALbasic’s recordset doesn’t have an AddNew function like Visual Basic.  Nearly anything to do with file I/O is going to be a hassle because VB’s file commands are pretty archaic in comparison to REALbasic’s folderitem class.

The other item of note in our very simple project is that the cmdEqual_KeyPress method should really be the window KeyDown event.  Moving it there and handling the keypress let’s the app work via the keyboard.  Instead of calling the VB click event function we have to convert to the pushbutton push method instead.

This is an incredibly simple project and probably took me more time to ‘convert’ it then starting from scratch, however it gives us some ideas on how the process works.  So let’s take a look at a more complex project.  I took an old VB6 project of my own and ran it through VBMA to see what it would do.

This project is an old MDI-type application, uses Crystal Reports and a few miscellaneous libraries.  The first thing to note is that the Crystal Reports Viewer, zip controls, and the MDI form will get converted to a REALbasic canvas object.  It’s not ideal but I could certainly modify the Control Map to do a little better job.

Another few oddities in the mapping is that the VB6 Common Dialog and toolbar get converted to canvas objects as well.  The REALbasic options don’t include toolbars so I’m assuming that it’s not possible to convert a VB6 toolbar to a REALbasic toolbar.  The common dialog is a bit tricky because there is not RB equivalent so I’m not sure if it’s better to convert it or to come up with a helper object to make it easier to deal with later.  Again, with the Control Map you could do this on your own if you convert projects with any regularity.

In my large project VBMA had issues with converting deeply nested controls (ie. a control inside a groupbox inside another groupbox on a tab).  If your VB6 project is doing a lot of this then you might have some issues (the controls are all there, just layered oddly).  Other than that it does a decent job of converting a project.

Things that I’d like to see added in future versions:  The ability to change colors to a default color and the ability to set a default height for controls.

VBMA is not perfect but I like it.  It doesn’t try to do everything for me and in the long run  converting your BASIC code manually is the easy part since the really time consuming part of migrating to REALbasic is converting the forms to RB windows.  VBMA lets you do this quickly and easily.

If VBMA is a bit too ‘lite’ for you, you can always try VB Convert! from AYB Computers.  It has many more options for form and code conversion.  It has some quirks in code conversion but it might be a good alternative for you.  VB Convert! Pro costs $65.

ARBP Online Chat with Geoff Perlman

August 3rd, 2009 Comments off

The Association of REALbasic Professionals announced today that their special guest for their August 12 online chat is with Geoff Perlman, President and CEO of REAL Software.  The chat starts at 9 PM ET.

The online chat is available for all members of ARBP.  Registration is free!

Categories: ARBP, REALbasic Tags: , ,