The purpose of this article is to help both new and existing users get correctly setup with IMAP Gmail. I feel that the default settings in Mail.app and Google’s recommended client settings ( found here) are not adequate, and lead to a lot of headaches. What was usually the case is that I would have sent mail from my client not show up in Gmail on the web, and mail I deleted from my client still present on the web client! This is not useful if you are trying to have total access to email regardless of location/platform.

To give an overview, Gmail makes heavy use of “labels” in terms of classifying mail. You can specify your own labels as well, but each folder is essentially a “label”. If you’re using an email client, what will usually happens when you delete a message is that it will delete the “label”, but the original message will still be in “All Mail”. This is especially dangerous if you heavily use your client. You would assume messages are getting deleted, when in reality they’re piling up in “All Mail”! I had the unfortunate experience of having this happen to me, and it was not easy to get everything back in order.

 

  1. If you haven’t already done so, enable IMAP in your Gmail settings.
  2. Add a new account to Mail.app following these instructions.
  3. The next step is to configure the mailbox behavior. I have found that the following settings have worked well for me.
  4. Next, you want to setup what is called an IMAP prefix under “Advanced”. Another issue with Gmail over IMAP is that folders like “Sent”, “Inbox”, “All Mail” from the web interface are under this [Gmail] folder. Setting the IMAP prefix gets rid of this.
  5. The last, and most important step to this process is re-mapping the Gmail IMAP folders to behave as default folders in Mail.app. For instance, we selected to store deleted messages on the server and move items to the trash when deleted. By mapping the Gmail “Trash” folder to be the default location for trash, actions on the client are reflected on the web. We want “Spam” from Gmail to be mapped to “Junk” in Mail, “Sent Mail” to “Sent”, “Drafts” to “Drafts”, and “Trash” to “Trash”. To do this, select the Gmail folder in the sidebar you want to map, then go to “Mailbox -> Use This Mailbox For” and select the appropriate equivalence to the selected Gmail folder.

    Once you have remapped each folder, they will disappear from the Gmail heading in the sidebar and reappear under their respective section near the top (i.e. Junk, Trash, Sent).

And that’s how you setup IMAP Gmail! These settings may not be perfect, but it addresses the main issue of properly deleting mail and making sure everything is consistent across mediums. If something isn’t clear, or you know of a setting that would make this setup better, feel free to either contact me or post a comment.

Ever since Nike+ was first released in 2006, I feel like they never got it completely right.  I was really irked when I found out that it only worked on the nano. I felt like they could have made it work on previous and subsequent updates of each iPod family, but as time went on all we saw was that it still only worked on the nano.

When I heard rumors earlier this year that they were updating the Nike+ for iPod Touch/iPhone I was thrilled.  Having just bought a 3G iPhone, I could now enjoy using Nike+ to track my running progress. But I was again disappointed when they announced it was only for the iPod Touch. An improvement, but the iPhone and iPod classic are still left in the dark.

And to be frank, it should not take that much effort to convert an iPod Touch application to the iPhone. In fact, it should have been easier, and it could have been significantly better than all the previous Nike+ iterations had to offer.  For the iPhone 3G, you could have replaced the chip with use of GPS. That way, you track both distance and location. Too much work?  Make the chip bluetooth and don’t even change the iPod Touch application. I’ve read that the chip already uses the same/similar frequencies that bluetooth uses. That way you have compatibility with both generations of the iPhone. Any slight improvement of effort in the delivery of this product would have made it much more appealing to a wider range of audiences. 

I’ve almost been driven to write my own application out of sheer frustration of Nike, holding back with the slight hope that Nike will come to realize how simple these changes are and finally get it right. If this is an issue about money, replace the chip with a paid application in the app store.  I’d gladly pay $10 to get this application on my iPhone with GPS functionality.

Let’s hope that Nike finally gets its act together and release Nike+ for the iPhone. 

Updates

