And Now for Something Completely Different

macolyte.net began its life as a self-hosted WordPress site. At the time, it seemed like the most logical choice. A few years in, I realized I was sick and tired of dealing with all the management that comes with running a WordPress site: databases, comment spam, software updates, plugins, etc. Tumblr was an attractive alternative. It was free and took all that administrative bullshit away.

But as with most things, there were tradeoffs. There was no FTP access. I had to go through the Tumblr API, using either an application or the web interface, to post anything. If I wanted to fix any aspect of the theme because it wasn’t quite what I wanted, I had to log in to the Tumblr web site and make my changes to the HTML template in a cramped sidebar window. Updating the CSS was an even more convoluted process. As I started posting more code samples, the biggest pain point became the complete lack of support for syntax highlighting. I managed to hack my way around this last limitation, but I was never happy with the result and it was a huge pain in the ass. In the end, Tumblr was a pendulum swing too far in the opposite direction. I gave up too much control for a little more convenience.

All that history just to say it’s time to move on again. A new solution has presented itself (thanks Gabe) and it looks just about perfect. I don’t have to manage a server or database. The HTML, CSS and posts are stored in a place where I can access them in any text editor on any network connected device. Syntax highlighting is built in and automatic. Hell, it even does footnotes the right way (so I can start using them instead of inserting parenthetical statements everywhere).

But wait, there’s more. I’m not just switching blogging platforms. I’m starting from scratch with a new site. By the time you read this (if anyone actually does read this), my new site will be live at piperedirect.com.

So why start over? I thought up the name and wanted to use it. But my meager skills and utter laziness prevent me from moving everything from here to there. And I figure I don’t have much of a readership to lose, so why the hell not?

In all seriousness, the fact of the matter is that I’ve changed. My growing disillusionment with Apple is making the “macolyte” monkier less and less appropriate. My interests have widened lately to include non-Apple things. I genuinely like the Nexus 7 tablet and I’ve been getting into Linux and Python a bit more again.

My goal with macolyte.net was to present neat little scripts and other tricks. Turns out, that was too limiting for me. I was always struggling to think of interesting, original things to write. It was a real source of stress and made me feel like crap. If I came across something someone else had written, I’d become paralyzed trying to decide if it was appropriate to put here. And I didn’t want to descend into the abyss that is technology punditry. I realize now that if I want to produce “quality content” I simply can’t handcuff myself like that.

Of course, I don’t want to be another “me too” voice in what I see as the technology blogosphere echo chamber. Fortunately most of the things the “tech blogging community” finds important I just don’t give a shit about. The latest Facebook news, Apple patent lawsuits and rumors, and blah blah blah who cares? But I do have opinions. Strong ones. And I would be doing myself a disservice if I didn’t put them out there, even if nobody else cares about or reads them but me. I still want to write about practical topics, things people can actually use, so the new site (I hope) will be more Macdrifter/Dr. Drang and less Shawn Blanc/Ben Brooks.

This site isn’t going anywhere. Everything will remain for historical purposes as long as Tumblr is still in business and doesn’t decide to purge inactive accounts, but I won’t be adding anything new.

Provided I set it up correctly, the feed for the new site is here should you like to subscribe.

A Week With the Nexus 7

Last week was my first full week of Nexus 7 ownership. Being scientifically minded (as I think most of us nerdy types are), I conducted an experiment: could the Nexus 7 fill the same role as my iPad? For the entire week, my The New iPad sat unused and barely touched on my dresser. As things popped into my head I jotted them down (in Evernote of course). I wasn’t nit picky about inconsistent fonts or behavior because frankly I don’t give a shit. As long as it worked and allowed me to accomplish the things I wanted to accomplish without a huge hassle, I was cool.I will now attempt to make some kind of coherant narrative out of those notes.

tl;dr: For me, and my admittedly simple needs, yes I’ve found that the Nexus 7 can replace my iPad. Keep in mind, however, that I don’t do anything particularly interesting with my iPad. I read RSS feeds, check email, look things up on the net, etc.

Hardware

Now for those of you who are still here, let’s start off with the hardware.

