Archive Uncategorized

SS Sundog

A couple of years ago, I had read about a group of amateur hobbyist’s that had gotten together and built a weather balloon rig that housed a camera, GPS, and a couple of other gadgets. They had setup the camera to take pictures at a regular interval and used the GPS to locate the rig after it had landed. I thought to myself, that sounds like a fun little project.

A couple of months ago I was toying with that same weather balloon idea and thinking of a way to incorporate my Android powered cell phone into the project. The more I thought about it the more I realized that this one device could essentially perform all the tasks I needed for the project. It was then that I began writing an Android app to do everything I needed for the flight. This app had to be able to take pictures at regular intervals, record GPS data, send SMS messages at regular intervals (SMS so I didn’t have to rely on a data connection for location), and have the ability to export the data after the flight. I built the app and put it through it’s paces. When I felt fairly confident that it would work for the flight I started putting everything together from the box that would house the phone to the parachute and the balloon.

Friday morning my Dad, Brother, and I got together at my house to launch the balloon. Everything was an unknown for each of us so we all did our best to anticipate what would happen. The first thing I was worried about was if we had enough helium to get the balloon off the ground with the payload. The way the balloon works is you fill it to its optimum diameter for launch and as the balloon rises in the atmosphere and there is less and less air pressure, the balloon will explode and the payload will fall to the earth. The helium tank I had was somewhat small and I ended up emptying the whole tank into the balloon. The balloon wasn’t quite filled to its optimal diameter but it still had enough lift to lift the payload so that was good.

We hooked up the payload with the phone running the app I built and made sure it was sending out the SMS messages as it was suppose to. It was working fine and all the checks passed so we decided to let it go. I released the SS Sundog at about 10:25AM. I named it the SS (Starship) Sundog because, well, the phone isn’t mine. It is a work phone! Don’t worry, I got permission from my boss on sending it away.

Dad holding the balloon

Dad holding the balloon

Just before release

Just before release

The app was working great and we were receiving regular SMS messages with the location of the phone up till about 20,000 ft where we lost cell signal. At this point the phone was going northwest. It looked almost like it would go by Fargo. We thought this was great. We had to drop off the helium tank in Fargo anyway and we decided to get some lunch.

We got some lunch and waited for word from my phone on its way down. About two hours had passed and I thought that we should have heard from it by then. I grabbed the Chromebook and forced an update from my phone through Google’s device policy. It popped up… in Remer, MN! 160 miles away from where we were. I thought that this couldn’t have been right. I forced another update and it was correct. Even L attitude said the phone was there. So we high tailed it back to my house to get in the vehicles to go recover the phone. Later we would find out that my app actually was working with the updates as it was falling, there was a mix up with us seeing the new text messages it was sending though.

View of my house from above

View of my house from above

Space, the final frontier

Space, the final frontier

It was about a three hour drive to get to where the phone was from my house. Upon closer inspection of where it landed, it was going to be tough to get to. It was about two miles from the closest road (fire roads at that) in the middle of the Chippewa National Forest.

We got to the fire roads just as it was getting dark. After looking at the satellite view in Google Maps, it looked like the fire roads might actually get to within a half mile of where the phone landed. Once we got there we found out that was not the case. What looked like roads in Google Maps were really marshes with about three to four foot tall grass and very uneven ground. It was a good thing that most of the ground was frozen we we didn’t get too wet. We ended up following game trails through the marsh to get to where we had to turn off into the dense forest for a half mile to get to where the phone landed.

Robert was tracking the position with a tablet and as soon as we got to where the phone should have been we stopped and looked up. There it was! The first place I looked. The phone was dangling from the top of a 40′ tree. It was interesting trying to get it down. We got the phone and hiked back following the same way we took to get there. It was a very tough hike and it was starting to wear on us. It took us quite a while longer to make it back to the blazer. All-in-all we ended up hiking nearly eight miles through very difficult terrain in the dark. I was glad it was over and I think my brother and dad were as well. We didn’t get home till after 1:00AM the next morning.

