June 21, 2006

RailsConf or Bust

Heading out to Chicago tonight to attend the first ever RailsConf. It should be a good time of hacking and listening to a bunch of people pontificate about Rails. Gotta love it.

railsconf-attendee.png

Posted by harris at 10:59 AM | Comments (0)

May 16, 2006

Men In Black go to the GYM

Two or three years ago Microsoft, IBM, and BEA (MIB) were all the rage in the software world when the frenzy of web services and "SOAs" seemed to reach its peak. During those days the MIB were pumping out specs at an unprecendented rate and created a lot of buzz among developers. It is interesting how there has been a tectonic shift since then so that the GYM players (Google, Yahoo, and Microsoft) seem to be getting most of the [large company] attention.

There are a few interesting observations about this:

1) IBM and BEA are not in danger of going out of business, but they aren't interesting anymore. Web services, yawn, fulfill a useful purpose in the enterprise, but don't really capture many (any? :-) people's imagination these days.

2) Microsoft always finds a way to stay in the game; and despite losing some talent to Google, they have retained and recruited engineering talent

3) It is ironic that in each acronym that the players are listed in descending order in terms of strength in the market. Microsoft was clearly the leader during the brief web services era, with IBM and BEA playing respective supporting roles. In the new "Web 2.0" world, Google seems to be leading with Yahoo running a close second and MS also staying close to the pack.

4) GOOG

Posted by harris at 09:18 PM | Comments (0) | TrackBack

April 07, 2006

Apple + Windows, Microsoft + Linux

You know times are changing the two headlines below appear on the same page! (from Google News a couple days ago)

apple-ms-linux.jpg


Posted by harris at 09:06 AM | Comments (0) | TrackBack

March 23, 2006

Welcome to 1995

Yet another... [Yawn] ...web-based word processor was annouced today. While that isnt' very interesting... what is interesting is the large quantities of unintended comedy found in Michael Robertson's announcement, "Bye Bye Microsoft Word, Hello ajaxWrite". There are a couple of very funny things in this piece.

First, he is talking about software being delivered via the web like it is the new big thing. LOL... Paul Graham was doing this back in 1995 man! Welcome to last century. Even with the Ajax slant, the technolgy has been around since the late 90's.

Second he mentions that this new product is "cross platform".

"These programs look and operate much like their traditional software cousins, but are cross-platform, loaded dynamically, and are available to users at no charge."

Riiiiiiiight! It currently works only with Firefox. Good stuff.

I won't mention how stupid the name ajaxWrite is (Opps! :-). A common user will think of Ajax as a cleaning supply, and couldn't care less how a word processor is implemented!

Well.... as I said... only read this piece if you are interested in the humor... it is about 12 years too late to qualify as visionary or strategic. If you are really bored more information on this here and here.

Posted by harris at 05:52 PM | Comments (1) | TrackBack

March 09, 2006

Writeup on Writely

I had a conversation with a friend exactly six months ago to the day that went something like this:

[me] Take a look at Writely... this could be BIG... zero client install... collaboration Sharepoint style, etc etc.
[him] What is the big deal? MS Word dominates the market and hosting a word processor on the web is not interesting
...

The conversation ended with "Time will tell". I honestly thought at the time... "yep time will tell, and I predicate that within 2 years that Writely will be acquired for at least 10 million". Well... it turned out to be six months! Writely announced today after a round of rumors that they will be aquired by Google (see Google announcement here). I haven't heard the price tag, but I wouldn't be surprised if it was north of 10M.

A couple things about this acquisition. First although this may put some pressure on Microsoft, it is interesting that Writely is implemented using .Net so presumably the server is a Windows box. As Google continues to acquire interesting companies the technology choices for their army of developers will expand. Today their primary languages are C++, Python, and Java [1]; tomorrow though it will likely be a mix of everything including C# and Ruby (note they bought a Ruby on Rails company just a few weeks ago).

This acquisition also supports their policy of hiring through acquisition. I am not sure about the rest of the team, but Steve Newman definitely appears to be a hardcore hacker. Check his profile here at TopCoder. While there is more to software development that simply cranking out Algorithms etc. this is certainly an objective metric for programming prowess; and cranking up a rating of 2985 there is hard-core. If you don't think so enter a few of the TC competitions and see where you end up.

Congrats to the Writely team... you built a quality product that can only get better with the support of Google. Plus, your IQ will probably go up a couple points just from all the good food!! :-)

[1] see Python at Google

