HACK / MAKE

Alfred.app Customization and Hacks

Alfred has quickly become a go-to application for me to get stuff done. It started off with great core functionality and over the course of beta and launching as a 1.0 has improved and added many features and customizations. A community has grown around Alfred which has led to an abundance of plugins and extensions to be created and shared only making the tool better. I encourage you to check out Alfred if you haven’t, buy the Powerpack, and then once you’ve played around with it a bit, come back and read about how you can hack Alfred’s endless amount of settings, tools, and customizations to tailor its use for you. Here are some of the hacks I’ve made.

Show Alfred With Selection

In the recently released v1.1, Alfred included the ability, upon triggering a special hotkey, to intake text selected in another application as Alfred’s query text. You can even set automatic keywords and where the cursor is positioned to quickly modify your Alfred query. The perfect use-case for this is selecting a product name that you want to search, hitting the Show Alfred hotkey and adding ‘amazon’ in front of the phrase to quickly be on your way Amazon. Another great use is to select a word, trigger your alternate Show Alfred hotkey and add in your keyword to lookup the word’s definition.

To set this up, open up Alfred preferences then Hotkeys and then Add > General > Show Alfred and configure it as you wish.

Global Scripting

Setting up hotkeys allow you to run scripts and open up files and applications from anywhere. My favorite use of this functionality is running a basic Applescript that will paste my clipboard contents into a new BBEdit document. This lets me quickly jump into editing text or starting a new scratchpad the moment I find text I want to do something with.

Here’s that script if you’d like to use it.

Custom Searches

Alfred has a lot of web searches built in but it’s really simple to add custom searches as well. You can use a keyword and the {query} string to add your inputted text into a URL you specify. You can include your {query} into any GET request for things like search engines (google.com/search?q={query}) or inputting an ID in a RESTful webpage.

Two custom searches that I often use are searching within commit messages of a specified Github repo and opening a specific story via ID in Pivotal Tracker.

To set up a custom search for a specified Github repo, use the following URL: https://github.com/user/branch/search?q={query}&choice=grep

choice can be code to search within code, grep to search commit messages, and author or commiter respectively.

By creating the following search URL with the keyword track I can paste in a Pivotal Tracker story ID from a commit message to easily open it in Pivotal Tracker.

<a href="https://www.pivotaltracker.com/story/show/%7Bquery%7D">https://www.pivotaltracker.com/story/show/{query}</a>

There are endless possibilities for custom URLs so try to roll your own for sites you frequently search.

URL Handlers for Twitter.app

Custom searches also allow you to tie into URL handlers, which are used to make hand-offs between apps by using a URL protocol like appname://. This Tweetie iPhone app resource archive shows the methods that were built into Tweetie as well as Twitter for Mac. The main ones I wanted to use are user and search to be able to use Alfred as an input to open up a search or user page in Twitter.app rather than opening Twitter.com.

Creating a custom search using the following search URL will quickly open up a user’s profile that you’ve entered into Alfred, just as it would if you’re in Twitter.app and go File > Go to User.

twitter://user?screen_name={query}

This custom search would open your query in Twitter.app rather than Twitter.com:

twitter://search?query={query}

I find URL handlers very attractive since they provide the inter-application connectivity of the “open web” with the software experience of well-built native apps.

I would love to hear your Alfred hacks, so please share them on twitter or email me at the link below.

Dealing with Thought Projects

Getting Things Done introduced me to the concept of knowledge work and much of what I’m currently challenging myself with in my personal life are high altitude thoughts and concepts that exist at this “knowledge worker” level. How do you process a high altitude project like “What should be the next step in my career path?” or while reading Julien Smith’s Flinch, “What do I want to do with my life but am avoiding just because I’m scared?”?

Solving for these greater questions is often a process of finding other questions you need answers for and answering those (while making other discoveries). You struggle to ask yourself the right questions because you’re not sure what you’re trying to accomplish. There’s very little of anything tangible for you to do yet a list grows of things—thoughts—you want to get done. Thoughts build up in your mind without being captured because most of them are fleeting notions that you don’t know what to do with. Let’s call these “thought projects”.

Thought projects can be all-consuming and often the deep notional realm rips you out of reality. When in the middle of these projects, so much time is spent just purely thinking about it that it drives you crazy. I need a way to fix this so thoughts can translate into something useful and ideas can flow together into larger notions that can influence actions.

GTD uses projects as a way to manage things that have depth and multi-step actions so there must be a way to adapt the workflows and systems I have for tangible ones to manage thought projects. Projects can be tracked and reviewed and the goal is that the whole system is something you have confidence in but when dealing with notions I don’t have a system I trust. Right now, a lot of these questions and ideas go into my Field Notes and though I go back through them as part of my weekly review, I don’t know how to process them. I’m not convinced it makes sense to create projects in Things.app to deal with these thought projects since the constraints it introduces limit where my mind will naturally wander. I also wonder whether limiting scope on notional projects is the right process since pushing thoughts past their usual end-point is the only way to come to a greater conclusion.

Mind maps are used to generate, visualize, structure, and classify ideas, and as an aid to studying and organizing information, solving problems, making decisions, and writing.

Mind Mapping, Wikipedia

There’s a chance that mind mapping is the proper system to organize these thoughts but I’m hesitant to invest in it. I’ve never done much mind mapping, with the closest thing being a lot of information architecture white-boarding, since I’ve yet to see a really graceful, simple, and efficient mind mapping tool that fits with the way I capture and explore these ideas. Thoughts usually happen when I’m in the middle of something else and launching an app, finding the right spot in a spider web of ideas (on a 4” screen) then finally writing it out before the idea disappears doesn’t seem like a good way to go about it. I thought maybe Clear, a new simple list app, might work for me but besides it’s not very functional, chrome-free interface, the inability to nest lists/ideas like you would with mind map limited its usefulness for me.

I don’t want to waste time playing around with tools when I’d rather be working on these projects but right now I’m stuck without a system and am driving myself crazy. Who knows, maybe thoughts.txt is right solution?

PSA: Updating RSS Feed URL

With my ongoing migration away from Google, I’m switching the RSS feed URL from Feedburner to http://hackmake.org/rss. Please update your feed reader to continue to get articles. You can also follow @hackmake on Twitter for a feed of updates.

“It Must Ensue”

Don’t aim at success—the more you aim at it and make it a target, the more you are going to miss it. For success, like happiness, cannot be pursued; it must ensue, and it only does so as the unintended side-effect of ones dedication to a cause greater than oneself or as the by-product of ones’ surrender to a person other than oneself.

—Viktor E. Frankl, Man’s Search for Meaning

Active Ownership vs. Minimalism

Minimalism is attractive. Clean lines, clean desks, and universal simplicity can be calming and the systematic removal of all but complete necessities can reduce distraction. A core goal of minimalism is that by removing everything ‘extra’, you may become freed by the constraints, dogmas, and physical implications they impose. Minimalism works to display the essence of something by removing anything but the purest basic form. Dependence is only placed on the base form of a concept, desire, or product. The output of this is less clutter in your apartment and your brain which demands less attention, less maintenance, and creates less of a cognitive deficit.

Cognitive deficit is caused by an overwhelming amount of stressors, open loops, and plain stuff on your mind and will reduce clarity of thought and impact mental capacity. The Wikipedia explanation gives examples of learning disabilities and drug-induced states as situations where a cognitive deficit exists but I think that everything in our lives—when not controlled—can combine to create a deficit. A cognitive deficit is caused when the cost of attention is greater than the returned value of something. Simplified, it’s when a thing costs you more in brain power by having it around than having it improves your life. Relevant to minimalism, reducing the amount of belongings to your name can diminish the amount of time you spending thinking about, caring for, and paying attention to them. That pile of stuff you don’t use under your bed is an open loop and commands more cognitive power than you realize. Minimalists recognize this and got rid of that pile.

Active ownership, which differs from minimalism, is about investing your limited attention, money, space, and time to what you value so that those things will thrive. Being vested in something makes you care more about it. You can’t do or have everything, so when you choose to take active ownership, it becomes a commitment to it and decisions and compromise have to be made about what commands your limited attention. As a result of the explicit choice you make in how you spend your attention, you reduce the things around you to what’s most valuable. What’s not valuable gets cut from your attention budget. You end up with less around you and are more focused on the basic forms of things, like with minimalism.

Active ownership and minimalism share values but are rooted in different theories. In minimalism, the focus is on removal, where having less leads to gaining more. Active ownership is about having the things that matter most to you and leaving behind everything that doesn’t. It’s not about having less because less stuff will simplify your path to enlightenment, but about taking an active role in what is around you, what you take in, what you believe and say, what you do and who you are. Active ownership assumes active responsibility where minimalism is dependent on the absence of everything extra—even what’s out of your control—to be effective. Having less of something doesn’t automatically mean that you’ll appreciate and value what remains but when you are making active decisions about where you invest your limited attention, you choose what to love rather than being forced to love only what you have left.

This process of actively owning, continuously editing what you do, and explicitly choosing what’s around you results in a deeper passion for those things and is worth investing in.