Blog Home  Home Add to any service  
Beckshome.com: Thomas Beck's Blog - Sunday, March 04, 2007
Musings about technology and things tangentially related
 
 Thursday, March 01, 2007

In the final installment of this March 1st trilogy, I’ll hit something really topical, the precipitous fall of the Dow Jones Industrial Average (DJIA) two days ago on February 26th. For those of you just diligently minding your stakes in the market, you probably got wind that all the major indexes tanked pretty badly on the 26th. The Dow, however, tanked in a rather unnatural fashion that was quite different from the others.


You can see the “Live” and recalculated Dow Jones numbers on the graph above. Although the actual  Dow (in orange) did drop pretty steeply, there’s no way it could have done the near vertical drop that the graph indicates without some outside intervention. It turns out that this outside intervention was provided by a “computer glitch”, as reported in the general press. More specifically, one of the queuing systems that feeds data to the system that actually calculates the Dow Jones index got backed up under record trading volumes. When market watchers got suspicious that the index movement did not align with the sliding values of its core components, they decided to investigate. Discovering the backlog, they manually switched over to alternate systems. When these systems worked down the backload, a new DJIA was calculated and voila, we had a 200 point drop in a couple of minutes.

As painful as this must have been for professional traders and as painful as it’s likely to be (in terms of lawsuits) for the Dow Jones company, this is really interesting from an IT point of view. If you’re an IT person looking for insight into how these markets work, I thoroughly recommend the book Practical .NET for Financial Markets. It’s one of the most advanced .NET texts I’ve ever read and, as a positive side effect, introduced me to a completely unfamiliar business domain, financial markets. Reading this book will not only make you a more educated developer (whether or not you use .NET), it will help you understand the causes and effects of events like those on the DOW two days ago.
Thursday, March 01, 2007 8:57:08 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback

If you work in the IT world today, you have a greater chance of not finding a Starbucks on a randomly selected block in Manhattan than you do of not hearing the term “SOA” during your daily workday. It’s unfortunately not nearly as often that I hear or read something about SOA that sounds reasonable, practicable, and overcomes my otherwise skeptic view of all the hype that so often masquerades as SOA. The recent ITConverations Podcast with Todd Biske and Ed Vasquez from MomentumSI is just the sort of real-world advice that avoids the hype and gives a heavy dose of ground truth reality.

Todd and Ed offer some pragmatic advice with respect to SOA and highlight challenges that really resonate with me based upon my experiences. Amongst these are the lack of a single design time and run time governance toolset and the importance of the mindshift from developing enterprise applications to developing reusable enterprise functionality that can be leveraged by different applications. Most importantly, however, is their insight in the importance of thinking of services as products. I have found this to be one of the single largest hurdles to achieving reuse – be it component-based or service-based reuse. Proficiency in application development in no way guarantees proficiency in product-based service development. In fact, most application development organizations that I have dealt with have little or no experience with product-based development. I couldn’t possibly cover all of the disciplines needed to master product-based development in this short post but I’ll refer you to a couple of sources that I feel give more than an adequate introduction.

I plan on recommending this Podcast to a number of people that I work with or have worked with in the past. I can’t expect everyone that I deal with to spend time digesting countless books and articles on the topic of SOA. As a matter of fact, given some of the materials out there, this might just prove more confusing than useful. An hour of time to listen to a Podcast (especially this one) isn’t too much to ask though. You’ll learn an awful lot in this hour.
Thursday, March 01, 2007 6:16:52 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback

In the first of my beginning-of-the-month speed blogs, I’d like to start with the topic that I’ve been putting off longest, building applications on top of Amazon’s Web services. For those of you that think of Amazon.com as just a book store, or an e-commerce platform, or [add your assumption here], think again. In the last year or so, Amazon has released a number of services that have not only established them as a first-class platform, but have pushed the envelope considerably on the idea of virtualization.

This trend started with Amazon’s Simple Storage Service (S3) and was expanded on with their Simple Queue Service (S2). Late last year, Amazon blew the roof off with the limited release of their Elastic Compute Cloud (EC2) service. EC2 is a configurable computing environment where you can load up virtual instances (roughly equivalent to your average Linux server) – on demand. You can load or unload these instances to meet cyclical demand and you only get charged for the computing time that you use. Couple this grid computing potential with S3 for storage and S2 for queuing and let your imagination be the limit.

