Hacker News new | past | comments | ask | show | jobs | submit login
John Carmack .plan Archive (2014) (github.com/eswat)
153 points by makmanalp on Sept 25, 2016 | hide | past | favorite | 50 comments



"I probably had my personal "moment of truth" around the beginning of Doom 3's development, when it became clear that it is no longer possible to deeply understand every single part of a modern application. There is just too much. Nevertheless, I found that I could still enjoy my work when confined to a subset of the entire project, and I have thus remained committed to the high end. However, the appeal of smaller systems still lingers." [0]

I am very much having this moment with the current state of web/app development. Being a generalist, you end up primarily working to meet a product end, be it new user features or product milestones. All the time making many compromises along the way, as any good engineer should. Yet the depth of the web/mobile stack, the sprawl of libraries, and the abundance of computation for most tasks makes you operate at a very high level (30,000 ft) and only dive down to the bits when absolutely necessary. This has its own joys, primarily one of productivity, but it does starve a primordial part of most developers' brains that craves order/perfection/optimality/complete understanding.

I never understood why some people would play with a low level language like C or assembly outside of work in their free times. After 10 years of professional application coding, I get it.

[0] https://raw.githubusercontent.com/ESWAT/john-carmack-plan-ar...


I feel this is especially true in a web/API world, where a lot of what isn't automated is usually rather similar between projects.

I deal with some daily major systems and some critical security architectures, but most of the time I feel like a digital janitor who is mainly making sure the SOA pipeline doesn't clog up.


I'll pass on the recommendation that previous HNers have to me: if you haven't read Masters of Doom yet, do it. Whether you're an entrepreneur or an engineer or both, it's a really inspirational and informative tale. It also talks about these .plan files.


There is also Making of Prince of Persia book, which is great read as well.


I enjoyed both Master of Doom and the two Mechner books (for Karateka and PoP). Can anyone suggest similar long-form blogs or books where a single developer talks about a programming journey they took? (Nat Friedman - Ximian - had a great blog 2002-2006ish of this nature, but it has since gone down.)


I can recommend Stay Awhile and Listen by David L. Craddock which tells the story of how the original Diablo was made. It's mostly told in interviews, so while it's not a single developer's story a lot of it is first hand.


You should definitely check out Bob Pape's book about the spectrum version of Rtype (and Rampage)

http://bizzley.imbahost.com/download.html


About half way through so far, thanks! :)


Totally agree, also The making of Karateka is worth a read


I hope he will publish third book about development of The Last Express.


I'm definitely getting it if he does. For others, I never played Karateka (got the retro iOS version a while ago) but the book stands on its own without having played any of the involved games (of course, having lived through it helps, so you know what games in those days involved)


Fantastic book. Find the audiobook version, narrated by Wil Wheaton — it's a captivating listen. (And a joy for anyone who grew up with PC shareware back in the 90's.)


Absolutely. Masters of Doom was a compelling read. And reread.


This gets posted to HN roughly every few months or so. Or something similar, like when I posted the quakeworld post.

I don't mind. It totally deserves it.


In current times people feel uncomfortable fingering someone.


It's unfortunate that this comment got down-voted. If you wanted to see someone's .plan file. You use the finger command. ie, finger jcarmack@facebook.com. Of course, very few people if any still run the finger service. The above post was a subtle humor that needs a history lesson.


Funny thing: finger and .plans were what you are doing.

Twitter is what you are doing.

I wonder if in some alternate universe 'finger' would have became mainstream.


Funny thing: finger and .plans were what you are doing. Twitter is what you are doing.

Even more apropos was finger's .project file: it was meant to be a single-line status update about your current project.


Well, there's always something like this Finger-to-Twitter proxy:

https://gist.github.com/mcroydon/519344


but then i'd have to use node.js


True. So maybe it would be better to stick this one-liner in your inetd.conf.

    perl -MLWP::Simple -MCGI=escape -MHTML::Entities -MEncode -e '$u="";read(STDIN,$u,1,length($u)) while length($u)<128 and $u!~/\n/;$u=~s/^\/w//i;$u=~s/\s//g;if(!$u){print "This server cannot enumerate users.\r\n";exit}elsif(length($u)>128){exit}elsif($u=~/@/){print "Finger forwarding denied.\n";exit}foreach (split /\r?\n/,get("https://twitrss.me/twitter_user_to_rss/?user=".escape($u))) { if(/<title>([^<]+)/){$title=decode_entities($1)}elsif(/<dc:creator>.*\(@([^)<]+)\)/){$author=decode_entities($1)}elsif(/<\/item>/){print encode("utf8","$author: $title\r\n")}}'
