Face Down, Nine-Edge First

My friend, R, instant messaged me earlier today, with the following geek joke:

Q: How do you bury a programmer?
A: Face down, nine-edge first.

Not understanding the joke (and thus completely missing out on the absurd humor), but also not wanting R to know that I was completely clueless, I immediately switched to FireFox and Googled the punch-line.

The first (and only) link I followed led me to the website everything2 - a veritable mish-mash of random factoids and miscellaneous lore - which happened to have the answer I was looking for: "Face down, nine-edge first is the proper way to insert card decks in the IBM 1402 and 1622 punch card readers."

What's great about this random discovery, however, beside the quick history lesson, is that the explanation went on to tell me that this phrase is used in a geek poem called "The Last Bug", hearkening back to the far-distant, dark, dusty days of punch card computing...

Ah, to stumble around the Internet and find a wonderful, random, old post like this.  It takes me back to the days of scowering the racks at the college library for books that hadn't been checked out since the early 1900s.

But I digress.  So, I IM-ed R back a link to the poem, thanking that dark overlord Google for pulling the weight of my obvious geek-slackerness.

Google App Engine + SFDC Deep Integration - Oh My!

My friend, C, emailed me this morning to let me know he was rudely awakened at 6 AM by his BlackBerry, which had received some sort of SPAM or other...  In the same message, C also let me know that Google had just launched its new "App Engine", open to the public (well, about 10,000 of them, anyway, since this is a "Preview" release) - pointing me to Matt Cutts blog (posted yesterday) on the subject.

According to the official Google Blog, the Google App Engine opens up to developers the "same building blocks" that Google itself uses.  Items built using the Google App Engine are hosted on Google servers, for free, and receive 500 MB of storage utilizing the Google File System and Bigtable data storage system and 10 GB of daily bandwidth.

This rung a bell, reminding me of SalesForce.com's entrance into providing Software as a Service (SaaS) with their AppExchange and SDK for developing SFDC-integrated and hosted solutions.  A little bit of Internet sleuthing uncovered a blog entry on Tech Crunch, also dated yesterday, that hints at "Deep Integration" between SFDC and Google.  According to the blog post, SFDC is going to begin reselling Google Apps, such as Google Docs, which will be "tightly integrated" into SalesForce, and is purported to make an announcement next week to the same effect.

Interesting timing... In light of the Google App Engine announcement, WHAT DOES THIS ALL MEAN?  The Tech Crunch article goes on to offer the tantalizing speculation that Marc Benioff, SalesForce CEO, might be considering selling to Google, but I'd think a merging of forces might be more in-line with these recent announcements.  If SFDC is going to resell Google Apps which are going to seamlessly integrate with it's own SaaS platform, it makes a blogger wonder if SFDC isn't going to end up being powered by the Google App Engine itself.  Imagine the kind of powerhouse that would be...  People integrating SFDC inside of the hosted Google App Enginge, people integrating Google Apps in SFDC, strange hybrids between Google and SFDC, monstrous cross-breads, ridiculous amounts of customer data flowing back and forth...

Is Google in it to gain access to the customer data?  That "deep integration" certainly is a way to expose Google Apps to the corporate (paying) sphere...

Are Google and SalesForce in it for platform dominance?  A combined Google/SFDC platform would sure blow the metaphorical socks off of the Windows Live/Office Live platform...