So the experiment was a success and I got some very cool pictures. A couple of interesting facts: the phone traveled nearly 130 miles in the just over two hours it was in the air; it reached 60,000′ before the GPS lost signal (consumer restrictions enforced by the government); based on the time it was without GPS signal, I estimate it reached nearly 90,000′; it had a top speed of 161mph (when it had GPS signal).

The experiment was pretty fun but as my brother said, next time lets launch it from the middle of ND so it lands in a field!!

Check out all of the pictures from the flight in the gallery!!

Click here to download the KML file from the flight to view it in Google Earth

Click here to download SpaceTracker from the Android Market

Click here to see SpaceTracker open sourced



November 28th



September 15th


Sawtooth 2011 recap

Well, this year didn’t quite go as planned.  The plan was to finish.  Even with the best laid plans, the outcome is not certain.  If you have been reading this blog at all you will know that there were a few hiccups the few weeks prior to this race; a busted up leg that needed stitches and ended up getting infected, a bad cold that left my muscles tired and achy, and a tweaked back which made it difficult to even walk just a few days before the race.  Despite these issues I figured I could still go out and give it a shot.  Maybe I would get lucky and everything would just fall into place and I already registered so I had to try.

Race morning I actually felt alright.  My back was pretty stiff but I was able to get a few hours of sleep.  I knew it was going to be hot so I decided to take it really easy and really easy is how I took it!  The first aid station I got to see my crew (Annette and Wynter) was just over the 20 mile mark.  I had already drank about four liters of fluid by this point.  I drank some pop and a Powerade, had Wynter fill up my Camelbak and I was on my way.  Only five miles to the next aid station.

This section went by pretty quick and was very pretty (well I guess the whole course is pretty…).  I got to the aid station and my crew was missing.  I still had everything I needed for the next long section so I was alright.  It turns out I just missed them.  The section to Tettegouche is a long one…  This was especially bad since it was starting to get really warm/hot.  I don’t do very well at all in the heat.  I ran out of water about six miles into the ten mile stretch.  This was not good.  I still stayed positive and made it to Tettegouche.  I was overly warm and very thirsty.  I drank everything I could to try to get my hydration levels up where they needed to be and ended up staying at Tettegouche for about ten minutes while I was trying to get hydrated.

It was about this time when my stomach started to turn.  Having no fluids it was impossible to eat so it had been quite a while since I got some calories.  I tried to eat at Tettegouche but couldn’t eat much.  After I left Tettegouche, I got about a half mile down the trail and my legs started to seize with muscle cramps!  It looked like the heat and dehydration were catching up to them.  About another half mile down the trail I started throwing up.  This was not good.  The section I was on was the toughest section of the first half because of the terrain, elevation, and distance.  I drank what my stomach allowed and couldn’t eat anything.  This is when I started moving really slow.

The cramps started to go away and gentleman who was a physics professor at UMD came up behind me and had decided to slow down to my pace for a bit.  He told me his stomach was in about the same shape just before Tettegouche but he was able to get it calm down and was doing better.  I kept going in hopes that this would hold true for me as well.

Darkness fell and I was chugging along the cliffs above CoRd 6.  Last year at this time I was almost to Finland… I was way behind.  This part of the course is a lot easier in the light as there were sharp drop offs and technical rocks you had to traverse just beside these cliffs.  I could hear and see the aid station from almost a mile and a half away.  This really helped to pull me through to CoRd 6.

My plan was to take a nice long break at CoRd 6 to see if could eat and drink and also see if my stomach would feel any better.  I was able to take down a couple of grilled cheese sandwiches and a couple of cups of soup.  It felt good to have food in me but my stomach was still turning.  My crew and I hung out there for a bit and since I really wasn’t getting any better I decided to throw in the towel… JUST KIDDING.  I thought it was a good idea to keep going even though I felt terrible!  I told Wynter she could pace me.  I was managing to keep a blistering 30 min/mile pace on one of the easiest sections of the first part of the course!   I was having a tough time.  Still hardly able to drink or eat.  I was doing all I could to make it the eight miles to Finland.

