Filed under Writing

Moving to org2blog for publishing posts

For most of the last few years I’ve been using the WordPress online editor for writing posts. Part of this was because I moved between computers a lot and wanted to be able to get at my posts and drafts from wherever I was. But since I’m now using one machine for most of my writing (and all of my blogging) I’ve been able to finally move to centralizing all my writing under Emacs. Luckily I found a great Emacs mode that makes posting to WordPress a snap. org2blog is made to be used with org-mode files but by and large you can ignore the org-mode part (if you want to).

Org-mode is a helpful plain text mode for organizing notes, todos, agendas and even writing in general. I use it for taking notes about academic papers and meetings I go to. org2blog mainly uses the plain-text org format for setting up the metadata for the post — title, date, tags etc. But org-mode also makes inserting links easy and I’m much faster writing with all my Emacs editing shortcuts than I am in a text box in a browser. Org2blog then posts the org-file as draft (or published post) with a single command. I personally just save as drafts and then look at the preview before hitting publish. By writing in org-mode on a single I can also keep local backups of all my posts. Currently each post is just saved to a ByteBaker folder as a separate plain text file but I might put it all under version control at some point.

I have been toying with the idea of moving this blog off WordPress to a more home-brewed setup, but I haven’t been able to justify the time and effort it would take. Might be a winter project to get through the upstate New York winters. Personally as long as I have a trustable backup of all my code and add new things easily I’m fairly ambivalent about how the HTML actually gets generated and presented (especially if it’s done by open source software made by people I like). For the time being I’d rather invest in writing the blog than hacking it.

Tagged , ,

Let’s kill Click Here

Click here to go to my last post.

Let’s stop doing that. As much as I love hyperlinks and the Web, I think it’s a bit unnecessary (and poor form) to have explicit link text saying something like “click here”. If you’re not really interested in the links these phrases just break the flow of your reading.

I’m not sure how this convention started, but I can imagine it being useful in the early days of the web. Before the idea of linking became ubiquitous it was a good idea to explicitly call out a link, especially if it was important. But I think we’re at the point now where most users can tell from the styling if a certain piece of text is a link. Think of how the movie Inception didn’t go to lengths to explain how people to get into others’ dreams – the Matrix movies have made the concept of “jacking in” pretty ubiquitous. The details aren’t very relevant to the story, the basic concept is well-known and movie makers can focus on more important things.

By and large the web conventions of the last two decades have established that underlined text in a different color is a link. This isn’t universally true of course. Thanks to CSS I can make my links look however I want, I can even make them look like plain text. But why would I want to? If I’m trying to attract attention to something, I want to do it clearly without being obnoxious. Using different colors and styles gets the point across perfectly well: this text is different and merits further attention, you might want to click on it.

Let’s look at natural speech. If we want to say something important we don’t preface it with “I’m going to say something important now”. We don’t end with “I’m done saying important things now”. Instead we speaker slower, louder, with greater emphasis in order to show what we’re saying is important. We don’t talk in a monotone all the time. We vary our tone, speed and volume to convey the different meanings of our speech. Web design (including designing links) should be similar: let’s put in the effort to make our links stand out without having to spell them out.

Aside: Along those lines, in daily speech if you’re saying “My point is” or “What I’m trying to say is” a lot, you should slow down and think carefully about what you want to say before you say it. I think public speaking and rhetoric should be a mandatory part of education for similar reasons, but that’s a whole other blog post.

I’ve been putting more links in my posts recently (especially since I ditched the WordPress web editor in favor of the excellent org2blog Emacs mode). My posts are often the result of stuff I’ve read on the Web fermenting in my head along with other ideas I’ve had. I want to link to relevant readings and I try to do that inline as much as possible. In an ideal world, we would have intelligent, automatically generated links as well as manual ones. For example, whenever I mentioned a person there would be a link created either to their personal website or their Wikipedia page. Lacking that, inline links is the next best thing I can think of. In doing so I’ve been trying to avoid making said links explicit. So far I’ve been pretty successful, it’s not that hard once you get used to it.

As with all communication there’s a lot to be said for brevity, precision and flow. I want my posts to be readable as pieces of writing even if someone is not interested in the links. By keeping links inline and using design choices to making them visible I think we can create online articles that are easy to read as well as being well linked to relevant resources – just the way it was meant to be.

Tagged ,

Superpowers

At some level all of us are virtuous, powerful and wise.
– Seth Godin in Linchpin

Heroes have superpowers. In many ways, heroes are defined by their superpowers. The good news is, as Seth Godin tells us, superpowers are everywhere. The more sobering news is that they’re not as glamorous as in the movies (probably closer to the gritty-reboot recent Batman movies than anything else). The perhaps not-so-good news is that superpowers don’t come easy.