And aren't there any other players out there?  What happened to that offer for Oracle to buy up SFDC?  Where's Yahoo! when you need them? (Oh, right, hoping to fend off Microsoft's takeover bid...)  And Apple Computers (forget about them - they gave up the good fight a long time ago)?

It's beginning to look more and more like a two-player world after all - two corporate titans gobbling up everything else in sight.  Get ready for another match up of corporate titans, ten rounds of Microsoft versus Google, Steve Ballmer versus the tag-team of Larry Page and Sergey Brin.  I don't know who to root for on this one...  Linus Torvalds, where are you when we need you the most?

Give One, Get One... Later

Where's the Beef Laptop?

After waiting patiently over a month to receive my "Get One" latptop from the One Laptop Per Child's "Give One, Get One" promotion, I finally got around to calling their 800 number a week or so ago to see what the story was.  Looks like I'm going to have to wait a bit longer...

So, like I said, I called the 800 number and, a moderate wait time later, was greeted by a very friendly and sympathetic support person. Once she was able to pull up my information, we discovered the culprit...  The way that the PayPal fields mapped up to the OLPC database basically dropped half of my address.  Yes, line 2, the important one where I put the actual street address, because I placed "Congruent Media" on line one, had vanished into the ether.  Apparently, the delivery service doesn't know the location for "Congruent Media, Baltimore, MD 21224"...  (Who coded that, the same people that forgot to convert from metric to English a few years back during that Mars Climate Orbiter fiasco?  That would never have happend if the OLPC had hired Congruent Media to do the job!)

At any rate, after we got that corrected, she informed me of the good/bad news - my laptop wouldn't ship until the end of March or the beginning of April, because they were out of computers and in the process of assembling more.  To me, that's great news, in that their "Give One, Get One" promotion was a huge success!  So, presumably, some time in April that box will show up at the office and I'll be able to pop it open and experiment with this crazy $200 computer they're building for the children of the Developing World and, well, children everywhere...

Why'd I Want the Beef Laptop Anyway?

So it's along story (or maybe a short one).  Sure, it'll be cool to mess around with the OLPC's cheap, robust gizmo, put it through its paces, and see if I can use it in my plans for world domination.  But really, the story begins back in the 1980s.  You remember the 1980s, right?  That time where everyone had outrageous haircuts, the Ford Mustang traded in its classically cool look for something boxy out the future, Knight Rider was on television and people actually thought David Hasselhoff could act, Reagan was President, and having a 16 color monitor was cool?  (If you don't remember the 1980s, you can catch the highlights on VH1.)

Anyway, when I was a kid, back in the 1980s, one of the single most important decisions my parents ever made was to purchase a used IBM PC Junior from our neighbors across the street.  For those of you that are historically challenged (go watch the VH1 highlights), the PC Junior sported a 4 color monitor, a 5 1/2 inch floy drive, and amazing 64 KB of RAM.  You had these solid-state cartridges you'd plug in to get into the BASIC programmng shell.  Yeah, you know, maybe one or two steps above punch cards...

Like I was saying, when I was a kid, back in the 1980s, my parents bought this used PC Junior from our neighbors, and suddenly my brother and I were exposed to a whole new world of possibilities.  Being the precocious children that we were, we dove right in.  The gloves were off within weeks, and soon we were pushing that machine as far as we could go.  As technology progressed, we upgraded to a 286.  I remember that time fondly.  I coded up a drawing program in BASIC (the old, old BASIC, that had line numbers, with GOTO statements, and no GUI interface) - you could use the arrow keys to move around on the screen, draw basic, paint boxes, and even save your images!

The point is, I became comfortable with technology, with using it, with modifying it's components, with the fact that if I broke it, I could fix it - no big deal - just a few hours of tinkering around.  Now I'm designing crazy Internet applications and my brother is installing and maintaining VOIP systems.  Without that exposure to jump start us, I don't think either of us would be in the fortunate position we're in today.  Sure, we would have eventually been exposed to computers in school, but we would have missed out on those crucial formative experiences.  Instead of creating things with technology, we'd likely only just be consumers of it.

We were fortunate enough to have parents who could afford to buy us that first piece of technology.  The majority of the world's children, however, don't have parents that can afford that luxury.  Every child deserves a chance to succeed, and variouis organizations throughout the economically developed world have have been attempting (for a long time) to better the condition of children, and especially poor children, in our countries and abroad, through various means.  We've given money.  We've given food and other kinds of aid.  We've built schools.  Now the OLPC has come along and thought - "Let's give them TECHNOLOGY".  This is a novel approach, and not necessarily the most intuitive.  But this may be the missing piece of the puzzle - who knows? 

We've moved from the Industrial Age into the Technology Age, and one of the most important skills anyone can have is the ability to confidently use a computer for a productive purpose.  It's that whole "give a fish / teach them how to fish" proverb... and to fish in this age, you need a hard-drive and a connection to the Internet.

Microsoft Proposes Yahoo! Buyout - Once Again Exhibits Poor Business Judgement

The news is out, Microsoft is making a bid to purchase Yahoo! for just under $45 billion.  According to reports, the Redmond software giant believes that combining forces with Yahoo!, the ailing Internet portal and search engine, will turn it's own Internet business around as it continues to hemmorage money in the battle against the 700 pound gorilla named Google.  Apparently, the offer is 62% above Thursday's closing price for Yahoo! stock, illustrating Microsoft's brilliance at overplaying it's hand in a desperate attempt to gain some sort web foothold. 

While Microsoft may think that aquiring Yahoo! will help it level the playing field, the only people I can see winning from such a deal are the shareholders themselves, and Google.  If I was a Yahoo! shareholder, I'd take the deal and split with a fat wallet, much happier than losing my shirt as Yahoo! continues to sink.  And if I were Google, I'd be happy that Microsoft is throwing away good money after bad by purchasing an already-bloated, under-performing Internet company.

What Microsoft should be doing is taking a page from the old Google playbook - invest in bright ideas by aquring small companies doing really cool things, as well as tried and true larger ones.  This brings in new talent that hasn't fallen into the brain-numbing rut of the mega-corporate-technocracy, fostering the maverick pioneer spirit of innovation, and generally creating an exciting work environment.

To be fair, Microsoft has aquired its share of small companies as well as large, most notably to this blogger the 2004 purchase of GIANT Company Software, Inc., which had a really cool anit-spyware tool until the good old boys in Washington monkeyed with it and turned it into the clunky Windows Defender.  The problem is that, while Microsoft may be aquiring talent, it's not aquiring Internet talent, which is what it now hopes to achieve through this unholy union.

Personally, I'd like to see Microsoft make some headway in the Internet battle against Google.  Maybe, despite my nay-saying predictions, the Yahoo! executive board and shareholders will approve this proposal and it will be a wildly successful combination and not money thrown down the drain.  Don't get me wrong, Microsoft is no friend of mine.  But just as Netscape and Microsoft battled it out in the late 1990s, followed by the rematch of Microsoft versus Firefox in the last few years, for browser dominance, and just as Microsoft and Apple have been dualing for twenty-some odd years in the computer systems arena, this battle of Google versus Microsoft is bound to fuel new innovations.  This time around, Microsoft is the underdog.  Hopefully it can keep Google in check - the last thing we need is for Mountain View's wildest success story to turn into an evil, information controlling, mega-opoly.  It's certainly sitting on top of that slippery slope right now.

Thanks Ryan! It was mighty tasty... We'll save you the kale :)

Earlier today, a beautiful fruit bouquet was delivered to Congruent Media World Headquarters, addressed to one Ryan Katz, Director of Client Services, as a thank you gift from a client.  The bouquet included chocolate covered apples and strawberries, grapes, and pineapple chunks and melon balls shaped into flowers, all with a green kale base.

Normally, Rebecca Savage, Customer Service and Front Desk extraordinnaire, would walk the bouquet back to Ryan's desk.  Unfortunately for Ryan, though, he's currently on an airplane en route to Florida for a week-long series of meetings with another client. 

However, the folks here at Congruent Media are not a wasteful bunch... Rather than let Ryan's delicious-looking fruit bouquet moulder and rot on his desk, collecting fruit flies and feeding the mice, we decided to do him a service - and eat his fruit bouquet!

Fruit BouquetRebecca Savage, Eric Leikus, and Nancy Levesque Admiring the BouquetSean Oakley Eating a Piece of Chocolate Covered Apple

Notes from CFUnited 2007 - Day One

Right now I'm sitting in the Adobe Spry/ColdFusion seminar at CFUnited 2007, and what I've seen and heard makes me guardedly optimistic that the technologies we've chosen to learn and implement so far have us on the right path and well ahead of the curve for ColdFusion development.

So most of you only have a peripheral knowledge or experience with all of the framework enhancements that Jason and I have been making.  I'll try not to go into too many technical details, but suffice it to say we've embarked upon building a robust, object-oriented, comprehensive, scalable framework (we hope).  Currently in use in some form or another on the Humidx/Home Image site, and soon to be in production for the AAB and People 2.0, this evolving framework has sought to integrate some of the most current cutting/bleeding edge technologies available - ColdSpring, Spry, FCKEditor, and diverse Image Manipulation and other tools.

Our new framework integrates the latest Spry, ColdSpring, and ColdFusion technologies.  Additionally we've been using FCKEditor for years.  As it turns out, the latest release of FCKEditor has been included as a standard feature in the forthcoming ColdFusion 8.  CF8 also has built-in image manipulation components - I assume that they're hooks into some core Adobe CS libraries, but that's only speculation.  The point is, there's built-in integration for something else we've also been doing for years with a COM object extension, and the functional API is quite similar.

Let's break it down:

Congruent Media CFC Framework: Our Congruent Media CFC framework takes advantage of the best features of ColdFusion and object oriented programming, allowing us to easily drop in existing modules or prototype new ones.

ColdSpring Framework: ColdSpring allows us to easily manage our various modules and other components, without needing to worry about whether or not our factories, gateways, and services are instantiated or not, and which may depend on the other.  ColdSpring handles all of this for us and, as an added bonus, caches our components for added speed during the webb application lifecycle.

