February 2007

Web Apps and the Browser Paradigm

Yaniv Golan has an interesting post on his blog about the Flex demo he saw at FOWA. His arguement is that he doesn't get how Flex can be useful when it locks people down to a single "platform" (though as he admits, Flash is pretty ubiqutous). He counters with saying that with ASP.NET one could create applications that run the same as Flex apps that publish to XHTML, CSS, and Javascript.

He doesn't mention that in that scenario we're really just swapping a proprietary front-end for a proprietary back-end. ASP.NET servers need IIS (read: Windows). Flex can run on any server and in any browser provided the end-user has Flash (9).

His main point, however, is interesting. What is the benefit of Flex vs. its main look-alike, the open source OpenLaszlo? This is something I've debated with myself and others over and the only major benefits I can see either way are going to come down to end-user target platform and development nicities.

Flex has Flex Builder 2 with a drag-and-drop GUI that can handle just about all of the basic GUI construction and theming that any designer/developer team could need. OpenLaszlo (right now, anyway) doesn't have this that I'm aware of. OpenLaszlo publishes to Flash 7 and now with their Legals release, to DHTML (XHTML, CSS, and Javascript) and they have announced support for Sun Microsystem's Orbit platform, which will let them publish to J2ME (Mobile content anyone?). Flex will publish to Flash 9 and Apollo.

Both are aimed at making web applications. Web applications function completely different than the standard website and in most cases need to defy the web's "page" structure. So if web applications are going to break the functionality of the web browser paradigm anyway, does it matter anymore if they are deployed in Flash or DHTML (AJAX, XHTML+Javascript, what have you)? My gut says no, but in dealing with clients who often demand pixel perfect consistency, it might be easier to deploy in Flash...an environment that has always looked the same cross-browser and cross-platform.

DNS and Your IT Structure

I use 1and1 for hosting and have a shared hosting package, which I absolutely love. I don't get enough traffic on my sites or do enough different things that I need a dedicated box. I also happen to do my domain registation through 1and1. Recently, however, I've run into a situation where a client wanted to use 1and1 as their host but absolutely refuses to change their DNS to comply with 1and1's nameservers. This is something I never would have thought would be a problem, before it actually became one.

The future of the desktop?

Google has recently unveiled their new Google Apps Premier Edition for offices and there has been a lot of buzz around it. Will web applications replace desktop applications? Is the "fat client" useless?

It's an interesting idea, and as a web application developer, it could mean huge things for me. I don't think, however, that we're going to see web applications really take over and completely replace hard-drive installed desktop applications. I think there are some applications which could exist just fine run completely as web apps, but I think there are a lot of applications which have the potential or will become hybrids which exist accessibly both "virtually" over the web and also on your desktop.

Convergence is the what I'd like to see. A seemless transition between the desktop office computer and my cellular web PDA or my microlaptop. While efforts like Google's take the pipedream of an integrated virtual office and make it a reality; their apps, outside of Gmail, really aren't available anywhere but on a conventional computer.

This is where I think platforms like Flex/Apollo and OpenLaszlo/Orbit are going to shine. Minor differences aside, Flex/Apollo and OpenLaszlo/Orbit are essentially the same and I wouldn't be surprised if eventually their formats become interchangable. Flex/Apollo will allow us to push to the desktop quickly and also straight to the web as well. There's the same sort of convergence that Google Apps is providing. OpenLaszlo has partnered with Sun's Orbit to push to J2ME, which most cellphones (especially the beefier PDAs and smartphones) can handle, not to mention that if you're careful, some Laszlo projects are running in FlashLite 2, as well.

With such platform independence, these systems are going to open up myriad possibilities for convergence applications.

So while I think Google Apps Premier Edition (or even just Google Apps) looks great and might stand a chance at challenging long-time desktop alternatives like Microsoft Office; I think that ultimately, Google hasn't gone far enough to make these processes truly convergent.

Tying MySQL to Flash/Flex via PHP

I've played around some with Flex since the Flex Builder 2 beta came out for Mac a few months back and I am very excited. I've also created some Flash applications (meant to be run on the desktop not in the browser) which connected to a MySQL database via some PHP scripts. What I'm curious about is this:

Flex needs everything to be in some form of XML in order to run (as far as I know, anyway) which means that I'd need to either write scripts or use the XML-RPC PEAR libraries to get my database data into an appropriate format.

This is essentially the same process for Flash, though there are other options such as serializing the data and sending it in this way.

How do you get your data into Flash/Flex and do you think using Flex for projects which aren't tying into already established web services is a bad approach?

Accessibility and the Mobile Web

The mobile web is still pretty new. There are a lot of different browsers and not a lot of standardization across them. It's something like the browser wars of Netscape v. Internet Explorer from 10 years ago. Only on steroids.

I'm no stranger to dealing with cross-browser compatibility, but when you start talking about supporting mobile browsers, support just gets insane. Pocket IE renders completely different than Opera Mini and both render completely different than a phone's built-in browser, and then different phones have different built-in browsers. And none of them are specifically targetable, like IE for the desktop is (similar to how we cannot really target IE/Mac).

Even worse is laxidasical support for the handheld media type for CSS. Pocket IE uses *both* the Screen and Handheld types, but defaults to Screen, whereas some devices like Blackberry's just pretend to be desktop computers but their browsers hardly support anything. It's really quite aggravating.

