Archive for the ‘technology’ Category

Turing Test for Clouds

Friday, December 11th, 2009

One of the ‘trends’ in programming is Monkey Patching which bypasses fixed static types and is used in more dynamic languages. I internalize the technique as; “if it looks like a duck, walks like a duck and quacks like a duck…. then who cares what it really is”.

Yea, as a philosophy I know it lacks nuance but it’s worked well historically so let that dog hunt.

Another important bit of geek-trivia is the famous Turing Test, if you’re here and don’t know what that is (or how to figure it out) then you should move along now, this isn’t the droid you’re looking for.

Simplified, Turing’s Test and Monkey Patching both suggest that explicit identifications aren’t practical. Rather that implicit behaviors should define the use of something. It’s a very expedient supposition that anyone who’s dealt with contracts would envy.

What’s in this for Cloud, given that NIST has done a nice job of defining cloud in practical terms?

As a buzzword, cloud’s seen more then it’s fair share of hype;

google trends for cloud computing

So everyone’s been trying to claim the moniker, and today I was reading about a ‘cloud based product’ that really was simply a web portal much like Walmart. Though I’m sure it can accurately claim to be cloud under a number of definitions, my instinct was “No, definitely not”.

However, a colleague replied to my skepticism saying; “it underlines that there are already commonplace applications in use that are legitimately ‘cloud’.”

Where do you stand on such a claim? That online shopping or market makers such as eBay are SaaS cloud services?

Underlying it all, are deep philosophical questions as integral to humanity’s future as determining where the soul resides!

  • What if I have an amazingly dynamic and responsive application, run by monkeys behind the curtain?
  • Would I be cloud computing if I used twitter via snail mail?
  • Does my subdivision’s swimming pool classify as IaaS, with its broad network-wide (i.e. roads) access, and rapid elasticity (easy capacity management) and measured service (towel charge) if there’s no lifeguard (On-demand self-service)? Surely you don’t need me to explain “resource pooling”.

Strictly speaking I’m not sure where I stand, but I think Turing would tell me to go with the duck and even a million monkeys patching the pool shouldn’t change my mind.

BookList – Entry 8: Wired for War

Saturday, April 11th, 2009

If you’ve seen either of my recent robotics projects then you might suspect I have some slight fascination with the more exotic forms our technology can take. Which it not to say that I don’t have reservations, nor do I think there’s anything glamorous about the more sinister forms such innovations can take.

Which is why I was really interested to read Singer’s book, Wired for War.


After having seen him at TED I came to believe that he was someone who could appreciate the duality such developments bring. It’s not that I believe Skynet is near, and many of these new ‘bots are really cool. Rather, it’s actually the human side of these components which causes concerns, do we really think weapons of war should be the same as playing on your gaming system?

Singer more then delivers, both illuminating the fascinatingly secret world of military robotics as well as raising some serious moral and social implications of such situations. For example, predator drones are flown by ‘combatants’ which technically makes them valid military targets, however these operators never leave US soil and often go home to their families at night.

There’s really so much more to consider, however if you find these topics interesting then I can’t recommend this book enough and instead I’ll leave you with the following thought;

In the arts of peace Man is a bungler. I have seen his cotton factories and the like, with machinery that a greedy dog could have invented if it had wanted money instead of food. I know his clumsy typewriters and bungling locomotives and tedious bicycles: they are toys compared to the Maxim gun, the submarine torpedo boat. There is nothing in Man’s industrial machinery but his greed and sloth: his heart is in his weapons. This marvellous force of Life of which you boast is a force of Death: Man measures his strength by his destructiveness
– George Bernard Shaw

Bridge to my heart…

Monday, December 15th, 2008

Yesterday I talked quickly about my new ioBridge module and how excited I was to get started with it!

As I mentioned, my real goal is to bring physical interactions into the digital world and I had a heartbreakingly simple desire to get started with! Like most of you I’m sure, I have a special someone who’s stuck on the other side of the tubes most of the day.

I’ve known several coworkers to spend quite some time on their cellphones with family members exchanging tidbits throughout the day. I’m lucky that my spouse has some significant technology savvy (who says they can’t be trained… j/k hon!) so we get a lot of our “chit chat” done without breaking the context of our mental modes by using gtalk.

I’m sure many of you use some form of instant messaging for work, and have developed an enjoyable bit of asynchronicity to your conversations. It’s rewarding to be able to stay in the zone and then pick up a conversation where you left off once you’ve got a moment’s break.

However, how many of you have started a conversation with “Hey, are you there?”. It’s a personal pet peeve of mine (i.e. tell me what you need so I can deal w/ it when I have a chance) but often there’s no need beyond wanting to know the other person’s there and still has a pulse.