Doug Kaye’s architecture for GigaVox Audio Lite, an audio file transcoder, might give you some ideas about what can be done with these services. The related ITConversations podcast contains plenty of details, with both Kaye and Jeff Barr, from Amazon, on the wire with Phil Windley. This podcast does a good job of conveying the vision and the realities of using these services. Some of the discussions, like managing and developing on top of a globally distributed queuing system where a call like size = MyQueue.size doesn’t really make any sense, will cause you to stop and think.

The final new Amazon service that I didn’t mention is Mechanical Turk, which is, simply put, a computer interface onto human services. This one has been around for a while and never got much attention from me until I heard the Podcast. Interestingly, the site castingwords.com, which produces Podcast transcriptions, farms out their work via Mechanical Turk. The combination - digital input in (MP3); digital input out (electronic transcript); virtual computing; virtual workforce – that’s pretty radical. There are some other great uses for this service mentioned on the Podcast as well.

The Podcast is absolutely worth a listen. And if this sort of thing piques your interest, you’re not alone. The queue to get into the EC2 beta program is a few months long. If you’re even remotely interested, get in line now.
Thursday, March 01, 2007 6:05:37 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
 Tuesday, February 27, 2007

One of my original intents of registering the beckshome.com domain name was to publish photos of my new baby son or daughter. That was two years and two daughters ago and, until this weekend, photos were nowhere to be found on my blog. I host my blog on the Windows platform and had no desire/time to do any of the following: (a) buy a separate package for image management; (b) cobble together an ASP.NET solution to manage my photos; (c) switch blogging software to a tool like Community Server that has integrated photo management. Furthermore, I already manage my photos on Flickr and I’m more than happy with the service, user experience, and the cost-benefit. What I really needed was a way to integrate my existing Flickr photos into my current .NET-based blog (DasBlog). The pursuit of this goal is what this blog entry is all about.

 

Being a regular blog reader, what I’ve seen a lot of out there are the Flickr badges. These badges, available in either HTML or Flash versions (like the one below), are pretty slick and can be found pretty much everywhere on the Web. The problem with these badges is that they only offer the opportunity for shallow integration. Click on the badge and bye-bye blog, you’re zipped off to Flickr’s site to look at the photos. Since I aspired to achieve a bit deeper integration, I needed a different approach.

 

www.flickr.com
This is a Flickr badge showing photos in a set called Thomas's Best Of 2006. Make your own badge here.

 

Next thing that I looked into was programmatic access to the Flickr API or a pre-existing solution that I could use wholesale or reproduce with little effort on my part. The Great Flickr Tools Collection has a vast assortment of very interesting tools – none of which quite seemed to meet my needs. I checked out the Flickr.NET API Library, which was written about in a Coding4Fun post and can be found for download here. It’s very well done and, although it probably won’t be the last time I mention this API in my blog, it will be the last time I mention it in this posting.

 

What I eventually stumbled on was a simple and elegant solution that got me exactly what I wanted by embedding the Flickr slideshow viewer into a custom page on my existing blog. Paul Stamatiou has an excellent post on his blog on how to do just that. By using an iframe and setting some API attributes you can get this up and running very quickly; qualifying this as a super easy hack that just works. Note that only photos marked as public will be displayed.

 

With the Flickr slideshow viewer up and running, I only needed to add the ability to select between multiple photo groups and I was done. With the actual Flickr viewer taking care of all of the real AJAX work, all that was needed was a bit of light JavaScript to tie this all together. Below you will find the code that does all of the lifting.

 

<script type="text/javascript">

      function changeSlideshow(url, title)

      {

            document.getElementById("SlideShow").src=url;

            document.getElementById("Title").innerHTML=title;

            return false;

      }

</script>

 

Clicking on any of the photo group links / thumbnails makes a call to the above function passing the URL for the slideshow in the manner stipulated in Paul’s article for populating the slideshow viewer. The title is also passed so that the title of the page can be updated. You can see this at work on my new photopage. By viewing the page source, you can see the exact mechanism I used to make this work. If you’re have any questions, feel free to drop me a line.

Tuesday, February 27, 2007 1:04:52 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
 Sunday, February 25, 2007

