Spare Cycles

Entries categorized as ‘Uncategorized’

Flock Moving to Chrome?

March 3, 2009 · Leave a Comment

I just caught up with the story that Flock may be switching to chrome as its browser engine. I can’t say I’m excited. I love Flock, but part of the reason I love it is I can incorporate all of my firefox plug-ins with a lot of social media hooks.

A Flock without the web developer toolbar, Firebug, yslow, del.icio.us integration, or the opportunity to add any other cool firefox plug-ins doesn’t interest me.

Categories: Uncategorized

Eliminating Feed Noise

January 29, 2009 · Leave a Comment

Last month I did a major overhaul of my feed reader’s subscriptions. I was tired of the repeated content and stories I was seeing across tech feeds. Whenever a company had an announcement or bit of news, every single publication I followed would release a write-up.

I resolved to trim my tech feedss down to no more than 5 as part of an overall RSS pruning. Here were the criteria that I used to determine which feeds to keep:

  • I find myself gravitating towards that feed’s stories in general
  • Engaging editorial perspective
  • Provides a broad overview of relevant industry content
  • Provides actionable information
  • Professional (not gossip-y)
  • Does more than simply replay the same press releases out there

For tech news, this generally meant clearing out all of the personality-driven blogs: TechCrunch, Scobleizer, GigaOM, Silicon Alley Insider, Valleywag, etc. They’re all gone. The sacrifice is that I’m not totally up to date on the latest rounds of fundings of all the bay area start ups. I don’t know what the new feature is coming out of kyte.tv as soon as everyone else does, and I don’t have to sift through piles and piles and piles of unsubstantiated hear-say and gossip to find some relevant kernel of information.

For tech news I now just follow these sites:

  • TechMeme – it gives me a quality broad overview of what’s going on in the tech industry and pulls in the best of the sites that I dropped from my feed list
  • Wired – Quality original content alongside good coverage of major industry events
  • Ars Technica – There’s a lot of bloat in this publication, but I have to keep it around for its quality coverage of privacy, security, and innovation in tech.
  • ReadWriteWeb – The best, IMO, of the Web 2.0 coverage sites. I learn about new tools and their usefulness to me. This is contrary to TechCrunch which generally seems more concerned with the personalities and business implications of any new application released on-line. Plus RWW has more intelligent commentary than Arrington’s blathering.
  • Slashdot – Simply because I continue to learn interesting things from this site that I generally don’t find anywhere else.

There are some other publications that I’ve enjoyed for years which didn’t make the cut. The Register is one. There’s just TOO much content coming through on their main feed. It’s too much noise.

If you had only five tech feeds you needed to follow, what would they be and why?

Categories: Uncategorized

iPhone and iCal ToDo Sync with Appigo

January 19, 2009 · 2 Comments

Today I finally have ToDo syncing between iCal and my iPhone. It’s a feature that I’ve had on my cellular phones since, oh… about 2003. It is something I lost when I switched to an iPhone, and is one of the features that I can’t believe Apple decided not to tackle.

Thanks to appigo’s sync software, and their ToDo iPhone app, I can now manage my tasks from my desktop and my iPhone. The downside is that I had to pay $9.99 to get the iPhone app and this feature.

Well done to appigo for picking up where Apple left off. Now I can get back to efficiently adding items to my ToDo list from where every I am, and very inefficiently checking them off.

Categories: Uncategorized

Purely Anecdotal #256: The Power of Facebook

January 7, 2009 · Leave a Comment

This is purely anecdotal…

But, recently I was reading on a friend’s blog about how much they liked the facebook chat tool and how it had changed their lives.

Basically, this person had never really used IM chat before. The reason was that it involved installing new software and learning a new communications paradigm.

Facebook’s footer toolbar forces chat on its users, and it does so in a way that’s more intuitive than the built-in chat interfaces in google mail, yahoo! mail, or AOL.

Facebook continues to grow exponentially and attract a wider demographic of users. It may struggle to monetize as effectively as more established content powerhouses, but the latent power of the platform to achieve experiences like that of my friend are really amazing successes that will continue to entrench Facebook as THE social network, regardless of its current size relative to MySpace, Google, or Yahoo! in terms of the number of users.

Categories: Uncategorized

Debugging JavaScript Events with Visual Event

December 13, 2008 · Leave a Comment

I recently came across a handy tool for JavaScript debugging called Visual Event. Of course, modern JavaScript development would hardly even be possible without FireBug. And most advanced JS-based rich internet applications heavily leverage one of the major JavaScript framework libraries (e.g. YUI, jQuery, scriptaculous, etc.).

One of the limitations of Firebug in run-time debugging is it doesn’t have a good way to inform you of what methods are subscribed a DOM element’s events. If an element in the DOM is clicked on, moused over, value changed, etc. a JS event is fired. Any number of functions may be listening for that event and may get executed.

