
The joys of having a Forever Project - biesnecker
http://www.dev.gd/20130122-the-joys-of-having-a-forever-project.html
======
GuiA
For inspirational purposes- various people working full time on their Forever
Project:

The Adams brothers, Dwarf Fortress:
[http://www.nytimes.com/2011/07/24/magazine/the-brilliance-
of...](http://www.nytimes.com/2011/07/24/magazine/the-brilliance-of-dwarf-
fortress.html?pagewanted=all&_r=0)

Elon Musk, Mars colony: [http://www.wired.com/wiredscience/2012/11/elon-musk-
mars-col...](http://www.wired.com/wiredscience/2012/11/elon-musk-mars-colony/)

Donald Knuth, The Art of Computer Programming: <http://www-cs-
faculty.stanford.edu/~uno/taocp.html>

Hiroshi Ishii, Tangible Bits: <http://web.media.mit.edu/~ishii/>

(this is off the top of my head- I wish the list were longer, but it is late
:) )

~~~
pagejim
Yes, and for some people like me, reading and finishing the complete TAOCP
series is a 'forever' project.

~~~
betterunix
One of the side projects I have to embark on is writing a companion to TAOCP
that shows how to implement the algorithms in a functional language, probably
Scheme or some subset of Common Lisp. The main complaint I have about TAOCP is
Knuth's insistence on using assembly language to illustrate the algorithms --
otherwise, they give what is probably the most in-depth description of the
motivation and analysis of algorithms I have seen (much more detailed than
CLRS, though CLRS is more complete).

Also, it is worth pointing out that there is no "complete TAOCP" yet. It
remains a work-in-progress; I am looking forward to Volume 4B (though I have
yet to actually finish any of the current volumes).

------
stusmith1977
I'd add one more thing to this article: don't throw these projects away, even
if they seem failed/doomed/incomplete. Store them somewhere. Back them up.
Whatever. You might need them.

Back when I was a teenager, I wanted to write an art package for an obscure
computer (Acorn Archimedes). I wrote the first version in BASIC, then decided
to re-do it in assembler. The assembler I first used couldn't cope with the
size of the project in the end, so I wrote my own assembler; at that point I
discovered C, so wrote it in that. Unfortunately the C compiler I used was so
full of bugs I decided to port LCC to produce ARM assembler, but then I needed
a linker, so I wrote that as well. Got it all working lovely to the point
where it could compile itself.

At university I figured Intel PCs were more useful than my obscure computer
so... I forgot about it. Lost it.

And to this day, I can't help but wish I still had it... I had written, and
lost, a complete C development system, faster than any of the other
compilers/linkers I tried, small footprint (it had to fit in a machine with
4Mb RAM), and ARM chips are now everywhere. Damnit!

So please... save your work.

~~~
jerf
"... art package for an obscure computer -> wrote my own assembler... port
LCC... linker..."

Sir, you have one very well-shaved yak there [1]. Excelsior!

In other news, I sometimes see people bemoaning losing the "easy programming"
that the era putatively had. I sometimes wonder if time has simply faded the
scars of a world in which that's the sort of thing that might realistically
happen. The era made some moderately difficult things easy (people mostly seem
to miss the ability to slam pixels on the screen), and everything else really,
really freaking hard, including many things we'd call easy today.

[1]: <http://www.catb.org/jargon/html/Y/yak-shaving.html>

------
perlgeek
Can you imagine how weird I felt when I finished my "forever" project?

Ever since school I wanted to write a simulation tool similar to one I've used
in school, which basically lets you write differential equations in graphical
form, and integrates them for you. And back when I was in school, I didn't
know a thing about differential equations, and it all looked like amazing
magic to me.

And while studying physics, I learned about DGLs and Runge-Kutta integration,
and then I "just" needed to manage all the data (do a topological sort on the
nodes to evaluate all the formulas in correct order), stuff it into the Runge-
Kutta solver, and graph the output. Yay.

I never got around to writing the graphical front end, but the all interesting
(to me) parts of the program are there. Oh, and it's written in Perl 6, the
programming language I help to develop in my free time. If you're interested,
check out <http://perlgeek.de/blog-en/perl-6/physical-modelling.html>

These days Perl 6 is my main "forever"-project, and it's coming along nicely.

~~~
ionforce
Pretty awesome that you completed a project using a not yet released*
programming language!

* for various definitions of the word released

~~~
perlgeek
It's enough that a compiler is released.

------
tjic
Around 1980 I read Heinlein's "The Moon is a Harsh Mistress".

In 1993 I started sketching some ideas for a novel loosely - very loosely! -
inspired by it.