Update: Russell Beattie had a GREAT post about the acquisition!!

Posted by harris at 10:19 PM | Comments (0)

March 08, 2006

Edgeio Experiment

I have been thinking for a while now that Michael Arrington has the perfect marketing platform for his own startup with the explosive popularity of his relatively young blog, TechCrunch. Well... that time has come with the launch of EdgeIO a few weeks ago. The point of this site is to aggregate sales listings that people post on their own blog. It will be interesting to see if this concept takes off.

My next post will be a test case where I'll post a listing on this blog to sell some books. I got the C#/.Net MCAD certification about three years ago because it was a requirement for some C# classes that I was teaching at the time. I am going to sell the set of books that I used to study with. The are a bit dated but someone may want to pony up $15 for the set.

Since this is all just an experiement I'll probably post a listing on Microsoft's new classified site as well. It is interesting to see all the traction in this space. I remember years ago when Yahoo and Amazon tried to dethrone eBay with their auction sites and were easily rebuffed. It will be interesting if some of these new approaches will make any inroads on to eBay's turf.

Posted by harris at 11:22 PM | Comments (0)

A Blue Moon

You don't see this too often... unfortunately it is the 2nd time today Gmail has been unreachable for me.

google-server-down.jpg

Posted by harris at 11:03 PM | Comments (0)

February 23, 2006

JDJ RIP

I receive several trade rags about technolgy. Most of them get stacked up in a pile by my desk that I eventually go through after they start cluttering the office. When going through the latest round of magazines recently I noticed Java Developer's Journal lead story, What Is POJO Programming? LOL... I am wondering if any other Java programmers find this amusing!? What is POJO programming?? It is what we have been doing all along!! It is vanilla Java... public class Blah ...

That JDJ published this as the lead story tells something about the Java platform... it is no longer interesting to talk about!! This is not to say Java is not an important technolgy. On a timeline, I actually view Java as in its Golden Years. It is very mature, it has a rich ecosystem of tools and libraries, and will remain a central technology in enterprise software for many years to come. But...

It is not interesting. I tried to read a couple other articles in this JDJ issue... one on the Seam project from JBoss and another about Spring; I was so bored though after the first couple pages that I coudn't even finish the articles.

The JDJ will probably continue to exist for several more years, but for me it'll likely go straight from my mailbox to the trade rag graveyard in the sky. It used to be fun to read about new things in the platform. However, now that we are back to reading about java.lang.Object, I hope JDJ will rest in peace.

Posted by harris at 05:05 PM | Comments (0)

February 03, 2006

RailsConf 2006

I decided to be part of history and go to the first ever Ruby On Rails Conference this coming June. Apparently only a day or two after opening registration it is 25% booked. If you are up for a summer trip to Che-kaago it should be fun.

Posted by harris at 09:03 AM | Comments (2)

November 04, 2005

Brilliant!!

Here is a new business plan:

1) Write some software
2) Build a web site
3) Win an award
4) Sell on eBay

This is exactly what jux2 (a metasearch engine) did and now BrilliantLabs is for sale.

I was fascinated watching the sale of jux2.com on ebay a couple weeks ago. In typical ebay fashion the price shot up from ~$40K to $100+K in the waning minutes of the auction.

The sale of BrilliantLabs (photo management software) is interesting as well, but will likely be valued far below $100,000. While the metasearch market is somewhat crowded, the market for photo-management software has already been largely commoditized with free applications like Picassa and Picaboo, as well as others.

The current bid is ~$1000. I doubt it breaks the $20,000 mark but it will likely provide a nice Christmas bonus for the seller.

p.s. The current high bidder (eugenebelyaev) could be this Eugene Belyaev. I wonder if Jetbrains is wanting to delve deeper into the consumer software market?


brilliant-labs-ebay.jpg

Posted by harris at 08:16 AM | Comments (0) | TrackBack

October 26, 2005

Spock vs Oasis

If you liked Star Trek and you also know something about how web services "specifications" are "standardized" then you will love this. Classic.

Posted by harris at 11:12 PM | Comments (0) | TrackBack

October 19, 2005

Sematic Web Saves the World...

Dan Zambonini has a bit of a tirade on OReillyNet pitting the Semantic Web against Web 2.0. Essentially the message is that the Semantic Web (hereafter SW) provides what we need and tacitly, that Web 2.0 supplies only our wants. In it he makes the bold assertion that the SW can "save lives", and provides a litany of problems it could solve:

- cure for Aids
- terrorism prevention
- limit the destruction of natural disasters, etc.

Wow, where is the closet Semantic Web recruiter so I can sign up??

For the uninitiated, at a very high level, the SW is about organizing information in such a way that it can be analyzed by computers. This is a noble goal and would be helpful in distilling the enormous amount of available data into discernable bits. The question however, is whether the SW is the best solution. If it is indeed capable of lubricating information flow in a way that tackles these issues *and* does so in an efficient manner (think market efficiency and value), it will eventually blow past the Web 2.0 Weenie. I am still skeptical though that will ever become a reality because the costs of practical implementation seem very high.

It does merit further investigation (this may be the goal of the article!), but for now I am holding off on heading to the recruiter's office. If the SW does provide the underpinnings to help solve the aforementioned problems the world will certainly owe it a debt of gratitude. If not at least we still have some pretty applications!

Posted by harris at 08:46 AM | Comments (0) | TrackBack

October 10, 2005

Flash + GoogleMaps

Both the Action Script (read Flash) XML.sendAndLoad and the JavaScript XmlHttpRequest functions/objects have allowed browser based clients to make direct socket connections to the server for quite some time now. The JavaScript way has a cool name (AJAX), but the Flash way is essentially the same and equally effective; both are capable of consuming the same XML API over the web. These kind of techniques have gained popularity, as most web developers know, from the endorsement of a big player like Google with their Maps and Gmail applications.

In particular it is interesting that a new ecosystem has evolved around the open XML API that Google Maps surfaces; notably there have been integrations with Craigslist and several other third-party sites. One recent integration that is interesting is the "NYC Subway Flash Overlay for Google Maps". It adds a Flash layer to Google Maps that unlocks a mechanism for enhancing the vanilla map images. This is very cool and yet another validation that open APIs on the web often lead to applications/systems that likely where not even originally intended by the publisher.

Posted by harris at 10:52 PM | Comments (1) | TrackBack

September 28, 2005

Site Searches

Robert Scoble (aka, the Scobleizer) has a recent blog entry that laments the current state of the art of web search technology. His gripe is mainly that the Toshiba site is not highly ranked (read highly relevant) in a search for "Toshiba Gigabeat". Dare Obasanjo follows up on this rant with the standard insightful and salient commentary on what "relevance" even means in the context of web search.

My very meager contribution here to both Scoble and the world is the well known hack to tell the search engine what site you are interested in. With Google you do this by adding "site:sitenamehere.com" to the search; below is the URL for the search in question with this minor modification ("site:toshiba.com"):

http://www.google.com/search?hl=en&q=Gigabeat+site%3Atoshiba.com&btnG=Google+Search

Interestingly, www.gigabeat.toshiba.com, the site he was looking for was first. The other major search engines must be capable of the same thing despite my complete disinterest in using a different engine.

While I am sure there are advances that can be made in search technology, the current state of the art is insanely better than the pre-Google days. I remember way back when (like 1997, remember Alta Vista?) telling my Dad that the web was such a melting pot of disorganized information that performing fine-grained research was like walking through the city dump with a metal detector. Fast forward to today and now I look up everything on Google (probably 10-15/searches per day), and I am consistently satisfied.

Today, the fine-grained tools are in place for advanced users (Click the advanced search link on major search pages) and the defaults, as Dare pointed out, are reasonable for the majority. Search technology has reached a very useful plateau and must now start working on making inferences on our searches in order to make the results more "relevant". This however requires the search engine to have a memory of your searches which brings in the problem of privacy and sheds a modicum of light on how complex this problem is. Until things get better though I am going to bask in the glory days we are living in: the days were nearly all the information I ever want is only 0.07 seconds away!

Posted by harris at 08:38 AM | Comments (1) | TrackBack

September 22, 2005

Why a Flash RSS Reader Won't Work

FlashInsider is hosting a contest to see who can "whip up the coolest Flash-based RSS reader". I have done some Flash development as a hobby and a few months ago I actually spent some time investigating how a Flash-based RSS reader would work. I got pretty far with it, but eventually hit a brick wall with how the mx.controls.TextArea component renders HTML.

To be candid this component does a very poor job with handling HTML. I noticed this with how it renders the HTML that was included in a couple RSS feeds: Engadget and ironically in Christophe Coenraets' weblog. These two feeds are important for two reasons. 1) Handling the Engadget feed is part of the contest and 2) Christophe is an employee of Macromedia and apparently wrote the aggregator that manifests the problem.

You can see the problem on CC's weblog by clicking this link, scrolling to the bottom of the page and clicking "Try It" under the Flex Blog Reader application. From CC's weblog click the entry entitled, "A Draggable, 'Minimizable/Maximizable', Configurable Panel Class". Note that after selecting that entry every other entry that you select has bullets; these bullets aren't in the original feed, but the TextArea component goes berserk after rendering this snippet of HTML.

My experience with rendering the item/description elements in the Engadget RSS feed was even worse! Images were flying every were, and the text was very poorly formatted. It will be interesting to see if someone comes up with a good solution to this problem (which, in summary, is being able to handle RSS feeds in the wild where you are never sure what you are going to get, even with a "structured" format). If they do it will certainly be with a heavily customized TextArea component or something completely new.

One last interesting thing to note. Flash runs in a browser that is built primary to render HTML; so for the TextArea component to really be able to handle HTML robustly, it would need to essentially act as a browser inside of a Flash movie that runs in a browser. Another option is to simply not masquerade as a component that can handle HTML.

p.s. I hope someone proves me wrong here and delievers something very cool!

Posted by harris at 12:01 AM | Comments (0) | TrackBack

September 08, 2005

Google Hires Al Gore?

When I saw this article, "Google hires 'father of the Internet'...", I wondered... Wow! I can't believe they hired Al Gore!!? :-) Riiiight. No they didn't hire Al. They did however, hire one of the real pioneers of the internet, Vinton Cerf, who was instrumental in developing the TCP/IP protocol suite that we now all take for granted. This is actually the holy grail of any technology... to become completely transparent. I wonder when the last time a teenager sent a message over AIM and thought, "Man!, the characters I just types were encoded into TCP packets before being transmitted... ". Gotta love it. Also gotta love Mr Cerf's new title at Google... "Chief Internet Evangelist". Sweet.

Posted by harris at 11:36 PM | Comments (0) | TrackBack

August 10, 2005

Electric XML Lives On

I have been playing with Ruby some lately and today looked at how XML is supported in the language. Interestingly the XML package in Ruby is named REXML, which apparently stands for Ruby Electric XML. Imitation is certainly a form of flattery and although I never wrote much code for EXML while at The Mind Electric, I was happy to see it living on in Ruby. For those of you who may not know, Electric XML was (is?) an XML parser written in Java that was both fast and very easy to use. Although it was not an standard open-source project the source code was shipped with the product way back when. It ceased being a stand-alone library after TME was acquired by webMethods and I am not sure if the source still ships with Glue (if it does there should be a build file that will build EXML.jar for your programming pleasure).

One interesting bit of irony on this topic; from what I have read Ruby seems to shun XML (Rails uses YAML for config I believe) as much as possible so REXML may not get the workout that it did in Java; nonetheless, if you do have to use XML (which you invariably do at some point) it is nice to know that a clean API is ready for consumption.

Posted by harris at 11:20 PM | Comments (1) | TrackBack

August 02, 2005

SAX Parsing

Today at work I had to write some code using the SAX (Simple API for XML) interfaces to hydrate some Java objects. I have worked with XML quite a bit over the past few years, but still had not done much with SAX. I still prefer using a pull parser or a Java-friendly DOM interface, but using SAX was at least mildly interesting (it doesn't take much to amuse me these days).

SAX is a "push" parser that acts like a fire hose spewing out interesting events as it traverses an XML tree. The ContentHandler interface is where all the the action takes place as it receives the events that provide access to the data. When using SAX to initialize objects you essentially need a ContentHandler that understands how the content model relates with the object model. Unless you hard-wire your XML elements to match the fields within your Java object, encode some metadata in the XML, and use reflection, this means that you'll have a ContentHandler for each different chunk of XML that needs to be processed.

One of the nice things about the experience was being able to pass control between different handlers during the parsing process. This allowed for handlers to be easily reused in different contexts assuming the XML within those contexts is the same.

An important aspect of using SAX is that the content handler typically needs to maintain some level of state during the parsing process to know when to peel off the interesting bits. This is one things that I found lacking in the cursory examples on the web, most of which simply spewed some data to System.out. I would consider posting a good SAX example that actually does something meaningful, but the truth is that SAX parsing in Java is so 1999 that I probably won't bother... I just happen to arrive late to this particular party.

Posted by harris at 10:25 PM | Comments (0) | TrackBack