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.

Posted in General, Programming | 1 Comment

“Voodoo Child” CSS Reset v1.0

I developed my own CSS reset a while ago, and I’m pretty happy with how it’s working, so I thought I’d share it.

The concept of a “CSS Reset” is embarrassingly new to me–I only read about them a month or two ago.  Of course, 90% of what a reset does, I have done manually for years, but I stupidly never thought of separating the styles out that way.  When I read about resets, I was initially turned off because many of them seem way too aggressive.  (Upon searching for validation, I indeed found that it I wasn’t the only to dismiss resets as a bad thing.)

I’m a stubborn person, but fortunately I seem to be capable of talking myself out of stubborn positions.  A week or two back, I decided to try out the use of a reset, to see (A) if I liked the setup, and (B) if it seriously borked any of my recent work.  Looking around, I didn’t find any that did exactly what I wanted a reset to do.  The closest was a reset unofficially credited to Shaun Inman, although it appears to be itself modification of the popular YUI reset.  It was as good a place as any to start, so I began to flesh out my own personal reset script.  Here’s what I came up with:

/* "Voodoo Child" CSS Reset by Thom Stricklin. Based on W3C defaults, YUI and work by Shaun Inman. */
pre,form,fieldset,input,p,blockquote,table,th,td,embed,object {
padding: 0; margin: 0; outline: 0; }
table { border-collapse: collapse; border-spacing: 0; font-size: 1em; }
fieldset, img, abbr { border: 0; }
address, caption, cite, code, dfn, th, var { font-weight: normal; font-style: normal; }
caption, th { text-align: left; }
h1 { font-size: 2.0em; }
h2 { font-size: 1.50em; }
h3 { font-size: 1.17em; }
h4, h5, h6 { font-size: 1.0em; }
h1, h2, h3, h4, strong, b { font-weight: bolder; }
h5 { font-weight: bold; }
h6 { font-weight: normal; }
q:before, q:after { content: ''; }
a, ins { text-decoration: none; }
sub { vertical-align: bottom; font-size: 0.67em; }
sup { vertical-align: top; font-size: 0.67em; }


/* Slight Return. These settings are more likely to change from project-to-project. */
h1,p,blockquote { margin-top: 0em; margin-bottom: 0.5em; }
h2,h3,h4,h5,h6 { margin-top: 1em; margin-bottom: 0.5em; }
ul, ol, blockquote, dd { margin-left: 5ex; }
.block-list li { list-style: none; }
.inline-list li { list-style: none; display: inline; }

A few things my reset does differently:

  • This is a reset…  and then some.  The new rules I set are too modest to consider a CSS framework by any means, but they do go beyond a standard reset.  For those who would prefer just the reset, just take out everything after the “Slight Return”. (Yes, I am a dork.)
  • I do not set all headers to 1em.  Rather, I went with a mix of the W3C “default” values and a little common sense: It’s pointless for H5 and H6 to be smaller than 1em so, instead, I decrease their font-weights.
  • I treat H1 differently than other headers.  The train of thought is that H1’s will most likely appear at the top of the page, and so will not require a top-margin value.  H2’s and beyond will appear in the middle of page content and will probably look better with some extra separation.
  • I do not reset the default list styles.  Lists-as-layout are very popular now and rightfully so, but they’re still great for normal lists–like this one–too.  I do provide “block-list” and “inline-list” class declarations for quickly & easily achieving headless lists.  I’m not sure how useful they are, though…  I’ve already encountered a case of a list that will be displayed as block for screens, but inline for iPhone/mobile.
  • I fiddle with the display of sup/sub tags.  This behavior is out there in other reset scripts, but unfortunately I did not save my source for this partiicular solution…  Sorry!

I hope this reset script might be of some use to others.  More importantly, I hope this might help to open some minds about reset scripts.  They really are just a set of tools we each can choose to use…  or not use.  But we can forge our own tools.  We can write our own resets to our liking, so why not?

Posted in Design, Technology | 1 Comment

Firefox: Move Aside and Let the Web Go Through.

There has been a little buzz lately about what the next version of Firefox should look like, and it’s certainly different.  The latest idea seems to put the tab, and tab-like items such as apps and workspaces, in the sidebar.  It’s either innovative, or an ode to iTunes, depending on who you’re talking to.