So that’s where iobridge_project_v0.01 comes in!

If you’ve checked out the link and are a bit confused here’s the explanation!

1) I wanted to build a digital representation of my physical presence and I decided that a “heartbeat” was a pretty obvious analogy.

2) So I found a wonderful tutorial on how to draw animated gifs but stopped with a single heart jpg and then needed to animate this beating in correspondence with my presence.

3) Using the very simple iobridge widget script I’m able to display the temp from my sensor wherever I want. However,  I wanted to actually _act_ on this data!

I’ve already talked with some of the ioBridge guys about them providing an XML / JSON interface and they were really receptive but there’s so much excitement over their device that I knew it would take a little bit of time before they could put something together.

First I tried to use jQuery to make a JSONP call to their server, but that didn’t work. Although I’m not smart enough to understand exactly how JSONP works, but I know the server has to cooperate. Despite their enthusiasm I knew ioBridge had more important things to work on and couldn’t turn around an API in 10 minutes (though I’m sure they’d try if you asked)!

I consider myself a persistent fellow, so I broke out firebug and started tracing through their script! It’s not rocket science, but the session variables and timestamps were a bit daunting. I must say they’ve put some thought and effort in securing your data (they even use HTTPS) and I started to feel myself deflate.

However, I decided to have a bit of lunch before I gave up entirely and that’s when I had my brightest idea all day!

4) I realized I didn’t need to worry about “spoofing” the request I could simply let ioBridge’s code do what it did best, polling the data! In turn, I did what I could do best, which was utilize the power of jQuery to get to that data!

5) So I simply hid the content div that I’d wrapped the ioBridge Widget in and proceeded to parse out the data! It’s as simple as;

$("#content").hide();

Then to get the data you just need to do this;

var t = $("#content").text().split(";")[1];
new_temp = parseFloat(t);

6) After that you just need a little UI logic and you’re good to go! Here’s a description of what I settled on but check out the page for the full on code;

I build an “animate heart” function which is triggered to fade in and fade out the heart. This is a simple function and could get more complicated if you’re a better animator then I am. Then I build a control function which would query the current temperature and compare that to the previous temperature. If things had changed (up or down) it simply tweaked the timing interval and reset the trigger event on the heart icon to have it beat faster or slower!

So there you have it! I can tuck the tempreture gague under my laptop so you can see how hard I’m working, or I can put it the back of my chair so you can get visual feedback as my body heats up the seat!

I know you’ll have to take the pulsing example with a bit of faith, but compare that to the temerature results and see the correlation! Also you can twitter me if you want me to go hold the sensor and make sure I’m moslty human!

What do I win… ?

Thursday, September 25th, 2008

I have a confession to make which probably won’t surprise many of you, least of all my wife. I hope it’s a minor flaw that doesn’t make me too intolerable but the fact is: I like to be right.

I don’t believe I’m the “In your face – *boo yah* Where’s my $20?” kinda right. I prefer to consider it as a paternal smugness, quiet calmness with a wry, knowing “Well, I’m sure you had to figure that out on your own but I just wish I could have made things easier for you” kind of smile.

So I don’t normally go out of my way to toot my own horn but I wanted to take exception because I think it will illustrate a lot about me… and trust me I’m wrong a fair amount of the time too.

There are great debates about “Generalists vs. Specialists” and “Consumers vs. Producers” and I’m sure a ton of other “Mavens, Connectors, etc…” generalizations from Freakenomics.

Honestly, I’m not sure which of any of those labels I truly am. On a Meyers Briggs test I’m a bit of everything and I sort of think of myself as a guy who could step into many situations and make do, which probably means a “Consuming Generalist Connector” if one had to pick.

To me it’s reminiscent of that TV show “The Pretender”, minus the genious IQ. I make no illusions that I’d be an adequate Dr. or working at the LHC, but I’ve done marketing, management, business, technology and lots of variations in between.

Most of my friends know that I parse a lot of data, it “feeds my need” and making the connections and tracking the patterns is something I find fulfilling. Recently, someone told me I have a great mind for strategy and I glossed over the compliment but in this most recent context it was interesting to reevaluate that statement.

So what was it? What did I do? Simply put, I did what I enjoy doing; I read and observed and let intuition guide.

I won’t bore you with a soliloquy about the merits of on demand fabrication and the future, but if you’ve followed any of it you’ve heard about Ponoko, BigBlueSaw and Shapeways.

Recently Ponoko announced an upcoming feature release, something to make digital design and fabrication easier and more approachable then invited people to guess. So I guessed, not having “the answer” in mind till I started writing my comment but when I wrote I had that sense of knowing I was right.