I just updated the blog to version 2.6 of Wordpress, and had a much better experience this time around upgrading versus last time.  I was smart enough to backup my site and database before upgrading in case anything went wrong.

Expect a few other posts in the next few days.  I finally got Gmail setup on IMAP correctly with Mail.app (trust me, it’s not as easy as it seems), so I will post instructions on how to get that setup and make it much more integrated into Mail.app than what Gmail’s instructions provide.  I also got my first Lego set in a really long time.  It’s a 1960 Volkswagon Beetle, and I’m almost finished with it, so I will probably post a few pictures of that when I finish it as well (because it looks really cool).  I also am toying around with Cocoa and iPhone development, so if I write anything I’ll be sure to post it here as well.

Umm… oops.

So, while upgrading the site from Wordpress 2.3 to 2.5 I somehow managed to cause the upgrade to the database to fail (it was a combination of having the wrong settings in the config file and moving from having prefixes to not in the MySQL database), and completely hosed my database install of WordPress.  So I backed up the database and did a fresh install.  Manually entering everything else in (posts, users, comments, etc) appears to have worked.  For those of you who have accounts, try logging in, and let me know if it doesn’t work so I can fix it.  Otherwise, the only known issue is the image in the last post not showing up.

Update: Moral of the story is you backup the database before you upgrade WordPress! :-P

Finally, a working project!

XKCD comic

The person in this comic is exactly how I am when I’m waiting for a package to arrive. Instead of clicking *refresh* every few seconds, what else can be done to give you a better idea of where your package is? That’s where PackageTrackr comes in. This project first started out as an extra credit project for my Web Applications class from the fall semester. It visually tracks package progress of FedEx packages and displays it in Google Maps. It started out in C# and ASP.NET, and while I liked how it was implemented, it was just a pain to get it uploaded somewhere on a server. The main quirk with running it on the local debug server was that Google denies certain API requests from local (ie not on the internet) servers, but will accept anything from a static file. So what I had to eventually end up doing is enter in a tracking code, save the page to a static file, and open the file that way. Without a means to upload the script to a free ASP.NET server ( I wasn’t paying for both linux and windows hosting), my only option was to try and port it to PHP. So I download the sample code, find out SOAP isn’t enabled on my host (SOAP isn’t enabled by default in PHP5 anyways), so I had to compile a custom version of PHP5 with SOAP enabled. Then January rolls around and Dreamhost has their billing fiasco. Because of that, I switched hosts (which so happens to have SOAP enabled on their servers) and setup this blog. February comes around and FedEx releases a new version of their web specification and breaks everything I have setup. After a few days of emailing tech support at FedEx, I put it on hold for a few weeks. Yesterday, I started over with their sample code to see if I could get it working. After a few tweaks I had the SOAP response from FedEx, and today had it working with Google Maps. It’s still a work in progress, so if you put in anything other than a valid tracking number (this includes old tracking numbers that don’t have stop information anymore), you’re going to get a bunch of errors from FedEx and Google Maps. I eventually want to add UPS and USPS to this, so bear with me until I do if you have packages from other carriers. Otherwise if you have any other feedback as to what you would like to see, please email me or leave a comment in this post. The thumbnail below shows a sample of what a typical tracking code would look like on Google Maps. To try it out for yourself, click here.

Package Trackr in Action

Binary Clocks are Cheap

Ok, well maybe the title isn’t entirely accurate. I am a big fan of binary clocks and even own one. They are cheap from a circuitry standpoint. Say I have the time in BCD. BCD stands for Bindary-coded decimal, which uses 4 bits of binary for one decimal digit. For example 0001 BCD is 1 in decimal, and 1001 0001 0111 BCD represents 917 in decimal. For those lost and don’t know how to read binary, going from left-to-right, the first place represents 8, second 4, third 2, fourth 1. If that place has a “1″ you add the number associated with that place. So 0011 is 8*0 + 4*0 + 2*1 + 1*1 = 3. Now if the clock circuitry outputs the time in BCD (which has several advantages, one being easier to read by humans), you need to convert this number so that it can be displayed correctly on a conventional digital clock. We might use a Seven-segment display, in which case we need to determine which parts of the display need to be active for what number. For a binary clock, you don’t need to do this conversion. All you need to do is hook up each bit from the BCD to an LED and there’s your binary clock! The reason why I’m blogging about this is because we were making a BCD to seven-segment converter and my lab partner mentioned that a binary clock is a normal clock minus the converter. That’s why binary clocks are cheap, but still worth buying.