Starting a week or so before the Google I/O keynote, I acquired an itch to try a 7“ Android tablet. The form factor intrigued me, as did the ”openness“ and ”freedom” (I promise that is the first and last time you will see those words in this post) of the Android platform. I was just about ready to pull the trigger on a Kindle Fire because the price was right, even though I knew from many reports that it was a pretty shitty product overall. I’m so glad I waited.

The N7 is nice and light, as you would expect from a 7” device. But at the same time it feels solid. The lack of a home button does cause me to pick it up upside down on a somewhat regular basis. The bezel along the side is a bit thin when holding the N7 in portrait, which does make it a little awkward to hold without inadvertantly triggering a touch event. Also there’s almost no room for content when typing in landscape and using the software keyboard. This is an issue I have on the iPad as well, but it is understandably worse here. Fortunately I rarely use either device in landscape.

One thing I’ve always disliked about the iPad was the aluminum back. For as good as it looks I never felt comfortable putting it down on a hard surface for fear of scratching it. The N7’s rubberized back feels a little slick sometimes, but I don’t feel like I have to treat it with kid gloves every time I put it down on my desk.

Connectivity hasn’t been an issue at all. When I’m at home or work I have access to wifi, so I don’t miss the lack of a cellular data option. And in the rare instances that I may find myself in a wifi-less situation, well there’s a reason I pay AT&T for the priviledge of tethering my iPhone.

Bluetooth also works as expected. The N7 paired perfectly fine with my ThinkOutside Stowaway keyboard.

Battery life is a big thing for a lot of people. I am one of them. I get nervous when the battery on my iPhone goes below 90%. The N7 never once died on me over the course of the week. It may have gotten down into the 30s by the end of the day some days, but really that’s still plenty of juice.

To satisfy my inner nerd, I logged the battery percentage 5 times during each day (except the first). I’ll have a little more to say about how I did this later, but here’s a handy table with the results:

Date/Time 7/22 7/23 7/24 7/25 7/26 7/27 7/28 Average
07:00 100 100 100 100 100 100 100 100
12:00 94 90 83 81 87 73 100 86.9
16:00 70 59 51 73 66 67 82 66.9
19:00 46 37 43 53 49 59 71 51.1
22:30 - 24 27 38 38 53 59 39.8
Average 77.5 62 60.8 69 68 70.4 82.4 70.0

Software

Onward and upward to software, starting with the built-in stuff. It’s all usable. There are a few mildly annoying idiosyncracies though. The predictive typing on the default keyboard works well enough, but it doesn’t show up every place that there’s a text field so that’s a little confusing. Text selection feels hit or miss, but that could just be me not really getting how it works on Android. And to be fair, sometimes it’s janky on iOS too. The interface for setting the wallpaper is awkward, but again I could just not be grokking how it’s supposed to work.

I can see and mess about with the file system. You can not imagine the joy this brings me. I can actually click a link in Chrome and have a file download to a folder instead of copying the link into Pastebot and pasting it to my Mac to download. Seriously one of my favorite features of Android.

Speaking of Chrome, I like it a lot. Being able to see tabs that I had open on another device is killer. Yes, iOS is getting this feature in iOS 6, but Chrome has it now and it works great. It’s actually made me switch to Chrome as my desktop and iPhone browser too. One of the big complaints about Chrome on iOS is that it’s practically impossible to use bookmarklets so you can’t, for example, save things to Instapaper or Pocket very easily. Chrome on Android solves this problem for me by having an extensive Share menu that third party apps and services can hook into. I doubt we’ll ever see this kind of thing from Mobile Safari.

Widgets. I love widgets. I love them in my Dashboard on OS X and I love them on my secondary home screens on the N7. To be able to just tap an icon and automatically start a new Evernote note is fantastic.

Notifications are better in almost every way than on iOS. That’s all I have to say about that.

I do have a few miscellaneous nitpicks with the built-in software. If I want to delete an app I have to click through two modal dialogs to do it. It’s only one more than iOS makes you tap, but it’s still annoying. The Gmail app is good, but it doesn’t scale emails down to fit the window so more often than not I have to scroll horizontally to see the whole message.

