
John Carmack .plan Archive (2014) - makmanalp
https://github.com/ESWAT/john-carmack-plan-archive
======
siavosh
"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...](https://raw.githubusercontent.com/ESWAT/john-carmack-plan-
archive/master/by_year/johnc_plan_2007.txt)

~~~
eksemplar
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.

------
dopeboy
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.

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

~~~
petercooper
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.)

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

[http://bizzley.imbahost.com/download.html](http://bizzley.imbahost.com/download.html)

~~~
petercooper
About half way through so far, thanks! :)

------
qwertyuiop924
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.

------
stesch
In current times people feel uncomfortable fingering someone.

~~~
segmondy
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.

------
nailer
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.

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

[https://gist.github.com/mcroydon/519344](https://gist.github.com/mcroydon/519344)

~~~
AckSyn
but then i'd have to use node.js

~~~
nandhp
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?

~~~
AckSyn
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.

------
krat0sprakhar
Previous discussion:
[https://news.ycombinator.com/item?id=3367230](https://news.ycombinator.com/item?id=3367230)

------
mhomde
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 :)

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

~~~
mhomde
I was never much into fingering unfortunately

------
rtpg
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](http://rtpg.co/files/carmack-
plan.epub)

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

[https://gist.github.com/rtpg/4eb757c2c71ab20946bbd8156cd0533...](https://gist.github.com/rtpg/4eb757c2c71ab20946bbd8156cd05332)

------
petercooper
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).

~~~
eswat
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.

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

~~~
digi_owl
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.

~~~
tinus_hn
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?

------
k__
What do the * and + mean?

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

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

~~~
oskarth
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.

------
becomevocal
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](https://www.youtube.com/watch?v=Cq336zk2cZk)

------
EA
I recall reading his and a lot of other companies' and developers' .plans over
at [https://www.bluesnews.com](https://www.bluesnews.com)

------
MrZongle2
* 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.

------
wj
Lots of big news in August 1996.

------
atemerev
I keep my orgmode main file in ~/.plan

------
jnordwick
I miss .plan and finger :(

