Jeff Sharkey

Radio propagation using libprop

As part of my thesis work, I’ve been writing algorithms to design wireless radio networks. One important question we needed to answer was whether a given pair of locations could communicate using a set of radio equipment. This question is pretty hard to answer because there is so much uncertainty in the real-world. If we make some simplifying assumptions, we can boil the problem down to a handful of calculations:

First we need to check if the link is line-of-sight. That is, can both the towers physically see each other, or is there a mountain in the way? We’re using high-resolution 10-meter data from USGS to walk along a path between the towers, checking for obstructions as we go. If nothing blocks the path, the link might be possible.

Next we need to check our link budget. If the radio isn’t powerful enough, it will be too weak when we reach the other tower. This boils down to a neat equation:

transmitter power (dBm) + antenna (dB) – free space (db) – Fresnel loss (db) – vegetation loss (db)

From our equipment, we know the transmitter power and antenna specifications. From the distance and terrain we can calculate free space, Fresnel, and vegetation losses. Then we compare this budget against the receiver sensitivity of the destination tower. If there is enough signal power left, the link is possible.

This is just a quick summary of what I’ve spent months writing and testing. As part of my fellowship here, I’m allowed to open-source the code I’ve written for my thesis. So if you’re interested in a fast C++ library that can do propagation testing, libprop is the way to go. It can easily read USGS terrain data, and there are some quick examples.

I’ve also written an awesome little mashup that overlays propagation images in Google Maps. It’s an instant “What if we put a tower here?” tool. Other propagation tools on the market are a few thousand bucks, and they don’t even offer anything like this. 🙂 Check it out and let me know what you think.

Reclaim screen space by using Two-column Google

Okay, so here at school we have these huge Dell LCD monitors that are just gorgeous. However, it’s annoying every time I do a Google search because over half of the screen space is just wasted with whitespace. 🙁 Yeah, it’s because Google decided to be friendly to everyone still running at 640×480. But I don’t want to deal with that! I hate having to scroll down only a few inches to get to the page-navigation links.

So I pulled out my long-lost friend Greasemonkey, an excellent Firefox extension that essentially lets you change any website on the fly. I wrote a quick script that wraps the lower half of every Google search result page onto a second column on the right-hand side of the screen. Our screen-waste problem is solved, yay! It does this by adding a two-column table to the page, and then splitting the Google search results equally into the two columns. The results read like newspaper columns (vertically first, then horizontally).

So yeah, check it out, and let me know if you find it useful. 🙂

Skiing Bridger

Last week I woke up on a Saturday and we had perfect weather for skiing here in Bozeman. It was overcast all day, check with a good chance for a few inches of fresh snow. I grabbed my stuff and went over to Bridger Bowl for the day.

It was my first time skiing out here, pill and it was definitely very different compared to Minnesota. If I could describe it in one word, here it would be “powder.” Skiing in powder is hard work!! The entire mountain has dozens of runs, most of which are either blue or black. The blue runs here are more like the blacks I’m used to back home. 🙂

Anyway, I found out there were over 2,000 people out on the entire hill, but it didn’t seem like that at all. It’s just such a large hill that everyone ends up being really spread out. So most of the lift lines were fairly short. The weather isn’t the greatest this weekend, but I’m keeping my eyes open for good skiing weather on the weekends.

Thanksgiving and Christmas

A couple of us from Chi Alpha got together and carpooled back to Minnesota for Thanksgiving. Along the way we dropped off Leanne somewhere in North Dakota, ed and ran into an evil McDonalds. It must have been something weird with their neon lights, remedy because their sign was as a nice red. 🙂

On Thanksgiving night, generic we went to sit outside the Best Buy in Green Bay, Wisconsin all night for the Black Friday sales. We got there around 11PM, and there were already about 70 people in line. We ended up sitting about half way down the side of the building. Most people said they were trying to grab a cheap laptop. By around 5AM there were easily over 300 people in line, stretching around the back of the store.

Anyway, this year they had some nice deals on LCDs, and I needed one badly. I picked up both the 19″ Samsung and a 22″ Westinghouse, because I wasn’t sure which one would work best for my desktop. It ends up the 22″ was a huge overkill, and so I stuck with the 19″ for my desktop. For a few months I’ve been using the 22″ for a media center downstairs, but I just sold it to a friend.

Well, I also flew home for Christmas. Instead of the rushed couple of days around Thanksgiving, this time I came home for two weeks. I was still really wound up from the semester. I probably would have kept myself working full-time if I had stayed in Bozeman, so I’m glad I went back. While I was back we got to go skiing as a family over at White Cap, which was great because I hadn’t been skiing for almost a year.

More Snow

