comments edit

I was recently approached by some people I know purely through blogging and IM conversations to write on a topic for a book they are putting together. Of course I was honored and appreciative that they thought of me, even after finding out there would be no payment for the work. Doh!

In any case, I am taking their lead by not discussing what the book is about, except to say that I am writing about tools that I use all the time. In attempting to cover these tools in sufficient detail, I realized how little I really knew about them. These are software utilities that I use every day, but as is the case with many tools, I wasn’t using them to their full capacity. I had quickly learned just what I needed to know to get stuff done and stopped there. How lazy and counterproductive of me!

Of course as developers, we all need to find that balance between spending the time to RTFM and just plowing along and getting to work. Back in the day, we called this the Commodore Shuffle (though I am sure there are many names for this phenomena). This is the technique of figuring out how to use a piece of software by playing around with it and clicking on everything that moves. Unfortunately, this often will only cover the surface of what a piece of software can do.

I think I will try skimming the manual more often now.

comments edit

Web 2.11Despite the apparent hype factor of “Web 2.0”, I am really starting to get into the whole Web 2.0 phenomena. I think it really clicked when hearing about it in various panel discussions at Mix06.

The foundations are quite simple. Web 2.0 is about:

  • User created content.
  • Using AJAX to make websites UI responsive
  • Providing simple Open APIs.
  • Harnessing collective intelligence
  • And so on…

But jumping on Web 2.0 now is like jumping on a hot stock. By the time you’ve heard about it, so has everyone else. That information is immediately absorbed by the stock market and reflected in its price. In other words, you have already missed the boat sucka.

So I am letting you, my limited audience, in on a secret. The time is now to leap ahead of your competition and embrace Web 2.1.

Web 2.0 is oh so five minutes ago. Now that Microsoft is joining the Web 2.0 fray, you know they are going to get it right. But they won’t get it right in 2.0 (remember Windows 3.0 or .NET 1.0? Exactly). It is all about adding the .1 baby!

At Mix 06, Microsoft unveiled their vision for the web, which seeing as how their modern product versioning system works these days, will be marketed as Web 2007. By the time it is released it will probably be called Microsoft Web Based Collective Intelligence and Open API AJAX Platform (or WBCIOAAP for short). I personally can appreciate the double “A” thrown in there.

Some of the pillars of Web 2007 WBCIOAAP include the following:

  • Why stop at user generated crap? Animal generated content! Who better to fling crap on the web than animals?
  • AJAX is about making UI responsive. But why be so reactive? Web 2007 introduces PRAJAX! It combines the power of prayer to create PRedictive AJAX. This stuff is going to rock!
  • Current efforts to harness collective intelligence makes the unreasonable assumption that everyone who contributes is equally intelligent. Well we know that ain’t true. Introducing the Microsoft Idiot Filter. If you are going to allow tagging, this software makes sure to filter out the idiots, leaving 5% of the tags, but a very intelligent 5%.
  • And so on…

I will be converting my business and Subtext into a Web 2007 application soon. What about you?

comments edit

View from
Pool In case you were wondering how such a loudmouth as myself could be so quiet for four days and three nights, my wife and I were in Puerto Vallarta enjoying a real vacation. By “real” I mean completely devoid of work. I didn’t so much as walk into a cyber cafe (though I did peer real hard inside).

Probably the closest thing to “work-related” I did was chat up a couple of school teachers on a boat getting their input into some software my company is building for labor unions.

We stayed at a wonderful bed and breakfast named Casa Amorita in the downtown area of PV, if you can call it a “downtown”. The picture on the top left is the view from the patio/pool. The B&B is built on a steep hill so there is a pretty nice view from everywhere.

Phil on a rooftop
bar It also has a nice rooftop honor bar as you can see me on the right, attempting to draw upon my inner Tom Cruise in the movie Cocktail.

If you are viewing these pics in a browser with javascript enabled, click on the pics to see larger versions.

