Alex Hopmann     

Modern art makes me want to rock out             

Email Alex Hopmann

Home

XMLHTTP

Lancair

Art

Travel

Food

Hiking

Fast Carrot

About Alex Hopmann


Airplanes

Flying

Family

Food

Travel


February, 2005

March, 2005

April, 2005

May, 2005

June, 2005

July, 2005

August, 2005

September, 2005

October, 2005

RSS Feed

 

 

 

February 16, 2007

Technology- Moving to WordPress soon

I'm planning on moving this blog to WordPress soon. I've been using my own hand-rolled software for years and so far its worked out ok. On the plus side it keeps me in deep with various of the latest blog technologies, having to hand-roll them myself. As I wrote on a post over on the new Launch21 blog, the lack of good tools to post make it harder for me to update things frequently and it is just not worth it.

Launch21.com is running on WordPress now, but it will probably take a bit longer to move this site there since I'll want to preserve pretty much all of the old URLs for search engines. Hopefully not too long.

Matt from Judy's book finally started writing a blog and is off to a quick start with a flurry of interesting posts. I'm always a fan of interesting discussions about how to balance innovation, execution, etc. There was an interesting talk at the Northwest Entrepreneurs Forum by Shaun Wolfe, CEO of MessageGate. He called execution "system" and talked about a classic triangle balancing time, system, and innovation. One of his key messages was that its really key for a startup to understand when is the right time to invest in system (process, infrastructure, global scaling, reducing costs, more predictability), given the inevitable impact that has on innovation and rapid development.

On another random topic, Eric asked about what would be a good video card to drive his new Plasma TV nicely and I pointed him to this AnandTech article on HDMI/HDCP capable video cards. For a "TV" you want to find something that supports an HDMI connector at 1080P to get the best results, and ideally that supports the crappy HDCP copy protection stuff so you can play high-def video content.

February 08, 2007

Technology- Semantic Web and Microformats

Dave asks "Is the Semantic Web (Web 3.0) Dead on Arrival?" over on his blog. This reminds me a bit of some of the stuff I was trying to get at when I wrote about the history of RSS, although as usual my writing approach was the boring one and Dave did a great job coming out with an attention grabbing headline.

Some of the general concepts of the Semantic web are great, but the presentations I'd seen never included compelling user scenarios that made me really want to get it. In terms of the Vista marketing, there was no "wow" moment. Furthermore the technical approach was very dry, complicated and impractical.

Microformats and some of the other current trends on the web are a much more reasonable way to go about this kind of thing. Strip down complexity, make it work with the existing infrastucture and let people wire it together. The W3C vision around RDF and whatnot requried people to adjust how they expressed all their data, build new query engines, new outputs of their data from their apps. Ironically for a thing called the Semantic web, it required you to strip the semantics out of your data. From an architectural point of view there are good arguments for this seperation of data and semantics, but it rarely fit in well with any web-sites business strategy.

In other news the new Bloc Party album, A Weekend in the City is out and its available on eMusic immediately. This is a huge score for eMusic and it seems like they would be crazy to not sponsor (or otherwise have a presence at) the Bloc Party tour this spring. I see that they do have a big animated add for the album on their homepage, so it is clear that they get what a big deal this is for them. Of course Bloc Party's own web-site advertises downloading it from iTunes complete with evil DRM that Steve Jobs, despite his letter yesterday, hasn't removed. Given that Bloc Party obviously allows non-DRM protected distribution of thier stuff, this would be a good "put up or shut up" for Mr. Jobs.

February 06, 2007

Technology- DRM and Apple

Many blogs have referenced Steve Job's Thoughts on Music post today. While it is absolutely true that this is a propaganda statement in his battle with EU regulators, and that Steve's business is benefiting greatly from DRM right now, it doesn't matter. The fact that he came out and said this so clearly in public hopefully will help turn the tide away from DRM. Bill Gates in effect said something similar a few weeks ago when chatting with some bloggers but not in as public a way and certainly not as clearly.

For now I'm going to continue to support eMusic as much as possible as a great place to get DRM-free music. Some quick research shows that I can find over 30 of the bands playing at Coachella there so I'm well on my way downloading an album or two from each to decide what I want to go see. I've heard that other services are experimenting with DRM free music and if they do I'll be eager to support them too.

February 01, 2007

WPF- New Feb WPF/E Build available

A new build of WPF/E is now available from here (Windows, Mac). The old one accidentally expired so Microsoft rushed out the update. Tim Sneath has all of the details on his blog.

I'll be working to fix up the demos on here with the new build shortly.

FYI, this new build is apparently good until June 1st.

January 31, 2007

Technology- Adam Bosworth on early days of DHTML

Adam Bosworth gave a talk this week that was picked up in some of the press including this write-up at eWeek and again at Slashdot. He talks about the early days of DHTML and Ajax and some of the Slashdot comments have picked up on his talking about having invented Ajax and suggested this conflicts with my Story of XMLHTTP write up that has been carried in many online outlets lately.

I'll weigh in and say that both are true. To the extent that there is some confusion its because what we call AJAX today is a collection of many things- The basic dynamic HTML infrastructure. The XMLHTTP & async network communication piece. And the patterns of tying it all together.