And then we get into the actual accessibility of the browsers, or rather, lack thereof. Opera Mini doesn't support accesskey declarations. This isn't a huge problem, but when you consider how long some websites can become when forced to only be 176 pixels wide, losing the ability to just hit a key on the phone and skip past parts of the content sucks. Of course, that also assumes that named anchor links work, which some browsers (Opera Mini I'm looking at you again) don't support.

The only hope we have is for people to create logical, symantic websites that degrade well.

Hopefully the next few years will show some sort of standardization occuring across the myriad mobile phones and browsers in how they interpret and interact with the web. Mobile web is still in its infancy, but it will grow up quickly.

A house built on Cake batter?

I've been working with CakePHP for about 6 months now building a few different applications. In my time with it so far, I'm pretty much in love. This is rapid application development, and it is like crack. It is simply amazing to see how quickly I can get functioning scaffolding up once the database has been designed.

CakePHP and the MVC design architecture is not the easiest concept to just pick up, but now that I understand it, I cannot imagine building an application in the "traditional" way (which I've done with phpLabMan).

What I'm wondering about now, is deployment. As a friend pointed out in a rather heated discussion over AIM one night, relying on a framework like CakePHP means that these applications rely on something in a constant state of evolution, plus the application cannot just be dropped onto any webserver and run (it requires Cake to be installed as well). CakePHP is nice because it doesn't require any actual operating system level install, like Ruby on Rails, but none-the-less, an application built on Cake requires Cake to run.

What do you other developers out in the wild think of this? Is it too risky to rely on a framework that doesn't "natively" exist on most webservers (though PHP itself isn't always installed universally, and we won't get into versioning differences there, either) to gain the productivity and development benefits?

Is choosing to go with CakePHP or Ruby any different than choosing to go with ColdFusion or ASP.NET or even PHP?

When the Web meets Joe Common

I am a huge fan of content management systems, especially the Drupal system, and have used a number of other systems, including WordPress and phpWebsite. (I've commented on my thoughts on Drupal v. WordPress before.) Content managed solutions seem like the best website solutions hands-down. Designs can be dropped in and out relatively easily, data is held in a database for easy backup, and new features and plug-ins can be added or removed easily.

In the past, most of my development of CMS-powered sites has been for myself. Recently, though, I've been developing a number of sites for Joe Common; regular business people who don't know HTML, don't know the Web, and in some cases, hardly know how to use their computers. Obviously, the biggest power of the CMS is the ability to make it extremely user-friendly, with WYSIWYG editors, simple menus, training sessions, training manuals, category-driven content, and automating as much of the process as possible. And despite all this, things still get messed up. Sometimes the most bizarre of problems appear. It is amazing what can happen when non-technical people start tinkering with technical things.

This really hasn't become a big issue, but it seems like it could easily become a big problem. It seems to me that most businesses are moving toward these types of systems and putting non-technical employees in charge of these highly technical systems since companies decided that it is too expensive to pay a company to maintain a website or to have an internal web development team.

So where is the system really failing? Is it because CMS systems are still too complicated for users? Is it that the wrong people are being put in charge of caring for these systems? (It certainly isn't that these people aren't smart or aren't skilled; their expertise simply isn't in the Web. You wouldn't put your plumber in charge of maintaining your automobile, would you?) Or are businesses in general the problem because they have been convinced by the news media's coverage of the "Web 2.0 Revolution" that anyone and everyone is an expert when it comes to the Web and there's no value in paying someone trained in the Web to build and maintain a website?

You Know You're A Web Geek When...

You get photo posts working from your smartphone, and you don't think "Man, that's amazing!" but rather:

  1. They're using align="right"? Why not put that logo paragraph first and set it to float: right instead?
  2. I wonder if I can Lightbox those images automatically.

Mini-Update: After visiting every web designer's best friend, the W3C Validator, I have a few more comments.

  1. ShoZu is a cool app, but it leaves off alt tags by default. No chance of validating the homepage without that.
  2. This theme also has one validation error all its own. My next milestone in this blog's existance will be to get it validating.

The Future Freaks Me Out

Borrowing my title from a great song by Motion City Soundtrack, I thought I'd borrow my theme for this post from my friend Chad who has been doing a series on what he's looking forward to in 2007.

2007 is a huge year for me. I don't mean "burrito as big as your head" huge, but "milky way galaxy" huge. I don't have a particularly long list of things happening or that I'm looking forward to, but the events in my future are big...at least to me anyway. I imagine to most of you these won't seem so huge or impacting or really all that pertinent to you, but it's my blag so I'll write what I feel like. It reminds me of the horribly dumb, but at the same time philosophical ending to Men in Black II, when K opens the door and reveals everything we call existence and the universe to exist in the miniture to a much larger world just outside a door.<!--more-->

I'm looking forward to getting married this July to the most wonderful woman in the whole world. Abigail and I met on the first day of classes Freshman year at Bradley University and have been inseperable friends ever since. We've had our rough spots like any relationship, but we've persevered and worked through it together. The last three and a half years have been the best of my life, though I know the next however-many-until-I-die will be even better.

Speaking of the last three and a half years, I'm looking forward to graduating from the Multimedia Program at Bradley University in May. The Program has changed a ton in the last three years since my friend and mentor, Jim Ferolo, joined as the head of the program and turned it around for the better. In some regards I almost wish that I could start over again now, yet at the same time I absolutely cannot wait to be done with school.

Being done with school means that I can start up full-time with my job at The Iona Group, in Morton, Illinois. I've been interning at Iona since May 2006 and was offered a position as an Applications Systems Analyst in mid-December (two days after I proposed to Abigail, actually) for when I graduate. I really love working at Iona Group; the atmosphere there is awesome; I have some great friends there; and, I love what I get to do there.

On top of all of these big things, Abigail and I are also shopping for our first home. We want at least two bedrooms and renting a nice apartment in a neighborhood we like that's close to ammenities we've found to be pretty expensive. On top of that, I've discovered that Peoria has a down payment assistance program for first time home buyers, and Abigail and I should qualify for that. So we're looking for a house that will cost us the same or less than what renting was going to cost us anyway.