Google search and Web Edition

If you use Real Studio Web Edition right now the contents of your app are invisible to Google. I think a lot of people are using WE for internal projects or for apps that need a user to log in before anything useful is available. This isn’t a problem for that kind of project but for some web apps it would be nice to have certain areas show up in Google’s search results.

This isn’t just an issue with WE, other AJAX based web apps have the same type of issue and Google has a document that describes how to make AJAX web apps crawlable:
http://code.google.com/web/ajaxcrawling/

The basic idea is that you have special hash tags for the parts of the your app that should be indexed. When Google sees those it asks your app for snapshot of what the app would look like after the JavaScript has been evaluated.

One approach that Google suggests for getting snapshots is to use something like HtmlUnit. HtmlUnit is a program that acts like a web browser but doesn’t have a user interface. It executes JavaScript just like a browser would and then you can extract the contents of the page.

I did a little bit of experimentation and found that this approach works for simple cases. I ran into a some problems with a real application but they probably have solutions. It seems like the best solution, though, is for WE to support Google’s approach itself. I’ve created a feedback report requesting this as a feature.

If there are parts of your app that could serve as entry points and you want to be able to drive search engine traffic to them, please sign to this report:
feedback://showreport?report_id=19412

Showing RB Code in WordPress

If you use Real Studio and are a blogger, the fine folks over at Figa Labs have (re?) released a plugin for WordPress that formats your REALbasic code properly in WordPress.  This is a very nice plugin and is apparently based the PHP code of an old Real Studio employee.  So now your code snippets go from this:

Function Ask(instructions as string, byref initialtext as String, bPassword as boolean = false, w as Window) As Boolean

stInstructions.text = instructions

efText.Password = bPassword

efText.text = initialtext

efText.SelectAll

if w = nil then

self.ShowModal

else

self.ShowModalWithin w

end

if bSave then initialtext = efText.text

return bSave

End Function

 

To this:



Function Ask(instructions as string, byref initialtext as String, bPassword as boolean = false, w as Window) As Boolean
   
   stInstructions.text = instructions
   
   efText.Password = bPassword
   
   efText.text = initialtext
   
   efText.SelectAll
   
   if w = nil then
      
      self.ShowModal
      
   else
      
      self.ShowModalWithin w
      
   end
   
   if bSave then initialtext = efText.text
   
   return bSave
   
End Function

 


The only tricky part it remembering the shortcodes, which isn’t really all that hard.  “[“rbcode”]” starts the formatting and “[“/rbcode”]” ends it (remove the quotes to actually get it to work).  Ideally I’d love to have a button that lets me do format the code without having to remember the shortcodes but hey, life isn’t perfect.

Happy coding, and blogging!

Review on R5 Pending R5.1

A couple people have asked me already asking if I will be doing a review of REAL Studio 2010 Release 5 (which was released this week).  The answer is, yes, of course.  However, I will be waiting until R5.1 for the full review since RS has already stated it is coming.

I’ll share some initial thoughts on R5:

  • Web Edition is interesting but it is only a 1.0 product.  There are more than a few quircks yet to be worked out from top to bottom and thus I can’t really recommend it for clients – yet.
  • I’m working on a major project using Web Edition.  For the most part it’s just like making desktop apps except the controls and events are slightly (if not irritatingly) different.
  • Unlearning 10 years of REALbasic habits is going to take a while since some things just aren’t possible right now (e.g. web page constructors don’t work quite the same way as they do in desktop apps).
  • I’m disappointed that RS does not have some good web app examples running on their website (or any website) by now.  This is the message it sends to potential users:  “Hey, look at this nifty new development tool for web apps.  It works even though we’re not showing anything on our website!  Trust us!  Really!  You’re going to love it!”
  • If you’re looking for something new or impressive for either desktop apps or more news on Cocoa then I’d say talk to me in 2011.

Anyway, more in-depth review and news when R5.1 comes out.

Atlanta REAL Studio Summit 2011 Call For Speakers

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

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

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

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

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

REAL Studio and PowerPC Support

REAL Software announced yesterday that REAL Studio 2010 Release 4 will no longer be actively supporting the PowerPC (PPC) framework.  This really means that only major bug fixes will be done to the PowerPC framework and nothing new will be added to it.