I kept poking at the ideas, and tried to write the book several times. I never
got much traction, but did end up writing and publishing several non-fiction
articles in national magazines in this time.

In 2011 I started. I wrote 160,000 words and created a fairly epic (in scope)
science fiction novel that tied in moon colonization, desktop manufacturing,
genetic uplift, AI, open source software, and more.

In 2012 I kept going. I wrote a second draft, and it reached 180,000 words,
and was a MUCH better novel. In September 2012 I kept going and wrote the
third draft, splitting it into two novels.

Right now I'm taking a one month hiatus before writing the fourth (and final?)
draft.

I hope to publish it later this year.

So far I've sunk over 2,000 hours into this project, and it's one of the
things that I'm proudest of in my life.

All of which is to say: yes, hang onto your crazy side projects; you'll be
glad you did.

~~~
tjic
I should add: I've become so interested in the world and characters and
situations I've created (and so have a half dozen or so alpha readers) that
I'm planning on writing another two novels as follow-ups.

~~~
epochwolf
Awesome! Some advice from a writing group I've attended: Find a good editor
that has the time to do a good job. Think of it like this, you can have the
greatest band in existence and it can sound like crap with a bad person on the
mixer.

I'm not a novelist myself, more of a hobbyist but I've seen the results of
good and bad editors in my little group. I've also run the mixer at my
parent's church. The key to a good artistic performance is both you and the
people supporting you. :)

------
cookingrobot
My forever project is a cooking robot. I've been thinking about how I'd
approach it for years, but never had the chance to make what I thought would
be a worthwhile start.

The stars aligned this year, and I'm actually able to work on it now. This is
the current temperature of my stove: <http://dave-stuff.s3-website-us-
east-1.amazonaws.com/>

~~~
stretchwithme
That is awesome. That's the ultimate DRY (don't repeat yourself) thing
humanity needs. It will free us from all the work required to raise the
quality of our food, making eating well as easy as fast food.

~~~
cookingrobot
That's the hope :) It's a surprisingly missing medium.

~~~
jerf
My personal touchstone for the beginning of the true Robot Age is a fully-
automated McDonald's or equivalent being seriously deployed not as a tech
demo, but because it is the best solution. Supplies in one end, someone
carting the waste out the other, and everything else, including cleaning,
should be done by the robot itself. (Though perhaps I'll bend on the cleaning.
That does add another very significant level of complexity.)

~~~
epochwolf
McDonald's tried this and it turned out minimum wage workers are cheaper and
break less than cooking robots.

~~~
stretchwithme
Robots will be cheaper eventually. And very easily reprogrammed.

For me the goal is not cheap food but quality food.

And the most expensive part of going out for many people? Driving there, if
you consider the cost of their time.

Ultimately, we will get robotic vehicles to do that part too. We will see some
very small vehicles once robotic vehicles are commonplace, perhaps delivering
only a single meal.

And we'll also see robotic cooks that can cook anything, so they may become so
common you won't need to drive to them.

------
Udo
Maybe some forever projects are just huge time sinks with a plainly delusional
background.

But how to tell?

I've been working on and off on my forever project for about 4 years now. It's
cursed. I pulled the plug repeatedly for different reasons:

First time I started developing it, after a few months, a high-profile/highly-
funded Open Source project with exactly the same features announced itself. I
didn't want to spend time on something with so famous a competitor, it just
didn't seem reasonable to duplicate/waste effort like that. If I'm honest, I
was also kind of pissed that I was having such a hard time convincing people
my thing was worthwhile, and then those guys come along and suddenly everyone
acts like it's the most groundbreaking thing ever!

Second time, I started up again when the famous Open Source project kept
drifting aimlessly somewhere between success and failure with no clear vision.
I even enrolled in nReduce, mostly to keep me on schedule and make contact
with like-minded developers. Then my mother got sick and died last year, that
was the end of the project right then and there as I wasn't able to continue
at that time. Maybe her death should have driven me even harder to develop
this project, but the sad fact is that I just disintegrated unproductively.

Now I have to ask myself if I should ever continue this project. On the one
hand it's not _that_ ambitious, so it won't really take forever. On the other
hand, there is mounting evidence that I won't be able to pull this off
(considering the two attempts before). Wouldn't my time be better spent to
start something completely new? Difficult to say because that one project is
still on my mind.

~~~
Joeboy
I'm going to guess that your forever project is a distributed social network.
I think a lot of people (me included) are in a similar position. The
challenges are really big, and most of us (me included) get disheartened at
some point. I think at some point Facebook will drop the ball and something
else will get to pick up the pieces. I guess that will be whoever had the
stamina and resources to keep iterating.

~~~
Udo
_> I think at some point Facebook will drop the ball and something else will
get to pick up the pieces._

I don't want to push this thread off-topic but I believe at some point
Facebook, Google and others will have to open up their flood gates and allow
information between them to be exchanged. I also think an open source project
could nudge them in that general direction, especially when it gives people
the option to just install it on their own servers like they would Wordpress
or any other web app.

 _> I guess that will be whoever had the stamina and resources to keep
iterating._

There must be literally thousands of those projects out there by now. Which
brings me back to my original point: is it madness to try? Is a forever
project that failed two times before even viable? At what point do you take a
hint from the universe? How do you judge your own efforts, especially when
nobody else cares about your work?

~~~
graue
This is my Forever Project too.

> _There must be literally thousands of those projects out there by now. Which
> brings me back to my original point: is it madness to try?_

Here's what I think: Don't blindly start Distributed Social Network Number
1,001. But pick 5 or 10 existing ones that look promising. Try them all.
What's good about each one? What sucks?

Then, if one seems like a solid foundation, contribute and build on it. If
they all seem too deeply flawed, learn from their innovations and mistakes and
join others who are also learning. Explore other possibilities.

I was very excited about Tent.io, and wrote a small app for it, but after a
few months began to see serious problems with its design. For now the Forever
Project is on hold so I can build a music player. In a month or so I'll
probably start thinking about what's next. My email's in my profile if either
of you want to continue the conversation (or, if anyone reading has thoughts
on this and wants to talk).

~~~
Udo
_> But pick 5 or 10 existing ones that look promising. Try them all. What's
good about each one? What sucks?_

I'm kind of divided with myself on this one. I did compare some when I first
started (there weren't very many of them around), and it was kind of obvious
what decisions (mainly pertaining to the protocol itself) I didn't want to
replicate. One of the reasons I started my own project was that I couldn't
find something to be happy with. And I still can't, but admittedly I'm not
looking that hard anymore.

The reason I'm reluctant to just go ahead and gather all the stuff I like from
other projects is that contamination is a real problem. Especially in a space
that, in my opinion, hasn't been solved yet.

 _> For now the Forever Project is on hold so I can build a music player._

Looking forward to your Show HN :)

~~~
Joeboy
> Looking forward to your Show HN :)

I can show you _my_ latest forever project distraction / music-player project,
which I just blogged this morning and am feeling quite pleased with:

[http://www.joebutton.co.uk/blog/baremetal-midi-
lv2-raspberry...](http://www.joebutton.co.uk/blog/baremetal-midi-
lv2-raspberrypi/)

It's probably not the same kind of music player as graue's though.

------
njharman
I'm 42. I've had such a project since 14 or so, more than a 1/4 century. There
has been long stretches of inactivity, exp lately. But, I've used it to learn
many languages, GUI frameworks, OOP, the non-existence of silver bullets (aka
OOP ain't all that), and many other topics/skills. Originally started in K&R
C, then Turbo Pascal, Perl, C++ (it was new and exciting when I was in
college), back to Perl, finally and for the long time now Python (with which I
made more progress in shorter time than all other efforts/languages combined).
Lately (last couple years) been toying with writing parts in Erlang.

I've long since accepted I'm not finishing this. I sort of don't want to. It's
an old friend, I would miss if it went away.

------
6ren
funfact: in the expression "reach exceeds grasp", your reach is what your
fingertips can brush, your grasp is what they can wrap around.

The common-sense way of handling impossible projects is to break them down
into doable sub-projects: components, layers, aspects etc. Then you can get
satisfaction out of completing each of them. A psychological problem I have is
accepting these as goals in themselves - if it doesn't do _all_ of the
project, it feels like it doesn't count.

However, this is silly of me, because it is still progress. A journey of a
thousand miles consists of steps - not just the first one, all of them. And
even for a commercial project, an inadequate beginning (that still does
something) is beneficial: people love the sense of progress more than
everything already done, your updates give you publicity, and give customers a
reason to upgrade. Even with regard to competitors, it's good to have room to
improve, because when they've copied you, you've moved ahead. If you're
already perfect, once they copy you, you've nowhere to go. You're a sitting
duck (wrt engineering competitive advantage).

Of course, this article has a more joyful attitude towards such projects.
Maybe I should try it.

~~~
noptic
In the best case you can break it down in reusable parts. I took some of the
commandline tools I created for my forever project, and turned them into a
stand alone application.

------
dageshi
Ahhh yes, I know it well.

Personally mine has this terrible habit of consuming almost 100% of brain
resources to the point where I literally can't do anything else productive. So
often I have to say "no I'm not going to touch this for a month until I've got
some real work done... then maybe I can take a look at it"

Still my forever project is coming to the point where I might be able to
release it. Or rather, I'm running out of things to look at in it and think
"that's not good enough I need to make it better", now it's mostly "that might
not be good enough but I have no clue how it could be made better".

Which is rather pleasant :)