While the section between CoRd 6 and Finland was probably the toughest time I have ever had moving forward in a race, ever, I still liked being on the trail.  A few runners were were lucky enough to be on this section at the same time as me were treated with howling wolves.  They sounded so close and they were in three different positions in proximity to where we were on the trail.  The bigger group was just north while a couple of lone wolves were east and south, probably not more than 1/2 mile away.  It was awesome.

This sentiment was not shared by all runners, however.  Soon after the howling, a runner came sprinting by Wynter and I.  He was just flying!  Soon after another runner came up behind us and asked us if we had saw that guy sprint by.  We said yes and he began telling us that he was running from the wolves and was carrying an unsheathed knife in case one came after him!  This gave us all a good chuckle.

I finally made it into Finland just after 1:00AM.  A full four hours later than the year before.  Since nothing had changed in my situation for the last 20 miles I figured it wouldn’t get better in the next 50 so I turned in my chip at Finland.  The circumstances were disappointing but for the way I felt I was amazed that I made it to 51 miles.  Because of this, I know without a doubt that I will be able to complete this course if I were feeling better.  Maybe next year.

I would like to thank Alicia for supporting me in my crazy attempts at these types of things.  I would also like to thank my crew for being there and really helping out a lot as well as all the volunteers and the nice racers I had the opportunity to meet.  It was still a good time even though I felt terrible for over half of my time on the course.

I took some video while I was on the trail and will work on putting it together so look out for that.  Also, if you would like to see the pictures that Wynter and Annette took, check them out here.



September 13th


Almost time

It’s just about time to leave for Two Harbors to pick up my race packet for the Superior Sawtooth 100. I am very excited to get out there again and see the sites all while having fun traversing the trails. I really do wish I felt better though. Over the last week or so I have had a bad cold and am just getting over tweaking my back (though not sure what from).

I think I will have a good chance of making it this year as long as my back doesn’t act up… Tough to know. All I know right now is I am going to go out there and give it my best shot. It might be enough and it might not be. As long as I have no broken bones, am not incapacitated, and I keep making the cut off’s for the aid stations, I will keep moving forward. Hopefully it is enough to get that dang buckle!



September 8th