I personally oppose making our browsing experience dependent upon “workspaces” or categories…  It would take too much work for everyday browsing, it’s presumptuous to expect it would actually match most people’s browsing patterns, and it’s only adding another layer of organization to the browser, as tabs (or whatever tabs become) are still in there somewhere.  Workspaces could be useful for advanced users, but let’s not build our browser around them.

I do, however, like the general trend towards moving things into the sidebar.  As I commented on Mozilla designer Aza Raskin’s blog, there are many reasons to consider this a good move.  In fact, I say let’s take things to the next step and move the entire browser UI into the sidebar.  I spent an evening in Fireworks layout out such a design, and here’s what I came up with:


I probably went just a bit too extreme on how compact I made the sidebar (which of course, ought to be resizable anyway) but I wanted to drive home the point: done right, this exodus to the sidebar can improve simplicity, usability, and aesthetics.  The sidebar is the new awesome bar.  I’ll break things down by component:

  • Address Bar/Awesome Bar: Firefox (and Chrome, too) have gone a long way to making the address bar more useful, and ubiquity will take us even further down that road.  But there’s still one big problem: it’s a real-estate hog.  Most of the time, if I ever even type in an address these days (more likely I’m following a link or a book mark), I just type, press enter, and forget about it.  Why is it constantly hovering over my window?   When it doesn’t have focus, it should condense down and slide into the sidebar.  Give my web page the full height of the screen to work with.  When you click into the space–boom–it slides back out for you.  It might also be a good idea to provide a delete button on-hover (a la OS X/iPhone search fields).
  • Back, Forward, Reload/Stop, and Home: The only four buttons we need.  Even in the current Firefox incarnation, these would easily fit into the sidebar, so why not?
  • Apps: Not sure where this idea originated, but it was on Aza Raskin’s mock-up, and I think it’s a great idea.  I hope these are not just “supertabs” in that they stick to the top, but that they provide additional functionality: Available in all windows, always open in the background, personalize the name in sidebar, etc.  I think the option to “maintain a separate cookie/session” for an app would be a neat idea too, as we could then maintain a “Personal Gmail” app and a “Work Gmail” app running without interference, and without the need for an addon.  I also think that Mozilla, Google, and Apple should work together on some sort of web application notification system (some extension of the dom or the navigator object).  As we think of web sites more and more as applications, we need to have the level of interactivity that we’d have with desktop apps, and flashing a message in the title attribute just doesn’t cut it any more. We should have both numeric notifications (i.e. 9 new messages, as pictured above) and Growl-style textual notifications.
  • Tabs: Not much to this, except I do think it’s important to give users a “show all tabs” button.  Let’s not be so concerned about doing things “the Firefox way” (differently) that we fail to acknowledge a good user interface element when it comes around.
  • Bookmarks, Feeds (Not Pictured), History, Addons: What’s great about this sidebar approach is that it really unifies the interface.  All of these components can look the same and function in the same or similar manner.  It also leaves it so that browser components are competing with each other for real-estate, not with the page content.  I envision most of these components (except bookmarks) being collapsed by default, and expanding on-click accordion-style.  They can either take up as much space as they need, or take over the whole sidebar, collapsing the other components.  But once you click away from the sidebar, they collapse again.
  • Themes/Styles: I know absolutely nothing about the current means of theming Firefox, but make this sidebar CSS-driven and I could create an entirely new theme from scratch in about five minutes.  In fact, we could build customization into the browser (think similarly to Twitter’s interface) and let users set their own colors, backgrounds, etc.

A word of caution: let’s not throw out the baby in favor of trendy new bathwater.  In my experience, most Firefox users do not use 20 tabs at once.  They do not keep certain pages open, app-style, at all times.  They’re perfectly happy with the current user interface, and if we completely abandon it, they will balk and move to Safari or Chrome or even IE8 for a more familiar experience.  (See: Winamp.  How many of us switched to iTunes when the ridiculous Winamp 3 UI came out?)  So we need to think out a way to make this new UI work both ways, and probably give users the option when they upgrade: UI elements at top (Firefox 3) or on the side (Firefox 4).

That said, if the next version of Firefox resembles this in any way, I will be eagerly awaiting the 4.0 beta.