On the bright side, Finger is a simple enough protocol you can implement a full-featured RFC1288-compliant server (except for some optional features) in under 600 characters. Remind me again why nobody uses it anymore?


That's one heck of a 1-liner! I like it.

>. Remind me again why nobody uses it (finger) anymore?

People wanted "shiny" for their things.


The protocol is so simple and the client so pervasive (it's even on Windows by default) that you could still do something semi-interesting with it today, I reckon (for command line dwellers only though, it's just as easy to hit a URL and get some text back..)



Pff, 2014. I remember the good 'ol days when you read Carmack's plan on Blues News as he was discovering BSP tree's and firing Romero :)


Blues News? You mean you didn't finger his account directly from a shell prompt?


I was never much into fingering unfortunately


Good memories. TIL that Blues's News still exists:

https://www.bluesnews.com/


For Kindle users like myself, I've bundled up the plan archive into a nice e-book format (one chapter per entry) to read through all of these:

http://rtpg.co/files/carmack-plan.epub

For those interested in the script, here's that:

https://gist.github.com/rtpg/4eb757c2c71ab20946bbd8156cd0533...


One of my favorite parts is when he talks about buying a gigantic $10,000 "portable" computer (an early Pentium, I believe) and just going to an out-of-state hotel and working for a few days with no contact with the outside world. On his return, he decides to repeat the exercise every few months. I've been considering the same (but with Internet access).


I was doing this every few weekends, while living/working in Toronto but getting a hotel for a weekend in one of the suburbs. I used this time to work on my own projects and long-term reflection, since I was working on the client work so much it was hard to detach enough to work on my own stuff in the same environments I worked on other people's work in.


Keeping an archive of .plan files and making it web accessible is why Ryan wrote IcculusFinger. A shame finger died out :-)


A shame finger died out :-)

To be fair, it never had much of a life to begin with. I bet I can count on one finger (sorry) the number of folks who ever saw the cute ASCII art in my .plan.

Carmack may well have been the only person in history to have put finger to good use. Even back in those days, using your .plan for actual status updates was virtually unheard-of.


You can finger my email address (david [at] gloveraoki [dot] net) to read my Twitter.

For no real reason other than I thought it was fun.


GNU coreutils contains pinky(1), a lightweight finger(1) replacement.


At one university where I studied at for a bit around the period of 2009 - 2012, they had and, judging from their Wiki, still do have, finger daemons running on most Linux servers and workstation -- perhaps even on all of them.

Furthermore, the vast majority of workstation computers at the department for informatics and at the department of mathematics are running RHEL, so it's not just a handful of computers.

As for how many were actually making active use of finger and in particular .plan files, that was probably just a handful of people. I was one such person for a while after having learned about it and thinking it was kind of neat, but I eventually gave up on maintaining my .plan file and focused on other ways to share things.


Finger is one of those ideas that worked only while the internet was a playground for the university labs.

After all, it requires that a port is exposed to the world for someone to read it.


The problem with finger is that it exposes information that is now considered sensitive while it provides very little benefit. And of course because it is an old protocol there were some security issues with the daemon.

It's a neat idea but if you want to share information about yourself, why not have a webpage?


Yeah when I was at university (1998 - 2002) .plans were used by a lot of students as a primitive blogging mechanism. I also wrote some perl scripts to show .plans on the web, and even added some basic markup features. I bet a lot of people did that as their first experiments in cgi programming!


Much like email, finger was a service usually hosted by your ISP/university/workplace. The daemon did not run on your own machine.


What do the * and + mean?


If I recall correctly, * means it was done that day and + that it was done at a later date.


If it was done later, how did it enter that file?


I think he just went back and changed the text file a few days later. I don't know how this works with the finger protocol (never used it), so it might just've been for himself.


Interesting tidbit about a music video his future wife, Katherine Anna Kang, animated that used the Quake engine in the Feb 7, 2003 plan.

In the Waiting Line - Zero 7: https://www.youtube.com/watch?v=Cq336zk2cZk


I recall reading his and a lot of other companies' and developers' .plans over at https://www.bluesnews.com


* John Carmack's .plan for Feb 24, 1996 ... * RELEASE QTEST1

It looks so brown and blocky and crude now, but it was huge at the time. Good memories.


Lots of big news in August 1996.


I keep my orgmode main file in ~/.plan


I miss .plan and finger :(




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: