One of my quirkier traits is a disproportionate interest in the America’s Cup sailing race in relation to the amount of time I have spent on a sailboat, which is zero. My interest over the years has waned as many of the battles have been fought in the courtroom as on the water. I found this article interesting, but I don’t see Ellison being the savior of the oldest contested trophy in international sports.
Joy Division’s Graphic Designer Explains the ‘Unknown Pleasures’ Album Cover »
Interesting story that a true fan would already know. And yes, I did have this t-shirt back in the day. Waaaaaaay back.
Check the Weather App
Always on the lookout for the iOS weather app, I followed Shawn Blanc’s (among many others) recommendation for Check the Weather. I like its simplistic display of only the most necessary information and more detail is just a swipe away.
However, I do disagree with one of Shawn’s main “stand out” points; the use of the Idlewild typeface by Hoefler & Frere-Jones. I almost feel bad saying it, because I’m a huge fan of many of their typefaces, but Idlewild is not one of them. The app’s developers say it was “chosen for its distinctiveness and strangely vintage, futuristic look.”

Strange indeed, because I find the information hard to read on the iPhone screen at any appreciable distance. I can think of any number of H&FJ typefaces that would have been a better choice; Gotham, Ideal Sans, Tungsten–heck, considering the purpose of this app, Numbers would have been an inspired choice. Anything would be an improvement over the current selection, which unfortunately is a case of cleverness outweighing legibility.
Update (Oct 29): An update released today adds Futura and Helvetica as font choices.
Note: See that one bar I’m getting with my phone sitting on my desk? Yeah, me too. Verizon here I come.
inuit.css »
A nifty little framework full of useful Sass mixins.
Dear Mr. Podcaster
Listen, here’s the thing: you know those times, albeit rare, when you and your co-host are politely speaking out against some person/company for doing X and listing all the (perfectly valid) reasons why X is a foolish idea/concept/plan and then fifteen minutes or so later, when it’s time to give your “sponsor testimonial,” and it just coincidentally happens to be for a product that does something eerily similar to X? And you then have to sing the praises of something that just a bit ago you said was…well, not so praiseworthy.
Luckily these two products and/or services are not exactly the same. No, that would be quite a pickle. But close enough that when you’re finished with your heartfelt description of pure awesomeness, your co-host is left somewhat speechless and the slight empty pause at the end is, shall we say, a bit awkward.
You know those times I’m talking about?
Yeah…you sound like an idiot.
NCAA Proposes Dropping ‘Student-Athlete’ »
“This whole area of name and likeness and the NCAA is a disaster leading to catastrophe as far as I can tell,” wrote Perlman, a former member of the NCAA Board of Directors and law professor specializing in intellectual property. “I’m still trying to figure out by what authority the NCAA licenses these rights to the game makers and others. I looked at what our student athletes sign by way of waiver and it doesn’t come close.”
The NCAA can sell the likeness of any former college player it wants, with zero compensation to the “student-athlete”, but if that same student were to sell his own image, he would lose his eligibility.
Automating Octopress With Keyboard Maestro
One of things I wanted to with Octopress is automate as much as possible the process of creating new posts, generating the site and deploying it to my server. Octopress uses Rake tasks for these steps:
$ rake new_post["Snappy Article Title"]
$ rake generate
$ rake deploy
Easy enough, but I would rather not have to swap back and forth into the terminal to create and publish a blog post. Using a static-site generator such as Octopress is supposed to be easier, not harder. To me at least.
Note: A word of warning up front. I throw around words here like “shell scripts”, “Ruby gemsets” and other nerdy terms, like I know what I’m talking about. I’m swimming in the deep end of the pool when it comes to some of these topics, so take this for what it’s worth. My solution works for me, but there could be a much easier way and/or I could be unknowingly sending by bank statements to a sever in Nigeria.
While the Octopress documentation is good, Moncef Belyamani has written two excellent tutorials geared towards beginners on installing Ruby via RVM and installing Octopress locally on a Mac. Per his directions, I set up a octopress gemset that is loaded whenever I cd into my Octopress directory:
$ cd code/octopress
Using /Users/me/.rvm/gems/ruby-1.9.3-p194 with gemset octopress
And from there, I issue the various Rake tasks. My first stop at automating this was to use Keyboard Maestro, due to its ability to run shell scripts. Setting a hot key trigger to execute a shell script as simple as:
#!/bin/bash
cd Users/me/code/octopress
rake whatever
…did not work. As I dug around, I learned about the differences between interactive shell sessions and ones that aren’t. I assumed that my desired Ruby/RVM environment was not being set when this script executes, and my suspicions were confirmed when I found an article about scripting with RVM on the RVM site. Adding the code snippet from that article fixed my issues.
Creating a New Post
My Keyboard Maestro macro for creating a new post is pretty simple. When I hit Control-Shift-P, a window pops up and asks for my article title:

The title is captured as a variable and passed to the rake new_post command. The full KM macro is here:

Here is a closer inspection of the shell script itself:
#!/bin/bash
# Load RVM into a shell session *as a function*
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
# First try to load from a user install
source "$HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
# Then try to load from a root install
source "/usr/local/rvm/scripts/rvm"
else
printf "ERROR: An RVM installation was not found.\n"
fi
cd /Users/me/Code/octopress
rvm use 1.9.3@octopress
rake new_post["$KMVAR_Title"]
The beginning of the script was copied directly from the RVM site and I added the last three commands that change to to my octopress installation, sets the correct gemset and creates the post. To finish the automation, I created a Hazel rule that looks for any new file in my Octopress _posts directory and opens it with Byword:


I then add any categories and enter the post content. Save when I’m finished and then two more macros to post the entry. 1 A possible alternative to this technique would be to skip the rake new_post command altogether and use a combination of macros and Text Expander snippets that creates a file with the correct year-month-day-title.markdown format as well as the proper YAML front matter for the post. This technique could be useful in some sort of remote-blogging scenario.
Note: A word of warning with the above Hazel rule. Be very careful if you use rake isolate to edit/generate single posts. All other posts are temporarily moved out of the _posts directory and then moved back when you rake integrate. Which–you guessed it–will cause all those other files to trip the rule…and Byword will open over 300 documents (in my case). This is not fun.
Generate and Deploy the Site
I use Control-Shift-G for another macro to generate the site content, which just calls the exact same script as above, but replacing the last line with rake generate. A third macro deploys the site with Control-Shift-D and again, the last command is rake deploy—which for me uses Rsync to upload my site to my server.
I have all three macros set to “display results briefly”—the normal rake output to the terminal—for positive feedback of the results of the commands.
Update (10 Oct 12): Jonathan Poritsky of the Candler Blog has a nifty Text Expander solution to this.
Update (11 Jan 13): Doug Rice of Jarhead.me has an some excellent Text Expander snippets as well. Also, added the Hazel warning above and the Candler Blog link in the previous update has been fixed. Sorry about that.
Update (20 Jan 13): Justin Blanton of Hypertext wrote up a very detailed Keyboard Maestro solution that includes automatic quotes for linked-list style posts. Very nice.
-
These last two can be combined with the
rake gen_deploycommand, if desired. Other Octopress rake tasks such aswatchandpreviewcould easily be automated with this as well. If the terminal is in your wheelhouse, Alessandro Nadalin has written some nice shell aliases and functions that combine many of these tasks.↩
Vertical Rhythm With Compass »
In an earlier post, I wrote about rolling my own solution for maintaining a vertical rhythm with text on the web. Here is the Easy Button.
Words and Consequences »
Marco Arment:
I hate that Josh and Nilay took my offhand comment about Engadget and PR relationships so severely and personally. I hate that these two people, who I’ve met and have gotten along with quite well, now think that I’m a complete asshole because they inferred something far more severe than what I really meant.
I have no dog in this are-tech-bloggers-in-the-tank-for-tech-manufacturers fight. He may even be right. However, I find it strange that Marco fails to see how calling the integrity of a writer into question—flippantly or not—would result in said writer not taking too kindly to that kind of accusation.
Diary of a Mad Fact-Checker »
No, not the insipid political fact checking, the exacting New Yorker-kind. An interesting read about a topic that I became somewhat intrigued by in Jay McInerney’s Bright Lights, Big City.
Bonus content includes a refreshing honest book review:
Let’s be factual. D’Agata has had every chance imaginable to be taken seriously as an artist. He teaches at Iowa, his books are published by a major house and get reviewed everywhere. His essays are pretty good and could be improved upon, if he took time off from editing anthologies and giving lectures. But he’s a failure of an artist.