25th March 2013
My favourite code question in interviews is deceptively easy. I was asked it for my job at C4, and at the time I didn’t really understand it. Nor did the guy who asked the question, for that matter, nut in the years since, I’ve gone over it a few times and have evolved it to be the first question I ask interviewees to code for me. It’s just so useful.
Given two integer variables, x and y, swap their values.
There are six answers to this question. Or at least I am familiar with six answers, there may well be others but I’ve never encountered them in the wild.
These answers are, in ascending order of my happiness when given them:
- Call a method called Swap(). Don’t laugh, I have been given that answer in total seriousness twice.
- I don’t know.
- Start with x = x - y
- Start with x = x + y
- Start with x =x XOR y
- Use a temp variable
Anything after I don’t know is an acceptable answer.
Use a temp variable
var tmp = x;
x = y;
y = tmp;
When I see this, it allows me to ask for it to be done without a temp variable. I am quite happy to feed them the first line, “x = x + y”, and see if they can finish it. If they do, I then ask them why this is not a very good solution. I am quite happy for them to answer that they wouldn’t do it because of the risks, and obviously if they say what the risks are. I’ll then ask if they could do it with bit operators.
Arithmetic gymnastics
x = x + y;
y = x - y;
x = x - y;
OR
x = x - y;
y = x + y;
x = y - x;
I don’t really care if you get the solution arithmetically correct, you’ve at least demonstrated you understand the principle.
Starting within “x = x - y” makes me suspicious that they know the risks in “x = x + y” - integer overflow - but have forgotten the very same risk holds for this answer, but I give them the benefit of the doubt and just ask them about the risks. For either variant, I then ask them if they can think of a different way to do it that doesn’t hold the same risks. They don’t get a first line, but I am happy to give a hint, use bit operators.
Bit operators
x = x XOR y
y = x XOR y
x = x XOR y
I then ask what are the risks in using this method, which are pretty narrow, I admit; that if x and y point to the same memory address, you in fact end up with the value set to 0, which unless you started with 0 is a bad result. Narrow, but if you’re going to play with bit operators you better have an understanding of what the hell they do.
And finally, if anyone makes it to the bit operator solution, the final question is, why is this not a good solution. If they come up blank on this, I know I am dealing with a cowboy. They are a cowboy, because the bit operators - and the arithmetic juggling for that matter - are less readable than using a temp variable, for absolutely no return at all. The coder is not getting any efficiency bonus, not optimising their code. The compiler is going to optimise the temp value out anyway, the compiler is going to optimise the whole thing better than the coder will. For no benefit, the fancy solutions end up making the code more obtuse.
Ultimately, I am looking for a developer who answers with the temp variable, and can defend that answer. I am happy to go through the paths and get back there if they can continuously identify the issues with the other solutions, and I count that as only a little much less acceptable than sticking with it in the first place. The second best end point is any of the rest if the interviewee has managed to discuss the risks in any of the three non-temp variable solutions. The third best is any of the three without knowing the risks.
If you don’t know an answer, in all likelihood you are going to be rejected, but you could still recover. But really, even an under-grad should be able to answer with the temp variable solution after CS101, even if they don’t necessarily understand that it is the only totally good answer for developers not working on micro controllers.
The worst, and the answer that will always get you rejected immediately, is a Swap method. Even if you’re joking. Interviews are a dangerous place for jokes; if that kind of rapport has been established, I suppose it is fine. But I do interviews with the filter questions at the start, and I’m not joking around because I’m looking to see if I should invest my time in the much more difficult and time consuming task of establishing if you will fit into the team. If you can get past the filter of code and theory questions, I’ll try and establish a rapport that would probably involve some laughs. But before hand, I’m looking for an opportunity to get out of the room.
To get out of the room. That sounds brutal and cold, and as if I don’t think interviews are a good use of my time. But they are, they are an excellent use of my time if I am talking to a great candidate. If you’re not a great candidate though, you aren’t getting hired by me, so any time spent talking to you after I have made up my mind is just wasting your time. And if you are joking early on in the piece, I start thinking you’re not taking the interview as seriously as I am.
So, tell me you’d use a temp variable, and then defend the hell out of that answer.
14th March 2013
Google Reader is being shut down. You may have heard.
Some might say it died back in Nov 2011. That was when sharing functionality was modified to support Google+ 1, effectively shutting down countless informal networks. It wasn’t something I was using, not extensively enough to mind at least, but I understood. Understood enough that I only made a little fun of the individuals who popped up promising to rewrite Google Reader.
But now it is really really going. And it’s a shame.
Dave Winer said he doesn’t care because he never used it. He didn’t trust Google, which is fair enough. Cino knows I don’t trust them much. He also didn’t like the “mailbox approach to news”, which strikes me as limited view of what Google Reader was. As much as it was a news aggregator, albeit one with a UI Winer had no time for, it was also a syncing tool for reader. Whether you used the web interface from multiple sites, or you read your news in an applications using the undocumented, unofficial Reader APIs, Google knew what you had read. Great for those of us with multiple modes of accessing our feeds.
He also advised that we should pay for the services we depend on. It’s a common theme, hand in hand with the maxim “If you’re not paying, you’re the product”. It’s powered by the assumption that companies treat you better if you are paying them. I know I pay my bank a lot of money, both directly and indirectly, and they have never felt any compunction not to treat me with a kind of benign contempt. They even as much as accused my wife of lying when she reported her credit card details stolen and a charge illegitimate. My telco treats me badly, my insurance agency will do everything in their power to wriggle out of claims, and Cityrail is the single worst service company I have ever had the pleasure of giving $50 a week.
Consistently the best service I have is at whatever coffee shop I am a regular at. They know my name, they know my order, some of them have known my wife’s name despite her never setting foot in their establishment. The nature of the business almost compels you to make a personal connection with them. But the single best instance of good service I ever had was from a lady running a small online store who bent over backwards to help me out the first time I bought something from her. She cared about her reputation but she also just gave a shit about her business and her customers.
It’s more than money, it’s how valued you are. Maybe you are valued because margins are low, or because they need your custom. Maybe it’s because you are face to face with them. Maybe they are just really nice people. I doubt paying a couple of dollars to Maciej Ceglowski a few years ago was enough to buy good service for as long as Pinboard operates, and if you do you can’t think much of him. No, I think I will get good service because he gives a shit. Companies like Twitter and Google and Facebook and Instagram will do things you don’t like, such as change terms and conditions, or shut down services, because they don’t give a shit about our reaction. Not enough people will stop using their service, or their other services.
People were certainly paying money to Yahoo for Flickr Pro accounts, and while it didn’t shut down, until quite recently it was coasting along treating its paying customers with a species of disinterested contempt.
People are upset because they found out a company that was once a fairly hoopy place now no longer gives a shit. It should be a shock to the system to find out you’re not valued. Those who are standing aside smugly tweeting about “outraged entitlement” - one comment which seems representative of the theme 2 - simply haven’t introspective enough to think about what will happen when a service they rely on disappears on them, or just believe it won’t happen because, oh, they pay money. If you think paying some monthly fee will protect you when you’re one amongst a million…well you’re a fool.
Of course, to be fair, maybe they just rolled their own everything. In which case, they simply don’t even know what they are talking about.
What now then? I saw a few people shifting to The Old Reader and I’ve had a look, but somewhat unsurprisingly they’re under attack from Google Reader refugees. I’m also looking at Feedly, because they claim they have built and deployed a clone of the Google Reader API and that sounds interesting, something worth supporting. But I’ll also grab an OPML copy of all my subscriptions.
1. If you’d pressed me to answer without looking it up, I would have said it was mid-2012. ↩
2. Possibly revealing more about the speaker than the subject. ↩
28th February 2013
One of the first things I wanted to be was a writer. It’s one of the first things I can recall earning praise for at school. I was 6 or 7 and the class was writing stories. My teachers were impressed that I had used dialogue, but I’d written a condensed version of Twenty Thousand Leagues Under the Sea a few times by then that not using dialogue seemed weird.
I also remember Mum wasn’t thrilled because I’d had a character yelling “Shut up,” which at that age she thought wasn’t language she wanted me using. I recall she muttered something about if I was going to write it, I could at least spell it correctly. Thanks, Mum.
Over the years I’ve dabbled now and then. The longest I kept at it was a David Eddings fan fic which took two years for ~50,000 words. It was moderately awful. Usually it is when I write longer than a five or six hundred words, I don’t sustain narrative very well. I tend to do better at flash fiction, where I have to get in and out in a few hundred words and it is less about a story and more a sketch of one.
My favourite one is one I thought I had lost. I posted it as a comment to a blog post on another site. They were inviting entries to a competition, 300 words or less on the theme of “The Postmodern Pirate Queen”. I’m never sure I actually get what postmodernism even is though, so except something about intertexuality, so I just wrote a pastiche of Moorcock.
The sky was the colour of a crystal ball attuned to a dead dimension. A column of greasy smoke rose up from the shattered carcass of Peg Leg’s ship. It drifted in the breeze over the Rogue Mistress, temporarily hiding the sickly-coloured sky. Maria de Tres Pistolas hardly noticed.
The long boat pulled alongside and the crew started hauling in the booty retrieved from the water; the surviving crew and passengers of the doomed ship now beginning to slip beneath the waves. For all of the day’s maneuvering and posturing the battle only required a single shot from Goreethmorug, the aft-mounted cannon. Peg Leg’s ship had been no match for them and their hellish rounds.
Goreeth detached and clattered down to the main deck. His -it’s? - last human eye scanned the loot. “A good haul, captain,” he said.
“No Bastable though,” Maria replied.
“No. Escaped through the time streams, most like.”
Maria looked out over the alien sea. There was no life in this sea. No life anywhere they’d been while they hunted. Perhaps she’d sent the last life on this world to the bottom. “These colours bore me. Take us somewhere else. Somewhere with…slavery.” She didn’t stay to watch Goreeth winnow through the captives, discarding the sick and injured over the side and saving one for the engines. She sought her cabin. Later, while drifting in an opium dream, she hardly felt anything when the Rogue Mistress’s diabolic engines powered up and tugged at her soul like a loose thread. A good haul and Bastable would turn up again. As a lover or as an enemy; it hardly mattered which.
Something about it just worked for me. Maybe it was the few lines, that seemed to capture the inage I had in my mind for Maria. And of course, I liked it because I got the nicest praise for it: ‘The editors of “Metal-Hurlant” are applauding, somewhere.’
11th February 2013
This is the last time I ever give a spoiler warning. Spoilers in the second last paragraph.
My first though upon finishing was, “Damn it, we never found out who killed Asmodean.” That’s a problem. Actually, it’s two problems. It’s a problem for the book because, well, who cares? And it’s a problem for me because we did actually, it was in the notes at the end of the previous book.
It’s still a problem for the book despite me forgetting an offhand remark in the trivia notes of Towers of Midnight because it speaks to the audience and thus speaks to the genre. Because it is scenery. Background detail. Who killed Asmodean? Somebody, sure, but the answer is trivia, its something you can know or not know, and neither alters the plot, nor does it go to what Jordan might have been trying to speak about? Does it really go to how the book affected you, what it made you feel and think about, which is really what art is about? Does “What is Maichin Shin” matter at all? No, it does not. If it did, it wouldn’t require pages and pages of fan speculation built over over some twenty years. Seriously, check that shit out. How does one engage with and critically evaluate a book when all the focus is on the scenery.
Lost had the same problem. Immediately after it finished there were cries of outrage over all the reveals it didn’t have. Like, what did the numbers mean? What was the Hurley Bird? This and that. Who cares? They were all MacGuffins at best; hooks to hang a plot or character on. They are texture for a story. They offer you nothing. You can’t really develop them, they are a binary thing; before, you wonder what the answer is, after you know the answer. They don’t grow, they merely act as a tent pole for something else to grow, be it plot or the characters. All long running series, be it TV or novels, will do this. The creative minds behind it create story, in creating story they create background, and naturally their audience become curious.
When the audience is one prone to attention surplus, to focusing on minutia and attempting to draw it out like a fractal, the economy of these hooks can grow beyond the control of the creators. A audience like nerds. Nerds will seek out all the things the creators seeded into their work. Nerds will find things the creators didn’t seed and turn them into entries in the mythology, like The Tampa Job from Lost. Nerds will learn these things, share them, revel in the sharing and revel in the secret knowledge. Nerds will build social structures around these things. So far so good, there’s nothing wrong with this. It’s all a part of creating an immersive background to your story, and no creator should be so egomaniacal as to dictate how their audience reacts and reflects upon their work. As should be obvious from the very first sentence, I also geek out on some of the MacGuffins. I also, however, try to engage with the work as a piece of art.
Now obviously art is many things. To be more accurate, art is somewhere just above 7 billion different things. For me, art is about what does the work make me feel, what reaction does it set off in me. How is it changing me? Because anything that causes an emotion is changing me, however slightly. I am not talking here about “oh I love this book” or hate this book. I am talking about the reactions I have to the content of what I am reading. If I might give an example, while a lot of people were disappointed with Dan Simmons’s Endymion novels, I hold for them a level of respect because the ending affected me. In a small way I feel the ending of that book made me a better person, a better human. The Wheel of Time series, particularly the earlier books, have given me insight into the risks of dismissing and ignoring differences of perceptions of reality that are natural to people of different cultures, creeds, or even genders. Sometimes it did this by driving me nuts with frustration at how stupid these people could be. Sometimes it did it with the Perrin-Faile love story - still my favourite of the category - and Perrin’s journey. And if a work isn’t trying to engage me in that way, what is the point? If all a work is is shuttling me between set pieces, if all it is is kneeling before the Rule of Cool, why should anyone invest time on it?
Robert Jordan allowed himself to get a little lost in the story. By the seventh book, A Crown of Swords, he had most of the pieces on the board, and he’d established what Rand’s arc would be. The arcs for Nynaeve, Egwene, Mat, and Perrin were also in place, and I’m prepared to argue if you like that those five are the lead and supporting players, everyone else is chorus. Everything was all ready to proceed to conflict, resolution, and growth. But then…nothing. We just sat there, at the crest of the arc for book after book. Nothing happened in the midst of story happening, to the absurd levels of Elayne having a pages long bath. I wonder what happened. Did he lose his nerve? Did he just not know how to prosecute it? Was the lure of “one more book” just too much? Hubris? Whatever it was, Sanderson was both the best and worst choice for replacing him. The best because he’s the probably the best of the epic fantasy authors currently operating and he clearly knows how to finish something.. The worst, because he has yet to show any ability to convey his ideas because he’s too impressed with himself and his world building. And he writes for The Scene, those set pieces of action. The cool moments. Jordan knew to use them as climax. Sanderson uses them as beats. Egwene fighting off the Seanchan in The Gathering Storm would have been the climax of a Jordan book, if he’d even written it. In Sanderson’s hands, it’s a loud, pointless clatter that overwhelms the real climax of the book, Egwene exposing the Black Ajah and putting the Tower back together. There had to be other ways of getting rid of Elaida, even something as obvious as having the Black Ajah killing her as they are exposed.
And so, to the point. A Memory of Light misses the point. Almost nothing that happens outside of The Pit of Doom is worth the words spilled. It is all filler to allow Sanderson to pay a visit to familiar names. The only point of the battles is to finalise Mat’s character arc, and it was over worked. Perrin’s character arc was already complete - not well though, and not the right arc - so all he did was run around doing things that were empty because of their meaninglessness. Egwene was probably already complete as well with the healing of the White Tower. So much of Tarmon Gaidon outside of the Pit of Doom was just visiting bit characters and giving Perrin and Egwene something to do that they became cumbersome and smothered Mat. And ultimately none of it mattered: Lan kills Demandred and effectively wins the conventional battle, not Mat. Mat doesn’t even get to be Hornsounder anymore, that gets given to Olver, with no foreshadowing that I picked up on. From a plot point of view, none of it mattered anyway, the only thing that mattered was Rand and The Dark One. It’s a little bit like Return of the Jedi, the Battle of Endor didn’t really matter, and in as much as it did, it was bit players who won it, Chewie and Lando1, Lan and Olver.
Sanderson ended up getting lost in the woods of Jordan’s world building. On the other hand, Sanderson is a crowd pleaser, he knows how to give fan service. Unlike Lindelof and Cuse, Ronald Moore, and Stephen King he’s finished a long running, sprawling genre piece with an ending I think will go over pretty well. For all the flaws it holds for me, I have to give Sanderson props for achieving an ending that is suitably epic. But the flaws are there, too much time wasted on fan service to the disservice of the characters and the books.
- If Lucas and Sanderson were trying to provide a counterpoint to the Great Men theory of history, they did it in the face of everything that preceded their final chapter. ↩
26th January 2013
So an unexpected pause during which I discovered the show-stopping flaw in my new blogging regime. When your blogging requires running rake from your command line to publish, your workflow will come to a crashing halt when your computer fails.
That’s no excuse for not having words ready to post. To tell the truth, it’s not really even an excuse for not publishing; the software lives in my dropbox folder, so I could have setup a ruby environment on my work computer.
While I was away, I read A Memory of Light. I have a ponderous review sitting in the cloud, slowly creeping towards a point. I also started reading The Wheel of Time from the beginning again. Book 1-3 + 80% of Book 4 in a fortnight. I should pause. I told myself when I started I wouldn’t read them back to back, that I would spread them out, read one a fortnight or month, or the like. I’ve taken in too much too quickly, I can’t get my eyes to do more than skim the pages, particularly in the Elayne and Nynaeve sections, not my favourite characters of all time. Pretty soon my dreams will involve immersive, if bizarre and chaotic imagery from the books.
Last post I mentioned I would set a challenge of reading twelve books that would be out of the usual for me, with forms that I am unaccustomed to. I’m not sure how I am going with that. I have a list of a few possibilities, but at least one of them, the one I bought today and plan to start in the coming week, is only on the list because of anecdotal evidence of being an unusual form; House of Leaves. I’ve also got Childe Roland to the Dark Tower Came, The Illiad, Camus’s The Rebel, The Republic, and 10 Print CHR$(255.5+RND(1)); : GOTO 10 on my list. I’m skeptical. To be fair, so are co-workers. One of them asked me what was the last book I read that I put down and was glad I had slogged through it because it was affecting. I took his point.
It was Zen and The Art of Motorcycle Maintenance, and that was two years ago, but I did take his point.
1st January 2013
In 2011 I had set myself a reading target of 40 books and made it fairly comfortably, despite a period of several weeks where I didn’t read anything. In 2012 I decided to up the target to 50 books. That was my first mistake. I completed it, but at cost.
Some stats though, because I may not be a statistician, but I am a nerd. Those 50 books added up to 18,389 pages, and were read at an average of 12 days per book. Yes, I know, when you multiply that back out it works out to 600 days, but there were several times I had multiple books that had been started, but not yet finished. This resulted in some outliers in the days/book column: Well of Ascension took 166 days, from late March to early September. It probably only took me five or six days, beaded on the first and third books in the series. I started it immediately after the first book, but I had been so disappointed with the nature of the first book, that I bogged down in the early plodding plotting of the second. The Communist Manifesto was started on October 26th and completed on Dec 17, a total of 53 days. For 36 pages, mind you, giving me my lowest pages per day of .68. Paradise Lost took me 81 days as I found the language and blank verse technically difficult.
On the other hand, there were some books that I very nearly inhaled. My average pages per day was 86.04, not speed reading, but not exactly slow either. And then there was American Gods (210.67), We Need To Talk About Kevin (200), The Hundred Thousand Kingdoms (142.34), The Hero of Ages (124.67). I wonder if there is any co-relation between page velocity and the overall rating. The slow books received 3 stars, 2 stars, and 3 stars, while the fast books were 5 stars, 4 stars, 4 stars, and 3 stars. It’s possible, but my cherry picked examples aren’t definitive; I would need to run the kind of statistical analysis I don’t know how to do.
My rating system is fairly simple and meant to convey how well the book has worked as a piece of art to me. A successful work of art has to inspire some sort of emotional reaction from me that’s deeper than cool or anger. It has to make me stop and muse, to think about what I am experiencing. It’s entirely subjective of course. A book that I found completely absorbing and that spoke to me, The Magicians, a very good friend whose opinion I respect completely found quite average indeed. My ratings are:
- 5 I will always own a copy of this as I think it is a very successful work of art;
- 4 I lost or found myself in this book;
- 3 This was a good book;
- 2 This was a bad book;
- 1 I only finished this book because my OCD compelled me to. I wish I hadn’t started it;
- 0 I don’t review books I can’t finish.
This year I gave three 5 stars, sixteen 4 stars, twenty-six 3 stars, four 2 stars, and one 0 star. Turns out I do sometimes review books I couldn’t finish:
I was already getting that old 2 star feeling when Dark Elves were mentioned, and then on page 13:
‘Haha, and without you, old fools, I would have nothing.’ The
smile was instantly gone, replaced by thin lips and a narrowed
gaze.
With a sudden burst of immense speed the mage drew his sword in a silver blur and furiously slammed the blade into Innel’s chest.”
I expect this is the single worst book I will read this year. No
stars, and my Cino help the soul of Ben Galley.
My review of The Written, by Ben Galley. He friended me afterwards, although he never actually spoke to me, so one of those ‘fuck you’ friendings. Meanwhile, I haven’t written a book.
In hindsight, setting a target of 50 books was a mistake. It resulted an environment that made reading a daily chore rather than - first and foremost - an enjoyable part of my day. Not always but often enough, reading became more about just finishing the book because I was getting behind track on the challenge, then actually reading the book for the sake of it. Paradise Lost and Beowulf suffered because of this; if not for the challenge I would have restarted Paradise Lost from the beginnig after I finished it, because I simply hadn’t got my head around it the first time.
I’ll still do a challenge in 2013, but I am resetting my expectations. I’ll set it at twelve books. These won’t be the only twelve books I read in 2013, but they’ll be ones that I expect to be challenging, the ones that will be a little hard to read because my brain isn’t used to the form. Or the material, in the vase of Godel Escher Bach, which will totally be one of the twelve.
My book reviews.
24th December 2012
This is a renewal.
This is a reboot. And arguably a retcon, given I have thrown away my archives.
This is a new blog, a new avocadia.
I’m wondering why. If you’ve known me for the decade or so I’ve been writing this blog - more off than on - you would probably be wondering why as well. By my estimate I’ve made about ten posts in the last three years. Prior to that, a few sporadic posts over a couple of years and before that perhaps four or five years or irregular, mostly forgettable posts. If I cast my mind back there are only half a dozen posts that I would keep around if I were preserving my archives.
The problem as I perceive it is that most of my blogging output was done out of a sense of obligation to keep it moving, to keep posting something new even if I didn’t really have anything to say: have blog, must post. That’s the root of the many failures of the old avocadia. It was variously pompous or frivolous. It was insincere, humourless - and when it wasn’t, it was invariably not amusing. It was thoughtless, and when I tried to think, it was unoriginal and tedious. Or worse, it I failed to notice that I didn’t know what I was talking about. I didn’t have a sense of who I was. What I wanted to say. This culminated in a handful of posts I made towards the middle of 2009 that I don’t really feel any need to rehash, even if I hadn’t cast everything down the memory hole.
A few sentences ago, I said I hadn’t known what I wanted to say. To be clear, I still don’t, in the sense of having a topic or theme for this blog. I know what I don’t want it to be. I don’t want to continue writing stream of consciousness, usually based on some item of no interest to anybody. Usually not even to me, really. I’d be a fool to say I didn’t want a readership of thousands, but if I did, I don’t really want to be because of a cool finder like Kottke, a topic guru like Gruber, or a thought leader like Anil Dash. If I want anything, it is to contribute columns (err?) of 750 words or so at some regular interval that are interesting, readable, and timeless.
Now that I think about it, if you could read something of mine and conclude that it wouldn’t be out of place within The Magazine then I would be proud of it. I might even frame it :- )
Some meta that I feel compelled to note.
The old avocadia ran on a Ruby on Rails codebase of my own writing that aimed high and fell short on many fronts. Most relevant was that it stopped working. I’m not sure why although I’d hazard a guess it was because it was written five years ago using Rails 2.3, and my hosting service, Dreamhost, just stopped supporting elements of it. Why that would be escapes me, but here we are. I put some effort into investigating why and concluded that I just didn’t care to put the effort into rescuing a codebase I had so little to be proud of. Instead, I rebuilt it, and in short order had a very cut down blog engine that would support only what I needed and wanted. Such a shame it uses a version of Rails that Dreamhost is yet to support. Such a shame I couldn’t even persuade capistrano to deploy it to Dreamhost.
I just don’t have the time or interest in making it work. Instead I am using Octopress. It’s so minimalistic it almost doesn’t even exist. I’m writing these words in Sublime Text and they’ll get saved as a file on my home machine, albeit synced by Dropbox to my work machine, my phone, and my iPad. Eventually use Rake, a Ruby tool, to compile the collection of post files into HTML that can be uploaded to Dreamhost. It’s so primitive; on the other hand, I don’t need to piss my time away making sure a home made engine, or even Wordpress, keeps working. It’s Movable Type, with the admin interface moved down to the command line.
I should grow a neck beard.
Comments. I could support comments. I could use Disqus. It’s just that I don’t think comments are much good. I’d just end up having to police them for spam, trolls, and sundry other annoyances. Comments add nothing and detract so much. The best comment system is email. So email me.
<< prev | next >>