There's already 1001 (places to visit|books to read|movies to see|{insert other activities}) before you die. Why not 1001 to hack/make/develop/design/start/attempt before you die that's more HN friendly:
Some things I'm glad to have done:<p>1. Write a Hello World application from scratch. No C library, compiler, linker, nothing. You get a hex editor.<p>2. Write a non-bootstrapped compiler or interpreter using assembler.<p>3. Write a program that learns to play a game.<p>4. Develop a network protocol.<p>5. Write a web server. You can use the language of your choice, but nothing is allowed except a socket library.<p>6. Write a platform game that performs at least as well as the original Super Mario Brothers.<p>7. Design a circuit that has some sort of non-trivial purpose and build it.<p>8. Write Tetris in Javascript.
- Write a video game emulator (any <i>old</i> console or computer platform)<p>- Create a programming language<p>- Restore an old broken down pinball machine<p>- Build a mame arcade cabinet<p>- Write some Interactive Fiction<p>- Learn to make awesome programmatic artwork with something like Processing or Nodebox<p>- Create a roguelike
In the spirit of the topic...<p><pre><code> 0001: Learn a functional language well enough to write something of some complexity
0010: Create a product with 100+ users
0011: Sell 100+ products (doesn't have to be the same as 0010)
0100: Get married!
0101: Learn either vim or emacs
0110: Learn Mandarin
0111: Become an expert at something tech *and* something non-tech
1000: Contribute to an OSS project
1001: edit: learned binary. thanks for pointing out my stupidity lol</code></pre>
Some of this is hacking in a technical sense, some of this is hacking in terms of modifying your life to get it to be what you want it to be, or to grow yourself.<p>19 - Harness Zero Point Energy<p>20 - Publish a paper in a journal<p>21 - Present at a conference<p>22 - Hack food, make something new<p>23 - Modify your body (with something cool like magnets)<p>24 - Do something legally/morally questionable and get away with it, just enough to make you rethink boundaries but not enough to hurt someone.<p>25 - Modify your brain chemistry in an expansive way<p>26 - Build a great group of friends<p>27 - Put your projects down and spend some time with your family<p>28 - Learn assembly language<p>29 - Code an old school demo<p>30 - Write a cool program on an 8-bit computer<p>31 - Travel to another continent with a completely different culture and immerse yourself in it.<p>32 - Learn how to crack (i.e. break into) applications<p>33 - Learn how to crack (i.e. break copyright and write keygens) software
1 - register YourName.com<p>2 - start a blog<p>3 - learn *SQL<p>4 - develop a javascript site, (gmail.com)<p>5 - write your own planning/todo program (because others just don't work)<p>6 - read, sign up, make at least one post on HN<p>7 - start an open source software project
0000. master the command line<p>0001. master a keyboard-only text editor (vim/emacs)<p>0010. master your mind<p>0011. determine how to help the world the most with the least effort<p>0100. learn from your mistakes<p>0101. learn as many programming methodologies as you can<p>0110. create an awesome sheep for electricsheep<p>0111. reverse engineer a program from decompiled machine code<p>1000. write a book worth reading in 100 years
14 - Get a patch accepted to an open source project.<p>15 - Version your dotfiles and put them up online for others to learn from.<p>16 - Write and open source a plugin for your favorite text editor.
Notable things I'm proud to have achieved/hacked/made, in no particular order of importance:<p>- Built a HAM radio-vacuum tubes were involved.<p>- Developed a useful library of JavaScript tools<p>- Developed my own MVC web framework<p>- Collaborated on the design of, developed and launched custom child-still tweaking that one for performance<p>- Started a successful business<p>- Be a part of a popular Open Source project<p>- Wired a house<p>- Participated in the saving of a few lives
Good challenge.<p>Here are some of the things that I have done so far.<p>1. Write an editor based for card-image files in XPL (for the Sigma 5 RBM system)
2. Write a document processor along the lines of nroff for fixed-width character printers (think Courier). There were at least two of these I believe
3. Write a simulator to estimate the probability of a busy signal for a given call volume and a given number of phone lines. Oddly, when we later compared these results to similar simulations provided by the phone company, the phone company's numbers showed we needed more lines.
4. Write a code generator for an industrial compiler.
5. Write the (rough) equivalent of an IRC channel for AX-25 packet radio DX-spotting network.
6. Write the software necessary for the first real-time QSO-logging system used in a DXpedition. (Used in the YJ8V/YJ8PD trip.)
7. Contribute a very tiny piece of software that is part of a control-system analysis program used to decide where to locate Argonne National Labs. (And I mean really tiny.) First program I wrote for pay.<p>These are just a few of the more fun ones.<p>However, there is one challenge that has captured my imagination over the years. Imagine a final exam of programming skill that has the student in an electronically-locked room with a computer that controls the lock. There are but a few necessities in the room, no internet. The student needs to write a program that will unlock the door.<p>I haven't done this last one exactly, but sometimes it seems like a metaphor for some near-deathmarch projects I have gotten myself into.<p>Current homework includes writing an intercepting proxy in a handful of languages.
easier to keep count: <a href="https://spreadsheets.google.com/ccc?key=0AsoY_yr0BJCVdFhNVi1GUVhQNXM0WVpuTDFkOHNjMXc&hl=en&authkey=CIn98vIK" rel="nofollow">https://spreadsheets.google.com/ccc?key=0AsoY_yr0BJCVdFhNVi1...</a><p>go ahead and add stuff, let me know if permissions are set incorrectly.
(disclaimer: I'm a bit of an ambitious guy and I probably won't achieve even a "sizeable" portion of this, but I will try)<p>Make my own versions of these pieces of infrastructure in one or more variants of Lisp, using various novel approaches or combining some "old" approaches that are nevertheless not used as much as they should be today, and comprehensively document it all:<p>My own web framework (in progress), window manager, UI toolkit and layout system, 3D engine, video editor, image editor, video and sound codec, emacs-style editor, operating system, kernel, Common Lisp implementation, virtual machine, BIOS, OS bootstrapper.<p>Also, maybe an NES or SNES emulator, for fun and maybe trying to make a full blown modern development environment to make it easy to make whole new games for these consoles instead of just making more or less elaborate hacks to already existing games.<p>Learn to play the piano, guitar and violin. Learn to compose my own music.<p>Not that I expect or count on it, but it would be convenient if a treatment to stop aging appeared while it's not too late for me, cuz I'm pretty sure I'll be out of time before I'm doing what I want to do properly...
1 - Develop a typesetting language based on markdown + css which can be so good as LaTeX.<p>2 - Learn Python, Haskell, Lisp, Lua, Ruby and build you own f*cking good language.<p>3 - Discover what is a monad.<p>4 - Play with Arduino.<p>5 - Write a basic kernel from scratch.<p>6 - Forget about Vim and Emacs. Learn how to capture brainwaves, plug an usb cable on it and do an text editor based on thougths.
- Write a (simple) web server.<p>- Implement part of a networking stack.<p>- Interface with some piece of hardware in a way it wasn't designed.<p>- Create a browser extension.<p>- Add an easter egg that nobody ever finds.<p>- Code a strategy to a game and compete against other implementations.<p>- Discover a subtle bug in a very well used bit of code.
- Repair something that isn't meant to be repaired
- Make a disposable consumer product into something more useful and enduring
- Use something old to create something meaningful for someone you love
1 - Develop a custom firmware for Playstation 3.
2 - Create a native and fully fuctional distro for Playstation 3.
3 - Achieve 1 and 2 and send a certified post mail to Sony with you happy face on it.
4 - Try to return to the Open source community as much goods as it has given to you.
build a motorcycle or other vehicle<p>invent a device like this guy <a href="http://www.npr.org/templates/story/story.php?storyId=130890701&ft=1&f=1053" rel="nofollow">http://www.npr.org/templates/story/story.php?storyId=1308907...</a>
- Finish "The Art of Computer Programming."<p>- Use the fixed point combinator in Javascript for something.<p>- Make your own bike lights.<p>- Figure out how the monad laws really work.<p>- Write something that makes more than $100 on the App Store.<p>- Figure out how to get the plants in the garden to not die.
Learn 3D graphics and build a small virtual world.<p>Virtual worlds have always fascinated me, but I've always been a command-line/server guy and never got around to learning the theory/math that goes into doing 3D graphics.
A few years ago I came across an old teddy-ruxpin... I thought it would be awesome to build a setup to record custom control tapes... never did it, but I still want to.
Build your own computer using FPGAs (Field Programmable Gate Arrays).<p>Bonus points: Make it capable of reconfiguring itself based on the program
it's executing.
1. learn asterisk
2. Install Haiku
3. Make a Firewall with a xBSD
4. Install linux in Mac/apple
5. Install cool stuff in device with adroid
6. With Backtrack hack your Police Department
7. Help people in a forum
8. F&%k in second life
9. Build a LFS
10. Help someone to be better hacker
My top ten list (I just thought it up now, so this is not my final list):<p>1. Making my own uC architecture and write it in HDL.<p>2. Make a lisp machine<p>3. Hacking a game for a old game console (not an emulator, you have to actually get it working on the physical machine).<p>4. Experiment with different types of OS on uControllers.<p>5. Hacking to gather a home automation system.<p>6. Implement a whole web server in the uController from scratch (means you have to make your own protocol stack and such things).<p>7. Make a widely used C library.<p>8. Get my long standing dream of localized electronics kit store to launch.<p>9. Get a patent on something new<p>10. Make a super computer cluster from home PC's<p>I know lot of these are very hard but hey I am just 19 and have a whole life ahead.