------
lifeisstillgood
Forever Projects are like stars, we set our course by them but never reach
them.

I am now creating my Forever Company - where I can work in a way compatible
with living a life and still make a difference. Some people will join my
journey some will leave as I change course. I cannot imagine finishing my
Forever Company either. But I know the next steps.

Thank you OP - some good inspiration there

~~~
stuartk
I like the thought of a Forever Company. Often we start businesses to sell it,
and then to start on something else.

In a way the forever company is you, 'Me Inc' as it were. Hopefully forever
building and growing.

~~~
geophile
We're veering dangerously close to "personal brand" here.
[http://www.theonion.com/articles/i-am-a-brand-pathetic-
man-s...](http://www.theonion.com/articles/i-am-a-brand-pathetic-man-
says,30545/)

------
sparist
Great article!

My forever project is: the syntactically simplest high-level programming
language. This had been kicking around in my brain for a long time, re-
emerging every time I learned or read about a new programming language whose
syntax seemed unnecessarily complex or conventional. As overwhelming as new
language development is, I decided to set a goal for the end of 2012: a
sufficiently complete proof-of-concept implementation, with documentation, to
demonstrate the basic concepts. The result: <http://om-language.org >

Although the language itself isn't useful for anything yet, the side benefits
of developing it have been many:

\- Developing my C++, Doxygen, and Unicode knowledge/skills to a high-advanced
level, which I have applied in my professional software career.

\- Filling in lots of gaps in my knowledge of concatenative (and other)
language theory.

\- Discovering that using prefix notation in a concatenative language works
better than postfix: no stack underflows, no data stack needed, and a program
effectively becomes a partially-applied function awaiting more data (i.e. the
rest of the program), elegantly allowing for data pipelining and events. As
far as I know, using prefix notation in a concatenative language is a first.

\- Discovering "panmorphic types": that when every piece of data can be
expressed completely and equivalently in a uniform way (in this case, as a
quoted program), data types become an implementation detail.

\- Rethinking how to best define "number" with respect to a computation, which
has led me to arbitrary-precision arithmetic implementations, Riemann spheres,
APL, and down all kinds of other interesting rabbit holes -- resulting in some
new number theory ideas which I am fleshing out for incorporation into the
language.

\- Learning all the glue technologies to actually release it (CMake, GitHub,
etc.).

\- Writing documentation that describes it to others. This has clarified my
thinking on it more than anything.

Most importantly: I've invented a real language! It feels good.

Although I'll be adding to this project forever, none of these benefits would
have happened if I didn't set some goals for getting it out of my brain and
starting to flesh it out. I encourage anyone with a forever project to do the
same.

~~~
bluesnowmonkey
Your link is broken. It has an extra space at the end.

~~~
sparist
Fixed link: <http://om-language.org>

------
bryanlarsen
My forever project is a novel. It's a great way to fall asleep. It's a project
fun enough to focus on and ignore everything else, but completely stress-free
so it's very relaxing.

I don't actually write my novel done or ever plan on doing so. I once tried
during national novel writing month (nanowrimo), but that didn't work at all.
Much better to keep it as a nice thing to think about as I'm falling asleep.

~~~
ncarroll
Mine is too. I'm actually on my second one. I started back in the late 1980's
and spent some fifteen years planning and plotting the first one before I put
that outline in a drawer and began planning and plotting the second one. I'm
hopeful that someday all that writing around will morph into a real novel that
other people want to read but even if not the process has forever changed me.

------
egypturnash
I'm an artist. Back in 1995 I started coming up with this dark urban fantasy,
somewhat inspired by my unexpected homesickness when leaving New Orleans for
Los Angeles. I ended up with an interesting setting and some flat characters.

The day of 9/11, the right lead walked into my head and started talking. I
wrote down what she had to say and did the first drawings of her.

I made a few attempts at starting the thing, but I never got very far.
Multiple attempts at the beginning, random story fragments. They started to
form a narrative but some stuff was missing.

