Archive for category Programming

GoogleFail and the Cloud: Bring it on.

It seems that the talk of the week this week was the massive GoogleFail.  I will refrain from rehashing my “post a corporate logo on the fail whale” shtick today, because I don’t seem to be as downcast about it as everyone else.  In fact, this is one more reason why I love Google’s services, and the cloud concept in general, and why I say, “Bring it on!”

We'll be back soon.What?  You think I want four hours of slow Web sites?  Of inaccessible Gmail?  Nosiree.  I hate the thought!  But here’s another thought:  Email goes down, doesn’t it?  Whether it’s Gmail, or POP, IMAP, or Exchange, sooner or later, we experience a little downtime.  It happens.  Of course, when you have to call someone and say, “Sorry, I didn’t get your email, my corporate Exchange server is on the fritz…”  That just sounds bad, doesn’t it?  Looks bad for your company, and for you.  Google?  Well, that’s another story.  Nobody could blame your company for going with Gmail, because it’s a great deal.  And when the shit hits the fan, nobody’s going to look down on you because somebody at Google screws up.  (Unless you work for Google.)  And as we can see this week, EVERYONE will know when Google screws up.  So, in a sense, Google gets to play the patsy and subsidize our would-be embarrassments.  No longer is it Joe in IT’s fault…  It was the GoogleFail, you know, the one all over the news.

Which, might I add, is silly.  This should hardly be newsworthy.  I’ve been on Gmail for more than four years, and in those four years I cannot recall more than eight hours in which Google has been less than 100% operational.  That’s about 99.978% availability, and I would consider that a conservative estimate, as many accounts were probably still freely available during those incidents.  (I have never personally felt the effects of ANY of Google’s outages.)  That’s at least as good as my web host, it’s at least as good as my email at work (probably significantly better if you’re counting slowdowns as downtime), and it’s probably about as good as the small server cluster my team runs at work, which has far more redundancy than it even has points of failure.  So Google (and by proxy, “the cloud”) is at least as reliable as non-cloud technology…  It provides everywhere access and features (such as collaboration and interoperability) that local technology typically can’t touch.  And as previously established, when it IS down, it’s not your fault.  How is that not a win-win situation for everyone?

So yes…  I say bring on the cloud: slowdowns, GoogleFails, and all.

1 Comment


Join the Cult: Converting to Object-Oriented Programming

Last week, my wife decided to start learning PHP.  And no, she’s not just trying to humor me–pssh, like she’d do that.  She’s burning to code some roleplay generators.  It’s a bit of a blast, sitting and coding side-by-side.  (And not just because I get to work on Escher without feeling guilty!) She’s doing a great job, picking it up like lint, and it’s fun to see her sense of accomplishment.  I miss that sort of instant gratification that came in old days, before PHP became a paying gig and I started counting lines of code by the tens of thousands.  Say what you will about rapid development frameworks…  Nothing beats the efficiency of a single-file script running linear or functional code and inline HTML.

For a small project, at least.  Since she’s been doing so incredibly well, I thought I’d try and show her a thing or two about PHP classes so she can get her code more compartmentalized and portable.  After all, in the past week, this endeavor has grown from a simple desire for a few one-off scripts to the possibility to create our own RPG system and an accompanying website.  So we might as well start thinking ahead, and no better way than OOP, right?

Oh, wait…

OOPs.  (Yeah, I went there.)

In my arrogance, I’d forgotten something significant about object-oriented programming.  Nevermind that OOP is a godsend, that for large projects it makes things exponentially more manageable, or that we proabably all use a lot of OOP whether we know it or not, thanks to all the libraries and database wrappers and even a lot of built-in PHP5 functionality.  There’s something off-putting about OOP when you aren’t already coding it.  It seems unnecessarily complicated, and there are really no great & simple ways to describe its advantages.

Heck…  I hated OOP.  With a passion. I avoided it for years, and managed to build a pretty respectable website without it.  OOP was just a cult, and they were never gonna suck me in.  Well, now look at me.  I’ve joined the cult, I’m sporting the weird haircut, and I’m sippin’ the koolaid daily.

So, how can I explain OOP to my wife in a way that makes sense?  (Not makes-sense makes-sense, but makes-sense why-should-she-bother?)  The real-world analogies never worked for me.  (”You’ve got a building object, and a door object, and maybe we want to extend a door object to have a lock…  yadda yadda…”)  Even still, I find that those analogies actually screw up my perspective on a project, I think because physical hierarchy and structure is just plain different from programmatic hierarchy and structure.

I think, perhaps, the best analogy for OOP programming might actually be non-OOP programming.  Functional programming, at least.  The automation and portability provided by writing our own functions is not difficult to see first-hand.  OOP actually behaves in a very similar manner, and takes our portability to the next level.

Read the rest of this entry »

No Comments