Although PV is pretty heavily developed, it still retains some of its rustic charms. The streets in the downtown area are cobblestone and fun to explore. We endured one of those “We are not a time-share but we are still trying to sell you something you don’t need and can’t afford” sales presentations in order to get some free loot. We actually enjoyed the tour of the resort, got to spend time on their beach, and then took a nice boat over to Yelapa.

I put up a few photos on Flickr if you are interested.

comments edit

CrapsI apologize for writing up a roundup for the Mix06 conference several days too late, but I was not in a good condition to blog during the conference. In part it was due to a cold I was fighting which left me unmotivated to blog. You might think that the lack of sleep and drinking would have contributed, but the strange thing about Vegas is that the less I slept, and the more I drank, the better I felt.

When you are having interesting conversations with folks, you start to lose track of just how many beers you’ve downed.

Web Standards For Real

In any case, I was impressed with the conference less due to any particular session (though there were some good ones), but more due to the reflection on what appears to be true change happening in Microsoft.

One session in particular, the IE7 Future panel, struck me with who Microsoft invited to attend. They had Molly Holzschlag, the group lead for the Web Standards Project, Eric Meyer, noted CSS guru up on stage. I sat next to David Shea, creator of CSS Zen Garden.

These are not your typical Microsoft conference attendees and perhaps have been some of the harshest critics of IE6. In part, this shows the confidence that the IE7 team has in what they are trying to accomplish. Several of these leading experts walked away from the conference with a better feelings about what Microsoft is doing in this space.

Fellow Bloggers

Deck of Cards Of course the best part of the conference is meeting my fellow bloggers. Almost immediately Jon and I ran into Jeff Atwood who is quite funny in person.

I also ran into the dynamic duo, Adam Kinney and Erik Porter. I met these guys at Tech-Ed 2004 in San Diego when they both worked at the same company in Indiana.

Also met up with Andrew Stopford who is a class act. We talked a bit about MbUnit and wondered how do we get the word out about MbUnit. NUnit has a much larger penetration simply because it was first (which is a big deal I suppose) and because of its name. It falls under the so called “N-Series” of open source tools.

MbUnit, in my humble opinion, is much superior and definitely worth trying out. I may try and prepare a talk to give at my local users group on it someday.

Also hung out at the tables with Steve Maine and Clemens Vasters. Steve and I had a great run at the craps table only to lose much of it at the BlackJack table. Meanwhile, Clemens taught us an interesting travel game that involves people watching at hotel bars. I won’t divulge the details nor the name of the game, but just know it was quite interesting.

I’m sure I am missing someone, but it doesn’t matter. I had a great time and am looking forward to Mix07 in whatever incarnation it may appear.

comments edit

LeBoeuf You Europeans ought to appreciate this one.

I’ve mentioned before that I joined a fairly competitive league here in Los Angeles. The other day I found out that the team we are playing this Saturday fields Frank Leboeuf. He played on the 1992 World Cup Winning France National team and was a former starter for Chelsea.

jrgen His pro career must be over, but it is still a surprise that he is in the same league. He still looks like one bad mofo. I also hear that Jurgen Klinsmann plays for an adult league team in Orange County. Seems like Southern California is the place to be if you are a retired World Cup Footballer. ;)

comments edit

Scott Hanselman asks the question, Is Open Source a Crap Idea. I sure hope not.

One thing to consider is that the type of open source projects that we are involved with are very niche market and hobby oriented. I have a feeling that the Subversion project will continue to do well because they make a product that is essential for many businesses.

CollabNet for example sees the value of the open source model and of Subversion as a source control tool so much so that they provide full time employees to work on it. I doubt we’ll see that happen with RSS Bandit or Subtext any time soon (though I welcome any company who wish to become sponsors).

The sad truth is that most open source projects I’ve seen are pretty much pushed forward by the efforts of one or two ultra committed people. I think the important thing for these projects to look at is a succession model for who will push the project forward when they burn out or move on. Or they need to really focus on marketing to bring in more developers.

I don’t have the answers to this one. I personally started Subtext because I wanted to tweak .TEXT to my liking and I thought it would be a great forum to try out new coding techniques and new technologies. Lately though, I found that I enjoy the product management and team lead aspect of running Subtext as much as I do the coding aspect. In that respect, I see a long shelf life for me on this project.

