Two-level tagging

Have you ever had trouble deciding where to store a file on your hard disk? Or worse, had trouble finding it later?

When you store a file on your hard disk, you have to decide which folder to put it in. That folder can in turn live inside other folders. This results in a hierarchy, known in computer science as a *tree*.

The main problem with trees is that sometimes you want things to live in multiple places.

Tagging provides an alternate system. Tags are a lot like folders, except that things can belong to multiple tags. However, but the tags can’t themselves belong to anything. So you have just one level of organisation with no nesting.

The main problem with single-level tagging is that it’s too simple. We want to be able to use fine-grained categories (e.g. ‘lesser spotted greeb’) that themselves belong to higher-level categories (e.g. ‘greeb’, or even ‘bird’ or ‘animal’). But we said that tags can’t themselves belong to tags.

Described like this, perhaps the solution will seem obvious to you too. We want things to belong to multiple tags, and for those tags to sometimes belong to other tags.

I built this into Emacs Freex, my note-taking system.

For instance, I have tagged this blog post with ‘data structure’ and ‘blog’. In turn ‘data structure’ is tagged with ‘computer science’ and ‘blog’ is tagged with ‘writing’. So I can find this blog post later in various ways, including by intersecting ‘computer science’ and ‘writing’.

This gives you the best of both worlds: things belong to multiple categories, along with a hierarchy of categories.

Blogging with WordPress and Emacs

When it comes to tools, I am a hedgehog rather than a fox. I like to have a small number of tools, and to know them well.

I recently resolved to start writing again. But I decided that I needed to sharpen my pencils first.

I have plans on how publishing and sharing should work. Grand plans. Too grand, perhaps.

So for now, I wrote something simple for myself. Now I can type away, press buttons… publish.

If you like Emacs, Python and WordPress, this might be interesting to you too. If not, it certainly won’t be.

wordpress-python-emacs GitHub repository

Most of the work is being done by this great Python/Wordpress library. Thank you.

I wrote some simple Python scripts. One grabs all my existing blog posts. One looks through their titles, and checks them against the filename to see if this is a new post.

And then there’s a very simple Emacs function that calls them to save/publish the current text file.

I could add more things: deleting posts, or a proper workflow for moving from draft to published. Maybe later.

I wrote this post, then hit M-x wordpress-publish-this-file.

The iPhone apps my cold, dead hands would cling most rigidly to

  • Instapaper – combine this with the Instachrome extension, and whenever I see a webpage I want to read later, it’ll be waiting with me as I wait for a train
  • Light – it’s bright! No more torches. If you lived in Hanborough, you’d need this too.
  • Trainline – faster than my laptop and/or a speeding bullet for checking train times in the UK
  • PlainText – write notes on your laptop, have them appear on your phone instantly through Dropbox and vice versa. Oh, and Dropbox of course, too.
  • Dictionary.com – etymologies, pronunciations, the works.
  • Remote – control Keynote presentations from your phone.
  • Glympse – let other people know where you are.
  • Skype – I can call Mia for free while walking the streets
  • iTrans Tube and Tube Status for planning London Underground journeys
  • Snaptell – red laser black magic. Point at a book, and have elves whisper about it to you.
  • Angry Birds – the most popular mobile game of all time.
  • Spotify – all the music in the world on the go. Requires a Spotify subscription.
  • Shazam – tells you the name of songs that are currently playing.

Startup thinking – the people who have most influenced my thinking on startups.

Steve Blank and Eric Ries

Steve Blank teaches entrepreneurship at the Haas Business School in Berkeley, but has a pretty serious pedigree as a tech entrepreneur himself. I’m ashamed to admit that I still haven’t read The 4 Steps to the Epiphany, but I’ve read most of what he’s posted online.

Eric Ries is a protege of Steve Blank’s, applies and develops many of the same ‘lean’ ideas, and focuses specifically on web startups.

See the links for both Steve Blank and Eric Ries here.

—-

Paul Graham

He’s a tour de force and a hero of mine. One of the early proponents of ‘release early, iterate often’.

http://www.paulgraham.com/start.html

http://www.foxbusiness.com/search-results/m/25897600/funding-tech-start-ups.htm

—-

Joel Spolsky

These are my favorite as they relate to HR:

http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html
http://www.joelonsoftware.com/navLinks/fog0000000262.html

Get your users to tell you what they really want

We’re building a site that we want people to love using, so we want as much feedback on it as we can get. From the get-go, we’ve had a big red UserVoice ‘Feedback’ button on the lefthand site of every page. But only a tiny proportion of our users ever suggested, voted or commented on an idea.

I’m not surprised. When you click the UserVoice ‘Feedback’ button, it brings up a list of the top few existing ideas to vote on, plus a vague invitation to ‘go to our feedback forum’.

If the problem you’re having is on that list, then you’re in great shape. But if you have a particular suggestion to make, there is nowhere to do so. In this respect, the ‘submit an idea’ heading is misleading since this box doesn’t really let you do that.

My guess is that not many people really notice the link at the bottom of the box to the feedback forum. This is a shame, because the forum itself is well-designed. It has a nice big box to add a new suggestion. It does a good job of minimizing duplicates by pointing out ideas that have already been submitted as you type. And the idea of giving users 10 votes to spend is enticing, and a rich source of information.