Well, we finally got more snow! Last night around 2AM it started snowing like crazy, and we ended up with about 3-4 inches on the ground by this morning. So now it’s going to be awfully cold over the next week, barely getting above freezing if we’re lucky.

Remember that webcam I setup last week? I’ve been archiving it, and I wrote a nice Linux script that runs each day and makes a time-lapse video of the entire day. Here’s what happened today with the snow:

Not much happened, oh well. Anyway, right now it encodes to MPEG-4 and each second of video is about 15 minutes of real time. I’m using a PHP script I wrote, along with mencoder (MPEG-4) and ffdshow (Flash) to encode the video, and then archive the day in a zip file.

Live Webcam

Over the past few days its been cold and rainy and snowy out here. Yesterday we woke up to about two inches of snow (yay!), but most of it’s gone now.

Anyway, back in July I ran across an eBay auction for a cheap webcam, and picked it up with the idea I would start a live webcam when I finally had high-speed Internet. Well, here it is! 🙂 This is the view out over Michael Grove looking west. It should update every 10 seconds, and is also being archived so I can make some cool time-lapse video later. Here are some interesting links for the project:

Right now there is a dedicated Windows 2000 computer that captures and archives images from the webcam. It uploads to an Ubuntu Apache server, which is then port-forwarded through my Qwest DSL modem to the world.

Visiting Family

This weekend my parents drove all the way out to Bozeman to see me for a few days. Their vehicle came out packed with various furniture, and went back packed with Wheat Montana. 🙂

While they were here, we drove up to Big Sky and walked around. There is a lot of construction going on before the snow arrives. Speaking of which, our forecast is saying we’ll get snow on Monday and Wednesday this week.

Also, you’re probably wondering what the “spinning noodle” is. Its actually called the “Wind Arc,” and will spin around in the wind. I walk past it every day on my way to classes.

Snow on Mountains

Over the past week, physician it has been raining a lot here in Bozeman. Most days have been overcast, pilule with drizzle or rain through the day. This weekend the weather finally passed, mind revealing the snow left on the mountains. So today, I ran out with the camera and pieced together a 13.8 mega-pixel look at the mountains to our north.

Below you can download a lower quality 0.5 mega-pixel version, or the full 13.8 mega-pixel behemoth. 🙂

The piecing was done using Panorama Factory, and final coloring in Photoshop CS2.

Server Moved

Over the past few months, I’ve had horrid problems with several of my websites hosted with Dreamhost. Pages hung without loading, or were very slow during peak periods. Server loads were regularly over 120.0, and were about 40.0 at their lowest. Today, that all changed! I talked with Michael, an administrator a Dreamhost, and he helped move all of my sites onto a new server. Everything now runs perfectly, and is very fast. 🙂 Yay Dreamhost!

So, I started poking around on the new server I’m installed on. The server is called and has only three users: root, me and a user called colberteagle. Hmm, interesting. Well, it ends up that the server hosts, the official website of The Colbert Report. That’s crazy–I’m the sole neighbor of Stephen Colbert himself! To prove it, here’s a screenshot of a directory listing on the server, showing only the three users. Also, some handy links to my forward and reverse DNS entries.

Continuing to look around, the server has 2GB RAM and is a quad-core 2.4GHz Intel Xeon processors. For now I’m only sharing it with one other website, and the server load has yet to go over 1.0 all day long. Very sweet!

Moving to Montana

Over the past week, I moved out to Bozeman, Montana for graduate school. Last Sunday, I drove about 1,118 miles to get out here. It took about 15 hours driving time, and I averaged 70.44mph and 35.06mpg. Considering I had 820GB of live disk space with me, that gave my car an average data transfer rate of 117.48Mb/s, or the equivalent of 78 residential DSL connections. 🙂

Thankfully, I had a hotel to stay in for two days. On Tuesday night I stayed at a friend’s house (Taylor), and then on Wednesday night I slept in a Physics conference room on campus. From Thursday to Sunday I stayed with another friend (Cody), sleeping on their couch. This whole time I was calling several dozen people with apartments/rooms listed in the local paper and around campus. I spent several hours outside Arby’s because they have free wireless Internet.

Because Bozeman is such a large college town, their population has slowly doubled over the past week as students are coming back. With thousands of students looking for housing, most apartments are filled the first day they are listed. Late Saturday night I finally found a place to move into! 🙂 For the next few months I’m sharing an apartment with Chad, who was a Civil Engineering student at MSU. This is just in time, because I’m starting school Monday.

Also, because of my fellowship position at WTI, I have a very nice office (okay, it’s a cubicle) with free parking that is walking distance from campus. Yes, it means I’ll be walking a few blocks in freezing cold, but at least I can laugh at the students scrambling to find a parking space before their next class starts.

« Previous PageNext Page »