Superior Race Plan (geeked)

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class RacePlan {
	private static List<Gear> gearList = new ArrayList<Gear>();
	private static Boolean feelsGood = true;
	private static Boolean feelsBad = false;
	public static void main(String[] args) {
		List<Gear> gearList = makeGearList();
		gearList = makeGearList();
		Calendar superiorStartDate = null;
		Calendar leaveDate = null;
		superiorStartDate.set(2011, Calendar.SEPTEMBER, 9);
		leaveDate.set(2011, Calendar.SEPTEMBER, 7);
		if (Calendar.getInstance().before(superiorStartDate)
				&& Calendar.getInstance().after(leaveDate)) {
		} else if (Calendar.getInstance().equals(superiorStartDate)) {
			for (float mile = 0; mile <= 102.6; mile += .1) {
				if (isAidStation(mile)) {
				        .println("Eat food, fill hydration pack, " + 
                                                   "change clothes/shoes");
				if (mile == 42.8) {
					.println("Grab the headlamp " + 
                                                   "and flashlight and  " +
                                                   "have fun running " +
                                                   "through the dark!");
				if (feelsGood) {
					.println("Keep putting one foot in " +
                                                   "front of the other!  Enjoy the " +
                                                    "scenery and have fun!");
				if (feelsBad) {
					.println("Keep putting one foot in front " +
                                                   "of the other.  Don't quit.  Don't " +
                                                   "every stop till you reach the finish");
					.println("The end has come!  Relax, eat, sleep, and go home!");
	private static void packAllGear() {
		for (Gear g : gearList) {
			if (!g.isPacked) {
				System.out.println("Pack " + g.getName());
				g.isPacked = true;
	private static void driveToPacketPickup() {
		System.out.println("Throw the gear in the van and drive!!!");
	private static Boolean isAidStation(float mile) {
		if (mile == 9.3 || mile == 19.4 || mile == 24.3 || mile == 34.2
		    || mile == 42.8 || mile == 50.5 || mile == 58 || mile == 62.2
		    || mile == 71.6 || mile == 77.2 || mile == 84.3 || mile == 90
		    || mile == 95.5) {
			return true;
		return false;
	private static List<Gear> makeGearList() {
		List<Gear> gl = new ArrayList<Gear>();
		gl.add(new Gear("CamelBak", false));
		gl.add(new Gear("Toilet Paper", false));
		gl.add(new Gear("Shoes", false));
		gl.add(new Gear("Socks", false));
		gl.add(new Gear("Flashlight", false));
		gl.add(new Gear("Headlamp", false));
		gl.add(new Gear("Shorts", false));
		gl.add(new Gear("Short Sleeve Shirt", false));
		gl.add(new Gear("Long Sleeve Shirt", false));
		gl.add(new Gear("Vaseline", false));
		gl.add(new Gear("Rubbing Alcohol", false));
		gl.add(new Gear("Medical Tape", false));
		gl.add(new Gear("Cotton Balls", false));
		gl.add(new Gear("Gorilla Tape", false));
		gl.add(new Gear("Endurolytes", false));
		gl.add(new Gear("Endurance Aminos", false));
		gl.add(new Gear("Anti-Fatigue Caps", false));
		gl.add(new Gear("Visor", false));
		gl.add(new Gear("Sunglasses", false));
		gl.add(new Gear("Phone Case", false));
		gl.add(new Gear("GPS", false));
		gl.add(new Gear("Bottled Water", false));
		gl.add(new Gear("Powerade", false));
		gl.add(new Gear("Mt. Dew", false));
		gl.add(new Gear("Energy Drinks", false));
		gl.add(new Gear("Snickers", false));
		gl.add(new Gear("Larabar's", false));
		gl.add(new Gear("Granola Bars", false));
		gl.add(new Gear("Cheese Crackers w/Peanut Butter", false));
		gl.add(new Gear("PBJ Sandwiches", false));
		gl.add(new Gear("Trail Mix", false));
		gl.add(new Gear("Extra Batteries", false));
		gl.add(new Gear("Rain Jacket", false));
		gl.add(new Gear("MP3 Player", false));
		return gl;
	public static class Gear {
		private String name;
		private Boolean isPacked;
		public String getName() {
			return name;
		public void setName(String name) { = name;
		public Boolean getIsPacked() {
			return isPacked;
		public void setIsPacked(Boolean isPacked) {
			this.isPacked = isPacked;
		public Gear(String name, Boolean isPacked) { = name;
			this.isPacked = isPacked;


September 2nd



So I’m not very good at keeping this thing updated… I blame that on being busy.  My new job is keeping me on my toes which I like but things that don’t matter (like this blog) take a backseat.

I believe in my last post I was getting geared up for Voyageur.  I really thought this race was going to be a disaster since my longest training run since running the Fargo Marathon in May was twelve miles (I did manage to get in a 50 mile bike ride in though).  It turns out it wasn’t as bad as I would have thought.  I just took it easy and  had a good time on the course.  I was not ready for the heat so on the way back from Duluth to Carlton I had to slow it down quite a bit because I was getting over heated.

I managed to finish under eleven hours and felt pretty good.  I was a little sore the next couple of days but nothing too serious.  It felt a lot like I feel after running a really fast marathon.  Since Voyageur went so well I decided Sawtooth would be a good idea.  Everything was going great for training leading up to Sawtooth.  I was even able to sneak in a 27 mile night run which helped me zero in on what lights I should be using and got me used to running in the dark.

About a week and a half ago I had a bit of an accident with a mechanical clay pigeon thrower.  I was setting the thrower and right when it was about to snap into place, I slipped or it slipped, and my upper shin, just under my knee, took the full force of the rotating arm when it was going its fastest.  It didn’t hurt so much then as I think it broke a nerve but it did manage to break open my skin through my jeans.  I put a paper towel on it and wrapped my leg with gorilla tape and it stopped bleeding.  We finished shooting and when I got home Alicia and I decided that I should go to the ER.  We had to go up to Fargo anyway to go to a wedding so we just left a little early.

It was almost five hours since the accident by the time we got the hospital.  I really didn’t think it was all that bad till we got there and it started bleeding like crazy.  Alicia put me in a wheel chair and they wheeled me back to one of the rooms.  When the Dr took off my duct tape job, my leg squirted and sprayed blood everywhere!  Turns out it broke open an artery.  So the Dr stitched up the artery and then the outside of my leg.  He said I should take about two days off of running.  I did just that.

About five days after I got all stitched up, my leg started to hurt bad.  I went back in and the Dr thought it was infected and the antibiotics they had me on weren’t working for the type of infection I had.  He switched me to the good stuff and the infection went away.  I write this six days later and my leg is still pretty sore.  I’m not quite sure how this will affect my run at Sawtooth but I guess I will find out soon enough!!

On another note, on Saturday I pushed Zander in his stroller for the Potato Days 5k.  He had a good time.  He slept right through it.  I would have ran but the infection was still pretty sore.  We managed to walk the 5k in about 35 mins.  Not too shabby in my street clothes wearing my VFF’s.  I’m hoping all the walking I have been doing will translate to an easier time with the power hiking up the hills at Sawtooth.  I think it will.



August 31st


Brought up to speed…

It seems as though my posts get more and more spread out.  I really do have every intention of writing more to keep those of you who actually do read the site up-to-date.  Time just fly’s by.  Especially since Zander came into our lives!  Since this post will more than likely end up being a bit longer, I am going to break it out into topics.


Zander can be described in one word.  Awesome.  He is a great little guy!  Sure someday’s he can be a bit of a handful and somewhat needy but it is all worth it.  I know I have it pretty easy when it comes to taking care of him though.  Alicia deserves all the credit.  There are some days when he will be fussy most of the day with Alicia and by the time I get home he is a perfect little angel, I’m thinking because he is so tired out from being fussy all day!  Most of the sleepless nights belong to Alicia as well.  Sure, I’ll get up when he starts crying and change him but I get to fall right back asleep while Alicia has to stay up and feed him.  I wish there were more I could help with.

Boy does he grow!  I swear in a week or two he is going to be taller than Alicia.  Well, maybe not that tall but pretty close.  He is also doing all the other kind of neat things that baby’s do as they grow up.  It is really nice that I am able to get to spend time with him.  This reminds me of how hard some friends of ours have it.  He is in the Navy and has to leave on deployment for long stretches at a time.  I know he loves his family and they love him so it must be tough.


I am no longer employed with Corelink Solutions. I am still on the front page of the website though!!  The reason I no longer work there started about six months back.  They were going through a big restructure and basically the entire company was going to change the way everything was done.  At first I was somewhat excited because I like change and thought that this could add more of a challenge to my work.  As it turns out it was somewhat the opposite.  The role I was put into was much less challenging than what I did previously.  Not only that, most of the parts I liked about my job (coding/problem solving) were being replaced with documenting and administrative tasks.  I didn’t call it quits right away.  I decided to stick it out and see what I thought.  After a couple months I still didn’t like it.  This is when I did what I tell everyone who complains to me that they hate their job, I found a new one.

How did I find this job?  Being a big Google fan, I was intrigued by a blog post I saw on the forum written by an employee of Sundog talking about new technologies that were being displayed at Google IO.  Being as that I had previously worked my butt off to score a ticket to that very same conference by way of winning a Google coding challenge, my interests were spiked.  I read more about the company and the more I read, the more I thought this would be a great company to work for.  Turns out they had a job opening that looked like it would fit me perfectly — Software Engineer.  I applied and after a few meetings, I had a new job.

This week was my first week at my new job.  So far so good.  I can tell that I will like it there.  There is always a little bit of awkwardness from learning the ins and outs of a new place of employment but after those bits dissipate, I have a feeling that I will be able to do very well for myself and for Sundog.


June was kind of a tough month for me as far as running goes.  Well, I guess it wasn’t tough, mostly because I hardly ran!!  I had a bit of a tendon problem in my left ankle where every time I ran it would become inflamed and cause a lot of pain.  I essentially took three weeks off of running.  I did, however, replace my running with biking.  Biking was great when I wasn’t able to go running.  It is a lot of fun to be able to go places that are further away than when running.  This is especially true living in the country.

When I did start running again towards the end of June, my running has been going really good.  I haven’t had any other issues with my ankle and my legs are still strong.  Actually, the last weekend in June I competed in the Average Joe triathlon and had a great bike and run leg.  A few days later I rode my bike up to Fargo (only 20 miles due to a flat tire and no spare) and ran in and won the Noridian 5k.

I have been transitioning to more ultra distance training for the upcoming Voyageur 50mile and the Sawtooth 100mile.  This includes doing longer, slower runs.  Since I work in the Multiband building on the 5th floor, I thought it would be a good idea to only use the stairs and if I need to use the restroom, to use the restroom on the 1st floor.  This has been great and it has really helped strengthen my legs.  I know this will help for the power lines section of Voyageur!!

I also started to do some night runs.  It seems like this is one of the only times I have to go out and not feel bad about leaving Zander and Alicia since I already don’t get to see them a whole lot during the day.  Tonight I was going to go out for a few hours after everyone went to bed.  I only made it an hour before it started raining and storming so I came back in.  Turns out we were in a tornado watch so probably a good thing I did!  Maybe tomorrow night I will get a chance to go out again and really put some miles down while practicing running in pitch dark by way of my headlamp.

I am really excited for Voyageur to come here.  I’m not sure why I like that race so much.  Might be the challenge or the familiarity but whatever it is I get really excited thinking about hopping out on that trail, running, and seeing the sights!  I’m probably weird but I actually like the power lines section!  I haven’t registered for Sawtooth yet.  I decided to wait till after I ran Voyageur so I knew whether or not I would have the legs since I had to take some time off.  Right now I think I will be fine.  My legs feel good.  Ultras are more mental than physical…. right???



July 9th


Anniversary Present!

Alicia got me some sweet new accessories for my new rifle — Awesome!

The new AR -- Decked Out!



June 7th


He made it!


For those of you who are not aware, our little baby boy was born on May 12th @ 5:38AM. His name is Zander and he is pretty awesome! There have been some fairly sleepless nights but they are all worth it. If you would like to see the little man, I started an album you can view by clicking on the photos link to the left or click here.

Because of the timing, I was only able to run one Marathon this spring. I ran the Fargo Marathon last weekend. There were tons of people which really makes me miss the smaller races. I ran great through mile twenty but the tailwind mixed with the heat and humidity caught up to me and my quads cramped really bad the last 6 miles. Now it is time to start training for some ultras!



May 25th


Lots happening…

Ok, so it has been a while since I have posted on here.  I have meant to post a few times but just never seem to get around to it.  For the most part, everything has been going good with mostly good news.  I’ll start with the not so good news and move on to the good news as a way to help leave a good taste in your mouth.

Read more



April 10th

January 2018
« Nov