But despite that, we’re scrapping the UserVoice Feedback button and disbanding the forum. Here’s why:

– For the reasons described above, only a vanishingly small proportion of people who have something to say end up submitting/voting/commenting on an idea through UserVoice.

– We’re trying to be thrifty, and our userbase is small. So we don’t want to pay for the much more expensive plans – this cheaper plan doesn’t allow us to transfer our users’ login status from Memrise to UserVoice. As a result, many ideas get submitted anonymously, which makes it harder for us to engage in a conversation with a user [1]. Of course, people can create an account on UserVoice, but that’s a huge pain.

– By emphasising the top ideas, there’s a rich-get-richer effect. People vote most often on the ideas presented at the top of the list, and don’t notice potentially more interesting ideas just below. UserVoice should hide how many votes each idea has already accrued until you’ve already voted – otherwise an idea’s future popularity will be largely determined by its existing popularity.

So what did we do instead?

– We wanted to bring the barrier to entry down to zero. So we just dropped in a plain textbox, asking plainly what we can do to improve things. [2]

– The red Feedback button was ubiquitous, but I bet that made it effectively invisible. Our feedback box gets presented opportunely and prominently at the end of every learning session, at a moment when people will be most likely to have something they want to tell us.

– We get an email every time someone drops in a suggestion, with the user’s email address, so we can respond quickly to them individually. We very much want to follow up with people that have made the effort to give us feedback.

I’d say we’re getting at least 5 times as many suggestions as we were.

On the downside, we don’t have a nice communal forum any more that allows people to vote or comment on one another’s ideas – we might do something about that in the future.

Here’s what I wish UserVoice would do:

– Make it much easier for people to suggest new ideas. Even if it were to bring down the overall quality, I think an increased volume of raw responses would be of greater value.

– Charge straightforwardly based on the number of new suggestions. This would set up the right incentives for UserVoice to make it really easy for users to make new suggestions. N.B. I don’t have a problem with paying – I just don’t want to be forced to start out with a $100/mo plan when we have a tiny userbase in order to get features that I consider essential to the user experience.

– Corollary: Don’t withhold important features like single sign-on and white labeling the design for the exorbitant options.

[1] We compared UserVoice and GetSatisfaction pretty closely, and they both hike the prices if you want to be able to transfer login status across. In fact, GetSatisfaction didn’t (at least at the time) allow anonymous suggestions, which felt like a huge barrier to entry to new submissions – this was what convinced me to try UserVoice in the first place.

[2] Hmm – perhaps this should be a command, e.g. ‘Tell us what we can do to improve things’?

Storyville and Jenga iPhone apps

Hey everyone,

Two friends have just released iPhone apps in time for Christmas:

  • Jenga, by Natural Motion. This is the official Jenga iPhone app – there’s a fiendishly realistic physics model of the world behind the scenes, and it’s a thing of beauty.
  • Storyville by Fatty Apps – I love the idea of receiving a short story each week, beamed straight to my outboard brain.

Buy. Them.

P.S. I’d be happy to put you in touch with Torsten or Atul if you have any direct feedback you’d like to give them.

Setting up your own domain name and website

Someone asked me recently about getting their own domain name and setting up a website. I’m not very good at this stuff, but I have been through it once or twice, so I thought I’d at least offer this up in case it’s useful.

Let’s say you want to buy example.com, and set it up as a series of static informational pages about Example Business Inc, along with @example.com email addresses. There are (at least) 3 ways you can go:

1) the standard method

– Grab the domain from GoDaddy (or any other domain name registrar – they all do basically the same thing). It’ll cost you $10-20 for a year or two

– Then you need to find a place to host your site (e.g. Rackspace, Dreamhost). You’d spend c. $10/month to rent space on a server, point your new domain name to the server’s IP address, write and upload some html and images, and away you go.

– You then need to set up email addresses. If it’s GoDaddy, I think you’ll be able to set it up to forward your email to an existing account without too much trouble.

– This is what i had to do with Memrise because I wanted control over everything. Honestly, it was much much more complicated than i had anticipated to figure it all out.

option 2) use Google

– Use Google to register your domain name

– I think that’ll automatically set you up with Google Apps (custom Gmail, Calendar, Sites, Blogger, Docs etc.) for free.

– Then you can set up the design and content of the pages of your website with Google Sites.

– So then you’d all use a custom Gmail interface to check your @example.com address, and have access to blog.example.com, calendar.example.com etc. I’m a big fan of Google Apps.

option 3) Weebly (or some equivalent competitor)

– Besides Google, there are a variety of companies that help build a site. I’ve heard good things about Weebly, but haven’t closely investigated it for myself.

– Much like Google Sites, it looks like they’ll do most of what you’d want: help with design templates, deal with the hosting, potentially help with domain names, and a bunch of other stuff. Nice!

Conclusions:

– As long as your needs are simple, I would consider the Google/Weebly approach, since I think it’ll be the most straightforward.

– Down the line, if you decide that you want to build something more complicated and interactive, you can always hire a programmer and switch from Google/Weebly to your own hosting set up.

– If you have someone to help who enjoys techie stuff or has set up their own site before, then setting things up with GoDaddy and your own hosting will probably go smoothly. But otherwise, a company like Google or Weebly that’ll do 90% of the work for you, so you can focus on building a great site 🙂