Tuesday, April 27, 2010

I should've never stopped using Hoptoad.

Man, Exceptional is crap. The only reason I even deployed it for this project is because production is being hosted on Heroku and installing + configuring it was just a click.

Not worth the click, by the way, 'cuz not only does the free plan under deliver, but the premium plan is ridiculously priced compared to Hoptoad. For $10 less you get about 2x more than the equivalent Exceptional plan.

Now my only problem is cajoling clients to set up their own Hoptoad account (I do not like 'owning' accounts that have client data).

Sunday, April 25, 2010

Your code is not your product.

Your code is not your product, it will not make money rain from the sky, and letting contractors -- people you're paying -- see it will not be the end of your world.

Twitter was someone's weekend hack that made it big thanks to idea and execution, not the 4 hours someone spent coding it.

Your code is only worth what you paid for it.

Wednesday, March 31, 2010

Gnome Shell is a total win.

I been using Gnome Shell exclusively for the past few days on my development computer, and I gotta say, I love it to death. I was using the version of gnome-shell in the Ubuntu repos, and while it was OK, it wasn't particularly engaging or anything... but the Gnome Shell Testing PPA is freakin' awesome. It still needs some polish (there's annoying flicker every once in awhile, and the top bar freaks out when I switch to RubyMine), but it's streamlined the way I use my computer.

Two things I'm missing:
* a quick way to summon the activities tab for a search (which is how I start most apps)
* Ubuntu's special applets, what are they called, the indicator and the me menu?

I really do miss the "Me Menu" though. Here's hoping Lucid can integrate it with Gnome Shell somehow.

Other than that, it's a blast. I've really taken to snapping the mouse to the upper left to get that Expose-like windows discovery, and its pretty much replaced ALT-TAB and minimizing windows for me. The transition is fast and smooth; ALT-TAB feels especially clumsy after discovering windows this way.

I'm not too sold on the "sidebar" though (click your name, then click 'sidebar' to see it). Doesn't seem to do anything more than moving to the activities tab, and given how fast "Activities" responds to a quick mouse flick I'm not sure I'd even use the sidebar. I haven't been, so far.

Could definitely do with a smaller "recent items" and a bigger "applications" / favorite space, too.

Anyway, enough rambling. I have to go fix this "mysteriously broken" Vista laptop. You like that, yeah? "Mysteriously broken?" 'Cuz I sure as hell don't.

Sunday, March 28, 2010

Parents + Ubuntu

So, my parents use Linux now.

My dad, using my borrowed laptop; the old windows laptop he had ran for crap. My laptop is super old too, but it's got Ubuntu on it and it's dead simple to use. He's running 9.10 now, after I upgraded it. My mom's using my old netbook sometimes, which is running some bizarre off-brand distro that I'd like to nuke and put Ubuntu Netbook on it, if I can figure out how to get it to work.

Ubuntu's evolved to the point where my dad can use it for pretty much everything -- his proprietary FOREX trading software works alright in WINE (a little laggy starting up), he can play WMV videos in webpages (because he goes to those old government sites that still use it), the Internet is fast and compatible with Firefox... pretty cool. He even knows how to install security updates, though he tends to ignore the Update Manager dialog.

They're moving the close/min/max buttons to the left in Ubuntu 10.04, which everyone I'm sure has already heard about. I don't really care, because I'm going to change it back immediately, because I'm one of those people that don't really pay attention and occasionally hit the title bar instead of the menu bar, which is going to be an instant close/min/max given the circumstances.

I'm not so much worried about myself but worried for my parents. They're not on the computer a lot, so they don't have the sniper-like aim of regular computer users. The moment I saw a shot of the new button placement the first thing I saw in my mind was my dad trying to press one of the buttons in Firefox and hitting close window button instead.

Fortunately, OMG Ubuntu reports that for other themes, the window control buttons will remain on the right side of the screen. So, as long as I perform the distro upgrade myself, and make sure to change the theme to something else, it'll be fine.

But still, I don't like that Ubuntu's taken a step back and re-inserted me into the picture. Ubuntu was at the point where I wasn't needed: didn't have a codec to play a video? My dad figured out how to do that by himself, because all he had to do was click "find codec" and put in his password. Needed plugin for website? Firefox has it handled.

Now I gotta do the distro upgrade for him because he won't be able to figure out how to fix the booby-trapped window titlebars? Sheesh.

Oh well. Nobody's perfect, I guess.

EDIT: before I get any flak for this, let it be known: I don't care for "uniqueness." I'm a programmer. Functionality > Form.

Worst anime I've ever watched: Infinite RYVIUS

Infinite RYVIUS (wikipedia) has got to be the worst anime I've ever watched. It is in fact so bad that I commonly use it for reference when discussing stuff I hate, which is why I'm bothering to mention it even though I watched it a year and a half ago.

Spoiler free syonpsis: a bunch of space cadets become stranded on a massive warship while evacuating their disintegrating space station; order breaks down because the top cadets can't keep the rest of them in line while they try to find their way home, and it turns into Lord of the Flies in Space.

It started off strong, but midway through I just hated it. Loathed it. Something deep in my gut said, "This is a terrible, awful story."

When you tell a story like this, a story that makes you hate all of the characters, there's gotta be something worthwhile tucked away. Some little spark of hope or redemption that makes it worth-while. Infinite RYVIUS has none of this. Nothing. During an encounter with a hostile space-ship, I suddenly yelled "FUCK YAH!" when I thought the enemy space ship was actually going to sink them. That's how much I hated the whole thing.

But, being how I am, I ended up watching it through to the end. There's a happy ending, but it isn't enough to make the anime taste like anything other than goddamn awful.

So now you know: when I start rambling about kids and space and hoping the whole goddamn ship blows up into a million pieces, you'll know what I was talking about: Infinite RYVIUS.

Saturday, March 27, 2010

Prototype vs jQuery: are we still having this discussion?

Seriously, are we?

I literally don't know anyone that is still using Prototype for reasons other than, "that's what we started with."

Yeah, I guess I'm ragging on you if you're still using Prototype intentionally. Sorry, but it's pretty funny form my point of view. Take solace in the fact that nobody loves me, Prototypers.

Monday, January 04, 2010

Ubuntu makes you a software snob.

(update: some dude addresses my concerns about GetDeb here.)

Seriously.

After having used Ubuntu on both my netbook for almost a year now, it's turned me into a total software snob.

For instance, right now, at this very moment, I'm not installing Songbird. Now, there are plenty of ways to get Songbird on my netbook. But none of them are good enough.

Why?

There are no official debs. There are no official repositories. If you download Songbird from the official site, all you get is an archive. Which is fine if you want to unpack it by hand, fiddle with making a desktop short-cut and a menu entry by hand, as well as spending the time to find an OK-looking Songbird icon for the aforementioned short-cuts.

What? Excuse me?

Seriously, those are the two things that instantly came to mind when I realized that Songbird's official download was a freakin' archive file.

The fact that it wasn't available in the Ubuntu repositories wasn't all that bad: there's lots of software out there not in it, simply because there's so much software out there, period. But they don't even have their own official repository? Is Songbird so good that I'm supposed to do the download-and-extract dance every time a new release comes out?

Shit, I don't even do that with most Windows software -- I've got this copy of PowerArchiver that's almost 3 years old. I get an update alert every time I open it, but I'm not going out of my way to download and install a new copy of it. Sheesh.

There's GetDeb, but I'm not using it yet. I've got questions that the GetDeb site doesn't have answers for: who runs it? What releases do they package? Are program authors involved in any way? Are the programs modified before they land in the repository? As an issue of trust, I'm more willing to add repositories like Banshee's official PPA to Software Sources over a third-party I know nothing about.

So, yeah. No Songbird for me.

I know that in the time I've written this blog post I probably could have struggled to get Songbird integrated with Ubuntu properly... but that would still leave me with the issue of updating by hand. Something I consider especially annoying in an environment as advanced as Ubuntu.

On the upside, Songbird screenshots were pretty to look at, though.

Saturday, December 05, 2009

Rails source control: to check in db/schema.rb or not? ... Don't do it.

UPDATE:

Ignore everything below. A lot has changed since this blog post was written, and there are better / easier ways to sync up your schema.rb now than their were in 2009. And when in doubt, just run `rake db:schema:dump` when you get merge conflicts.

ORIGINAL:

The only argument for checking in schema.rb is that it's "faster."

Yeah, OK, whatever.

Don't check it into source control. It just leads to local development problems in the future, and possible production problems if you don't have CI, because cap deploy:migrations is going to run Rails migrations that might be broken because everyone primed the database using rake db:schema:load instead of rake db:migrations. Oh boy, does that sound like fun to you? Because it doesn't sound like fun to me.

Local development problems: consider Git, where everyone's got multiple branches. Someone's done some work in master, checked in their changed db/schema.rb. But oops, you've done some migration work too, and so now your db/schema.rb conflicts with the master db/schema.rb, and how do you end up resolving it? By nuking db/schema.rb and then running the new migrations to regenerate the file.

Which is an extra, unnecessary step because db/schema.rb is in source control.

Hurray.

Let's just keep db/schema.rb out of source control and save the 5 minutes.

Friday, October 09, 2009

How to hose a Rubygems in one simple step.

So, I had the unfortunate mispleasure of having to quickly solve The Mystery of the Hosed Rubygems Installation after installing 1 gem.

Apparently, the problem was with that gem's .gemspec file, in which the following line:

s.require_paths = %q{"lib"}

was the culprit. That one little caused the entire rubygems system to fail -- require failed, the `gem` command failed; basically everything related to Rubygems failed in one spectacular burst of flame.

The solution of course was to change it to

s.require_paths = ["lib"]

The problem being, Rubygems expects Gem::Specification#require_paths to always be an array, and, not bothering to check otherwise, tries to call Array#join. Apparently exceptions raised when parsing a gem's specification aren't caught anywhere in the system, so it hoses the whole thing top to bottom.

Saturday, August 29, 2009

jQuery.Form and its AJAX file upload gotchas.

Hit a few "gotcha, motherfucker!" moments with jQuery.Form while doing AJAX file uploads:

  • If you return an HTTP error, don't return any text (such as error details) -- it'll be interpreted as a successful call and won't handle your error callback.
  • If you return an HTTP error, don't reply on xhr.status from the error callback -- it'll be an unhelpful 0 for some reason.

Alternatives suck: returning an error code and checking to see what kind of data got returned from the call (is it an 'error' object or a model object?).

Wednesday, June 10, 2009

Argh, ShareThis!

Despite it's importance, this problem with ShareThis is almost totally undocumented: if you run your webserver locally and access it via "localhost"then the ShareThis widget won't work. You have to access it by an IP instead (127.0.0.1).

So if you get "SHARETHIS is null," "SHARETHIS is undefined," or "SHARETHIS is not defined," instead of spending an hour and a half pulling your hair out, just breathe deep and remember, there are still people out there who put all their code in a monotholic try/catch and fail silently.

Thursday, April 23, 2009

Arron on...

Arron Washington on Twitter.

Arron Washington on a mostly abandoned identi.ca account.

Arron Washington on a definitely abandoned Plurk account.

I seem to be turning into one of those people that collect social networks like rare Indian coins.

Friday, April 03, 2009

Busy busy!

Good Lord, I've been busy all month long and it's only getting worse.

Hell, I totally forgot that I had yet to do my taxes until I got some kind of automated email reminder today.

Have. Got. To. Keep. Going!

Wednesday, April 01, 2009

How much did I make from oDesk in 2008?

I recently tweeted that I made most of last year's income from oDesk.com.

Well, according to my accounting, from oDesk alone I made just shy of $40,000 last year.

That's pretty good, considering I took a short break, and when I got back into the swing of things I decided to only work about 20/hrs a week (sometimes more, depending on client need). It helps that I get more things done in 20hrs/wk than some people do for 40hrs/wk, though. :)

Obviously I could have made way more.

But besides being a valuable income stream, oDesk has given me something much more valuable than that: freedom. Freedom to work my own hours, sure, but more importantly, freedom to do what I want. And what I've always wanted to do is be an author. Yes, that's right, Mr. Computer Programmer wants to be Mr. Writer.

Since I started freelancing, I've never really had the time until recently to unlock all the thoughts bouncing around in my head and unleash them on the world. When I was in college, there were huge gaps between classes that I filled with anime, video games, writing and code. But when I started freelancing, an incessant nagging in the back of my head ('money! money! money!') kept driving me to spend all my free time thinking about work, working on work.

My free time became a narrow slot that I could only fill with one thing. Should I play a video game? Read a book, watch an anime, rent a DVD or write? My free time was so thin I felt like I'd cut myself if I wasn't careful with how I used it.

When a long term contract on oDesk ended in 2008, I was between jobs with nothing much to do. So I wrote a little as I browsed for jobs; I had enough in my savings account to skate by for months without work, if I wanted. I went back and revisited old works, frowned at how bad they were and toyed with them in my spare time. I kept peeking at job openings, but my A-game was absent when trying to land a few big, "easy" jobs.

Then I realized something: with my skills and expertises, I didn't have to spend every waking moment working. After all, people always need something done. 

So I said to myself, "Why not split my time between writing and work?"

So I did.

Because with oDesk, I could, and with oDesk, it was simple: apply to jobs that would take less than 20 hours a week. That's it. There are thousands of those jobs on oDesk -- maybe even tens of thousands. When one job ended, there was no mad scramble looking for new work. The market place there is huge. If you have talent then you've got a job waiting there for you. And me? I've got it up to HERE, baby. I made a hand symbol just now; you know, the hand at the neck thing to convey how much of IT I've got.

So, thanks to oDesk I can continue to spend time making kick-ass web stuff for clients, and use the rest to pull out my hair out over my insecurities about my writing or smashing my head against the wall because of writer's block or whatever weird thing it is that week that makes me think that every word spilled from my fingertips is crap.

But hey, that's freedom for you.

Thursday, March 26, 2009

Legal retainers: you never know how valuable they are until you have to use them.

To quote the title, "Legal retainers: you never know how valuable they are until you have to use them."

Seriously. For an LLC, it's much more cheaper and efficient then lugging around an attorney who just chills out all day until he has to write up a contract of some kind.

Tuesday, March 24, 2009

Slow going in the fjord of his mind.

If you look at my Spiced Incese Warehouse post below you'll notice that it has a few comments, probably by the owner or a shill perhaps. 

There are some deleted ones: two were posting someone's phone #, address, etc, and two that were just pure spam. Well, not pure spam. If you've been around the 'net long enough you'll occasionally find people who are essentially being paid by the hour to 'attack' a site in an attempt to render it unusuable. It never works, of course, but it's still kinda funny to watch.

Anyway, it's a classic case of not knowing how the Internet works. By commenting repeatedly and shilling in an attempt to sweep whatever under the covers, I don't think he's realized that he's raising the popularity of the articles in question. The blog post, for instance, fell off the front page for awhile, then suddenly found itself ranked 4th or 5th for the search term "spiced incense warehouse." It'll probably outrank his site in a few days if he keeps up the pressure -- I'm not sure if that's good or bad. Good in the sense that it would be hilarious, primarily because he did it to himself, and bad because then my blog post turns into one of those little battlegrounds where everyone with a keyboard converges and argues -- same thing happened with my 'oDesk vs RentACoder' review, which I won't link to since its mostly obsolete and I haven't tried RentACoder in forever.

Plus, I think he underestimates the intelligence of his potential customers. I showed some non-tech friends the original blog post and the comments, and they totally lol'd their eyes out (or so they assured me).

So, it made my ask myself, you know, what exactly is going on in this guy's mind? Is there some part in the back that tells him that making a fool of himself is the best course of action? Or, does he think he's not making a fool of himself at all?

I sat down and thought about it for awhile -- I had just finished playing two crappy rounds of Halo Wars and didn't have much else to do until She Who Is Unknown returned, so, you know, why not? After a bit I came to the conclusion that he's one of those types who gets red in the face and acts irrationally without thinking. That probably explains the sudden quiet-time that occured while I was waiting to be served (which apparently isn't going to happen).  I've never worked a salaried job in my life, so I've never had the great misfortune to be exposed to those kinds of people, but I've read about them and of course I've had the usual antecdotal "you wouldn't BELIEVE what this bossy motherfucker did today!" story from friends.

On the plus side, his annoying behavior spurred me to change the way pages are cached on FearlessBlogging, which is neither fearless nor, technically, blogging. I actually had an entirely different concept for the site, but then realized it would be redundant and more-or-less worthless in the grand scheme of things.

The caching changes I made were to localize all of my caching logic in a cache sweeper. Oh god, I know what you're thinking, and no. Caching was implemented initially as a *very* quick (talking, 15 minutes) hack, which involved a lot of cut-and-pasting of code everywhere. Things got messy fast, and as a result somewhere along the lines, during a random site upgrade / bugfix, I broke the admin panel. I could mark posts as disabled, but particular portions of the cache wouldn't refresh, so they'd show up in the sidebar but still be unviewable. Yeah. Stupid, I know.

I also re-learned one important thing that I forgot: Never. Use. Page. Caching. In Rails. Ever. That shit causes boatloads of problems. Page-level caching in Rails is the goddamn devil. And there's no easy way to clean the cache, either, except to "manually" remove the files, as far as I know.

The moral of the story?

That stories don't have to have morals to be stories.

(oooh, yes I did just go there).

Thursday, March 19, 2009

Hotmail login doesn't do HTTPS by default. ^.^?!

So, I almost never use my Hotmail or Y!Mail accounts anymore.

Too much spam, obviously.

So, today, I did my monthly email check. Nothing but spam in the both of them.

But I did notice something funny.

Logging into Yahoo! Mail took me to an SSL protected page, where-as logging into Hotmail took me to a regular HTTP page.

Now, I was extra concious of where I was on the web because this morning my Mom got scammed; she followed one of those 'reset your password' emails and lost a couple hundred dollars from her Paypal account.

So I gave her a 20 minute lecture (again) on not following those links. Frankly, she got off real lucky -- as far as I know he only took money from her account, and not a lot at that. The scammer could have done way worse.

So, after my high-and-mighty lecture, I notice that Hotmail doesn't do HTTPS by default. I totally lawl'd.

I've become used to seeing the SSL certificate in the browser bar as a way of verifying I'm where I meant to be, even though that's not exactly what it means. So I found Hotmail's lack of security on the login landing page very... unusual.

That's the end of this blog post!

Sunday, March 15, 2009

Games I've been playing.

About a week ago, I purchased both Halo Wars and Tom Clancy's HAWX.

I purchased HAWX, an action-intense fighter-pilot game, because when I played the demo level, "Glass Hammer," I immediately thought back to Ace Combat 6 and, of course, Garuda team. I nabbed Halo Wars because the first two demo levels were OK and I thought it'd be an average RTS game I could stomach.

As it turns out, my expectations were completely fucked: Tom Clancy's HAWX was a total chore to get through once, and gut-wrenchingly boring the 2nd time around on "Elite." CO-OP mode is a little better: the missions are harder, and if everyone is playing on Elite mode some missions can be pretty fun (as long as everyone is playing with a headset). However, the game is full of more misses than missiles in the air (ha hah, why does a fighter plan have 82 missiles?!-style joke!). 

The storyline is a total mess, from its incredibly implausible premise, to its jerky storytelling method of hopping around the entire planet (planet meaning the United States and Tokyo). I'm going to get some hate for me ripping on the storyline while loving Ace Combat 6, but there's a big difference here, I'd like to think, and that is that Ace Combat 6 goes full-throttle into fantasy land, with its giant flying fortresses and city-sized rail-guns. HAWX clearly went for a super-realistic takes-place-in-the-near-future feel, going for a gritty story of nuclear threats with the overarching theme of capitalism taken to the extreme. Unfortunately the actual execution of the story is bullshit. Yes, bullshit. Go watch a friend play it if you really want to experience the roller-coaster of suck for yourself.

The game itself suffers from weapon-itus, meaning there are a ton of starter planes you use once, because the mission forces you to, and then never again; missions that DEMAND you bring a free-fall bomb, even though you can just as easily use multi-target air-to-ground missiles to do the same thing; missions that are incredibly easy but gimmicking -- one in particular involves having to aim your plane at a radar signal while flying through radar net gaps so large you could drive a fleet of trucks through, yet somehow bomber planes can't manage that themselves.

Oh, and then there's: bad scripting (I've inadvertantly broken several levels by destroying all the enemies before I was supposed to insert eye-roll here), bad dialogue (THE NUCLEAR MISSILE WILL GO OFF IN MINUTES CRENSHAW!!!!!!, WE HAVE ONLY MINUTES UNTIL THE INVASION ARRIVES CRENSHAW!!!!, BACKUP WILL BE HERE IN ONLY MINUTES CRENSHAW !!!, MY HOT POCKET WILL BE FINISHED IN ONLY MINUTES, CRENSHAW!!!), and an extremely annoying AWACs who announces EVERYTHING to you. If you miss with a rocket pod attack -- even one rocket -- you get to hear, "You missed the target!" even though that's on my fucking HUD and I clearly knew that by the lack of exploding enemies on the ground.

Did I mention the super anti-climatic finale levels? One of which is really just an interactive epilogue and a total waste of 10 minutes?

Ugh. Anyway.

As it turns out, the best mission of the game was the one in the demo: Glass Hammer.

Now, Halo Wars...

Halo Wars!

I'm no fanboy, and I wasn't even sure this was going to be a good game, since the first two levels are pretty much a snore-fest, but right after that the action and pacing starts to pick up. The controls are quick to learn, the gameplay challenging but not "goddamn cheating-computer!"-challenging, and the game itself is just genuinely fun. The cut-scenes are just long enough to tell a bit of story but not so long that you get bored watching them.

Even losing a mission and having to restart from the beginning is a pleasant experience: overall missions are about 30 minutes long, and the gameplay and strategies you can use are varied enough that it is actually kind of fun to lose, since it means you can try another technique. 

There's built-in CO-OP for all the levels, I think. Haven't gotten there yet -- just finished the campaign, but I'll definitely have to try... there's no way I'm going to save the citizens of Arcadia City all by myself.

The story is fairly solid, told with ingame communications and cut-scenes, typical gaming fair. There's nothing particularly epic about the story; it's just there to support the gameplay, which it does very nicely. There are a few unexplained WTFs at the end which I won't mention because of spoilers.

Multiplayer can be hit or miss, depending on the mode. 1v1 is good, 2v2 or 3v3 can either be excellent or horrible. This is entirely dependent on the people you're playing with: I got a good team going my first few games, so we stuck together and decimated the enemy with good teamwork and communication. The next matches a few days later ended terribly. Players not communicating, some of them not even really playing "right" (new players, clearly). As this is an RTS, there's no solution to an AFK or non-responsive team-mate: you're going to lose, plan and simple. 2v2 lessens the odds of you having a doofus on your team, but doesn't quite have the huge epic battles that 3v3 brings to your door.

Still, multiplayer can be pretty sweet when it's all workin' right.

All in all, a very enjoyable game.

* * *

Also, have you ever wondered what would happen if a Blue Whale ate you?

Don't. It's a weird thought to have.

Friday, February 20, 2009

Oooh, Discover pisses me off.

I applied for a Discover debt consolidation loan about two weeks ago after reading one of their pre-qualified pamphlets that you get in the mail. "You're a winner now!" sorta bullshit. The only reason I went for it is because the rates were actually really nice in comparison to most of the crap I get in the mail. I've recently had some dental surgery that I've put on my credit cards and they've been gathering interest like dust bunnies ever since, so this seemed like a good way to consolidate both cards.

Easy, right? I'm pre-approved, right? Oh, I bet you know where this is going.

This is the first time since I've become self-employed that I actually got a rejection letter from a bank / credit card company. And the reasons, GOD THE REASONS, it's like someone accidently stamped 'UNAPPROVED' instead of 'APPROVED' and made up some reasons in a panic.

One of them was "excessive number of non installement/finance inquiries" which is the apparent result of Discover keep checking my credit report way too often, since this is the first time in about 9 months I've actually signed up for something credit / finance related.

I also got "too many revolving accounts," and "utilization on revolving accounts too high," which is fantastic, since I only have 3 credit cards; 1 card empty, and the other 2 with, together, a grand total of... $8,000. (dental surgery is _expensive_ when you don't have insurance).

By the way, I have a credit score of 700. I've been told that's not awful.

All together, car note included, I have about $15,000 worth of debt, maybe a little more (netflix + fastfood addiction). Man, you know the economy is in the shitter when a bank considers that too much debt.

Monday, February 16, 2009

When will Mobile Browsers be the new Mobile API?

As a forward, let me talk about the Palm Pre for a few minutes. Alternatively, you can just read that article I just linked to then skip a couple paragraphs.

The Palm Pre is heralded by some as the second coming of Palm. What makes this phone stand out the most is the fact that its operating system is essentially a web-browser that talks to the hardware underneath. It's user interface is HTML/CSS/JavaScript, built on standards blah blah blah. The thrust of it means that writing a Palm Pre app is as simple (or complex) as writing a webpage. For regular end users, this is probably meaningless; all that matters is that the phone looks good and moves quickly. For developers, however, it opens up a new realm of app-developing whup-ass. By making web-apps easier to create, the Palm Pre is enabling developers to make more apps with better quality for less investment.

Pretty much every developer, and several people who have no idea what they're doing, has a good grasp of HTML/CSS/JavaScript. This means that anyone can immediately dip their feet into Palm Pre and start developing. Ease of development is what made the Web explode, and the same potential is lying in wait for the Palm Pre.

So, when will Mobile Browsers be the new Mobile API?

The Palm Pre is very much a step in that direction: you talk to the Palm Pre OS using its JavaScript libraries, and you markup the application's user interface using HTML/CSS. There's only one catch: the application has to be installed first.

Why?

Why can't I, Arron Washington, Destroyer of Worlds and Small Celestial Bodies, visit http://maps.example.com, be prompted by the phone ("Hey Mr. World Smasher, this website would like to access your phone's GPS!"), and then have all the tight integration you would come to expect with an application on any website the Web cares to offer?

Imagine the potential awesomeness of that, being able to access a phone's features via JavaScript in a regular web page. You go to Google Maps Mobile, it asks for GPS access, you grant it, and voila': a whole new subset of features are available just for you, without having to download the app and update it every time a new release comes out.

With this kind of available integration, anyone can make their website "mobile enhanced" just by calling the phone's custom JavaScript libraries. With simple (DEAD SIMPLE) JavaScript integration, something as simple as a coupon site could deliver location-aware opportunities (sales in progress, 30% off!, etc) without having to make an application for every popular phone. Just point your browser at the site, authorize and it's there, all magically delicious 'n' shiznit.

Now, some privacy nuts will tell you, "Hey man, what happens if I enable a site to use my GPS to find my location? That's an invasion of my privacy!" I'll tell those folks, don't get in a boat with cannibals.

I think with the Palm Pre we're inching just a little bit closer to that. The whole awesome website-phone integration thing, not the boat full of cannibals thing.