I love those weblog posts where people make a huge deal about how they are going to start blogging more.

I am going to start blogging more!

Hopefully as I start posting more I can keep working on Dungeon which powers this weblog.

I hope you are not reading this post 8 months from now and it’s still at the top of torrez.org.


I have been working on an iOS app that uses iBeacons extensively. I can’t say much about it but because I have been thinking a lot about these unique identifiers (UUIDs) walking around in the real world my brain has been thinking about how these are like browser cookies you wear.

Your Fitbit’s Bluetooth Low Energy UUID is a cookie. Your face is a cookie. Your heartbeat is a cookie. Your eyeball is a cookie. Your phone’s digital footprint is a cookie.

Some of these cookies you can change. Others are obviously permanent. It goes without saying that to have a database of these “cookies” is valuable. To be able to bridge a gap between your face in friend’s photo and your arrival at a store is going to be a real thing that we will experience soon.

Having spent 5 years at an ad network, hell, just running Ghostery is enough to open one’s eyes at the massive amounts of time and money put into setting and retrieving cookies in your browser to build a profile of you.

When that exact hand-mixer you were reading about this weekend shows up as an ad on the NYTimes it seems coincidental and maybe a little creepy but OK. When future store employees greet you by name or you receive an un-acknowledged discount because you’re a valued customer it’s probably going to feel just as creepy but OK. My guess is people won’t really mind it.

Some other links I found:


  1. Dan Hon’sThings That Have Caught My Attention” This is a daily email that reads like it spilled out of Dan’s head as he was writing it. Full of good thoughts on stuff. I like stuff. Especially all the stuff Dan writes about.
  2. Dave Pell’sNextDraft” Dave has been doing this for a few years now. It’s 100% links you want to click. The writing is smart and funny. Beware: the subject lines are the most effective subject lines in the history of email.
  3. Ann Friedman’sThe Ann Friedman Weekly” Though only weekly, I just love the dense block of links that are full of interesting things to read. I don’t even know how I found this but I am glad I did.
  4. Rusty Foster’sToday in Tabs” I laugh out loud when I read this email. I LOL.


It’s been over a month since I left Tugboat Yards. Since I left I have been spending time catching up on stuff I needed to do and have been wanting to do. One of those things was to sit down with Xcode and take a real stab at learning iOS.

Here are things I learned. They very well might be wrong, but I am so excited about finally making iOS apps that I felt like sharing what I’ve figured out.

  1. You don’t have to use Interface Builder! I think I knew this was possible, but I assumed it was the old way of doing things and all new apps were using IB and Storyboards. I like learning what’s under the hood and so I was pleased to find out building an iOS app by declaring your own view controllers and UI elements in code was a perfectly sane thing to do.

  2. ARC is a godsend. I started programming in C and later C++ so I understand how pointers work, but I also spent the last 15 years writing PHP and Python so I haven’t had to worry as much about memory allocation. While ARC doesn’t mean I can completely forget about it, it was much easier to get started. (Related: What kind of leaks does automatic reference counting in Objective-C not prevent or minimize?)

  3. Default iOS 7 UI is actually pretty terrible. When the first iOS 7 apps started appearing on my phone I liked them. A lot of people were complaining about the new look of iOS 7 but I didn’t understand the hate. All the apps I used looked good and (outside of the new keyboard) I liked it. Now that I am using the default widgets I am understanding why people dislike it so much. It turned out I liked them because the developers of the apps I used had spent a lot of time making sure they looked good.

    I’ve built apps for OS X and Windows and as a non-designer the most comforting thing about making stuff for those operating systems is that the default elements can stand on their own without extra styling. A default button in iOS 7 is simply a non-bordered rectangle with a label. The first app I made I felt compelled to point out the button was a button because I hadn’t yet learned how to override that style to make it more obvious. Ugh.

  4. The documentation is amazing. Once you get your head around how to layout an MVC app and the basics of Objective-C the documentation becomes your best friend. I am so used to searching the web for documentation on libraries and services that having it built into my editor and being so easy to use is a whole new world to me. IDEs: Who knew?

If you’re a web developer who has wanted to get into iOS I think now is a good time. I am only a week in so I could be wrong about everything I wrote above, but it was how I was finally able to feel like I could start making things in iOS.

And if you want you can start the way I did by creating an Empty Application, instantiating a UIViewController, and setting it as your window’s root view controller. No Interface Builder required! I wish more beginning iOS tutorials started this way.


I’ve known the basics of Vim for quite a while. You can’t work in the world of Unix-like systems without running into it. Although there are more friendly editors like pico and nano, Vi/Vim is almost guaranteed to be available so it has always been worth knowing the basics. At the very least you have to know :q!.

Due to my frequent switching season fever, I’ve taken stabs at making Vim a more daily part of my work life. Each time I try I’d say I’m driven by three things equally: a desire to perform complex text tasks quicker; a desire to use a stable text editor that won’t be abandoned or dramatically change from one year to the next; and, of course, a desire to tinker and yak shave. I find yak shaving extremely beneficial for myself. It’s like recess for my brain.

So after quite a few years of attempting to switch to Vim, I finally managed in 2013 to switch almost entirely. I still find myself opening SublimeText for high-level code browsing, but day-to-day it is full-screen Vim with horizontal splits and iTerm tabs for me.

Here is how I did it:

  1. I changed my bash shell to vi mode. I knew that default bash shell was Emacs mode and so cursor motion like C-a and C-e are burned into my brain even though I haven’t used Emacs in over 10 years. You don’t get all the nice bits of Vim like ciw, but you do get a lot of the cursor movement that you need to know to be good with Vim. To turn it on run: “set -o vi” at the command-line to test it out and put that command in your .bash_profile to use it for every session. You can also edit your .inputrc to use Vi mode everywhere GNU Readline is used (like the command-line MySQL client), but I haven’t tried that yet. You can read more about Vi mode here and here.
  2. I started with a blank .vimrc. You see a lot of people sharing their .vimrc files and they are usually these sprawling, multi-page settings files that are almost incomprehensible. There is always good stuff in there but if you don’t know why they’re doing things and just copy one completely you’re going to have a bad time. I know I did. Every time I quit trying to use Vim it was because there was stuff getting in the way of what I wanted to do. When you start from plain, vanilla Vim you are forced to figure out exactly what you want to do, Google it, and then learn how you can alter your settings file to achieve what you want. Plain, vanilla Vim is perfectly fine for editing. I see my .vimrc as a way to just make it a bit comfortable to me.
  3. Ignore Pathogen and Nerdtree and Janus and just use Vim. Like what I said above, to learn Vim I had to learn Vim. Not Vim with fancy file browser trees or massive add-ons that made Vim more like TextMate.

The nice thing about learning something that has existed for over 20 years is that anything I’ve wanted to do has already been explained and written about many times. This is how I did it, and if you have always wanted to try or have been discouraged in the past due to the same mistakes I made, I think you should try it again.