As applications become more complex, event subscriptions are spread across many files and those subscriptions can be conditional on particular logic flows. It becomes more and more difficult to determine what actions are  performed during certain events.

Event messaging is not consistent across browsers, and there is no W3C specified container that can be used to store and reference the document’s event listeners. As a result, each of the major JavaScript frameworks has its own mechanism for storing and executing event listeners.

Enter Visual Event. Written in jQuery, it’s compatible with YUI, MooTools, and of course jQuery. When run, it overlays the elements of your page with icons for each type of basic event associated with a DOM node that has listeners.

Here’s a basic DIV element with the text “Pull the trigger”:

On the left hand side is the basic DIV, on the right hand side is the visual event overlay. The DIV background color has been highlighted, and three icons have been displayed, each representing a listener and the type of icon indicates what event it is listening on.

This DIV has three listeners: one each for the click event, mouseover event, and mouseout event.

In these images there is also a red icon partially hidden, and this appears to be one of the jQuery listeners associated with Visual Event. This is unnecessary and adds noise to the tool, which has the potential to confuse the user.

If you click on any of the icons, an overlay is displayed that contains the source code for the listener:

overlay2

All in all, Visual Event is a very quick and handy JavaScript event debugging tool, and gives you information that you would have to gather manually through logging or alerts in standard debugging.

It’s not without its limitations however:

  • It only supports a sub-set of JavaScript libraries
  • It doesn’t work in IE
  • It doesn’t support custom events, but only handles the standard user interaction events supported by the browser
  • The listener display doesn’t indicate what file the function is located in, or it’s true line numbers

It’s important to note that this is a young tool, still classified as ‘beta’, and despite its limitations it can still come in extremely handy.

I wish I’d had it two years ago :)

Categories: JavaScript · RIA · Uncategorized

Differentiation in Cloud Computing

October 14, 2008 · 2 Comments

The term “cloud computing” is a big fad right now. Lots of people use this term without a really solid definition of what it is. I’ve been thinking about it a lot lately, and a personal definition that I’ve been using a lot more is “horizontal computing services”.

Horizontal computing services refers to system architecture components that allow a software service to operate. For instance, data storage, processing power, network access are all examples of horizontal layers in an application stack that allow web software/services to operate. They’re common whether you’re running a photo-sharing site, a news aggregation site, or a video sharing site.

Maintenance of these layers is generally not scalable as a web service grows. In many cases, the maintenance of a horizontal computing service is outside the core competency of the organization that requires it.

Horizontal computing services remove this friction for application level developers. By abstracting these services, companies can focus their resources on excelling on application development.

There is a broad, long tail market available for horizontal computing service providers. The current main players in the market are Amazon, IBM, Google, Microsoft, Yahoo!, Akamai, Apple, etc. We’ve seen each of these companies release products that endeavor to capture some portion of the horizontal computing service market.

There are a couple of reasons that these companies are the ones to jump into this market, as opposed to newer, start-ups in the space. These are all giant companies who have established some form of these services to solve problems for their own internal purposes. The work that’s been done to date has largely been the open-sourcing, or exposing of these services that are used internally by these companies to the rest of the world to take advantage.

Another reason is that the cost of establishing one of these services in inevitably quite high up front, and is unlikely to be achieved by initial private investment. The cost of operating such large and massive services over time is going to mean diminished margins as well. I would be surprised if in 5 years there are any more than 3 or 4 major players in each of the horizontals mentioned above.

As a result, any player that is going to try and establish itself in this market over the next 5-10 years is going to have to differentiate itself in order to succeed. Here are four key traits that will allow providers to stand out to consumers:

  • Metric granularity. Presumably, the primary business model for horizontal services will center around utilization. The more a user utilizes a service the more they will have to pay. Extremely granular reporting and metrics on usage will be valuable to a user to determine how they can utilize the service efficiently.
  • Free for entry level usage. Basic level usage of a service should be free. A key to long term market domination will be to allow developers to use the services for free, and begin talking money when low thresholds are hit. Free services will be tested out and played with by developers more. And once they start developing a tool for a service, they are more likely to stick with it.
  • Utilize object-oriented principles. Overloading, extensibility, modularity. These are key principles of object-oriented programming, and should be key elements for a horizontal computing service. A service provider can develop a robust API, but they should allow application developers to inject their own specific logic into the service level API by making it extensible for the developer. This has the advantage of flexibility and power for the application developer, and may lure them into the unwitting position of locking themselves into your system.
  • Services need to be interoperable. Amazon’s storage service is compatible with Google’s processing service, and this is the way it should be, even though Amazon offers a competing service. It allows the developer to build their application for hte best-of-breed services. An all-or-nothing locked-in service stack is little more than a distributed dedicated server with metered pricing.

What else do “cloud” computing services need to offer, both to set themselves up as the platform of choice for the next generation of applications, but also to set themselves apart amongst their competitors?

Categories: Technology · Web 3.0
Tagged: