If you live in Boulder and work in Denver or vice versa and have a bike then you should consider riding to Denver. It’ll be good for you and the environment
Before I sold my software business to NewsGator (based in Denver), the thought of working in Denver never ever crossed my mind. As an avid cyclist and climber I was pretty content with living, working, and playing in Boulder. But the opportunity to work at the hottest software startup in Colorado was too enticing, so I did it!
One of the pacts I made to myself after accepting the offer was that I would not drive my car to Denver… ever. I think I drove under 10 times over two years. Not bad. BTW, here’s a little tip that will make this care free transition easier… sell your car or have a mechanical problem and don’t get it fixed. In my case, my brakes needed some major love so I intentionally left it alone. I simply started the car once a week and drove around the block cuz that seemed like a good thing to do. But having bad brakes prevented me from getting in a warm car on a zero degree January morning and forced me to hop on the bike instead.
So back to the Boulder/Denver ride…. I would ride one way depending on if I wanted to get up at 5:30 am and the weather. On a snowy day, it was better to ride after work; the roads would usually a bit better and at least there would be plenty of car tracks to ride in. Then I would ride the bus the other direction. This works great. Get a gym membership so you can shower and stretch and with a cross bike you can do this year round. The two years I rode (‘06 and ‘07) were heavy snow years but I still was able to pull it off.
Figuring out the route was kind of tricky. There was no good beta online, so my only friend was Google maps. Google’s satellite view was great for finding bike paths and stitching the ride together. It took several attempts to dial in the ride, and I have been asked a BUNCH about the ride deets. So here goes…

The route is great from Boulder to 100th and Wadsworth – then it is okay. The stretch on Wadsworth is loaded with cars and they go fast, but there is a good shoulder for most of it. Then there is a section of Lowell that is sketchy; there is no shoulder (but light traffic) and you may need to dodge a shopping cart or two (or a thief). One day I almost got trampled by an officer, with weapon drawn, chasing a dude across the road into an alley. It’s not a great neighborhood around here for sure, but other than that one run in I had no incidents. Just keep your head down and ride.
All in all, it is a good ride, a great way to stay in shape, and a way to keep the stress low by staying out of your car… the environment will be happy too.
You can see the details here.
Enjoy!
February 20th, 2009
I’ve been watching bits of the Tour of California this week… what a great race. And what Lance Armstrong is doing is pretty amazing. To be riding at that level after a few years away… and after battling cancer is inspiring.
The fact that Lance is doing this to promote Livestrong makes this even more special… the other day, a user asked me to add UI themes to Tiny Twitter, my mobile Twitter client. So, I thought I would do that and my first theme would fly the Livestrong colors.
Now, I don’t have a fraction of the visibility and reach that Lance has, but if some Tiny Twitter users like @Wirefly get to proudly show their support for Livestrong, then that is better than nothing.
So here is what the Tiny Twitter Livestrong theme looks like:

If you want to try Tiny Twitter Livestrong style on your mobile go to http://m.ttwt.at and when you run the application go into General Settings to set the Livestroing theme.
Enjoy!
February 19th, 2009
Today, I noticed that we (socialeyes) got a link to Microphone on Microsoft’s Facebook Page – it has over 1 million fans and is one of the top pages on Facebook. That’s good and cool so that’s awesome #1.
And, I also found what I have always been looking for on the same page
This is awesome #2 in a funny and bizarre awesome kind of way. At least I think so:

December 3rd, 2008
While I worked at NewsGator for two years (2006 to 2008), I rode my bike in to or out of Boulder/Denver about 90% of the time. Wow, that was a fun – great company, great people, and the ride was nice! Since then I have been asked countless times about the best bike route from Boulder to Denver. I’ve tried to describe the route, but honestly it’s a bit convoluted and hard to convey verbally.
I tried to plot the route by hand in Google maps using their tools but it was a big pain in the ass. Ever try doing something like that? It is brutal. Well, I have a meeting in Denver tomorrow, will ride my bike in, and got a bright idea this evening. Why not use my phone, which has GPS, and write an application to breadcrumb the route and then post the data to some mapping service.
There was one catch; I was only going to give myself one hour to do it. I could have probably found an app to do it for me, but that would be no fun. So I started coding it up at 9 pm tonight – beats watching tv or going to hapa w/ danny, heather, and micah, ok scratch that one maybe.
The first choice was the technology stack. I chose Microsoft for several reasons:
1. My phone is a WinMobile
2. I code all day in either Ruby or Java so change is good
3. The MSFT/.NET stack is actually quite excellent – if you think not, you either haven’t tried or are not open minded
4. MSFT gets little love in the Web 2.0 world, so I am here to spread some love 
So, my objective was simple. Record GPS data on my mobile, output to a .gpx file, and import into maps.live.com. The undertaking was a success, I think, and I finished at 9:42. It only took 42 minutes – sweet. The app is ready, the bike is ready… I will post the results tomorrow some time.
So, here is what I did:
1. Created a new Windows Mobile 6 project in Visual Studio 2005 – some code below and project files here
2. Added a label to give me some feedback and three menu options to the main form (Start, Stop, and Exit) – start to get the GPS going and stop to close the GPS and write out the data
3. Here is the first cool trick that made this oh so easy. Studio has a great tool for generating classes from XML schema definition files. So, I grabbed the schema file http://www.topografix.com/GPX/1/1/gpx.xsd and voila in 2 seconds had a fully blown out managed class based on the schema. How sweet is that? Here is what you do:
a. Using the Visual Studio 2005 Command Prompt I ran the following in my projects root directory – xsd gps.xsd /classes /language:cs /namespace:gpx
b. Added the class to my project – sweetness
4. Then added a reference to the GPS Intermediate Driver, managed wrapper. The Windows Mobile 5 SDK and the Windows MObile 6 SDK ship with sample code that provides a managed wrapper around that native GPS and can be found in C:\Program Files\Windows Mobile 6 SDK\Samples\Smartphone\CS\GPS or C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Samples\Cs\Gps (on my machine anyway)
5. Then wrote just a handful of lines of code to make it all work (see code below):
a. Read the GPS data on a reasonable interval – all the hard work is done in the managed assembly, thanks
b. Hydrate the GPX class instance (from step 3) – again all the hard work was done by the xsd tool all I did was stuff in some data
c. Stop reading GPS data and write out the gpx file – all the hard work done by xml serializer and the xsd tool. This is just too easy.
6. Upload the gpx file from your mobile to live.com – all the hard work is done by maps.live.com
a. http://maps.live.com – Collections | Open your collections | Import
b. That’s all!
So, in under an hour I was able to build a useful application (for me anyway)… this is clearly not indicative of my coding skills bit of the great tools (in this case the .NET framework and live.com) that we developers have at our disposal today.
Like I said, I’ll update when I gen a map tomorrow.
Happy coding.
——————->>>>>>>> CODE STUFF
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Xml.Serialization;
using Microsoft.WindowsMobile.Samples.Location;
namespace GPS
{
public partial class FrmGPS : Form
{
private EventHandler updateDeviceHandler;
private EventHandler updateDataHandler;
GpsDeviceState device = null;
GpsPosition position = null;
Gps gps = new Gps();
List waypoints = new List();
DateTime lastCapture = System.DateTime.MinValue;
int iterator = 0;
public FrmGPS()
{
InitializeComponent();
}
private void FrmGPS_Load(object sender, EventArgs e)
{
updateDataHandler = new EventHandler(UpdateData);
updateDeviceHandler = new EventHandler(UpdateDevice);
gps.DeviceStateChanged += new DeviceStateChangedEventHandler(gps_DeviceStateChanged);
gps.LocationChanged += new LocationChangedEventHandler(gps_LocationChanged);
}
private void mnuStartGPS_Click(object sender, EventArgs e)
{
try
{
if (!gps.Opened)
{
lblStatus.Text = string.Empty;
gps.Open();
}
}
catch (Exception ex)
{
Cursor.Current = Cursors.Default;
MessageBox.Show(ex.Message + “\r\n\r\nMake sure you have the GPS intermediate driver enabled.”,
“GPS Failed”,
MessageBoxButtons.OK,
MessageBoxIcon.Hand,
MessageBoxDefaultButton.Button1);
}
}
private void mnuStopGPS_Click(object sender, EventArgs e)
{
try
{
if (MessageBox.Show(“You sure you want to stop acquiring GPS data?”, “Stop”, MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
if (gps.Opened)
{
lblStatus.Text = “GPS device closed.”;
gps.Close();
}
XmlSerializer serializer = new XmlSerializer(typeof(gpx.wptType));
TextWriter writer = new StreamWriter(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), “kcbigring.gpx”));
gpx.gpxType data = new gpx.gpxType();
data.wpt = new gpx.wptType[waypoints.Count];
int i = 0;
foreach (gpx.wptType wp in waypoints)
{
data.wpt[i] = wp;
i++;
}
serializer.Serialize(writer, data);
writer.Close();
}
}
catch (Exception ex)
{
Cursor.Current = Cursors.Default;
MessageBox.Show(ex.Message,
“GPS Failed”,
MessageBoxButtons.OK,
MessageBoxIcon.Hand,
MessageBoxDefaultButton.Button1);
}
}
protected void gps_LocationChanged(object sender, LocationChangedEventArgs args)
{
position = args.Position;
// call the UpdateData method via the updateDataHandler so that we
// update the UI on the UI thread
Invoke(updateDataHandler);
}
void gps_DeviceStateChanged(object sender, DeviceStateChangedEventArgs args)
{
device = args.DeviceState;
Invoke(updateDeviceHandler);
}
void UpdateDevice(object sender, System.EventArgs args)
{
if (device != null)
{
lblStatus.Text = device.FriendlyName + ” acquiring signal…”;
}
}
void UpdateData(object sender, System.EventArgs args)
{
if (position != null)
{
if (position.LatitudeValid && position.LongitudeValid)
{
string tempLat = position.Latitude.ToString();
string tempLon = position.Longitude.ToString();
// Write some data?
TimeSpan span = DateTime.Now – lastCapture;
if (span.TotalSeconds > 4)
{
lblStatus.Text = iterator.ToString() + “: ” + tempLat + ” ” + tempLon;
lastCapture = DateTime.Now;
gpx.wptType wp = new gpx.wptType();
wp.lat = System.Convert.ToDecimal(tempLat);
wp.lon = System.Convert.ToDecimal(tempLon);
wp.time = System.DateTime.Now;
wp.name = iterator.ToString();
waypoints.Add(wp);
iterator++;
}
}
}
}
}
}
November 13th, 2008
Is blogging really dying? Is TechCrunch headed to the dead pool? That seems to be a vibe that has been circulating lately.
According to my feed reader, NewsGator’s awesome FeedDemon, I am certainly seeing what appears to be less activity and a bunch of repetition in my subscriptions. So, does that mean blogging is going into the can or is something else going on here?
I decided to do some investigation on my own to get to the bottom of this… I think one of the strongest indicators of blogging’s health is the amount of comments that are posted. So, I went Geraldo style and wrote a script (see script at bottom) to scrape the number of comments from the popular tech blog, TechCrunch, over the last three years.
As you can see from the chart below (piped the script output -> Excel), the number of comments on TC is steadily increasing. TechCrunch is definitely not headed underground; it is doing very well! Blogging is not dying… yippee, but it is most definitely changing.

So, what is going on? Well, I think blogging is just turning into another channel for the same type of media it was supposed to replace. Blogs are rolling up, trusted authorities are rising to the top, and the rest is just noise or repetition or gone bye bye. We already have too much going on in our lives, so it is only natural that this organic filtering would occur.
Here is the Ruby script if you want to see for yourself:
require ‘rubygems’
require ‘open-uri’
require ‘hpricot’
@url_base = “http://www.techcrunch.com/”
@response = ”
begin
File.open(“comments.txt”, “w”) do |file|
2008.downto(2005) do |year|
12.downto(1) do |month|
url = “#{@url_base}#{year}/#{month}”
begin
open(url) { |f|
@response = f.read
doc = Hpricot(@response)
(doc/”div/div/div[3]/ul/li/div”).each do |comment|
post = comment.innerHTML.split(‘,’)
file.write “#{post[0].strip},#{post[1].strip}\t#{post[2].split(” “)[0].strip.sub(“No”, “0″)}\r\n”
end
}
rescue Exception => e
print e, “\n”
end
end
end
end
rescue Exception => e
print e, “\n”
end
October 25th, 2008

The big brain over in the google mobile garage is chuckling right now as Apple amuses the crowd…
gps, 3G, 3rd party apps – voip, ebay, sling, etc… yadda yadda… my phone could do all that 2 years ago”, mutters the brain. “But yes, the iPhone is much prettier and shiny and I thank you from the bottom of my heart”, the brain goes on…
“Apple you are creating my market for me. That is really nice of you. Oh, and an extra special thank you for reducing the price, that just validates and solidifes my thinking (but I’ll keep that to myself). Thanks again and keep up the good work.” she continues.
-the google big mobile brain
Update: Google plans to roll out its Android devices to most major wireless networks by 2010/2011 including:
AT&T Wireless
Verizon Wireless
T-Mobile
Sprint
PS oh, and the brains over at RIM and MSFT are chuckling… or maybe they are shaking – not sure on that just yet
June 9th, 2008
My last day at NewsGator was one to remember… first, I couldn’t find my Blackberry so I went back home to find it. Of course, I couldn’t… I think one of my kiddos buried it somewhere. I’m still looking for it. Well, when I got back to the NewsGator office some of my buddies decided to muck w/ my laptop and my stuff. My display was rotated 180 degrees and my mouse was switched to leftie style. And my running shoes were stuffed full of trail mix (found that later). Awesome! Bad ass! That is what I will miss most about NewsGator – brilliant folks who also like to have fun. Just hilarious and very cool to get messed with right until the end. I couldn’t have done better myself.
So, I figure the screen rotation thing is a tablet kinda task and Nick Harris is a former tablet guy… busted. And I got Touchdown TD pegged for the shoe goodness. There are several others on the short list of suspects… awesome folks who I will miss big time!
On Friday evening I had a going away party at a really nice restaurant in downtown Denver. I was blown away with how everyone was so psyched about my new endeavor; the well wishes felt great! Greg and I joked that on Monday everyone would be calling me out as a dumb ass for leaving such a great place. Okay, there may be some truth to that
I also got to chat with Greg about early days of NewsGator (fund raising, office hunting, and other crazy startup stuff) – took away some solid advice.
What a great way to leave a great company!
May 15th, 2008
So, what do you do when a customer asks if you can create a Windows Mobile application that looks like an iPhone app? Well, if you’re smart, you’ll run. If you are not, like me, you’ll give it a go. Seriously though, creating a rich user experience with an iPhone-like look, feel, and interaction is hard if not impossible to attain on a Windows Mobile device today. The tools for implementing complicated business logic and algorithms on Windows Mobile devices are fantastic; want to interact with a camera or bar code scanner, stream live video, implement complex data structures or OO architecture, build an intricate ORM/relational database app, or do some other complex bit twiddling, that’s no problem on Windows Mobile. If you want to make a stunning Windows Mobile user experience – good luck. There’s no CSS treatments you can leverage or Ajax goodness… you gotta build your fancy shmancy controls from scratch and that’s no fun. When I created the NewsGator iPhone reader (m.newsgator.com) I had a great UI toolkit to work with (thanks to Joe Hewitt), but no such luck with Windows Mobile.
So, in this case I spent many painful (but oddly enjoyable) hours writing custom controls to build a fairly interesting and attractive RSS “widget” for Windows Mobile… there are some screen shots below. Yeh, I know it’s no iPhone app but it’s not bad…
As a side note, Wirefly recently published an article titled “iPhone vs. Android Phones – Comparison Chart“. You’ll be able to compare whether the keeper of your apps will be the iPhone or one of the latest Android devices.
After seeing some of the demos of Silverlight running on mobile devices (Windows AND Nokia – that’s right Nokia), I’m pretty psyched to see this technology flourish. It may be just what the doctor ordered. Flash Lite is another possibility but has been painfully slow to get adoption. Oh, there’s the iPhone SDK now too which is sure to enable some beautiful mobile apps. Good times!