It wasn’t like competing for a Nobel Prize, there were probably only about 75 other posters but the only other person who mentioned something similar was the one immediately following mine. And now it’s real and people are excited about it.

Me, I think it’s a great concept and I’m excited too, but I must admit; I’m also excited about being right.

So Ponoko, where’s my prize?

Posting from my iphone

Tuesday, July 22nd, 2008

Although it’s a bit limited, e.g. creating links, I’m now able to post from my iPhone!

It’s not only “neat” from a technology perspective but blurrs the lines between blog and social networking site.

Almost a resurgence to distributed computing environmants.

After all, why twitter when I can post here, and why lock my data into Facebook and the like if it can be controlled by each individual?

Focusing on API’s for connecting people’s various identities and sites will allow it to all feel seemless.

I can add photos too, once I figure tuat part out. But first thing first… Can someone get a better spell check please?

photo

How traditional IT skills are becoming irrelevant

Wednesday, June 4th, 2008

I hope those who know me wouldn’t peg me as an alarmist. So take my title with a grain of salt but also, because of that same optimism, with a sense of sobriety.

I’ve followed “cloud computing” for a while (before it was called that), most often in the context of Amazon. From my position, it’s been really interesting to see the growth and dead-ends of this shift. And although in some ways it represents an outside disruptive force for my job, in others it’s a technology and mindset I’m trying to drive internally and externally.

My analogy for my job is that I help design, edit and publish “books” but never write one of my own, so some of my perspectives are gleaned second hand without the heat and intensity of battle. Yet, I’m also keen to learn from other’s failures (and successes) so I do my best to leverage the examples others provide.

SmugMug is a photo sharing site that’s been a big champion (and occasional critic) of Amazon’s services and despite seeing their use of them as a competitive advantage they’ve been very open about their practices. Recently they described how they’ve built a very successful workflow around these concepts and I think you should give it a read.

There’s a tangible shift in computing that I don’t think has been felt in more traditional environments. Certainly enterprise IT is used to hearing fads fall to the floor, anyone remember “The Mainframe is dead”? But it’s also very easy to point to successful companies like SmugMug and claim they’re not enterprise players.

However, consider Amazon (or Google) and remember they don’t just provide this stuff for fun. It’s what they themselves use internally for their “day jobs” and that it’s because of these same services and not in spite of them, that they’ve reached their current heights.

Time will only tell if they can hold these lofty positions, but my belief is that the future’s in the clouds.

O’Reilly Make me an Offer!

Thursday, April 17th, 2008

I’m a big fan of O’Reilly books, as I’m sure most of you are. They’re great technical resources for me and have cute animals my wife can really enjoy!

A friend of mine got Programming Collective Intelligence and recomended it to me, so my mother-in-law gave it to me for my birthday (yay, I’m old!). I’m stoked to see O’Reilly focused on moving “up the stack” of technology in such an approachable way.

I finally got a chance to start last night and reading the preface it was immediately apparent this was going to challenge my newly developed python skills.

e.g.

{xvii} //That’s the page #

string_list = ['a', 'b', 'c', 'd']

string_list[2] # returns ‘b’ #wrong it should be ‘c’

You know when they’re teaching you incorrect python that it’s going to be a fun way to learn. I worked my way up to page 11 lastnight and found about ~8+ errata. This is the first time I’ve felt completely comfortable marking up a book (oh the sacrilege!) but I do focus better when I can’t simply skim…

I expressed my recent activities on twitter, and another friend asked if I was keeping a list. So, FJ, this post’s for you and for everyone else who doesn’t want to scratch the same grove in their head that I did.

O’Reilly’s great about leveraging the collective intelligence [pun intended] and you can Submit and Find errata (perhaps I should order by frequency and say “Find and Submit”) a O’Reilly’s website for the book.

    Unfortunately, the official list only has two and hasn’t been updated since the 18th of Feb!!!

I submitted mine there and there’s a ton more (but the user format is a little hard to scroll through).

