Live data from Hacker News

1001 Things To Hack Before You Die

news.ycombinator.com

61–70 of 98 posts

Re: 1001 Things To Hack Before You Die

#62
post #48

Some things I'm glad to have done: 1. Write a Hello World application from scratch. No C library, compiler, linker, nothing. You get a hex editor. 2. Write a non-bootstrapped compiler or interpreter using assembler. 3. Write a program that learns to play a game. 4. Develop a network protocol. 5. Write a web server. You can use the language of your choice, but nothing is allowed except a socket library. 6. Write a pla…

1. Write a Hello World application from scratch. No C library, compiler, linker, nothing. You get a hex editor.

Does this involve anything more than loading "Hello, world" into memory, setting up the registers/stack in a certain way, and invoking the syscall interrupt? (All the cool stuff happens in your terminal emulator. That's where 0x41 gets turned into the pixels that look like "A" on your screen, after all.)

Re: 1001 Things To Hack Before You Die

#63
post #59
post #58

0000. master the command line 0001. master a keyboard-only text editor (vim/emacs) 0010. master your mind 0011. determine how to help the world the most with the least effort 0100. learn from your mistakes 0101. learn as many programming methodologies as you can 0110. create an awesome sheep for electricsheep 0111. reverse engineer a program from decompiled machine code 1000. write a book worth reading in 100 years

Shouldn't 0010 be 0000? I would think mastering your mind would come before mastering any external tool...? Definite up vote for answering a question about what to hack in the spirit of a hacker.

0010 is the true hack. these tasks can be executed in any order--even in parallel.

Re: 1001 Things To Hack Before You Die

#64
post #57
post #48

Some things I'm glad to have done: 1. Write a Hello World application from scratch. No C library, compiler, linker, nothing. You get a hex editor. 2. Write a non-bootstrapped compiler or interpreter using assembler. 3. Write a program that learns to play a game. 4. Develop a network protocol. 5. Write a web server. You can use the language of your choice, but nothing is allowed except a socket library. 6. Write a pla…

You can also take 1. to the extreme and write a mini-OS from scratch. Bootloader and all. http://news.ycombinator.com/item?id=1605119

Orthogonal. They are using gcc there, which is not the same as his #1.

Re: 1001 Things To Hack Before You Die

#65
post #58

0000. master the command line 0001. master a keyboard-only text editor (vim/emacs) 0010. master your mind 0011. determine how to help the world the most with the least effort 0100. learn from your mistakes 0101. learn as many programming methodologies as you can 0110. create an awesome sheep for electricsheep 0111. reverse engineer a program from decompiled machine code 1000. write a book worth reading in 100 years

You skipped #4.

Re: 1001 Things To Hack Before You Die

#67
1 - Develop a typesetting language based on markdown + css which can be so good as LaTeX.

2 - Learn Python, Haskell, Lisp, Lua, Ruby and build you own f*cking good language.

3 - Discover what is a monad.

4 - Play with Arduino.

5 - Write a basic kernel from scratch.

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.

Re: 1001 Things To Hack Before You Die

#68
post #48

Some things I'm glad to have done: 1. Write a Hello World application from scratch. No C library, compiler, linker, nothing. You get a hex editor. 2. Write a non-bootstrapped compiler or interpreter using assembler. 3. Write a program that learns to play a game. 4. Develop a network protocol. 5. Write a web server. You can use the language of your choice, but nothing is allowed except a socket library. 6. Write a pla…

A variant on 4 that I've been meaning to get to for a little while now is to implement the same network protocol in several languages.

Re: 1001 Things To Hack Before You Die

#69
In the spirit of the topic...

  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

Re: 1001 Things To Hack Before You Die

#70
post #48

Some things I'm glad to have done: 1. Write a Hello World application from scratch. No C library, compiler, linker, nothing. You get a hex editor. 2. Write a non-bootstrapped compiler or interpreter using assembler. 3. Write a program that learns to play a game. 4. Develop a network protocol. 5. Write a web server. You can use the language of your choice, but nothing is allowed except a socket library. 6. Write a pla…

1. Write a Hello World application from scratch. No C library, compiler, linker, nothing. You get a hex editor. Does this involve anything more than loading "Hello, world" into memory, setting up the registers/stack in a certain way, and invoking the syscall interrupt? (All the cool stuff happens in your terminal emulator. That's where 0x41 gets turned into the pixels that look like "A" on your screen, after all.)

At least part of the "fun" on a loosely modern operating system is learning the nuts and bolts of the executable format and loading conventions.

I've never spent much time there, but some of the ideas are laid out well in this two part post: http://blog.ksplice.com/2010/04/libc-free-world-2/

Doing it with _just_ a hex editor (ie writing out the ELF headers and sections yourself) may not be exactly what the commenter did, though. Cos that sounds really tedious.

I imagine that even writing "Hello, World" in the simpler way that you describe, on a simpler system (Apple IIe or so), would probably teach me something. I remember trying to write 6502 machine code in hex (no assembler) on my IIe when I was about 10 years old. It never worked then, I wonder if it would work now?

Post reply on HN