I realize that the title of this blog post is something that one would probably not associate with a blog that purports to cover technology. Bear with me please and surf over to YouTube (or view below) to look at the video posted by the Pennsylvania Fish and Boat Commission. I think you will agree that the video is very well done. Much like the partnership between Google and the Pennsylvania Tourism Office that I blogged about a couple of months back, this posting to YouTube represents some signs of forward thinking, Web-based focus, and creativity on the part of state government.

 

 

Granted, with tourism and fishing, we are looking at revenue generating sectors of state government. You don’t yet see this sort of thing from Welfare service divisions. How long will it be though until other sectors of state government start looking at public Internet services as an alternate channel for communications with their constituents? The economics of these services surely works in their favor (that is, they’re free). It then becomes a question of what the best channel is to reach one’s constituents.

Face-to-face interaction, snail mail, and government sponsored portals will be around for a while to come, I surmise. But as usage of cell phones, email, inexpensive audio devices and collaborative community-based Internet services like YouTube continue to permeate through the layers of citizenry, state governments will not be able to ignore these viable communication mediums. The one question that remains is whether state governments are prepared to engage in the two way dialog and deal with the power shift that these new communication vehicles will invariably bring.

Sunday, February 25, 2007 2:58:01 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Wednesday, February 21, 2007

The innovation engine at Yahoo is heating up, looking to get Yahoo back in the race with the “Big Boys”, rivals Google and Microsoft. In an environment categorized by copycat service offerings and one-upmanship, Yahoo’s offerings are refreshingly unique. I cover three of the most recent services that I’ve been playing around with and that I think will prove entertaining to my readers as well – Pipes, OmniFind Yahoo! Edition, and TagMaps.

  • Pipes – No less a luminary than Tim O’Reilly called Pipes “A milestone in the history of the Internet”.  Pipes is a browser-based visual editor that allows you to take input from one source and pipe it (in UNIX parlance) to another source. Along the way, you can apply a series of filters and transformations to manipulate the data. The data sources start and end as common feeds (RSS, RDF, etc). What you do with the data between its input and output is constrained mostly by your imagination.
Yahoo! was certainly not first on the scene with this idea. Dapper and others have preceded them in this regard. What Pipes brings to the party that no one else does is a really cool visual environment that allows you to trace the path of the data through the transformations and filers, interactively debugging along the way based upon the value of the successive outputs. It also has this cool reuse flavor to it, where you can experiment with, tweak, learn from, and potentially improve or fork off new versions of other peoples pipes or just reuse them in a black box sense.

After you’ve read Tim O’Reilly’s introduction, I encourage you to play around with Pipes. Although seeing is believing, you’ll learn best by actually doing.
  • OmniFind Yahoo! Edition – Product of a nifty partnership with IBM, the OmniFind Yahoo! Edition is an enterprisey search solution that is the baby brother to IBM’s commercial OmniFind enterprise product. Built on top of the open source Apache Lucene search engine, OmniFind has the solid lineage necessary to be considered worthy of the task.
The product is a very easy install, whether on Windows or Linux, requiring very few steps to get the product up and running. OmniFind returns search results against locally indexed documents and the Internet, with the results being returned in the familiar Yahoo! look and feel. For those interested, the UI can be styled to match a particular site’s look and feel or you can go the direct route and work with the exposed REST APIs.

With the pricetag (free) and support for a couple hundred file types, there’s little not to like about OmniFind. Search performance has proven to be very fast with a few thousand documents. Indications are that the tool scales pretty well although the indexing process can be quite processor intensive and there are a couple of known issues with cleaning up very large temp files that could eat into your available disk space.

  • TagMaps – I stumbled onto this product a couple of weeks ago while looking for some information about creating GeoRSS feeds. TagMaps is another way of visualizing data (tags in this case) on maps. I must confess that seeing tags on a map takes a bit of getting used to. I found that the best way to indoctrinate myself was by using Trip Explorer
Trip Explorer is a mashup of TagMaps and Yahoo! Travel users' public Trip Plans. What’s cool about Trip Explorer is that the clustering of tags reveals hidden tour gems that you might not otherwise find on a traditional map mashup. These gems become more evident (and detailed) as you progressively zoom in.

TagMaps is built upon Yahoo’s Flash maps, which are very interesting in their own right and need to be experienced if you haven’t yet had the chance. Aside from using Yahoo’s canned Explorer TagMaps, of which Trip Explorer is one, you can create your own TagMaps mashups. Simply create a GeoRSS feed or select an existing GeoRSS feed that returns a set of weighted tags for a given lat/lon bounded box. Easier said than done, I know. I’ll be writing more about how to do this in a coming blog entry. Until then, give this a look.
Wednesday, February 21, 2007 11:33:25 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Tuesday, February 20, 2007

I don’t like to do book reviews back-to-back but Founders at Work has kept me pretty busy reading (and not writing) over the last couple of weeks. The book definitely deserves a five star rating and at $13 for the e-book version, it really is a great deal. My review follows…

This is an absolute must read if you’re job, your passion, or both (if you’re lucky) has anything to do with creating technical innovation. “Founders at Work” is a wonderfully meander through the stories of successful company founders – across several decades. Far from focusing on just those who made it big during the first dot-com boom or those who are profiting from Web 2.0, Jessica also includes some of the true pioneers in the field. She recognizes that, not only do these industry veterans have valuable stories to convey but, since many of them are helping to steer companies and venture capital funds to this day, their advice is quite topical and current.

From the great introduction right through the final interview, this book is packed with great anecdotes, advice, information and inspiration. Makes you wonder as to what the story is behind the story - how did Jessica get unfettered access to such a broad array of the founding fathers?

I’ve included some illustrative quotes from the book below. Give them a read and then go pick up this book. The printed copy is a bargain and the e-book version is a steal. It may turn out to be one of the best investments you ever make.

  • “You guys are nuts. Throw out your business plan. Your customers—or potential customers - are telling you what your business should be. The business plan was only used to get you the money. Why don’t you rewrite a business plan that is focused just on providing what your customers want?” - Q.T. Wiles advice to Charles Geschke (Cofounder, Adobe) on the real purpose of a business plan
  • “There were some warning signs. Consider McKinsey, which holds itself out as one of the world’s leading repositories of knowledge on how to manage a business. They say they’ll never grow their company by more than 25 percent per year, because otherwise it’s just too hard to transmit the corporate culture. So if you’re growing faster than 25 percent a year, you have to ask yourself, ‘What do I know about management that McKinsey doesn’t know?’” – Philip Greenspun (Cofounder, ArsDigita) on scaling corporate culture
  • "That [not improving core product quality] was probably the biggest mistake we made. And that’s the advice I give everybody. All those little coupon schemes, this is what General Motors does. They figure out new rebate schemes because they forgot all about how to design cars people want to buy. But when you still remember how to make software people want, great, just improve it." – Joel Spolsky (Cofounder, Fog Creek Software)
  • “I think some people slept; I know I didn’t sleep at all.” - Max Levchin (Cofounder, PayPal)
  • “There were times when we were really broke before we had our angel investment, when only one guy who had children was getting paid.” – Caterina Fake (Cofounder, Flickr)
With nearly 21 of the 32 interviewees having the term “Cofounder” in their titles, Joel Spolsky’s advice seems perhaps to reflect best on what was critical to the success of these companies. “But because they never really take the leap and quit their job, they can give up their dream at any time. And 99.9 percent of them will actually give up their dream. If they take the leap, quit their job, go do it full-time—no matter how much it sucks—and convince one other person to do the same thing with them, they’re going to have a much, much higher chance of actually getting somewhere.”
Tuesday, February 20, 2007 1:41:51 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
 Tuesday, January 30, 2007

Windows Power Tools is a collection of brief tutorials and overviews of freeware and open source .NET development tools. What kind of rating you might give this book depends largely upon what type of background that you’re coming from. If you’re the kind who has stuck religiously to the Microsoft Press series of books and acknowledge only the old testament, than this book will be either an epiphany (5 stars) or outright blasphemy (1 star). If continuous integration, test-driven development, and object relational mapping (new testament type stuff) are terms that you are fairly conversant with, then this book will probably land somewhere in the 2-4 star range.

Since I put myself in the 2-4 star group, I’ll start by mentioning that there are great online tomes of knowledge that contain most of the tools listed in this book and a bunch others not listed here. One of the most respected and well linked lists belongs to the author of this book’s forward, Scott Hanselman. His Ultimate Developer and Power Users Tool List for Windows has been dutifully updated on an annual basis. Despite the fact that there are free, decent resources out there that fill some of the same purposes as this book, I enjoyed thumbing through the book and picking out tools I hadn’t heard of to fill in some knowledge gaps.