So here’s my quick list till now (p11) [I'll try to add new ones as comments so you can track this post] and if anyone from O’Reilly’s reading I think I’d make a great editor, if only to actually update the official list with the good community feedback and help others out!

{xvii} string_list[2] = ‘c’

{xviii} /* first list compression should change v1>4 to v>4 */

{xix} // Chapter 2, 2nd to last line “move” should be “movie”

{9} critics['Toby'] #output is missing ‘Superman Returns’: 4.0

{10} //The results of both math functions are wrong as they use the wrong datapoints (5,4) & (4,1) which should be (1,4.5) and (2,4)

{11} //sim_distance() – the return function should be; return 1/(1+sqrt(sum_of_squares))

{11} from recommendations import critics, sim_distance #reload(recommendations) didn’t work for me. You’ll have to change the subsequent function call as well and because of the previous errata the returned # should be 0.2942 (approximately) and not 0.1481

{11} This wasn’t my find, I learned it from the user submitted errata, but someone mentioned using “si = set()” and then “si.add(item)” instead of “si[item]=1″ … Both make sense, but the set seems cleaner and was a new semantic for me.

Amazon Overview

Tuesday, March 18th, 2008

If you’ve read my earlier posts you know I spend a bit of time following Amazon, both from a business perspective as well as my interest in the energy they’ve invested in webservice (SaaS) technologies.

I recently gave a presentation to discuss their offerings and wanted to make that available to anyone interested.

I build presentations that can also act as “guidebooks” once the discussion is over, i.e. the presentation interests someone in the topic, but the charts should also be useful as a starting point for their own experience. Thus I’ve included links and citations for the various sections. It may seem a little overwhelming when you’re just paging through but it seems to work well for my presentation style and my typical audience.

I always find it interesting to compare and contrast my experience with a presentation given verbally vs. paging through the deck later. In an engaging conversation, some of the more interesting and thought provoking dialogs revolve around a single bullet point. However, when paging through a deck you’re often drawn to “examples” which are really for a reference or to substantiate a divergent discussion.

I’m most interested in the “implications and extrapolation” phase of a presentation as opposed to ones that review the “what and why” of an activity.

I hope you’ll find this interesting and helpful and if there’s any parts I can help elaborate on please let me know.

Even an Apple goes bad now and then…

Wednesday, February 27th, 2008

I seem to be having a confluence of technology issues recently.

Dreamhost, which I’ve loved until now can’t seem to follow through on a simple request (so that I can pay them!!!). And that 1TB drive I “gave” myself for Christmas has failed and the manufacturer hasn’t returned my service call.

To top if off, last night I managed to “break” my iPhone. It’s not physical damage, but now I’m unable to “take” a picture, something I enjoy doing so I can post them to various places.

Things seem to work ok from the shutter closing, but when I go into the camera roll to look at the saved photos, there’s now an empty thumbnail. Selecting the thumbnail causes the photo roll to crash.

I believe the mistake was in using Microsoft XP’s “camera services” to delete the 330+ photos I had saved, obviously not something I’d do by hand. Every time my wife and I sync our phones I have windows configured to copy off the pictures, but this time I’m sure Windows in all it’s glory decided to set a bit somewhere the iPhone doesn’t expecting.

A firmware upgrade to 1.1.4 didn’t fix, and when I went to restore I got an error even then; 1602. Apparently that means I’m supposed to completely remove iTunes and Quicktime from my wife’s computer and reinstall everything.

I’m can’t even able to get an image upload working to show you the error message ….

It’s rough, but manageable. It just means time working through various support queues.

The important realization is that everyone and everything disappoints in some way… this is life after all. We’re usually lucky in that failures are rarely life threatening or permanent.

Avoiding the potential for failure is in and of itself a disappointment, for without the effort I wouldn’t have joy of toys that are cool when they work. If you take them in stride and carry past the implications, anything is surmountable.

So soldier on… but be careful

Even the real geeks at google can’t get it right all the time…

Sunday, February 10th, 2008

Having a “systems programming” background I’m a little green to this web programming stuff. It’s not that it’s incomprehensible, I’ve designed for these applications but I want to ensure I can implement some of the software components as well.

I’m beginning to really appreciate it, in part because the frameworks are so polished that I don’t have to worry about drawing boxes and attaching buttons just to make a workable interface. I’m also a fan of REST and appreciate the human readability, however XML is not “imparseable”, it just wraps horribly in a console window.

As you can tell from previous posts, I’ve been practicing Python and I’ve begun exploring RSS as a communication mechanism and attempting to use feedparser for working with that data. A feed library is crucial because of the trickiness of XML, the multiple versions of RSS and the intermix with Atom.

Yet, I seem to be thwarted by my expected allies in this brave new world, Google.

Of all parties, as evidenced by the plethora of their API’s, you’d expect Google to be the most rigorous in ensuring the ease of integration of their products.

Yet, even with a set of well baked set of enhancements to Google Reader it appears that even Google isn’t perfect.

In short; I’m trying to use a well known feed library for a language favored by Google, to read a popular blogger’s shared feed, in well known standard from a popular Google RSS service


Yet, it appears to not be valid syntax… how can us mere mortals hope to survive?