Adam and his team (especially folks like Rod Chavez, Michael Wallent and many others, as usual I'm probably forgetting to mention some of the key people) invented the Dynamic HTML part which was miles beyond what Netscape was doing at the time. I just filled in the XMLHTTP piece, and collaborated with many others to do the first major app that tied it together (Outlook Web Access). Without the earlier contributions of the Trident/IE teams, it wouldn't have been possible, and its absolutely true that Adam and many folks he worked with had the conceptual vision for tying it together (he called it weblications at the time).

Having said that, they never built a real app with it and the act of using it for real turned up some missing pieces, leading to XMLHTTP as well as several other things that the Trident and XML teams themselves pioneered. I'd also like to acknowledge the Adaptive Path guys for coming up with a nice description of the approach and giving it a word that wraps it up nicely (Ajax). At Microsoft we totally blew the opportunity to evangelize and get out in front of this approach back in 1999. That itself is a longer story for sometime in the future. I realize that some in the technical community are "all about the engineering" but effective marketing and communication of your ideas is important and we missed out on that.

I do also think that Adam's discussion of why Ajax didn't take off in 1997 misses a key point. Sure, network connections were too slow at the time. The computers themselves and Javascript was too slow (recall that typical machines were 200mhz). The earliest versions of DHTML in IE4 had some.. er.. issues to work out (there was more than one reason that OWA required later versions of the browser). But most importantly I just don't think its realistic to expect the development community to make sweeping shifts to some new technology quickly. As I've mentioned before these things take 3-5 years, so its not much of a surprise that the stuff that was developed incrementally between 1996 and 1998 actually started to hit it big in 2000-2002 and really exploded in 2005-2006.

January 22, 2007

Music- Coachella 2007

The Coachella 2007 line up is out. My first reaction is a simple two words-

HAPPY MONDAYS!!!!

Of course reunions like that usually suck, and live they were supposed to be hit or miss anyway, so I'll have appropriate expectations. That doesn't diminish how exciting it is... And with the news coming on a Monday, what I can say, its a really happy Monday.

Oh, and the Jesus and Mary Chain too. Interpol. The Arcade Fire. Tapes n' Tapes. LCD Soundsystem. Soulwax. Kaiser Chiefs. And tons more. As usual the main attraction isn't the bands I recognize, its the cool new bands out there that I haven't heard yet.

Looking forward to it! And then off to Mix 07 early Monday morning.

I'll try to post a list of Emusic bands that will be playing shortly.

January 19, 2007

Management- Inspiring With the Big Challenge

Another big link today, this time from the folks at Ajaxian. I sit here wondering if saying thank you for a link makes me not cool. Kind of like the person who is over star-struck meeting a famous person or something. Personally I'm not terribly fond of the automated trackbacks (plus, spam has limited their usefulness) and it's the interconnectedness that makes the web work so I'm going to do it anyway. Thank you Dion!

The combination of the new interest in that write up and a conversation with a client yesterday of course reminds me of another good story. As we were developing Exchange 2000 / Outlook Web Access we would meet with Bob Muglia pretty much every week. At the time Bob was our senior VP and was running a pretty huge organization (I think including all of Office). The amazing thing was that despite the size of his organization he managed to still be very involved. Execs that combined the ability to get it when they saw something important and at the same time inspire people to drive hard made that a very exciting place to work.

Outlook Web Access was very much a "catch up" project. We started about halfway through Exchange 2000, and were working very quickly to build as much functionality as possible. Outlook has an incredibly deep feature set including tasks, this thing called the Journal, and of course tons of contacts and calendar features. At this point we had gotten the basic mail part working but not much else.

I don't know how he pulled it off, but when we showed Bob a demo of the mail stuff, he managed to do this really cool thing. He managed to show how enthusiastic he was about what we had pulled off so far. And at the same time somehow he challenged us something along the lines of "of course contacts are hard, you probably can't have contacts working quickly". The next week we demoed the contact list and again, he was enthusiastic, but of course the "card" view would be tricky. We managed to go for quite some time and every week Jim and Bob somehow managed to pull off a whole major section of the application into good enough shape for me to demo it.

I'm pretty sure that Bob and Gord Mangione (our GM) knew the difference between getting something to the point where you can demo it vs. shipping to enterprise customers. Getting this stuff polished and out the door was a huge effort and considerably less glamorous than those rapid development days, but I don't think we would have made it to there without the special kind of encouragement we had at the outset. There is a special balance you need to strike as a manager to create the right atmosphere so that people feel challenged but not overburdened.

Too often the relationship between a development team and their management is some adversarial one where the development team feels they need to push back on schedules and challenges. I think one of the sources of this problem rests in our assumptions that software like other engineering disciplines should be something you can accurately schedule. Developers that can come in on time are thought of as more professional. Plus, I get how difficult it can be to plan a marketing launch or other business issues that need lots of advance notice when your developers can't predict how long it will take to finish.

The sad fact is that as a developer I really dislike being pushed to make an accurate estimate of how long a project is going to take, and as a program manager I dislike having to push my development team for accurate estimates. It takes the right developers, but if your business and team can support it, you can get lots more done by not having a fixed schedule, tackling projects incrementally with nice bite sized steps, and just driving hard to get them done as quickly as possible. Sometimes you will hit roadblocks and something will take longer than expected, but this model doesn't leave you feeling guilty for missing some arbitrary schedule and encourages people to think of different ways around the problem.

In other news I'm thrilled to see that the new version of Prototype, 1.5 is now available. I've enjoyed using this library quite a bit to make Javascript much easier to deal with. I haven't seen any good summary of what has changed in the new version yet, stay tuned.

January 18, 2007

General- Blog Posts and Giving Proper Credit

Dare Obasanjo linked to my Story of XmlHttp this morning. It will be interesting to observe how much traffic a popular blog with great Google rankings like his creates. Given that good links are the currency of the web, I owe Dare a big thank you. And of course for any new visitors today, welcome.

The funny thing is that my first reaction was to be a bit stressed out. XmlHttp itself was a fairly small project as such things go, but even the smallest things at Microsoft need the contributions of so many people to pull them off. I'm confident that I forgot to mention many important people who helped and I hope they aren't too offended.

Outlook Web Access for Exchange 2000 was in many ways a much bigger accomplishment and of course the acknowledgement list for that project would have to be much much longer. XmlHTTP was just one small missing piece that helped pull off what is now called the Ajax architecture, but OWA is the place where the techniques to use it and to really build rich applications in the web browser really came together.

One interesting story- while we were developing Outlook Web Access for Exchange 2000, we were stressed that the rich version only worked for IE5 which had just barely shipped and was not widely deployed, especially in enterprise. We had an HTML 3.2 version that could run with any web-browser, but we not sure about the reaction we would get from our top customers to the IE5 requirement for the best experience. One thing that I thought was great about working in the Exchange team was that I had lots of opportunity to present to these big enterprise customers and meet with their CIOs and top Exchange administrators in person. These guys surprised us- I probably did a couple of dozen presentations to these guys and never once did I get any pushback on the IE5 thing. The more common reaction was that they saw so much value in having a server-driven app like Outlook Web Access that they said they were going to push up IE5 deployments to make sure all of their employees could access it. It does go to show that when you build a compelling platform and show the specific business justification, the deployment happens easily, and the IE and Trident teams deserve a ton of credit for having stuck with that vision for dynamic HTML applications for such a long time.

January 09, 2007

TV- CBS Making Progress

It is pretty amazing to me the sorry state of the TV networks taking advantage of the Internet as a distribution medium. The only real excuse is that most people don't have a computer hooked up to a TV yet so they can't really watch TV programming sent via their computer. Still, with a set of early adopters all over it, you would think someone would get in front of this trend.

So far the best solution I've found is Amazon Unbox. Unbox is cool enough that I'm planning on cancelling some of the premium channels on cable and just getting individual programs via Unbox. While I felt that $2 per program was too much for TV (its still too much for 30min programs, they need to price differentiate more), when I look at how many programs I can buy a month and still save over the Comcast subscription, it becomes easier to justify. Plus I get real DVD quality content, better than most broadcast HD and I get to replay anytime at that quality.

The other night we went to watch the latest CSI episode and discovered that the recorded version was trash. Somewhere between the Media Center and the HD broadcast antenna the results were jumpy and cut out. Since CSI is one of the programs available on Unbox I went there to get the program. This was a day after the broadcast but the new episode wasn't online yet. This I really don't get- hey, if I'm paying $2 to watch it, they should pretty much have it available online before the normal broadcast time if anything.

However a quick visit to the CBS web-site saved me. They have this new video player they call the InnerTube that has full episodes of most of the shows available a couple of hours after the west-coast air time. They force you to watch a couple of ads, but thankfully they are fairly brief (although they crank up the volume even worse than normal broadcast ads do).

The quality isn't as good as Amazon but its almost as good as broadcast/cable after you PVR it. Hopefully this is a sign of good things to come. Now if someone had a $20/month subscription service that would give me all the HD quality video of TV shows I want...

December 28, 2006

Vista- Windows Vista Tips

With the consumer release of Vista coming out in a few weeks I've been playing with RC2 and thought I'd document some of my experiences and tips for Vista users.

My first time is to suggest turning User Account Control off. This is a good intentioned feature that was intended to help improve the security of the system by normally running all programs in a restricted mode and requiring you to authorize administrative things. Unfortunately for me normal usage of my machine involves 10-100 of these so-called administrative things all day long, and with User Account Control turned on Windows Vista gives you constant pop-up dialogs asking if you want to do something. Over and over.

To turn it off go to your User Accounts control panel. Select "Turn User Account Control on or off" at the end of the list. A description of the feature appears with a checkbox. Uncheck the box and click OK.

Image of User Accounts Control Panel User Account Control

Note- I'd only really recommend this if you feel confident in running your system and keeping it virus-free on your own. Microsoft loves bugging you with these security dialogs so much that they will give you a piece of toast every time you boot if you turn it off. Still, one toast per boot is way better than the constant nagging. And to be clear, plenty of user-research has shown that techniques like this don't work to improve real security since users just become habituated to clicking "ok" over and over and stop actually reading the dialogs or thinking about their context.

December 26, 2006

Technology- (Con)Fusion

I have been in hell with my main work laptop since Friday. On Friday I tried installing the Visual Studio SP1 upgrade. The first time I tried the upgrade I didn't realize that I'd need 2+ GB of free space so the installer failed. VS SP1 apparently still has a bug where if the install fails, the roll-back fails horribly, corrupting your .NET 2.0 install. Trying to run the VS SP1 setup or repair the .NET 2.0 gives you the cryptic error message "Error 25007.Error occurred while initializing fusion. Setup could not load fusion with LoadLibraryShim(). Error: The handle is invalid.".

Since then I've spent 3 days uninstalling and reinstalling things and trying to find advice on web-sites for how to fix the problem. Most of the advice didn't help but I finally found a suggestion in the end of this post that solved the problem. By deleting the c:\Windows\WinSxS\Policies directory, I could reinstall .NET 2.0 and proceed from there. What a nightmare.

I'm a little reluctant to point this out since there were some very good people on the team, but its pretty clear that some of the fundamental underlying problem is the technology called Fusion. This was an ambitious effort to fix some of the system fragility problems with the registry and dll-hell on Windows. The result can only be described as a fix that is 10x worse that the problem. The registry certainly has its problems, and most developers had figured out how to rename DLLs with strange version #s when they made incompatible changes. Things were fragile but a reasonably skilled Windows power-user or developer could fix them. With fusion the model is so much more complex and the databases are more opaque so pretty much the only people who can fix problems are the developers on the Fusion team. Its incredibly easy to get the wrong thing in the GAC (global assembly cache) or otherwise make some minor configuration mistake that is almost impossible to fix.

Who knows, maybe this is a product opportunity. It seems like pretty soon there might be a big market for fusion repair tools. Go for it...

December 25, 2006

Skiing- All I Want For Christmas is 1' Fresh Snow

And Christmas morning we woke up to find Whistler buried under 11 inches of fresh powder. Light stuff too. Ok, so it wasn't a full foot but close enough.

Our initial plan was to go to Snowbird again but a few weeks ago the snow reports there were not looking very good so we cancelled those reservations. The plan was to wait until this week and then see if what spots had great snow and look for deals. I was happy to see that Whistler was reporting over 100" snow-base and their Last Minute Hotel Deals page had a 5-star hotel listed for $169/night again, over half off the normal rates.

December 22, 2006

Technology- Judy's Book After Christmas Guide

Speaking of Judy's Book I thought it was worth mentioning some features I've worked on the past couple of weeks. Now that we have the deals site up and running solidly it has been very cool to succesfully build and ship some new features in less than a week.

A couple of weeks ago Chad and I built a Coupon Finder that uses a little bit of AJAX to work somewhat like the Google Suggest feature. You just start typing a phrase and as you type it issues queries and updates the display in real-time. The key was keeping the results really compact and the queries light-weight enough that the performance is really good. If it were slower at returning the results the usability would be poor. As it is the feature feels (to me) cool and responsive.

That same week we shipped a Holiday shipping guide. This was pretty crucial to turn around quickly while the data was still useful to people. Getting it out the door was an interesting exercise in rapid development. It was a mostly content-oriented mini-site, but the data entry was turning out to be very error-prone. We switched it to be driven by a table of data and were succesful at getting the initial version out on time, but there were issues to fix for a few days after the initial launch. From my perspective that was fine- with a web app if its not horribly broken, the cost of doing updates should be fairly low and there is little evidence of your mistakes later.

Yesterday we got online a After Christmas Sale Guide that was built on a similar structure to the holiday shipping guide. Based on the experience with the first guide I built a structure for creating generic "guide" sites. It seems like these things are very useful to people who visit the deals site, and they also provide a good source of incoming organic search users. In theory this generic version will let us deploy a new guide by editing an Excel file, three lines in a config file and no real code. If I had tried to build the generic version before we did the first guide I'm pretty certain I would have screwed it up- either made it too complicated or created a structure that didn't provide us with the right flexibility. Since we worked out the model in the first place, and then encapsulated it into code later, I had an easy model to follow. Of course I'm sure there will be many additions for future versions, but from my perspective it was a pretty good validation about rapid iterative models of software development.

December 21, 2006

Technology- Launch21

For the past few months I've been both working on some of my own sites like CalendarData as well as working with some other start-ups like Judy's Book. I've really enjoyed the opportunity to work with lots of different projects and the local environment is incredibly dynamic right now. It is pretty cool just being able to dip your fingers into some of the latest new stuff. With the advances in the ability to develop web-applications via that stuff that gets called "web 2.0" and the recent releases of WPF and WPF/E the environment also seems especially well suited for my skills.

A couple of weeks ago Peyman and I decided to combine forces and we created Launch21. Launch21 is a consulting group that specializes in rapid development of both traditional web 2.0 sites (ok, its funny calling them traditional) as well as WPF and WPF/E based projects. We are combining our tool-chests of libraries that we have been developing and are pretty convinced we can offer some unique time-to-market for people who want to get something out to the public quickly.Today we signed our first deal. Of course I can't say what it is, but we are off and rolling.

December 19, 2006

Technology- Virtualization

The power came back on late Sunday night- what a relief. All that I can say is that having the power off was miserable. I can't imagine how horrible it must be for people who still don't have power now that the work week has started. At least we didn't run out of laundry and were able to go to the gym for a hot shower.

It is pretty incredibly how poor the information availability was during the past week. Back at the 2003 PDC we did all kinds of demos of cool visualizations for situation-rooms and emergency response centers. But we never mentioned anything about helping provide information to people so they can find out what is going on. I'm sure there are kinds of social issues involved with providing more detailed information (why is that block prioritized ahead of mine?) but it still seems like we could do much better.

With my server running nicely in its rack in the datacenter, I thought I'd mention how great of a change it is to have modern virtualization technology. This is one of those things that took a bit to sink in. It was pretty clear right away why it was cool to have virtual memory and preemptive multi-tasking back a couple of decades ago. But when I can run all my apps at once nicely in one OS, why would I care about running more than one OS?

But with just 1U of space in the datacenter, the flexibility that virtualization gives me is just really amazing. The machine I got can easily expand to more than 10GB ram, 8 cores of CPUs, and 3TB of disks space. Those upgrades are all much easier than buying an extra hardware box. And eventually I'm sure I will buy an extra piece of hardware for redundancy. But in the meantime I can setup the services I'm building, deploy them on their own virtual machines, and they are all easy to manage. System updates used to be scary for a server when you don't have physical access, since if the machine didn't reboot right, you weren't there to reset it. Now if I need to reset a "machine" I just log into the host machine and go to its console.

Once I have a second server, I don't need to do any complicated reconfiguration. I can just move some of the VM configurations to the new box, and start them up. I didn't even have to shut-down my app servers to bring the physical hardware to the data center- they were all suspended, and once I booted up the host they were all able to just resume. I could be wrong but it looks like reboot times might be much easier to manage and much quicker with this setup too.

This stuff is going to be industry-changing for sure. Its already taking off quite a bit, but its clear that within a couple of years its going to be ubiquitous. On the other hand, Microsoft's current licensing schemes seem like they are going to be a serious problem. Just dealing with product activation already puts Windows Server at a huge disadvantage in this kind of world where its trivially easy to just clone a Linux machine image but Windows Server puts me through many more hoops to get it to work. Microsoft is going to have to figure out how to charge (and not gouge) for this stuff without being too much of a nightmare for the administrator. If they don't their already precarious position in the server space is going to collapse.

December 16, 2006

Home- Power is out

Thursday night we had a huge wind storm here in Seattle and the power has been out in our neighborhood for a day and a half now. Since my email server has been hosted out of my house, it is down at the moment and presumably my email is bouncing. I'm going to try to move it somewhere hosted as soon as possible- for now I haven't heard any solid predictions of how long it will take to get the power back. Oh, and its getting pretty chilly at home too. At least the stove works and we have a ton of candles.

I went and installed the Fast Carrot server at GridZones last night. With the power out it wasn't doing any good and this way maybe I can make a push to get the site ported over to it over the weekend.

Update: My email appears to be working now. I've moved it to a hosted service so that should be safer.

December 13, 2006

WPF- Upcoming conferences

Mike Taulty has posted a cool sample of playing 12 video streams at once and animating them using WPF/E. It looks like there is a bug on Windows where the videos aren't caching property so it looks like the video is being downloaded 12 seperate times. The Mac doesn't have the same issue but the video playback and especially the animation are not nearly as smooth (despite my Mac having a slightly faster CPU than the PC).

It looks like both MIX07 and the Microsoft PDC have been scheduled for 2007. I've added them both to my calendar of technology events on CalendarData.com. At the moment I'm more likely to go to Mix than the PDC, but we will see when it gets a bit closer. I'm already planning on being in Palm Springs for Coachella 2007 the night before so flying down to Vegas is just a short hop.

December 11, 2006

Technology- Building out hosting servers

I will shortly be moving the hosting for CalendarData.com and probably associated sites. So far I have been using 1and1 which has worked out fine for development purposes, at least on the linux side. Their ASP.net hosting is pretty horrible and once the traffic starts to build as it has for calendardata, their solutions are insufficient.

My current approach is to build out 1U servers using the Tyan Tank GT20 barebones. They seem to offer the most flexibility since you can put 2x Intel Woodcrest CPUs in which themselves can be each up to 4 cores, + it supports 4 hot-swap hard-drives. Running either VMWare or Xen for virtualization I can easily deploy multiple "servers" on one unit and as I need more capacity I can initially upgrade that first physical server with more RAM, CPU and disk, and later move them off to additional physical servers.

I'm currently shopping for a co-location service. In addition to the folks I mentioned back in March I'm also looking at gridzones- they have some attractive rates for 1U, although I'm trying to find someone who has experience with their service.

On the WPF/E front, I've revised my "detectwpfe.js" script. It now encodes the user setting as WPFE/YES/IE so that it will group better in the Google analytics display where the YES or NO is the most important state to analyze. You can download the update here.

December 06, 2006

WPF- WPF/E More Questions

The main set of questions that stand out with WPF/E at the moment is to figure out just what is missing (and what will be missing when the final version ships). One of the nice aspects is the install is smaller, and it runs on Macs, etc. But it doesn't appear to use the same high fidelity text engine and all that that the full WPF does. The real WPF isn't a strict superset of WPF/E, to run without the CLR and on other platforms I suspect that its actually a completely different implementation. It would be nice if, on machines where full WPF exists you automatically got the benefits of full WPF, and the WPF/E engine only ran when its not there.

But I guess this brings us to one of the slightly confusing parts of the wonderful Microsoft technology naming. WPF/E isn't really that similar to WPF. It's a different engine, a different runtime model, etc. Hopefully they share some of the same rendering code, but mostly from a programming point of view the only thing they share is the ability to specify things in XAML. Even there, you window up using the http://schemas.microsoft.com/client/2007 namespace for WPF/E and the http://schemas.microsoft.com/winfx/2006/xaml namespace for WPF (and some of the later namespace is used for WPF/E also).

What this means is that you can create a XAML file for WPF/E. Double click it in the explorer and it will open in IE, and WPF will try to render it, but fail. Presumably this is a minor inconsistency that Microsoft can fix (although its not clear if that can be fixed in the final 1.0 version of WPF/E or if it needs to wait for a new version of .NET or if its just something you can work around in authoring your XAML).

It is clear that it is still early days for this stuff. WPF/E doesn't even have a textbox yet. Presumably that is a key thing for them to add before they ship version 1. In the end I'm VERY glad that Microsoft choose to get this out into the community so we could start working with it at such an early stage- it looks like yet another sign of a more responsive Microsoft.

On another front, I'd point out that the support for media that is in the existing build is critical. So many of the scenarios where people want to embed richer content involve media, and this is one of the most common uses of flash around the web. The notion that this is a runtime where I can just play WMV and WMA on any browser any where and that its much easier to construct those players than with flash will be a critical strategic advantage for Microsoft.

Shawn Wildermuth had a good post covering some of the points of what WPF/E actually is.

On another front, I'm working on some tools to report to Google analytics how many of your users have WPF/E installed vs. not. It seems like it will be very interesting to track what percentage of my audience already has it when they come to my web-sites. I've created a small JavaScript function that detects the browser, platform and whether or not WPF/E is installed.

function GetWPFEStatus()
{
var Status = "WPFE-";
var Installed = false;

if((navigator.appVersion.indexOf('MSIE') != -1))
{
	Status += "IE-";
	try
	{
		var TheWPFE = new ActiveXObject("AgControl.AgControl.0.8");
		if(TheWPFE)
			Installed = true;
	}
	catch(e)
	{
	}
}
else
{
	try
	{
		if((window.GeckoActiveXObject && navigator.userAgent.indexOf('Windows') != -1))
			Status += "FF-WIN-";
		else if(navigator.userAgent.indexOf("Macintosh") != -1)
			Status += "MAC-";
		else if(navigator.userAgent.indexOf("Linux") != -1)
			Status += "LINUX-";
		else
			Status += "UNK-";
		for (var i=0; i < navigator.plugins.length; i++ )
		{
			if(navigator.plugins[i].name.indexOf('WPF/E') != -1 ||
				navigator.plugins[i].name.indexOf('WPFe') != -1)
			{
				Installed=true;
				break;
			}
		}
	}
	catch(e)
	{
	}
}
if(Installed)
{
	Status += "YES";
}
else
{
	Status += "NO";
}
return Status;
}

You can then wire this in to your Google Analytics reporting like this-

<script src="/detectwpfe.js" type="text/javascript"></script>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
__utmSetVar(GetWPFEStatus());
_uacct = "-your-code-here-";
urchinTracker();
</script>

Yesterday's technique to animate the text rotation was a good exercise in talking to WPF/E with Javascript, but not really the most efficient way to do an animation in WPF/E. Today I've got an update that uses the built in animation objects. One interesting point is that while the built-in technique is more efficient, it isn't necessarily more clear in the code...


The code for the example-
<script type="text/javascript" src="aghost.js"></script>
<script type="text/xaml" id="xamlContent2"><?xml version="1.0" ?>
<!-- HelloWorld.xaml -->
<Canvas 
	xmlns="http://schemas.microsoft.com/client/2007"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	x:Name="CanvasID"
	Loaded="javascript:onHelloWorldLoaded"
	Width="300" Height="30" >
 <Rectangle Width="300" Height="300">
  <Rectangle.Fill>
    <RadialGradientBrush 
      GradientOrigin="0.5,0.5" Center="0.5,0.5" 
      RadiusX="0.5" RadiusY="0.5">
      <GradientStop Color="Yellow" Offset="0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1" />
    </RadialGradientBrush>
  </Rectangle.Fill>
</Rectangle>



  <TextBlock Canvas.Top="120" Canvas.Left="60" FontFamily="Verdana" FontSize="24">
	<TextBlock.Triggers>
<EventTrigger RoutedEvent="TextBlock.Loaded">
<BeginStoryboard>
<Storyboard>
  <DoubleAnimation
	Storyboard.TargetName="RotateID"
	    Storyboard.TargetProperty="Angle"
 From="0" To="360" Duration="0:0:30" AutoReverse="False" RepeatBehavior="Forever" />
</Storyboard>
<</BeginStoryboard>
</EventTrigger>
	</TextBlock.Triggers>
	<TextBlock.RenderTransform>
		<RotateTransform CenterX="80" CenterY="30" x:Name="RotateID" />
	</TextBlock.RenderTransform>
	Hello, world</TextBlock>
</Canvas>
</script>

<div id="WpfeControlHost2">
<script type="text/javascript">
new agHost(             "WpfeControlHost2",  // DIV tag id.
        "WpfeControl2", // WPF/E control id.
        "300",          // Width of rectangular region of WPF/E control in pixels.
        "300",
	null,
	"xamlContent2");// Height of rectangular region of WPF/E control in pixels.
                        // All other property values are set to their default values.
</script>
</div>

December 05, 2006

WPF- WPF/E Hello World

From 2001-2005 I worked on the Avalon team (now called WPF) creating the next generation user-interface and graphics platform. One of the more disappointing things about leaving in 2005 is that the things I'd been working on where not ready for prime time yet, and it would be years before it would make sense to really dive in again for real-world projects. The other issue is just that the size of the platform (huge download) and big app model changes (Avalon/WPF is mostly code-first so existing web-sites would need to be really rethought to adopt it.

Yesterday Microsoft put the community preview of WPF/E (E is for Everywhere). They took the core graphics concepts of Avalon, the XAML language and packaged it in a 1MB download, with an object model designed to work inside web pages and be programmed from Javascript. Even better it works in Firefox and on the Mac. This is a huge breakthrough- a 1MB download really isn't that big of a deal and the broad platform support (hopefully Linux?) and consistent programming model makes it way easier to buy in to the technology.

Without further delay, here is my first "Hello World" thing in WPF/E. Just a little rotating text on a gradient, but doing this with existing browser platforms would have been a big pain.

Note- this probably won't work in most blog readers, if you want to check it out, visit my site. If WPF/E is not already installed it should take you to the download site. Downloads are available for Windows and the Mac.


Here is the XAML used in this sample:

<Canvas 
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Name="CanvasID"
    Loaded="javascript:onHelloWorldLoaded"
    Width="300" Height="30" >
 <Rectangle Width="300" Height="300">
  <Rectangle.Fill>
    <RadialGradientBrush 
      GradientOrigin="0.5,0.5" Center="0.5,0.5" 
      RadiusX="0.5" RadiusY="0.5">
      <GradientStop Color="Yellow" Offset="0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1" />
    </RadialGradientBrush>
  </Rectangle.Fill>
</Rectangle>

<TextBlock Canvas.Top="120" Canvas.Left="60" FontFamily="Verdana" FontSize="24">
    <TextBlock.RenderTransform>
    <RotateTransform CenterX="80" CenterY="30" x:Name="RotateID" />
    </TextBlock.RenderTransform>
    Hello, world</TextBlock>
</Canvas>

And here is the Javascript:


// aghost.js is a library from Microsoft for constructing a WPF/E object on all browsers
<script type="text/javascript" src="aghost.js"></script>
<DIV id="wpfeControl1Host" style="width:300; height:300; background:White">
<SCRIPT type="text/javascript">
var TheWPF=    new agHost("wpfeControl1Host",   // hostElementID (HTML element to put WPF/E 
                                     // ActiveX control inside of -- usually a <div>)
               "wpfobj",             // ID of the WPF/E ActiveX control we create
               "300",                // Width
               "300",                // Height
               "#ffB42600",          // Background color
               null,                 // SourceElement (name of script tag containing xaml)
               "helloworld.xaml", // Source file
               "false",              // IsWindowless
               "24",                 // MaxFrameRate
               null);                // OnError handler (method name -- no quotes)


var CurAngle = 0;

function DoTick()
{
    wpf = document.getElementById("wpfobj");
    var rotate = wpf.findName("RotateID");

    // Determine whether the object was found.
    if (rotate != null) {
	rotate.Angle = (++CurAngle);
    }
   window.setTimeout("DoTick()", 50);
}

function onHelloWorldLoaded(sender, eventArgs)
{
   window.setTimeout("DoTick()", 50);
}

December 04, 2006

Cooking- Peking Turkey

For the past couple of years Hillel and I have wanted to do some interesting things for Thanksgiving beyond the usual turkey, mashed potatoes and cranberry. We often talked about ideas like imagining thanksgiving as an Asian holiday.

Last year we tried to do thanksgiving as a small plates meal. Overall I'd call it a disaster. Some of the dishes worked out ok, some failed (truffle mini-souffles) and the many-courses of small plates format kept a bunch of us psycho busy in the kitchen the whole night.

This year Michael agreed to host Thanksgiving and in the end almost 50 people were invited. With that many people we needed some good coordination and we had an opportunity to do both traditional versions of many dishes as well as jazzing things up a little bit. We did three turkeys- one traditional roasted, one deep friend, and my experiment for this year was a Peking Turkey.

Basically the idea was to cook a turkey using the techniques normally applied to Peking duck. Part of the motivation was some less than stellar skin on previous turkeys. Since Peking duck is known for its great crispy skin I wondered if the approach would work on a turkey.

The basic notion is to dry out the turkey and then baste it with some flavored boiling water for 10 minutes. This seals the skin and helps keep the juices in when you cook it. Then you hang it for 8 hours with a fan on it and brush it with a honey-water mix every couple of hours. Then you roast it fairly conventionally. The skin browned fairly quickly, so make sure to cover it in foil and turn down the heat once it browns.

Overall I think it worked out very well and I'd be tempted to try it again. The usual duck recipes tell you to remove the leg bones and I should have followed that- when the turkey was hung the blood all accumulated in the drumsticks and couldnt really drain.

Hillel wrote up some of the meal here on tastingmenu with some pictures. One other observation- I think the class we took at the CIA was some pretty good prep for an event like this. Cooking for 50 can be pretty hectic and we had it mostly all prepped and ready to go with only reasonable amount of work on Thanksgiving afternoon itself.

December 03, 2006

General- Good news from the UK

Two pieces of good news Via Guy Kawasaki's latest post. First of all, Wagamama is apparently opening a branch in Boston. Sounds like its time to start campaigning for a Seattle presence. Tastingmenu has a write up on Wagamama that gives a good feel for what is so cool about this. The bottom line is they just seem to "get it" on many levels. Good food, nothing too complex, nice high-tech ordering, a great experience.

Guy also brings us news that a UK start-up called SpinVox is bringing email delivery of voice mail to cell-phones. I've pretty much always hated voice-mail. It has always felt like this huge disruptive context switch for me to go listen to some messages, make sure I have someplace to take notes, and all that. I'm much happier communicating in email, IM, or in-person meetings that by telephones and voice-mail, but of course I need to be able to adapt to how other people what to communicate also.

First of all its incredibly stupid that I can't get my Verizon cell-phone voicemail delivered to my email inbox as voice attachments. Email systems like Exchange have had this capability for at least 6 or 7 years and really it shouldn't be hard at all to just configure the voice-mail system to send me an email. But the SpinVox goes a step further and translates the voice message to text. From my perspective this is perfect since everyone can operate in the medium that they prefer and still get along just fine.

November 28, 2006

Technology- I Bought a Mac

Last week I got my new MacBook. It has been exactly 10 years since I last bought a Mac, just after I joined Microsoft in November 1996.

From 1984 through 1995 I was primarily a Mac developer. In the mid 90s the combination of the stagnation of the Mac platform (at that time) and the new stable Windows NT operating system brought me over to the Windows world. I was writing cross-platform software, but at the time I needed to reboot my Mac every time my application crashed, and Windows could just restart the process and keep going. As a developer you do that a lot so I started using the Windows machine more and more and eventually had little reason to keep using a Mac at all.

This year the situation has changed quite a bit. Im working on my own projects and would like to make sure that the web stuff works well with the Safari browser on the Mac. The Mac also has this application iCal which can sync calendars from a web-site and I want to make sure it works well with CalendarData.com.

But even more importantly, the switch to the Intel chips, something the Mac faithful had been speculating about for years, has made a huge difference in the practicality of using a Mac. My new MacBook is a GREAT Windows laptop. But best of all, with one key-press I can switch between the Mac OS, Windows Vista, and Linux and back to the Mac OS. Using the Parallels virtual machine software this laptop gives me the ultimate flexibility which is just a huge advantage.

After ten years away from the platform my Mac skills have gotten very rusty. As I usually do Ill be posting my discoveries on here as I play with new utilities and all that fun stuff. If you want to follow me, Judy's Book's deals site has a page of deals for the Apple store.

November 17, 2006

Technology- SOAP and S is for Simple

I've seen lots of links today to Pete Lacey's post "S is for Simple". This more or less makes fun of just how complex SOAP turned out to be with all its layers of XML schema, options, and other such mess. The general point is dead on and I've been a big fan of simpler REST-style mechanisms for wiring things up. The SOAP stuff works great when you stick with a single vendors tool-kit, especially just cranking it all out in Visual Studio, but wiring up dissimilar platforms is still a mess.

Pete's post points out that SOAP doesn't really use HTTP and mostly just tunnels through it. It doesn't put anything meaningful in the URL or use HTTP response codes in a meaningful way. He then points out that the SOAPAction HTTP header is mysterious and no one knows what it is for.

If I remember things correctly, SOAPAction is at least partly my fault. During the era when SOAP was being developed there were several different faction inside Microsoft involved with Internet protocol stuff. The faction that I was more associated with was more directly involved in the development of HTTP and HTTP extensions like WebDAV while another set of people had come from an RPC background and were developing SOAP. To be fair this was a classic case of a couple of groups of people by in large trying to work with each other, but not taking the time to really understand the other groups view-points, perspectives and expertise, and this was probably worse on the HTTP-fan side.

In any case, we were working with the SOAP guys to try to make SOAP more integrated with HTTP rather than just tunneling through it. HTTP has mechanisms of namespace, feature negotiation, authentication, error reporting and more, none of which SOAP used. On the other hand the SOAP guys were just trying to build their SOAP features and figuring out how to interact with all this HTTP stuff seemed like it was just going to delay them, plus it would make it harder to apply SOAP over other infrastructures (not that I've heard of anyone doing SOAP over SMTP or anything in real-life).

So we were left with trying to come up with practical arguments with why SOAP needed to follow more HTTP rules to be successful in the marketplace. For better or worse the only argument we really came up with was that HTTP protocols often have to go through HTTP proxy servers to get in and out of firewalls. By simply tunneling everything we pointed out that the administrators of those firewalls might lock down the traffic and not be able to differentiate between SOAP traffic, web-browser form submissions, etc. We didn't want the proxy to have to parse all the XML in the request to tell what was happening.

Initially we were asking for SOAP to be handled over a different method from POST. Our argument was that HTTP methods were the extensibility mechanism for HTTP protocol stuff and since POST had another function, it was not appropriate to reuse it for a very different type of thing. The counter-argument was that there were various HTTP stacks and proxies that didn't handle methods other than the built-in ones and by using a different method we would limit the reach of the protocol. The compromise was the SOAPAction header which a proxy could use to tell the difference between normal web-browser form submission and SOAP traffic, and differenetiate between different types of SOAP requests. In theory this would give the administrators some needed control of their firewalls.

Cue forward a few years, and it was probably a mistake. I haven't heard of anyone using it for anything useful and it just creates extra complexity and another thing to get wrong trying to interoperate between different implementations.

One last note- the Internet community has a long history of slapping the "Simple" term on things more as wishful thinking than reality.

November 10, 2006

Technology- Paged SQL Queries

The last two times I asked a question on here the result was so succesful I figure I may as well try it again.

One of the most common scenarios for querying a database is a paged result, either in a rich-client listbox scenario, or in a web-page where it shows you page x of Y. MySql has this cool syntax where you can do something like:

SELECT * from xxx LIMIT 500,10

Which means give me lines 500-509 of the resultset I'm asking for. So if I'm displaying a page with 10 entries on each page and want to show page #51, I just do the above.

As far as I can tell Microsoft SQL Server has no equivalent syntax. You can do something similar to this with a cursor, but as far as I can tell its complicated to do (at least I haven't seen any easy boilerplate that I can use everywhere). Plus there are all these different kinds of cursors and its hard to understand the performance trade-offs of each.

Now to be fair, I don't know the real performance of the MySql implementation. Presumably when you say LIMIT 500,10 the database is calculating the first 510 lines of the result set and only returning 10. But the easy way with SQL server involves returning all 510 lines and then throwing away the first 500, which can't be better. Plus in theory given the knowledge you want that 51st page, MySql could be doing some cool optimizations to improve performance.

So- anyone with advice on the best way to do this with Microsoft SQL Server? Write please... Thanks!

November 06, 2006

Politics- HBO Special Hacking the Vote is online

The HBO special "Hacking the Vote" is online now on Google video. There are few things more important to our democracy than the basic fairness of the elections- that every vote gets counted and that every citizen is given a fair opportunity to cast the ballot that they want to cast.

Related to this I wanted to raise another issue. Increasingly people are switching to mail-in ballots and in Seattle this year the ballot is so thick that it requires two stamps. Granted, people have the opportunity to go vote in person without paying anything, but given how much we save with the mail-in-ballots, shouldn't the state be paying for the postage? That would also reduce the opportunities for votes to be lost due to mailing errors (although I do understand that the postal service is going to deliver ballots even if they don't have enough postage).

November 03, 2006

Technology- The Web is Awesome!

I just wanted to take a moment to reflect on how cool the web is. Yesterday I posted about the strange behavior I've seen on my laptop. This morning Eli wrote to point out that the symptoms appeared to be a disk-drive where DMA wasn't working. He included a link to a Microsoft article which shows how to tell if DMA is working correctly. Sure enough my interface was configured to try to use DMA but for some reason it was in PIO (non-DMA) mode. Having determined the cause of the problem it wasn't too hard to find some more detailed instructions on how to fix it. I made deleted a few registry keys to force the computer to redetect DMA mode, rebooted, and its now working perfectly playing glitchless audio and video and overall performing much much much better.

Eli also included a link to his blog Shouting Distance which is mostly focued on debugging. It seems like a great resource for some of these sticky issues I've discussed in the past few posts.

All in all I wish I'd posted about this much sooner- I've been suffering with this for months and now the problem is not only solved but its documented (somewhat) to hopefully help the next person who encounters a similar problem. How cool is that?

November 02, 2006

Technology- Laptop Driver Problems

In my last post I complained about debugging JavaScript in IE. I was totally wrong. Eric pointed me to a couple of sites and since then I found the "advanced options" to turn on debugger support. I feel pretty clueless to have been missing those for so long. There is also an IE "DevToolBar" that is a great help for inspecting the DOM, etc.

In the meantime I thought I'd complain about my laptop. I've got a Dell Inspiron E1505. I've mentioned it a few times before and I'm happy to report that the blue-screens are much less frequent. I do still get some sometimes- the main two causes seem to be wireless (which I now leave disabled whenever possible which pretty much sucks) and when I connect to the laptop with remote access which seems to bluescreen the video driver sometimes (and I've updated to the latest).

The other persistant problem is there appears to be something wrong with the drivers for the hard-disk. Whenever my hard-disk is active the system becomes very unresponsive. I really can't play music or video, at least locally without it glitching enough to make it miserable. When I watch with the Task Manager I see the kernel times (the red line you can turn on) appear very high anytime its busy using the disk (most of the CPU is busy in kernel, not user tasks). This seems wrong but I'm a bit at a loss about what to do about it. I've tried all the latest drivers off the Dell site, but if anyone has any suggestions, please email me.

September 29, 2006

Technology- CalendarData.com supports Live Clipboard

One of the features I've been messing with for a few weeks now is support for the Microsoft introduced Live Clipboard. Live Clipboard brings copy and paste to the web, enabling you to copy and paste inside and between applications that support it. I've been messing with this for awhile but I'll admit that being quoted mentioning it in an article in Wired Magazine was extra motivation to actually get it online today.

To the best of my knowledge, CalendarData.com is the first production site to support Live Clipboard. Doing some searches I haven't found any other sites implementing it other than Ray Ozzie's example pages. I noticed a grip over on mini observing that little progress has been made since it was introduced back in April. This kind of whining is percisely why traditionally companies like Microsoft hold these things back until they are all ready to go. The thought process goes "until our entire product line is ready to support this and we have 100 developers lined up with us with press releases, let's keep it under our hats". That approach IS appropriate for some things, but I'm a big fan of "get it out in the community and see where it goes from there" instead.

Today's implementation is just a start- I've got lots of ideas about how to extend this further including adding some new clipboard widgets to collect clippings, and some new formats to represent RSS feeds, calendars, and links to other objects (for example a link to a photo). Another big issue we need to tackle is some UI evolution- to be honest, the little clipping icons scattered all over the page look somewhat cluttered once you have a user interface with multiple elements. It might make sense to hide them somewhat until you move the mouse over their associated object, etc.

Another observation from implementing this stuff- coding and debugging JavaScript in web pages pretty much sucks. Its much easier in Firefox than IE since the Firefox JavaScript console, DOM Inspector and Web Developer toolbar are a great help. I assume there are similar things for IE but I'm not aware of them, so shoot me an email if you have suggestions. Still, as I'm starting to use some JavaScript libraries for Live Clipboard and the Prototype AJAX library, I often find myself chasing small syntax errors for unnaturally long time-spans.

September 18, 2006

Politics- Rolling Stone Article on 2004 Election

I mostly try to avoid addressing political issues here and usually find conspiracy theories uninteresting outside of episodes of 24. However this article by Robert F. Kennedy Jr. in Rolling Stone raises some important questions on what happened during the 2004 election. The biggest scandal here is how little attention any of the incidents outlined in this article have gotten from the media so far. Given the direction that the media has taken lately Im curious how much this will be picked up by the key news outlets- The NY Times, the Washington Post, CNN, NPR, etc. Furthermore as far as I can tell, its two years later, another set of elections are coming up and so far nothing at all has changed to prevent any of this stuff from happening again..

September 07, 2006

Technology- New Judy's Book Features

The stuff that I've been working on at Judy's Book is finally live in production and open to the public. Go check out Judy's Book Deals and the Judy's Book Dealbar.

Judy's Book Deals responds to one of the key things that have been missing from Judy's Book so far. Judy's book so far is a great place to share tips about a great place to eat or service professionals, but many people have been asking for a place to share the latest great deals. There are several other existing deal sites but usually they are just steering you towards whatever will make the site owner the most money, not necessarily the best deal. With our site we take the approach that the community of users rank which deals are actually best for you.

The dealbar is the thing I've been working on myself most recently and it is a bit more experimental. As you surf around the Internet, it knows about the best deals as ranked on the Judy's Book Deals site and will let you know about deals relevant to the site you are currently on. The cool thing is you might be on some site about to buy something and it can let you know about a special configuration that has a better discount or a coupon code. I know there have been several times I've gone to buy something and had to cross-check several web-sites to make sure I'm getting the best price available. Of course this relies on great deals existing on the main site...

In any case its been a fun and interesting experience working on this new direction for the past few months. Its pretty clear that its all going to need some tweaking as we go along so we still have our work cut out for us.

September 04, 2006

Technology- Free Wifi at Highway Rest Areas in WA State

Two big thumbs up to the Washington State Department of Transportation for providing free wi-fi at highway rest stops. Driving back from Canada today I'll admit that I didn't use the service, but it makes tons of sense.

I bet the truckers (or for that matter anyone who works on the road) really love it. Plus anything to help encourage people to take a break on long trips is probably a great thing. I almost needed this on my way to Canada. I needed to send a file to some people I was working with and I'd forgotten the cable I need to use my phone as an Internet connection for my laptop. I managed to use blue-tooth to send the file to the phone and email it from there, but that was pretty complicated to pull off, so its nice to know that I have other options now.

September 02, 2006

Sports- Dahon Folding Bike

When I got my airplane I went shopping for a folding bike that could easily fit in the airplane for trips. I did not have a normal bike at the time and I was hoping I could get something that was the best of both worlds- a real mountain bike that could fold in half, easily fit in the car's trunk or an airplane and then go up a real trail. The Dahon Zero-G seemed to fit the bill so I got one. I've had it now for a year and a half but today is the first time I took it out for anything beyond the roads and paved paths of Seattle.

I should be clear that when it comes to real mountain biking I'm a big wimp. I enjoy the easy trails but I'm not so excited about feeling like I'm sliding down something out of control or near a precipice. Today we were up at Whistler and they have an inexpensive rate for the bunny hill. I took the bike up for a few runs and overall I can say it did a great job on those runs. One thing I did learn is that its really important to tighten everything before doing real off-road riding. On my last run a bolt fell out of my rear brake and it failed which was a bit exciting to put it mildly.

Overall it's a pretty great bike and it wasn't its fault that I didn't check the screws in the brakes. Probably not good enough for the super-hard-core-black-run type person, but good enough for a wimp like me who enjoys a nice run on the mountain.

The visit to Whistler put me in the mood to post a calendar of Whistler / Blackcomb events for the coming year.

August 31, 2006

Technology- Toolbars and Browser Security

As part of a project that I'm working on I've been building some toolbars recently. The experiece of building toolbars for IE and Firefox is pretty radically different. This tutorial over on Born Geek was very helpful and I got some good results in just a couple of days. Overall debugging was moderately easy since I could install the Firefox developer tools and use the JavaScript console. I did hit one intermittent crash that was almost a ship-stopper, and did I mention that the documentation for this stuff is terrible? I dont mean to complain- I know its all free, but if Open Source stuff wants to compete with the alternatives, they need to provide some great reference materials for developers. When trying to use XUL the behavior of the 6 different kinds of buttons and various layout things seemed pretty random, and it was pretty much trial and error getting it to work right.

We werent even going to do an IE toolbar initially because I figured it would be a couple extra weeks of work to get all the COM and C++ stuff right. I went searching for some sample-code and came across ToolbarStudio on http://besttoolbars.net/. To be honest my first reaction was that this was pretty damn weird. A full IDE for creating toolbars? With the ability to do all kinds of stuff with no coding (which was almost a negative for me)? For $75? Is there really that big a community of people out there making toolbars, and who really installs that many toolbars anyway?

It turns out that ToolbarStudio is pretty cool if a bit clunky. The definition of the toolbar is all XML, HTML and JavaScript. The environment makes you edit everything packaged in a CAB file which is a bit strange for normal development process / builds / source control. We have also hit a few bugs but so far they have been very responsive at answering questions although the response time is always overnight since their developers are in Russia. The biggest problems are that debugging my JavaScript in this environment can be a nightmare. There isnt the same notion of a console to output debug messages (that I know of), exceptions tend to get silently dropped (things just dont work right), and the process of installing, testing and uninstalling the toolbar can be tedious (also true for the Firefox environment).

One other note- so far Ive been unsuccessful at building a signed Firefox toolbar. Given how (one might say) arrogant the Firefox folks tend to be about their security being better than IE, this is pretty surprising to me. Most Firefox extensions that Ive seen arent signed and Firefox barely gives you better UI for being signed. To sign an extension you use some Netscape 4 era tools and need to do some bizarre packaging involving putting magic files into a ZIP in just the right order. To cap it off, if you dont get it right the package wont install, but the error messages wont really tell you what is wrong. Its a nightmare. Ive heard some rumors that this is getting better, but if the Firefox are really serious about security (as opposed to serious about pretending to have security) they will make signed extensions both a real advantage for developers, as well as easy for everyone to do.

Of course its possible that Im just missing the key instructions- Google doesnt always find everything easily. If so Ill be happy to get pointers to the magic solution and post my apologies up here.

August 30, 2006

Technology- Developer Info on CalendarData.com

Last night I updated CalendarData.com with a page of developer information. My approach with the site is to take a totally "open" approach- support importing and exporting all the data through standard formats. These formats include iCAL (ICS), RSS + xCal, and comma separated values often used to publish calendars for Outlook. The documentation is only partial at the moment but I'm going to try to update it frequently.

In addition you can use an IFRAME to embed a calendar in your own web-site. Im also exploring other approaches to embedding custom calendars including reference to JavaScript files, AJAX, and other similar approaches.

This weekend, the Bumbershoot festival is happening in Seattle- I've posted a schedule of the main Bumbershoot music events online here.

August 23, 2006

Games- World of Warcraft

I don't have a lot of time for games, but I do have to admit that I've been sucked into World of Warcraft a bit. Compared to some previous massive-multiplayer games its pretty friendly towards people who only play a few hours a week. Since I started my friend Chris has lapped me- I was halfway along advancing a character and he created a new one from scratch and got it to 60 weeks before me.

The game has a current level limit- 60. My goal the past couple of months has been to get to 60 before the new expansion came out, and sure enough last night I finally hit that goal! The expansion looks pretty cool although selling an extra $40 box seems very old-school for a game that delivers new bits to me every month over the internet. I assume they do this for shelf space or something during the holiday season, but it still seems a wacky thing to do with their existing userbase (who are so far generating some of the biggest annuity revenue of any game ever).

August 22, 2006

Technology- More laptop issues

After my last write-up on laptop issues I was still experiencing blue-screens, although fewer. A bit more experimentation suggested it was probably the audio driver and I finally noticed that Dell had an updated driver. The new audio driver appears to have fixed the blue screens for now.

Of course then today I do a bone-headed move and spill coffee on my keyboard. I run to get paper towels, pull the power and disassemble the thing as much as possible. 30 minutes later I have the laptop back together but the keys on the left side of the keyboard aren't working. This is pretty frustrating since I did clean up the liquid pretty quickly and I actually took the keys off and cleaned out any liquid and the contacts themselves appear to be under rubber so I don't get how they got as broken as they are.

Lucky for me I forked over an extra $110 for the complete-care coverage from Dell. This covers you pretty much no matter what, even if you drop your laptop or spill liquids on it. For Dell this is probably a great upsell, and for me for a laptop its a great peace-of-mind purchase. So I connected to the Dell tech-support chat and apparently a replacement keyboard is on its way.

I'm a bit skeptical that it is all going to work out so nicely so stay tuned. All in all the online chat thing was way nicer for me than a phone call and I didn't get any run-around.

August 11, 2006

Technology- Fixed my laptop

A couple of weeks ago my fairly new (3 months old) Dell laptop started blue-screening. I suppose the first sad thing is that it took my awhile to bother trying to fix it. I tried disabling drivers, making sure my memory cards were secure. Yesterday I started running the Microsoft memory test tool and the Dell diagnostics and everything was coming up great. Part of the issue is that the kernel driver that it was reporting the crashes in turns out to not be the real source of the problem.

After a few searches I tracked down the issue to a driver called tfsnifs.sys. It turns out that the Sonic DVD software that Dell includes with the laptop somehow turned on its "DLA" feature which does some drive-letter mapping for I think writable CD and DVDs. I'm not sure how this got turned on but I probably accidentally launched it trying to burn an ISO or something.

In any case the software appears to be a piece of crap. I really wish Dell did a better job making sure the stuff they shipped on their PCs was higher quality. The sad truth is that they are more interested in selling you the upgrade to whatever package is installed. Still, this explains the huge tech support problems they have been experiencing. Between poorly-written anti-virus, firewall, and three media center packages and all trying to fight for the system resources its amazing that it runs as well as it does.

In any case, my experience is stay away from the Sonic stuff- it appears to suck, and I did check and there is no upgrade available at the moment. My laptop is happy now that I've disabled it. I still need to figure out why media-playback isn't really working right anymore. Any medium disk access tends to make it stutter which is just not supposed to happen.

August 10, 2006

Sports- Soccer Snobs

Last night Kat, Fen and I went to see an exhibition match between DC United and Real Madrid at Qwest Field. It was packed- the reports are that 60,000 people showed up at a soccer game which is pretty amazing for the United States.

Overall the game was good and Fen even seemed to enjoy it. I do have two critiques. The first is that they were really poor at providing information on the players. Here we had two out-of-town teams playing. There was no program for sale (that I saw). Even a photocopied piece of paper listing the players names and #s would have been great. Or some more regular use of the score-board displays to give us information (rather than just showing ads all game long). Our seats were way up high which was great for watching the plays develop but to be honest I had no idea who was down there on the field.

The other thing I noticed were the soccer snobs. There were some people sitting near us derisively talking about other attendees who didnt know everything there was to know about each player or the sport in general. Ive seen this same "more obscure than you" thing in many of my interest areas (although thankfully I havent seen it play out much among my friends at all). You meet the wine people who make fun of you if you admit to liking California Cabernets or wines from Bordeaux- if you cant appreciate (and know all the details about) some obscure region in Spain you are clearly not a true wine aficionado. Alternative Music gets the same thing- to quote an Art Brut song My Little Brother- "He no longer listens to A-sides. He made me a tape of bootlegs and B-sides."

Sure I love a good soccer match, a nice obscure wine and a cool B-side, but dont give me attitude for liking Song 2 or a bottle of Shafer Cabernet Sauvignon. I hope I've never come off as that snob myself and apologize if it ever seemed that way.

On the topic of Soccer, here is a schedule for the Seattle Sounders- we may try to catch a game or two in the remainder of the season. US Music Festival schedule.

August 08, 2006

Technology- NetGear WNR854T 802.11 draftN router with Gigabit Ethernet

I'm giving up on my Belkin pre-N router. I have to reset the stupid thing 2-3 times per day. I suspect there is a bug in some firewall or parental control feature where too much HTTP traffic (uploads from a backup service) cause it to lock up and not route HTTP anymore. The strange thing is that it keeps routing other protocols just fine.

In any case, I've ordered the NetGear WNR854T from NewEgg for $139 with free shipping. I'm fearing that I'm going to regret this purchase- its the one with the Marvell chipset instead of the Broadcom stuff, but on the other hand its wired ports have gigabit ethernet. All of the rest of my wired stuff is gigabit so I just couldn't bring myself to buy more slower equipment especially since I do lots of high-bandwidth video, etc within the house. For many people faster than 100mbit doesn't matter at all since they just use the network to talk to the Internet, but i've got several TB of storage and like to be able to access it at close to local-disk speeds.

August 04, 2006

Technology- ComputerWorld on Building AJAX Web Pages

The last week my blog writing has gotten stuck by the combined forces of having too many things to write about and being pretty busy. The task of writing up my visit to Yellowstone (for a couple of hours), flight to Chicago, great dinner, weekend at the Pitchfork music festival and all that has been too daunting to tackle.

In the meantime ComputerWorld has an article "So how do you code an AJAX Web page?". This article may be just fine but it turned clueless pretty quickly by saying "Beyond the XMLHTTP Request object, which has been around for several years as a solution looking for a problem".

This is just completely opposite the real history of XMLHTTP Request. Part of the what made this whole thing so cool was that it was an object fined tuned to solve a really specific problem- creating really dynamic data centric web pages. In other words, what we call Web 2.0 or AJAX nowadays although we were not slick enough to coin any cool terms for it. Sure, there are plenty of things that could have been done better with it, but its one of the few examples of any web technology developed post-1996 that was actually developed by an application team just filling in a missing hole in the platform.

The calendar feed of the day is the US Music Festival schedule.

July 26, 2006

Technology- 802.11n wireless progress

More 802.11n draft technology is coming on the market and the router market continues to be super confusing. The big announcement this week is that Dell will shortly have an internal adapter for their laptops that uses the Broadcom chipset. This suggests to me that if I'm going to get a new router (and I'm getting really unhappy with my Belkin Pre-N) I probably want one of the the Broadcom ones.

The other interesting new development is that Netgear finally introduced a router that has the high-end networking (N) and gigabit Ethernet ports. Since I use gigabit Ethernet at home its somewhat painful for me to be hooking in a 100mbit router since I hang a few devices off the router's wired ports. The tricky part is that Netgear has two versions of their 802-11N routers- one use the Broadcom chipset and one uses the Marvell chipset. The bad news is the gigabit version is only available with the Marvell chipset and eWeek has reported that it has more compatibility issues talking to other devices than the other chipsets.

All this is made much worse by my experience with the quality of router firmware. It tends to just be terrible, and the bleeding edge models are even worse- I've seen horror stories of routers that show up and have such buggy firmware they barely work at all. It really feels like some event will have to happen to shake up the home router market since in its current form it really isn't serving customers very well. It sure is nice that the prices are so low, but I'd pay an extra $100 easily for a router that actually works 100%.

Tip- you can tell what chipset the NetGear routers have by the last letter of the model name. The NetGear WNR834B is a Broadcom router, the WNR834M and WNR854T are Marvell.

July 25, 2006

Technology- Real Time Log Reporting

I admit that I like to watch my server logs in real-time. I know its a sickness, and Im not really trying to do anything to get over it. When I built a web-server back in 1996 when there was still a market for web-servers, our killer feature in Boulevard was that it had a bunch of cool graphs so you could sit at the console like a vulture and watch the blips come in as users accessed your site.

Watching a webserver circa 1996

Now that Im running several web-sites again I of course wanted to have something similar again. Partly it is related to my philosophy of build, get in front of real users, and iterate. Having a really tight connection to whats happening, what activity is popular, what gets lift is important. But I think it also goes beyond the practical into the psychology of building software live on the internet. I tweak the UI and watch for the difference my changes may make. For example I made some changes last week and there was a pretty noticeable difference in how many people found their way past the find feeds UI to an actual calendar

I've built a little WinForms app that downloads updates from the server logs every 5 minutes, scans through the data and does various custom analysis including popular pages (broken down to specific parts of the site), bot analysis, and whatever else strikes my fancy. Its really easy to update and add new stuff, especially since its pretty brute-force on the actual data analysis side.

Watching a webserver circa 2006

Calendar Feed for the day- Computer Industry Conferences including the upcoming Apple WWDC in two weeks. I'm sure I'm missing many interesting conferences- again this calendar is in wiki mode so any registered user can add new events to it.

July 23, 2006

Hiking- Biking the Iron Horse trail

Kat has been trying to get me to go tackle the Iron Horse trail for some time now. Sunday we decided to go for it. First we went to the bike store to get some good bike-lamps and I also got some gloves and some padded bike pants. We headed up the pass and left my car at the end of the trail and took Kat's up to the beginning.

The Iron Horse trail used to be a railroad track through the pass and has been converted into a hiking and biking trail. Because it used to be for trains the grade is pretty even the whole way through- its the easiest way to go through the mountains without lots of up and down. The direction we went is overall slightly downhill- enough to keep a nice pace while still being a nice workout. The trail starts off with an almost 3 mile tunnel. The weather in the area has been close to 100F, but the tunnel was probably around 50 degrees, cooled by the melting snow run-off. One thing that surprised me a bit about the tunnel is that it was completely straight- you could see this little speck of light at the other end over two miles away.

Mostly the path was very nice for biking- dirt and some gravel. There were a couple of bridge overpasses that were much thicker loose gravel and those were fairly treacherous. There are also several side-hikes available along the way that are worth checking out sometime in the future.

July 21, 2006

Hiking- Rachel Lake

Today Eric and I did the hike to Rachel Lake. The Rachel Lake trail is about 60 miles up I-90. The hike isn't that long but the last mile is pretty steep. It starts off with a little up bit and then a nice long fairly flat part. The last part is a good work-out and you are rewarded at the end with one of the most beautiful lakes in the Cascade Mountains. There were a few people at the lake even on a weekday, but next time I'm tempted to bring a float for the lake like some of the other hikers did.

Rachel Lake

Floating on Rachel Lake

July 20, 2006

Technology- Building CalendarData

In building CalendarData.com the way I have, I'm doing a few wacky things. In some ways its an experiment about how the progress of technology changes the way that someone can develop and launch a business. First of all, I'm not following the old model of "develop an app for a year (or 6 years) in secret until its all perfect and then launch it to an amazed public." With the new site, everything is pretty much out in the open. I've been building it for a couple months without announcing it, but the site has actually been up and in public for a bit. I've also been rolling out changes to the site a few times a week, sometimes more- so far today the site has already had two updates, first to enable wiki-like functionality where you can mark a calendar as "open" so anyone can add and edit events, and the second update to make some UI improvements, get rid of unnecessary clutter, etc.

As I do this, to be honest the site so far looks really bad. Its still too cluttered, the usability is poor, it needs lots of design help, and more. However there were several factors that prodded me towards putting it up even in such an unbaked form. First of all, lots of the functionality is already there, and I find it useful and hope some others might too. Second, it can take a long time for the search engines to find you and index you and its probably a good idea to get that process going as quickly as possible. A spider isn't going to care about the UI, so there is no reason to hold up getting that going. Finally I'm already learning a lot from the visitors that arrive at the site. I could have spent a few more months designing the perfect UI, and would have been totally wrong about how real users would be interested in the site. Now, I need to be careful to not assume that the trickle of current visitors are representative of the (I hope) future mass audience, but tuning a UI in the presence of real data is a dramatically different thing from doing it in the abstract.

So that's how it goes for now- I've turned on the wiki features, so in addition to importing a feed from some existing service you can create brand-new calendars, and/or go add events to existing ones. In the next couple of days I'll add the ability to put descriptions and links into events, be notified when changes happen to calendars you have edited, and display stats on how much you have contributed to the community. The next goal is to get a set of people who have actually come to the site and contributed in some way. Stay tuned as we all see how that works out...

Calendar Feed for the day- The Seattle Art Events Calendar. Please feel free to add your own Seattle-area arts related events to this calendar.

July 16, 2006

Technology- New web site, CalendarData.com

Today I put online another update of one of the sites I've been developing, CalendarData.com. CalendarData is an experiment with several modern web-phenomena. It is an aggregation engine for feeds of Calendar data. It is a wiki for creating easy-to-find guides for events related to various special interests. It also features a combination of client-side engines and web-based UI. The whole thing is still very rough but now that I've added the ability to add new calendars and events right in the site I thought I'd mention it here.

I've been thinking a bit also about my approach to building these new sites. There are plenty of areas to pursue, but for now I've decided to focus on areas that scratch an itch for myself or my friends. This doesn't mean that I won't try to make them as general as possible for a broad audience, but I figure if I'm building something that I would use myself, the chance is bigger that it will be useful for at least someone.

There are several other things also in development but those will need to wait until later...

July 12, 2006

Music- Art Brut

Art Brut appears to be coming back to the US this October- I just got tickets for the Seattle show. Hopefully I'm going to see them in Chicago in two weeks also. I've been inspired to update the tag-line of this blog to "Modern art makes me want to rock out" which is a pretty good way to sum up both what is so great about the band as well as my more general attitude towards art.

July 11, 2006

Hiking- Washinton State, Mason Lake

Mason Lake is a relatively easy to reach hike just off Interstate 90 45 miles east of Seattle. Despite being fairly close you are pretty much in the middle of the cascades and enter the Alpine Lakes Wilderness Area during the hike.

Eric and I drove up there- we had an older hiking guide that warned that the trail was in terrible condition but it seemed fun anyway. It turns out the trail has been totally re-done since the guide was published and is in great shape. The hike was pretty steep but a good workout and the only glitch was that my heels started getting blisters- I think the climbing shoes had weakened them a bit over the weekend.

At the end of the trail (for us- the trail actually continues on much further) was beautiful Lake Mason and we stopped for a quick lunch. Round-trip the hike took us a bit more than three hours but with the elevation gain I was pretty tired & sore afterwards.

July 08, 2006

Hiking- Glacier National Park, Highline Trail

Yesterday Kat and I flew out to Glacier National Park with Michael and Anh in Michael's Saratoga. It was pretty amazing how much gear we packed in his airplane. The flight was beautiful; we landed and had a nice BBQ dinner.

Today we got up very early (at least by my standards) and headed up to Logan Pass which is on the continental divide. From there we hiked about 3-4 miles on the Highline Trail to "haystack" little peak that Michael had scoped out for climbing. This was my first time really climbing with ropes and all outside. I've done it many times in the gym but outside is a very different thing. It looked like the climb was going to be pretty easy though which is just how I like it.

The first pitch was a breeze and was good confidence building. After that though the third pitch had a really tricky first bit. I was pretty wiped out when I got to the top. After everyone got to the top of that we were trying to figure out how far it was to the top- we could see what looked like an easy bit, but it wasn't clear if that was the top or whether there were going to be some other tricky spots. Part of the appeal of this climb was that the other side was a very gentle grassy slope. So we decided to see if we could traverse out to find an easier way up to the top.

I suspect this wasn't a great idea. We roped for the traverses but they were still pretty difficult and slow and things weren't getting any better. Eventually we could see what looked like the grassy slope close ahead, but there were also two ravines in the way and those can be really difficult to cross.

So we decided to down-climb. I found the belay-down much scarier that in the gym at first. At the gym you just get to the top of the wall and you already have your butt hanging over nothing. I finally managed to get going and we all got down but it took a while. We were all pretty tired and eager to get back to the car and our camp-site.

For dinner we were really roughing it- since we were car-camping we had huge steaks, asparagus, baked potatoes, butter, a couple nice bottles of wine and to top of off chocolate fondue. Its tough but someone has to do it.

July 06, 2006

Technology- Google Checkout

Last week Google introduced their new Checkout service for online payments. I was pretty excited to investigate since an easy way to accept payments without having to fork over 50% to someone else would be a real bonus for those of us trying to build new web-services, etc. The site was easy to sign-up for and taking advantage of the $10-off on any $20 purchase from various vendors was a pretty good deal to get me to try it out. The API stuff looks pretty good too.

The one catch is that their terms of service currently only support transactions that involve "tangible" goods. So selling a digital service is not allowed for now. They seem to imply they are looking at supporting these digital services eventually and I find it ironic that they don't support the very kind of transaction that they have built their business on so far. I don't for a second think that its because they don't want people competing with them- Google has never seemed like the organization that would take a short-signed position like that rather than eagerly get everyone selling web-services across the web to be tied into the Google infrastructure. Stay tuned...

July 04, 2006

Sports- Germany vs. Italy

I fear that I'm going to make some enemies with this post. But if you can't just lay it out in a blog, what's the point? Today I set the Media Center PC to record the Germany vs. Italy game. I also set to record the next two programs since the games often go over the "allotted" 120 minutes in the ESPN schedule, but ESPN does keep showing the whole thing. Note- this is not a slam on ESPN at all- while I suppose you could complain about some of the commentary, overall the World Cup coverage in the US has improved 10000% in the past few years and watching not-interrupted by commercials games all the way through is great. When I went to watch it I discovered that the Media Center had screwed up and only recorded 12 minutes of the main game. So I skipped forward to the next "show" and sure enough the game was 0-0 in overtime! Thank you Media Center for saving me from 90 minutes of crappy soccer.

At which point I need to remind folks that this was a game with Germany playing. Look, if you want to convince a typical American that their stereotypes about soccer are wrong, show them any game with the Brazilian team. Even losing (rare) they do it with big smiles, stylish moves, and keep playing hard on the attack the whole time. If you want to convince that same American that their stereotypes are 100% right, show them a game with the Germans. Let's just say I wasn't shocked to see a 0-0 tie although a 1-0 victory with 75 minutes of defensive boring play would have been more typical.

Anyway, the overtime was very cool, the Italians scored a beautiful goal with 1 minute left and then followed it up with another beautiful goal catching most of the German team on the attack. That 1 minute would have been worth sitting through the preceding 119 minutes (although thankfully my Media Center had saved me from 80 of those minutes). Now the final game next Sunday becomes something I'm really looking forward to, especially if the French win tomorrow.

July 01, 2006

Technology- Network Magic 3.1

I'd like to congradulate the Pure Networks (disclaimer- I'm a shareholder) folks for shipping Network Magic 3.1. The new release appears to focus on just fixing a bunch of things and increasing reliability. This is a great direction- with software like this its all about saving time so its critical that it works 100% every time.

If anyone is interested they are having a $15/off sale for the 4th of July weekend. Click here to check it out.

June 29, 2006

Music- Art Brut Top Of the Pops!

All that the Art Brut folks have ever wanted is to appear on Top of the Pops. They tend to mention this in just about every song. With the sad news that Top of the Pops is going away shortly a petition drive has launched to get them an appearance before its too late.

Won't you help? For the children...

Art Brut at Coachella 2006 Top Of the Pops!

June 28, 2006

Misc- Two posts on LancairTalk.com

I just wanted to call out two posts I made this past week over on LancairTalk.com, my airplane blog. The first is about our rafting trip this past weekend where we put the raft into the airplane and went down to Hood River to raft the White Salmon. The second is about getting to "fly" a 767 in the Boeing full-motion simulator.

June 22, 2006

Technology- History of RSS

Yesterday I was browsing some stuff and came across a couple of sites that describe the history of RSS. I'm sure these are accurate as far as they go, yet they are still missing quite a bit of the de