Posted in Design, Technology | 6 Comments

How Facebook forced me to become a Twitter user.

Okay, well I officiallly twatted my first tweet over a year ago, but I’ve made it pretty clear that I’m not fond of the phenomenon.  While I have warmed up to it as a means of syndicating information–we are integrating the Twitter API into the news controller in Architeck–it still seems shallow as social networking goes.  (But then, “Shallow is the new two-oh,” so I’ve been told.)  Twitter’s biggest users?  Celebrities who like to hear themselves speak, old media news networks who aren’t even listening, and technophiles who–lets face it–are members on EVERY social networking site, and practically every free service on the Internet.

So, while @thomshouse has been around for a while, I’ve never had any desire to be an active user on Twitter.  Until now.  And it’s all Facebook’s fault.

Facebook is riding the fail whale today.

See…  I don’t want to walk down the street holding hands with Twitter, but I do want to maintain a presence.  Why?  I dunno.  I suppose I too like to hear myself speak.  Or perhaps I would like to have some content there, on the off chance that Twitter might become a major avenue of communication for me–say, because of a side project or freelance work.  I’m definitely a technophile, so that weird obsessive craving to tinker with everything is there, too.  But most of all I want to maintain a presence on Twitter because it should be effortless.  With social APIs left and right, I should be able to post my status on Facebook and see it updated on Twitter, FriendFeed, MySpace–everywhere.

And that’s what I’ve been doing.  I update my status in Facebook, and through a roundabout process provided by a Facebook app called “Twitter Updater”, I’ve been able to see my status updates in Twitter, usually with less than a minute’s delay.

Until today.  Today I updated my FB status on my iPod, jumped into Tweetie to make sure it took, and…  nothing.  Checked again a few minutes later, and still no update.  Numerous posts have since appeared from the people I follow, and meanwhile, crickets chirp over my lack of an update.  I grew suspicious.  Logged into FB to investigate, and sure enough, the powers that be disabled Twitter Updater’s ability to function.

A little background: Facebook doesn’t make it easy to share your status with other services.  As I understand it, Facebook’s APIs expose the ability to update your status, but not to read it.  It would seem that applications used to have this ability, but it has since been disabled.  Twitter Updater got around this “shortcoming” (or crippleware?) by having you add a bogus friend–in my case, a Mister “Twitter Updater II”–to your friends list.  The application couldn’t read your status, but your friend T.U. sure could, and voila!  Twitter updates via Facebook.  At least, that’s how it did work.  Now, Facebook has disabled the friend accounts, supposedly on the basis that they “do not represent real people”.  They have also completely obfuscated access to your private “mini-feed”, an RSS file that can provide another means of export.

I believe, however, that this–and all other means to cut off access to Facebook status updates–is a result of (Facebook founder) Mark Zuckerberg’s love/hate relationship with Twitter.  Those that follow tech news probably know that Zuck was infatuated with Twitter as of last fall, that Facebook attempted to acquire Twitter with a $500 million stock deal, and that Twitter turned it down.  And Facebook users are all-too-aware of the much-maligned changes made to the home page recently, changes that seem designed to suspiciously resemble a Twitter-like functionality.

It seems to me that this crackdown on API status access and on services like Twitter Updater are just another piece of the puzzle.  There is no justifiable reason for Facebook to lock down status access.  Applications can already be granted access to your name, friends list, birthday, and who knows what else from your profile.  And if there’s anything Facebook’s done spectacularly, it is the detail and granularity of privacy controls to block or allow applications access to this information.  So it can’t possibly be a privacy concern.  No, it’s got to be a business model.  Facebook is blocking access to the status to prevent an exodus, or perhaps just to spite the competing service.  Mark Zuckerberg is the jealous, possessive lover: if he can’t have Twitter, no one can have Twitter.

...or maybe Zuck is like Kathy Bates in Misery?

I would love to be proven wrong.

I would love for someone to answer these two questions:

  • What legitimate reason is there to cut off access to status updates?
  • Won’t this move actually hurt Facebook?

