Friday, May 12, 2006

During the last PDC, I drooled over the announcements regarding C# 3 and LINQ.  Now we are one step closer. Yesterday, they released a new preview of those features that bind against the current version of the framework.

Skeptical language junkies* should take a gander at Don Box's latest post that attempts to explain what the big deal is. I agree with some of the people saying that the syntax really gets in the way (and I feel that way even more after spending alot of time in Ruby lately).  They need to add a language feature that indicates whether you want the lambda or the expression, then you can fall back on type inference to keep the typing to a minimum.

Overall, I couldn't be more giddy about the way integrated query works, and being able to get your hands dirty with it now is really awesome.  We're already working with data in this way in our APIs at work, so I've been able to experiment with the language and library features directly with some of our data and it's an absolute dream.  They should not wait for the next version of the framework to give us a go-live license for this.

Now, this kind of thinking needs to be applied to the web stack and MS could have a compelling alternative to Rails.

* That is, language junkies who are skeptical, not junkies of skeptical languages.

posted on Friday, May 12, 2006 11:38:07 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Tuesday, May 09, 2006

I've updated my blog's tagline (at least temporarily) to celebrate.  Halo 3 was just officially announced.  Hop over to bungie.net and check out the trailer, or download it from the XBox Live marketplace.

I simply can't wait.  I'm going to pour all my energy into building a time machine so I can travel ahead to 2007.

posted on Tuesday, May 09, 2006 1:31:41 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Wednesday, May 03, 2006

I figured out how to draw historical track log data from my tracking app onto the Virtual Earth control.  It's a pretty early implementation, but it works really well.  I'm generating transparent PNG images on the fly and using them as the content of a well-placed pushpin. Here's a screenshot:

Don't be confused.  If you've played with the VE API, you may think I'm creating a pushpin for each datapoint.  I'm not. I'm creating one image and overlaying it on the map.

Once you figure out how to take the latitude/longitude to pixel translation to the server-side, it's fairly straightforward.  The hardest part about it is geting transparent PNG images to render properly in IE.  Hilariously, my workaround currently breaks the functionality in anything other than IE.  Just stupid.

Anyway, now I have to resolve a few little issues as well as "tile" my overlays much like the virtual earth image tiles.  That should fix some of my performance problems.

[UPDATE] OOPS! Something I changed last night broke the tracker position.  Not sure where the problem is, but rest assured that I AM at work today, and not still at home.

posted on Wednesday, May 03, 2006 8:05:29 PM (Pacific Standard Time, UTC-08:00)  #    Comments [2]
 Tuesday, May 02, 2006

I developed some spiffy new features last night for my GPS tracking app around MySQL's sweet spatial data extensions.  When I finished late last night, I was going to deploy the app to my hosting provider and discovered that they are currently running an older version of MySQL that does not include these features. Doh!

Anyway, I've gotten alot of cool ideas from friends for what I should do with the data.  I have in mind a service with a scope much broader than tracking my position.  More on that when I get some more of it working and get it on a real server.

posted on Tuesday, May 02, 2006 11:08:05 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Monday, May 01, 2006

I've been loving my new phone.  In an effort to fully exploit and justify my unlimited data plan, I've been dreaming up applications for it.  My latest one is something I've always wanted to do.

I hooked up a bluetooth GPS and capture my position.  Every 10 seconds or so, I send the logged data to a server.  I then have a spiffy Rails app set up to display my current location on a Virtual Earth map.  The page uses AJAX to poll the server every 10 seconds or so to update my position on the map.

I've got lots of ideas for how to mine and visualize the data, as well as provide nifty tools for my friends and family to track my location, as well as hooking the data up to my Flickr uploader (rewritten now in just about 20 lines of Ruby code) to automatically geo-tag my photos when I upload them.  I've got lots of cool things I plan to do with it while we're on vacation this summer.

I'll have live demos for the public available soon.  Some of my friends have been playing with it already as I debug it. For everyone else, here's a shot:

If you're a friend of mine and want to play with the live version, lemme know and I'll shoot you the temporary link.  Most of the time, it's pretty boring because I'm at work, but hold on to you hat when I start going somewhere.

posted on Monday, May 01, 2006 11:51:45 AM (Pacific Standard Time, UTC-08:00)  #    Comments [4]
 Friday, April 21, 2006

It's my buddy Peter's birthday today.  He's finally as old as me again.  Here he is holding Jenna for the first time, which I'm glad he got to do.

Happy Birthday, man.

posted on Friday, April 21, 2006 5:17:39 AM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Thursday, April 20, 2006

My old phone was giving me tons of trouble.  Dropping calls regardless of the signal strength and other really annoying things.  Unfortunately, we were part of the old AT&T Wireless group that never got completely absorbed by Cingular, so getting a new phone meant switching plans and providers and meant getting a new phone for Becky too.

Historically, I've done this kind of thing online, and invariably ended up with some problem that made me waste alot of time on the phone with customer support.  So, I did my research and just went to a Cingular store.  I walked out with my new phones.  I was very pleased with how it went.  I stuck with Cingular because most of my friends and family have Cingluar, which gives us unlimited talk time with them, so the plan minutes really don't mean anything.

I got a RAZR for Becky, and for the first time, I own a non-Motorola phone.  It's the Cingular 8125.  HTC makes it and Cingular rebrands it.  After having it a few days, it is the perfect phone for me.  It's a Microsoft Mobile "Smartphone".  It's basically a fancy PDA and a phone merged together.  I've owned countless PDAs in the past, and I finally had to promise myself that I wouldn't buy another one.  After a few months or so, I would stop using it because it was "one more thing" to carry.  And if I wasn't carrying it, I wasn't using it.

Smartphones are nothing new, but what's special about this one is the number of ways for it to connect.  It has:

  • GSM/GPRS/Edge - The mobile phone data protocols
  • Bluetooth
  • IR - I actually used this the other day
  • USB
  • The big one.... WiFi!

Also, in addition to the normal draw on the screen entry methods, It's got a slide out keyboard.  So far, I've used the stylus mostly, but I can see falling back to the keyboard to write stuff longer than a textbox.

It also has a 1.3MPixel digital camera that acts like a camera when it's in camera mode.  So, it'll be easy to snap shots or videos of Jenna when it would take to long to get out the "real" camera.

It also has a mini-SD slot so I can add capacity.  I'd rather it have compact flash since I already have some big sticks of it for my real camera, but it'll have to do.

The only thing it's missing is built-in GPS. However, there appears to be a big market for Bluetooth GPS units, which would be fantastic since often you need the receiver in a different place than the map program.

So, it's my phone, so I'll carry it by default, and it's a wicked PDA, so I'll use that.  And the best part is that cost-wise, I've paid more for cellphones without most of these features

posted on Thursday, April 20, 2006 12:04:53 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]