8 ms·
The joys of having a Forever Project
- GuiA 14y agoFor 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-dwarf-fortress.html?pagewanted=all&_r=0 http://www.nytimes.com/2011/07/24/magazine/the-brilliance-of... Elon Musk, Mars colony: http://www.wired.com/wiredscience/2012/11/elon-musk-mars-colony/ http://www.wired.com/wiredscience/2012/11/elon-musk-mars-col... Donald Knuth, The Art of Computer Programming: http://www-cs-faculty.stanford.edu/~uno/taocp.html http://www-cs-faculty.stanford.edu/~uno/taocp.html Hiroshi Ishii, Tangible Bits: http://web.media.mit.edu/~ishii/ http://web.media.mit.edu/~ishii/ (this is off the top of my head- I wish the list were longer, but it is late :) )
- smeddinck 14y agoThis is exactly what I thought: Pretty much every great inventor or researcher has that one big problem, or one big question that drives them ... but I think it is a good point to say that one should not be too disappointed about not necessarily making rapid progress on "the forever project" all the time. Thanks for making me feel a bit better about seemingly (and for the duration of typing this actually) procrastinating from tackling the underlying challenges behind my PhD topic ;) ...
- chalst 14y agoPhDs should not be treated as forever projects! That way lies despair and failure...
- saraid216 14y agoI dunno. I keep thinking about going back to school to get a graduate degree, but it never happens. :P
- betterunix 14y agoThis is unfortunate; it would be nice if dissertations were the beginning of a "forever" project, or perhaps the continuation of one. Sadly, most of the dissertations I have seen have been a bunch of quick projects stapled together with one overarching theme, with a minority being answers to big questions (like Craig Gentry's thesis on FHE). I can think of only one, in fact, that was the beginning of someone's "forever" project, and that is Darse Billing's dissertation on computer poker players (he seems to be spending year after year working on poker AI). My experience in grad school has been this: we are discouraged from having "forever" projects, and encouraged to have "lots of little projects that you finish and forget about" dissertations.
- GuiA 14y agoI very much see dissertations as the beginning of forever projects; but maybe that's because my advisor's dissertation was†, and his own advisor (Ishii, cf my first post) saw it that way as well. Which is what led me to quit my PhD (only leaving grad school with a measly master's :) )- I felt that I was too young and inexperienced to embark on such a journey. I fully intend on going back to grad school in a couple years' time, and treat my PhD as such then. †: http://dspace.mit.edu/handle/1721.1/29264 http://dspace.mit.edu/handle/1721.1/29264
- pagejim 14y agoYes, and for some people like me, reading and finishing the complete TAOCP series is a 'forever' project.
- deleted 14y ago[deleted]
- betterunix 14y agoOne 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).
- bvdbijl 14y agoMaybe Linux by Linus?
- saraid216 14y agoHm. 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.
- njharman 14y agoI'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.
- lifeisstillgood 14y agoForever 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 14y agoI 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 14y agoWe're veering dangerously close to "personal brand" here. http://www.theonion.com/articles/i-am-a-brand-pathetic-man-says,30545/ http://www.theonion.com/articles/i-am-a-brand-pathetic-man-s...
- melvinram 14y agoDo 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 14y agoTake 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 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 14y agoI'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.
- vidarh 14y agoWhy does everything you do have to be important? Do you not have hobbies? Don't you enjoy relaxing with something that is totally pointless? I feel sorry for you if you don't have space in your life to enjoy some unimportant things just for the sake of it.
- melvinram 14y agoRelaxing isn't a project in my view. It's life.
- perlgeek 14y agoCan 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 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.
- worldsayshi 14y agoModeling dynamic systems is kind of where I'm moving towards with my project at the moment. It's a visual programming language where you create "non-casual" models instead of functions. My current lead is to use a modelica-like library, Hydra, as the back-end. A somewhat outdated and presentation of the idea (it's a bit buzz-wordy): https://patch-tag.com/r/worldsayshi/nodespace-staging/wiki/ https://patch-tag.com/r/worldsayshi/nodespace-staging/wiki/ It is very much a project of taking on more than I currently grasp. But I have already learned a lot by working on and thinking about it. :)
- brotchie 14y agoNice! I've always been fascinated by tools and techniques that reduce the burden of solving complicated PDEs. After deriving, by hand, the finite difference matrix for a two-dimensional 2nd order PDE with varied boundary conditions I thought "there has to be a better way!" In a similar manner to you I wrote an internal DSL in Python that lets you specify your system, for example that pesky 2D 2nd order PDE pde = PDE('dx_dt', V) pde.eqn = mu_e * E * d(V, E) - \ (1-tau)*sigma_E*E*(sigma_gamma*A*rho_gamma_E + sigma_D*D*rho_E_D) * d(V, A*E) + \ (1 - tau) * (E - gamma*A - r_f*D) * d(V, A) + \ 0.5 * (1-tau)**2 * ((sigma_gamma * A)**2 + \ (sigma_D*D)**2 - \ 2*sigma_gamma*A*sigma_D*D*rho_gamma_D) * d(V, A**2) + \ 0.5 * sigma_E**2 * E**2 * d(V, E**2) - \ (r_f + lambda_gamma + lambda_E) * V and appropriate boundary conditions in Python. My pdegen tool then works on the resultant AST to generate the primary finite difference matrix. Given some initial conditions this matrix can then be used with any linear algebra library to time-step the system. You've given me motivation to clean up my code and release it :)
- jpasden 14y agoA nod to the Forever War? :) (Great book! http://en.wikipedia.org/wiki/The_Forever_War http://en.wikipedia.org/wiki/The_Forever_War )
- npguy 14y agoIf 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-go-away/ http://statspotting.com/2013/01/that-one-idea-that-does-not-...
- tluyben2 14y agoYes, 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 14y agoNot everything worth doing makes money though...
- tluyben2 14y agoNo, 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).
- karolist 14y agoSounds to me like something Ze Frank calls brain crack. http://www.youtube.com/watch?v=0sHCQWjTrJ8 http://www.youtube.com/watch?v=0sHCQWjTrJ8
- r0s 14y agoI love this, but it really only applies to small ideas. He clearly articulates the emotional weight of these forever projects though.
- cookingrobot 14y agoMy 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/ http://dave-stuff.s3-website-us-east-1.amazonaws.com/
- wingerlang 14y agoInteresting, do you have some kind of blog/log/other where I can read more? (or are you planning on creating one)
- cookingrobot 14y agoThanks! The blog is on the todo list.. I'm preparing some presentations for next month so that might be the kickoff. For now I've just put up a FB page for a first device: https://www.facebook.com/vaporware.robot https://www.facebook.com/vaporware.robot
- biesnecker 14y agoThat's awesome! I assume 27.3 (C?) is the temperature of your house right now, or else you run a mighty cold oven. :)
- cookingrobot 14y agoExactly - it's a little late for cooking right now. :) The stove is gas with pilot lights, so it's always a little warm.
- stretchwithme 14y agoThat 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.
- 14y ago
- chookrl 14y ago"Live as if you were to die tomorrow. Learn as if you were to live forever." - So I guess my forever project is learning
- DropRob 14y agoThat's a very nice quote. :)
- 6ren 14y agofunfact: 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 14y agoIn 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.
- gws 14y agomy 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 :)
- atas 14y agoHere's mine: http://www.pubsoccermanager.com/ 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.
- digitalengineer 14y agoI 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 14y agoExtra 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 14y agoIndeed. 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.
- tuzemec 14y agoI pretty much relate to that. I've started my "Forever project" two weeks ago. And yep - it's a game :-)
- rooshdi 14y agoInteresting 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 14y agoI 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.
- boothead 14y agoLearning Haskell... It wasn't supposed to be a forever project, but c'est la guerre :-)
- kitsune_ 14y agoI 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 14y agoInteresting 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.
- stretchwithme 14y agoMine is automating massage for physical therapy. Putting an end to muscular stiffness and the pain and loss of function it causes.
- raiph 14y agoThat's something I've been interested in (though not a project) for a decade or so. Links?
- stretchwithme 14y agoI'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.
- khitchdee 14y agoIdeas age like wine: http://khitchdee.forumatic.com/viewtopic.php?f=2&t=33 http://khitchdee.forumatic.com/viewtopic.php?f=2&t=33
- bryanlarsen 14y agoMy 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 14y agoMine 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.
- pshc 14y agoBeen 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 14y agoRelease 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 14y agoWell, huge work in progress: https://github.com/pshc/archipelago 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.
- worldsayshi 14y agoWhat's your angle?
- pshc 14y agoNormalizing source code, storing it as annotated ASTs. Designing a structure editor that is actually usable for real code. Applying precise version control to those ASTs' nodes. Some features: - Optional GC with per-type granularity - Trying to wedge uniqueness[1] into the type system too - Can compile statically, extremely convenient C FFI - Codifying the environment/context that a function wants/needs. E.g. a function "void render3DScene(void)" might spec its env requirements as {OpenGLContext, NonBlocking, SceneGraphState}. Similar to state monads, but intuitive, composable, and not anal. [1] http://en.wikipedia.org/wiki/Uniqueness_type http://en.wikipedia.org/wiki/Uniqueness_type
- motter 14y agoVersioning ASTs -- very interesting. Are you documenting the development anywhere? I'd love to hear more. I've been quite fascinated by ASTs (and verification thereof) ever since poking around Python's approach to it.
- ryan-allen 14y agoI 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.
- vincentleeuwen 14y agoHaha 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!
- stusmith1977 14y agoI'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 14y ago"... 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 http://www.catb.org/jargon/html/Y/yak-shaving.html
- aleprok 14y agoSince 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
- JensRantil 14y agoI 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 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.
- mark_ellul 14y agoIts like you were reading my mind. I definitely agree that getting discouraged by the lack of progress on my Forever Project is misspent energy.
- twelvechairs 14y agoI'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 14y agoThe 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 14y agoYou 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.
- dageshi 14y agoAhhh 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 :)
- ph0rque 14y agoWhen I started thinking about my forever project, http://automicrofarm.com 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 14y agoI don't know, it would be a pretty significant achievement to attain .5c!
- Udo 14y agoMaybe 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.
- jdrake3 14y agoWhy not fork the OS one? And sometimes 3rd time's a charm...
- Udo 14y agojdrake, you're hellbanned, so I can't answer you directly. > Why not fork the OS one? And sometimes 3rd time's a charm... It's not about the technology. I think mine works better and they made some choices that I wouldn't want to inherit. I think their technology and protocol choices are part of what holds them back. I believe I can do it better, and for a time there I did. Anyway, that's not the point. The point is finding out if I'm crazy to attempt this again or not. Sometimes you really can't tell whether you're Linux or Losethos.
- calinet6 14y agoRegarding 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.
- nzonbi 14y agoThis 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/ 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 14y agoSo 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 14y agoI 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.
- auggierose 14y agoIt 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?".
- bjhoops1 14y agoThank you for making me feel better about not having completed any of a number of Forever Projects.
- bpierre 14y agoMy 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 https://github.com/lisezmoi/modul.io
- sparist 14y agoGreat 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 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 14y agoYour link is broken. It has an extra space at the end.
- sparist 14y ago
- egypturnash 14y agoI'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.
- geuis 14y agoMy forever project: http://popped.at http://popped.at. Real-time streaming photos shared on Twitter.
- eli_gottlieb 14y agoMy Forever Project is Deca. Well, that and the epic scifi/fantasy (first one, then kind of the other) story I want to write.
- tjic 14y agoAround 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 14y agoI 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 14y agoAwesome! 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. :)
- morac 14y agoA 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.
- dwoldrich 14y agoMy 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 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.
- fegu 14y agoSome 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)