April 3rd, 2008
Some day this will be me… just with longer socks

April 3rd, 2008
Do you have that entrepreneurial itch that you can’t shake? When I was coming out of undergraduate school, I knew I wanted to be an entrepreneur but I had no outlet to explore this desire. I took a job working in my field of mechanical engineer which I enjoyed, but @ the time I really wanted to explore my idea of an online classified system (this was 1989). I convinced my dad that it was a good idea but it pretty much ended there. Hmm… imagine if I had a chance to explore this concept? Perhaps eBay would have been founded earlier
Well, today there is no excuse for not pursuing your dream. There are plenty of options out there and thanks to the open tubes on the internet those options are easy to find.
One of the best options for young, aspiring entrepreneurs is TechStars. This is an amazing opportunity to nurture your ideas and learn from the best. You will be exposed to brilliant folks who have “been there and done thatâ€. And to top it off, all the people involved in TechStars are good people!
The founder of TechStars, David Cohen, is one of the brightest tech minds I have ever met, and he is down-right a generous and kind human being. Don’t get me wrong though, David will not hold back and will let you know what’s on his mind and that is another trait that I admire and aspire to replicate. You’ll also get introduced to folks like Brad Feld – I have not had an opportunity to work too closely with Brad, but when you hear him speak and recognize the legacy he is creating in the Boulder Tech scene you realize this is a special individual and you should pay close attention. The opportunity to learn from folks like this is on par with a degree from a top notch university, is condensed into one summer, and you get a little bit of cash to boot.
If you are thinking about TechStars stop now and just apply. Do it and thank me later! The application deadline is coming fast - http://www.techstars.org/apply/
March 10th, 2008
Previous Posts