The hacker culture in particular has a curious fascination with superheroes and superpowers. That’s why I’m writing these distinctly self-help-like posts on what is ostensibly a technology blog. I hope it’s justifiable why – we build entire worlds and universes out of pure thought. This isn’t Tetris we’re playing here, it’s full blown Matrix-style world creation. We have no dearth of people to look upto in awe and reverence – Turing, von Neumann, Ada Lovelace, Kernighan and Ritchie, Ken Thompson, Rob Pike, Linus Torvalds, Jamie Zawinski, Richard Stallman, hell even Bill Gates and Steve Jobs (reality distortion field anyone?) – they’ve got mad skills as they say. They’re superstars, sure, but more importantly they’re superheroes with superpowers, which is to say they don’t just wow audiences on a regular basis – they get stuff done. Note that this list is necessarily incomplete. Heroes are made, not born, and thanks to the awesome depth and breadth of the technology industry new heroes are made each day.

The coolest thing though, is not that these superheroes exist, but that their powers are out there for the taking. What they know about computing, we can learn (to shamelessly paraphrase Alan Perlis and SICP). As Joe Armstrong one of the creators of Erlang tells us, “Then buy a decent book and type in the programs by hand. One at a time thinking as you go.” It really is that easy.

Ok, I lied, no it’s not. It’s going to take you ten years to get anywhere near superpower status (10000 hours to be more precise). And at some point it’s probably going to hurt like hell. At some point you’re actually going to have to use your brain and spend hours and hours thinking. But seriously, would rather spend ten years doing something that imbues you with superpowers or would you spend ten years doing something that leaves you the way you are, just older? Your choice.

Now, of course superpowers aren’t limited to hackerdom. Jeff Bezos, Tony Hsieh and Derek Sivers for example have the amazing superpower of figuring out what people want and giving it to them. Jonathan Ive has design superpowers a lot of people would kill for. Stephen King, Haruki Murakami and Stephen Pressfield have writing superpowers I would love to have someday.

For me, my superpowers equal absolutely zero. Nada. Zip. Squat. I mean just look at my Github page for example. And I’ve already been playing this game for four years. As annoying as that may be, it’s ok. Luckily for me lack of superpowers is a temporary state of being. After all, I have ten years ahead of me to get it right.

Heroes

I have an awful tendency to go back and reread things I find interesting. Mostly they’re articles on the web but sometimes they’ll be chapters in books or even scenes in novels. Not entirely sure why, but maybe it’s because I sense (or hope) that there is an important lesson to be learned from whatever I’m reading. if I read it over and over enough times maybe I’ll figure out what that lesson is. Something I’ve been rereading in the last few days is an article from 2008 called “Done and Gets Things Smart” by Steve Yegge. It’s partially about hiring and becoming a better programmer. But it’s also about heroes – people who are genuinely “superhumanly godlike”. Not superhuman in the sense that they can fly or have laser vision (though that would certainly qualify) but rather in the sense that they seem to be just like you and me, except that they get amazing things done, often in amazing quantities.

One thing you learn growing up as a child is that all people are equal. It’s a fundamental tenet of our society, written into democratic Constitutions around the world. But gradually we come to realize that’s not strictly true. We don’t mean equal in literal, definite terms. I think what we mean is equal in terms of potential and basic humanity. What we do with that potential is extremely varied. We may be created equal, but we don’t stay equal for every long. It’s becoming increasingly obvious to me that some of us manage to leverage and build upon this potential to become seemingly superhuman while most of us don’t (if we all did everyone would be superhuman, which is to say no one would be superhuman because superhuman would be the new normal).

For me personally, superhuman doesn’t mean becoming President of a country or the richest man on the earth or the fastest runner or the strongest weightlifter. Not to say that all those aren’t tremendous accomplishments, but the breed of superhuman I’m looking for right now are superhumanly creative. I’m interested in people who seem to be capable of building incredible systems, creating beautiful works of art, writing powerful pieces of literature. And many of them do it not just once or twice, but over and over again. The good news is that these people seem to be everywhere, if we just care to look. With the Internet they’re even easier to find and learn from.

Steve Yegge talks about incredible engineers in his post – people who almost single-handedly built and maintained a strong engineering culture in their respective organizations. Then there are people like Charlie Stross – a British author who seems to keep churning out critically aclaimed science fiction novels. There’s Cal Newport – a former graduate student at MIT’s computer science department while being a popular blogger as well as a best selling non-fiction author. Recently I read about Don Stewart, another graduate student who has an impressive list of projects in addition to being a very active member of the Haskell community. And I’m not even talking about the famous superstars that we all know and hear about.