At the 2005 World Wide Developers conference Apple announced the move to Intel and many people were shocked that they would give up the PowerPC line of chips they spent a decade promoting as being better than their Intel counterparts.  Intel was the future and blah, blah, blah.  Many people said the Reality Distortion Field was on full blast.

In retrospect it seems so clear.  One could certainly argue that Apple’s resurgence is, in part, because of their move to Intel.  With a growth rates in the 30% range in year to year quarterly sales growths it’s not very hard to come to that conclusion either.

It’s been five years.  Most consumers have an Intel based Mac and most businesses will probably be phasing them out in the next couple of years if they haven’t already.  On BKeeney.com, only 10% of visitors are running a PPC Mac.  BKeeney Briefs and the ARBP site are both less than 2%.  When 90+% of total visitors to your websites are on Intel it’s safe to say the Intel transition is nearly complete.

The reaction to REAL Software’s announcement has been calm, I think, mainly because no one is shocked by the move.  Most developers are most likely on Intel Macs and I think a vast majority of software buying consumers are on Intel now as well.

Since Cocoa is Intel only and the IDE will eventually be built using Cocoa this presumably means that the IDE will no longer run on PPC machines.  This is probably not a big deal for most REAL Studio developers.

It might be a big deal for developers serving the education market, however.  But since they’ve said they will not remove the PPC build option for several years that market should be relatively safe for the foreseeable future.

Transitions can sometimes be painful.  The fact that Apple pulled off a major transition with very few problems is a testament to their engineering staff.  For companies that feed off of Apple this transition wasn’t always easy and REALbasic had its growing pains.  The transition to Cocoa has been painful but in the long run it will allow REAL Studio to grow with whatever is coming up next for Apple.

What do you think?  Do you still work on a PPC machine to do development?  Do you still serve PPC users?

Unsaved Changes Message

I ran into a problem with REAL Studio this week that was annoying.  The IDE hard crashed on me and it had tried to save the project (this is a good thing!).  When this happens you get a dialog the next time start REAL Studio that says:

“REAL Studio has found unsaved changes from a previous session.  Would you like to recover these changes?”

However, in this particular case I didn’t care about the changes so it was no big deal.  I clicked No and worked on the project.  Usually you never get the message again but I was every time I restarted REAL Studio.  Again, not a big deal, but it was annoying.

The fix was relatively simple (thanks to RS staff on this one).  On Mac OS X, REAL Studio puts files in the ~User/Library/Application Support/REAL Studio/RB2010 AutoSave Projects/ directory.  Sure enough when I looked in that directory there were some files that shouldn’t have been there.

I simply deleted them, restarted REAL Studio and the problem went away.  Voila!  Hopefully someone else will find this useful.

REAL Studio Summit 2011

The official press release will go out soon and will go through the official REAL Software distribution channel but I couldn’t contain my excitement any longer.  It’s almost (but not quite) as exciting as announcing to your friends and family that you’re going to have a baby.

Mark your calendars and start making plans to attend the REAL Studio Summit 2011 in Atlanta, Georgia.  The event takes place on March 19th and 20th, 2011 and is sponsored by the Association of REALbasic Professionals and REAL Software!

We are very pleased that REAL Software is participating.  They will be sending a couple of people and will most likely present a couple of sessions.

Speaking of sessions, the call for speakers will go out soon as well and with the advanced notice I think we’ll get some really great speakers on a variety of topics.  We will be targeting some people in the RB community based on their contributions on the RB Forums and NUG list and we hope to get some commitments soon.

I was always a big fan of the old REAL World events – not because of the sessions (though those were important) but because of the relationships you developed (no pun intended) with other REALbasic developers.  Let’s face it, many of us don’t know another REALbasic developer that lives near us.  I feel lucky that I found six in Kansas City and when I get together with them there’s a kinship that’s hard to explain.  I’m energized about the platform and I get inspiration from them when they tell me what they do with REAL Studio.  To me, that’s what the REAL Studio Summit is all about.

The official conference page is at http://www.arbpmembers.org/real-studio-summit-2011 and the Call for Speakers page is at http://www.arbpmembers.org/real-studio-summit-2011/call-for-speakers.

It’s not too soon to think about 2012.  Pacific Northwest? MidWest?  Europe?  If you have a local group of RB users you might want to start thinking about it and contact me if you’re interested in being the contact team.

REAL Studio to Include Cocoa as Beta

Official word from REAL Software about Cocoa.  2010 Release 3 will include the option to build for Cocoa.  Officially this will be labeled as ‘beta’.

