Follow Your Passion

Thursday, April 26, 2007

Flexing Your Internet Muscle

Flex is Adobe's version of Laszlo. With it, you can make rich, flash-based, Internet applications. The SDK is free, but the editor is a bit pricey.

The reason I love this new technology is because it makes it dead simple to make web application. Much in the same way OpenLaszlo works, developing an Internet application is very similar to making a desktop application. And with Flex Builder, you can just drag and drop all the elements you want. For someone like me who always struggles with design, it's a life-savor.

Combining it with Rails as a backend is pretty simple too. The Flex on Rails combination is gaining a lot of popularity. There's even an ebook being written on it. And with WebOrb, you can gain a lot more control over the Rails framework. When I saw all this support for Flex on Rails, it made me more at ease, I don't have time to try to reinvent the wheel.

Having a large company like Adobe is also comforting, because you know they have a vested interest in the future of the technology. The only drawback was that the SDK was propriety. That is, until yesterday. Adobe recently announced that they're opening the source to Flex. This'll speed the development, decrease bugs, and allow for much greater control. It's a very smart move for Adobe, especially since they're now competing with Microsoft.

All things point to Flex being the next big thing. There seem to be a slew of companies popping up based on this technology. Even Facebook is getting in on the action. It'll be really interesting to see how this affects the future of rich internet applications.

Labels:

Monday, April 23, 2007

Site Checklist

Well, after a little shoehorning, I got my site up and running on DreamHost.

Now I'm just about ready to release it to the world. But first, there's a few things on my mind that I gotta get settled.

Things to Take Into Account Before Releasing Your (Rails) App


  • Security: Watch out for stuff like accidentally exposing methods in your controller, trusting the client too much (always validate params[:id]), and allowing the update methods modify any aspect of an object (a client could easily use hidden fields to update more than you expect).

  • Setting Up a Blog: A blog is the best way to communicate to your users. And their ability to leave comments is always good feedback. So it's important to have a blog up and running. But consider having the blog hosted on a server other than your own. So in case your server is down, your users can still read your blog to get updates on the status of your site.

  • Privacy Statement: Even if you don't collect personal data, it's a good idea to put up a privacy statement so your users feel at ease. And if you're too lazy to write one, this Privacy Statement Generator should help you out.

  • Terms of Service: This one is similar to the Privacy Statement but more important, in my opinion. It protects you against lawsuits should your server be unavailable or your accidentally loose data. It'll let you sleep at night, so don't skimp on it.

  • Error Pages: This usually gets overlooked but it's a good idea to make custom error pages (404, 500). Having your logo and a friendly message looks more professional than just a bland, generic statement. And this goes for incompatibility issues as well. If a browser is incompatible with your site, let them know, don't just leave them in the dark.

  • Deployment Setup: Having a good update strategy is important. If it's a simple website just uploading all the files should be fine. But for a web app you have to plan things out a bit more. What will visitors see during the upgrade? What'll happen to the visitors that were currently using the app? Those are all good questions to ask yourself.


Once all that is done and polished, the next step is to start opening up your site to beta users. But for now, I got my work cut out for me.

Labels: ,

Sunday, April 22, 2007

Hosting for Rails

As I wrote in a previous post, I've been using TextDrive as my host. I got it over a year ago and back then Rails hosts were hard to come by (wow, that makes me sound so old).

It was a bit of a struggle setting up my site (it felt a bit hack-ish actually). But it's been happily running for over a year.

But now that I'm thinking of making a new site, I've looked around for a better host. After looking at some reviews, I chose to go with DreamHost. It's pretty insane how much they provide as far as space, bandwidth, and other features. And it's pretty cheap too just $8 a month with no setup fees if you use the promo code FMP50 (Discliamer: I get a commision if you use that code, but it's really a great deal).

Any time a host gives so many features, you have to be weary because you'll be sharing the server with tons of other users with the same restrictions. So DreamHost seems really good as a server to host your beta apps. They let you host unlimited number of domains. So anytime you got an idea, you can just code it up and throw it on the server to see if it's a hit. And then if you need more resources, you can always move to another host.

So far I've been with them for two days, so I can't speak too much regarding the reliability and such. But so far I have no complaints. Transferring my code to the server has been a little bumpy, but that's to be expected. The support is responsive, so they're always there to help too.

Once I got my app up and running I'll write a more in-depth review. But so far, for the services they provide, DreamHost seems to be a great value.

Saturday, April 21, 2007

SQL on Rails

While trying to find a Ruby on Rails search engine I came across this: SQL on Rails. It gave me a good laugh, especially their screencast. But I couldn't stop thinking that these guys have way too much time on their hands. Then again, I also have way too much time on my hands these days. How's the saying go? "Idle hand are the devil's tool." But in my case it goes toward something more productive... I hope.

Tuesday, April 17, 2007

So Close Yet So Far Away

Last year I attended the Startup School held at Stanfurd(sp). I had a good time, heard from a lot of inspirational people, met the founders of some great companies (Reddit, Flickr, Kiko [RIP]). But the information I received wasn't that much different from what I've already heard. Mainly, release early, release often.

The most productive part of the event for me was the lunch. In the lunch line I was able to chat it up with some interesting people. They weren't the big name stars, they were the little guys trying to get their projects off the ground, just like me. And what I find is that those people are the ones who are most on the bleeding edge of technology (see: What's Python?). And in that lunch line I first heard about Laszlo.