In the meantime I drew some other comics and a Tarot deck. Last year, late one
night, I was hit by a new idea for this story. I wrote it down, looked at it,
and realized it really tied a lot of the themes together at the climax. The
ending was right, after seventeen years of it bouncing around my head. Soon
after I did a few experiments at getting the rough, painterly look it's always
had in my head in my artistic weapon of choice, Adobe Illustrator, and nailed
it. My sketches looked pretty much exactly what I couldn't actually produce
all those years ago.

This November, I made significant progress on the first draft of a full script
for the whole thing. I didn't finish it but I have a complete skeleton, with
flesh on its bones for the first few chapters.

And I think I'll be starting to draw it when my current comic is over sometime
near the end of this year.

Some things just need a lot of underpinnings. I always knew I'd do it SOMEDAY.
I just had to let it boil way way on the back burner for a decade, until I
worked through all the real-life issues it's a metaphor for. And I am pretty
sure at this point that it will be worth the wait.

When the time is right, your Forever Project will become the current project.
And it will be awesome.

------
rooshdi
Interesting perspective on long-term projects. I too am working on a service I
consider my forever project, but one which may actually be launchable quite
soon. I can definitely relate to the dreamy state the author refers to, as I
too dream of a constant barrage of features I want to build into the service.
This can quickly get out of control though and become endless as a developer
delves deeper, but maybe that's why it's a forever project. You want this
service to exist so bad for yourself, it doesn't matter if you're the only
user. It's sort of like a nagging child. It's a part of you, no matter how
many diapers you got to change.

~~~
worldsayshi
I think that part of what the author is trying to convey about such projects,
rather than they being de facto 'forever projects' is that such projects are
worth it by the journey alone. Even if you don't ever reach the end of it -
the inspiration and learnings it gives you is enough to motivate continue
working on it.

------
ph0rque
When I started thinking about my forever project, <http://automicrofarm.com>,
it certainly seemed almost impossible. But as I started implementing a subset
of it, it got less and less impossible, and now is even feasible enough that
we've got a product (vs. a proof-of-concept) prototype (of the subset, not the
grand vision).

I think the author is spot-on with the speed-of-light analogy, but missing an
insight: you can declare a _huge_ victory if you attain 90% (or 99%, or 50%)
of your goal.

~~~
bgilroy26
I don't know, it would be a pretty significant achievement to attain .5c!

------
nzonbi
This is a great article. It is great to know that there are other people like
this. I always have had these projects that I can't forget off. There have
been various, but after I matured, I ended up focusing in two.

They are still early, I have been unable to dedicate on them as much as I
would have liked. Because I have lived most of my life with limited means. I
used to not own a computer, nor internet. While I worked to save my family
from poverty, all I could afford to do, was to buy books, and learn
programming, and work on my projects in theory.

It took a long time, but now I am relatively well off, and have a great full
time work. I am advancing my projects, but it is too slow. I am considering to
at some point, to take maybe a full year or two, to focus on my projects.

My two (still early) projects are:

Reproduce the human mind, and emotions, in a computer. Human like AI:
<http://www.ozkeebo.com/soul.project/> This is a problem that have fascinated
me since child. I have meditated a lot on it, and have this hunch that I can
pull it off. I am the kind of crazy and weird person, perfect for it. But I
know that it is a hard problem. Maybe I will never be able to complete it, but
at least I am sure that I will get great things out of it. Let's see how I
will be doing in 10 or 20 years.

My other project, is a graphical programming language. This comes from my
dissatisfaction in how we express programming languages. I feel like I want to
shout to the world, that we are missing a huge opportunity here. I feel like
we could be doing much better than what we have. But it is a lot of work, and
it will also take me years of work, to prove if I really have a point. I will
see.

Thanks for a great article, and a great hn thread anyway.

~~~
ionforce
So what are your hunches that lead you to believe that a graphical programming
language is the way to go? Not saying that it couldn't, but it hasn't really
been a success so far.

~~~
nzonbi
I am 100% sure, that at least for me, I can imagine and design a graphics
language, superior to text representation of programs. And I expect that for
most people, once they surpass the learning curve, will also be better. And
even more sure about it working for people new to programming.

We can represent programs using texts. text is a good way to represent
sequences of information. So it fit programs well, to some extent.

But text is limited. Programs contains many kinds of information, that don't
fit well with a textual representation. Hierarchical data, scope, branching
flow, loops, etc. After you realize this, you can also replace text commands,
with symbolic representations that are easier to parse visually, and that can
convey their function better than just text.

You need to maintain an appropriate level of information density. This one of
the thing that has made text representation of programs successfully.

The other key thing is the UI. We are highly productive in manipulating text
with editors. A successful graphical language has to beat that. It has to make
possible to manipulate the information more efficiently: faster, and with less
muscular effort. Allow me to call this the field of "unconventional UIs".

