Archive for July, 2005

Non-Existent Street on Michigan’s Campus on Google Maps

Sunday, July 31st, 2005

UofM people, have you noticed that on Google Maps East University extends further north past Ulrich’s between East Hall and West Hall? I’ll bet it was like that like 10 years ago or something. Can anyone confirm that? Here’s a route I made to a non-existant address on a street that doesn’t extend that far north:
Apartment to Old East U.

LZW File Compressor? Been There, Done That.

Sunday, July 31st, 2005

From Joel on Software:

“The assignments are very serious for a college class: implement a Unix command-line shell, implement a ZLW file compressor, etc.”

I found it funny that we did a project that was, as Joel puts it, “very serious for a college class”. It was an honors class, but oh boy, was it hard. I thought I knew C++, but I was wrong. Aparently there’s this thing called the command line, and bits and bytes. Oh, and bit shifting. Why wasn’t I taught this stuff before now? I mean, I knew that the operators meant to right shift and left shift, but I was clueless, until probably this very project as to what bit shifting actually was.

So, for those of you who care and don’t know, here is bit shifting in a walnut shell. (Its a little bit bigger than a nut shell. Oh wait, walnuts are nuts. Whatever…)

So, lets say you have a char in C++. It is represented as 8 bits. Each bit is either on or off. Remember how to count in binary? I think I learned it in fourth grade or something. Sadly, I needed to refresh. I’m not going to explain how to count in binary here. Anyway, convert to decimal, then go find an ascii table and convert to an ascii character. There you go. You have one letter in a text file.

If for example you only have 4 cahracters in you alphabet, you only need 2 bits. So, to compress this file with only four characters, you could compress the 8-bit chars to 2-bit chars by storing 4 chars within 8-bits. Since the computer, and/or C++ doesn’t work with less than 8 bits (aka a byte) at a time, we need to take the last byte in the file, move the bits over to the right spot, then do an or operation to add on the 2 bits to the end of the file.

If that didn’t make sense, maybe I need some diagrams or a better explaination. Let me know.

Oh, and when I start my own software company in the next few years, how am I supposed to hire the right people? How am I supposed to measure the programmers if the programmers can’t be measured AT ALL. Hmm… I’ll have to think about that one.

Here’s the article:
Hitting the High Notes

Overlay WMS onto Google Maps

Sunday, July 31st, 2005

I’ve figured out how to overlay the roads from Google Maps’ hybrid mode onto my custom maps using the WMS standard and mapserver with a few hacks to the Google Maps API. Check it out here:
University of Michigan Campus Buildings

Overlaying Pictures on Google Maps

Thursday, July 28th, 2005

I’ve been working a little more with Google Maps at work and I found this nifty little javascript library called TPhoto. Basically, it lets me overlay any image I want on top of Google Maps using the sGoogle Maps API. This shall be useful!

Themes… Crazy Themes

Wednesday, July 27th, 2005

Download Themes

Ajax Mistakes

Sunday, July 24th, 2005

Here’s a good overview of some things to watch out for when messing around with Ajax, or other web technologies.

Ajax Mistakes

The mistakes that annoy me the most are the Breaking the back button, Not using links I can pass to friends or bookmark, and Blocking Spidering. I like my back button. It should work, at least most of the time. Some pages have figured out that having links that you can actually link to is a good thing. For example, in Google Maps there is a “Link to this page” feature. I’ve also made sure that you can link to people’s schedules in Mschedule. For example, here’s a link to my schedule for fall ’05. Blocking spidering can be a bad thing if the site relys on people finding it through search engines.

Google Maps Real-Time GPS Tracker

Friday, July 22nd, 2005

Google Maps Real-Time GPS Tracker

Simple Microwave – Programming

Friday, July 22nd, 2005

So, I just got a cool idea today. Maybe this will revolutionize cooking. But, first we need to get appliances hooked up to the internet and maybe better in-house ethernet wiring. Anyway… here we go. I’ll make this as simple as possible, then expand later if need be.

Put in. Press start.

That’s how simple cooking should be. I’m thinking microwaves at first, but it might be expandable to toasters, ovens, stoves, etc.

Right now, they do already have presets, but I don’t use them because I can’t customize them, and they are very limited. I don’t even know what some of them do unless I try them.

Maybe I’ll add on to this later.

Related Links:
Microwave Experiments
Virtual Microwave

More Google Mapping Fun

Tuesday, July 19th, 2005

The interface to Google Maps rocks! I’ve figured out how to overlay my own maps. I have a map of central campus buildings overlayed right now. Next, I’m going to try the UofM bus routes.

Other things in mind include mapping people from the facebook, and integrating with Mschedule.

Kyle Mulka’s Google Maps

Innovation Like Crazy With Google Maps

Monday, July 18th, 2005

Last weekend I was working a lot with Google Maps. They are so fun to play with! I’ve created several web services. Not all of them are ready to be released yet, but if you have a GPS unit, Garmin eTrex for example, and software, like EasyGPS for example, you can upload and view GPX files.

All of my maps services will be available through this address:

If you have any suggestions along these lines, feel free to leave a comment, or send me an email or something. Thanks.