Freedom By 7Bart
I’ve received Hackers and Painters two days ago. It’s a collection of some essays by Paul Graham. One chapter named “Good Bad Attitude” deals with attitude of hackers (both destructive and constructive).
In general the term “hacker” it mutilated by media, now referring to a 15 year of boy who’s destroying websites. In the open software movement or generally spoken in software development a hacker is a great programmer.
This essay is full of great observations. I’ll begin with the disobedience.
“Those in authority tend to be annoyed by hackers’ general attitude of disobedience. But that disobedience is a byproduct of the qualities that make them good programmers. They may laugh at the CEO when he talks in generic corporate newspeech, but they also laugh at someone who tells them a certain problem can’t be solved. Suppress one, and you suppress the other.” — Paul Graham
The main idea behind this quote is that a hacker will question some main ideas or concepts. “He will never grow up. He’s a rebelling teenager with 38.” Sure, like Descartes, Max Planck or Copernicus. Each of them questioned an existing idea or concept. This is the path to innovation. Innovation alters the market, humans and science.
It’s an opportunity for startups. They don’t have so much bureaucracy and tightened hierarchy. There are enough examples: Google, Apple, Microsoft, IKEA or Starbucks.
They’ve questioned current concepts and innovated them with a new search engine algorithm, an new way for selling furniture or an new feeling buying coffee.
joy !enjoy! by Naomi Ibuki
I talked with a lot of people about what to do after grammar school. We talked about the pros and contras of going to a university or doing an apprenticeship. It depends on your strengths and interests.
I always had a simple method to determine your further profession:
Do what you like, enjoy and makes you happy.
Sometimes it’s called the one billion dollars question: “What job would you do if you had one billion dollars?”.
“1. Unless you truly enjoy programming you should seek another profession. [...]
2. [...] I’m not saying you should spend every waking moment in front of a computer like I do– it’s unhealthy– but the only way to keep our jobs is to actively keep improving. [...]” — codinghorror.com
These aspects perfectly fit on software developing but they also fit on medical science, physics or cooking.
“In the highest civilization, the book is still the highest delight. He who has once known its satisfactions is provided with a resource against calamity.” — Ralph Waldo Emerson (Letters and Social Aims: Quotation and Originality, 1876)
Why buy a book?
It’s a book, stupid!
You know this strange little sometimes big thing made of paper. Sometimes with hardcover, sometimes with paperback. But what’s special about books?
You don’t need energy
Yep, you have the new iPhone or G1 and you always carrying around your notebook. Everywhere electricity is available. But would you always depend on the next tapping?
You can read it everywhere, anytime
Imagine a sunny day with small clouds, you’re lying on the grass and some fan is spinning to cool your notebook. Stop here. No, this isn’t what relaxing day look like.
If your reading a tutorial on the net you may connected to irc or icq and your emails popping up every 10 minutes. If you read a book, you read a book. No more, no twittering, no emailing.
The information in books a highly compressed. You’ll often find more information on the net but most of them is redundant. You’ll need much time for filtering these information.
Why read a book?
You’ve paid for it
A German proverb says “something that costs nothing is worth nothing”. I think the price you paid is a motivation to read the book.
I’ve twittered about Orc. Orc is “a novel language for distributed and concurrent programming”. There are three combinators. Which allows function calls: parallel, sequential and pruning.
The presentation about Orc offered by them is a great introduction. It includes the motivation, these combinators and some examples.
def fib(0) = 0
def fib(1) = 1
def fib(n) = fib(n-1) + fib(n-2)
def fibs(0) = fib(1) | 0
def fibs(n) = fib(n) | fibs(n-1)
This program calculates the fibonacci numbers, as you can see. The special thing about is that it will return every number up to n.
Now something cool. You want to calculate the factorial of this fibonacci numbers? No problem.
Firstly, you’ll need a function to calculate the factorial of a number n.
def fac(0) = 1
def fac(1) = 1
def fac(n) = fac(n-1) * n
Secondly, you use the combinator for sequential computing (>>).
fibs(10) > x > fac(x)
There’s a great short tutorial on Orc’s website. Also, there’s a online interpreter for testing short functions. Some examples are juicy like the load balancer.