Spry Framework: Currently, we're using the Spry framework to integrate into our forms to provide dynamic client-side validation and manipulation, including enhanced error messages and item-level error notifications.  This enhances the user experience - no need to wait for the form to post only to find out your forgot to enter your email address...  This works hand-in-hand with our new form generator component and our existing server-side validation code to provide a seemless client/server experience.  However, Spry has additional AJAX features that we hope to take advantage of in the future, including dynamic data sorting, client data refresh, etc.

FCKEditor: FCKEditor is the WYSIWYG editor that we use in some form fields (FCK stands for Francisco Calderon-Knabben - the original creator of the editor).  This editor provides a rich set of customizable functionality, including all of the standard formatting features like in Microsoft Word, but also with file, image, table, and flash functions.  The built-in file uploader/editor allows user to add images or other files in-line to their content without the need of other management tools.

Dynamic Image Manipulation: Yes, we've been doing this for years - resizing, cropping, watermarking...  Heck, we could even read the XIF data if we wanted to.  Currently we use a third-party COM object to manipulate our images, and this object works quite well, containing a comprehensive set of commands that provide all of the basic functionality one could want to handle for images on the web.  In CF8, a similar set of powerful image manipulation tools will be available, and part of the standard CFML library.  This library includes built-in CAPTCHA capabilities.

What this all means for us?  Well, we're already on the cutting edge where it comes to ColdSpring, Spry, FCKEditor, and Image Manipulation, which, I believe, puts us well ahead of the curve, especially since we've taken all of these diverse technologies and glued them together with our own framework.  As our framework comes to fruition, this will provide for a great user experience and, hopefully, a very easy-to-extend and manage set of code.

Spry and ColdSpring are buzz-words right now in the CF community, and we're well ahead of the curve on integrating these technologies to produce highly efficient, streamlined, and user-friendly websites to our clients.  FCKEditor will be the de-factor built-in standard WYSIWYG editor in CF8, and our experience with dynamic image manipulation will carry over to the built in power of CF8.

Session ended.  They're kicking us out of here.  More to come soon.

The Future of Human Interface Devices

A while back, a co-worker of mine sent me an email with a link to a talk by New York University researcher scientist Jeff Han, demonstrating the bleeding-edge of technological innovation in the realm of Human Interface Devices.  Since watching the video on TED Talks, I haven't been able to get it out of my mind.

For those of you unfamiliar with the term, a Human Interface Device is the peripheral that allows you, the human, to communicate with the machine - keyboard, mouse, joystick, microphone hooked up with voice recognition software...

So what was so special about this new interface?  Simply put, it's a touch screen that allows for multiple points of simultaneous contact.  Sure, on the surface, that doesn't sound novel at all.  Touch screens have been around for years - we use them at ATMs and kiosks all the time. 

Well, here's the difference: those ATMs and kiosks only register contact at one point on the screen at one time.  If you place two fingers, one at each corner, the device has to decide which one is more important and register that one.  This new device simultaneously registers all points of contact on the grid - you touch it with all ten fingers, it registers those ten touches.

Okay, that's not so new or novel, either, and, besides, who cares?  Well, like all things, it's not what it is, but what you can do with it, that matters.  Remember, this is a touch screen - what you see on the screen is completely configurable and amorphous, and the interpretation of your touch is completely contextual. 

Think of using your hands to zoom in and out on a map, or to rotate an image.  Think of designing in three-dimensions.  Think of drawing, yes, drawing, with your fingers, digitally.  All of them, at once. 

Up to this point, most kiosks use the touch screen to emulate a keyboard-style interface.  Press a button.  Type in some numbers.  Move a slider.  This new interface and the software that powers it allows users to move beyond these traditional limitations, outside of the trap of keyboard-and-mouse. 

Think of the controls on the Star Trek's Enterprise, or Tom Cruise's desk in the movie Minority Report.  Now you're starting to get the picture.

Soon, we will no longer be bound by keyboards and mice.  Sure, we'll still need to bring up the keyboard interface now and then to make annotations, write emails to friends, put together business reports, but we no longer need to be bound by the limitations of the keyboard or the mouse.  We can begin to interface in more natural, intuitive ways, ways that change logically and contextually.  And if we don't like the way a certain interface works, we can fine tune it, or just go find another one that suits us better.

To view Jeff Han's talk at the February 2006 in Monterey, CA, at the TED conference, go here:

http://www.ted.com/tedtalks/tedtalksplayer.cfm?key=j_han

This site is running a Congruent Media enhanced version of BlogCFC 5.9.002. Contact Blog Owner