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

WE Deployment Issues

I’ve been fielding a number of emails from folks that are having Web Edition deployment issues.  I think this is mostly because of the Real Studio training videos that show how to install a WE app on my BlueHost shared hosting account and on my MyHosting VPS account.

On the BlueHost account I could only get it to work if the Web Apps were placed in the cgi-bin directory.  Otherwise, I had no special settings for PHP and the Apache Handlers were already setup to handle cgi applications.

The VPS account took a little more work as I had to installed the 32-bit compatible libraries via the SSH shell.  This was kind of scary since I’m in no way a Unix guy, but I had no problems and it seemed to work.  On this account, I found I could NOT install the apps in the cgi-bin directory, but I could put them in the directory of my choice.  The only modification that I needed was the .htaccess file generated by Real Studio for every project.  I had to add the following line to it:

AddHandler cgi-script .cgi

If I don’t add this line, the browser will simply display the text in the cgi file.   I’m sure I could modify this file on my account, but so far have not found the location of it and frankly, this solution isn’t very hard or time consuming and it’s very easy to spot.

A couple of things that seems to affect your outcome:

1.  Make sure permissions are set.  The app folder and all of it’s contents MUST be 755.  My FTP client, Transmit, lets me do this via its Get Info command.  It even has a preference setting to allow me to set this automatically.  The times when my app fails to launch I’ve forgotten to do this.

2.  Uploading the entire directory.  Many of us are on Mac OS X so we don’t even realize that there’s a hidden file in the build directory, named ‘.htaccess’.  This file contains instructions for the server on how to handle the cgi file.  If you forget it, it will fail.

3.  Binary transfers.  People that have been using FileZilla have had this problem.  For some reason, it’s transferring the files as text and that messes things up.  Have it transfer the files as binary.  I’ve had no issue with Transmit.

What would be really useful is if the IDE allowed me to FTP the files automatically into the proper location on my server and set the permissions for it automatically.  It would also be nice to have a hook into a running application that could force it to quit and install the new version, or, somehow have it wait until the app has quit and replace the files it needs to.

All-in-all, I’ve found 2011 R1 Web Edition apps to be fairly safe and reliable.  The speed is a little slow, but I suspect it will get better over time.  To be truly useful it needs some tweaks here and there and some major features added, but in reality this is version one.  2010 R4 was really a beta version and R5 (released in 2011) was another beta and RS realized that trying to do FastCGI just wasn’t going to work.

Any other questions?  Tips?  Rants?

Here’s a listing of the current Web Edition samples on the website.  Most don’t do much accept demonstrate the events and a few of the methods available for each control.

WebButton

WebCheckBox

WebFileUploader

WebHTMLViewer

WebImageView

WebLabel

WebLink

WebLogin

WebPages

WebPopupMenu

WebProgressWheel

WebRadioGroup

WebRectangle

WebSession (formerly Fun Facts)

WebSlider

WebText

WebThreads

Currently we have Google’s reCAPTCHA working and will post a video and sample project on that in the next couple of weeks.  And more to come!

Redesign The User Interface At Your Own Peril!

I’ve written a few times about The Sixty One. I thought it was a great example of a web app that works well.  I was able to discover some great new bands and for a few of them I track their progress to see if they come to town and play.

Unfortunately, The Sixty One is a prime example of how redesigning the user interface can make your existing user base very angry and make them leave.  Common complaints about the new design are “antisocial and unnavigable” and I happen to agree with them.  The new changes made a great music discovery site not nearly as much fun and discover new bands.  It sure looks pretty though.

Microsoft has gone through similar criticism with the Office ribbon.  Some people love it and others hate it.  The few times I’ve used Office with the ribbon I was frustrated beyond belief because of the way *I* learn how to use applications.

A friend recently commented to me that they learned to like the ribbon.  I’m not sure that Microsoft would get that benefit (of time) if Office wasn’t ubiquitous.  I can say that as a Mac user I’m not excited about getting the ribbon in the next version of Office but them I’m already using Pages and Numbers more and more because they do everything I need them to do for far less money and less bloat.

From my own experience, we went through interface changes on Task Timer, our Mac/Windows desktop application that tracks your time.  It’s a very simple interface.  Version 1 and 2 let you track one project/task combination at a time.  People complained so we opened it up to five.  People (mainly lawyers – go figure) said that five simultaneous timers weren’t enough so we made it unlimited.

We rewrote the interface to allow an unlimited number of simultaneous timers and project and task combinations.  The beta users were very happy and we were happy too (since we use it every day as well).  We released and the very first bug report was from a long-timer user who complained that we destroyed the simplicity of the interface.  I guess there’s no winning.  Thankfully, with a few minor tweaks we were able to make that customer satisfied but most users will just walk away in disgust.  It’s not easy to get a second chance.

Every time FaceBook changes their layout there’s always a round of complaints.  I generally fall into the group that is willing to work with it but I do have to admit that I generally don’t mind the changes after I’ve gotten used to it.  But then, I also find that the new interface isn’t that much better than the old one – usually.

I sometimes think that companies redesign their website and products because they’ve got designers on staff and they think the designers need to earn their keep.  Don’t fall into that trap and change the interface ‘just because’.

Interface changes should be well thought out to satisfy existing users and to get new ones.  Doing so without some serious thought and effort, both before and after the change, can result in people abandoning your product or service.  Tough to stay in business that way.

Any other examples of a bad user interface change?

Why ‘Cloud Computing’ Isn’t For Everything

This week it appears that Microsoft screwed the pooch and lost everyone’s data that was using Sidekick on T-Mobile.  Microsoft should have known better and had proper backups and Hitachi (who was doing an upgrade for them) didn’t check either.  Expect some major finger pointing (and lawsuits) going on in the upcoming weeks. Regardless, there are multiple layers of failure and plenty of blame to go around.

It’s why I chuckle when people talk about ‘cloud computing’ being the wave of the future.  I have no doubt that we’ll see more cloud computing but there are just certain things that don’t belong in the ‘cloud’ and should be taken care of by your own IT department.

I did a fair amount of work a few years ago on a commercial accounting application and every now and then the boss would get all excited about cloud computing and he’d kick the tires and make some noise about moving the entire operation towards it.  At first blush it makes a LOT of sense to have the software and data reside elsewhere because it puts the burden on the host company to keep the software up to date, upgrade the hardware on a regular basis, have regular on-site and off-site backups and have decent security.  And then you realize that its strength is also a weakness as the Microsoft case has shown.  You are depending TOTALLY on someone else doing the right thing.

The other reason is the data.  For many companies their data IS their business.  It’s their competitive advantage.  You really trust all the pipes between your office and the cloud computing servers?  Sounds paranoid but this is your sensitive data you’re talking about, right?  How many stories have been published about SSN and credit card numbers being compromised (at the minimum) and outright stolen (at the worst) in the past couple of years?

If you’re in a larger metropolitan area you probably have decent internet access, with decent speeds, that never goes down.  There are a lot of places even in the United States where this is simply not true. I’ve always enjoyed pulling the network cable from a computer when someone is on their high horse about cloud computing.  Tough to get work done when you can’t load the software or the data.  At least with the software and data on my computer and local network I can still get work done.  My job requires internet access and I can tell you that when my internet goes down I’m not very productive (and keep in mind that I’m in a top 40 metropolitan area with all underground utilities!).  I’ve also had web servers get attacked and be so unresponsive that they might has well have been shut down.

In the long run, can you go to your boss and guarantee (because it might mean the difference of having a job or not, after all) that the data is 100% secure, backed up and available 24/7?  Food for thought, no?

Joomla!

The great thing about Joomla is that it’s big, complex, and does everything.

The bad thing about Joomla is that it’s big, complex, and does everything.

No, that is not a contradiction.  Joomla is a pretty amazing system.  With just a little training a person can create rich, detailed and complex websites in weeks rather than months.  Heck, if I had to do it all over again, I could probably do the same thing in the half the time.

My recommendation if you were to learn Joomla is to create two sites.  The first with all the default data and the second with no data in it and then figure out how to add content to the blank one by drilling down into the pre-populated one.  My other recommendation is to explore the modules very closely and figure out the relationship between them and menus.

One observation that suprised me was the shear amount of modules (open source and commercial) there is available for Joomla.  The Joomla extensions directory must have hundreds of modules and plugins available for nearly every need.  Another observation is that a lot of commercial development on Joomla is being done in Eastern European countries and their prices are quite a bargain.

Of course, my travails into Open Source software has lead me to a conclusion.  OSS has poor documentation and if a commercial company put that level of effort into documentation we’d skewer them.  Now that’s not to put down the efforts of what documentation they have because Joomla is a big and complex piece of software and they just went through a fairly major revision.  In 6 months the documentation will most likely catch up.  It makes me appreciate what companies do to either document the heck out of their software or make them so simple anyone can figure them out.

Many website CPanel’s have Joomla! as an option now as a single click install.  It’s well worth exploring if you have a church group, or not for profit website you’re dealing with and you don’t want to be THE site master forever.  That’s the beauty of a CMS driven site, once it’s set up regular people (with a little training) can add, delete and modify content to their hearts desire.

