Thursday, December 30, 2010

JavaScript Client Side Diff Tool

Here's a simple utility for comparing text which uses the JavaScript library jsdifflib created by Chas Emerick. This utility only uses client side JavaScript, which means that none of your data is transmitted over the Internet.

Friday, December 24, 2010

Evernote Tip: Make notes easier to access

While using Evernote, you may notice that some notes are referenced a lot. The two main reasons are either because the note contains too much information that can't be memorized, or its information is constantly updated (i.e. you replace your gym's schedule every month). Since these notes are the ones that are accessed most frequently, they should also be the easiest ones to access. Read on for a few ways to do this.

Friday, December 17, 2010

Schedule Creator

Here's a utility which will let you find schedules that work together. You input the name of the classes you want to take and all of the times each class is offered. This utility will then show you all the possible schedules that can be made. The best way to understand how to use it is by looking at the pre-populated sample text. Disclaimer: This isn't a very robust application, and it might cause unpredictable behavior if no schedule can be created. I'll try to improve this in the future whenever I have more free time.

Friday, December 3, 2010

How to set up a single Gmail inbox on iOS with the ability to send from multiple addresses

One of the nice features in Gmail is the ability to only need a single account which gets mail via forwarding or by reading other accounts via POP3. Used in conjunction with Gmail's "send as" capability, you will never have to log in to more than one email account again.

Setting this up to work in Gmail's online interface is easy. Getting the same functionality on your iOS device (iPhone, iPad, or iPod Touch), on the other hand, is a bit trickier to set up…

Thursday, November 18, 2010

iPhone Tip: Use a Gmail Plus Address for Note Sync

If you have your iPhone sync notes with a Gmail account, you may notice that it doesn’t delete old versions of notes. Instead, every time you save a note, it creates a new instance in your email account. This can easily fill up your email address with a bunch of junk messages which are hard to get rid of. My solution is to use a Gmail plus address for syncing notes, and then periodically manually running a filter which deletes all of your old notes.

Friday, October 22, 2010

Import iPhone Notes to Evernote via Outlook

Here's a simple way to import your iPhone notes to Evernote. This solution requires Microsoft Outlook, so it will only work on the PC. Note this could just as easily be used for importing Outlook Notes into Evernote without an iPhone... just skip the first step! The main benefit of this method is that it will retain the creation date of all of your notes.

Friday, October 15, 2010

Format Text as a Table

This tool has been moved to a new website:

Saturday, October 2, 2010

iBooks Tip: Reading a Book Out of Order