Crazylegs Classic 2008

To help motivate myself to keep running, I have signed up for the Crazylegs Classic which is an 8k run. This will be my first 8k, so I’m not quite sure what time I will run it in. My best 5k is 19:09 from high school, which is about a 6:30 mile. I am nowhere near the shape I was in then, so I’m planning to be much slower this time around as I only have 9 weeks to train for it and coming off a long hiatus. I’m shooting for an 8 minute mile pace (40 minute 8k time), but I’m going to time myself in the mile tonight and that should give me a better idea of what pace I should be shooting for. Regardless, I’m not too worried about time. I just want to finish without stopping, and have a base time to improve upon. That’s the beauty of running: while you may be running with a bunch of people, the only person you are really competing with is yourself. If you ran faster than you did last time, that’s all that matters.

Run 04:32 pm

Today was the first day of me getting back into the routine of running. I have been running on and off this school year, but I’m not making a conscious effort to stick to running for various reasons. First, I need to stay healthy. It may seem like everything is alright now, but I know for a fact when I get older I can have serious health issues. Second, I loved running in high school, why should I not now? Not having practice during the week should not mean I have to stop running. Third, I have set a goal: October 18th is a 10k run here in Madison, Wisconsin. I’m going to run it, I’m going to finish it, and I’m going to train consistently until race day. I don’t have a specific time goal for the 10k, but I’ll take what I get and go from there. I’ve decided to start running again for other reasons, but those are the main ones.As for running in Madison, I am very fortunate to be going to school here. There are miles of bike paths separate from car traffic that provide endless possibilities for a running route ( see here). And even if it’s cold out, there are people out there running too! It really gives you a different perspective on running when you see these people out running regardless of the weather conditions and that running is a year-around commitment, only something I’m just beginning to realize.

When I made the decision to start running again, I wanted to track it. So in addition to a paper running log, I upload my stats from my cellphone. I was debating between Apple’s Nike+ for the iPod Nano, buying a Garmin Forerunner, or a pedometer. Apple and Nike’s interface looked nice, but it’d involve me buying a Nano and the kit ($150 total with a refurbished iPod Nano). Garmin also cost anywhere from $100-$400 so that was also very pricey, but did GPS. I was also looking for standalone GPS receivers and entering my info manually, but those were equally expensive. I then came across the Runner’s World online running log, which allowed you to send data via your GPS capable phone. I tried it today for $1.99 and was very happy with it. You can specify a time goal, a distance goal, or both. To do more than a day, it’s $9.99 a month so I think I’ve found a cheap alternative that fits all my needs. I’ll keep posting my results to show my progress and how my runs are going.

-Mike

Activity

Route: Elev. Avg: 882 ft

Performance

Distance: 2.21 miles Goal: 2 miles

Map

Elevation (ft)

Pace (min/mile)

Splits

Mile Pace (min/mile) Speed (mph) ElevationGain
actual +/- avg actual +/- avg
1 9′ 14 -0′ 14 6.5 +0.2 +32 ft
2 9′ 59 +0′ 31 6.0 -0.3 -36 ft
end 8′ 10 -1′ 18 7.3 +1.0 -3 ft
Versus average of 9′ 28 min/mile

Posted from runtracker.runnersworld.com

Categories

Calendar

November 2008
M T W T F S S
« Sep    
 12
3456789
10111213141516
17181920212223
24252627282930