With Six Days To Spare
Okay, so that took a lot longer than I had hoped.
Dungeon was reborn and in the process I killed Dungeon. I managed to get it back to working order, but it isn’t exactly where I want it to be.
Meanwhile! I get to work on Slack every day. Less than a month after the previous post I joined TinySpeck as a PHP engineer. It’s a lot of fun and I feel pretty lucky to be a part of it.
I won’t make any promises about my next post, but if you did read this I would really like an @torrez or an email sent to my address over there on the right.
posted on January 09
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
I hope you are not reading this post 8 months from now and it’s still at the
top of torrez.org.
posted on May 15
Your Face Is A Cookie You Can’t Delete
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:
posted on March 26
Mailing Lists To Follow
Here are some mailing lists I really enjoy seeing in my inbox.
- Dan Hon’s “Things 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.
- Dave Pell’s “NextDraft” 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.
- Ann Friedman’s “The 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.
- Rusty Foster’s “Today in Tabs” I laugh out loud when I read this email. I LOL.
posted on February 26
Four Things I Learned About iOS (That Might Not Be True)
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.
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.
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?)
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.
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.
posted on February 24
How I (Finally) Learned Vim
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:
- 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.
- 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.
- 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.
posted on January 04
How About Some Fucking Whimsy?
The original front-door to MLKSHK when we were in pre-launch mode. You had to click and drag-out a circle to get inside. The error page you see is also a joke because we use Nginx.
Two years ago I wrote a post with the subtitle “Complain about the way other people make software by making software.” It was then quoted in a book by Austin Kleon and every once in a while someone reaches out to me to tell me they liked the quote. The post was about empathy, making things, and thinking about the people who make things for you to use; but that subtitle is about making things work the way you think they should work because it’s a way to share your point of view.
I am not into tricks to get users like faking engagement or sucking names out of your contact list. I hear this is a really good way to get lots of users. I am sure investors love stuff like this and high-five your bro-hand in pitch meetings when you bring up shit like this.
Related to those tricks are dark patterns where developers purposely make things confusing or challenging for users so they can bill one more month or hope the user doesn’t notice they’ve sent out a few thousand friend requests to their landlord, mother, and people who bought a stereo off of them six years ago.
I believe people who do these things can go jump in a lake.
The only only only thing I think about when building things for people is creating delight. That is all. My job is to create a place that delights people. Whether I am making a bank or a chat room or a place to pay a DMV fee, my site’s #1 job is to delight the user.
This might include doing things like Willy Wonka-style buttons to get into secret areas, but it also includes creating clear, lighted paths, free of dark patterns and privacy shenanigans. It means giving your users stuff that feels good to use. It means giving your users nothing to think about.
Delight also means people don’t feel threatened by other users and the creators of the site are available as often as possible to help clear things up and keep an eye on problems. Delight means making your site fast, secure, and responsive to their needs and browsers.
Shit needs to work! Delight means testing your code like an adult rather than moving fast and breaking things like an energetic, baby hippo. Baby hippos are cute but you don’t want one holding your credit card is what I am saying.
So yeah, make delightful things. Be good to your users. (Refer to your users as users because that’s what they do, they use the stuff you make!) User is such a great word. I love to use it.
These are the things I believe and this is how I build things. Thanks for listening.
—Andre “Pretty Fucking Delightful” Torrez
This actually started as a blog post for the weblog at work. It ended up having too many swear words and veered off into non-work related thoughts so I figured it should live over here. My job right now is giving people the freedom to keep their focus on making delightful stuff. We’re called Tugboat Yards and we’re taking the hassle out of taking online payments and managing the relationship with your users.
We also have some news next week that I can’t wait to share!Amber joined us at Tugboat!
posted on September 25
1987 Check In
I may have mentioned it a few times but in case you follow me on
@rdio and was
wondering why all I listen to is old music it’s because I decided this year
only to listen to music released in 1987. Yup.
For a little history: in 2010 I only listened to music released in that year. It
was incredibly fun and I actually discovered some amazing bands I never would
have heard. I took a break in 2011 but then did it again in 2012. I loved it all
For 2013 I thought I would do something a little different and ran a poll on my
old weblog that @mat encouraged his followers to
enter “1987”. I don’t know why he chose 1987 but everyone loves Mat and so 1987
So far: it sucks. I hate it. There is rarely anything surprising. After the
first couple of months the novelty wore off. There are a few safe albums I can
jump to in my day—currently listening to The Lemonheads’ “Hate Your
Friends” on repeat. I might listen to some Dinosaur Jr. later. (Did you know
J Mascis played on GG Allin’s “Hated In The Nation”? It’s true!)
Prince’s “Sign O’ The Times” is probably the most surprisingly good thing I
discovered. I remember hearing it when it was released, but back then I was
a skater punk and had no time for what I considered pop music.
The C86 bands that released something that year are interesting but forgettable.
The birth of Industrial was worth a couple of weeks. But now we are into the
second half of the year and I am finding it harder to keep going.
Anyway, that’s why I am listening to so much old music and messing up your heavy
posted on August 19
The Second Part of My Reader Meter Idea
@mijustin asked me via Twitter what the incentive
(beyond just being a patron of stuff you like) would be for people to sign up in
the first place to my idea I posted about a week ago.
It’s a good question and I do have another idea that would fit well within
Readerkit so I am going to tell it to you now.
On MLKSHK, the site my wife and I created a few years back, there is a little
banner that shows up between posts where you last started reading:
It is created when you first view your incoming stream and displays the time
since it was created:
You can use it to “jump” back to where you previously started and work your
It is an automatically generated bookmark that is inserted in between posts so
you can determine where you last left off reading so you can be sure to catch up
with every post.
I could see the initial sell to readers would be: “sign-up and get this handy
bookmark generated for you”.
Readerkit could also send out a monthly “Here are posts you might not have
seen” along with the bill described in my last post.
The only requirement would be the site’s publisher would have to insert a
banners and links.
So there are two ideas for you.
posted on August 15
The Reader Meter
I have had this idea bouncing around in my head for a few years. It
really came into focus after Readabilty introduced the first iteration of their
product which was met with a lot of unhappiness from publishers. I thought it
was a good idea that needed to be tweaked a bit to be something I would want
I think the idea of collecting money as a function of usage is a good one but
I don’t think anyone has gotten it right. The Flattr model
is uninteresting to me. I will not remember to press a button.
So here is my idea. I have wanted to do it for a while. I have domain names and
have made half-hearted attempts at building it. It is exactly how I want to pay
for reading my favorite weblogs:
Rather than a pay wall this is more like a pay meter. A porous sort of wall that
really just identifies you as a reader after you become a site’s subscriber. If
you are already signed into the application then you can subscribe directly on a
publisher’s site with one click via a widget. You don’t have to subscribe to
access the site. You can keep reading any participating site as you normally do.
The only difference is this application (let’s call it readerkit.com because
that was a domain I bought for it) tracks every time a subscriber views a page
on the site and develops an inventory of content you have read.
At the end of the month you are sent a bill that you do not have to pay.
For example, let us say John at Daringfireball has signed up and determines
he would like 25¢ for all pages viewed in a session. A session being some amount
of time where a reader checks the index page and reads some posts.
Let’s say the reader does this twenty times a month. At the end of the month
a bill is sent, detailing the use, and displaying a total for Daringfireball
(20 x 25¢ = $5) as well as any other site the reader is a subscriber of in that
The email has two buttons: pay now and modify bill.
Clicking “pay now” will take the reader to a page to verify they want to pay the
whole bill. Payment is made to Readerkit and then immediately dispersed to the
Clicking “modify bill” will take the reader to page where they can edit the
bill. They can remove some sessions. They can directly edit the total amount
going to the publisher—that is increase or decrease what they are paying.
It is completely up to the reader, this is just a way to prepare a bill for them
and establish their opinion of the value for the content during the month.
Here is the cool part: readers who consistently pay their bills will contribute
toward a confidence number that publishers can look at and get a sense of how
much money will be coming in at the end of the month. In addition, a publisher’s
biggest supporters can be identified and viewed along with their support
There are lots of things you could do with a supporter list: better tech
support, a view into your most loyal readership, but what this is
really about is putting an engine in place to calculate a value on the content
that the market agrees with.
I wish I could build it but since I can’t I hope someone out there can because
I want to use it.
Ever since I helped start Federated Media (8 years ago??) I think a lot about
how to support independent publishers looking to diversify their income from
just advertising. While FM lost the plot at some point, I still believe in the
original mission John laid out. That’s why I joined
Tugboat. I still believe in independent publishing
and I think there are still a lot of opportunities to build support structures
to keep them going.
posted on August 05
It Happened To Me
- I once sat in a meeting around 2002 where someone tried to talk UBISOFT out
of putting Tom Clancy’s name on the games.
- I was once asked to leave the set of a Sugar Ray video.
- I once interviewed a guy for a job and he told me he had a “brilliant” idea
and if I hired him he would tell me the idea. I still think about that one.
- I had a boss try to get me to register a domain name with a space in it. He
was the sort of guy who wouldn’t take no for an answer. “Well in a few years
everyone will have spaces in their domain names.”
posted on July 03
A Delightful Clockwork Slight of Hand
Made by Swedish artist Per Helldorff:
via This is Colossal
posted on July 02
The Origin of Tweet
The Origin of Tweet is a well researched post from the creator of Twitterrific.
It’s not everyday that a word you helped create gets added to this
prestigious publication, so I thought I’d share a bit of the early
history of the word “tweet.”
posted on June 28
How XOXO Works
Andy posted a summary of how the application process of XOXO worked.
XOXO 2012 was one of the best conferences I have ever been to. It ranks right up there with my first SXSW in 2001. Other than conferences I can’t think of too many other events I’ve been to in my life where I knew I was witnessing something so special.
Since we all came back from XOXO and said as much on our weblogs and Twitter, I think Andy and Andy had an almost impossible task for 2013. It still remains to be seen if they succeeded. We’ll only know once the conference is over and we’ve all returned to our weblogs and Twitter to sum up our experiences.
But the thing I think they did accomplish is they reminded everyone that there is value in being someone who actually makes things.
posted on June 28
Bye, Bye Reader
As you know Google Reader is going away on July 1st. Here are a few links you should know about before it does.
- http://readerisdead.com/ — To pull all your information out of Google Reader. This includes much more than Google Takeout or just exporting your OPML.
- http://www.goread.io/ — A new day, a new reader. Here’s a clean, open-source one. I haven’t spent enough time with it to figure out the keyboard commands but it sure is pretty and fast.
- http://allyourfeed.ludios.org:8080/ — Be sure and throw your subscriptions.xml OPML file from Google Reader in there so they can build an archive of the feeds we’re losing.
posted on June 28
I wish LinkedIn had a feature where I could pick a year, say 2008, and see where all the people I worked
with at the time have moved on (or not) to. A sort of “Where are they now?” for my co-workers. What
I really want is a LinkedIn for my actual work history and the people I have worked with, not people I am
networking with or hope to work with. Where is the LinkedIn that restricts my contacts only to people I have
or do work with?
posted on June 27
JJG is right. The last two questions in this interview with Rick Rubin seem to apply to any creative endeavor.
posted on June 27
My First Post
For a long time I have been unhappy with TypePad’s lack of updates. While hosted Wordpress and
sites like Medium and Svbtle were innovating and adding tons of great features, TypePad did almost nothing
I could see in my daily use. It’s still a pain to use the template editor. It is still a pain
to manage my files. I was going to dive into Jekyll—but then I got a crazy idea…
posted on June 25