Sometimes you will be reading a book out of order (e.g. I am currently reading Apple's Core Data Programming Guide) and it becomes hard to keep track of which chapters you have read and which ones you haven't. With a little bit of work, you can use Apple's iBooks app to solve this problem.

Monday, August 16, 2010

Gmail: Robust tagging of forwarded email

One of the nice features of reading mail via POP 3 in Gmail is how it can automatically tag the emails with any tag of your choice. For example, you could create a tag for each email account you read. Then, you could select one of these labels to view only that mailbox’s emails.

The way it’s implemented in POP3 is very robust. Even if your name is not listed in any of the to fields (e.g. like in a BCC message), it will still tag the message correctly.

One of the drawbacks of using POP3 is that it can sometimes take up to an hour before it reads your mailbox. One solution for this is to use forwarding instead of POP3 which will deliver the emails as they arrive. However, if you switch to forwarding, you won’t have the correct tagging capabilities of POP3. In this post, I will show you how you can combine the two methods and get the best of both worlds.

Monday, August 9, 2010

iPhone Email Image Sizes

When you use the native Mail app to send a picture, it will ask you to choose which size to use. It tells you the file size of the image, but it doesn’t mention what resolution is going to be used. I created a table which shows which resolutions will be used.

Friday, August 6, 2010

How to fix keyboard shortcuts in KLC (e.g. Ctrl+S)

I recently created my own keyboard layout using Microsoft Keyboard Layout Creator. Everything was working fine until I tried using a shortcut such as Ctrl+S. Instead of saving the document, it used the underlying Qwerty keyboard key. In this case it was Ctrl+;, which didn't do anything. A day or so later, I read this article by Michael Capewell, where he mentions that he was able to fix the keyboard shortcuts. I sent him an email asking how to do just that, and this is what I found out...

Thursday, August 5, 2010

iPhone: How to play a YouTube video in portrait mode when orientation lock is enabled

One of my favorite features of iOS 4 is orientation lock (double tap home button, swipe right, first icon). I can't stand the wide screen keyboard and hate when applications force you to use landscape mode. This is especially annoying when you are lying down and trying to use the phone. This new feature solves the problem in most applications. One application that doesn't handle it well, though, is YouTube.

Monday, August 2, 2010

Microsoft KLC keyboard doesn't uninstall

I was trying out Microsoft's Keyboard Layout Creator this week. I ended up creating a keyboard and then wanted to correct it and reinstall it. When I tried reinstalling it, though, it said that there was already a keyboard with that name installed even though I removed it.

I figured out the problem and posted the steps to resolve it here.

iPhone Folder Background Home Screen Icons

Here's something similar to the iPhone Blank Home Screen Icons I made. This will work in iOS4, however it won't be 100% transparent, since as I mentioned in the other post, Apple doesn't allow transparent icons.

Sunday, August 1, 2010

Evernote Tip: Modify the “Date Updated” field to sort notes to the top

I usually have my Evernote notes sorted by the Updated property. This let’s me easily get to notes I am currently working on.

Sometimes I’ll find a few more notes that I want near the top, but I don’t want to modify their contents to force them there. For example, I may just want them for reference.

Here are a few ways to update the Updated attribute without modifying the note’s content:

How does email threading work in Gmail?

A really cool feature of Gmail is how it automatically threads email messages so that they appear as a single item rather than multiple items in your email list. This helps keep your inbox organized, especially if you have really long email threads. The problem is that sometimes I notice that it has false positives and something it has false negatives. I wanted to know exactly how email threading works in Gmail, so I tested it out, and here's what I found out....

Tuesday, July 20, 2010

Evernote Tag Sort Order

I created a new utility which supports more clients and makes finding which characters to use much easier.

Sometimes I like to use characters in front of tags (or saved searches) to have them sort to the top. The problem is that not every Evernote client sorts the tags in the same order. For reference, I have written down the sort order for several of the clients:

Wednesday, July 14, 2010

How Gmail Filter Email-Matching Works

I was trying to create some complicated Gmail filters. However, there doesn't seem to be any documentation of how the to and from fields work exactly. So I tried figuring it out myself...

Wednesday, June 30, 2010

iPhone Tip: Use Disposable Email Addresses

Whenever you sign up for a new service, they usually ask for your email address. This is usually a problem if you hate getting spam. One solutions is to use disposable email addresses. Gmail has one way to do this using the + sign at the end (e.g. if your email is, any mail sent to will be sent to you as well), however this has a few problems. The first problem being that someone can easily figure out your real email address, by removing everything after the plus sign. The second problem is that many websites don't let you use the plus sign in your email address.

This is where Yahoo mail comes in. You will need a premium account, however if you are an AT&T customer (as most iPhone owners are in the US), you can get one for free.

  1. Go to and sign up for an account.
  2. Login at
  3. Click on mail on the left.
  4. Once you're at the mail interface, on the top right, select Options > More Options...
  5. Select Disposable email address on the left and follow the instructions there.

How to Export Tagged Songs from Shazam

I have over 700 songs tagged in Shazam, the scary thing is that this information is only stored on my phone (I rarely backup my phone). That means if anything happens to my phone, the data is gone. In fact, I've already lost my Shazam tags twice: once when I upgraded Shazam and it would crash when opening it; and another time when my phone got bricked. Storing this much information in Shazam is a bad idea. As I've said before, I like cloud services. Had this data been stored in the cloud I wouldn't have this problem. Unfortunately, Shazam doesn't provide that option. The only way to export data in Shazam is the "share" link. Tapping the "share" link and sending an email 700 times didn't sound too appealing... so I tried finding a way to export all the data with minimal effort. If you follow these steps, you will get the data as text (artist, title, version, and date/time) for each of your tagged songs.

Saturday, June 26, 2010

iPad Tip: Quickly reconnect to Wi-Fi via lock/unlock

For some reason I always lose my Wi-Fi connection every 30 minutes to an hour, it's probably a router issue I have. What's more annoying is that sometimes it takes up to a minute until my iPad reconnects to my Wi-Fi (even though it could have actually reconnected immediately after the signal was lost). The way I used to solve this problem is to exit out of whatever app I'm running, go to Settings, tap Wi-Fi, and then manually press on the name of my router to force it to connect immediately. Unfortunately even with this method it takes around 10 seconds to connect, not to mention that it requires you to quit your current app.

I found that by far the quickest way to reconnect to Wi-Fi after you lost your signal is to simply lock the iPad, and then press the lock button again to see the "slide to unlock" screen. On the top left where it shows the Wi-Fi signal, you should see it reconnect within a second or two. Now you can unlock the screen and you'll have your connection back, all without ever leaving your app!

Sunday, March 28, 2010

Launching Quix in Chrome via Address Bar (Installing it as a Search Engine)

I just found out about Quix recently, and it reminds me of Yubnub. The thing I like about Quix is that you aren't competing with commands in a single namespace with every other developer as you do with Yubnub. You can define what each command does for you. So for example, gm in Yubnub is defined as a Google maps search. You cannot define gm to mean anything else in Yubnub (e.g. Gmail). With Quix, however, you can.

Thursday, March 18, 2010

Portable Apps not syncing to Live Mesh

The PortableApps folder does not get synchronized with Live Mesh because it is marked as a System file. Live mesh does not synchronize system or hidden files.

Finding all PDF documents in Evernote

Here's a quick Evernote tip:

To find all notes that contain a PDF file within them, use the search query: resource:application/pdf.

This can be useful if you want to, for example, create a saved search of all your product manuals. Let's say you tag all your products with the tag called Products, and that for many of them you find a digital version of their manual online (which is virtually always in PDF format) and attach it to the note. You can create a saved search consisting of the query: Products resource:application/pdf and call it Product Manuals.

For more information about the resource filter, see the Evernote API documentation. Application/pdf is the mime type for PDFs. For a list of other mime types, see this excellent reference page.

Friday, January 29, 2010

Show File Type Bookmarklet

This bookmarklet will show you the file type of each link on a page by displaying an icon next to each one.

Show File Type
(version 0.1)

Thursday, January 14, 2010

Color Generator (Hue, Saturation, Brightness variations)

Here's an online tool for generating colors. It modifies a color's hue, saturation, and brightness (HSB or HSV) to generate new colors. You can click on any color swatch to set that as the color used for generating. It uses Michael Jackson's HSB JavaScript functions.

Sunday, January 10, 2010

iPhone Offline Web App Creator (Data URI Base64 Encoder)

Here's an online tool to quickly create iPhone Web Apps that are stored entirely in the URL so that they can be run offline. It encodes the entire web app in a base 64 encoded data URI. Be warned, it might not work for very large Web Apps, it all depends on the iPhone's URL limit.

Data to encode:

Name (optional):

  • You need JavaScript enabled for this to work.
  • If you want it to automatically generate the link for you, enter a name that will be used as the link text.
  • Once you encoded the Web App, simply set it as the href target of a link on your website so that people with iPhones can click on it (e.g. <a href="data:text/html;charset=utf-8;base64,dGVzdA==">My Web App</a>). Then once they opened up the data: url in Safari, they simply need to press the Add button in Safari and choose to add it to their home screen.

Wednesday, January 6, 2010

iPhone Blank Home Screen Icon

This doesn't work for iOS 4 with a non-black background. Once I get some free time, I'll try to find a solution. Although the image used is indeed transparent, it seems that iOS 4.0 doesn't allow this and forces a black background to be used. If you are using a background other than black, you shouldn't use this. For iOS 4, I created something similar to this: Folder Background Home Screen Icons.

Version 1.2 (2010-10-29)


  • Completely invisible icon (pure black icon, no text).
  • Doesn't open up Safari if you accidentally click the black icon.
  • Has a link which links back to this page in case you want to add more blank icons.
  • Uses a data: url so that if you are in airplane mode, you can still see the details for the "web app" (e.g. name and version number).
  • Doesn't require jail breaking your iPhone.
  • Completely free, no ads.
  1. Ensure you have a black background on your device. (For more information, see the comment at top of this post.)
  2. Open up this page in Safari on your iPhone. (You can simply type instead of the full URL.)
  3. Click the iPhone Blank Icon link (in blue) at the top of this post.
  4. Press the plus (+) button.
  5. Press Add to Home Screen.
  6. Press Add.
  7. Press and hold any icon on your home screen to position the blank icon wherever you would like.
  • Add as many blank icons as needed by repeating the steps above.
  • When you no longer need a blank icon, simply remove it by pressing and holding the icons and clicking the x on top of the black icon.
  • To quickly add additional place holder icons, tap an existing one on your home screen, and click the link contained inside. It will link you back to this page which has all the instructions.
  • If you don't see Add to Home Screen in step 4, it's because you have used up all the space for icons on your home screens. You must delete icons in order to add additional ones.
  • If you would rather see the blank icons, you could give them a subtle name such as "." or "•" right before step 5. By default it uses a space character so it won't show up on your home screen.
  • After step 5, you won't see the icon, but it's there, just press and hold on any icon and you will see all blank icons as well.
What can this be used for?
  • Keep icons grouped by categories: Let's say you have a page dedicated to utilities and you have 3 different calculators (e.g. standard calculator, graphing calculator, tipping calculator), if you want to keep these icons on the first row, you could simply add a blank icon at the end of the row which will cause all the rest of the icons to start at the second row.
  • Position icons precisely where you want them: The iPhone does not allow you to place icons wherever you want (i.e. free form placement), as a workaround, you can use blank icons to position apps exactly where you want them. If most of the time you hold your phone with your right hand, it is easiest to reach icons on the bottom right of the home screen, so you could place your most used icons on the bottom right of every page, without needing to add additional apps on each page. You could, for example, have your Settings application on the bottom right corner of your home screen.
  • Keep icons in the same place: I remember reading somewhere (can't find the link) that people tend to remember where an icon is located and it's much faster than searching for the icon's image to find what you need. So let's say you have had an app in a certain location on a page for a few months, it's very likely that you know exactly where the icon is located even without looking at your home screen. Now let's say you want to delete an app that comes before it on the same page. If you were to delete this app, you will be modifying the location of up to 15 additional apps (assuming a full screen and you delete the first one). Instead of having to remember the new locations of all these icons, you could use this blank icon as a placeholder to keep all the apps where they originally were. Once you find a new app to install, you can replace this placeholder with the new app and everything will have remained in it's place.
  • Preventing a screen from collapsing: Say you want to have games on your 11th screen separated by all the other screens by several empty pages. If you try to do this by saving an empty page, the empty page will collapse after you finish positioning your icons. Empty pages can be achieved by placing a single blank icon on the page.
  • 10/29/2010:
    • Fixed a bug that didn't allow a blank title to be used, thanks @Omnifico.
  • 1/7/2010:
    • Added instructions on the blank icon page.
    • Uses a transparent icon instead of a black icon in case the SDK changes to support these (looks exactly the same right now).

Saturday, January 2, 2010

Show All Regex Matches

This is a simple online utility that will list all the matches of a regular expression. To see how this works, try this sample regex which will list all the words that start with a "t".




Notes: The regex syntax used is JavaScript. JavaScript must be enabled for this to work. For more information about regular expressions, you can visit this site. Feel free to link other people to this website. You can even preload the Regex for them by using the "rgx" parameter like this.