Open Laszlo is "used to create web-delivered applications that combine the rich user interface capabilities of desktop client software with the universally accessible, no-download features of web-delivered applications." Basically, it helps you create an interactive Flash UI for your websites. It has common controls like windows, forms, buttons, all in flash. And it's all fairly simple to learn. Within a short amount of time I was able to write a nice little app. And that's with me having no real XML experience beforehand. I was very pleased with it's capabilities.

But what was the problem? One thing I didn't like was the fact that it relies on a server to interact with the client. The idea behind this is that the server creates bytecode that can be interpreted by any type of client. Currently the most popular client is a Flash client, but an AJAX client is also in development. But I don't care about AJAX now. Flash has been doing the same thing AJAX just now is starting to accomplish. And that's coming from someone who doesn't even know Flash and has worked mainly with AJAX.

I wanted the backend of my application to use Rails since ActiveRecord makes database management a piece of cake. But I couldn't just put Rails on the server, and have the Flash frontend on the client. The Laszlo client would have to communicate to the Laszlo server and to the Rails framework. And that's not so simple.

There was a plugin created to integrate Laszlo with Rails. Laszlo on Rails it was called. But I'm always weary of using other people's code. If I run into a problem, its not so trivial to stare at pages of foreign code and discover the bug. Especially for open source projects that contain sparse documentation, if any. And I'm also at mercy of the developers (which, at this point, seem to have given up on the project.)

If only there was a Flash-based UI that could create Rich Internet Applications and reside solely in the client so I could easily use Rails as a backend...

Enter Adobe Flex.

Friday, April 13, 2007

Blaze of Glory

Apollo is a new product being released by Adobe. In their words it's a "cross-OS runtime that allows developers to leverage their existing web development skills (Flash, Flex, HTML, Ajax) to build and deploy desktop RIA’s."

The idea is pretty interesting. Basically, we've been hacking web browsers to run Rich Internet Applications. Adobe has decided to create a stand-alone client that'll natively run RIA's. As of now, the alpha was released just a month ago, so it's all pretty new, and it seems to be gaining a lot of attention (e.g. TechCrunch).

For some time now I've been thinking we needed a "super browser" that was built to run all these Internet apps. So I was really excited about this news. Apollo will grant Internet apps much of the same functionality of a regular desktop application, such as the ability to directly access the user's file system.

But then it occurred to me... if Apollo will make these Internet applications run just like a desktop application... why not make it a desktop application in the first place? The beauty of current RIA's is that you can quickly and easily open up a browser window and immediately have access to the application. With Apollo, you'd have to open a separate program, just like a desktop app.

"But you can use Internet technologies (Flash, Flex, HTML, Ajax) to build the apps". Maybe it's just me but I prefer using current desktop technologies (Java, C#, C++) to develop applications. Actually, the main reason I like Ruby on Rails is because it makes web programming more akin to desktop programming (with methods, data objects, etc).

"It'll allow data to live both locally and 'in the cloud'". First off, what's with this whole "in the cloud" business? Just say "in a server somewhere" instead. It'll save people confusion. But back to my point, current apps also have the ability to take advantage of external data, so I don't see anything special here.

I don't think Apollo will be very useful until a web browser is actually built on top of Apollo. That'll be the day! If they're smart, the browser will be able to directly run Apollo apps; no having to install or open different programs. Just type the address and boom: you got a full blown app running right in the browser.

But until then, if all Apollo does is desktopify my Internet apps, it doesn't seem very useful.

Thursday, April 12, 2007

Interactive Web

From what I've seen, the web is moving towards a more interactive form. There is tremendous potential for instantaneous connectivity. But if you go to your average site, it's really a one-way transmission. I go to ESPN.com and I'm bombarded with data but what if I want to talk back? What if I have questions? Comments? Well, you can leave a comment or post on a message board. But I don't feel that's good enough. It's like talking to your family by leaving notes on your fridge.

Meebo came out with a little chat widget for websites. It allows visitors to your site to chat with each other. This is a step toward my goal for interactivity, but there has to be more. I recently decided to check out the game Second Life. I heard a talk given by the CEO and it piqued my interest. (It's totally free, by the way). It's basically a 3D, user-generated world. You can walk around with your little avatar and interact with people around the world.

In the middle of playing this game (although CEO Philip Rosedale doesn't consider it a game) I realized that this could be the future of the internet. A highly interactive user interface that allows you to gain information while at the same time connecting you with the people of the same interests.

I have a friend in Korea. I haven't seen her for a long time but we still keep in tough. I got her into the game and it was quite surreal. She's thousands of miles away from me yet here in this virtual world we are talking as if she's right next to me. This kind of "shrinking the world" is what I think the web was originally created to do.

I feel we've only seen the tip of the iceberg here. It's going to be very exciting what the near future brings.

Wednesday, April 11, 2007

Back Again

It's been a while since I posted in this blog, and a lot has happened since then.

I interned for the Microsoft Office Live team this past Summer, which put my website temporarily on hold. Then I moved into a new apartment that couldn't house my server.

But I'm back and as strong as ever. Still keeping my finger on the pulse of the startup world. I'm ready to get back to coding.