I like Facebook.  I’m a UI snob, and I prefer its aesthetic. I would much prefer to use Facebook and be able to ignore Twitter altogether.  Is it really better for Facebook that I am now forced to “reverse the flow”, to update Twitter and spend less time directly on Facebook?  Because that’s what I’m doing now.  I am updating from Twitter, and using Facebook less often than I used to.  Good business model, FB.

Anyone who feels my pain or likes this article can follow me @thomshouse.  I’ll be on there a lot now, it seems!

Posted in General | 5 Comments

(Falling Off) The Twitter Bandwagon

I’m sorry, I officially fail at Twitter.

I’ve had my Twitter account since March of last year.  How many updates–or tweets, or whatever the hell they call it–have I posted?  Six.  Half of which are about “trying this Twitter thing again”.  Everybody seems crazy about it, but I just can’t get into it.

I can sort of understand the appeal.  The reason I gave up on the old version of my blog (which was personal, not tech/rant-related) was because it was too cumbersome…  I felt like I had to write a novel to justify posting anything.  So I looked at microblogs.  Tried Tumblr, and I liked the concept, although it was still enough like a blog that I rejected it for being a hosted solution.  (The original drive behind Escher was to develop an open-source microblog similar to Tumblr.)  I started using my long-dormant Facebook account and found a satisfying outlet via status updates.  Then Richie started talking up Twitter, so I tried it.

And I’ve tried it five more times since then, and I still can’t bring myself to like it.

Yes, I prefer Facebook.  I like having built-in mechanisms to find my friends.  I like Facebook IM…  Though I’ve only used it a handful of times, it’s smoother than playing tag through email or tweets or other offline messages, but less hassle than having to boot up one of a half-dozen existing IM clients.  And as for those privacy concerns, they’re not my concerns…  My dirty little secrets are few and far between, I have nothing to hide, and I’d like to think I have more sense than to upload the sort of information that could result in identity theft.

But this rant really isn’t about the things I like in Facebook.  It’s really about the things I hate in Twitter:

  • It’s ugly.  You would think it would be too simple to be ugly–especially since it uses a down-to-earth font like Arial–but they have found a way to cram every ounce of ugly possible in 140 characters.  I hate “twitter litter”…  The stupid @ symbols prefixing half of all twitterfeeds, the tiny urls, even the stupid o_O googly-eyed default icon…  It’s an icon, it’s a PNG, capable of a millions of beautiful colors, or at least gradients galore!  Why make it look like more text?  Twitterfeeds, IMO, are uglier than MySpace profiles, and that’s saying a lot.  But at least with MySpace, there’s a chance to use your l33t stylesheet skills (or copy-paste ability) to make your profile look not-so-hideous.  I guess the difference is that Twitter is trendy or kinda “scene” despite its rough-hewn appearance–or perhaps because if it–like shopping  at vintage stores or something.
  • It’s full of shit.  Literally.  I just asked Trish what she thinks about Twitter, and this was what she told me: “I’m taking a shit now.”  Let me clarify:  I didn’t walk in on her in the bathroom or anything.  That’s how Twitter reads to her.  People seem excited to post details both intimate and mundane…  Every “sneeze, fart, and hiccup.”  Her words, not mine!  But it’s true.  At least make it intimate–and juicy! I cringe at my old LiveJournal entries because they seem so self-absorbed, but at least there’s substance to them.
  • It’s too short.  I suppose 140 characters sounds like a lot, but unless you’re rocking Dick & Jane levels of literary prowess, it’s about enough for two sentences, and very little flavor.  (In fact, Trish pointed out, that last sentence alone was too long–170 characters.)  If you’re reading this (or if you’ve given up by now, which I wouldn’t blame you for) you know that I like to rant.  So, if there’s something going on worth writing about, I’m probably going to need more than 140 characters to fill it.  I could be wrong, but it doesn’t seem like Facebook or MySpace have such a conservative limit.  And anyway, how hard would it be to truncate a status message with ellipses?  Plus, this 140-character business is the reason behind the recent popularity of tinyurls, which I loathe.
  • It’s spammy.  I follow a whopping three people: two friends, and Leo Laporte.  I listen to Leo’s podcast, This Week in Tech, and like what he has to say.  But his tweets drown out my friends’ posts.  Granted, this can be an issue on Facebook too…  But on Facebook, I can “turn down the volume” on certain types of posts or on particularly spammy friends.
  • It doesn’t seem terribly secure.  Again, I’m curious why people tolerate Twitter where they didn’t tolerate MySpace.  Sure, MySpace had plenty of exploits and phishing expeditions, but I never remember reading about an administrative account getting compromised–but Twitter admin accounts have been hacked.  I’m sure a lot of  the other “celebrity hacks” and etc. have been a matter of social engineering, not of technology, but I still blame Twitter.  Twitter more or less relies upon their API allowing third-party clients to provide updates, which gets people too used to typing their passwords into all different apps.  Twitter ought to develop some of their own clients and require third-party clients to go through a user-approval process, on a case-by-case basis, similar to how Facebook apps function.

