16 Jun 2013
A quick recap of some of what I found interesting from the WWDC 2013 keynote. This isn't an exhaustive list, just the bits and pieces I found particularly interesting.
- Obviously, the UI overhaul is pretty huge. I'm not sold on every element of it (many of the icons are hideous, it looks like some of the transparency makes using some apps challenging), but overall, it's much needed and I many of the issues will be resolved by the final release.
- Background processes are huge, and if Apple can really get that working without killing the battery, it's a massive win.
- Control Center (the quick settings panel) is about 3 years overdue, but still, I'm enthused.
- Gestures, gestures, gestures. Loads of new gestures to make getting around the UI easier, and moving out of a world where everything in iOS is spoon fed to the user. It's still easy to get around, but power users should be able to flip around the interface rarely using a button.
Overall, it's just a massive upgrade and I really can't wait for next couple of betas, as they start to zero in on the final release. I think this is going to be a big win for iOS (and hopefully will be out with a new iPhone in the next few months, because my existing iPhone is on its last legs).
- Mavericks. Horrible name. Just awful.
- Multiple monitor setup, full screen apps and desktops on dual monitors, putting the dashboard on your secondary display, having the menu bar/dock available on both displays; these all sound minor, but will have a major impact on my workflow. Huge, huge win. Oh, and that doesn't even mention the ability to use an Apple TV-hooked up display as an external display.
- Tags as a first-party element in the OS is a ballsy move. Chances are, most folks won't use it. But if Apple can get your average user to understand tags, it's a big move towards breaking the file/folder paradigm that has held users hostage for years. And will help make the Finder not completely useless. Speaking of making Finder not useless…
- Tabbed Finder. Simple, useful.
- iCloud Keychain, if implemented properly, could be the sort of seamless "everything just works across your Mac and iOS-devices" experience that Apple has needed for a while. But, then again, there's been little that Apple's been able to do on the iCloud side that's been seamless.
- Battery life and performance. Memory compression. "AppNap". All clever ideas to eek performance out of the OS in ways that the user will notice, but won't impact your experience. If they work, these little tweaks (I shouldn't call them little, as I imagine there's a huge amount of work that went into them) will be the things that Windows adopts soon.
I think I'm more excited about Mavericks, except for the name. Both of these upgrades seem like they are meaningful and make me feel like Apple's got their sea legs again, after a tumultuous few months. I'd actually advise, if you have a couple of hours to kill, checking out the keynote and seeing some of the features in motion.
09 Jun 2013
Tomorrow, Apple opens WWDC with the normal keynote, and for the first time in a while, I don't think anyone really has a clue what to expect.
Everyone out there is making their predictions, so I thought I'd make mine. Of course, hours before I finished typing this, I listened to the most recent Accidental Tech Podcast and they pretty much hit on my expectations. But I figured I'd shared them anyway.
In iOS 7 (which I think we're all pretty sure will be announced), I'm betting on two major changes: the ability for apps to share and edit the same data, and some sort of background processing API.
For the former, I'm guessing that there will be some changes to iCloud to support data sharing—letting apps see data from other apps, where maybe you'll have to approve that the app can edit the data, which would (behind the scenes) drop a symlink into its data store, so that both apps can see an edit the data. You could remove access for an app to see data, but different apps could all see and edit files if allowed.
(Another thought would be iCloud doing away with the per-app storage and moving to some sort of file-type based store.)
I would also guess that apps will be able to expose that they can handle certain file types and you'll see that in the share widget. There's going to have to be some way to edit those share widgets; if I install a few different apps that say they can handle text files, it might get unwieldy to see a list of 30 apps that I have to scroll through to pick out the one I want. But hold and tap to remove from the widget would seem to work.
Newsstand can trigger a background update of content for the apps that live in it. It would be nice to expand that ability to all apps. Either triggered on a schedule (wake up and run this code—not the full app—every four hours) or maybe started by a push notification, the ability for an app (let's say an RSS reader or Instapaper or Omnifocus or the like) to grab some data and update themeselves in the background, without destroying the phone's battery.
On the Mac front, I don't have a lot of predictions, but if Apple could update iPhoto to do wireless sync, it'd be nice. And maybe having a second display not be useless when your using a full-screen app. Small wishes.
The WWDC Keynote is always an interesting beast. It's dork heaven, but maybe not the most interesting thing to not developers/technologists. It starts at 1pm ET and will likely distract half of our engineering and ops teams and ruin our productivity.
09 Jun 2013
With the release of Sean Nelson's Make Good Choices, there's been a good bit of retrospective Harvey Danger press. And rightfully, so, as HD put out three remarkably good albums (four, if you count the b-side/greatest hits album). I covered heading to a Harvey Danger concert about 7 years ago. Forgive the writing. It's painful to read.
Their second album, King James Version is probably the best. It's musically all over the place (in a good way), lyrically phenomenal, and has three or four standout fantastic tracks. It's also one that almost no one has heard. I finally found it used, probably four years after it had come out.
Turns out, that's how most people find it.
There's a really well written look at the album on PopMatters by Even Sawdey. It's worth a read, if only to convince yourself that you too should become a fan of Harvey Danger and King James Version.
"I’d met lots of people over the years who told me they knew of the album, had bought it for a penny on eBay, had found it one evening out someone’s coffee table, had discovered an entire landfill made out of it, and it always made me grateful. But really going out into the world and seeing the way people had internalized the songs, knew every word, leaped for joy when the opening chords rang out—it simply alleviated several years’ worth of compounded anxiety and allowed me to move on. And away from music in a certain regard. Not entirely, but certainly further away than I thought I ever would go." Nearly a decade after its initial release, it’s amazing how potent and powerful King James Version remains, getting better with each passing year like a fine wine.
Here's a song from King James Version, called "Pike St./Park Slope".
01 Jun 2013
A couple of summers back, we went to Edinburgh for vacation. It was my second trip to Edinburgh (I first went back in 2002 for EuroHaptics). We loved Scotland and loved the city and have talked about going back.

It's there that I also really started drinking Scotch, which has now become a passion, which you can read about. I've probably reviewed 15 Scotches, and I've tasted at least three that are 20 years or older.
I've been to Edinburgh and Dublin (and seen parts of Scotland and Ireland), and loved the Scottish land more. I've drank Scotch whisky and Irish whiskey, and loved the Scotch more.
I'm close to being kicked out of my Irish heritage.
Then, over the past few weeks, it's dawned on me that some of my favorite music and bands of the past few years are also from that same small part of the globe.
We Were Promised Jetpacks. Camera Obscura. Belle and Sebastian. Franz Ferdinand.
Lately, it's Frightened Rabbit and Admiral Fallow.
Frightened Rabbit has been around for a while, but it's only recently that I've really been listening to them. It's odd—I've seen them live, knew I liked them, but still didn't really dig in and listen to all their stuff. It's quite good.
More exciting to me is Admiral Fallow. I'm not sure there's a band that's hit my sweet spot more, as of late. Orchestral folk rock, like early Fanfarlo or maybe a bit like Ra Ra Riot (pre-Beta Love).
The history, culture, cities, drink, and music. All amongst my favorites. Like I said, should have been born a Scot.
22 May 2013
Let's just preface this with the statement: I am an idiot.
A few weeks back, I was in the bathroom, brushing my teeth, and I moved in such a way that my iPhone 4S fell out of my pocket straight into the toilet. I did the old "quickly throw it into a bowl of rice and let it dry out" trick, and the phone really seemed no worse for the wear.
Except now the battery only lasts about 14-16 hours, tops. I don't make it through a full day. Not a huge deal, though. I can charge it if I need to, and I'm planning on upgrading to the next version of the iPhone when it comes out this fall (maybe?).
However, I started noticing some weird behavior with the headphones/speakers. I'd be listening to something and all of a sudden it would go silent. It took me three or four times before I noticed (by double-clicking the home button and flicking left to see the volume slider) that the phone thought it was connected to a dock connector.
It definitely was not connected to a dock connector.
Still, this was mostly an inconvenience. I would just unplug the headphones and then plug the headphones back in, and everything would work.
Until the last couple of days.
When the phone decided it was always connected to a dock connector.
That sucked.
I googled and googled and eventually stumbled upon this post on the Apple forums. Using Assistive Touch? Worth a try, I suppose.
So:
- Go to Settings
- General
- Accessibility
- Assistive Touch
- Turn it to "On"
- Now you see a little white dot in the upper left, click it
- Click Device
- The bell will likely say "Unmute", click it
- Now your sound works
Well, holy crap. First, I'd never played with the Assistive Touch stuff. That's a really wonderfully implemented feature for folks who are maybe less adept (or not physically capable) at navigating the iPhone's gestures. Seriously good stuff by Apple. Secondly, why in the world does Assistive Touch know that my phone's speaker is "muted" but not the rest of the Apple OS. Apple giveth and Apple taketh away.
13 May 2013
I run Debian (pure Debian, not Ubuntu) on my server, and a week or so ago, Debian 7 (Wheezy) was released. I figured it would be worth the effort to upgrade, so I took about an hour of my Sunday to go through the process. Just in case I ever need to do it again, here’s how I did it. (I started from these upgrade steps.)
First, Backups
I take pretty regular backups. I run just a couple of sites on my server, and I use Panic’s Transmit to do a basic rsync of the files for my sites to my local machine (and then store those on Dropbox) to make sure I always have a copy of my sites. I made sure to also grab a few other things I backup (apache configs, mysql configs, vim configs, databases) so that I would have the freshest backups.
I also used my host’s snapshot feature to take a snapshot backup of my server. In a worst-case scenario, I would just go back to that state and pretend I never tried this whole thing. The backups cost me about $3/mo, which is well worth it to ensure I can always get my server back up and running.
Prepare for the upgrade
Debian still hasn’t quite figured out the seamless upgrade, so you have to do work some mojo. You need to edit your /etc/apt/sources.list file (likely as root or, the way I do it, via sudo) to replace everywhere it says “squeeze” with “wheezy” thats’s a debian repo. I didn’t replace the nginx repos, not knowing if they are updated yet.
Now, let’s start getting things upgraded. Anywhere I’m executing stuff, assume I’m running “sudo” before it. You might do it as root, or have your system setup differently.
apt-get update
apt-get upgrade
Now wait a while. Every so often, you may get asked if you want to keep your changed version of a conf file. I’ve found that’s safer.
When that’s all done, let’s do a little house keeping.
apt-get autoclean
apt-get autoremove
Those commands will clear out any old packages and free up some disk space. Depending on how much disk space you have free, that may be necessary for the upgrade to Debian Wheezy. (Then again, if you’re running things that close to the edge, you may not want to upgrade anyway.)
Now, the big one
Time to actually upgrade our version of Debian.
apt-get dist-upgrade
And now we wait. And wait. And wait a bit more.
And then, yikes. Some errors followed by this line:
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
Turns out that sudo’s environment didn’t have those paths in it. I added those paths to my environment and then ran the upgrade like this:
sudo -E apt-get dist-upgrade
but a smarter way would be to add this line to your /etc/sudoers file
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
So, let’s try this again:
sudo -E apt-get dist-upgrade
And, once again, we wait and wait and wait. And, hey, we’re done! Except, mysql isn’t starting. Huh. Nor is apache2. Well, that’s not good for a web server.
Some reading of logs shows that I’ve got two settings in my /etc/my.cnf that mysql 5.5 doesn’t like. Commenting out these lines:
language = /usr/share/mysql/english
skip-innodb
got mysql up and running.
Now, apache2 is complaining about a non-existent httpd.conf file. That file used to be there, but apparently the apache2 upgrade got rid of the empty file. I just commented out the line referencing it in my apache2.conf. And wouldn’t you know, apache2 starts up just fine.
I tested my sites, they all seem to work. I sent myself a test email, that seems to work too. I test a few other things (logging in via ssh, using git, checking the crontab) and everything looks to be working.
And, the denouement …
cat /etc/debian_version
7.0
05 May 2013
"'In the current culture, it takes more courage for someone like Chris Broussard to speak out than for someone like Jason Collins to come out,' says Sprigg, a former pastor. 'The media will hail someone who comes out of the closet as gay, but someone who simply expresses their personal religious views about homosexual conduct is attacked.'"
I'm not quite sure I've ever read something that so clearly lacked recognition of the world that we live in.
Jason Collins did something reasonably courageous. He came out of the closet, while still an active athlete in a major professional sport. It will, unquestionably, make his life more difficult next season. There will be players and coaches who will be uncomfortable with him, players and coaches who will say things on the court, and undoubtedly fans who will say horrific things.
Hell, fans say horrifically offensive things to players who aren't gay. It's going to be a few seasons (and likely when another, higher profile athlete comes out) before it's normal.
I suppose it may take more courage to espouse views that are so far out of the mainstream, views that represent a world view that is 20 years out of date. If I was to espouse misogynistic or racist views, yes, I would be attacked by the media (and most good people). This isn't people fighting for racial or gender equality or the 40 hour work week.
It takes courage to say things that are unpopular. The difference is that you should not expect to be viewed as a martyr for being a horrible person. Speaking out against homosexuality is your right, but you should expect to be attacked (rightfully) for being an idiot.
(Via CNN.)
01 May 2013
WordPress (which powers this here blog you're reading) has been in the news a good bit lately, but not for positive reasons. There was a massive, widespread attack on almost any site running WordPress that aimed to exploit sites to use them to attack more sites and make the botnet even larger. A week or so later, an exploit was announced in two of the most common caching utilities (including one I've recommended) that would allow an attacker to potentially get access to your web server.
At work, we spent a few days fighting the first attack, which was seriously massive. The attack simply hammers your WordPress login, looping through different passwords trying to login with the user "admin". The easiest way to ensure that you're safely protected from this attack (and many future attacks) is to do two very simple things:
- Don't use admin as your username
- Don't use an easy password
Simple, right? WordPress, these days, doesn't default to the admin user. But in the old days, it did. If you login to your WordPress with admin, go into your WordPress Dashboard, go to Users, add a new user, make it an admin. Then delete your "admin" user, which will prompt WordPress to say "do you want to move the posts for 'admin' to another user?". Yes, you want to do that. Move the posts, and now you've got a new user who can do what your old "admin" user could do, but you've minorly increased your security.
And don't use a stupid simple password. The safest thing would be to use a series of words, like "super ugly car fart". Easy to remember, hard to crack. At a minimum, use a non-dictionary string with some numbers and punctuation.
If you want to take it a step further, you could install a plugin like Simple Login Lockdown, which will block IPs that try to brute force your login. It's not a great solution (a distributed attack would never get blocked), but it'll block the simple stuff.
The solution to the exploited caching plugins is pretty easy: keep your plugins up-to-date! If you have WordPress and you don't login weekly to see if there are plugins in need of being updated, you should turn off your WordPress site. If you're not updating more than a couple of times a month, you would likely be served better with a static site, or at least with a site hosted by someone else (Wordpress.com, Weebly, Wix, etc.) where they can worry about your security.
Or, even simpler: just don't use plugins. Use the default WordPress setup, and turn on "auto upgrade" if your host offers that option. There are few plugins worth the hassle. (I use Jetpack -- which is built by the folks who make WordPress, a Google Analytics plugin, the aforementioned W3TC and Simple Login Lockdown, and a Quick Login plugin.)
I know enough about WordPress to help out if you get in a pinch. If you're one of the 40 people who will read this far down, and you have questions, feel free to comment, tweet, or email me, and I'll try to help.
19 Apr 2013
I've held off writing about the tragedy in Boston, mostly because I'm still processing my thoughts. It hit close to home both literally (Boston, friends and family in the marathon) and figuratively (one day before the anniversary of the Virginia Tech tragedy). I'll have some thoughts to share at some point.
But, in the interim, here I am, glued to Twitter and reddit at 4am in the morning (with the television on as background noise) watching one of the most insane things I have ever seen unfold. I had fallen asleep on the couch watching TV, got up to head to bed, checked twitter, saw the MIT shooting, and thought "wow, that's close to home and such unbelievably bad timing."
And I stayed up just long enough to watch it develop into a manhunt and potential capture of the marathon bombers.
The Boston Globe/Boston.com are doing unbelievably great coverage. As are all sorts of folks on Twitter. TV news lags far behind.
We live in a new media world.
Emotionally, psychologically, I'm vacillating between being numb to the immense and disproportionate amount of damage these assholes have perpetrated; to being angry/excited to see them brought to justice; to being nervous that this is all happening just a couple of miles from my house, literally in an area I go nearly once a week.
It's now 4:03am. I've been watching this for nearly 6 hours. There's a good chance I may have to watch it for a while longer to see it brought to whatever conclusion it will reach. I'll process what I've seen later, but it has been a remarkable (not necessarily in a good way, but still remarkable) week.
15 Apr 2013
One of the things that I've been struggling at work is helping get projects and people aligned around solving for the right thing. Sometimes (possibly often …), a request will come in that reads something like:
I want you to build a hovercraft, because people have a need for travel, and a hovercraft satisfies that need.
And that's fine, right?
Except, in this scenario, building a hovercraft doesn't really solve the problem of travel. It is a possible solution, but it's a really complicated solution that maybe can't get delivered for years (we have to invent hovercraft technology). Maybe a bike would solve the problem? That would be easier. Maybe we don't need a vehicle at all—maybe we just need shoes.
This is a ridiculous example, but hopefully the point is clear. It can be hard to convince people that they're trying to solve the problem they want to solve (or worse yet, that they're simply solving the problem they think they have).
I've found this is common in tech organizations where you've got folks all around who are somewhat technical, and they get stuck on an idea, and that idea becomes the solution to every possible problem.
Man, it takes us too long to build stuff. We should setup some really complicated technological process that allows us to more easily build stuff.
The problem there is well stated. It takes too long to build stuff. The solution, however, is solving the problem that the person believes exists: that the lack of some technological process is the real cause of the "taking too long" problem.
That is, more often than not, a fallacy. Everyone gets hung up on the solution. The challenge is to help people get hung up on the problem: what is the issue, how does it manifest itself, what is the pain, etc.
I'm as bad as anyone at this. My brain starts making connections and rapidly gets to the point that I believe I understand the problem and that I've figured out the optimal solution (the biggest bang for the buck solution, in my mind). In thinking about this, I came across this quote:
If I were given one hour to save the planet, I would spend 59 minutes defining the problem and one minute resolving it
Albert Einstein was pretty clever.