I doubt I would stop working on Subtext unless I just plain stopped blogging. Despite building a great distributed team, we are all busy and checkin activity is steady but not very active (though our mailing list is involved in some great discussions). I have tempered my expectations for what I can accomplish and realize that even if I was the only one plodding away at Subtext, it’s a fun and relaxing hobby with an outcome that I personally benefit from.

comments edit

Vallarta So the missus and I are heading over to Puerto Vallarta this Sunday for a short mini-vacation. For me it is a chance to recover from Mix06. It was kind of unfortunate that the two events are so close together, but that was pure coincidence.

We are staying at a nice small bed and breakfast and looking forward to exploring the local area, lounging on the beach, and generally enjoying an itinerary and agenda free few days. I am not bringing a computer so I will be totally disconnected, which will be a nice feeling.

I think.

I do get a bit panicky without my blogs after a few dayshours minutes, but the missus promises me I will be ok.

comments edit

I was involved in a 5 AM breakfast conversation (a little late night snack before we all turned in for the evening) with Clemens Vasters, Steve Maine, and some others at Mix06 in which they explained how streaming content works with WCF (code named Indigo).

They pointed out (as I mentioned in a tongue-in-cheek context in my last post) that with streaming content such as streaming videos, the consumer of the media is really concerned about headers and start tags, because they plan on using the content as it flows over the wire.

In effect, streaming works because WCF promises to send the end tags eventually. Might be hours from now. Might even be years from now. But they will get sent and the message (as everything is a message in WCF) will be well formed and complete.

Clemens then pointed out that even if they never did send the end tags, what would it matter? The consumer of the feed, if he or she is exceedingly anal, could decide to throw an exception then. But at that point, the content has already served its purpose and has been consumed. Remember, we are talking about the streaming content use case.

This struck me with two thoughts. This is a software scenario where the intent is more important than the execution. The fact is that they intend to send the end tags is very important, but whether they actually do or not is of less importance.

Secondly, with streaming content, the valuable deliverable is not a whole message but a partial message. By message I mean the entire content and whatever SOAP envelope it may be wrapped in.

Of course, the key to streaming content producers is to make sure to send any meta-data and commercials at the beginning of the message and not after the streaming part. But you knew that already. ;)

comments edit

UPDATE: Ok, so being away from RSS Bandit has put me out of touch of some of the other discussion on this topic. As Dare writes, Don isn’t the first person to make the Lo-REST distinction.

Sleeping TigerWell it looks like Dimitri beat me to the punch. It also struck me as odd to hear Don Box coin the term Lo-REST. It also struck me to hear it repeated at Mix06 and described as really just POX over HTTP. I had an interesting conversation with Steve Maine (who is one cool cat by the way) about it at Mix06 that got me thinking.

The thing is, REST is an architectural style, and to some degree it is well defined. What is not well defined is exactly how you build real world web services using this style. If you perform a search for the term “xml” within Roy Fielding’s Dissertation (pdf) you will find zero matches. REST does not require nor really have anything to do with XML. However, XML is a viable tool that can be used with a RESTful service.

Now Don is a very smart guy and I have immense respect for his work. I am more likely to second guess myself before I disagree with him. This is why I want to give him the benefit of doubt and try to look at what he was trying to accomplish in this post, though I obviously can’t speak for him so this is mere conjecture. The question I have is whether Don is “prescribing” or “describing”.

It seems to me that rather than try and prescribing a new form of REST, he was merely describing the reality of service oriented implementations that exist in the real world. Fact of the matter is that many companies are unveiling RESTful services that end up being nothing more than attempts to tunnel REST verbs through HTTP GET (Amazon is one example).

The problem is that if this is indeed the case, I can see the usefulness of the term from an academic viewpoint. Lo-REST can usefully describe what services that are labelled as REST, but are really not. Rather, these services are actually POX based services.