This week, Facebook is rolling changes to their home page and fan pages, changes that seem targeted at making Facebook a “Twitter killer”.  Bring it on, I say…  Not because I want Facebook to become more like Twitter.  (I needn’t worry about that, Facebook is far too elegant to become like Twitter.)  No, I’d like to see everyone jump ship on Twitter so I can stop hearing about it.

And now, I think I’ll stop talking about it!

Posted in General | 3 Comments


I tried out Parallels desktop when it first came to Mac, back when it was just Windows in a box on my screen.  It was neat, but as I wasn’t freelancing at the time, there was no need for Windows on my computer.  Later on, when my side work did start up again, I got turned on to a free product called VirtualBox–which in all respects is a great product for its price tag.  I had seen the early iterations of Parallels Coherence feature by then–that is, the feature that allows individual Windows apps to appear alongside Mac apps, and VirtualBox’s “seamless” mode was much farther along at the time.  (VirtualBox definitely wins the vocab award: “Seamless” is a much better name for the feature than Coherence or VMWare’s buzzword, “Unity”.)

So Parallels fell off my radar, until a few days ago, when I was trying to find a way to run GuildWars on my Mac.  Turns out, Parallels runs DirectX 9 and VirtualBox doesn’t.  So, I downloaded the trial of Parallels, and it’s pretty cool.  Unfortunately, no, it didn’t meet my needs for a gaming machine, although it’s possible it would do the job on a newer model Mac.  (Aside from some weird texture issues, the only concern was framerate.)  But I have switched my web testing over to Parallels, and I don’t think I’ll be looking back.

Clockwise from Top Left: Firefox (Host), Chrome (Guest 1), IE6 (Guest 2), IE7 (Guest 1)

Clockwise from Top Left: Firefox (Host), Chrome (Guest 1), IE6 (Guest 2), IE7 (Guest 1)

Parallels has gone far beyond window integration (which is itself much-improved) to nearly true application integration.  I can set favorite Windows apps such as Internet Explorer (using the term “favorite” quite loosely) and they get saved to my dock.  Later on, I can click on an icon to launch and/or focus the app, just as I can do with a native Mac app.  I know I’m late to the game on this feature, but it’s such a relief for it to be automatic in Parallels…  I spent hours trying to write an AppleScript to do the same thing in VirtualBox–the closest I got was to restore the virtual machine to a particular state and launch it.

My current setup is a bit laggy–I have installed IE6 into its own virtual machine, and running both VMs side by side is lag city.  I am considering testing the old “Multiple IEs” hack to see if it will run in XP Service Pack 3 and, if so, I will just keep all of my Windows browsers in one basket.  (Otherwise…  IE6 on Windows 98?)

But under normal circumstances, it’s a cool experience.  Ther XP windows–what with their drop shadows, their playing nice with Exposé, the lack of a taskbar–look so comfortable on my Mac desktop it’s a bit eerie…  In fact, I tried the “silver” XP theme and, it was so incognito that I had to turn it back to the default blue in order to maintain sanity.

So, Parallels is how I get my Windows now.

Posted in Technology | 3 Comments

Broken Record: Firefox Bugfixes

Every time an update to Firefox is released, I hear the same conversation:

“Oh no, does this mean Firefox isn’t secure?”
“I think so…  There were six critical vulnerabilities in this release!”
“Did you know that more vulnerabilities were reported for Firefox last year than for any other browser?  Firefox had four times more vulnerabilities than Internet Explorer?”
“ROFL that’s why I just use IE.”

I really do hear this conversation every time, and unfortunately it’s an apples-to-oranges scenario.