How do they all do it? I don’t know for certain, but there seem to some common trends – the main one being what I call “maniacal consistency”. It’s a deep focus on a small set of activities (writing novels, doing research), but backed up by a ironclad habit that ensures that they get something done everyday. The habit part is important because you can’t sustain pure willpower for very long. Secondly they all seem to do something else on the side – they’re never just doing one thing. I’m not entirely sure why that’s important, maybe because you need a release and a distraction to keep peak performance on your day job. The final thing I’ve noticed is that such people are generally not obvious – they’re not bragging about how much they do and they’re not bitching and moaning about how hard they have to work, probably because they’re busy getting stuff done.

I’m deeply fascinated by these superhuman creators because I think they’re great examples to learn from, especially when they’re people in my field. Coming back to the question of equality I’ve been growing to think that it’s a mistake to squander our potential, it feels wrong not to be the best that we can be. The people I talked about are making the most of their potential – they’re making the world a better, more interesting place and having a good time while they’re at it. That sounds like a pretty good way to live life.

What does your software do?

In the last few weeks a Mac and iPad app called iA Writer has been doing the rounds on the Internet and garnering rave reviews. Since my Mac Mini is currently disconnected and Apple doesn’t seem to be in the mood to refresh the Air, I haven’t had the chance to try it out. But based on what I can see on their website, it looks like an exquisitely designed app. However there seems to be one problem: it doesn’t do very much.

Given my personal preference for minimalism, it is a bit odd that I’d critique an app for doing too little. But I’m coming to realize that pure minimalism is the wrong approach to take towards modern software. We live in an era of incredibly powerful, well-connected machines. And yet most of our day-to-day software does little more than the equivalent software of years past. It’s one thing to say that our software should do a small number of things well instead of bombarding the user with lots of unused features. But it’s another thing to say that we shouldn’t be trying to press the boundaries of what our software is genuinely and usefully capable of.

iAWriter strikes me as a particular example of this trend. It may be a very well designed (and perhaps even beautiful) text editor, but at the end of the day it’s still just a text editor. Sure it has some plus points: it supports live Markdown rendering, but the implementation is personally unsatisfying — if you’re going to render Markdown, why keep the plaintext Markdown characters? It also ignores the fact that most of the text we seem to be writing nowadays is for sharing. All the bloggers going crazy over it seem to miss the fact that it doesn’t connect to their blogs in any way, leaving them to manually copy-paste or come up with some elaborate (if clever) hack job to go from editor to web page. Let me reiterate: iA Writer is a beautiful text editor, but that’s all that it is. And that’s a shame because I’d like to see great engineering and designing talent go into helping me do my job better rather than just making me drool. The one part of that I feel genuinely makes it a better editor is focus mode: that’s something I’d like to see get into other text-based applications.

In contrast to iAWriter is Instapaper. It’s admired by a lot of the people who seem to have taken a liking to iAWriter. But the big difference is that Instapaper actually moves consumer computing forward. I can click a little bookmarklet on any text-heavy page on the web and instantly the text gets extracted and sent to a variety of reading devices. It fundamentally changes the way I do reading on the web, it’s not an incremental upgrade or an aesthetic redesign. It actually does more and better than any software tool before it. That’s the direction I would like to see our software going.

As I think about more about the state of consumer software it becomes abundantly clear that I am very much a power user. Ben Brooks loves iAWriter because it helps him focus on writing instead of being distracted by things like tweaking the user interface. He says that the end product of that focus — better articles — is what matters even if he has to do a whole lot of copy/pasting and manual editing to get there. All he cares about is the end product, not how he got there. For me, that’s not enough. I want a good, polished end product, but as a creator I want a great workflow, tuned to my specific needs. That’s why I use Emacs, Jekyll and LaTeX for a lot of my longform writing. (I’m considering sitting down and integrating WordPress into the flow too.)

In a more general sense, we don’t want to be making separate programs for power users and non-power users. We shouldn’t have Emacs for me and iAWriter for Ben Brooks. What we need is for everyone to be a power user. Not in the sense that they all use Emacs and Linux, that’s superficial. But users need to be able to tune their workflow and tools to their specific needs. Ben should have an editor that has beautiful fonts and focus mode and let’s him one-click publish to the web using whatever platform he likes. But to do that users need both the tools that facilitate such power use and the skills and mentality to make their customizations. Unfortunately I’m not very optimistic about either, not at the moment anyway. Feel free to make me feel more hopeful in the comments.

Tagged ,
Follow

Get every new post delivered to your Inbox.

Join 331 other followers