Even so, attaching the term REST to a POX service is problematic in two key ways (if not more). First, it dilutes and obscures what REST is, which not only gets the RESTafarians all up in a tizzy, but also can make the conversation around this topic more difficult. Second, it seems to undercut the significance and usefulness of POX by implicitely indicating that POX needs to be attached to the term REST in order to be taken seriously.

Ideally, we should take a step back and realize that significant web services are being written and will continue to be developed using POX. Let’s elevate the respectability of the term POX a bit and retire the term Lo-REST. It is POX, let’s leave it at that and call it what it is.

DISCLAIMER: I am not what you would call a RESTafarian. I think I understand what REST is, but I am on the fence on whether web services SHOULD all be implemented as REST. I tend to take a more pragmatic approach and think that some services will benefit from a REST style approach and others will benefit from using SOAP. What I do care about though is that for the purposes of the grand debate, that we keep our terms clean and as well defined as we can and not dilute what one or the other is.

comments edit

My Wife! The comedienne. Honey, still don’t quit your day job.

Exhibit One: My post on Mix06 in which I mentioned…

Maybe, if things are going well, I might have a date with destiny at the Let It Ride tables.

Her comment…

destiny called. she now works at the crazy horse. ; )

Exhibit Two: My recent and slightly rambling post on Lo-REST in which I talk about REST and POX over HTTP. Near the end I state…

Lets elevate the respectability of the term POX a bit and retire the term Lo-REST. It is POX, let’s leave it at that and call it what it is.

And her comment in response…

yes. Lets elevate the respectability of the term POX.

Finally, my wife is taking an interest in the work that I do. I am sure she’ll now enjoy a long and intellectually stimulating dinnertime conversation as I explain to her how streaming content works with IndigoWCF. As long as the start tags are all correct, you can consume the streaming content relying on the intent that the end tags will arrive some day in the future. And if they don’t arrive, will you care as you have already consumed the content? With streaming content, the valuable deliverable is not a whole message but a partial message. Discuss amongst yourselves.

comments edit

It is unfortunate that I haven’t been able to blog much about the Mix06 conference so far, as there is so much worth writing about. Unfortunately I have acquired a bad cold on top of a splitting headache that will not go away. Such is the price one pays when partying with the hard charging Microsofties (particularly with such Indigo team members such as Steve Maine and Clemens Vasters).

When I get a chance, I will write more, but I wanted to drop a note in here about Microformats. With Bill Gates on stage saying that “We Need Microformats”, there is a pretty good chance that Microformats are here to stay.

I attended a Birds of a Feather (BOF) session on Structured Blogging and Microformats with Tantek Çelik and Marc Canter

I asked a question on whether or not there is an autodiscovery story for Microformats. Consider how an aggregator finds an RSS feed for a site. In general, the aggregator scrapes the HTML looking for a several common indicators of an RSS feed. Ideally the web page adds a <link /> tag using the RSS autodiscovery format.

But I am not aware of any such mechanism for discovering my Microformat contacts. Let’s say that I do not want to have all my contacts on my home page. How would an aggregator find my contacts short of spidering my whole site. Tantek’s answer was that they are essentially working on it and there is nothing set yet.

One problem he pointed out is that sites may end up hosting a large number of microformats. Adding an autodiscovery link in the HEAD section of a page for each format supported could get unwieldy. One idea I had would be to work on a “Table of Contents” microformat (I am sure someone else will have a better name) that would serve as an index for where my site hosts certain microformats of interest.

This would be an optional format. For example, for a site that uses very few microformats. The site can make do with autodiscovery links within the HEAD section of the home page. But if the site uses an exceedingly large number of formats, it could have a single autodiscovery link to the page that contains the Table of Contents Microformat. Aggregators would then know where to find specific microformatted information.


comments edit

Luciano Spiguel just posted a partial translation of my post entitled Does Mort Know We’re Talking Smack About Him Behind His Back in Spanish. I’m actually quite honored that someone saw that as being worth a translation.

As a reminder, my content is published under a Creative Commons license Attribution license. What that means is that you may feel free to republish and translate my content as long as you attribute me properly. I do appreciate that people tend to ask me before they do so. It is a nice consideration, but not absolutely necessary.

comments edit

Anyon Braid Illustation Scientific American has a fascinating article this month on Computing with Quantum Knots. In particular, it focuses on using topological properties of a two-dimensionaly confined particles called anyons. Needless to say, the only thing they’ve managed to tie in a knot so far is my brain. But the research is very promising.

I never studied topology in college, though I did try and audit a topology class in Hungary. After a couple classes I decided it was over my head and focused on Number Theory, which is more my thing. Reading this article is spurring a newfound interest.

In essense, one of the difficulties with Quantum computing is that it relies on the superposition states of individual atoms. These states are exceedingly fragile, which make building a real Quantum computer difficult. The benefit of using topological properties is that they are more resistant to change.

The classic example of a topological property is to think of a string in a closed loop. You can twist the and deform the loop all you want, but it retains the same basic topological property of being a loop. You cannot twist or deform it so that it becomes a closed loop with a knot tied in it. You would have to cut it, tie the knot, and then rejoin it, thus changing its topology.

What caught my attention in the article were the number of researches mentioned who are now at Microsoft. The article mentions Michael H. Freedman, Zhenghan Wang, and Alexei Y. Kitaev, all of whom have made advances in the concept of using quantum knots for computation.

The article mentions that these researchers are part of Microsoft’s Project Q. It’ll be interesting to see if Microsoft makes a splash in Quantum computing as it moves forward.

comments edit

Clover My former neighbors who are now in Iraq helping the reconstruction efforts write about their St. Patrick’s day celebration in the IZ, aka “The Compound”.

Chris and Susan used to live a few doors down and my dog Twiggy was a huge fan of their dog Nelson. In fact, Nelson still comes by every now and then to visit, which turns Twiggy into a little excited doggy groupie.

My neighbors are working with USAID and the Army Corps of Engineers, hopefully helping to make some small good come out of a terrible situation.

Susan finishes the post with a funny St. Paddy’s day joke.

Chris and Susan, good luck and here’s a joke right back atcha.

comments edit

Lazy Coder Scott snickers when he reads blog entries decrying the existence of “Mort”. As he points out, we are all Morts to some degree or another.

I snicker when I read these posts because they dont get it. The entire POINT of writing code is to abstract away the difficulty that is inherent in using computers.

Which is true. The history of software development has been all about heaping one layer of abstraction on top of another.

However, I don’t see many blog entries decrying the existence of Mort. What I see are blog entries from “Not-So-Mort” upset about what happens to their programming tools and languages when tool and language providers accomodate Mort. Perhaps we see these tools as being made for the “Not-So-Mort” set, when the reality appears that these tools are being built for Mort. Perhaps the “Not-So-Mort” set would like separate tools.

Consider this, all abstractions are leaky. However, when an abstraction is well implemented, it hardly matters for the majority of the population. I believe I drive just as well in an automatic transmission car as I would in a manual transmission car, though my car has reduced the leak in the abstraction a bit via its sequential shift so I can switch to a manual-like mode, but that’s beside the point.

But many times, an abstraction is created in haste and causes problems for those of us who need finer grained control. A classic example is WebForms designer in Visual Studio.NET 1.1. I’m fine with the webforms designer. It is a great productivity tool and makes it quick and easy for Mort to build web pages using RAD techniques.

But now, take a Not-So-Mort who wants to use something like Microformats for example, which requires clean markup. He marks up his pages just right, but the pages get all FUBAR because the designer decides to rewrite his code. That’s problematic.

The problem here is we’ve exchanged long-term productivity gains (the maintenance cycle) in exchange for short-term gains in initial productivity.

Because these abstractions are leaky and poorly implemented, they convolute the implementation details they are meant to hide and make long term maintenance that much more difficult.

Whereas well implemented abstractions tend to promote good code. I’ve read several people state that a developer would have a difficult time writing more optimized Assembler than a good C++ compiler generates in this day and age, especially on a grand scale. It can still be done, but the fact that it is so close shows that C++ is a great abstraction on top of Assembly.