The Joomla! address is http://www.joomla.org/.  What is your experience with CMS sites?  I know another big one right now is Drupal but I’ve not compared them.  Anyone have experience with it?

Fluid

One of the problems that I have is that when I’m done ‘browsing’ I always quit.  I know, I don’t have to.  My Mac has more than enough RAM and processing power to leave multiple applications open.  But since my task of ‘browsing’ is done I quit which then subsequently closes The Sixty One running in another tab or window.  It’s not hard to get back to where I was, but it’s irritating.

I ran across Fluid yesterday and started playing with it.  Fluid is an app that lets you make a double-clickable application for a particular URL.  You can assign your own icon to it and put the resulting application where ever you want.  I particularly like the subheading on the website describing Fluid:  Your web browser is for web browsing.  It’s a Site Specific Browser.

This app makes perfect sense!  My problems are solved.  After a little tweaking it’s done exactly what I needed.  So now I have a single icon in my dock that is ‘separate’ from my browser.  It’s a neat way to mentally separate my regular business apps from my news sites and so on.  I can see having myself having separate dock icons for my bug tracking website, my project tracking website and maybe something like the REALbasic forums.  Less clicks is better in my opinion with something I do multiple times a day..

It also gets me to thinking a bit about SproutCore.  If I can create a shell application (Fluid), what can’t my web app learn to take advantage of application stuff like the app menu?  It’s the best of both worlds, in my opinion.  It will be interesting to see how far this marriage of desktop application (i.e. Site Specific Browsers) to the new generation of web apps (like SproutCore) goes.

Thoughts?

SproutCore

SproutCore is essentially (I’m sure I’ll get some of the details wrong so don’t flog me, okay?) a porting of the Cocoa frameworks for use in web apps using JavaScript.  SproutCore is what Apple’s new MobileMe is/will be since the author of SproutCore is now an Apple employee.

If you take a look at this blog post from April, the developer does a great job of explaining the current state of web apps and how Ajax minimizes the inherit lag time of the web.  His take is that Client-Server applications will become the new way of doing things (at least for the next 15 years or so).  Build two applications – one for the client and one for the server – sharing data as needed.  It’s a ‘thick client’.

He also says that writing an application is JavaScript is like writing a desktop app in C.  This is where the port of a framework like Cocoa to JavaScript makes a lot of sense because the framework has had decades of work to make it fast and efficient, however, doing a straight port isn’t practical simply because of the decades of ‘cruft’ in the frameworks.  In other words, if Cocoa were written from scratch today, it would be leaner and meaner and wouldn’t have to support all that legacy stuff.  But wait, isn’t that what Apple’s doing with the iPhone?

Why JavaScript?  For the simple reason that it’s in every web browser on the planet!  In another blog post he suggests using a conversion tool to deploy your SproutCore application as a, wait for it, a static HTML web page.  Yikes that seems pretty darn simple.

Daniel Eran Dilger at Roughly Drafted Magazine speculates that this is Apple’s first foray into web apps and a way to kill Flash, Air and Sliverlight.  True or not it’ll be interesting to see if Apple ‘got it’ early this time.

I still have my doubts about web apps being more like desktop apps.  It still seems that you’re limited to the browser and implementing multi-step undo will be difficult.  Things like being in the middle of a form and accidently quitting the browser and losing your edits (because the app can’t stop and ask if you want to save your changes before closing) are significant features that will have to be overcome.

But, perhaps the solution isn’t a true web browser experience.  Perhaps it’s using a web browser control in a thin desktop client application.  If the controls act and work the same as a desktop application would the user ever know the difference?  Interesting times I think.

A Spiffy Web App

Let me first say that I don’t do enough presentations to consider myself a subject matter expert.  Back in the day, I made my way through college by being an Aldus Persuasion expert.  I’d get the phone call on a Friday night for 300 slides to be done for a Tuesday meeting.  Myself and a couple of other college students would slave the weekend getting them done.  So I guess I have some knowledge, just not recent knowledge.

So is 280 Slides a great web app?  Seems to work exactly as described and it looks a lot like Keynote.  But there are a few things that just wouldn’t be acceptable in a desktop app.  For example, if you click on an object it becomes selected.  A selected object is outlined and has selection handles.  But when the mouse gets to the handles the cursor doesn’t change state.

Does that make it unworkable?  No, but it’s not what users of a desktop app would expect.  And maybe that’s where my biggest beef with web apps are.  People absolutely rave about how well such-and-such web app works, but taking the exact same thing and putting it in a desktop app would make it ‘unacceptable’ to everyone.

280 Slides has gotten drag and drop to work.  Super.  But I couldn’t seem to find keyboard shortcuts and their help system was non-existent.  All things that desktop users expect.