Because Firefox has so many vulnerabilities and bugfixes, it must not be as secure as people think.


Firefox has so many publicly disclosed vulnerabilities because it is the most popular open-source browser.  This means thousands of people can look at the program code and see where there are vulnerabilities.  Compare this to IE, where only Microsoft programmers have access to the raw code.  If they discover a vulnerability, they don’t have to report it or even patch it until it becomes an active threat.  I’m guessing, in most cases, they don’t patch any but the most serious vulnerabilities, because it’s a waste of man-hours to attempt to perfect an old version of the browser.  (Most of their resources are probably focused on Internet Explorer 8 at this point.)

So of course Internet Explorer will have fewer disclosed vulnerabilities…  However, I’m willing to bet that a very high percentage of these vulnerabilities are actually exploited by hackers.  As for Firefox, the public bug tracker might be loaded with reported vulnerabilities, but I can count on a single hand the number of times these have translated to an actual, real-world exploit on the loose.

And more bugfixes is a good thing–it means Firefox is being patched and made secure more quickly than IE and other browsers.

If you still need convincing, try this:

  • Ask 10 Firefox users and 10 Internet Explorer users how frequently they have been infected by a virus or spyware in the past year.
  • Ask 10 Firefox advocates, who have forced their families and friends to switch to Firefox, if their family’s computer woes have increased or decreased since the change.

I have switched my entire family over, and the only one who’s had problems is my Aunt, whose kids were smart enough to create an administrator account for themselves and undo the security I put in place, but not, apparently, smart enough to forego Internet Explorer.  I’ve run Firefox for the past five years at work, and the only time I’ve gotten a virus is the five minutes I loaned my laptop to someone else, after which they handed it back with…  sigh…  Internet Explorer up and running.  Do the math.

Posted in Broken Records, Technology | Leave a comment

Web 2.0 to World: “Braaaaaaiiiiinnnnsssss…”

Facebook: They're all zombies.

Facebook: They're all zombies.

This just in: Web 2.0 is dead, according to Robin Wauters of TechCrunch.  So all those articles you’re reading on Digg?  Zombies.  Your friends on Twitter?  Yep, zombies.  And the annoying 25 Things posts on Facebook?  Definitely zombies.  (Okay, that last one was not terribly surprising, as I’m sure someone just reanimated the corpse of an old Livejournal quiz.)

Really, these death pronouncements are just silly.  Paul isn’t dead.  Rock isn’t dead.  And Web 2.0 isn’t dead.  (Hip-hop may or may not be dead; it took five slugs to the chest and was last seen in critical condition.  Developing story.)

First of all, I always thought my little gig as webmaster/PHP programmer would seem quaint as compared to that of a professional blogger.  But apparently, all it takes to be a professional blogger is to traverse a few search results on Google Trends.  Awesome!  I think I’ll put in my two-weeks notice.

Web 2.0...  Pirates...  It's all connected!  Quick, somebody call Al Gore!

Web 2.0... Pirates... It's all connected! Quick, somebody call Al Gore!

Sorry, Ms. Wauters, I understand it’s an opinion piece and my intention is not to pick on you…  But if someone is going to announce the death of Web 2.0, I would like to read some actual opinions in that opinion piece.  Not just a collection of charts courtesy Google.

Well then, allow me to add my opinions.

Web 2.0 isn’t dead.  Let’s cool it with the zombie jokes for now, but Web 2.0 is something you can’t kill.  It’s never been fully formed.

Continue reading

Posted in Technology | Leave a comment

Join the Cult: 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.

Continue reading

Posted in Programming | Leave a comment

New Theme: Fusion

I’ve installed a new theme for the blog: Fusion by Digital Nature.

The layout and positioning are not quite to my tastes, but the subdued, neutral matte color scheme is right up my alley at the moment.  I’ve tweaked a few elements–sidebar width, search bar, header height, etc.–to be a bit more compact.

I had wanted to design my own theme, but I decided to swallow my pride and just pick one, because I don’t want this blog to feel like work, and I’ll never write here if I feel like it’s unfinished.  So this will do for now.  Perhaps I’ll build my own theme when & if I convert this blog from WordPress over to Escher.

Posted in Site Updates | Leave a comment