I think this will generate a LOT of Feedback reports for them.  Sure, it’s ‘beta’, but will users really take that into account when they start bitching about it not doing something?  I guess only time will tell.

Serial Control in Windows 7 – Part Deux

The Serial communications saga continues…. Never say die when it comes to serial communications because, like so many things in programming, there are multiple areas where the problem might lie.

Here are the facts as I knew them this morning.  Given a hardware configuration (serial port to fiber optic converter to fiber optic converter to Serial to USB converter), I could reliably talk to my device in Mac OS X and Windows XP.  In Vista and Windows 7 it failed.  The serial port monitor software that I running in Windows was able to see the messages with 100% accuracy while the RB serial control was not.

Sounds like an RB bug, right?  I submitted it, with video proof, and had a reasonably happy weekend.  The client was not happy, understandably, and after consulting with REAL Software (who, by the way, responded to my email promptly this morning) agreed that it might be a bug and they would be happy to try to reproduce (and ultimately fix it) if we sent them the hardware and a sample program and some money to do it for the R4 release.  R4 will come out sometime this fall, by the way.

The client was not happy about the additional cost and the time delay as you can understandably imagine.  So I said I’d do some research and figure out if other people are having serial issues too before issuing a recommendation to send all the materials to RS.  I’m sure some of you are guessing where this is going.

It just so happens that the specific manufacturer of the Serial to USB Converter (Prolific) has some serious issues with their Windows 7 (and Vista) drivers.  After a few more specific web searches I found an alternative (perhaps older) driver that works fine if you do the following in Windows 7:  Right click on the properties of the installer, select Run as Administrator and select Vista SP2 under the compatibility popup.

Run the installer, restart Windows 7 and Voila!  We now have a fully functioning driver – that works – in Windows 7.

Hindsight, as they say, is always 20/20 and I *should* have thought about this last week.  I had “something in the middle” that I assumed worked.  I had evidence that it did work (the serial port monitor) but my assumption was false (obviously).

Debugging serial communications (and network communications for that matter) is a royal pain in the behind.  When something isn’t working, work the problem backwards.  When there’s hardware involved, verify that the hardware works or try to eliminate the hardware.  In my case, my Windows 7 doesn’t have a true serial port (it’s running on my Mac in VMWare).

So maybe you’ll learn something from my experience and pain.  Maybe you’ll keep yourself from having a bruised forehead (from banging your head up against a brick wall).

Happy coding!

Serial Control in Windows Vista/7 Doesn’t Work Properly

I’ve had one of those weeks where I thought I was going crazy (crazier?).  My cross-platform application that works fine on Mac OS X was behaving very strangely in Windows but only sometimes.  This particular application talks to a hardware via a serial port.  My standard test platform is Windows 7 with Windows XP as the secondary and both of these are run in VMWare on my Mac.  So a bunch of things might be at fault but after trying this out on an old Windows XP laptop I quickly narrowed the problem down.

The data packet the hardware device sends is very small – 4 characters to be exact.  What I was experiencing was that RB captured the first character on the first send – but not the whole packet.  Then it would complete the first message on the 2nd message and only get part of the 2nd message.  It would go something like this:

  1. A
  2. B | A
  3. C | A
  4. D | A

Where A is common to all messages so they should be AB, AC, AD and so on.

These messages in the real world are sporadic and with the exception of a regular hardware pass message it might be days or weeks in between messages so as you can imagine, this problem mucks up the logic quite a bit.

If you are not familiar with the Serial control, the DataAvailable event fires when there is data available (duh) and there you can check what’s in the serial buffer by using the LookAhead function.  LookAhead in this case showed just the first character.  The other property to check is  BytesAvailable which should tell you how much is still in the buffer.  It simply returned zero so I should have a complete message.  Definitely something screwy going on there.

Invoking Serial.Poll via timer did not produce any different results.  Neither did forcing a ReadAll.

One other thing that I discovered was the Serial Port Monitors are worth their weight in gold.  Using one, you can at least verify that the data got to the computer.  A free 14 day trial was good enough but if I do any other serial projects it will be worth it.

The good news is that I wasn’t crazy.  The client is okay with Windows XP for now.  The bad news is that it might take a release cycle (or more) to get it fixed. Oh well, battles for another day….

For those that care, the Feedback id is 12723.