Back to writing
My motivations for writing
- Table of contents
- Creativity and visibility
- My other art and future ideas
I have always hated writing. You've heard people say "I'm so bad at math", but I have said "I'm so bad at writing" just as many times. If my English teachers saw that I had begun writing voluntarily I think some of them would be shocked, and some of them would say I had the capacity but never the drive.
My grammar in these articles is probably not great. In one English class my professor pointed out that I make comma splices on almost every page. I have an affinity for turning things into bullet pointed or numbered lists which in somes cases is the best presentation for the material but in other cases is a cop-out to avoid prose. I have no problem writing sentence fragments. Or overusing em-dashes and parentheses. And I start sentences with conjunctions. For some reason I have a fascination with stringing together very long hyphenated phrases in an I-wish-I-had-an-adjective-to-use-here-but-I-guess-I'll-have-to-make-my-own kind of way. But the fact that this page you're reading even exists is a testament to the fact that I have decided to prioritize expressing myself and reaching people rather than writing "well" or following any particular structure.
Creativity and visibility (§)
Generally I think that programming can be an art form. The choices of naming, indentation, docstring formatting, quantity and quality of comments, and API design are all areas rife with opinionation and the ability to impress. Or at least the ability to enrage when they are bad. Code can last a long time and have wide-reaching impact. I am proud of the code that I write, and I write it with the expectation that it will be read, not just run. Experimental ideas get the
# WARNING: Bad code ahead! treatment but for the most part I think I do a good job.
The problem is I can't share the joy of my work with anyone who isn't also a programmer, which is most people. They won't understand the work that goes into it, the decisions I made and how they compare with the alternatives, the extensibility and modularity of my design, the consistency of my whitespace, or how excellently the comments explain the rationale behind some particular particularity. I can spend several hours putting an application together, and no matter how useful it is to me , the most I'll get out of friends or family is "oh, cool". It's worse for backend code, where there's no visible product whatsoever besides the code itself. Not even other programmers will be interested in reading through that unless they expect to find something novel or some accidentally-published credentials to borrow.
What did you do today? Um, well, I have a program that helps me organize ebooks and it had a problem so I spent about three hours fixing it. Oh, cool.
I'm not totally detached — I know that musicians, authors, filmmakers, actors, dancers, visual artists, architects, and engineers of all trades experience this exact same feeling. I know that cutting room floors are messy the world over. I've seen Misery so I know the blood, sweat, and tears that go into writing a book. But for most of these, you have an end product which people understand, recognize, contemplate, compliment, love, hate, collect, burn, sing along to, cry over, are frightened by, have revelations through, make videos about, wear, get tattoos of, and decorate their homes with. The only time programs really wow non-programmers is when they output art or music and in that case it's not the program they care about. I sympathize with security professionals, technical support, and janitors whose job it is to remain invisible.
I have likened programming to art, but really it is more like craftsmanship. If a craftsman makes a beautiful hammer, other craftsmen can appreciate it but most people will just want to hit things with it... which is its purpose, after all, but if only they would enjoy it a little more?
This is why I have decided to start writing these articles. I have many ideas and though I am absolutely fraught with counter-counter-thoughts, I'm doing it anyway so that I can feel like I've actually used the thoughts for something instead of letting them be forgotten in timid silence. I want to have something to show non-programmers for what I do and what I think. To explain my interest in such-and-such technology in some way other than "here's a git repository I made for that".
 This section is basically me whining about not getting enough praise so let me clarify. I write programs because I enjoy it and because they benefit me. Here's a bunch of scripts unlikely to be read by anyone, but which represent the me-shaped indentation I've left on my computer like a bed that you slept on too long. The more things I automate, the more time I have left over to... search for something else to automate. It's just that, let's face it, sometimes I wish I could show code to people and have them say "wow, nice!".
