Thumbtack 2 – New UI, Spotlight Integration, and More


I released Thumbtack in February of 2012, three years ago exactly. At the time I was trying to learn Objective-C from books and code tutorials until a friend convinced me I would learn faster if I thought of an app that I was passionate about and focused my energy on building something specific. Thumbtack was born from my own personal and simplistic use of Pinboard. Over the years I received a ton of user requests. Requests like search capabilities, AppleScript support, integration with tags, global hotkeys, and so much more.

Today I am happy to announce the release of Thumbtack 2 — a FREE update for existing customers. A completely re-written version that meets all of my user requests to date (although I have already received more haha). I had promised search for a long time and I am happy to have finally delivered it. Thumbtack 2 is everything I had hoped the first version would become and I even have a few ideas of where to go next with it. It was  a fun challenge to keep the spirit of Thumbtack and its simplicity but also pack in all of the features users wanted. I decided to release it as a free update for existing customers to thank them for supporting me from the very beginning.

Version 2 Highlights:

• Access to all bookmarks, no longer limited to most recent
• Search with advanced filters
• Post management: Add, Copy, or Delete bookmarks
• Add with Safari Extension or system-wide service
• Native integration with Spotlight
• AppleScript support for extending to third-parties
• Hover over a bookmark and hit the spacebar for a quicklook preview
• Global hotkey
• And SO MANY more user requests

Thumbtack 2 is available on the App Store

Learn more at

What is iCloud and Where are my photos?


I haven’t had much time to write on this blog but I hope to change that. Even when I am not writing about Apple topics, I honestly live and breath this stuff in both my personal and professional life. One question I get all the time from non-techie friends and family members is – What is iCloud and where are my photos? I know those are actually two separate questions but whenever it comes out of someone’s mouth, it runs together like a single stream of bewilderment.

I was recently helping a family friend with photo management on her iPad and she had asked that very question. She had taken a lot of photos during her last vacation, so many in fact, that she had run out of space on her iPad and the device had no room left to download and install iOS 7. She enabled “iCloud backups” and “Photo Stream” yet she truly had no idea what either service actually did for her and her photos. Confused and unsure whether her pictures were stored local, in the cloud, both or neither, she decided to take the advice of her hairdresser – download Dropbox. She was told that if she downloaded the Dropbox app it would back up her photos right on her iPad. So, this non-techie person downloaded the Dropbox app and signed up for an account. She then uploaded all her images right from the device. Afterwards, she felt comfortable safely deleting them out of her iPad camera roll. She could see them on the web and on other computers which was all she wanted. Knowing that she was not a very tech savvy individual, I was a bit surprised that she had accomplished this entirely on her own and I think she was equally as proud of herself.

Apple does so many things amazingly well, however, photos in iCloud is obviously not one of them. I personally use Photo Stream because I have taken the time to fully understand it. Photo Stream takes pictures off of my phone and wirelessly transfers them to iPhoto on my Mac which then gets backed up via Time Machine to my Time Capsule. This works well for me but it’s not for everyone and especially not for those that have one foot in the Apple world and the other foot in the PC world. Whenever this is the case, Apple services seem less than intuitive and they rarely succeed at solving their intended problems because those solutions were designed with an all Apple ecosystem in mind. Apple could learn a lot from quality services like Dropbox. I don’t mean that Apple needs to improve their cross-platform technologies but I think simply explaining their services in more detail as opposed to always trying to provide invisible implemenations of new services could go along way towards making the average user have a better experience. This is not a new revelation by any means. Just something that has been on my mind lately and I wanted to get it out.

Regex Groups in Python

Federico Viticci has me hooked on Pythonista. I am not sure what took me so long to buy it because the very premise of scripting on my phone sounds like the best idea ever. I bought it and can confirm it is (in my opinion) the best app ever. At the very least, it is my favorite app right now.

This is not an app review, that may come later. No, this is more of a reminder for myself the next time I go to use regex groups in a Python script. I am extremely new to Python so when I learn how to do something I generally write my self a little text note or store the code snippet for future use, this time I am just going to share it in a blog post.

Groups are incredibly useful. You can use regular expressions to identify a portion of a string and assign it a group name that can be easily referenced when replacing values.

The syntax in Python for defining a regex group is:


The syntax to reference that group later is:


This is often better described with a real world example. So here is a link to a tweet on that I am going to break up in to multiple useful groups:

Using regex to identify the may portions of the URL (domain, user, status, and id) I can assign each chunk of the URL an identifiable name:

Now that I have my groups identified, I can call them in the substitution pattern to do something like convert the format of the link to one that is compatible with Tweetbot’s URI scheme:


So when you put all this together in Python you basically get this little code snippet:

So disregarding the import statement, it is possible to identify only specific sub-strings and reuse or replace them at will with only 1 line of code. As you can see, I did not end up using <domain> or <status> and I could have probably left them out but I wanted them to be apart of the example. Every language has its own flavor of regex groups, this syntax however is specific to Python which I why I felt it best to document it with a useful example.

In addition here is a gist with the above code in a working example specifically written for Pythonista:

*Also check out Viticci’s version over at MacStories

Perl Regex Removed From Grep in Mountain Lion

I realized today that many of my shell scripts were no longer working since I upgraded to OS X 10.8. After digging in to it I found out that they were all bombing out on a common grep command I use for finding specific bits of text with Perl regular expressions.

grep -Po '(?<= ).*?(?= )'

I pulled up the grep man page and couldn’t find the -P switch I had always used for Perl regex. It was definitely removed.

To be completely certain, I jumped on a machine running OS X 10.7.4 to see if it was in the last OS, and sure enough there it was.

I am not sure why it was removed, but it was a great way to use powerful Perl regular expressions in a quick and convenient shell script. I really loved being able to whip up a quick shell script for something and use Patterns for the Perl regex. I know egrep has ‘extended’ regex but I like the Perl syntax. I guess it is time to leave my shell scripts behind and start writing in some more sophisticated scripting languages.

Maybe it wasn’t Apple and it was just apart of its open-source development, I don’t know, but it will be missed by me.

Verizon vs. Sprint – iPhone 5 vs. iPhone 4S

This is why I bought an iPhone 5 and switched to Verizon.