Domain: canonical.org
Stories and comments across the archive that link to canonical.org.
Comments · 55
-
Here's his problemHere's his problem:
Every programmer starts out writing some perfect little snowflake like this. Then they're told on Friday they need to have six hundred snowflakes written by Tuesday, so they cheat a bit here and there and maybe copy a few snowflakes and try to stick them together or they have to ask a coworker to work on one who melts it and then all the programmers' snowflakes get dumped together in some inscrutable shape and somebody leans a Picasso on it because nobody wants to see the cat urine soaking into all your broken snowflakes melting in the light of day.
If you start cutting corners, you're going to end up with a mess. If you're a good programmer, you know how to write solid code even under time constraints. If you're having trouble with it, then you should probably look into the YAGNI principle, or get better at estimating how long your tasks will take. Because those are the two things that seem to afflict programmers who are chronically behind schedule.
Don't write bad code though, because you'll need to maintain it. -
Re:Javascript haters need to let it go.
You are wise and correct. A master programmer understands his place within the Tao.
http://www.canonical.org/~krag...
"Though a program be but three lines long, someday it will have to be maintained.'' -
Re:Sorry, but that's just brilliant
The Tao of Programming has been around for many years.
-
Re:Sixty Dollars for one line of code ..
And there's a bug in your code. Now we have to hire a consultant to fix it!
``Though a program be but three lines long, someday it will have to be maintained.'' -
Re:Oh yes, software
"Thus spake the master programmer:
``Without the wind, the grass does not move. Without software, hardware is useless.''"
http://www.canonical.org/~kragen/tao-of-programming.html#book8 -
Re:Wisdom
From their perspective, this makes sense because they have short-term incentives. Talk is cheap, and leading people on is a typical management tactic.
I've often wondered what sort of short-term fire / incentive I need to create in order to get what I want.
Working for a Fortune 50 IT company has benefits (nobody will ask you to take out the garbage or change the printer toner, and you will never worry about bouncing paychecks), however the bigger the company, the more likely significant gaps will appear between management layers.
That's true -- working here has benefits. I can log in and work from my company laptop anywhere in the world. In fact, I have internet access anywhere in the world, thanks to our VPN, and an extensive list of numbers, should I need to fall back to an actual modem (which I did in Europe, once). On the other hand, we can't easily get new wide screen monitors (this is a "Capital" expense, which is controlled by my boss's boss's boss's finance guy), projector bulbs (this is a "regular" expense, which must be approved by my boss's boss's boss's boss's finance guy, assigned to my area), or even whiteboard markers (the supply guys are just being cheap, I think).
It's incredibly short-sighted.
I think a quote from The Tao of Programming is de rigueur:
"You perceive this immense structure and are disturbed that it has no rational purpose. Can you not take amusement from its endless gyrations? Do you not enjoy the untroubled ease of programming beneath its sheltering branches? Why are you bothered by its uselessness?"http://www.canonical.org/~kragen/tao-of-programming.html#book7
Enjoy your shelter
:-) -
Re:Faulty Reasoning
I have been to a professional conference where all the attendees---except one---are wearing slacks, collared shirts or business uniforms. The one sore thumb was in a t-shirt, jeans and sneakers. Everyone wondered what kind of company he works for that would allow their representative to come to a conference dressed like that.
Oh dear. Is modern education that lacking?
Please refer to Book 2, Chapter 3.
Or maybe I have been "wooooooshed?"
-
Re:Real world.
"The novice programmer stares in wonder at the bird, for he understands it not. The average programmer dreads the coming of the bird, for he fears its message. The master programmer continues to work at his terminal, for he does not know that the bird has come and gone." http://www.canonical.org/~kragen/tao-of-programming.html#book7
-
Re:The only thing...All programming knowledge is here:
-
Re:Lesson #8
Ah, yes. There is much wisdom to be found in "The Tao of Programming". For example:
The Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now there are ten thousand languages.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
-
Re:As always, make yourself known
In other words, the work of a true programmer is beyond recompense: for citation see The Tao of Programming
-
Re:Huh?
-
Each language has its purpose
The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages. Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. But do not program in COBOL if you can avoid it.
The Tao of Programming, Book 1, Verse 3.
-
Of course, the Tao of Programming
Thus spake the master programmer: ``When you have learned to snatch the error code from the trap frame, it will be time for you to leave.''
The Tao of Programming, Book 1, Verse 1.
One of the problems with older programmers is that they cling to archaic concepts like their old favorite programming languages - C, C++, Assembler, Fortran. They worship at the shrines of the old pantheon of Wirth, Venn, and Turing. They don't grasp the modern subtleties of
.NET and the modular beauty of DirectX without deliberate effort. They think that security is some absolute virtue having to do with cleansing your inputs, trusting noone and considering pathological conditions.Pity them. They don't understand the beauty of rapidly advancing the user interface until the end user can with little understanding of the underlying technology create vast perfect representations of his vision until the whole thing seizes up just before he saves it just like it's a Visio diagram. That's computer science at its most cruel, its most perfect. If those geezers don't get it it's because they just don't understand how things are done these days. They've lost touch with the course of modern progress. They'll never be able to code a word processor app that consumes all the processor power of a quad core with 8 gigs of RAM. They'll never get why automatically executing code attached to a word processing document is an essential feature. They just don't know and they'll never know because they're old.
Pity them.
-
Every thread like this must reference TOP
The Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now there are ten thousand languages.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it. -
The Tao of Programming
by Geoffrey James: http://www.canonical.org/~kragen/tao-of-programming.html
I wish more programming books were as beautiful, entertaining, insightful and concise as this one.
-
Once more into the breach
The Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now there are ten thousand languages.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
-
Re:COBOL.
I want to point out that the only reason I'm replying to your post is that you were moderated "+5, Insightful." In another circumstance I might be modded "troll" for this. I will escape it this time because the mods might be biased, but they're not dumb.
So it was written upon greenbar in the mode of the day, in The Tao of Programming, wherein much wisdom is stored - First Chapter, Third Verse:
The Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now there are ten thousand languages.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
The difference between a man who cannot read the history and one who will not is moot.
-
FYI
Parent was a quote from The Tao Of Programming(read it for free there). It's great and I recommend it for every programmer and anyone who manages programmers. The sequel to it, "The Zen of Programming" is still in print, IIRC.
-
Re:So
C'mon, we do not want to start the old song again. You know, most first Linux drivers were ported over from BSD.
Development of both BSD & Linux isn't commercialized - so word "lifted" is unfit here. It is more about "exchange of ideas"
;) -
Re:Copyright isn't enough to satisfy their greed
From The Tao of Programming
There once was a man who went to a computer trade show. Each day as he entered, the man told the guard at the door:
``I am a great thief, renowned for my feats of shoplifting. Be forewarned, for this trade show shall not escape unplundered.''
This speech disturbed the guard greatly, because there were millions of dollars of computer equipment inside, so he watched the man carefully. But the man merely wandered from booth to booth, humming quietly to himself.
When the man left, the guard took him aside and searched his clothes, but nothing was to be found.
On the next day of the trade show, the man returned and chided the guard saying: ``I escaped with a vast booty yesterday, but today will be even better.'' So the guard watched him ever more closely, but to no avail.
On the final day of the trade show, the guard could restrain his curiosity no longer. ``Sir Thief,'' he said, ``I am so perplexed, I cannot live in peace. Please enlighten me. What is it that you are stealing?''
The man smiled. ``I am stealing ideas,'' he said. -
The Tao of ProgrammingThe Tao of Programming, 1:2
:
Observe the wisdom of the TaoThe Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now there are ten thousand languages.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
-
Learn novice: be one with the TaoFrom the Tao of Programming: http://www.canonical.org/~kragen/tao-of-programmi
n g.htmlEach language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
-
Long Long Long-Term Storage
About the only way I know of to preserve content for long periods of time is to etch the information in clearly legible plain text on gold tablets. [...] The only problem with this strategy [...] is that sometimes the gold itself as bullion is more valuable than the information it contains.
Nickel or nickel alloys can be used, which are less intrinsically valuable (although any material, especially metal, has some intrinsic value).
Here are two companies that micro-etch information onto nickel or nickel alloys.
You can also try carving stone tablets. -
my point of view is posted
I have posted my answer to kragen-tol; the message is The equivalent of free software for online services.
-
I think I have the answer
I have been thinking about this for a long time, but I really like the way Jamie has focused the question here. I will write an essay in answer to the question --- "What's the equivalent of free software for web services?" --- and post it to kragen-tol as soon as I can.
-
Re:The Ransom model is coolThere's some website now that will help facilitate this -- it holds the money in escrow, and returns it if the minimum is not raised. I can't remember the name of the site though.
This website might be the one you're thinking of. There is a very cool, very relevant idea called the "dominant assurance contract". It's explained informally here and more formally here.
-
Re:Liked it, but don't use it anymore
Everything has its place and there's no thing that can be better at other thing in every respect.
But do not program in COBOL if you can avoid it. -
Tao of Programming
See the Tao of Programming. Specifically, book 6 (Management) and book 7 (Corporate Wisdom).
-
Re:Tell that to the developersSay what you want about sloppy developers developing sloppy applications for a sloppy OS and crappy users, but there is some thruth in it.
From the Tao of Programming, section 1.1:
If the Tao is great, then the operating system is great. If the operating system is great, then the compiler is great. If the compiler is greater, then the applications is great. The user is pleased and there is harmony in the world.
-
ConfusionThe story submitter appears to be confusing the amount of respect *displayed* or *perceived* (by the respectee) with the amount of respect *actually* felt by customers / clients.
I suggest a re-reading of 'The Tao of Programming' and 30 minutes meditation, once a day
:) -
The Tao of Programming
"Hardware met Software on the road to Changtse. Software said: ``You are Yin and I am Yang. If we travel together we will become famous and earn vast sums of money.'' And so the set forth together, thinking to conquer the world.
Presently they met Firmware, who was dressed in tattered rags and hobbled along propped on a thorny stick. Firmware said to them: ``The Tao lies beyond Yin and Yang. It is silent and still as a pool of water. It does not seek fame, therefore nobody knows its presence. It does not seek fortune, for it is complete within itself. It exists beyond space and time.''
Software and Hardware, ashamed, returned to their homes.
"
(Credit: Tao of Programming) -
Re:File handle passingOkay, then, I'll put up. Please see this code. (I tried to post it here but the lameness filter prevented me.)
Notice:
- proc1 and proc2 are siblings, not parent and child
- /tmp/foobar is never opened by proc2 or its parent
- only proc2 writes the message "hello world"
/tmp/foobar gets the message in it anyway.Credit Kragen Sitaker for the original code which I hacked to be a better demo. (I never claimed I could remember offhand how to do this, and I no longer have my copy of Stevens, but I do know it can be done.) It's at this url if you want to see the original.
Tested on Linux and FreeBSD. On Solaris a couple of changes with respect to the CMSG_* macros are needed; I'm too lazy to figure this out.
-
Prototype-based programming can be done in Python
It is already possible to do prototype-based programming in Python. Also in Perl. But the syntax may be a little awkward.
-
Re:100 GPa red line is not enough
Can't they just use Scrith?
-
Re:The Tao of Linux
You need to get a life and learn of Geoffrey James.
-
Re:Programming languages
HyperText Markup Language is indeed a programming language. Just because it's child's play compared to C doesn't make it not a programming language. There are only two fundamental differences between coding HTML and coding C:
No way, Jose. Are you trying to contend with the example cited in the summary? You've expanded the acronym, now read it. HTML is a Markup Language. What's often considered the ultimate criterion of a programming language is Turing equivalency. Here's an example of what I mean (lacking any authority, but what the hey). Would you consider an MS Word or document (the binary/ASCII hybrid file that results, not the text contained within) to be source code written in a programming language? Then why should you think HTML files are 'code' either? (Funny aside -- PostScript's processing instructions would probably make it a good exception to these examples -- it probably _is_ Turing equivalent). -
Grid computing: get a clueToday I finally decided to get a clue about grid computing. So I went over to IBM developerWorks, and followed the link to this "conceptual flyover" article. Having developed enough interest, I decided to check out Foster's original paper called the Anatomy of the Grid. Impressive!
Links:
See also: Throughput Computing -
I published these techniques four years ago
See "deshredding", posted on kragen-tol on 1999-06-01. It describes the primary heuristic mentioned in the article --- edge intersections and textual redundancy, for example --- and some others not presently in use, such as scanning both sides of each scrap. It also anticipated the likely achievable results --- blocks of text rather than full documents.
However, it did not suggest using the shapes of pieces of paper to piece them together, because I was writing about shredded documents, not torn ones. Also, the countermeasures I suggested --- feeding paper to the shredder accurately, using uniform fonts, single-sided printing, whitespace between paragraphs, and adding printed random text --- differ from the countermeasures suggested in the article --- using large fonts and feeding your paper into strip shredders sideways.
Of course, what I published was a direction for research, not a usable system of algorithms. Still, it's nice to know I had good foresight.
-
Re:$uccess is temporaryAnother Tao:
A master was explaining the nature of Tao to one of his novices. ``The Tao is embodied in all software - regardless of how insignificant,'' said the master.
``Is the Tao in a hand-held calculator?'' asked the novice.
``It is,'' came the reply.
``Is the Tao in a video game?'' continued the novice.
``It is even in a video game,'' said the master.
``And is the Tao in the DOS for a personal computer?''
The master coughed and shifted his position slightly. ``The lesson is over for today,'' he said.
-Hope -
Seek the Tao
Tao of Programming, 3.2:
"There once was a master programmer who wrote unstructured programs. A novice programmer, seeking to imitate him, also began to write unstructured programs. When the novice asked the master to evaluate his progress, the master criticized him for writing unstructured programs, saying, `What is appropriate for the master is not appropriate for the novice. You must understand the Tao before transcending structure.'" -
Master the Tao, all else will followAfter a number of years of observation, research, and fine tuning, Ken Schwaber and Mike Beedle have released a book that makes a subtle but vital revelation about the nature of software projects and how to better run them.
They have discovered that the Tao is the heart of all programming.Hark, the master speaks:
A novice asked the Master: ``Here is a programmer that never designs, documents or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?''
The Master replies: ``That programmer has mastered the Tao. He has gone beyond the need for design; he does not become angry when the system crashes, but accepts the universe without concern. He has gone beyond the need for documentation; he no longer cares if anyone else sees his code. He has gone beyond the need for testing; each of his programs are perfect within themselves, serene and elegant, their purpose self-evident. Truly, he has entered the mystery of Tao.''
A novice asked the master: ``I have a program that sometime runs and sometimes aborts. I have followed the rules of programming, yet I am totally baffled. What is the reason for this?''
The master replied: ``You are confused because you do not understand Tao. Only a fool expects rational behavior from his fellow humans. Why do you expect it from a machine that humans have constructed? Computers simulate determinism; only Tao is perfect.
``The rules of programming are transitory; only Tao is eternal. Therefore you must contemplate Tao before you receive enlightenment.''
``But how will I know when I have received enlightenment?'' asked the novice.
``Your program will then run correctly,'' replied the master.Learning what Scrum is and how to practice it is not all that profound. However, sitting back and realizing why Scrum works and how it addresses the fundamental flaws of the last 20 years of software engineering is.
Once you obtain that realization, you will have truly mastered the Tao.
-
Gay Or Not?You're probably familiar with the website HotOrNot, where people submit pictures of themselves, and others vote on how hot (or not!) they are.
Well, here's a variation for slashdot -- GayOrNot!
We'll show you a picture of a slashdot luser, you tell us if he is gay, or not!
Today's participant....
Please Welcome Kragen! (bonus points if you guess by name only!)
-
Tao of PorgrammingThis classic translation takes care about the spirit of programming.
Just few quotes:
Does a good farmer neglect a crop he has planted?
Does a good teacher overlook even the most humble student?
Does a good father allow a single child to starve?
Does a good programmer refuse to maintain his code?There once was a master programmer who wrote unstructured programs. A novice programmer, seeking to imitate him, also began to write unstructured programs. When the novice asked the master to evaluate his progress, the master criticized him for writing unstructured programs, saying, ``What is appropriate for the master is not appropriate for the novice. You must understand the Tao before transcending structure.''
The Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now there are ten thousand languages.
Each language has its purpose, however humble.
Each language expresses the Yin and Yang of software.
Each language has its place within the Tao.
But do not program in COBOL if you can avoid it. -
Re:The Tao of Linux
Wow, this is just like the Tao of Programming, except not as funny and a cheap ripoff.
-
From the Tao
This is not a new argument or problem, and it is not limited to open-source software. Usability is HARD.
For the whole thing read The Tao of Programming
There was once a programmer who was attached to the court of the warlord of Wu. The warlord asked the programmer: ``Which is easier to design: an accounting package or an operating system?''
``An operating system,'' replied the programmer.
The warlord uttered an exclamation of disbelief. ``Surely an accounting package is trivial next to the complexity of an operating system,'' he said.
``Not so,'' said the programmer, ``when designing an accounting package, the programmer operates as a mediator between people having different ideas: how it must operate, how its reports must appear, and how it must conform to the tax laws. By contrast, an operating system is not limited by outside appearances. When designing an operating system, the programmer seeks the simplest harmony between machine and ideas. This is why an operating system is easier to design.''
The warlord of Wu nodded and smiled. ``That is all good and well, but which is easier to debug?''
The programmer made no reply. -
Re:One tiny almost pointless nitpick...
The Tao of Programming - Book 4, Section 4
Prince Wang's programmer was coding software. His fingers danced upon the keyboard. The program compiled without an error message, and the program ran like a gentle wind.
``Excellent!'' the Prince exclaimed, ``Your technique is faultless!''
``Technique?'' said the programmer turning from his terminal, ``What I follow is Tao - beyond all techniques! When I first began to program I would see before me the whole problem in one mass. After three years I no longer saw this mass. Instead, I used subroutines. But now I see nothing. My whole being exists in a formless void. My senses are idle. My spirit, free to work without plan, follows its own instinct. In short, my program writes itself. True, sometimes there are difficult problems. I see them coming, I slow down, I watch silently. Then I change a single line of code and the difficulties vanish like puffs of idle smoke. I then compile the program. I sit still and let the joy of the work fill my being. I close my eyes for a moment and then log off.''
Prince Wang said, ``Would that all of my programmers were as wise!'' -
Re:The Tao of Linux
Edumacated readers will note that the parent post is a (well-done!) variation on the Tao of Programming. Nice job AC.
-
Re:Did you know 1+1=2?
Tao of Programming, s3.4.
Also see The Mythical Man Month , by Frederick Brooks. -
Obvious and non-obvious
Although "theory of programming" is rather weakly defined:
"The Art of Computer Programming" by Knuth
"Programming Pearls" by Bentley
"Godel, Escher, Bach: An Eternal Golden Braid" by Hofstadter
"The Tao of Programming"
Jargon File