Slashdot Mirror


Knuth Releases Another Part of Volume 4

junge_m writes "Donald Knuth has released another of his by now famous pre-fascicles to Volume 4 of his epic: Pre-fascicle 2c is all about 'Generating all Combinations' supplementing his pre-fascicles 2a and 2b. Furthermore he challenges us all to do more of his daunting exercises and report our success. He thinks we are way too lazy in this respect! So come on slashdot crowd: Do your homework and get the credit from the grandmaster himself!"

248 comments

  1. Tshirts by bsDaemon · · Score: 3, Funny

    anyone else think ThinkGeek.net needs some 'Absolut Knuthingness' tshirts?

    1. Re:Tshirts by Anonymous Coward · · Score: 0

      .... 891 lines
      My retirement money is at Mmix assembly code to stop being shafted!

      Of skript kikddies and need to an algorithmic approach.
      Reply to This for Turds example, where you can be a we get
      rid of a Readers are at a huge monster of Hacker Nature.
      Score. Interesting, by Anonymous Coward on Tuesday July
      Umm.

      Knuth or is to Theorem m on most of points X
      same for it for j is now that he talks Agree
      with have been quite. All Computer science is
      a doubt I have at all times to read AoCP.
      Download and word: docs to This for higher lvl
      codi Score. Unfortunately. A set timeless
      utility that will use gcc Score.

    2. Re:Tshirts by Anonymous Coward · · Score: 0

      Knuth Releases Another Part of Volume 4
      Posted by Hemos on 05:59 AM July 9th, 2002
      from the hey-now-get-your-devel dept.
      junge_m writes "Donald Knuth has released another of his by now famous pre-fascicles to Volume 4 of his epic: Pre-fascicle 2c is all about 'Generating all Combinations' supplementing his pre-fascicles 2a and 2b. Furthermore he challenges us all to do more of his daunting exercises and report our success. He thinks we are way too lazy in this respect! So come on slashdot crowd: Do your homework and get the credit from the grandmaster himself!"

      Bingo Foo (179380)
      [ Preferences ]

      Related Links
      junge_m
      Donald Knuth
      epic
      Pre-fascicle 2c
      2a
      2b
      challenges us all to do more of his daunting exercises and report our success
      More on Programming
      Also by Hemos

      Knuth Releases Another Part of Volume 4 | Preferences | Top | 117 comments | Search Discussion
      Threshold: -1: 117 comments 0: 73 comments 1: 59 comments 2: 31 comments 3: 16 comments 4: 7 comments 5: 3 comments Flat Nested No Comments Threaded Oldest First Newest First Highest Scores First Oldest First (Ignore Threads) Newest First (Ignore Threads) Save:
      The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
      Tshirts (Score:5, Funny)
      by bsDaemon (Mr.Spooty@microshaft.org) on 06:04 AM July 9th, 2002 (#3848710)
      (User #87307 Info)
      anyone else think ThinkGeek.net needs some 'Absolut Knuthingness' tshirts?

      [ Reply to This | Parent ]

      Re:Tshirts (Score:-1)
      by govtcheez on 06:21 AM July 9th, 2002 (#3848809)
      (User #524087 Info | http://slashdot.org/)
      No, just you. Fag.

      [ Reply to This | Parent ]

      Re:Tshirts (Score:0)
      by Anonymous Coward on 07:17 AM July 9th, 2002 (#3849135)
      [ Reply to This | Parent ]

    3. Re:Tshirts by King+of+the+World · · Score: 1
      |\| | <|

      Now i'm knuthing

  2. Thats just what I need by Anonymous Coward · · Score: 2, Funny

    Up until now, I've been quite content to have read none of the 3 volumes of TAoCP; with this 4th volume I'm starting to feel poorly read.

  3. A series of books like this for higher lvl coding? by ovapositor · · Score: 5, Interesting

    The main reason that I have been hesitant to purchase and slog through these books has been the fact that they are written with an outdated assembly language for a non existant processor. I realize that the point is to learn these algorithms, however, since I rarely if ever code on that level any longer, is there an alternative? Something using a language like Java, Python, or even, ack! , 'C' would be more to my liking.

    No flames please. This is just an honest question.
    Thanks

  4. I thought it was a good trait... by BomberMonkey · · Score: 4, Funny

    Technically, all programmer types are supposed to be lazy. Personally, I try to keep my code clean and commented because when I come back to it in a month, I know I'll be too lazy to read through it and figure out what I was doing. Also, being lazy aboud doing work is what leads to reduced algorithmic complexity, right?

    Necessity is the mother of invention, but laziness is the father.

    1. Re:I thought it was a good trait... by Zathrus · · Score: 3, Insightful

      Most programmers are lazy. I know I am. I know the other (senior) coder on our current project is. But it's a controlled laziness.

      Being lazy means that instead of doing something "manually" we'll find some way to make the computer do it for us. Sure, doing it by hand may only take 5 minutes and we'll spend 15 minutes just trying to convince the computer to do it, but that's not the point. The point is that - 1) you just learned something new, 2) you avoided doing a repetitive task repeatedly (yes, yes, I know), 3) odds are you'll do the same damn thing, or something similar in the future, and then you'll know how to do it in 3 seconds.

      Which is why programmers gravitate to complex but programmable tools, like vi/vim/emacs/ultraedit, to Unix, to scripting languages, etc.

      It's also why we don't understand the user more often then not. Most users just want to get the job done. Sure, there may be a more efficient way to do it if you spend some time learning the system, but they either don't view the system as their job or have been burned by it too many times to trust it. So they do things the way they know, or the way they think it should work. Which is often not the way the lazy programmer thinks.

      Laziness does have downsides though. Documentation tends to be banal. Comments are almost never as good as you'd like them to be 3 months later. And while algorithmic simplicity is a noble goal, it's often the wrong one - too simple of an algorithm can be wasteful of resources (bubble sort is a whole lot simpler than quicksort) simply because the programmer didn't learn the underlying hardware or didn't think through the implications of a design. Which leads to the issue of too simple of a design meaning massive rework as the system grows.

      Of course the more experienced programmers have learned these things and discovered that spending the time up front means you can be lazier in the long run.

      Knuth is one of these experienced programmers. There are gems of wisdom throughout his writings.

      Wish the bastard didn't want us to work to find them though.

    2. Re:I thought it was a good trait... by BomberMonkey · · Score: 1

      Well said: it's laziness, but it's far sighted laziness. Reading through the man page for sed way back in the day took longer than going through the code I had to do a search and replace, but it's more than made up for it now that I can do "1G!Gsed -e s///"

    3. Re:I thought it was a good trait... by Shimbo · · Score: 1
      Technically, all programmer types are supposed to be lazy.

      As my old maths teacher once said, "All good mathematicians are lazy but, unfortunately for you, not all lazy people are good mathematicians."

    4. Re:I thought it was a good trait... by joeytsai · · Score: 1

      To quote Larry Wall (inventor of Perl), "The three great virtues of a programmer are laziness, impatience, and hubris."

      --
      http://www.talknerdy.org
    5. Re:I thought it was a good trait... by Anonymous Coward · · Score: 0

      Those look like vi commands. Why not just do :s/old/new/g or something like that, instead of running the whole file through sed?

      HTH.

  5. Proving his hypothesis by cloudmaster · · Score: 2

    He's right - I'm way too lazy to spend more than a few minutes on things like that.

    1. Re:Proving his hypothesis by Krazy_in_Normal · · Score: 1

      Mod this parent up. His is the Way.

  6. too lazy by gripdamage · · Score: 4, Funny

    He thinks we are way too lazy in this respect! So come on slashdot crowd: Do your homework and get the credit from the grandmaster himself!

    No no no... He's right [yawns, stretches, checks for new /. articles].

  7. from his web page by El+Pollo+Loco · · Score: 1, Funny

    Why do you pay $2.56 for every error found in your books? 256 pennies is one hexadecimal dollar.
    Damn, and I thought I was a nerd!

  8. For the ignorant... like me! by Nomad7674 · · Score: 4, Informative
    I hope I am not the only one who read that introduction and had the monosylabbic response, "Huh?" For any others like me in serious need of some explication, first the definition of "fascicle" from dictionary.com:

    fascicle Pronunciation Key (fs-kl) n.

    1. A small bundle.
    2. One of the parts of a book published in separate sections. Also called fascicule.
    3. Botany. A bundle or cluster of stems, flowers, or leaves.
    4. See fasciculus.

    I believe the definition used here is #2.

    Second, a quick definition of what this is all about: it appears to be a collection of great scientific and programming works to be used as a primer for new programmers.

    Hopefully, that allays some of the confusion I was having among others out there.

    1. Re:For the ignorant... like me! by DeathB · · Score: 2, Informative
      Second, a quick definition of what this is all about: it appears to be a collection of great scientific and programming works to be used as a primer for new programmers.

      A collection of great programming works? Yes. To be used as a primer for new beginners? Not really.
      TAOCP (The Art Of Computer Programming) is one of the best advanced computer science books ever written. It doesn't teach you how to write object-oriented code, or even "hello world". Instead it sets down algorithms, and techniques to create algorithms to solve problems elegently.

      Giving this to a new programmer would be pretty much a worthless exercise, as the code in the book isn't even written in a real (as in used in the real world) language, but rather one made up in academia to be Turing Complete and demonstrate algorithms. I keep all three volumes on my desk, and find that they can be incredibly useful in assisting with some problems. However, they're never going to tell me why my program has a memory leak, or the difference between reference and value.

      The previous volumes of TAOCP have had numberous errors (Knuth pays $2.56 for every one you find) just due to the complexity of the material they cover, combined with the changing world of computer science. Hopefylly getting out pre-prints of the book, bit by bit, will help get alot of these fixed before the 1st edition.

      I have no idea how you were expecting to "allay" the confusion of others, when you don't even seem to understand it yourself.

      Adam Pennington

      --
      Would you do it for some scoobie crack?
    2. Re:For the ignorant... like me! by kubrick · · Score: 2, Informative

      1. A small bundle.

      The root word is the Latin "fasces" -- a bundle of sticks -- which was used as a symbol of authority in Ancient Rome, by people empowered to beat those acting illegally. This is where the notion of "fascism" comes from -- order through the strength of the dominant group.

      I really should do more study of etymology, it can be fascinating...

      --
      deus does not exist but if he does
    3. Re:For the ignorant... like me! by Anonymous Coward · · Score: 0

      Where do all of you guys who keep these books on your desk find the space? Hell, I keep Knuth, and everyone else, on the bookshelf behind my desk.

  9. Re:A series of books like this for higher lvl codi by biglig2 · · Score: 5, Insightful

    Knuth's own reply to this question can be seen at http://www-cs-faculty.stanford.edu/~knuth/mmix.htm l.

    To quote:

    "Many readers are no doubt thinking, 'Why does Knuth replace MIX by another machine instead of just sticking to a high-level programming language? Hardly anybody uses assemblers these days.'

    Such people are entitled to their opinions, and they need not bother reading the machine-language parts of my books. But the reasons for machine language that I gave in the preface to Volume 1, written in the early 1960s, remain valid today:

    One of the principal goals of my books is to show how high-level constructions are actually implemented in machines, not simply to show how they are applied. I explain coroutine linkage, tree structures, random number generation, high-precision arithmetic, radix conversion, packing of data, combinatorial searching, recursion, etc., from the ground up.
    The programs needed in my books are generally so short that their main points can be grasped easily.
    People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird.
    Machine language is necessary in any case, as output of many of the software programs I describe.
    Expressing basic methods like algorithms for sorting and searching in machine language makes it possible to carry out meaningful studies of the effects of cache and RAM size and other hardware characteristics (memory speed, pipelining, multiple issue, lookaside buffers, the size of cache blocks, etc.) when comparing different schemes.
    Moreover, if I did use a high-level language, what language should it be? In the 1960s I would probably have chosen Algol W; in the 1970s, I would then have had to rewrite my books using Pascal; in the 1980s, I would surely have changed everything to C; in the 1990s, I would have had to switch to C++ and then probably to Java. In the 2000s, yet another language will no doubt be de rigueur. I cannot afford the time to rewrite my books as languages go in and out of fashion; languages aren't the point of my books, the point is rather what you can do in your favorite language. My books focus on timeless truths. "

    --
    ~~~~~ BigLig2? You mean there's another one of me?
  10. Paying people to find bugs doesn't cost him by Anonymous Coward · · Score: 2, Interesting

    Apparently very few people cash the (few) checks Don Knuth writes in reward for bugs. Would you rather have $2.56 or a signed checque from Mr Knuth?

    1. Re:Paying people to find bugs doesn't cost him by junge_m · · Score: 2, Interesting

      In an article in the German c't magazin you can find an interview with Don Knuth where he talks about a guy in california who cashes his checks on a regular basis (here is Google's attempt at it).
      A far better interview can be found at Folio the magazine of the Neue Zuricher Zeitung which can also be translated by Google into something like a beginners version of english.

    2. Re:Paying people to find bugs doesn't cost him by Skim123 · · Score: 3, Funny
      That translation of the first German article is hilarious in some spots:

      But I write my books at a PC with 600-MHz-Athlon, which I assembled last year with the help of a friend.

      c't: Under Linux?

      Knuth: Yes.

      c't: No Windows?

      Knuth: Around sky sake, no! Until that always gebootet...

      :-)
      --

      I could not justify my existence if I were a turkey farmer. Would I terminate myself? Undoubtably, yes.

    3. Re:Paying people to find bugs doesn't cost him by 1729 · · Score: 1
      Apparently very few people cash the (few) checks Don Knuth writes in reward for bugs. Would you rather have $2.56 or a signed checque from Mr Knuth?

      My father, being a frugal mathematician, photocopied the checks he received from Knuth, and then promptly cashed them.

    4. Re:Paying people to find bugs doesn't cost him by Anonymous Coward · · Score: 0

      If your father were a bussinessman he would have tried to sell them.

    5. Re:Paying people to find bugs doesn't cost him by RackinFrackin · · Score: 1

      In an interview in the Notices of the American Mathematical Society (vol 49, number 3, pp 318-324), Kunth was asked about how many people cash his checks. Here's his response:

      "There's one man who lives near Frankfurt who would probably have more than $1,000 if he cashed all the checks I've sent him. There is man in Los Gatos, California, whom I've never met, who cashes a check for $2.56 about once a month, and that's been going on for some years now. Altogether I've written more than 2,000 checks over the years, and the average amount exceeds $8.00 per check. Even if everybody cashed their checks, it wouls still be more than worth it to me to know that my books are getting better."

  11. Well, actually by Subcarrier · · Score: 4, Funny

    256 equals $100. We're being shafted.

    --
    "I have opinions of my own, strong opinions, but I don't always agree with them." -- George H. W. Bush
    1. Re:Well, actually by Anonymous Coward · · Score: 0

      256 pennies would be 100 hex cents, not 100 hex dollars.

    2. Re:Well, actually by Subcarrier · · Score: 3, Insightful

      256 pennies would be 100 hex cents, not 100 hex dollars.

      Not quite. 256 *anything* equals $100. Several symbolic assemblers represent hexadecimals with a $ prefix. This has nothing to do with money. Claiming that the number is in fact a fixed point decimal representation is just semantics, not visible in the assembly code.

      Just to make it completely clear. ;-)

      --
      "I have opinions of my own, strong opinions, but I don't always agree with them." -- George H. W. Bush
  12. unfortunately... by paradesign · · Score: 0, Offtopic
    my win95 work box has no idea what a *.ps.gz file is or what to do with it. winzip is equally as helpless. even if i did un-gz it, i doubt i have anything that can read a postscript file. so i have two questions...

    how do you go about un-gzing in win95?

    and could some one mirror this in html or txt format?

    --
    I want 2D games back.
    1. Re:unfortunately... by chill · · Score: 2

      WinZIP can handle .gz files, and I think PKZIP can as well.

      As far as .ps goes, if you have a PostScript printer then dump it straight to that. If not, Adobe Acrobat (full version, not the reader) has a utility that convers .ps to .pdf.

      --
      Learning HOW to think is more important than learning WHAT to think.
    2. Re:unfortunately... by Anonymous Coward · · Score: 0

      Umm..gzip?? There are ports of gzip for win32. Check the former Sunsite archives, they have lots of DOS stuff (can't remember what their current name is...).

    3. Re:unfortunately... by JanneM · · Score: 1

      You need gzip, which is available for Windows as well as for Unix. As for the .ps part, it's simply a postscript file. Send it directly to a printer, or use a postscript viewer. /Janne

      --
      Trust the Computer. The Computer is your friend.
    4. Re:unfortunately... by Anonymous Coward · · Score: 0

      postscript files can be viewed with the Ghostscript+GhostView on most platforms.

      http://www.cs.wisc.edu/~ghost/

    5. Re:unfortunately... by KenRH · · Score: 1
      Cygwin is a win32 port of the unix commandline tools.

      It also has OpenSSH and XFree86 port for win32

    6. Re:unfortunately... by Anonymous Coward · · Score: 0

      There is a solution, however. Just rename your file from

      foo.ps.gz

      to

      foo_ps.ps

      _ps.ps files are recognized by ghostview; it will gunzip and put up the .ps inside automatically. Ghostview can be found easily with a google search (too lazy to paste the url).

  13. Could it be... by CoderByBirth · · Score: 2, Funny

    "...But I must confess that I'm also disappointed to have had absolutely no feedback so far on several of the exercises on which I worked hardest when I was preparing this material. Could it be that (1) you've said nothing about them because I somehow managed to get the details perfect? Or is it that (2) you shy away from the more difficult stuff, being unable to spend more than a few minutes on any particular topic?..."

    ... or could it be (3) that you'd have to be one crack-smoking codemonkey of a nut to spend your spare time doing exercises which (1) require a superbrain, (2) are boring, (3) your superbrain computer science professor already did a week ago to collect the $0.23 award for the errata report.

    1. Re:Could it be... by SN74S181 · · Score: 1

      Maybe it has to do with the fact that you'd have to be more than just a 'coder' to dig very deep into Knuth.

      Stick to your Nintendo, I guess.

    2. Re:Could it be... by CoderByBirth · · Score: 2, Troll

      Let me guess... You're a CS Master Of Science student or graduate who take pride in having the ultimate hashkey algo memorized to the last bitshift. I'm a CS student myself, but I recognize this for the uninteresting stuff it really is (unless of course, you're planning on doing/doing actual research on this stuff).

      Programming is a craft dependent on experience and routine. Sure, knowing your big-O might come in handy when you need to make a kick-ass algorithm; but this has probably already been done by somebody else.

      Flashing your l33t CS skillz is going to get you nowhere when you don't know the Nintendo Graphics API (tm) and I do, and spend all my time making Zelda while you're still trying to implement the ultimate sort() and forget about structure and testing.

      To quote a slashdot quote : "Fluid dynamics is to plumbing as science is to programming."

    3. Re:Could it be... by Anonymous Coward · · Score: 0

      Just because you like laying bricks doesn't warrant you to defy the architect. Now there's nothing wrong with a person's preference for coding on some actual product. There's also nothing wrong with people working on the fundamentals because if it were not for these people, you won't have the convenience of a 'kick-ass algorithm done by somebody else'. It's ridiculous that people always tend to make theory and practice two conflicting things. Theory is nothing but the condensation of discoveries made during practice, which is presented in an abstract form. Without the theory you don't know why and how to do things right. Without practice you don't have the actual product. They are just two parts of human intelligence.

    4. Re:Could it be... by CoderByBirth · · Score: 1

      You misunderstood me, and I wasn't very clear; I think theory is very good. Software is application of the theory - research drives the development forward. I'm just saying that theory is not a substitute for actual application of theory.

      Saying that you're a good programmer just because you are good at constructing algorithms and know P from NP just isn't true.

    5. Re:Could it be... by SN74S181 · · Score: 1

      Let me guess... You're a CS Master Of Science student or graduate

      Lousy guess. I have a two year degree from a Tech school. I guess I just have more respect for 'theory' and I work hard at understanding it. I consider people who schlepp code without planning to be shortsighted and poor developers.

      All my commercial code (all that anybody has paid me to do) is in Assembly language on 4 and 8 bit controllers, anyway. Running in medical devices.

    6. Re:Could it be... by Anonymous Coward · · Score: 0

      I will not be too harsh, but it is obvious that you will always be writing code using an api written by another coder.

  14. $2.56 worth. by SloppyElvis · · Score: 1, Flamebait

    LOL! That's quite a reward for finding errors in Knuth's brain child. While Knuth professes Computer Science and the French language have changed significantly since vol. 1, the Economics of error-finding have remained the same... What about inflation Prof. Knuth!?

    This suggestion should be worth $0.32

  15. This guy is hard core by peterdaly · · Score: 4, Funny

    I just looked this author up at Amazon. Here is some of his previous work:
    The Art of Computer Programming, Volumes 1-3
    From the Inside Flap
    "The bible of all fundamental algorithms and the work that taught many of today's software developers most of what they know about computer programming."-- Byte, Sept 1995

    "If you think you're a really good programmer,...read [Knuth's] Art of Computer Programming....You should definitely send me a resume if you can read the whole thing." -- Bill Gates


    This does not sound like it is aimed at the core slashdot crowd, based on the Amazon reviews I am reading. Honestly I have never heard of the guy before. He is without a doubt more for the "hard core" among us. Volume 1 seems to have been written in the 1960's, so this guys been at it a while.

    Plenty of reader reviews. Many with comments like:
    This timeless classic is bound to make the student (Yes you ought to be a dedicated one..no casual reading here!) proficient in the art and science of constructing programs. -Ganapathy Subramaniam

    Be prepared for your brain to do some crunching if you really want to get into this guys work.

    -Pete
    (amazon affilate like to the book...just so ya know.)

    1. Re:This guy is hard core by tg_schlacht · · Score: 1

      Honestly I have never heard of the guy before.

      Neither had the librarians at my local library. They were puzzled as to why I was so angry about the disappearance of the three yellow computer books. That was years ago and I still get somewhat mad about it.

    2. Re:This guy is hard core by Mr+Guy · · Score: 5, Insightful

      He is beyond hardcore. To explain Donald Knuth's relevance to computing (and geeks should all know who he is) is like explaining Paul's relevance to the Catholic Church. He isn't God, he isn't the Son of God, but he was sent by God to explain God to the masses.

      Reading the Art of Computer Programing is like translating the Bible from the original greek. You know there is something profound there, but until you've done it a few times and looked back on it, you are more concerned with trying to figure out each word.

      I'm a little awestruck by him.

      By the way, the Paul reference is not a flippant one, check out his other books,Things a Computer Scientist Rarely Talks About , and 3: 16: Bible Texts Illuminated, for explanations of why not every christian is a fool.

    3. Re:This guy is hard core by devonbowen · · Score: 4, Interesting

      Wow. No flame intended, but I never expected to hear Knuth called "this guy". For those that don't know the name, here are a few others you might want to check out: Turing, Minsky, Church, Shannon, Chomsky. Of course, these are just the "theory" guys and I am sure others will add to that list. Seems to me any geek should have at least a Readers Digest knowledge of who these people are and what they've done for us.

      Devon

    4. Re:This guy is hard core by XSforMe · · Score: 1
      Honestly I have never heard of the guy before

      I think this is a grave problem among many modern day CS graduates. In my school they barely mentioned his work, and left it as suplemental reading.

      --
      My other OS is the MCP!
    5. Re:This guy is hard core by Rupert · · Score: 2, Funny

      Lots of people haven't read tAoCP. I'm one of them. I don't consider it something to be ashamed of. As you say, it's hard core. But if you've never /heard/ of it, or never heard of Donald Knuth, you may be reading the wrong website.

      Try going to englishlitereature.com and saying you've never heard of this Shakespeare guy, but based on Amazon reviews it sounds like he's pretty deep.

      --

      --
      E_NOSIG
    6. Re:This guy is hard core by Goonie · · Score: 3, Interesting
      John Von Neumann, S.A. Cook (describing NP-completeness was pretty damn cool), Ken Thompson and Dennis Ritchie, Vannevar Bush, Doug Engelbart...

      There are many others, but that's a good start.

      --

      Any sufficiently advanced technology is indistinguishable from a rigged demo
      --Andy Finkel (J. Klass?)
    7. Re:This guy is hard core by Anonymous Coward · · Score: 0

      Actually, Chomsky was a genius in establishing much of the modern science of Linguistics, but he veers waaaay off the road when he gets involved in politics.

      Most of his Linguistics stuff is getting dated now, too.

      What's really sad is how he cashes in on his rep, to promote his crackpot politics.

    8. Re:This guy is hard core by ochinko · · Score: 1
      This does not sound like it is aimed at the core slashdot crowd...

      Go check this interview (supplied by another /.-er). It's in German but he says he uses Mac for graphics and Linux for everything else, and won't touch Windows.
      The interviewer crowns him as the Father of Open Source, but he says that although he's a big fan of it, he's just a contributer.

    9. Re:This guy is hard core by zaphod110676 · · Score: 1

      Agreed. It my program he was mentioned only in passing. I had to do some digging on my own to find out about this individual who is arguably the father of Computer Science. You'd think the history of the profession and major advances would be covered. Sheesh.

      Of course I also took a system administration course in which the instructor lectured for nearly two weeks on how dust is bad for computers. So I guess the institution I got my degree from is probably not the best example. =)

      --
      To Do: 1. Take over world 2. Pick up Milk and Bread on the way home
    10. Re:This guy is hard core by heytal · · Score: 1

      -1 Fool

      I'd like to meet the moderators who moderated the above +1 Insightful, +1 Funny, -1 Troll.

    11. Re:This guy is hard core by hysterion · · Score: 2
      check out his other books,Things a Computer Scientist Rarely Talks About [amazon.com], and 3: 16: Bible Texts Illuminated [amazon.com], for explanations of why not every christian is a fool.
      Be sure to check out also (Eiffel creator) Bertrand Meyer's review ...
    12. Re:This guy is hard core by hysterion · · Score: 2
      Most of [chomsky's] Linguistics stuff is getting dated now, too.
      Questions for the AC:

      Ever heard of context-free languages? yacc grammars? parsing ?

      Thought so.

    13. Re:This guy is hard core by Hack+Shoeboy · · Score: 0
      Questions for hysterion:

      Ever hear of Flirting with Nazism?

      --

      IN TEH FUCHAR, LITERSY WLIL EB OPSHANAL!!!!!111
    14. Re:This guy is hard core by 1729 · · Score: 1
      For those that don't know the name, here are a few others you might want to check out: Turing, Minsky, Church, Shannon, Chomsky. Of course, these are just the "theory" guys and I am sure others will add to that list.

      One more name for the list: Edsger Dijkstra.

    15. Re:This guy is hard core by Anonymous Coward · · Score: 0

      *Cough* Brian Kernighan (sp)

      Can't have a K&R without the K :)

    16. Re:This guy is hard core by Anonymous Coward · · Score: 0

      Thank you; I did not know that Meyer was the creator of Eiffel. Although I had ignored it as a toy language in the past, I have to learn Eiffel now.

    17. Re:This guy is hard core by Anonymous Coward · · Score: 0

      I find it hard to have a Kernighan without a Plauger or a Pike, but now we are getting into the guys that teach normal people how to program.

    18. Re:This guy is hard core by Anonymous Coward · · Score: 0

      Just as I would not say that Euler is the father of mathematics, I would not say that Knuth is the father of computer science.

    19. Re:This guy is hard core by Elrac · · Score: 1

      When talking to my less computer literate friends about Knuth, I refer to him as "the Arnold Schwarzenegger of Computer Science". Just my personal picture of him, but I like it and my friends dig it.

      --
      When one person suffers from a delusion, it is called insanity. When many people suffer from a delusion it is called Rel
  16. Knuth loosing the /. crowd? by coder_cc · · Score: 1

    Nah, we can do that!
    Although, these challenges do sound a little dry, don't they?

    - Claus

    1. Re:Knuth loosing the /. crowd? by Anonymous Coward · · Score: 0

      We could---but will we really spend the time? I've got my copy printed and bound, ready for study!

      Mirko

    2. Re:Knuth loosing the /. crowd? by larry+bagina · · Score: 0, Offtopic

      unfortunately, no credit is given for karma whoring or redirecting you to mr. goatse.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

  17. use GCC by johnjones · · Score: 5, Informative

    just code it in C and then use gcc targeted at mmix to see the assembly and compare them with what he wrote(some of the time it wont be the same if ever because of register alocation but you get the point)

    regards

    john 'mips64' jones

  18. Re:A series of books like this for higher lvl codi by gripdamage · · Score: 5, Informative

    It's still probably helpful to know where you can obtain and learn to use a MIPS VM. Check out the GNU MDK manual Contains the MIX instruction set and a programming tutorial, as well as documentation on using the VM itself.

    For the intro:

    In his book series The Art of Computer Programming (published by Addison Wesley), D. Knuth uses an imaginary computer, the MIX, and its associated machine-code and assembly languages to ilustrate the concepts and algorithms as they are presented.

    The MIX's architecture is a simplified version of those found in real CISC CPUs, and the MIX assembly language (MIXAL) provides a set of primitives that will be very familiar to any person with a minimum experience in assembly programming. The MIX/MIXAL definition is powerful and complete enough to provide a virtual development platform for writing quite complex programs, and close enough to real computers to be worth using when learning programming techniques. At any rate, if you want to learn or improve your programming skills, a MIX development environment would come in handy.

    The MDK package aims at providing such virtual development environment on a GNU box. Thus, MDK offers you a set of utilities to simulate the MIX computer and to write, compile, run and debug MIXAL programs.

  19. rats! by cowtamer · · Score: 5, Funny

    I was actually hoping for this.

  20. guess it would be bad by Karma+Star · · Score: 1

    if those few people who have hundreds of his checks decide to cash them all at once when he retires...

    "oh my god! my retirement money is gone!"

    --
    Me email iz skyewalkerluke at microsoft's free email service.
    1. Re:guess it would be bad by UberLame · · Score: 1

      I'm highly suspicious that he is never going to retire. I bet you he will keep going until he dies.

      --
      I'm a loser baby, so why don't you kill me.
    2. Re:guess it would be bad by Anonymous Coward · · Score: 0

      At least in the UK, cheques expire after 6 months. I don't know about elsewhere.

    3. Re:guess it would be bad by Anonymous Coward · · Score: 0

      90 days in the US

  21. Reality Check! by K'tohg · · Score: 0, Flamebait
    People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird.

    Sounds as if he is stuck in the 60s. Sorry buddy but I used that line once and got slapped.

    In todays world of skript kikddies and MCPs (Magazine Certified Programmers) The "if your a programmer then you should know how the computer works" way of thinking is right out.

    I have met about three computer programmers so far and thay couldn't tell me why explorer.exe was required to have at least one instance running at all times!

    I remember one Visual C++ programmer who every time a shouted "Damb it! another illegal operation bug! I want my Linux machine back!" he would reply "You need to go to an OS collage course and learn why an OS is so hard and complicated. These things are little things because the OS is so busy with just running it can't handle everything"

    hmmm. I would award him the nobel prize for computer sympathy!

    So I guess the computer idustry is so saturated that anybody who anybody can join without any prior skills or knowladge. Gone are the days of codeFu. Gone are the days of mathamatics. Gone are the scientists striving to get to the moon. And in come the monkeys with quick tails to bow to the needs of every big haired boss.

    Looks like Open Source comunity better get trucking in taking over the world. If we continue eventually the whole internet will have a big general protection fault and the only ones left standing will be us!

    --
    > SELECT * FROM brain_cells WHERE synaptic_rate > 0
    0 row returned
    1. Re:Reality Check! by Requiem · · Score: 1

      In these thar parts, we use mathematics, boy!

    2. Re:Reality Check! by Anonymous Coward · · Score: 0

      Keep in mind that another reason for using Assembler instead of a high-level language is that you can analyze the performance of different algorithms. In the Searching and Sorting volume, Knuth actually times the algorithms in clock cycles against each other. Knuth's mathematical analysis of performance makes it worth learning Assembly... a high level language will be doing stuff in the background that would make it impossible to analyze this way.

    3. Re:Reality Check! by Hack+Shoeboy · · Score: 0

      Take it easy on him. His first language is Klingon.

      --

      IN TEH FUCHAR, LITERSY WLIL EB OPSHANAL!!!!!111
    4. Re:Reality Check! by Anonymous Coward · · Score: 0

      But he could at least describe a forth like language. The way that it is, we have to think about different registers, and how to use them; that makes it harde for a novice (like me and most other people in school) to learn from his book.

  22. oops by gripdamage · · Score: 1

    Oops MIPS... MIX... You know what I mean [grins sheepishly].

  23. Don't have a postscript viewer? by apirkle · · Score: 4, Informative
    For you poor saps running Windows with no viewer for Postscript, there is a great online viewer that converts ps, pdf, and word docs to gif images, suitable for viewing in your favorite web browser.

    Cached version of the Knuth document is here.

    1. Re:Don't have a postscript viewer? by Anonymous Coward · · Score: 0

      I just double-click on *.ps files and they're instantly transformed to *.pdf files by Acrobat Distiller, and I can view them in Acrobat.

    2. Re:Don't have a postscript viewer? by red_crayon · · Score: 3, Insightful

      I would suggest rather getting ghostscript for Windows, the free PostScript interpreter, and also GSview, a viewer (the latter requires the former).

      Ghostscript is free as in speech, with a GNU release and a release under AFPL, a slightly different license (the GNU code is older than the AFPL code). GSview is available, as far as I can tell, under the AFPL only, which is still free but not GPL.

      With both of these properly installed on Windows, one click on the link provided by Slashdot will launch the viewer. (It must gunzip on-the-fly.)

      --
      "Never bullshit a bullshitter" All That Jazz
    3. Re:Don't have a postscript viewer? by Ryne · · Score: 1

      This works great.

    4. Re:Don't have a postscript viewer? by Anonymous Coward · · Score: 0

      On Windows I just use Ghostscript/Ghostview, either the AFPL one , or the GNU GPL one to view and print *.ps files.

    5. Re:Don't have a postscript viewer? by Ryne · · Score: 1

      doh, you bet me to it by one minute. Now I'll get moderated to oblivion.

    6. Re:Don't have a postscript viewer? by necrognome · · Score: 1

      The website ps2pdf.com also suffices for these purposes.

      --


      Let's get drunk and delete production data!
  24. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 0

    the personality cult people will tell you to drink the kool aid. I won't. You don't know how outdated the assembly language MIX really is!

    However, an algorithm is an algorithm... But if you don't know what a linked list is, and need to see it implemented, what are you doing reading TAoCP? There's some good stuff in there, but at least half of it is taught better in 1st year/2nd year CS classes.

    It should have been called "Computer Programing, 1960s style, for Math Geeks".

    Anyhow, fortunately, Volume 4 will use a RISCy OS MMIX, which is somewhat like a PPC, SPARC, MIPS, and other modern architectures.

  25. Re:A series of books like this for higher lvl codi by Alomex · · Score: 1

    Moorish artisans used to purposedly introduce a mistake in their tile designs, as it would be presumptous for a mere mortal to attempt perfection.

    Knuth introduced the MIX back in the 60s and all the reasons why it was the wrong choice back then remain valid today. He well knows that, but leaves it in the text to follow his own theological observations and not make his books perfect.

    A friend of mine suggested printing post-it notes with Java code to paste over MIX code in the tAoCP.

  26. Re:A series of books like this for higher lvl codi by cduffy · · Score: 3, Informative

    In addition to Knuth's response (given by another poster), let me add that the assembly language used does not, in practice, detract from the usefulness of the books -- and if one wishes, transcribing any of his algorithms from MIX or MMIX to C is child's play and can be done in ones' head while reading them; changing code from MIX or MMIX to an assembly language for real hardware is similarly easy -- a design goal of both.

    Further, while MIX may well be showing its age, Knuth's newer MMIX assembly language is anything but outdated; its features should map well to new processors released for years.

  27. MIX by Zeinfeld · · Score: 1, Interesting
    Knuth's argument boils down to, because any high level language is bound to be out of fashion I will use an assembler that is guaranteed to be out of fashion.

    I don't buy that argument. And the business about TAoCP being like the Encyclopedia Britainica, a work for the ages is a bit of a crock. As compendiums of algorithm's go I prefer the one written by Ron Rivest and friends. I can't remember whether it is written in Pascal or C and I really don't mind because I can easily read both.

    My ideal algorithms book would be written in a modified version of C# or Java. First I would get rid of the unnecessary braces and semicolons. All they do is to make the code fragments longer. Indentation shows block structure much better, continuation lines are not actually ambiguous in algol like languages.

    I would also add in statement of the loop invariants, pre and post conditions which as a formal methods person I regard as an important part of an algorithm.

    --
    Looking for an Information Security student project suggestion?
    Try http://dotcrimeManifesto.com/
    1. Re:MIX by cduffy · · Score: 1

      Knuth's argument boils down to, because any high level language is bound to be out of fashion I will use an assembler that is guaranteed to be out of fashion.

      MMIX is quite certainly not out of fashon -- "real" assembly languages will no doubt be catching up with it for the next several years. As for MIX, yes it's old -- but it serves its purpose well as a language which can be easily transcribed to any other and which gives a low-level explanation of the algorithms used.

      As for the loop invariants, pre- and postconditions, &c -- if one can't determine those at a glance, one has no chance of maintaining others' code (read: surviving) in the Real World.

    2. Re:MIX by smithsb1 · · Score: 2, Interesting

      If you need to have a algoritms book written for you in a certain language then you are missing the point of the study of algorithms completely. Algorithms wither in assembly or high level language still read the same!.. stop complaining about having to use your brain. If you can't understand them because they are written in assembly please take the time to learn to learn it. It will only help your programming believe me i haven't met a compentant programmer that couldn't easily switch his/her fundamental algoritms back and forth between high level and low level without a sweat. besides it's really what is happening behind the scences of your c# code anyways.

    3. Re:MIX by 1729 · · Score: 1
      As for the loop invariants, pre- and postconditions, &c -- if one can't determine those at a glance, one has no chance of maintaining others' code (read: surviving) in the Real World.

      Unfortunately, many (most?) programmers don't seem to understand invariants, preconditions, and postconditions. And yet they go on working.

    4. Re:MIX by lyphorm · · Score: 0

      You're just mad because you can't cut and paste his algorithms right into your own code and take credit for it like you came up with them yourself.

      --
      ______-___--_-__-_---_-----__-_-___-_-_---_-----_- __--_____
    5. Re:MIX by Zeinfeld · · Score: 2
      As for the loop invariants, pre- and postconditions, &c -- if one can't determine those at a glance, one has no chance of maintaining others' code (read: surviving) in the Real World.

      The pre and post conditions are no more or less trivial than the algorithm they describe.

      And given the number of folk who can specify a sort and forget to state that the output must be a permutation of the input I don't think that using formal methods is as trivial as you make it out.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    6. Re:MIX by cduffy · · Score: 2

      The pre and post conditions are no more or less trivial than the algorithm they describe.

      This statement doesn't stand up to even trivial analysis. The pre- and postconditions set up the purpose of the algorithm and the assumptions behind it -- but for a nontrivial algorithm that's a far different thing than the actual meat; an algorithm with a simple purpose may easily have a complicated execution.

  28. Re:A series of books like this for higher lvl codi by rickwood · · Score: 1

    At the very least these books represent the magnum opus of one of the pioneers of our field. I think they are worth reading for that reason alone.

    However, my thoughts were similar to yours until I actually read AoCP. It's not so much learning algorithms as it is learning to think algorithmicly. I rarely get to code at the low level shown in AoCP. Even so, my SQL based reports in PHP and two-bit perl programs benefit from an algorithmic approach.

    I am certain that I am better programmer for reading AoCP, and I never did any of the exercises. ;)

  29. Re:A series of books like this for higher lvl codi by cduffy · · Score: 1

    A fascicle updating Volume 1 to use MMIX is already out; it's not so much a Vol4-only thing.

  30. Re: Ghostscript by bunratty · · Score: 1

    You can read PostScript files on Windows, Mac, Linux, OS/2, and VMS with GhostScript.

    --
    What a fool believes, he sees, no wise man has the power to reason away.
  31. viewing *.ps by cascadingstylesheet · · Score: 1

    As far as .ps goes, if you have a PostScript printer then dump it straight to that. If not, Adobe Acrobat (full version, not the reader) has a utility that convers .ps to .pdf.

    Or, do this:

    1. Download and install ghostscript.
    2. Download and install GSView.
    3. View or print the *.ps file with GSView.
  32. Finally by gillbates · · Score: 3, Interesting

    I was a junior in college when I first read The Art of Computer Programming, and it really opened up my mind to what computer science is all about. It challenged me to think outside the HLL box. Knuth's work has become a timeless classic because he concentrates on the higher level concepts of computer science that transcend the currently popular architectures.

    What really blew me away about Knuth's work is that he implements all of the features found in modern HLL's in his own variant of assembler. Someone who can work through and solve the exercises in his books will find themselves able to write programs in any language, and write them well at that. He does not concern himself with the Language Wars, or the Platform Wars, but instead presents the problems and solutions which are common to all computer systems. Too many programmers have been babied intellectually by their colleges and universities, which taught them how to program in a high level language rather than teaching them the fundamentals underlying computer science. Knuth does a good job in getting down to the underlying problems of computer science without bothering the user with the details of arcane architectures that will soon be obsolete.

    For this reason, I look forward to his forthcoming work. I look forward to the new challenges which will expand my mind even farther.

    --
    The society for a thought-free internet welcomes you.
    1. Re:Finally by WINSTANLEY · · Score: 1



      This does not sound correct. Your characterization of academic CS training doesn't conform to my experience/observations of it (for better or worse).

      Programmers, many of them who have NOT been thru a CS program - including myself to an extent, or have not been in an academic environment for years, get caught up language "fads" and other non-foundational issues because that is the nature of industry.

      The opportunity to apply the basic conceptual weapons of computer science is actually fairly limitied in professional experience. I am usually fairly shocked when I realized I can use something from a data structure course I took once
      in a project I am working on.

      Every CS program I have ever looked at teaches algorithms/computational complexity, data structures, discrete math, theorectical CS (i.e., automata, formal language etc). Now CS departments may standardize on a language or two for instructional purposes, but that should help
      students grasp the concepts underlying the coded examples, NOT make them obsessed with "HLL"'s.

      I would have grokked my data structures examples much more quickly if they had been written in C,
      (which I knew intimately from work)
      rather than having to translate them first from Pascal. But whatever language was the choice for instruction, the key issue was how well I knew it or was comfortable in it so that I would not be distracted from the underlying meaning by the
      specifics of the code.

      If anything CS departments favor abstraction at the expense of many software engineering skills and practices that would be extremely useful
      in everyday programming settings.

      --
      It is by coff... er, will, alone I set my mind in motion...
  33. WE are lazy ??? by __aahlyu4518 · · Score: 1

    From this page :

    "Although I'm working full time on Volume 4 these days, I will try to reply to all such messages within six months of receipt. "

    SIX MONTHS...

    1. Re:WE are lazy ??? by Anonymous Coward · · Score: 0

      Hey it takes a long time to get snail mail from the Dagova system.

  34. That's a shame... by Anonymous Coward · · Score: 1, Insightful

    It's really a shame to read all these comments from people who have never heard of The Art of Computer Programming... Shows the average intellectual level of slashdot readers. To make things worse, some of the individuals are proud to not know Knuth or to state that his books are useless or boring.
    Shame...

    1. Re:That's a shame... by Anonymous Coward · · Score: 0

      I have only one question, when i go to download bookwarez from #bookwarez, or alt.binaries.e-books i only found bookz from microsoft, VB for dummies, learn XXX in 21 days, and NO ONE posts Aho, Hopcroft, Sethi. Knuth books, why?.

      I think a book of these in the public domain will be useful for all the people that dont want to make scripts forever.

    2. Re:That's a shame... by Anonymous Coward · · Score: 0

      You know what their problem is?

      (sung to the tune of YMCA...)

      Da da da da! MCSE! MCSEeeeeee!

    3. Re:That's a shame... by Anonymous Coward · · Score: 0

      Because I am not f****** computer engineer. I am a material science engineer, it is your headache to fix WIN XP not mine !!! I wonder why microsoft never hired him and made better products

    4. Re:That's a shame... by DunbarTheInept · · Score: 2

      Ignorance of something is different from lack of intelligence. The fact that so many slashdot readers don't know about his books is evidence of their *ignorance* of the history of computer science, NOT their intellectual level.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    5. Re:That's a shame... by SageMusings · · Score: 1

      Oops,

      Sorry about that. I have not read all the authors you have read. It is a wonder I can manage to use utensils at the dinner table or even prefer indoor plumbing. Yep, you really showed me who the deep-thinking intellectuals are around here....

      --
      -- Posted from my parent's basement
  35. TeX by mikeee · · Score: 5, Interesting

    My favorite Knuth quote, when he gave a class a snippet of code to use in their program (not verbatim, sorry):

    "Be careful with this code; I have only proven it correct, not tested it."

    A demonstration of Hacker Nature:

    He wasn't happy with the typesetting on his first book, and decided this should be done by computer, so he wrote a markup language for typesetting.

    Of course, he wanted to do it right, so this took him... well... about a decade. And when he was done, he had written TeX. He was very pleased; his publishers thought this was odd, as the new typesetting looked worse than the old.

    A few years later, high-resolution laser printers became available; TeX already suppported them, and lo and behold, the new version did look better.

    TeX is a huge monster of a programming language/application. Knuth offered a cash prize of $(2^N) for the Nth unique bug report. TeX is now, like, 20 years old, and that system cost him under $1K.

    If programmers were Jedi, he would be Yoda.
    If programmers were wizards, he was be Gandalf.

    He is the serious, friendly grandfather who can kick the butts of all us whippersnapers. So pay attention!

    1. Re:TeX by crsm · · Score: 5, Interesting

      TeX is a huge monster of a programming language/application. Knuth offered a cash prize of $(2^N) for the Nth unique bug report. TeX is now, like, 20 years old, and that system cost him under $1K.

      Take a look at the version number of TeX: 3.14159 ('tex --version'). Each release adds a new digit towards Pi and someday when he dies the release number will be bumped to be exactly Pi. After that every new bug will be declared a feature :-) Another program of his (the name escapes me) progress the in the same way towards the base of the natural logarithm e.

    2. Re:TeX by red_crayon · · Score: 5, Informative

      Another program of his (the name escapes me) progress the in the same way towards the base of the natural logarithm e.

      That would be METAFONT. It's a companion program to TeX, for making fonts.

      --
      "Never bullshit a bullshitter" All That Jazz
    3. Re:TeX by slasho81 · · Score: 2, Funny

      He wasn't happy with the typesetting on his first book, and decided this should be done by computer, so he wrote a markup language for typesetting.

      Why spend 10 days doing something when you can spend 10 years automating it?

      (If you don't approve profoundly with the above sentence you don't belong to the software development profession.)

    4. Re:TeX by WillAdams · · Score: 1

      For those who're unfamiliar with Dr. Knuth and TeX, here're some links:

      his home page:
      http://www-cs-faculty.stanford.edu/~knuth/

      Google's directory page on him:
      http://directory.google.com/Top/Computers/Hi story/ Pioneers/Knuth,_Donald/

      If memory serves, this is a good inteview which explains TeX for the layman (read, non-print publishing professional)
      http://www.advogato.org/article/28. html

      William
      (who has a check for pg. 43 of _Digital Typography_ ;)

      --
      Sphinx of black quartz, judge my vow.
    5. Re:TeX by stephandahl · · Score: 1

      That would be 2^N cents, not dollars. But it adds up quick anyway.

      --
      What is the difference between a real song and a simulated song?
    6. Re:TeX by Per+Bothner · · Score: 1

      TeX is a huge monster of a programming language/application. Knuth offered a cash prize of $(2^N) for the Nth unique bug report.

      Er - I don't think so. That would get astronomical very quickly. I don't know his exact algorithm (I have gotten one of his checks), but it's more like doubling for each printing (of a book) or version (of a program), not each bug.

    7. Re:TeX by cpeterso · · Score: 2

      He was very pleased; his publishers thought this was odd, as the new typesetting looked worse than the old.


      I agree. I have always thought that TeX looks like shite. If yOU waNt YouR paPErS tO LOoK lIke THEy wEre WRitteN On a JAnGly OlD tYPewRiTEr THeN TeX MaY bE riGHt foR YOu!! Why do you think it is capitalized as "TeX"?

    8. Re:TeX by xtord · · Score: 1

      Well.. Since PI has an infinite number of decimals, we would never reach that number..

    9. Re:TeX by flonker · · Score: 1

      Actually, I believe the correct capitalization is along the lines of TEX. Parse the HTML manually, as slashcode filters it out.

  36. ToastScript - Java .PS Reader and Printer by N8F8 · · Score: 2

    For other Windoes folks, ToastScript is a handy little Java app to read and print PostScript.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  37. Re:A series of books like this for higher lvl codi by SN74S181 · · Score: 1

    He should have started with IBM 650 Assembly Language and stayed with it. Then my father, who programmed on the IBM 650 (like Knuth) would be able to pick the books up easily.

  38. Why isn't MMIX virtual machine popular? by Anonymous Coward · · Score: 0

    It's a great CPU-neutral distribution format for programs. We all should be writing programs compiled with MMIX-targetted compilers run on MMIX virtual machines. Garbage collection? Bah. Who needs it? The last time I checked x86 had no native GC - and look how popular it is. (GCC 3.1 can target MMIX)

    1. Re:Why isn't MMIX virtual machine popular? by Anonymous Coward · · Score: 0

      It is much easier to map traditional instruction sets (non-GC, non-OO) to other CPUs. I think MMIX would be a great intermediary language for programs. The JVM opcode set is far too specific to Java to be used generically. The other languages targetted to the JVM are far too slow relative to their native performance on the same CPU.

  39. Old books still applicable? by essdodson · · Score: 1

    Are his older volumes still worth a read today or have things changed to a point where they're no longer applicable?

    --
    scott
    1. Re:Old books still applicable? by supersnail · · Score: 2

      As its been some twenty years since someone came up with a new sort algorithm, and, about fifteen years since someone came up with a really new key hashing algorithm, you will find that 98% of the early volumes relevent.

      Most of the irrelevent 2% involves tweeking algorithms to save memory so it might still be relevent if you are working on an embedded system.

      --
      Old COBOL programmers never die. They just code in C.
    2. Re:Old books still applicable? by Anonymous Coward · · Score: 0

      Oh yeah Actually, they are not that old. The last editions were published in 1998. I bought the boxed set from amazon.

    3. Re:Old books still applicable? by Anonymous Coward · · Score: 0

      He has prepared new editions of the books as time has gone on, incorporating more recent developments. The third edition of Volumes 1 and 2 and the second of Volume 3 are current.

  40. Strange Instruction - SRI?? by 2g3-598hX · · Score: 3, Funny

    I was poking around Knuth's site, looking at the instruction set for MMIX , when I came across this instruction (SR, SRU added for comparison):

    3C SR shift right (1) rA
    3D SRI Stanford Research Institute (2) rA
    3E SRU shift right unsigned (1)


    What's that do then?

    1. Re:Strange Instruction - SRI?? by tempmpi · · Score: 3, Interesting

      It's a joke. It is "shift right immediate". Knuth always includes some hidden jokes in his books.

      --
      Jan
    2. Re:Strange Instruction - SRI?? by maxwell+demon · · Score: 3, Funny
      Isn't it clear? It sets up an internet connection to the Stanford Research Institute, and using the MMIXIEP (MMIX Internet Execution Protocol) it sends its arguments there, and waits for transmission of the result. After the result was transmitted, the Internet connection is shut down.

      It's indeed one of the most complex instructions ever found in a CISC processor. What Stanford returns as value is a well-hidden secret. There are certainly rumors about it being related to a right shift, but probably those came up just because of the irrelevant fact that this instruction is placed in between two right shifts. Don't get confused by this. It's just coincidence. Really. And of course it's also unrelated to the instructions SLI (shift left immediate (2) rA) and SRUI (shift right unsigned immediate (2)). It's tempting to think different, but it really doesn't mean anything.

      Warning: Don't use this instruction unless you are absolutely sure the arguments don't contain security relevant or confidential data!

      --
      The Tao of math: The numbers you can count are not the real numbers.
  41. Industrial song titles by pseen · · Score: 2, Funny
    I bet Fear Factory would kill to have song titles like the names of Knuths chapters:

    decoding the octacode

    Gray binary clusters of subcubes

    medians of bit strings

    Gray fields

    constructing large-gap codes

    an infinite Gray path that fills n-dimensional space

    loopless generation of fence-poset ideals

  42. The reasons of Dr. Knuth by nkyad · · Score: 1

    Nobody uses or has ever used Knuth's assembly language to develop real software.

    But Knuth's reasons for making the student learn a simple assembler for a virtual processor are valid. As he explains in the introduction to the first book, it abstracts the language from the algorithms, allows him to include all features he needs to demonstrate the theory (and only those) and it also serves as an exercise for the future professional (I am developing software for 15 years, and I must have learned more than 20 different languages and used at least 10 in production enviroments).

    I would advise you to buy these fundamental books and study them. You will see that the language is very simple and more than worth the trouble (because Knuth's books are still the best available source of basic information on many of his topics).

  43. Re:A series of books like this for higher lvl codi by HiThere · · Score: 3, Interesting

    Knuth is entitled to his opinion. It is certainly true that compilers tend to hide the details of the execution. And translating the prior volumes would be a lot of work, so for stylistic consistency it makes sense to continue to use MIX.

    That said, I feel it's a mistake. I have seen a large subset of C that was implementable via macros as a M68000 assembler language program. This would be a vehicle that would possess all of the virtues of MIX, while being readily understandable by most skilled programers. (They might not be able to compose in it without study, but they could understand algorithms written in it with reasonable ease.) In addition, the timings would be experimentally verifiable (if you could lay your hands on an old Mac ... either the Mac 128 or the Fat Mac [512K]). I forget whether the code was presented in Byte or Dr Dobbs. Byte I think. I'm sure it could have been done better, but it wouldn't need to be done better to provide experimental backing to the theoretical arguments. (I suppose that in a sense the MIX virtual machines also provide this, but I don't consider them any better in principle that any other interpreter, and less good than a compiler.)
    N.B.: If you don't insist on an actual hardware version of the machine, such as would be provided by the 68000, then I still don't see any advantage of MIX over a selected subset of C.

    Additionally: MIX doesn't have much similarity to a recent-generation CPU chip. There are a multitude of reasons that Assembler has fallen out of fashion. Lack of portability was one of the major ones. But an even better reason has been the increasing complexity of the chips themselves. Hand-optimizing has become increasingly counter-productive for most people. (It's also become generally less necessary, but that's a separate argument.)

    As always, however, there will be exceptions. There exist specialists who need this kind of skil, CPU version dependant though it be. Somebody needs to design the chips. Somebody needs to desigh the compiler optimization strategies. But even for these people, MIX will be a suboptimal choice.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  44. This guy ... by Anonymous Coward · · Score: 1, Funny
    Donald Knuth???

    Isn't this the guy who invented the expression

    All Your Base Are Belong to Us
  45. oh crap by Anonymous Coward · · Score: 0
    &^$$#$^@# KDE cut and paste....

    What I meant to say is, "Doesnt' this belong in the Lucas/Crack thread?" but, of course, the timing is all off now. Yes, I am "Bingo Foo," Posting anonymously here just to save 1 Karma for this screwup.

  46. Re:A series of books like this for higher lvl codi by fishbowl · · Score: 2

    >Moorish artisans used to purposedly introduce a
    >mistake in their tile designs, as it would be
    >presumptous for a mere mortal to attempt
    >perfection.

    I've heard that about Navajo rugs too, but have never been able to verify it.

    --
    -fb Everything not expressly forbidden is now mandatory.
  47. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 0

    Knuth has since changed his mind about MIX, and moved to a much more suitable language, MMIX, which is based on a Reduced Instruction Set.

  48. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 0

    The assembly language is not a big deal. True, it may be a bit more difficult to read than a high level language in fashion or pseudo code, but once you learned the basics of MIX (which anyone who calls [him|her]self a programmer should be able to do without much difficulty), it is not much different. Actually, I like seeing the algorithms implemented in an assembly language rather than written as pseudo code. It often amazes me that a seemingly complex algorithm can be implemented in such short assembly! If MIX is really not your type of thing, then it should be mentioned that each algorithm also has an English version before the MIX implementation.

  49. Privacy violation? by AndrewHowe · · Score: 2

    So who else noticed that all MMIX processors have a built in serial number?
    Yes, I know they are hypothetical...

    1. Re:Privacy violation? by silentmusic · · Score: 1

      One thing that I can never figure out, is given the violent reaction to unique CPU IDs why nobody ever complains about the unique hostid built into every Sun box.

      A lot of high-end EDA software depends upon the hostid to handle license management. I'm not sure how FlexLM works on x86 Linux boxes, but if it depends on the MAC address as a unique identifier then it's got a very weak link in its chain...
      ---

      --

      Things are not as they appear, nor are they otherwise.

    2. Re:Privacy violation? by 1729 · · Score: 1
      One thing that I can never figure out, is given the violent reaction to unique CPU IDs why nobody ever complains about the unique hostid built into every Sun box.

      A lot of high-end EDA software depends upon the hostid to handle license management. I'm not sure how FlexLM works on x86 Linux boxes, but if it depends on the MAC address as a unique identifier then it's got a very weak link in its chain...

      Well, for what it's worth, the hostid on Suns is easy to spoof (at least as of 2.6; I dunno if the newer ones have changed it.) The hostid is stored as a string somewhere in the kernel memory space, and most apps (including the versions of flexlm I've used) use this value, rather than making a call to the hardware. There is software on the web that allows one to modify the stored hostid. I think that the PROM that holds the hostid can be rewritten as well, but I haven't tried this.

  50. Re:A series of books like this for higher lvl codi by a_n_d_e_r_s · · Score: 2

    None of the languages you mention was available at the time when he started writing the books.

    And most of the languages you mention will not be modern at the time when the last books comes out.

    Most of the languages you mention hides so much of the underlying hardware that it is hard to see how changes in the software can be influences by the hardware.

    On the other hand there is none stopping you from rewriteing the examples in Java if you feel up too it.

    C is already an language on its way out, Python seams destined to forever be a minor language and if MS manage to kill Java - in 10 years time the book will be just another antique.

    By using a made-up language the books will never become old and out-fashioned.

    If you want to write a clsssic you can't fathom towards todays fashion but most go your own way.

    --
    Just saying it like it are.
  51. Re:A series of books like this for higher lvl codi by Reality+Master+101 · · Score: 5, Funny

    A friend of mine suggested printing post-it notes with Java code to paste over MIX code in the tAoCP.

    Suggesting that Knuth should implement his algorithms in Java is the strongest argument for MIX I've ever heard.

    --
    Sometimes it's best to just let stupid people be stupid.
  52. It doubles by yerricde · · Score: 2

    What about inflation Prof. Knuth!?

    Knuth routinely doubles the bounty for finding an error in his TAoCP books or in his TeX program. This bounty doubles each time an error is found and corrected.

    --
    Will I retire or break 10K?
    1. Re:It doubles by Anonymous Coward · · Score: 0

      A guy who works down the hall from me recently got a check for $2.56 from Knuth (after almost of year of arguing by email!) for finding an error in TAoCP, and I doubt that's the first bug found, so I doubt that this is true for TAoCP.

      True to form, he didn't cash the check.

  53. Why automate typesetting by yerricde · · Score: 1

    Why spend 10 days doing something when you can spend 10 years automating it?

    Explanation for those who do not understand software engineering: As soon as you've automated the 366th book, you've saved money.

    --
    Will I retire or break 10K?
  54. PowerArchiver by Anonymous Coward · · Score: 0

    Will ungzip a file.

    then you need to install GhostScript for windows to read the PS file, or just print it to a PS printer.

  55. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 0

    Weird... To me it seems rather presumptuous to think that a mere mortal could achieve perfection, if only they didn't make those intentional minor imperfections.

  56. Does anyone besides me... by Eagle7 · · Score: 2

    ...get really turned off by Knuth's over-inflated ego? I don't doubt that the guy is smart, but I can't stand even reading his FAQ, let alone trying to make it through tAoCS. I don't buy into all his bullshit about batch processing, etc... I think he's just a smart guy who's full of himself and likes to be eccentric. And has a lot of people eating out of his hand.

    As evidence of this, I point to Dick Feynman, who was incredibly smart, amassed a decent body of work, both in terms of theories created and teaching books/lessons written, but at the same time took time out to play in a native Brazillian band.

    I might be a computer scientist, but I look up to Dick Feynman, and I shake my head at Donald Knuth.

    --
    _sig_ is away
    1. Re:Does anyone besides me... by feldkamp · · Score: 1

      Um, if Knuth weren't cited in like EVERY algorithms book EVER, then you might have a point. However, I think he's quite modest, given that he has influenced so many brilliant people.

      And TAOCS is hardly arrogant ... and Knuth is hardly "eccentric". Nerdy, yes, but not eccentric. He lives quite a normal teacher's life, besides doing stuff like celebrating his binary birthdays (like his recent 1000000th) by getting together with other CS gurus (Sedgewick, etc).

    2. Re:Does anyone besides me... by silentmusic · · Score: 3, Interesting

      I think that you just don't like his style.

      I'm not sure what your point is about Feynman taking time out to play in a band - Knuth takes time out to play the organ if that makes a difference to you.

      Given the contents of his books, don't you think that Knuth expresses a significant amount of respect for his readers? Name another author who gives cash rewards for reporting problems with books, or even for offering suggestions for improvements. You might think that this is ego driven since the majority of the checks aren't cashed, but this is a choice made by his audience and not by Knuth himself.

      ---

      --

      Things are not as they appear, nor are they otherwise.

    3. Re:Does anyone besides me... by Anonymous Coward · · Score: 0

      The reason why Knuth is quoted in every algo book is that if you don't quote him, people will assume that you don't know what you're talking about. How many people actually read, understand and like his stuff? Not very many. How many people learn math from the Bourbaki textbooks? not too many either. Because they have the same flaw: they were written to formalize a field, prove a point, and on occasion let their authors show off. They are the driest, most obscure way of presenting a subject. I doubt people understand what they read in these books. They can quote from them all they want, everybody knows they're full of sh!t.

  57. you don't program machines anymore by kin_korn_karn · · Score: 2

    I can appreciate the common-denominator factor for the MIX language, but nobody programs computers anymore - they program the OPERATING SYSTEM of those computers. The people who write the O/S are the ones actually programming the machine, and once that's done, the application developers (i.e. the majority) just use the services they provide. The last time I heard of anyone programming the machine rather than the OS was in DOS games.

    1. Re:you don't program machines anymore by Anonymous Coward · · Score: 0

      You don't know anyone who codes for small embedded devices then? Go hang out with the likes of arizona microchip dudes.

    2. Re:you don't program machines anymore by BomberMonkey · · Score: 2, Informative

      Oops, that's wrong. The lovely high level code you write still becomes machine language. Even with Java. If a program does real work, there's real machine code. Even if it doesnt, there's still calls, which are still opcodes.

    3. Re:you don't program machines anymore by InfiniteWisdom · · Score: 0

      You just don't get it... Its not really a book for people who want to draw pretty pictures on the screen or write that soooo-cool registry tweaker. The book would perhaps be more accurately named "The Art of Computer Science"

    4. Re:you don't program machines anymore by big_hairy_mama · · Score: 2

      Even if you program Java, then why not learn Java bytecode assembly?

      Assembly will always be valid. And even if you don't like MIX, then just ignore MIX. Knuth's books are filled with pseudocode, flowcharts, mathematical descriptions, and English descriptions of the algorithms. If you can't understand at least one of those views, then you don't deserve to be a programmer!

    5. Re:you don't program machines anymore by kin_korn_karn · · Score: 2
      Oops, that's wrong. The lovely high level code you write still becomes machine language. Even with Java. If a program does real work, there's real machine code. Even if it doesnt, there's still calls, which are still opcodes
      You karma-whoring moron. Let me spell it out in terms that you can't fucking twist into something that gets you modded up:

      Bob needs to write a Windows app, to, let's say, perform a certain mathematical function on a number when he types it in the box and presses the button. Bob must use Visual C++ for this. Bob then uses VC++ to write the program and design the forms. He puts a textbox on the form, and a button, and ties the click event of the button to a method that performs the math on the text property of the textbox. It then copies the result into a label component. The program has an event loop, managed by the OS interface, and an X button.

      My point is that Bob does not care, nor does he NEED to care, what the opcodes are that did this. He wrote the program to make the button, textbox, and Windows do something. This is where 90% of the programming is done these days.

      Even on Unix, most apps are nothing but firing off library calls to things you didn't write. You're at the mercy of the library implementors.

      There are always exceptions, such as super-low-level simulation code, and other things that must run as fast as possible. THAT IS NOT WHAT I'M TALKING ABOUT.

      Is that clear or is that too high-level for you, o mighty god of the shift right?

  58. Re:Marvin Minsky? by CyberDruid · · Score: 2

    I certainly know who he is (he wrote the intresting "society of mind"), but I always figured him more of a philosophical AI-guy than a heavy-theory-guy. I've taken a lot of courses in AI and game theory, and he is never mentioned along with the greats... What field has he contributed to?

    --

    Opinions stated are mine and do not reflect those of the Illuminati

  59. TeX SuX by Anonymous Coward · · Score: 0

    TeX SuX bigtime!!!!

    It's shit, crap, whatever you want to call it.

    It is NOT a sane language/system.

    Fuck Knuth / TeX / whatever comes from Knuth!

    There are a LOT of other texts on algorithms available.

    1. Re:TeX SuX by cduffy · · Score: 3, Insightful

      If you'd been around when TeX came out, you wouldn't be saying that. If you were serious about preparing math-heavy documents, you wouldn't be saying that.

      What do you consider a good system now -- docbook? If so, remember that your docbook renderer uses TeX as its backend. If you consider (say) Word a good document preparation system, you have no room to speak on the subject.

      TeX is an amazingly reliable, high-quality piece of software -- I doubt that anything on its scale has ever been created with as few bugs. Yes, the input syntax is a bit dated -- but in its day, it kicked ass. No doubt if Knuth were doing it today, it'd kick ass by modern standards as well.

    2. Re:TeX SuX by jaoswald · · Score: 3, Interesting

      Yes, TeX was quite an achievement. Stable, wonderfully un-buggy, most definitely. Unfortunately, it was good enough to catch on and establish itself before its flaws could be fixed.

      My particular take:

      1) The Computer Modern fonts are not very pretty unless you have a very high resolution typesetter; even then, the letters look too thin and spidery for my taste. Sure, you can use other fonts. But most users never do, or use even uglier ones, usually sticking with Computer Modern for the formulas. Do any other really complete and compatible math fonts even exist?

      2) The programming features were hacked on as an afterthought. The syntax is fine, perhaps even near optimal, for straight mark-up, but for developing actual algorithms, it makes Perl code look self-explanatory. Right up there with Intercal. This means that packages like LaTeX or formats are very hard to modify or extend in any kind of robust way. So everyone uses the default format, borrows one that works from somebody else, or works very hard to roll their own. Making even slight adjustments or fixes is a real nightmare.

      3) The whole TeX program is terribly monolithic. Sure, the text description and commentary talks about various stages of TeX, but the code says otherwise. Knuth's optimization of the "inner loop" means there is no intermediate description of the TeX syntax.

      The program itself was written in very low-level Pascal. The data structures are defined in terms of byte layouts, with explicit memory management. All sorts of tricky details insinuate through the code. Sure, it runs great even on 1980-era machines, but God help you if you want to re-implement it in a modern high-level language. As far as I know, this has only been done using web2c, which is a hack specially made to translate TeX. What's going to happen when C compilers are as rare as Pascal compilers are today?

      4) Likewise for the file formats. Laid out with great care, byte-for-byte. Easy to read, but tough to translate into something higher-level.

      My part-time project/dream is a modern re-implementation, where the TeX typesetting algorithms are embedded in a modern (Common Lisp) environment--so you can code TeX formats and macros in a heavy-duty honest-to-god programming language, and have an high-level, truly modular implementation using real data structures that could actually be tweaked and modified to do even funkier typesetting tasks.

      Part of me says this will be easy, because something like 60% of TeX: The Program is doing stuff like memory management that Lisp will do for free, and accounting for funky character encodings (EBCDIC and 6-bit Pascal character sets) that probably can be ignored now that almost everyone is now in ASCII, or headed toward Unicode. The other part of me says this will be difficult for exactly the same reason.

    3. Re:TeX SuX by Anonymous Coward · · Score: 0

      1) This is a matter of taste.
      2) I do not think that you have any real experience with TeX. TeX is a lisp like programming language that supports graphics.
      3) I am not sure that I understand what you are getting at. Are you saying that TeX has no grammer?
      4) If you are saying that dvi is tough to translate, I guess that you are partialy right since the fonts are not part of the file. If you are saying that it is hard to translate a plain TeX document into something else, you are wrong; it is easy to translate plain TeX into other formats so long as the writer did not get too fancy (in which case you would have to rewrite TeX, but this is the same for all file translations from powerful systems).

    4. Re:TeX SuX by reneky · · Score: 1
      My part-time project/dream is a modern re-implementation, where the TeX typesetting algorithms are embedded in a modern (Common Lisp) environment--so you can code TeX formats and macros in a heavy-duty honest-to-god programming language, and have an high-level, truly modular implementation using real data structures that could actually be tweaked and modified to do even funkier typesetting tasks.
      That's also the project/dream of Karel Skoupy, who has singlehandedly reimplemented TeX in Java:

      http://www.cs.inf.ethz.ch/~skoupy/
      http://www.ntg.nl/eurotex/skoupy.pdf

    5. Re:TeX SuX by jaoswald · · Score: 2

      1) you are absolutely right. But TeX's font support has only lately become convenient enough for most users, and relatively few fonts with TeX-compatible font metrics have become widespread.

      2) TeX is hardly Lisp-like. It's more like a macro assembler language. Its internal variables are a fixed number of registers, arranged in several banks, each of one "type," some of which have special behavior; its named variables are really only replacement strings (control sequences) or aliases to built-in registers; and its control structures are heinous.

      For a truly Lisp-like language, I would want variables to be unlimited, support modern data structures, true parameter passing to user subroutines, for the state of the TeX process to support full introspection, be completely customizable (e.g. be able to write new paragraph and spacing routines as part of TeX modules), and for new control and data structures to be defineable.

      3) What I mean is that there is no easily accessible representation for "parsed" TeX input. The processing into the internal representation is driven by a few different "modes" of the TeX engine (e.g. vertical mode, horizontal mode, math mode) which consume tokens and produce internal data structures. I would like for users to be able to redefine or add additional modes in add-on modules, rather than having to recode TeX's internals directly.

      How do you change TeX's pagination or paragraph-building? Right now it is a total hack job. You have to generate the right tokens to create the right amount of glue and space to have the built-in routines do what you want, tweaking several internal variables along the way.

      Here's an example of what I had a desire to do: I was trying to typeset a table where some of the table cells would have multiple text lines. I.e. if the text was long, instead of insisting on a super-wide column, I wanted TeX to break the text into several lines, making the table cell span a larger number of text lines. Then, the other columns with short text will float to the center of this "expanded row."

      I don't think you can do that easily. I ended up doing the breaks by hand. Why is that necessary? Why can't I code a table where the vertical direction is as flexible as the horizontal direction, and call the line-breaking algorithm on individual cells? Ideally, I'd like to be able to *easily* code any kind of table-generating macros I want.

      4) what I mean is that there is no built-in data structure representing a DVI file. The reason is that TeX was made to run without using much core memory, so only a page or so of output is held in internal form before being squeezed out of the toothpaste tube into the DVI bucket. Once it is out of the tube, the DVI toothpaste can't be sucked up again. I would like more flexibility in processing the final DVI results, without having to write a different dvi2blah driver that has to support everything that dvi2pdf or dvips already supports.

      What I want in general is a system where the entire input-tokens to output-DVI is accessible to user programs written in a high-level language, using real high-level data structures, and where the TeX control sequences can be defined in the *same* language (so that I could code a LaTeX-type package in a programmer-friendly language like Lisp, if I wanted.) I basically want the whole Common Lisp language available to do my typesetting, while maintaining the excellent aspects of TeX, including the usually-convenient mark-up syntax.

      Sorry if this is not quite clear, but it is, after all, just a vague dream-like urge. Programming in Common Lisp, for me, is pretty much painless. Programming TeX/LaTeX macros is like doing my own dental work. I get the same feeling that I get when I use a 1980's-era line editor (ED) vs. using Emacs. I want TeX to be a 21st century environment, instead of a 1980's environment.

    6. Re:TeX SuX by red_crayon · · Score: 2

      Sorry, but it's obvious you don't know much about TeX.

      Do any other really complete and compatible math fonts even exist?

      Yes. MathTime and Lucida Math, to name the two most complete sets. A consortium of publishers has a third set in the works. And there are numerous math implementaions that exist but don't pass muster as "complete".

      Making even slight adjustments or fixes is a real nightmare

      Do you know about, e.g., ConTeXt?

      As far as I know, this has only been done using web2c

      Wrong again. Google Kasper Peeters for a complete recode of TeX in C or C++. And NTS, a Java TeX.

      Laid out with great care, byte-for-byte.

      Whatever, dude.

      --
      "Never bullshit a bullshitter" All That Jazz
    7. Re:TeX SuX by jaoswald · · Score: 2

      Yeah, this seems to have attacked the modularity issue for TeX's internal structure.

      Still, it looks like the TeX language and the implementation language (Java) are separate.

      I would like a system where there are two syntaxes for the same language. One is the mark-up syntax, which would be the default syntax for writing your documents. Hopefully, compatible with or easily translated from existing TeX documents. This syntax is optimized for writing documents.

      The other syntax would be oriented toward re-programming TeX. This would be optimized for describing custom layout algorithms or other processing of user input. Personally, I would want it to look like Lisp.

      For simple substitution-type macros, you could use either syntax, like in TeX today with simple

      \def\TeX{T\kern-.2em\lower.5ex\hbox{E}\kern-.06e m X}

      when things are simple, or a more program-like form

      (define-control-sequence TeX ()
      #\T
      (kern (lower #\E (* 0.5 ex)) (* -0.2 em))
      (kern #\X (* -0.6 em)))

      Then use (TeX) (or \TeX in the markup syntax) to typeset this definition. Sure, this looks more complicated--ideally, you would be able to do

      (define-control-sequence TeX ()
      "T\kern-.2em\lower.5ex\hbox{E}\kern-.06em X")

      as well. But with the Lisp-like syntax, I know that I can use all the powerful Lisp macro and programming capabilities to do typesetting. (E.g. trig functions for typesetting at angles, TeX control sequences that take Lisp data structures as arguments) Wow!

      When you look at TeX's definition for \settabs with all its \sett@b and \s@tt@b special names, or LaTeX definitions, I think being able to do things in Lisp would be a real win. And, if it really is Lisp, it won't be hard to write translators that slurp up currently existing formats (like LaTeX) and spew out the new Lispified version automatically, so I don't lose any of today's formatting abilities.

    8. Re:TeX SuX by jaoswald · · Score: 2

      I think you are missing my point. I've just now taken a look at the ConTeXt information, and I am quite impressed at the results. But it seems to me that ConTeXt is more analogous to LaTeX+pdfTeX than raw TeX.

      My concerns are more with the internals of TeX; namely, how can it be made easier for people to develop things like LaTeX or pdfTeX in a way that can be easily customized.

      Like many people, my experience in TeX was writing my thesis in LaTeX. But when I wanted to adjust the format that I borrowed from a friend, either to cope with changed thesis format requirements, or to typeset a certain kind of program documentation, I found the process of understanding and modifying LaTeX macros to require true wizardry, without the rewards that wizardry brings in modern, powerful programming languages.

      OK, so TeX has been recoded by a few people in a few languages. But from what I've seen, these people haven't really attacked the complexity and inflexibility of things like LaTeX's implementation macros. I.e., they maintain the same distinction between TeX internals and the TeX language.

      Why is it that some people have to write packages like LaTeX, other people have to write enhanced versions of the TeX processor, and yet other people have to write DVI drivers, each using different languages? I find that the modularity of TeX is too coarse---format files, TeX processor, DVI processor, none of which really communicate with each other, or can be programmed together.

      I think the possibility of doing typesetting in a programmatic way (like TeX) is very powerful, especially when coupled with aesthetically good algorithms (like TeX). But I want to have an implementation where the *programmability* is given higher priority, and the programmer is given access to the entire typesetting flow in a modern way.

      My point about the DVI file formats is that it is really a machine language for a generic typesetter. It has lost much of the sense of the document. Sure, by liberal use of specials, you can include intelligence in your documents, but that requires you to have a new implementation of the TeX processor, and a new DVI processor, possibly integrated into the TeX processor. What if you could produce the same effect simply by changing or defining a new format file?

  60. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 0

    >Then my father, who programmed on the IBM 650 (like Knuth) would be able to pick the books up easily.

    But nowaydays, with his bad back and all, he can hardly pick up anything.

  61. Right on! by A+nonymous+Coward · · Score: 4, Insightful

    Too too many programmers think a line of code is a line of code. They think strcat is just hunky-dory, and append great gobs of strings this way, without realizing that each append traverses the entire string from the beginning each time. They use malloc and free, new and delete, with abandon, not realizing how much they are thrashing the malloc heap, when local variables on the stack would do just as well 99% of the time.

    They DO NOT UNDERSTAND the concept of finite resources, that machine cycles cost time.

    I believe the first programming course should be a very few weeks of something akin to LOGO, or BASIC, just to get the concept of bugs and such out of the way, weed out those who can't stand thinking. Then a good grounding in a z80 or some other simple 8 bitter, where counting cycles and bytes is part of the course (learn how expensive those cute index registers really are). Only then, when an understanding of machine cycles and bytes has been established, should students move on to a higher level.

    Too many ivory towers out there, too many straight-A-can't-tie-their-shoelaces types.

    1. Re:Right on! by Anonymous Coward · · Score: 0

      Amen.

      I'm surprised no slashdotters have bitten your head off for implying that a programmer should understand (basically) what's going on under the hood.

  62. You've just reinforced his argument by A+nonymous+Coward · · Score: 2

    C# didn't exist when he started volume 4. Java didn't exist when he started 1-3. Are you suggesting that he should rewrite each volume every time a new language becomes fashionable?

    The point of a bare bones old language is that it favors nothing. If you have to see an idea in C# or Java to understand it, then you are a piss poor programmer.

    1. Re:You've just reinforced his argument by Zeinfeld · · Score: 2
      C# didn't exist when he started volume 4. Java didn't exist when he started 1-3. Are you suggesting that he should rewrite each volume every time a new language becomes fashionable?

      If you use a high level enough language you can do that with a script.

      My point was however that if you are going to invent languages to describe algorithms it is better to invent a high level language than a low level language.

      And although Java and C# have only just been introduced, the format is readily accessible to anyone who has used CPL or one of the algol family of languages.

      If you have to see an idea in C# or Java to understand it, then you are a piss poor programmer.

      I can still code 6502 machine code (i.e. without an assembler), I could probably learn MIX, but I very much doubt I will bother. If I want to use an algorithm from Knuth's book I will give the book to an engineer and tell him to give me C# or Java classes that implement the ones I might want to use. Privilege of rank.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    2. Re:You've just reinforced his argument by Zeinfeld · · Score: 2
      C# didn't exist when he started volume 4. Java didn't exist when he started 1-3. Are you suggesting that he should rewrite each volume every time a new language becomes fashionable?

      Knuth was working on volume 4 before I started my thesis which was considerably earlier than Java.

      I did not suggest that he write the book in Java or C#, I suggested that if he is going to invent a language a high level language is more convenient than an invented assembler code. Moreover examples that provide the loop invariants, pre and post conditions can be put through automatic proof checkers which is kinda useful if you want to be sure that the algoriths are correct.

      The point of a bare bones old language is that it favors nothing. If you have to see an idea in C# or Java to understand it, then you are a piss poor programmer.

      It isn't that long ago that I used to write 6502 machine code without the need for an assembler. I probably could understand Don's examples if I wanted to but to be honest I'm not that insecure about my technical ability that I need to decode other people's obscurantism.

      At this point a compendium of algorithms does not in my view justify the title 'the art of computer programming'. There is much more to the art than knowing which algorithms to apply.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
  63. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 1, Insightful

    And there is a good reason that his opinion is worth much more than yours ;)

    All of his justifications for using MIX are valid today. He is moving to MMIX, which is a good model for modern processors (recall that when he started this, MIX was a pretty good model for existing processors).

    The main points for why MIX/MMIX are a good choice?

    -there are is no language wierdness between you and the algorithims, not even the quirks of a particual assembly set.

    -every fully competent coder must have done a bit of assembly (I guess there could be exceptions to this, but I have never met one... and I have worked with a lot of coders). This is as good a place as any to get that experience if you don't have it. Actually, it is probably better than learning a strange assembly.

    -any competent coder can translate on the fly from the MIX/MMIX algorithms to their language of choice. This would be much less true if Knuth had used a language-of-the-year.

    S.

  64. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 0

    An excellent book that discusses many algorithms: qsort, radix sort, binsearch, merge sort, etc...
    in a good amount of detail (often with fairly in-depth mathematical analysis), is _Algorithms in C++_ by Robert Sedgewick. Much of the analysis in the book is actually derived from TAOCP, I believe. Parts 1-4 deal with:

    - Fundamentals
    - Data Structures
    - Sorting
    - Searching

    Part 5 is a seperate volume and deals with graphing. ISBN 0-201-35088-2.

    Andrew

  65. Re: Get Windows Commander by Khoji · · Score: 1

    Get Windows Commander from
    http://www.ghisler.com/

    Features built-in GZ and TAR un/packers, FTP, everything that the old Norton Commander had and much more besides. Brill.

  66. Re: Poorly Read by JasonMcVeigh · · Score: 0

    I feel the same way. You know what ? I've tried to read Donald Knuth and it's over my head. I dont understand it.

  67. Re:A series of books like this for higher lvl codi by Pyromage · · Score: 2

    I was pretty turned off by the assembler too, since I don't do any assembler coding at all. I'm a C guy my self. But the thing here is that he gives the algorthms in a pseudo-code form, implementable in any language. When I look at his stuff, I read his writing, and the algorthms, but I don't even bother with the ASM. Yes, I know i'm missing a lot. But he has vastly more than enough otherwise.

  68. They will :-) by A+nonymous+Coward · · Score: 2

    Two examples really get me foaiming at the mouth on this. 1977 or so, worked on a 16K 8 bitter, datapoint 2200, similiar to 8080 or z80. One routine set the cursor position from D (x) and E (y) registers. One guy could not think below the Algol level (shows how dated this example is!). Instead of just setting D and E and calling the cursor set routine, which would write D and E to the appriopriate I/O registers, he pushed addresses of the values onto the (hardware limited) 16 level stack, then called the routine, which popped off the addresses one by one, loaded the values, wrote them to the I/O registers. On a 16K machine! Simply could not adapt to anything less than a Burroughs mainframe.

    Much more recently, worked on some code from the 1990s, where someone had written some semi-cute memory allocate / free routines. You passed a size and the address of a free routine. It allocated 8 bytes extra, storing the free routine address and size there, but returned the address + 8 to skip the semi-hidden header. The main free routine called the saved routine address if not NULL, then freed the actual memory.

    Some bozo had to compare two data structures. Instead of simply comparing various fields, he built up a string representation of each. About a dozen times for each, he determined how many extra bytes to add to the built up string, allocated that many more bytes, used strcat and sprintf to append the conversion representation, and finally used strcmp to tell if the strings differed! Then freed the two built up strings. Gaaak! Gave me the shudders every time I saw crap like that, but it was a legacy product, soon to be obsoleted.

    1. Re:They will :-) by WNight · · Score: 2

      I know what you mean. On a recent hack job I wrote a file util that indexed the directories specified (recursively) and in general use it often finds 300k+ files. I toss all these into a perl hash and then at the end, with a casual sort routine (with a custom compare) I toss them into an array.

      Yikes, 5-25MB of data, indexed and sorted with a few casual commands. (I'm allowed to do this, the performance/coding time tradeoff was well justified and I understand the inefficiency of my choices.)

      A far cry from my days of programming ASM on the Apple 2 where I could often fit what I was writing into the two-hundred or so bytes at 0x300 and without using more than a few 4k buffers for data.

      But when I pointed this out to a co-worker I didn't get the "yeah, times have changed" that I expected. He didn't even really understand how much that sort routine was costing, or the overhead of using a hash. Ugh. Children these days. (And I'm only 27!)

      I completely agree with the OP that new programmers should have to learn some ASM. Not to design an entire app in it, but just to understand how the machine sees things and why some operations are more expensive than others. Too many people are blaming the hardware for being too slow these days when writing things I've seen done quickly in 4k on a 6502. Much like that strcmp instead of integer compare thing...

  69. Knuth and the French Language by jaoswald · · Score: 2

    You have misinterpreted Knuth's comment on the French language. He does not warn nit-pickers that French has changed since he wrote his text, but rather that the French language used in his quotations has changed since the quotations were originally put in print, and therefore are not necessarily examples of modern French usage or orthography.

    As an English example, at the end of Chapter 7 of The TeXbook, he quotes

    Some bookes are to bee tasted,
    others to bee swallowed,
    and some few to bee chewed and disgested.
    --FRANCIS BACON, Essayes (1597).

    He will presumably not accept "corrections" to the spelling of "bee," "bookes," "disgested," or "Essayes," because they are spelled as Bacon did originally.

    Most English speakers freely acknowlege that spelling and usage have changed in the last 400 years. Probably most French nit-pickers are less realistic, but that is a whole other topic.

  70. Cygwin by axxackall · · Score: 1
    You need Postscript and GZip utilities.

    Install Cygwin on your winbox. You'll get a whole bunch of utilities from the real world helping you to feel yourself as not so isolated.

    --

    Less is more !
  71. Correction: by Anonymous Coward · · Score: 0

    Oops, I meant :%s/old/new/g

  72. Troll=2, Insightful=1, Funny=2, Total=5 by peterdaly · · Score: 2

    Moderation Totals: Troll=2, Insightful=1, Funny=2, Total=5.

    Not sure if I should be proud or ashamed. Obviously the moderators aren't either. Honestly, I never even considered it would be modded as funny.

    Watching the moderations of this post has been an interesting lesson in Slashdot psycology.

    -Pete

    1. Re:Troll=2, Insightful=1, Funny=2, Total=5 by Anonymous Coward · · Score: 0

      Hmm...no, it's just that you're so fucking stupid, they don't know whether you're trying to be trollish or funny.

    2. Re:Troll=2, Insightful=1, Funny=2, Total=5 by RollingThunder · · Score: 1

      I had the same thing happen last month, with an interesting addition - I did get zinged with one "Troll", which later vanished. Presumably, the guy that modded me troll is one of the other posters in the thread.

      As you say, watching the moderations accrue is fascinating.

    3. Re:Troll=2, Insightful=1, Funny=2, Total=5 by peterdaly · · Score: 2

      Ahh, that explains why I swear I saw the post at +5, but looking back it could have only ever reached a 4.

      -Pete

  73. Knuth's Power by LetterJ · · Score: 2

    I just had Netscape 7 and Win2K crash after searching Amazon.com for the 3 volume set of TAOCP. Did my profane OS fall over after merely viewing the holy book's entry in an online store?

  74. Re: he does this in mathematics too by mathgenius · · Score: 1

    The Don likes "lowlevel" notation.
    Have a look at some of his math papers;
    they use , ummm, let's say, the nuts and bolts
    of math (set theory). This is his style.

  75. That's the big problem with .ps.gz by SteelX · · Score: 2

    paradesign, thanks for pointing out something that has been irritating me for years.

    In my opinion, every single person who posts anything on the web should never post something online in *.ps.gz format ever, ever again! *.ps.gz format used to be fine a long time ago, when researchers and academics exchange papers using UNIX boxes. *.ps.gz is terribly Windows unfriendly. More than that, it's Web-unfriendly. Nothing is a bigger turn off than encountering a interesting document/paper in the archaic .ps or .ps.gz format.

    Even if somebody posts a Postscript file or gzipped Postscript file online, they could at the very least put up a PDF version too. If they can produce a Postscript file and gzip it, they definitely have the technical ability to produce a PDF file from Ghostscript's ps2pdf or Acrobat.

    Now before you think I'm a Windows-only person, who have no clue about using Winzip or installing Ghostscript, let me assure you that I'm not. I use Linux all the time.. but I still prefer my files in PDF. There are a few occassions when I use Windows, such as when I'm at a friend's place or the like. And when I encounter a .ps.gz file, it's a big hassle to install Ghostview and Ghostscript and all that. If it was provided in PDF in the first place, all this unnecessary hassle could have been avoided from the very start.

    Of course, the typical geek excuse (or advice depending on how you see it) would be to say "you can always install Winzip, Ghostscript and Ghostview, or some Postscript viewer browser plugin." Please. Users would want their files opened right away. No hassles, no messing around with weird programs, and no installing megabytes worth of stuff just to view a single file.

    And even if PDF files are provided, there are many occassions when the PDF files have jagged fonts which don't display well on Acrobat Reader.. especially if they've been produced by LaTeX. There are ways to solve that, but that's a different story.

    So paradesign, thanks once again for bringing this up.

    Moderators, remember that moderation is not a measure of how much you agree with somebody's post.

    1. Re:That's the big problem with .ps.gz by RackinFrackin · · Score: 1

      In my opinion, every single person who posts anything on the web should never post something online in *.ps.gz format ever, ever again! * ...
      Nothing is a bigger turn off than encountering a interesting document/paper in the archaic .ps or .ps.gz format.


      I think that the question of what is the most appropriate file format depends largely on the intended audience for the document. If a document is intended for a wide audience of non-technical users, then text, html or pdf would likely be the best choices. But Knuth's drafts aren't aimed primarily to a general audience.

      In the preface to his pre-releases, Knuth says "This booklet contains draft material that I'm circulating to experts in the field, in hopes that they can help remove its most egregarious errors before too many other people see it." So the target audience is the set of theoretical computer scientists and mathematicians - both of which use .ps files as the standard for exchanging documents.

    2. Re:That's the big problem with .ps.gz by Anonymous Coward · · Score: 0

      Well maybe windows users now know what it is like when I find notes from a speach in power point format. At any rate, who the fuck are you to question a format that is open and has free tools; more people should post gziped postscript.

  76. Re:Marvin Minsky? by Anonymous Coward · · Score: 0

    Are you joking? What field has he contributed to? Maybe you took your AI and game theory courses, in preschool? Minsky _founded_ the field of A.I., end of story. While Turing played a big part, Minsky was definitly the man responsible for taking it to the next (and what we recognize today) level.

  77. Re:A series of books like this for higher lvl codi by WNight · · Score: 2

    Sedgewick's book is good, that I haven't actually read the C++ version.

    But it's the "Algorithms for Busy Programmers" version that is more geared towards showing you a few choices of algorithms to use to solve your particular problem, instead of showing you algorithms and formal proofs like tAoCP does.

    So I'd keep Sedgewick's book on my desk, but when I found something I wanted to really understand, I'd read more about it in Knuth's book.

  78. Re:A series of books like this for higher lvl codi by Anonymous Coward · · Score: 0

    Can you say -

    still stuck in the 70s lameness that
    'real programmers use assembly'

    Maybe Knuth and that guy who believes that all things are written best in Forth should go on a two man tag-team tour.

    Another 1970s Unix lamer.

  79. Re:A series of books like this for higher lvl codi by bishnu · · Score: 1
    Well, it seems a pointless debate to me.

    Why do you need to see source code to understand algorithms? If you do, Knuth's books are probably a bit too high lever for you.

    Most algorithm texts I see these days have pseudocode, at most.

  80. Generating all permutations by Michael+Woodhams · · Score: 2

    with fewer* than one byte per year of Knuth's life:

    perl -e '@a=1..pop;sub a{@a?map@a=(a(@_,pop@a),@a),@a:print"@_\n";pop}a' 4

    * I'm just counting the perl code, not the 'perl -e' and quotes for the shell.

    --
    Quattuor res in hoc mundo sanctae sunt: libri, liberi, libertas et liberalitas.
  81. Donal WHO...? And I went to Stanford... by Anonymous Coward · · Score: 0

    I went to Stanford as an Undergraduate...

    And I have to admit, even though I took over half-a-dozen core courses in Computer Science at Stanford, I never ONCE heard the name Donald Knuth, I never SAW the guy in person (or even an updated photograph until I looked on his website many years after I graduated), and I have never read his books. His books were never part of the curriculum.

    But that's Stanford: Pay a bunch of professors a lot of money to do very little teaching. In fact, professors generally have to teach only one-quarter (10 weeks total) of classes a year, and that's not even a full ten week period, because the lectures last all of 3 hours TOTAL in the week, and usually a couple of office hours placed at the most inconvenient times. I even had professors who skipped out on their office hours. Most professors don't even grade papers. (This is like writing code without a computer in front of you, and never bothering to run the program on ANY computer. How do you know if your program works? How do the professors know if their teaching is any good?) How many of Stanford's Nobel Prize winning faculty attended Stanford as an undergraduate? I don't think a single one.

    Most of the techie-Teaching Assistants didn't go to Stanford either. I had guys from Purdue, UCLA, Darmouth, Amherst, U. of Maryland, U. of Texas, and of course, the ubiquitous UC Berkeley. Several profs got their undergrad degrees from Berkeley.

    The professors always view themselves as RESEARCHERS first, and teachers a distant third or fourth.

    "Sophomore Slump" occurs after the euphoria of Frosh year. You enter as a sophomore and realize "the honeymoon is over", ie that your professors aren't necessarily gifted in communicating their knowledge (one time literally a guy "taught" numerical anlaysis on computers by reading from a textbook!), and that the classes are bloated with too many students (I never had less than 50 in a class, so forget the 7:1 student teacher ratio published in US News and World Report's annual college survey). Gerhard Casper -- being a great guy who experienced similar problems during his undergraduate years in Germany -- tried to rectify the problem by creating Sophomore Seminars, to encourage faculty-student interaction and small class sizes. But the number of open slots for students is extremely limited, and most professors don't participate. Thus the vast majority of undergraduates miss out with one-on-one faculty contact, even though 100% of the student body pays the full $30,000/year tuition.

    And don't get me started on the undergraduate "advising system", which is a joke! 78% of the faculty do NOT participate in advising undergrads, and the ones that do are unfortunately...well, let's just say that most of them never attended Stanford as an undergraduate...

    Just for the record:

    Donald Knuth did not attend Stanford for his undergraduate degree; he went to Case Intitute of Technology (Case Western Reserve).

    The founders of Sun Microsystems did not attend Stanford for their undergraduate degrees. Vinod Khosla went to the Indian Institute of Technology and picked up his masters at Carnegie Mellon, Bill Joy went to U. of Michigan and picked up the PhD at UC Berkeley (in addition to inventing the sockets protocal for the Berkely System Distribution of UNIX), Andy Bechtolsheim got his undegraduate training in Germany and got an MS from Carnegie-Mellon, and Scott McNealy went to Harvard.

    The founders of Silicon Graphics did not attend Stanford for their undergraduate degree. Jim Clark attended a college in New Orleans, Louisiana, and picked up his PhD from the University of Utah. Marc Hannah went to U. of Illionois at Urbana Champaign. Charles Rhodes picked up his BS, MS, and PhD's from Purdue University. Kurt Akeley got his undergraduate degree from U. of Delaware.

    The founders of Cisco System did not attend Stanford for their undergraduate degree. Len Bosack got his BSEE from U. of Pennsylvania. Sandra Lerner got her BA in Political Science from California State in Chico.

    The founder of MIPS, John Hennessey, did not attend Stanford for his undergraduate degree. His alma mater is Villanova University. He got his graduate degrees at State University of New York, Stonybrook.

    The founders of Google did not attend Stanford for their undergraduate degrees. Larry Page went to U. of Michigan. Sergey Brin's alma mater is U. of Maryland.

    The founder of defunct VA-Linux and the fully functional Sourceforge did not attend Stanford for his undergraduate degree. He went to U. of Notre Dame.

    The founders of Apple Computer did not attend Stanford for their undergraduate degrees. Steve Jobs attended (and dropped out of) Reed College. Steve Wozniak received his BSEE from U. of California, Berkeley.

    The inventor of the mouse, Doug Englebart, did not attend Stanford for his undergraduate degree. Englebart picked up a degree in electrical engineering from Oregon State, and a Bachelor of Engineering and PhD from U. of California, Berkely.

    The co-inventor of the transistor, William Shockley, did not attend Stanford for his undergraduate degree. His alma mater is CalTech, and he got his PhD from MIT. But he grew up in Palo Alto, California (the town that surrounds Stanford University), and moved back to found one of the first transistor companies that would spawn off into the half-a-dozen companies that put the "silicon" in "Silicon Valley". (The founders of Intel didn't attend Stanford either.)

    The founders of Microsoft did not attend Stanford for their undergraduate degrees. Bill Gates dropped out of Harvard. Paul Allen graduated from the University of Washington in Seattle. The reason I bring this up is that the two nevertheless have their names on two buildings on the Stanford campus. I wonder why Stanford needed to solicit their funds? Don't they have scores of successful alumni who could have donated the money? It's a rhetorical question, of course. Many of the buildings on campus were funded by non-alumni, including the massive Green Library and Green Earth Sciences building, Stern Hall, Gerold Cantor's art museum (which was renamed from the Leland Stanford Jr. Memorial), and others. Non alumnus and Silicon Graphics/Netscape founder Jim Clark recently caused a furor when he decided to stop funding the building of the Clark Biological Sciences building.

    Finally, you've no doubt read in "Burn Rate" that Yahoo! was started by a couple of undergrads in their dorm room. Unfortunately, that's not true. The majority shareholder, David Filo, attended Tulane University as an undergraduate. He met up with another GRADUATE student Jerry Yang (who DID attend Stanford as an undergrad) at Stanford in Kyoto, Japan -- suprising to me, because I always thought the world wide Stanford centers were reserved for undergraduates.( But with over 900 electrical engineering GRADUATE students enrolled, versus maybe about 80 electrical engineering undergrads, it's clear that that the graduate students have the upper hand.)

    I could go on and on...

    Anybody who tells you otherwise is full of it. Especially US News and World Report. I realize that nobody can influence US News and World Report, so it's best to educate the future college students with the facts. I've been there, and done that. Don't go to Stanford for your undergraduate degree, but DO go there for your graduate degree. And based on the biographies above, it's definitely OK to go to a state university. Some people feel a stigma otherwise.

    If you don't believe any of this, read the Boyer Comiision's report at

    http://naples.cc.sunysb.edu/Pres/boyer.nsf/

    and "Profscam" by Charles Sykes, who ironically has a fellowship at the Hoover Insitution, an indepedent think-tank nestled in the Hooever Tower on the Stanford campus.

    Feel free to send this info to any parent, high school counselor, or wide-eyed innocent high school student. When I was in high school, I didn't have the advantage of the Internet to research schools thoroughly. I wish I had had this information.

  82. Forget that aswhole by Anonymous Coward · · Score: 0

    screw that jerk let him do his own work

    i for one have enough stuff to do..

  83. Not just played -- built! by devphil · · Score: 2


    While I have a lot of respect for Feynman, I don't believe he ever designed and built a pipe organ in his own home. /That/ is why Knuth kicks ass: he doesn't just solve the problem at hand. He solves all -- and I mean /all/ -- of the underlying theory problems, turning the whole field upside down.

    As for the pipe organ, somewhere there's a photo of Knuth sitting at home in front of it. It's not a small instrument. :-)

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  84. Re:A series of books like this for higher lvl codi by big_hairy_mama · · Score: 2

    Most algorithm texts I see these days have pseudocode, at most.

    You remind me of a good point. Most of the people bitching about MIX are only bitching because they can't cut-and-paste the code into their favorite programs. Knuth does provide psuedocode, flowcharts, and the mathematical definitions of all the algorithms in the book! What more can you ask? The MIX code is just one more layer to ground the algorithms to real life.

    If one doesn't understand MIX, then he should look at all the other resources avaialable for understanding the algorithm! If he can't understand the mathematics, then you still have the flowcharts and pseudocode. If he can't understand that, even when combined with the lengthy English discussion/explaination that goes along with it, then he shouldn't be reading the book!

  85. You call yourself a programmer?!? by A+nonymous+Coward · · Score: 2

    Probably not. Probably even senior software engineer isn't good enough.

    If I want to use an algorithm from Knuth's book I will give the book to an engineer and tell him to give me C# or Java classes that implement the ones I might want to use. Privilege of rank.

    Seems like you don't want to LEARN, you just want to ape the procedure and never have to exercise the gray cells.

    Knuth's book are for learning IDEAS not copying code blindly.

    1. Re:You call yourself a programmer?!? by Zeinfeld · · Score: 2
      Not for many years, try Distinguished Engineer.

      Seems like you don't want to LEARN, you just want to ape the procedure and never have to exercise the gray cells.

      I get plenty of exercise in that area solving real problems without having to solve other people's invented puzzles.

      The process of engineering is knowing which details are important and which are not. I don't care about how an algorithm works unless there is a good reason to care.

      I consider the value of a book lies in both the ideas it presents and the ability of the author to communicate them. Unfortunately Knuth appears to be going for the Heidegger/Habbermass school of presentation which is in my view indefensible when you are presenting other people's ideas.

      If I want to spend time on something that is a badly written presentation of interesting ideas I'll read a continental philosopher.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
  86. Re:You've just reinforced his (silly) argument by mrbnsn · · Score: 1
    "C# didn't exist when he started volume 4. Java didn't exist when he started 1-3. Are you suggesting that he should rewrite each volume every time a new language becomes fashionable?"

    That's a silly argument, even if Knuth himself makes it.

    MIX is an idealized abstraction of a mostly obsolete generation of CISC processors. There have been more changes in the fundamental structure of processor architectures in the intervening years than there have been in Algol-family languages (compare the 8080 to IA64, versus C to Java).

    Knuth could easily (if anyone could easily) create an idealized abstraction of an Algol-family high-level language, use that, and his work would be far more accessible to all the C, Pascal, C++, Ada, Java, Python, PHP, C#, etc., etc., etc., programmers in the world than it is when implemented in MIX.