When I was a kid, I only had access to computer for a brief time. But I had
plenty of access to console games. I used to love videogames. I spent huge
deals of time detailed studying them, drawing concepts, etc. Examining why I
found most of them to be bad, some average, and a few gems. A key thing was
the UI. The mechanisms to manipulate the game environment.

Well, videogames are a rich field of unconventional UIs. And it is a field
that I know very well. My experience with all these game UIs, makes me pretty
sure. A better, more efficient UI can be designed, to manipulate programs
information, on a graphical environment, than existing UI from text editors.

that's it in short.

------
boothead
Learning Haskell... It wasn't supposed to be a forever project, but c'est la
guerre :-)

------
atas
Here's mine: <http://www.pubsoccermanager.com/> It has gotten really slow in
the last year, but I am planning to do something around it full time. Most
obviously it would be a game, but I also have a couple of other ideas of how
to monetize.

------
vincentleeuwen
Haha this is so true. I used my forever project (indeed, a obscure fantasy
football game =) ) over the past year as a narrative to pick up the basics of
programming. Although the game is still not live, I learned so much building
it.

Great inspiring read. Thanks!

------
npguy
If there is a forever project, maybe you shd just get started on it full-time
- it might be 'the one'

[http://statspotting.com/2013/01/that-one-idea-that-does-
not-...](http://statspotting.com/2013/01/that-one-idea-that-does-not-go-away/)

~~~
tluyben2
Yes, I think if you are really obsessed with something for over 10 years, it's
time to make it your life's work and not a side thing. But maybe the point is
that you don't want that to happen as you lose your forever project (if it
gets done) or fall out of love with it.

~~~
jpasden
Not everything worth doing makes money though...

~~~
tluyben2
No, but I don't think that's necessarily the point of a forever project nor of
life in general. It's not a goal of mine nor of none of my friends who have
one; most of the projects from people I know cannot even make money even if
(partly) completed.

Edit: If you mean, you need money to live; you of course need some money, but
not as much as most people think. Which makes it a question of priorities
mostly. There are plenty of fantastic places where $600-700/mo will get you
far, even without losing that much from your 'previous life'. You have to
sacrifice things obviously, but not that much (depending on what you are used
to).

------
stretchwithme
Mine is automating massage for physical therapy. Putting an end to muscular
stiffness and the pain and loss of function it causes.

~~~
raiph
That's something I've been interested in (though not a project) for a decade
or so. Links?

~~~
stretchwithme
I've outlined the basic approach:

    
    
      http://deeptherapeutics.com
    

Determining how to apply that method to a common problem has taken a long
time. Building a machine to do it is another set of challenges.

------
JensRantil
I don't necessarily think that it needs to be a Forever Project, as long as it
lasts for at least 6 months or so.

I've heard many smart people recommend having a bunch of small problems to
always think of. I think Richard Feynman recommended it.

Some examples of these kind of mental problems that I've been dealing with
over the years:

* How long does it take from the time that the planets are aligned to the time that they are aligned once again. This was a problem I thought of in ninth grade and was the reason why I learn programming at that age on my spare time.

* How does one construct a P2P filesharing application that does not have a central single-point of failure. I thought about this for a year or so in high school. Obviously, I also wanted anonyminity for the users if possible.

* Dreaming about the perfect configuration management.

* Mining common log line patterns and automatically extracting useful information for debugging, surveillance etcetera. How I would scale such an application, what it could be used for etcetera. This actually resulted in <https://github.com/JensRantil/disco-slct>

* Last year or so; How to develop a web application that uses CQRS, event sourcing and a distributed model. This also involves thinking about how this would enable smooth upgrading of subsystems, scaling of such system and security.

------
ryan-allen
I liked this article. I for one have been overly conscious on ends rather than
means, and I forget that it was the means that got me into software
development in the first place. I used to have so much fun! It never felt like
work (it does now).

I haven't enjoyed it in a long while, this article makes me wonder if I should
start one of my idea and develop it with no clear saleable end in mind. The
thought of which takes a lot of pressure off what I got done this week, this
month, yesterday.

------
kitsune_
I had different forever projects at different points in time. I often come
back to a planet renderer based on a certain algorithm (P-BDAM), but it lost
its lure on me in recent times.

The older I grow, the more I know the way I work, my strengths and weaknesses.

I recently decided to create a behavior- / attribute-based framework for
MonoGame, with functional reactive programming thrown in, and to my surprise,
I currently make quick and steady progress.