Third party software seems to be where Android gets dinged the most. Having never used an Android device prior to the N7, it was certainly my impression that I wouldn’t be able to find any software to use on it. The reality was that I didn’t have much trouble finding usable apps at all. And most seemed to be regularly updated. They’re not as pretty and polished as most of the iOS apps I’ve used, but I prefer function over form anyway (I was a Linux user for years after all).

There are five apps in particular that I’m really digging on the N7 (and look at that: going to a web browser and getting links to them is trivial).

sl4a is the Scripting Library for Android. I can write Python scripts that can actually interact with the OS and do useful things. I can write Python scripts that don’t interact with the OS and do useful things. For example, I wrote a little program that will pop up my current GPS coordinates. Now I’m sure there’s an app in the Google Play store that does this (I honestly didn’t bother to look) but being able to write it myself, on the device, makes this my favorite application on the N7 hands down.

DroidEdit is a code editor. It works as you would expect a code editor to work with syntax highlighting, etc. And it has two-way hooks into sl4a. I can use it as an external editor for sl4a and I can run a script from DroidEdit using sl4a. It’s a similar workflow to what I use on my Mac and can’t use on my iPad.

Locale is a bit like IFTTT for your Android device. I can set up actions to be performed when certain conditions are met. For exampe, my battery logging above was done by scheduling this Python script to run at predetermined times of the day.

Hacker’s Keyboard is a replacement keyboard (another thing you’ll never see on iOS). While the stock keyboard is perfectly fine and usable, Hacker’s Keyboard just makes more keys (like numbers and punctuation) easily accessable. It also includes control, function and arrow keys that I’ve found helpful in a few situations.

Dropsync automatically syncs a directory on your N7 with a folder on your Dropbox. No need to install a middle man (like Goodreader on iOS for example). It’s fantastic.

I’ve done a bit of reading on the N7 as well. The Google Books app isn’t horrible. It remembers your place in the book, but for some reason doesn’t want to remember what book you were reading from launch to launch. I installed the Kindle app but haven’t done much with it just yet. Comixology works well and I don’t have any complaints about it, but I still think it’s a better experience on the iPad’s larger screen (sorry Myke).

I’m using gReader Pro for RSS. It’s no Reeder, but it gets the job done. BaconReader works well enough for reading Reddit and Hacker News Droid does the same for Hacker News. I have yet to find a Twitter client that I like as much as Tweetbot, but Tweet Lanes is almost there.

I suppose I should say a few words about gaming to close this section out. I’m not a huge gamer by any means. I play casually, but I don’t have the attention span needed to play most of the more popular games these days. That said, you know what does hold my attention? The DOS games of my childhood. Thanks to the plethora of DOSBox ports to Android (I’m using DosBox Turbo) I can boot up a game of Space Quest II wherever I am. It’s literally my gaming dream come true.

Conclusion

Now that my experiment is done, I can honestly say I don’t miss my iPad. Could that be because the Nexus 7 is still new and shiny? Absolutely. I’m not saying that I’ll never use my iPad again. But the N7 is truly a computer in your (cargo) pocket. iOS devices, as great as they are, have always felt more like game consoles: you put in your cartridge, do one thing, then put in another to do something else. I like to fiddle. I like having power and control over my gadgets. The N7 gives me that.

Would I tell the average non nerd to run out and buy a Nexus 7? Doubtful. I think the iPad is definitely more appropriate for them. But for a nerd like me, it’s been nothing but a breath of fresh geeky air.

Nexus 7 Notes

By way of a preamble: I bought a Nexus 7. I really like it. I’m not going to start using a ChromeBook or Galaxy S Flavor of the Month. I’ve never touched an Android device before. These are my raw notes after using it for about a day ( well mostly, I did some minor cleaning up and added relevancy links where appropriate)

  • maybe my hands are just baby smooth but the back feels very slick to me. But I like that it’s not aluminum makes me feel better about putting it down on a hard surface
  • 7” form factor is pretty decent
  • not sure how suited it is for creation, but seems great for consumption. I’m OK with that
  • Android 4.1 (I refuse to call it Jelly Bean) doesn’t suck and I’m a little excited to discover the little things it can do
  • haven’t noticed too much lagginess
  • so nice to just be able to go to the website and download the Newton emulator
  • I may not hate the headphone jack on the bottom
  • it’s not retina but it’s pretty damn close. Some things look somewhere in between non retina and retina. Icons and whatnot here and there
  • widgets are pretty cool
  • as much of an Apple “fanboy” as I am, I do love the ability to hack on shit
  • while I don’t think it’s going to take over the world, I think this is a good time to get on board with Android
  • the no landscape on the home screen thing is weird
  • the power button has strange ideas about what constitutes a long hold
  • NES EMULATOR!1!!!1!

Things I’ve done on the Nexus that I could never, and probably will never be able to, do on iOS:

  • downloaded apps from the web and installed them
  • downloaded files from the Dropbox app to the device memory to open in another app
  • attached to my Mac and dragged and dropped files onto the device
  • launched a terminal emulator and interacted with the file system
  • installed a Python interpreter and it’s not crippled (even if it is 2.6.2)

How I Back Up

It appears the post I wrote about downgrading from Mountain Lion to Lion has become wildly popular (relatively speaking). The reason I was able to restore all of my data (and then write that post) was that I had a recent backup. Backing up is probably the single most important piece of maintenance you can perform on your computer. And having multiple backups in multiple places is also a pretty stellar idea. So with that in mind, I thought I’d share my current backup strategy.

  • Hourly: Time Machine to a Time Capsule.
  • Daily: Arq, which backs up my home folder to Amazon S3.
  • Monthly: SuperDuper!, which clones my entire hard drive to an external USB drive.

This setup works really well for me and I haven’t been tempted to change it since I started using it (which is a minor miracle in itself). The most important facet is that it’s pretty much friction free. And that’s what you want in a backup system: something where you can set it and forget it until the (hopefully rare) moment you need to use it. The Time Machine and Arq backups happen automatically, so I never need to remember to do them. If I were to keep the external drive attached to my MacBook Air at all times, I could also schedule SuperDuper! to run its backups automatically as well, but I don’t so there’s a monthly repeating task in OmniFocus that ensures I do it. 

There are other solutions out there, especially in the online backup arena (you can check out CrashPlan, Backblaze, or Carbonite, for example). If you want even more information on the topic, the Mac Power Users Podcast recorded an episode all about it. I highly recommend checking it out.

Instant Safari Porn Mode

Every browser keeps track of your history. This is handy in most cases, like if you accidentally closed a tab and want to go back to it. But there are some instances when you don’t want your browsing tracked: you’re doing your banking, you’re searching on Google, you don’t want your wife to see all the porn you’ve been looking at. For those scenarios Safari’s Private Browsing mode has got your covered. You just go up to the Application menu and click. No problem. 

But what if you want to always visit a certain site in Private mode? You could open a new tab, type in the URL and go click the Private Browsing item. Sure it’s not an overwhelming amount of work, but why not automate it? (Bet you didn’t see that coming.) Apple doesn’t provide a keyboard shortcut for Private Browsing, so you could set one up in System Preferences and shorten the process a little bit. You’d still have to open the tab and type in the URL yourself though. 

Fortunately, Safari has decent AppleScript support and opening a new tab and setting its URL are things it will let you do. You can also script the clicking of menu items (even if it is a bit ugly). With all the pieces in place, here’s a script that ties everything together:

Not only will this script open your new tab, if it’s already open it will close it and exit Private Browsing mode. 

One unfortunate caveat for Private Browsing: you can’t apply it to a single tab; it apples to all tabs. So if you’re logged in to a web page in another tab and try to do anything with it, it will forget that you’re logged in. You can, of course, log in again.

Two Automation Articles from Mac|Life

I don’t normally link to these “N Totally Awesome Things You Can’t Live Without” type posts, but some of these were genuinely useful. Sadly, I don’t remember who pointed me in their direction.

15 Automator and AppleScripts You Can’t Live Without

7 Awesome Hazel Rules You Can’t Live Without

Lex Friedman:

Apple doesn’t want to annoy you, or restrict you from doing the things you want to do with your Mac. So if you run a script “by hand”—whether from AppleScript Editor, from within Automator, or as a standalone app or droplet—it should be able to do whatever it’s scripted to do, just as it can today. Put another way, you should be able to continue to run scripts by hand just as you always have.

I certainly hope that’s true. But I wonder how it will effect apps like FastScripts or LaunchBar that allow you to run scripts you’ve created “by hand”….

I had set up a few of these on my own, but it’s nice to see them all in one place and maintained by Brett.

How to Downgrade from the Mountain Lion Developer Preview to Lion

  1. Have a recent SuperDuper clone of the machine you want to downgrade created before installing Mountain Lion (the first machine).
  2. Have another computer currently running Lion (the second machine) and a USB drive of at least 8GB.
  3. Install and run the Lion Recovery Disk Assistant on the second machine.
  4. Boot the first machine from the USB stick created in the previous step.
  5. Launch Disk Utility.
  6. Restore the first machine’s hard drive using your SuperDuper clone by dragging the drives from the left hand pane to the Destination and Source fields,respectively, on the right.
  7. Stop trying to use development versions of operating systems as your primary operating system. Shit will break. Often badly.

You should spend some time trying to refine your way of working but, in the end, you should never forget that systems and tools are less important than something else — actually doing your work.

Justin’s Veritrope site is one that I should have been following but wasn’t, which is weird because I’ve stolen a thing or two from his scripts. Fortunately that error is easily rectified and there is now a link to his site in the sidebar.

Since I do >90% of my searches with LaunchBar, I created a custom search template. To create one, display your LaunchBar index (from the Index menu) and select Search Templates. Then tap the Add button and add a new search template for DuckDuckGo pointing at http://www.duckduckgo.com/*

Custom search templates? Thank you David for reminding me how little I actually know about LaunchBar’s functionality.

Interesting Links - Week 3, 2012

Diurnalize - Silly daily challenges.

Steven Frank: Notes - Who doesn’t love Steven Frank? Guy knows his shit.

iBooks Author - Announced by Apple this week, I think this could be a game changer for digital publication.

Evernote and MarsEdit

I use MarsEdit to post most of the articles (if you want to call them that) I write here. It’s a great application, but I don’t like writing draft posts in it because there’s no way for me to access them when I’m not on my Mac (at least not until Daniel gives us MarsEdit for iOS). I’ve tried to write my drafts in text files stored in Dropbox using vim, TextMate, nvALT and Byword and then mashing together some combination of AppleScripts, shell scripts, and TextExpander snippets to easily get the content into MarsEdit. Every “solution” was hacky and I grew dissatisfied with them all so quickly that I lost track of which one I was using at a given time. But since The Switch to Evernote, I’ve come up with what could be the One True Blogging Workflow for me.

I created a notebook in Evernote called @macolyte_drafts where I keep a note, written in Markdown, for every post I’m currently working on. Once I’ve given up on trying to make the post sensible, I hit ⌘ ⇧ M and the following AppleScript is run (thanks to another one of Daniel’s excellent applications: FastScripts) to turn the note into a new blog post entry in MarsEdit:

(Some bits of the code are from here and here

After the piece is published, the note gets moved to the @macolyte_pub notebook (sadly, Evernote doesn’t support moving a note from one notebook to another via AppleScript so I have to do it manually). And that’s it. My drafts are always with me and getting them published is not in any way hacky.

Interesting Links - Week 2, 2012

Awk - A Tutorial and Introduction - Pretty self-explanatory. 

TThor Newsletter - Long list of interesting links, delivered to your email inbox every week.

The Kingdom of Loathing - Ever wanted a pet sabre-toothed lime? Have an urge to celebrate the Festival of Jarlsberg? If you answered yes to either of these questions, then this the online game for you. But even if you didn’t, forget your fancy World of Warcraft graphics. Embrace the simplicity of line drawings. 

BBEdit

A couple of good, detailed posts about BBEdit this week. Not an editor I use on a regular basis, but I’ve tried it a few times here and there. It doesn’t suck.

Macdrifter - Moving Text Editors: Taking BBEdit Seriously:

What I’ve discovered is that BBEdit is an incredibly complicated and simple tool. It’s a plain text editor on the surface, but it’s highly customizable (like Textmate or even Vim). I’ve been documenting some of my experience and this post describes some of what I like about BBEdit 10.

Clark’s Tech Blog - Problems with BBEdit:

Right now, to be honest, I write all my BBEdit scripts in Python using Appscript. It’s far more easy to write and I can leverage all the Python libraries to do things.