I’ve written about Mort too, but I am not hating on Mort. As Scott says, we are all to some degree a Mort. However one characteristic of a Mort as I have seen commonly defined is that Mort does not care to constantly learn. Mort isn’t striving to improve.

I do still think we should expect more from Mort. Understand that though the tools we have at our disposal make computing easier every day, computing at its core is a complex problem. Be sure to gain some small understanding of what these tools are doing for you and a general idea of what happens under the hood.

Back to my car analogy, I couldn’t take a wrench and fix my timing belt for the life of me. But I do have a general idea of what an automatic transmission is doing and what limitations it causes on my driving (I can’t seem to redline!). I would never ask Mort to understand assembly, but do take the time to understand some general principles.

comments edit

Well maybe not all of you. For example, I know Jayson isn’t going. Sucker. (Oooh, I just had to rub it in, didn’t I?). ;)

For you others that are going, I know there a few people I hope to meet because you promised to buy me a beer, or did I promise to buy you one? Here are the lists of people I plan to see:

Buying Me Beer

I’m Buying

No Exchange of Beer, Just Saying Hello

Normally, when I go to a conference like this, packing is a last minute afterthought. But this time, I will plan one specific article of clothing for the first day of the conference. I’ll wear a retina scarring bright orange Aloha shirt so that those of you who owe me a beer can easily spot me. If I owe you a beer, I will be wearing green and I have blonde hair. Ignore the rest of this post.

Orange Shirt\ Figure 1: Eye burning shirt at BurningMan

Just look for the guy who looks like a cross between Kim Jong Il and Samuel Schmid. You can probably find me at the Craps or the Blackjack tables. Maybe, if things are going well, I might have a date with destiny at the Let It Ride tables. Assuming she still works there.

And of course, if time permits, I will be at some of the sessions.

[Listening to: Walk Like an Egyptian - The Bangles - Greatest Hits (3:24)]

comments edit

Fire I have had it up to here (imagine my hand on my head) and I am ready to fire the damn QA department for my blog. Unfortunately I am the QA department, so things will be a little awkward around here till I find a replacement willing to take zero pay with no benefits.

I read this recent post on The Joy of Code that describes how to defer the execution of a javascript that is slowing down the rendering of your site.

So I go ahead and try it out, test in Firefox, and deploy to my hosting provider. The next day, I notice that hits to my site are way down. Strange. Everybody must be taking a break from blogs.

It wasn’t till today that a kind soul sent me an email saying my blog acts funny in IE.

Funny? I’ll say. Visitors using IE would get a scripting error and then see my Flickr Badge. Only my Flickr badge.

I have gotten so comfortable with Firefox that I completely forgot to test in IE, which the majority of web users are still using. It is fun to be on the bleeding edge, but never forget your audience. In the meanwhile, I am going to try and patch things up with my QA person because there are no resumes coming in.

UPDATE: As far as I can tell, the reason IE broke and not FireFox is that IE seems to actually honor the “defer” attribute while Firefox ignored it. This was not a bug in IE, but a bug in my head in applying the defer to scripts that should not have defer applied. And the Joy of Code article warned me too.

comments edit

So a little while ago I mentioned a new site named On10. I didn’t know what it was at the time, but I was assured by Erik and Adam that it would be cool.

And then it was released and I have to admit, I was not blown away. In truth, I was a bit confused. It looked to me like Channel 9, but highlighting the use of Microsoft technology outside of Microsoft.

But this channel 9 video sheds some light on the site and I am impressed. Not so much with what the site is itself, that may take time to grow on me, but what is going on under the hood.

Some interesting points:

  • First of all, their site validates as XHTML Transitional. Good job guys, as the Mix06 site did not validate.
  • Judicious use of AJAX to provide a rich experience.
  • The site works fine with a rich experience in Safari, IE, and Firefox.
  • You can add comments next to a video while the video continues playing.
  • Hackable URLs. Ex…
  • Trackbacks are treated as first class comments. So they are free with their traffic. I hope their spam filter is strong.
  • XBox Live integration via you can select your XBox Live avatar as your On10 avatar.

All in all, On10 is an “enthusiast” site that looks to participate in and give back to the community.