~~~
dgit
Interesting rgd. the functional reactive programming. I am obsessed with this,
in a networking/mobile device context instead of a gaming context - not that
it should matter. And applying this to real problems beyond the toy problems
that you find in tutorials on the web turns out to be real hard - this may end
up becoming my Forever Project yet. Email me at hank[at]ml1.net if you want to
discuss this.

------
karolist
Sounds to me like something Ze Frank calls brain crack.

<http://www.youtube.com/watch?v=0sHCQWjTrJ8>

~~~
r0s
I love this, but it really only applies to small ideas.

He clearly articulates the emotional weight of these forever projects though.

------
saraid216
Hm. I actually have four things that qualify as a "Forever Project", and I've
sunk a decent amount of time and money and energy into each one. Results...
nothing worth noticing.

But I like the idea of a Forever Project: just a thing that's been in your
head since forever and that you can't stop thinking about. Mine have gone
through many different permutations over the last 15 years, including attempts
to start a company.

------
pshc
Been working on a programming language for four years and counting.

I intend to release it someday hopefully soon, but it will never truly be
finished.

~~~
beaumartinez
Release it now, it's no use just collecting dust on your hard drive. You can
always improve it in the future—think of it being in constant development.

"Real artists ship."

~~~
pshc
Well, huge work in progress: <https://github.com/pshc/archipelago>.

But until I write the editor for it, there's really nothing to look at. Editor
is coming Real Soon Now.

------
digitalengineer
I actually thought this was about those projects you make for a client that
will never end. Clients that keep coming back with more and more changes.
Usually accompanied by a Project Manger that's afraid of the client. I
ocasionally have nightmares of _pressure cookers_ after working on a terrible
website for more than a bloody year.

~~~
dageshi
Extra bonus points if the original tech stack used on the website was wildly
inappropriate because "it's only going to be a small website to do x"

And big globs of functionality keep getting grafted on until the point where
you're terrified to touch anything in case it all falls apart.

~~~
digitalengineer
Indeed. I did not know it at the time but it's called _The Salami Technique'_.
Works best if you've got an inexperienced or scared Project Manager.

------
aleprok
Since childhood I have wanted to build on scale humanoid robot. Though I have
not done anything towards that goal except some thinking of what kind of
materials it has to have as the body. How to power it and what kind of brain
it needs. Though currently the only thing stopping me from starting to build
skeleton for it is money. :P

------
chookrl
"Live as if you were to die tomorrow. Learn as if you were to live forever." -
So I guess my forever project is learning

------
twelvechairs
I'm designing a (runtime, highly flexible) graphical system to aid in the
breaking-down, visualising and use of any data.

I don't like the term 'forever project' because it implies this will never be
finished.

~~~
3JPLW
The idea is that the process is more important than the result. It's more
important that you enjoy working on it than actually finishing it.

You sound more interested in processing the data than making the tool.

~~~
twelvechairs
You are very right. Processing the data is what drives me. Its just hard to
the point of impossible in my trained field(s)
[architecture/GIS/planning/etc.] with current tools so I need to invent
something to do it for me (which should help others in different fields too).
Its on its way...

As for your first comment, I agree that the process is important, but
finishing something can be important too, and the two [good process and good
product] aren't necessarily mutually exclusive.

------
bpierre
My Forever Project is indeed a “game of some sort”, to quote the article.

It’s a real time game (HTML5) where every player is a programmable entity. You
define actions to trigger, and you can add an AI to the bot so it can act when
you are not connected (persistent world).

Even the user interface is programmable, and I’d like to add an HTTP API to
call actions on your entity!

<https://github.com/lisezmoi/modul.io>

------
khitchdee
Ideas age like wine:

[http://khitchdee.forumatic.com/viewtopic.php?f=2&t=33](http://khitchdee.forumatic.com/viewtopic.php?f=2&t=33)

------
morac
A while back I decided I would get a bit clever about my Forever Project. I
evolved it into a setting instead of a single project, and that setting can
contain as many sub-projects as I like. Even completely unrelated projects can
be worked into it via my internal head-canon. It's a well I can keep going
back to, and serves as an excellent starting place for smaller projects or
brainstorming.

------
mark_ellul
Its like you were reading my mind. I definitely agree that getting discouraged
by the lack of progress on my Forever Project is misspent energy.

------
melvinram
_Do or do not. There is no try._ ~ Yoda

I don't understand this idea of a Forever Project. A project/task is either
important enough to do or it's a distraction in your life. Now if you're
working towards that project because you don't have the resources, knowledge,
people, at this point in time, you're making progress and that's a different
story.

~~~
Maro
Take me as an example. My Forever Project is Physics. I have a degree in both
CS and Physics. I made the decision years ago to work in the industry as a
programmer, because it's more fun and pays better than being an academic,
especially where I live. I'm not officially involved with my old University,
but I still take part in their mailing lists, think about Physics in my free
time, I even submit simple papers to journals [+]. I don't have delusions
about being a good physicists or ever doing anything of any importance, but
Physics still fascinates me, I like to ponder its problems and sometimes
marvel at its beauty.

[+] <http://arxiv.org/abs/1208.4990>

Edit: Btw. you are right in saying that these things are a "distraction in
life", but I think it's a good distraction, like a hobby.

~~~
melvinram
I'm not sure I see this as a forever project, as a forever project would have
a way to know when you're done, IMO.

Physics for you is an interest and a hobby. Those are great to keep you
informed.

------
calinet6
Regarding the mention of GTD: I don't think it's incompatible at all. I think
DA would say that it belongs on your Someday Maybe list, and you're welcome to
bring it back up for review anytime you like. Just keep it in the system so it
doesn't take over your life right now. GTD is exactly for this.

------
tuzemec
I pretty much relate to that. I've started my "Forever project" two weeks ago.
And yep - it's a game :-)

------
bjhoops1
Thank you for making me feel better about not having completed any of a number
of Forever Projects.

------
auggierose
It is great to have a forever project. But we have only a limited time on this
planet, so definitely not forever, and at some point you should look at
yourself in the mirror and ask yourself, "Am I going to do this, or what?".

------
fegu
Some forever projects probably fall in the "brain crack" category with a bit
of "i could be famous if I wanted to" thrown in. Beware.

(brain crack is a term I think was coined by ze frank - at least that is where
I saw it first)

------
gws
my forever project, of course, is to build the metaverse. I loved this article
because i can reassure myself i am not crazy after all ... or at least that I
am in good company :)

------
jpasden
A nod to the Forever War? :)

(Great book! <http://en.wikipedia.org/wiki/The_Forever_War> )

------
eli_gottlieb
My Forever Project is Deca. Well, that and the epic scifi/fantasy (first one,
then kind of the other) story I want to write.

------
geuis
My forever project: <http://popped.at>.

Real-time streaming photos shared on Twitter.

------
dwoldrich
My forever project's been going since 2008 (yikes!) I've been working on a
computing environment for kids, and I'm super proud with how far it has come.
<https://clubcompy.com>

I think modern machines and languages are far too advanced for the little
little kids. So, I went the old school line-numbered, BASIC language clone
route. I felt that that was the simplest (albeit crudest) approach to getting
code into the computer that I've ever experienced.

Obviously, I want kids to learn to hack, so does everybody. But more than
that, my angle is that I want the kids to become expert quickly and bump up
against the constrained ceiling my language imposes, maybe after a year or two
of tinkering. Then, I want to always dangle something more low level in the
system like assembler/byte codes that they can graduate to and use to code
more efficient/complex works with.

For the hardcore kid hackers, I figure by the time they master my assembler
and get some chops, they'll be in high school and be eager to move on to more
professional computer languages and Linux.

My computing history goes something like this: I got my start with Commodore
8-bit computers, hooked right away on type-in BASIC game listings in Compute's
Gazette. (I'm still in possession of boxes of issues.) I was multiplexing
sprites with 6510 assembly before I turned 10. I got my first C compiler, the
lovely Microsoft QuickC 2.0, in 8th grade. Hacked on my dad's Tandy PC clone
like a fiend all through high school. I skipped a year of computer science in
college due to my superb AP Pascal test scores, allowing me to graduate in 4
years instead of 5! Did the artistic thing and joined NovaLogic straight out
of college, hacking mostly Intel 32-bit Assembly ... to code their game
installers, no less?! (Macho bunch, those dudes.) Moved on to a systems
integrator in SF and have been developing intranet apps with them for over a
decade, making a great living.

Family, house, cars, career -- I trace it back to BASIC and a mom with the
means and foresight to invest some mad money in her little kid's hobby.

I don't think my story is all that unique for my generation, we 30-somethings
have a quirky computing history. I do worry about the next generations,
however. Maybe it's just the protective dad in me, but I see less and less
hardcore geeks coming up the ranks; what I am seeing are people who lack
context, cannot focus, and have little love for the craft. It's scary.

I feel ClubCompy is a calling: that in order to keep this whole software ball
we have rolling, we need to make more hardcore coders. And don't start
teaching them in high school, start in grade school.

I would be so honored to give kids a start to their life with computers. We
could raise a generation of coders who are far better than the current crop,
and give them their own quirky history to claim as well. That's my dream, at
least.