The main reason that I landed on a 3 star rating instead of a 4 star rating is that the brief tutorial format that worked so well for James when describing Visual Studio functionality is his previous book, Visual Studio Hacks, just doesn’t do justice to tools that represent significant pieces of an application or support infrastructure. I would have preferred to see less tools and deeper coverage in certain areas. Understandably, since not everyone would want to see the same tools as me; a broader, shallower approach trades off depth and detail for marketability. I’ve included my complete list of pros and cons below so that you can see how I came to my rating:

Pros

  • Great reference book with enough of an introduction to get you started with a broad array of tools
  • If you’re an O’Reilly Safari subscriber, this book is included in your subscription
  • The authors aspire to keep materials current on the book’s companion Web site. At the time of this review, the site is little more than a list of tools in the book

Cons

  • Lots of this material is available for free on the Web, if you have the time and inclination to find it
  • Introductions to tools are not sufficiently in depth to communicate any more than the most rudimentary of use cases
Tuesday, January 30, 2007 10:57:17 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Monday, January 29, 2007

Technologists who spend their time working on line of business projects are typically exposed to subtle and not-so-subtle messages about business ethics. Most recently, the implementation of the Sarbanes-Oxley Act has touched most of our lives in some way, shape, or form. At a bare minimum, it has heightened our awareness of how terribly wrong things can go when the trust afforded certain practices (accounting and reporting, in the case of SOX) proves to be misplaced.

As strong as the reaction to Enron, Tyco, and WorldCom debacles was; it surprises me again and again to see just how willing the corporate community is to shrug off major IT project failures. This is especially true when you compare the strict regulations, codes of conduct, and ethical guidelines in place for the public accounting community and the almost complete lack of anything resembling these structures in the professional software engineering community. Enron and Tyco may be examples of otherwise ample process controls gone awry. In the software engineering community, we don’t even have a process.

The recent IT conversations Podcast on the utter failure of the project to stand up the FBI Virtual Case File system reinforced this point for me. For those of you who want to get the down and dirty on the FBI Virtual Case File story, the IEEE has a pretty good article containing what appears to be a fairly objective history of the project. “So what does this have to do with ethics?”, you ask.

I think most laypeople, let alone professional software engineers, perceive about halfway through the IEEE article that this project was a train wreck in the making. So why was this not apparent to the 200 plus contractors and countless FBI staff involved in the project? Have we, as a profession, been conditioned into silence or is virtually every software project so fraught with journeys into uncharted waters that we have become ethically ambivalent to the dangers?

The real “story within the story” here is the tale of Matthew Patton, a security contractor who, despondent about lack of management concern, posted his concerns about the project to a Web-based bulletin board. The Web post, which has been archived online, lead to an FBI investigation, denial of his clearance, and a situation in which Mr.Patton had little choice but to resign. Perhaps it’s just me but I find it a bit ironic that Mr.Patton was forced out of the FBI project in the same year that an FBI employee made it onto Time magazine’s “Person of the Year” cover along with whistleblowers from Enron and WorldCom.

There have been movements in our profession (if I can refer to it as such) to institute a code of ethics and similar measures. Both IEEE and the Association of Computing Machinery (ACM) support a unified software engineering code of ethics. With membership in these organizations representing just a fraction of the population engaged in software engineering, this code has nowhere near the professional impact of similar measures released by organizations such as the American Institute of Certified Public Accountants (AICPA). Where does this leave us as software engineers?

  • We need more people like Matthew Patton amongst our ranks because there are certainly more train wrecks like the FBI Virtual Case File system just waiting to happen.
  • We have to start taking software engineering as a profession seriously. The fact that late and over-budget projects have come to represent the norm needs to change.
  • We need to think long and hard about how to police ourselves as a profession. Accounting and auditing tried, failed, and then Congress stepped in and told them how to run the show as part of Sarbanes-Oxley. If we don’t figure out how to do this ourselves, someone will tell us how we have to run our show.

We as software engineers are bound by the same laws that we created. There are no silver bullets for the issue of ethics in software engineering. There is only the fact that a lot of software projects are delivered late, over-budget, or both. It is our ethical obligation to speak up or support those who do speak up and call out the doomed death-march projects before they’ve done too much harm – to us, to our organizations, and to our profession.

Monday, January 29, 2007 7:40:01 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
Copyright © 2008 Thomas Beck. Some rights reserved.

Creative Commons License