My other art and future ideas (§)
This isn't to say that I've done nothing but programming and am just now trying something else for a change.
Drawing: I'm not a super great artist but I have always enjoyed doodling. I have a digitizer tablet which I mostly use as a mouse-substitute but I enjoy doing digital sketching, and I like the additional handwritten flair when I need to annotate screenshots instead of using MS Paint text.
Youtube: I was 15/16 when Minecraft lets-plays became huge on the internet. My computer at the time didn't get very good framerates, so although I tried recording a few lets-play style videos I knew it wasn't really worthy of publishing. Instead I made some tutorials about redstone and worldedit because subpar framerates are tolerable if the lesson is good. As I got older I was not happy with how my voice sounded in those videos, and did not want people finding them, so I deleted them both from youtube and my computer.
I later did some tutorials for writing reddit bots with PRAW, but when PRAW moved from v3 to v4, those videos became obsolete and I decided to unlist them.
The only valuable video left on my channel is 22n - 1 = 3k and I would like to do more in this vein. I've always enjoyed kinetic typography videos (one, two, three, four, five, six) and educational math channels. 3B1B was already big by this time.
Many of the articles I write here are things that I would like to make videos about. But while text is cheap and gittable, videos are not, so I think this is the better way to start.
Minecraft otherwise: My first real programming experience beyond .bat files was in Java, which I had to learn in order to make mods for Minecraft. I made my own ores, tools, plants, and trees. About 30% of the items I made had some semblance of legitimate purpose, the rest were because I had come up with some pixel art that I liked and wanted to make an item for it. If you want to see some python projects that spawned out of my Minecraft interest, see VoxelSphereGenerator and Minecraft3DVector.
TF2: I have 1700 hours in TF2. Some hundreds of those are from idling to get refined metal back when it was 2.33 per key. Out of the active play hours, I'd say at least 90%+ were spent on cp_orange_x3 or variant maps. There was a server with a 100% crits mod that I played on regularly, and when I made my own orange map cp_orange_Skyward they were kind enough to host it and I became a moderator on the server. Here are some screenshots of Skyward (one, two, three, four) and I will see about cleaning up the messy vmf and uploading that.
Making texture replacement skins for TF2 is pretty easy, but for a bigger challenge I tried Blender to make a hat. I only got so far (one, two) before giving up, but at least I can say I've used Blender.
A little more than a year ago I discovered the world of fan-made film commentaries. The first one I saw was David Taylor's Birdman commentary, then I discovered Tysto and popcornpoops and a few others. I think this is an awesome idea and I've wanted to make some ever since, but I haven't gotten around to it yet. You have to find enough interesting things to talk about to make it worthwhile.
Paul Graham's articles, particularly Why Nerds are Unpopular and The Age of the Essay. Thank you Paul for helping me realize that writing can be approachable, and that the 5-paragraph assignments from school have wrongly commandeered the word essay.
David Foster Wallace. I learned about DFW via Will Schoder's video The Problem with Irony. Then I read DFW's E unibus pluram (1993) and Brief Interviews with Hideous Men (2000) and watched this interview he did on German tv. I have not read any of his other works yet but I will get to them in time.
I don't read books very often. The number of books I've read on my own accord is very small. So maybe I'll sound like a noob discovering the best thing since sliced bread. Having said that, Brief Interviews is one of the few things I've ever read where I was actually amazed at what I was seeing. I say "seeing" and not "reading" because at the moment I'm not even talking about the message, but rather the formatting, the torrent of footnotes and asides, the introduction of terms like [flexion of upraised fingers to signify tone quotes] which over the course of a few pages shortens to [finger flexion] then [f.f.], the unabashed reuse of chapter titles and recurring segments, and the chapter Datum Centurio which is written like an excerpt from a dictionary from 2096 with an obscenely overwrought system of superscripts, daggers, subsections, IPA, and index cross-references (KEY at BABE, CYBER-). Suddenly my poor use of the comma doesn't seem so bad. Reading this book is like watching 2001's stargate sequence or Beyond the Black Rainbow or House or Let the Corpses Tan to some extent. I have always had a tendency to overuse parenthetical asides, but my growing affection for footnotes is thanks to DFW.
I hear that James Joyce is similar and will likewise get around to reading his work.
Similarly, gwern.net. The funny thing is I don't actually read gwern, I've read maybe one or two articles in total. I consider it an influence because he also goes very heavy on the markup formatting and asides (in fact, between the icons indicating the domain of every link, and the asides which physically crowd the main article, I'd say it's a bit too much for me), and I particularly like that there's almost always code snippets, graphs & charts, even embedded audio clips in some cases. I would like to add more rich media to my writing too, but because this website is saved as a git repository, I'm perpetually hyper-aware of the don't store binaries in git! fairy reminding me that the repo size is going to bloat if I do that. Maybe I should put the files on s3 and just link them here? But then the site becomes more fragile and loses its cohesion as a cloneable, offlineable, full website? We'll see what happens. Hmm but I'm linking to third parties too so maybe I need to be archiving those links like gwern does.
I also like that Gwern articles invariably link to multiple other Gwern articles, in a twisted web not unlike the brain itself which spawned it.
danluu.com for keeping the most minimal plaintext blog I've ever seen. So much so that I have to use Stylus to give the page a column width or else it's cinemascope levels of head turning to read.
View this document's history
- Replace github links with git.voussoir.net.
- Replace DFW German interview link with a working copy.
- Link directly to the Birdman commentary file.
- Move S3 images to my domain.
- Upload tf2 screenshots to s3.
- Add tag introspection.
- Add tag meta.
- Fix typo "bunch scripts" -> "bunch of scripts".
- Add motivations_for_writing.md.