As to whether or not it’s useful, in college I had to travel 20 miles to the near sububs to the company where they had the data, Mac’s and most of all the software.  Web apps eliminate the need to have installed software in a specific location so that’s a huge advantage.  However, I lose my web connection enough to be lost when it’s not there so is it really an advantage?

I’m not railing against 280 Slides in particular because I think it has some awesome capabilities.  I’m just wonder if we’ve lowered our expectations so much for web apps that anything approaching desktop app functionality is ‘awesome’?  Until web apps no longer need the browser I think that’s going to be the case.

Your thoughts?

The Sixty One

I listen to music all day long while I’m working. It’s a habit (good or bad) that I developed in college while studying for hours on end and have kept up since. Heck, I became a DJ at the college radio station (WOUI – pumping out an amazing 10,000 milliWatts!) to listen to a lot of different music and did a study marathon one finals week because it was the ‘quietest’ place on campus. I love music and it’s one of the reasons why I have such a large music collection and why I fell in love with iTunes and my first iPod.
So even though I have 31 days of continuous music in my iTunes library I’m always looking for something new to listen to.  Rock, alternative, pop, blues, jazz, R & B, classical and even the occasional country song can often be heard in my office.  I think I found an excellent new source of music that thinks the way I do and is an excellent example of a good web app.

I’m talking about TheSixtyOne at www.thesixtyone.com.  It’s sort of Digg for music.  Using a simple system, people can ‘bump’ music they like that’s been uploaded by musicians to the site.  The drawback is that it costs you points to bump a song so it’s not in your best interests to bump everything.  You, in turn, earn points for songs that other people bump and for listening to more songs.

All songs are streamed to your computer in their entirety – not like iTunes where you get a 30 second clip – and there is no limit to the number of times you can listen to a song.  You can add songs to your own playlist and follow other people on the site and view the music that they’ve been listening to and bumping.  All in all it’s a very fun site.

The site was created as a ‘music discovery game’ by two USC students who have long since quit their jobs.  They’ve done an excellent job of it, in my opinion.  You can navigate the site without having your music stream interrupted.  There are numerous places like comments and bump lists that smoothly expand and collapse without stopping the music.  It’s very easy to navigate the site and discover music.  It’s very easy to browse by music category, new music, best music (music bumped the most) and follow and subscribe to other people’s activity.

An example of why you might want to subscribe to someone else’s activity is if you find yourself always bumping music that was already bumped by someone else you might want to follow them on a regular basis.  It’s sort of like the Amazon book rating service of ‘those who bought this book also bought this…”  It’s very handy and convenient and naturally you get more points if people subscribe to your activity.

I should point out that some tracks are available for download and some are available for purchase through the Amazon MP3 store.  The iTunes store will sometimes have the artists but I’ve found that it’s somewhat spotty.  Regardless, I’ve found that The Sixty One is fun if you like listening to ‘undiscovered’ music and artists are uploading new music every day.

Some of the music is incredibly bad and I wonder if the ‘artists’ upload music on a dare or a whim.  Others, though, are impressive in the quality and depth of their sound and it makes you wonder how many wonderful musicians never ‘made it’ because they couldn’t get their music to the masses.  I was already not listening to the radio because of commercials and repetition.  I don’t every see myself listening to commercial radio again.

Oh, and if you’re so inclined, I’m at thesixtyone.com/griffin.  Griffin?  That’s a story for a different day.  🙂

I know there are some other sites out there that do similar things.  What are they?  Other thoughts?

Web Apps The Future?

Some things like undo, feature rich controls, keyboard shortcuts and modifier keys, application-wide drag and drop, and copy and paste of application objects are just a few of the things that I just find myself missing terribly.  We spent 8 hours yesterday using a web app and in the long run we went to a text editor to figure out stuff before we entered it into the web app because it was just too painful and too slow to do it directly using the tool.  The application designer in me was screaming, “No!  You only have to do this to get this to work properly!  It’s easy!”

When we first started using this tool a lot of people commented that is was one of the nicest web apps they had ever seen.  I hope that’s not the case for web apps in general.

Now, I don’t claim to be an expert on web apps.  I make desktop applications and I do them well so my comments should not be construed as an opening salvo in some online vs. desktop app war.  What I’m really asking for is web experts to tell me what I’m missing.

There are very obvious reasons why web apps are a great idea.  There is no distribution and installation issues.  I get it.  All you need is a web browser.  But honestly, as an end user that has to use these apps in a day in and day out, I want (nay demand) that my applications have all the buzzers and bells that I have in my desktop apps.

So are there any examples of web apps that are as feature rich as my desktop apps or am I living in a fantasy world?  What’s the best language for developing feature rich web apps?