Domain: fatbrain.com
Stories and comments across the archive that link to fatbrain.com.
Comments · 424
-
Re:Watch the shoe change feetDoes this mean they are above the law, or do they merely get to change them at will?
The latter. US Copyright law, in this century, has been written by the companies who have the biggest stake in IP. The relevant parties are invited every few decades, by Congress, to get together and hammer out an agreement that pleases all parties. It is assumed that the companies understand the issues involved better than the congressmen.
Unfortunately, nobody from the public is invited and the congressmen themselves (who's job description is to represent the public interest) don't get involved until the very end, when the text of the law has been decided, to apply their rubber stamp.
So, the IP companies have, this time, written themselves a law that goes far beyond anything the public (or even the worst sell-out of a congressman) could dream of.
We had our opportunity to tell our representatives "vote No to the DMCA", but we apparently didn't take it.
Read this book.
-c
-
Re:Aaargh! Fatbrain!
Instead of AddAll, I prefer to use BestBookBuys. Both AddAll and BestBookBuys appear to have similar functionality (for instance, they both identified BookPool as having the lowest price), but I personally prefer the interface on BestBookBuys.
But, I do share your sentiment about Fatbrain. Sure, it used to be independent and cool, but now they're just yet-another subsidiary of Barnes & Noble (bleh!). Besides, Fatbrain also costs $18 more than the lowest AddAll/BestBookBuys price.
Alex Bischoff -
goes way back... and the purpose is...gosh this takes me back... I have some of the books with the best entries; the contest dates back to at least 1985.
from the books, the purpose of the contest:
"The Bulwer-Lytton Fiction Contest is an annual competition sponsored by San Jose State University. It challenges entrants to compose the worst possible opening sentence to a hypothetical novel. The contest 'honors' Edward George Bulwer-Lytton, a prolific Victorian novelist who opened his 'Paul Clifford' (1830) with a sentence that has become the standard for potboilers: 'It was a dark and stormy night...'"here's an example, the 1985 grand prize winner:
"The countdown had stalled at T minus 69 seconds when Desiree, the first female ape to go up in space, winked at me slyly and pouted her thick, rubbery lips unmistakably - the first of many such advances during what would prove to be the longest, and most memorable, space voyage of my career"must be a single sentence.
-
goes way back... and the purpose is...gosh this takes me back... I have some of the books with the best entries; the contest dates back to at least 1985.
from the books, the purpose of the contest:
"The Bulwer-Lytton Fiction Contest is an annual competition sponsored by San Jose State University. It challenges entrants to compose the worst possible opening sentence to a hypothetical novel. The contest 'honors' Edward George Bulwer-Lytton, a prolific Victorian novelist who opened his 'Paul Clifford' (1830) with a sentence that has become the standard for potboilers: 'It was a dark and stormy night...'"here's an example, the 1985 grand prize winner:
"The countdown had stalled at T minus 69 seconds when Desiree, the first female ape to go up in space, winked at me slyly and pouted her thick, rubbery lips unmistakably - the first of many such advances during what would prove to be the longest, and most memorable, space voyage of my career"must be a single sentence.
-
Re:Dumb Question from a NON PhysicistYou are asking a lot of very good questions, and you are correct that they have all been pretty much raised at one point or another. However, these questions really have not been answered. Basically we can only infer what we can from the universe by looking through telescopes, so the most you can ask of a certain cosmological model is that it be consistent with observation. These questions in particular are certainly not boring, and far from being resolved.
The perception of time is an interesting topic because the "arrow of time" comes from thermodynamics (the second law in particular), and so some believe that it is independent of the expansion of the univese. However, some have entertained the possibility that if the universe were to contract, then time would reverse itself.
In addition to the books I referenced previously, if you really want to exercise your brain, I highly recommend Barrow and Tipler's The Anthropic Cosmological Principle. You might not agree with all that is in it, but it has some very nice historical chapters and discussions on the nature and fate of the universe.
-
Re:Dumb Question from a NON PhysicistThe best visual explanation of this is the expanding balloon analogy. Take a balloon of a certain size and put a bunch of dots on it with a magic marker. If you constrain yourself to the surface of the balloon (i.e., let the balloon be a 2-dimensional universe) and let the dots represent galaxies, then as you inflate the balloon you'll see that this universe expands and all the galaxies fly apart from each other. Note that no matter where you are on the balloon surface, all the galaxies are expanding away from each other, so there is no one spot on the balloon suface that is the "center" of this expansion. For the case of our universe our 4-dimensional (3 spatial and one temporal) spacetime is similarly expanding.
There also is the issue of the shape of the universe, which is what this story addresses. The balloon analogy describes a closed and unbounded universe. There are also other types such as the closed and bounded (such as an expanding dinner plate) and an infinite universe.
This all leads to some interesting questions such as what is this all expanding into? Is this 4-D space hung in a higher dimensional space, or is this all that there is? Some cosmologists look at possibilities such as whether our universe is just a local bubble and that there are other universes that are right next to us (and perhaps connected via black holes/quasars). Also, note that if the universe is as it is described above, then you should be able to set off in one direction and travel all the way around the universe and get back to your starting position, much like sailing around the Earth. However, with the rate of expansion of the universe, you would have to travel awfully fast. If the universe were not expanding and was closed (as with the balloon analogy) then if it were optically transparent and you had a big enough telescope, then you would be able to look far out and eventually see yourself.
There are a number of good layman-targeted books on this subject. Two of the most popular have been Hawking's A Brief History of Time, and more recently Brian Greene's The Elegant Universe. A very good book on the Big Bang itself is Steven Weinberg's The First Three Minutes.
-
Re:Dumb Question from a NON PhysicistThe best visual explanation of this is the expanding balloon analogy. Take a balloon of a certain size and put a bunch of dots on it with a magic marker. If you constrain yourself to the surface of the balloon (i.e., let the balloon be a 2-dimensional universe) and let the dots represent galaxies, then as you inflate the balloon you'll see that this universe expands and all the galaxies fly apart from each other. Note that no matter where you are on the balloon surface, all the galaxies are expanding away from each other, so there is no one spot on the balloon suface that is the "center" of this expansion. For the case of our universe our 4-dimensional (3 spatial and one temporal) spacetime is similarly expanding.
There also is the issue of the shape of the universe, which is what this story addresses. The balloon analogy describes a closed and unbounded universe. There are also other types such as the closed and bounded (such as an expanding dinner plate) and an infinite universe.
This all leads to some interesting questions such as what is this all expanding into? Is this 4-D space hung in a higher dimensional space, or is this all that there is? Some cosmologists look at possibilities such as whether our universe is just a local bubble and that there are other universes that are right next to us (and perhaps connected via black holes/quasars). Also, note that if the universe is as it is described above, then you should be able to set off in one direction and travel all the way around the universe and get back to your starting position, much like sailing around the Earth. However, with the rate of expansion of the universe, you would have to travel awfully fast. If the universe were not expanding and was closed (as with the balloon analogy) then if it were optically transparent and you had a big enough telescope, then you would be able to look far out and eventually see yourself.
There are a number of good layman-targeted books on this subject. Two of the most popular have been Hawking's A Brief History of Time, and more recently Brian Greene's The Elegant Universe. A very good book on the Big Bang itself is Steven Weinberg's The First Three Minutes.
-
Re:Dumb Question from a NON PhysicistThe best visual explanation of this is the expanding balloon analogy. Take a balloon of a certain size and put a bunch of dots on it with a magic marker. If you constrain yourself to the surface of the balloon (i.e., let the balloon be a 2-dimensional universe) and let the dots represent galaxies, then as you inflate the balloon you'll see that this universe expands and all the galaxies fly apart from each other. Note that no matter where you are on the balloon surface, all the galaxies are expanding away from each other, so there is no one spot on the balloon suface that is the "center" of this expansion. For the case of our universe our 4-dimensional (3 spatial and one temporal) spacetime is similarly expanding.
There also is the issue of the shape of the universe, which is what this story addresses. The balloon analogy describes a closed and unbounded universe. There are also other types such as the closed and bounded (such as an expanding dinner plate) and an infinite universe.
This all leads to some interesting questions such as what is this all expanding into? Is this 4-D space hung in a higher dimensional space, or is this all that there is? Some cosmologists look at possibilities such as whether our universe is just a local bubble and that there are other universes that are right next to us (and perhaps connected via black holes/quasars). Also, note that if the universe is as it is described above, then you should be able to set off in one direction and travel all the way around the universe and get back to your starting position, much like sailing around the Earth. However, with the rate of expansion of the universe, you would have to travel awfully fast. If the universe were not expanding and was closed (as with the balloon analogy) then if it were optically transparent and you had a big enough telescope, then you would be able to look far out and eventually see yourself.
There are a number of good layman-targeted books on this subject. Two of the most popular have been Hawking's A Brief History of Time, and more recently Brian Greene's The Elegant Universe. A very good book on the Big Bang itself is Steven Weinberg's The First Three Minutes.
-
Xerox PARC Laser Networking (and UFOs)
Early on when they were setting up networking at Xerox's PARC, they used four telescopes and a pair of lasers and detectors to network between two bulidings separated by I-280. Apparently several people reported UFO or strange object sightings when the red laser beams would sporadically show up in the fog!
I think this story is mentioned in Michael Hiltzik's Dealers of Lightning (fatbrain link) history of PARC, which is a worthwhile read.
Regards, Robert
-
Re:Category errorIf you believe a brain and its reactions can be simulated by a computer, why is that not sufficient for intelligence?
Well, I have a problem with the first part of your statement. Roger Penrose demonstrated, at least to my satisfaction, that it is impossible to simulate parts of the huamn mind with a computer. Check out The Emperor's New Mind for the details. It's rather complex and involved (this guy hangs out with Stephen Hawking) but I managed to follow the argument and it made sense.
Any AI experts care to comment?
"What are we going to do tonight, Bill?" -
Re:You CANNOT copyright titles
The upshot of all this is that Margaret Mitchell's estate has successfully managed to have the book pulled from bookstores.
Not exactly. Since it had never made it to the bookstores, it couldn't be pulled. More significantly, the injunction was lifted on May 25, and the novel is now available. -
Re:Unions are *bad* for Consultants
I've spent the majority of my life working to hone my craft. While you're sitting on your arse watching American's Funniest Home Videos, I'm reading up on the latest implementation strategies for distributed systems. While you're hanging out with your buddies throwing back another can of Old Milwaukee, I'm busy doing research for my next book or magazine article. I spend an average of 2-3 months each year on sabbatical. You vacation in Disney World.
I work hard and make a lot of sacrifices to be a, what phrase did you use to denigrate my profession?, a "black belt, gunslinger, or whatever the current cute buzzword of the day is." Are you trying to summon up the word "guru", perhaps?
It's my abilities, my experience, my presentation, that get's me the cool projects that you lament are taken away from you, not being spoon-fed as you seem to expect. "I deserve this cool project. It's my right that I should get this great assignment. The world owes me the more interesting and challenging opportunities despite my lack of effort to persue them on my own, to raise my abilities and core competencies, to work for that which I earn." By who's standards, I ask.
The fact of the matter is, and what pisses you off, is that people like me have more ambition, higher goals, greater dedication, perhaps even more capacity to excel at our chosen profession. It's not a matter of being a consultant -- I've seen plenty of consultants who aspire for the same level of mediocrity that you have so successfully achieved. It's not excluding employees, as some of the most talented people that I have had the good fortune to work with have been employees of my clients.
It's simply that you're upset that the professional world is passing you by, that you can't keep up, and can't bring it upon yourself to place blame where it belongs. If you spent more time trying and less time crying, you wouldn't be so bitter.
My apologies to the rest of the /. community. But trolls like this are a common occurance in the consulting industry and I'm in no mood to deal with ill-informed prujudices such as this. My only true regret is that this comment will probably never be read by laslo2, thereby depriving his poor undeserving soul of the wake-up call it so obviously needs.
Try becoming a contributor. Stop being a looter. -
Re:AnalysisFrom the article: prompted me to analyze its technical merits, using insights from the book 'Nonzero' by Richard Wright
He said he was using work from this book, which is an excellent text analyzing human progress using game theory. The book has all the groundwork you are looking for, including examples, etc. I think that if you read it, the basis for his argument becomes much more apparent. In fact I suggest everyone read it, because it presents an interesting means of analyzing almost any social situation, and it is very relevant to current goings on in the software community.
-
Re:Multithreading Can Be a Good General Design
I feel that being able to multithread code effectively in Java would make a programmer advanced in that topic.
Here's the best book on the subject:
Doug Lea, Concurrent Programming in Java. Second Edition: Design Principles and Patterns
book home page
author home page (pointer to online supplement for the book)
at Fatbrain
at Amazon -
Re:So what...
I hope you disposed of them carefully. Wild birds, especially those that roost in large numbers like crows, frequently carry viruses, such as influenza, Eastern Equine Encephelitis and (now) West Nile Virus, that can infect humans. As their bodies break down, they can be pretty "hot".
A book I read recently, "Virus X", posits that some viruses which inhabit animal populations (sometimes, as in the case of hanta virus and rodents, with no ill effects) have a symbiotic relationship with their host. They are a form of natural defence against other animals moving into the host's range.
-
Nielson Norman Group's WAP Usability ReportThe Neilson Norman Group did a study of real users' experience with wap phones a while back.
Reading the summary, and having a lot of respect for what the authors had to say on other topics convinced me it wasn't worth my while to bother with WAP.
The WAP Usability Report (available in PDF form for $26) reports on a study where 20 people were given WAP enabled phones for a week and asked to report back on their experiences. The study was done in London because of the advanced state of WAP services there. Read the summary here.
- 70% of users reported they would not use WAP within a year
- One user calculated it was cheaper to buy a newspaper and throw away everything but the TV listings rather than use WAP to check the BBC schedule
our basic conclusion is that WAP usability fails miserably; accomplishing even the simplest of tasks takes much too long to provide any user satisfaction. It simply should not take two minutes to find the current weather forecast or what will be showing on BBC1 at 8 p.m.
These are the same guys who test out concepts in web page design by sitting real users in front of browsers and watching them use the net. You may be familiar with some of the principles:- Jakob Nielson
- Don Norman, author of The Design of Everyday Things, Things that Make Us Smart and The Invisible Computer
- Bruce "Tog" Tognazzini, one of the original designers of the Macintosh UI and author of Tog on Interface. Check out Tog's Software Design Bookstore to learn how to write software that doesn't suck. Read Top 10 Reasons the Apple Dock Sucks.
I link these and a couple other useful sites in my brief section on Some Web Application Design Basics in Use Validators and Load Generators to Test Your Web Applications:
I'm not talking about pretty rollover buttons here, folks.
You need to understand that many web sites are developed with investments totalling many millions of dollars, only to have the effect of driving away any user who might have the misfortune to stumble across them, with much resulting heartbreak and the loss of fortunes.
Mike -
Nielson Norman Group's WAP Usability ReportThe Neilson Norman Group did a study of real users' experience with wap phones a while back.
Reading the summary, and having a lot of respect for what the authors had to say on other topics convinced me it wasn't worth my while to bother with WAP.
The WAP Usability Report (available in PDF form for $26) reports on a study where 20 people were given WAP enabled phones for a week and asked to report back on their experiences. The study was done in London because of the advanced state of WAP services there. Read the summary here.
- 70% of users reported they would not use WAP within a year
- One user calculated it was cheaper to buy a newspaper and throw away everything but the TV listings rather than use WAP to check the BBC schedule
our basic conclusion is that WAP usability fails miserably; accomplishing even the simplest of tasks takes much too long to provide any user satisfaction. It simply should not take two minutes to find the current weather forecast or what will be showing on BBC1 at 8 p.m.
These are the same guys who test out concepts in web page design by sitting real users in front of browsers and watching them use the net. You may be familiar with some of the principles:- Jakob Nielson
- Don Norman, author of The Design of Everyday Things, Things that Make Us Smart and The Invisible Computer
- Bruce "Tog" Tognazzini, one of the original designers of the Macintosh UI and author of Tog on Interface. Check out Tog's Software Design Bookstore to learn how to write software that doesn't suck. Read Top 10 Reasons the Apple Dock Sucks.
I link these and a couple other useful sites in my brief section on Some Web Application Design Basics in Use Validators and Load Generators to Test Your Web Applications:
I'm not talking about pretty rollover buttons here, folks.
You need to understand that many web sites are developed with investments totalling many millions of dollars, only to have the effect of driving away any user who might have the misfortune to stumble across them, with much resulting heartbreak and the loss of fortunes.
Mike -
Nielson Norman Group's WAP Usability ReportThe Neilson Norman Group did a study of real users' experience with wap phones a while back.
Reading the summary, and having a lot of respect for what the authors had to say on other topics convinced me it wasn't worth my while to bother with WAP.
The WAP Usability Report (available in PDF form for $26) reports on a study where 20 people were given WAP enabled phones for a week and asked to report back on their experiences. The study was done in London because of the advanced state of WAP services there. Read the summary here.
- 70% of users reported they would not use WAP within a year
- One user calculated it was cheaper to buy a newspaper and throw away everything but the TV listings rather than use WAP to check the BBC schedule
our basic conclusion is that WAP usability fails miserably; accomplishing even the simplest of tasks takes much too long to provide any user satisfaction. It simply should not take two minutes to find the current weather forecast or what will be showing on BBC1 at 8 p.m.
These are the same guys who test out concepts in web page design by sitting real users in front of browsers and watching them use the net. You may be familiar with some of the principles:- Jakob Nielson
- Don Norman, author of The Design of Everyday Things, Things that Make Us Smart and The Invisible Computer
- Bruce "Tog" Tognazzini, one of the original designers of the Macintosh UI and author of Tog on Interface. Check out Tog's Software Design Bookstore to learn how to write software that doesn't suck. Read Top 10 Reasons the Apple Dock Sucks.
I link these and a couple other useful sites in my brief section on Some Web Application Design Basics in Use Validators and Load Generators to Test Your Web Applications:
I'm not talking about pretty rollover buttons here, folks.
You need to understand that many web sites are developed with investments totalling many millions of dollars, only to have the effect of driving away any user who might have the misfortune to stumble across them, with much resulting heartbreak and the loss of fortunes.
Mike -
Re:A hoax?Taking anti-inflammatories like Ibuprofin and Aspirin often will have the effect of suppressing your body's natual ability to cause inflammation--the act of healing injuries. It's much better to fix the cause, whether it be excessive computer use, not taking enough breaks and stretching, or lack of exercise.
RSI is just the first stage of repetitive stress. You don't want to get RSD, which is basically permanent nerve damage. I highly recommend the book Repetitive Strain Injury by Pascarelli. Here's a link at Amazon. I'm not affiliated with Amazon.com in any way. Fatbrain also has this book, here; but it is more expensive.
-
Re:Those evil rat bastards!
Actually, I LOVE Bill Gates. I'm a software developer who focuses on apps for the Windows platforms. Personally, I've always felt that I'd do the same thing BillG does if it were ME up in Redmond.
You may not like it, but he uses his power. Read The 48 Laws of Power for a good explanation.
Still, it irks me to see companies act foolishly. I DO agree with the subscriber line comment, though. Very good thought.
-
Re:Why Fatbrain?Some people (RMS) are on a anti-amazon kick becuse of the way that they have gone overboard on patents at times (one-click-shoping). B&N is too mega-corp to mention directly so us geeks go with Fatbrain because of the
... well ... fat brain aspect.I posted about Global Dreams last week and in in the interests of fairness posted the links for all three sites. Amazon, BN or FatBrain
-
Dammit, more to add to my reading list
I just got done reading Smoke and Mirrors, an excellent collection of Gaiman's short stories. He has an amazing way of telling stories that are at the same time both familiar and deeply strange. Definitely recommended.
That collection is somewhat focused on English myth, as much as anything. I kept wondering what he would do with American myth -- or the lack thereof. And now he's done just that. It's not like I don't have too much to read already...
-
Global Dreams
-
Oh the irony...
I searched for "digital copyright" on fatbrain and came up with Litman's book, but the 2nd book that came up was Peter Wayner's book "Digital Copyright Protection: Techniques to Ward off Electronic Copyright Abuse". Ouch.
p.s. my humble apologies for blatantly attaching to a high mod post... -
Oh the irony...
I searched for "digital copyright" on fatbrain and came up with Litman's book, but the 2nd book that came up was Peter Wayner's book "Digital Copyright Protection: Techniques to Ward off Electronic Copyright Abuse". Ouch.
p.s. my humble apologies for blatantly attaching to a high mod post... -
What I doI am currently in a similar circumstance - I work 12 hour night shifts helping to maintain the computers for a very large, somewhat paranoid employer.
A good portion of the time I am there, I have lots to do (changes happen at night, and it is the world's largest NFS installation (or so I've heard)), but for a lot of the nights, I just have to watch patrol/logfiles and keep an eye on the systems.
I can't write code for my own projects, as they own everything I write when I am at work.
I can't bring in my laptop, as I don't have a pass to get it back out of the building.(so, no games except the ones on my visor, and in xemacs)
What do I do?
- Get to know the night staff - I eat my lunch at about the time
the janitors finish, so I usually sit around with them and talk for a
while. I've heard some amazing stories
- Read manuals - check the tops of racks of equipment that outside
people (like EMC) maintain. Sometimes they'll leave the manuals there.
- Read documentation - SGI and
Apple have lots of cool reading,
not to mention Other
Places.
- Write throwaway code - They may own it, so just try things out.
See how fast you can get a parallel matrix multiply to go when
you spread it over all 16 or so of the processors of a nice beefy box.
- Automate things - write scripts to make life easier for everyone,
and give yourself even more free time to worry about!
- Read good books - I've been catching up on my reading backlog.
- Check HR's web page to double check your benefits - I found a nice
discount on books from fatbrain that I had missed.
- See if the zone where managers sit has better toilet paper in the
bathrooms.
-- - Get to know the night staff - I eat my lunch at about the time
the janitors finish, so I usually sit around with them and talk for a
while. I've heard some amazing stories
-
Re:Why...
The platform SDK is actually fairly well documented now... its gone from abysmal to nearly excellent in the last five years. (I'm sure people that were playing with this stuff before five years ago will say it was even worse before NT4 was released)
But IIS its a very complicated thing to evaluate because in addition to auditting the usermode code, its spud.sys actually registers a new system call table for use by IIS... so you have to audit those system calls' behavior within the kernel in addition to the normal NT system calls called by IIS, along with the usermode code and all of its places it interacts with extensions.
But for killing a crashed service, it should die if it doesn't have an exception handler registered from a __try block... unless you have a non-default system debugger set (I've had numerous cases where services have died from unhandled exceptions... perhaps there more to the problem than it apparent initially: have you verified which thread is crashing?). If there's a reason you need to be catching your exceptions with a __finally or an __except, you might be able to support to your service control handler routine to detect the problem and return a SERVICE_STOPPED status on a SERVICE_CONTROL_INTERROGATE request so that some other watching service can learn thats stopped and restart it.
As for a fork(), yes, the lack of an equivalent in the Win32 API has definitely been a royal pain on occasion... more than a pain, actually. One solution you might look at, if you don't mind using the native API, is Gary Nebbett's example in chapter six of his book with does a fairly thorough implementation of fork() for Win32 processes. Its a bit painful... the native api's process routines definitely make Win32's already painful CreateProcess() look trivial, but if you need a fork(), it might by one solution.
Another interesting approach to fork() is cygwin's... its not as elegant, as they're confined to the Win32 API, but it does work, though you'll want to strip out the cygwin-specific stuff. -
the more I learn about C, the more I like perl
Has anyone else out there sort of grown up with Perl during this dot.compost era and now started to check out C and the real guts behind ''world domination?''
I'm finally getting into C by taking a night class at UCLA, and my god, this stuff only gets cooler and cooler. To see the community RFC type thing go on with Perl6 and to watch/hear/readof the ISO committee floundering with other languages is very interesting too.
Of all the uninspiring things happening with government, the economy, environment, etc these days, I really recommend that any inclined kid such as myself out there get back to basics and check out what their local community college/college extension has to offer. I have, and every time I walk out of class it's like "oh, no shit, that's friggin sweet." Maybe it's just me, but for some of these things, it's just easier to be in an engaging classroom environment rather than to be all by your lonesone with Conway's ''OOP.''
Anywho, back to coding..
-
If you didn't like this, you also may not like
"Interface" by the pseudonymous Stephen Bury.
-
Of course, Donald Knuth already knew that...
Donald Knuth, wich has casually been mentioned in another post, knew of this at least in 1993.
The following is an excerpt (it's approx. 60% down the page) from the interview he gave to Computer Literacy Review in December 7th 1993:
If you have any problems with the interview link, just use Google.CLB: If you were a soon-to-graduate college senior or Ph.D. and you didn't have any "baggage", what kind of research would you want to do? Or would you even choose research again?
Knuth: I think the most exciting computer research now is partly in robotics, and partly in applications to biochemistry. Robotics, for example, that's terrific. Making devices that actually move around and communicate with each other. Stanford has a big robotics lab now, and our plan is for a new building that will have a hundred robots walking the corridors, to stimulate the students. It'll be two or three years until we move in to the building. Just seeing robots there, you'll think of neat projects. These projects also suggest a lot of good mathematical and theoretical questions. And high level graphical tools, there's a tremendous amount of great stuff in that area too. Yeah, I'd love to do that... only one life, you know, but...
CLB: Why do you mention biochemistry?
Knuth: There's millions and millions of unsolved problems. Biology is so digital, and incredibly complicated, but incredibly useful.
The trouble with biology is that, if you have to work as a biologist, it's boring. Your experiments take you three years and then, one night, the electricity goes off and all the things die! You start over.
In computers we can create our own worlds. Biologists deserve a lot of credit for being able to slug it through.
It is hard for me to say confidently that, after fifty more years of explosive growth of computer science, there will still be a lot of fascinating unsolved problems at peoples' fingertips, that it won't be pretty much working on refinements of well-explored things. Maybe all of the simple stuff and the really great stuff has been discovered. It may not be true, but I can't predict an unending growth.
I can't be as confident about computer science as I can about biology.
Biology easily has 500 years of exciting problems to work on, it's at that level. -
References
XP is an interesting (and controversial) methodology that has proven its usefulness in real projects, and it is nice to see it covered on slashdot. It is gaining acceptance in the software industry. One indication of this is the number of talks on XP at the SD2001 West conference in San Jose 8-12 April.
However, decent references are sorely missing from this story, like for example
the book by Kent Beck and one of the more comprehensive web sites, www.xprogramming.com by Ron Jeffries, with links to a lot of other resources on XP.
-
Re:3001 already explained this very thing - in 199
Fountains of Paradise (also by Clarke, but printed in 1979) centers around the idea of a space elevator.
-
Re:This is a great book
I guess it's a good thing FatBrain has it for the same price then...
-
Another sequel
For those of you who are updating your libraries, you might also want to check out Sphereland by Dionys Burger. This is another sequel to Flatland which appearently talks about Einstein's theories of space-time in a Flatlander context. I say appearently because I read the book so long ago I have forgotten most of the contents, and had to be reminded by the review at Amazon.com.
-
Serious doubts for some timeThere have been serious doubts about the value of a "complete" human genome map since the project was suggested years ago.
The "nurture" side of the nature vs. nurture argument (the argument over what makes a person: genetics or environment) have certainly been losing out recently in the media coverage over the human genome project.
R.C. Lewontin has a very elegant short book titled Biology as Ideology that includes discussion on the subject of why the project may not be as useful as it seems.
-
I think someone wrote a book
-
I think someone wrote a book
-
I think someone wrote a book
-
802.11At one point not too long ago I was able to find the 802.11 1997 standard pdf file on ieee's website for free. Their site isn't well organized and I can't find it again. As a member I was able to purchase the 1999 version as a pdf for about $180. Depending on what you need it for, you probably will find most of what you want to know from the book The IEEE 802.11 Handbook : A Designer's Companion, but even that's expensive for what you get (a small paperback).
I'd really like to see ieee give out free pdf for use in open source projects, but I seriously doubt that will ever happen.
:( -
What about MY project?
I am the developer who won third place in the "Best Webapps Contest". While a lot of the winning entries didn't seem to be making much headway, my project was under active development.
I was to deliver 4 milestones to complete my project. The first was delivered in early December of last year and I have yet to receive the payment for this milestone yet. I was assured by John Egan of Collab.net as late as February 22, that I would be paid for it. I have a snowballs chance in hell of seeing that money now.
Milestone 2 was scheduled to be released in two weeks after being integrated into the Jive CVS repository.
Milestone 3 is to begin this weekend when I travel to work with Bill and Matt of CoolServlets to consult with them on the best way to include Moderation in the Jive codebase and integrate with existing Moderation code.
I still plan to do Milestone 4.
For those of you wondering what does the passing of SourceXchange mean for the Open Source world? Nothing. SourceXchange was more of a hinderance than a help to my project. They were supposed to supply every project (mine was #39) with a mailing list. The first time that I saw the SourceXchange mailing lists work was when Brian Behlendorf sent out the SourceXchange announcement that they were closing the doors.
From the letter:
Thank you to the hundreds of participants on our various projects, and to the sponsors who were willing to take a risk on a new model (and who, by and large, got good results).
I certainly doubt that MyComponents.com feels that they got good results from SourceXchange. They got very little from the contest winners (myself included) and I am sure absolutely nothing that would benefit them as a business. If MyComponents made any payments to Collab.net, they should be asking for a refund.
The only good thing to come out of the whole "Best Webapps Contest" was that it inspired the First place winner Rickard Oberg to write WebWork.
-
Teamicide
Quoting from Peopleware, second edition, chapter 28 "Competition", under the "Teamicide Re-visited" heading (pg. 183 in my copy):
"Internal competition has the direct effect of making coaching difficult or impossible. Since coaching is essential to the workings of a healthy team, anything the manager does to increase competition within a team has to be viewed as teamicidale."
DeMarco & Lister quote W. Edwards Deming's "14 Points", where point 12B says that annual or merit ratings and management by objectives should be abolished. Alfie Kohn's work focuses on the harm caused by the "Do this and you'll get this" mentality. Joel Spolsky's essay, "Incentive Pay Considered Harmful" is a quick read on the subject.
-
Isn't this already known?
(I can't read the article right now, it's
/.ed, so this may be totally wrong).Hasn't this sort of thing already been known? Chaitan's Omega Number stuff has been known for some time (he's written a book about it, which I think is this one, but Fatbrain doesn't have descriptions so I could be wrong).
Goedel proved back in the 30's that there were many things (an infinite number?) which were true but for which proofs cannot be provided. OTOH Chaitin is a well known mathemetician (in some circles, anyway). Presumably he has something interesting to say, but I doubt it's as revolutionary as the post makes it sound.
-
Suggested on-line technical bookstores
The two that I like for their RL bookstores are digitalguru.com and fatbrain.com . However, if you're just looking for online bookstores, you can find a list in the usual place .
-
FatBrainwww.fatbrain.com has a great selection of technical materials.
- James
-
More helpful tips for youWhile I was out for a while I thought of a few more things to post that should have been included in the above.
While I don't think either of them were really overtly trying to mentor me, I owe a lot of credit for what I know and what I can do to a couple of brilliant programmers that I've had the privilege to work with. Both of these fellows are very kind, pleasant people and went out of their way to help me. They also both go out of their way to write correct code, as opposed to, say, just screwing around with it until it sort of works.
I met Haim Zamir at Live Picture (now MGI Software) in 1997 where I really began my C++ effort in a serious way (I tried it in 1990 to write test tools at Apple but didn't really enjoy the experience). Have a look at Haim's Resume, particularly under "Skills" where he lists:
Well grounded in disciplines of software engineering for correctness, robustness, performance, and longevity
Haim can write the most difficult code, and it doesn't just work right, it is unquestionable.Another brilliant programmer is my friend Andrew Green. Andy spares no amount of effort to get his code just right - he devoted nine years to developing the ZooLib cross-platform application framework before releasing under the MIT License. (Not five years as I say on the page.)
If you think being correct, as opposed to merely working ok isn't important, imagine trying to get platform-independent reference counted smart pointers to work in a multithreaded application framework. Andy did.
For an archive of anecdotes of interesting, funny and sometimes tragic technology quality problems, please read:
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
- The Sinking of the USS Gitarro (because of either poor training, poor UI, or both)
- The scary MSWord residue feature - exchange Word documents during legal negotiations?
- Also see the book Computer Related Risks by Risks moderator Peter Neumann
If you write software, another good investment (more important than your hardware investment), is buying and reading good books. As a software consultant I keep the canceled checks and receipts for my technical book purchases; in 1999 I deducted about $750 worth of technical books from my taxes and about $250 in 1998.
But there are a lot of bad software books out there; much as there was a gold rush due to the Internet, there was a smaller-scale gold rush for technical book authors over the last couple years. A really good source of straight-talking book reviews by people who have good reason to know what they're talking about is maintainted by the Association of C and C++ Users at:
The ACCU is interested in more than just C and C++ these days, if you program in those languages, Java or (dare I say it) C-sharp you should join. The mailing lists is pretty low traffic and has some of the best signal-to-noise ratio of any list I've seen (except Risks). The ACCU's technical journals, with articles written by the members, are a valuable source of information on such things as how to write exception-safe code.(Note to CowboyNeal - writing C-sharp with the pound sign set off the lameness filter, driving me damn near out of my skull. How about adding something to the preview to let us know which characters are lame, exactly?).
And good news for those of you across the pond (but bad news for me), it's a British organization and holds regular technical conferences. I believe they also send observers to the ISO standards bodies.
If you program in C++ you should read these two books by Scott Meyers and put them to practice in your code. Read each item one at a time and then go through your code from beginning to end to see how you can apply it:
- Effective C++ - ACCU Review - be sure to get the 2nd Edition
- More Effective C++ - ACCU Review
-Weffc++ (C++ only)
Importantly, in any language, make sure your code compiles cleanly without warnings with all the warnings enabled in the compiler - use the -pedantic option in gcc.Warn about violations of various style guidelines from Scott Meyers' Effective C++ books. If you use this option, you should be aware that the standard library headers do not obey all of these guidelines; you can use `grep -v' to filter out those warnings.
C++ is not the problem language it's often said to be if you follow Meyers' advice, but if you prefer C you certainly can have problems there too - and note that the preferred language for Gnome is C (while KDE is an extended C++), for C programmers you should read:
People who write in any programming language, from assembler on through C and way out to prolog, really should go back to our roots and read the early book: Sadly, this book is out of print, but see the "E" Titles Section at ACCU for other Elements of Style books.Back to the topic of compiler warnings, remember reading about lint in Kernighan and Ritchey's The C Programming Language? When I started out in my first real programming job, doing Sun system administration and writing image processing software back in the late '80's, I learned to write "lint" targets in my Makefiles, and I'd type "make lint" after editing but before compiling to actual machine code. This made my code much easier to debug and quicker to develop.
Much of lint's function is now available in the warnings of GCC (but I don't think all of it), but there are some proprietary products that will do extremely rigorous statis analysis of your source code. I haven't yet used either (although I plan to) but the two I know about are:
Looks like I missed one when I spoke about Bounded Pointers for GCC, Spotlight, etc. in my previous post. Parasoft offers: But note that these products use patented algorithms - number 5,581,696 and 5,860,011.You can search by patent number here.
And speaking of web programming, many Slashdot readers write web applications (Linux being a "server OS" as they say). How many of you validate the HTML that's generated by the web applications you write?
Your HTML should work well in any browser and it should be well designed for easy usability. I don't mean attractive graphics. I mean it shouldn't suck. Two links on design:
Finally, to make sure your HTML is valid, test it with the W3C HTML validation service. You have two choices of how to get your documents processed:- By uploading static files from your browser - most convenient during hand composition
- By entering its URL in a form - best for dynamic pages and final tuning of static pages
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
-
More helpful tips for youWhile I was out for a while I thought of a few more things to post that should have been included in the above.
While I don't think either of them were really overtly trying to mentor me, I owe a lot of credit for what I know and what I can do to a couple of brilliant programmers that I've had the privilege to work with. Both of these fellows are very kind, pleasant people and went out of their way to help me. They also both go out of their way to write correct code, as opposed to, say, just screwing around with it until it sort of works.
I met Haim Zamir at Live Picture (now MGI Software) in 1997 where I really began my C++ effort in a serious way (I tried it in 1990 to write test tools at Apple but didn't really enjoy the experience). Have a look at Haim's Resume, particularly under "Skills" where he lists:
Well grounded in disciplines of software engineering for correctness, robustness, performance, and longevity
Haim can write the most difficult code, and it doesn't just work right, it is unquestionable.Another brilliant programmer is my friend Andrew Green. Andy spares no amount of effort to get his code just right - he devoted nine years to developing the ZooLib cross-platform application framework before releasing under the MIT License. (Not five years as I say on the page.)
If you think being correct, as opposed to merely working ok isn't important, imagine trying to get platform-independent reference counted smart pointers to work in a multithreaded application framework. Andy did.
For an archive of anecdotes of interesting, funny and sometimes tragic technology quality problems, please read:
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
- The Sinking of the USS Gitarro (because of either poor training, poor UI, or both)
- The scary MSWord residue feature - exchange Word documents during legal negotiations?
- Also see the book Computer Related Risks by Risks moderator Peter Neumann
If you write software, another good investment (more important than your hardware investment), is buying and reading good books. As a software consultant I keep the canceled checks and receipts for my technical book purchases; in 1999 I deducted about $750 worth of technical books from my taxes and about $250 in 1998.
But there are a lot of bad software books out there; much as there was a gold rush due to the Internet, there was a smaller-scale gold rush for technical book authors over the last couple years. A really good source of straight-talking book reviews by people who have good reason to know what they're talking about is maintainted by the Association of C and C++ Users at:
The ACCU is interested in more than just C and C++ these days, if you program in those languages, Java or (dare I say it) C-sharp you should join. The mailing lists is pretty low traffic and has some of the best signal-to-noise ratio of any list I've seen (except Risks). The ACCU's technical journals, with articles written by the members, are a valuable source of information on such things as how to write exception-safe code.(Note to CowboyNeal - writing C-sharp with the pound sign set off the lameness filter, driving me damn near out of my skull. How about adding something to the preview to let us know which characters are lame, exactly?).
And good news for those of you across the pond (but bad news for me), it's a British organization and holds regular technical conferences. I believe they also send observers to the ISO standards bodies.
If you program in C++ you should read these two books by Scott Meyers and put them to practice in your code. Read each item one at a time and then go through your code from beginning to end to see how you can apply it:
- Effective C++ - ACCU Review - be sure to get the 2nd Edition
- More Effective C++ - ACCU Review
-Weffc++ (C++ only)
Importantly, in any language, make sure your code compiles cleanly without warnings with all the warnings enabled in the compiler - use the -pedantic option in gcc.Warn about violations of various style guidelines from Scott Meyers' Effective C++ books. If you use this option, you should be aware that the standard library headers do not obey all of these guidelines; you can use `grep -v' to filter out those warnings.
C++ is not the problem language it's often said to be if you follow Meyers' advice, but if you prefer C you certainly can have problems there too - and note that the preferred language for Gnome is C (while KDE is an extended C++), for C programmers you should read:
People who write in any programming language, from assembler on through C and way out to prolog, really should go back to our roots and read the early book: Sadly, this book is out of print, but see the "E" Titles Section at ACCU for other Elements of Style books.Back to the topic of compiler warnings, remember reading about lint in Kernighan and Ritchey's The C Programming Language? When I started out in my first real programming job, doing Sun system administration and writing image processing software back in the late '80's, I learned to write "lint" targets in my Makefiles, and I'd type "make lint" after editing but before compiling to actual machine code. This made my code much easier to debug and quicker to develop.
Much of lint's function is now available in the warnings of GCC (but I don't think all of it), but there are some proprietary products that will do extremely rigorous statis analysis of your source code. I haven't yet used either (although I plan to) but the two I know about are:
Looks like I missed one when I spoke about Bounded Pointers for GCC, Spotlight, etc. in my previous post. Parasoft offers: But note that these products use patented algorithms - number 5,581,696 and 5,860,011.You can search by patent number here.
And speaking of web programming, many Slashdot readers write web applications (Linux being a "server OS" as they say). How many of you validate the HTML that's generated by the web applications you write?
Your HTML should work well in any browser and it should be well designed for easy usability. I don't mean attractive graphics. I mean it shouldn't suck. Two links on design:
Finally, to make sure your HTML is valid, test it with the W3C HTML validation service. You have two choices of how to get your documents processed:- By uploading static files from your browser - most convenient during hand composition
- By entering its URL in a form - best for dynamic pages and final tuning of static pages
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
-
More helpful tips for youWhile I was out for a while I thought of a few more things to post that should have been included in the above.
While I don't think either of them were really overtly trying to mentor me, I owe a lot of credit for what I know and what I can do to a couple of brilliant programmers that I've had the privilege to work with. Both of these fellows are very kind, pleasant people and went out of their way to help me. They also both go out of their way to write correct code, as opposed to, say, just screwing around with it until it sort of works.
I met Haim Zamir at Live Picture (now MGI Software) in 1997 where I really began my C++ effort in a serious way (I tried it in 1990 to write test tools at Apple but didn't really enjoy the experience). Have a look at Haim's Resume, particularly under "Skills" where he lists:
Well grounded in disciplines of software engineering for correctness, robustness, performance, and longevity
Haim can write the most difficult code, and it doesn't just work right, it is unquestionable.Another brilliant programmer is my friend Andrew Green. Andy spares no amount of effort to get his code just right - he devoted nine years to developing the ZooLib cross-platform application framework before releasing under the MIT License. (Not five years as I say on the page.)
If you think being correct, as opposed to merely working ok isn't important, imagine trying to get platform-independent reference counted smart pointers to work in a multithreaded application framework. Andy did.
For an archive of anecdotes of interesting, funny and sometimes tragic technology quality problems, please read:
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
- The Sinking of the USS Gitarro (because of either poor training, poor UI, or both)
- The scary MSWord residue feature - exchange Word documents during legal negotiations?
- Also see the book Computer Related Risks by Risks moderator Peter Neumann
If you write software, another good investment (more important than your hardware investment), is buying and reading good books. As a software consultant I keep the canceled checks and receipts for my technical book purchases; in 1999 I deducted about $750 worth of technical books from my taxes and about $250 in 1998.
But there are a lot of bad software books out there; much as there was a gold rush due to the Internet, there was a smaller-scale gold rush for technical book authors over the last couple years. A really good source of straight-talking book reviews by people who have good reason to know what they're talking about is maintainted by the Association of C and C++ Users at:
The ACCU is interested in more than just C and C++ these days, if you program in those languages, Java or (dare I say it) C-sharp you should join. The mailing lists is pretty low traffic and has some of the best signal-to-noise ratio of any list I've seen (except Risks). The ACCU's technical journals, with articles written by the members, are a valuable source of information on such things as how to write exception-safe code.(Note to CowboyNeal - writing C-sharp with the pound sign set off the lameness filter, driving me damn near out of my skull. How about adding something to the preview to let us know which characters are lame, exactly?).
And good news for those of you across the pond (but bad news for me), it's a British organization and holds regular technical conferences. I believe they also send observers to the ISO standards bodies.
If you program in C++ you should read these two books by Scott Meyers and put them to practice in your code. Read each item one at a time and then go through your code from beginning to end to see how you can apply it:
- Effective C++ - ACCU Review - be sure to get the 2nd Edition
- More Effective C++ - ACCU Review
-Weffc++ (C++ only)
Importantly, in any language, make sure your code compiles cleanly without warnings with all the warnings enabled in the compiler - use the -pedantic option in gcc.Warn about violations of various style guidelines from Scott Meyers' Effective C++ books. If you use this option, you should be aware that the standard library headers do not obey all of these guidelines; you can use `grep -v' to filter out those warnings.
C++ is not the problem language it's often said to be if you follow Meyers' advice, but if you prefer C you certainly can have problems there too - and note that the preferred language for Gnome is C (while KDE is an extended C++), for C programmers you should read:
People who write in any programming language, from assembler on through C and way out to prolog, really should go back to our roots and read the early book: Sadly, this book is out of print, but see the "E" Titles Section at ACCU for other Elements of Style books.Back to the topic of compiler warnings, remember reading about lint in Kernighan and Ritchey's The C Programming Language? When I started out in my first real programming job, doing Sun system administration and writing image processing software back in the late '80's, I learned to write "lint" targets in my Makefiles, and I'd type "make lint" after editing but before compiling to actual machine code. This made my code much easier to debug and quicker to develop.
Much of lint's function is now available in the warnings of GCC (but I don't think all of it), but there are some proprietary products that will do extremely rigorous statis analysis of your source code. I haven't yet used either (although I plan to) but the two I know about are:
Looks like I missed one when I spoke about Bounded Pointers for GCC, Spotlight, etc. in my previous post. Parasoft offers: But note that these products use patented algorithms - number 5,581,696 and 5,860,011.You can search by patent number here.
And speaking of web programming, many Slashdot readers write web applications (Linux being a "server OS" as they say). How many of you validate the HTML that's generated by the web applications you write?
Your HTML should work well in any browser and it should be well designed for easy usability. I don't mean attractive graphics. I mean it shouldn't suck. Two links on design:
Finally, to make sure your HTML is valid, test it with the W3C HTML validation service. You have two choices of how to get your documents processed:- By uploading static files from your browser - most convenient during hand composition
- By entering its URL in a form - best for dynamic pages and final tuning of static pages
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
-
More helpful tips for youWhile I was out for a while I thought of a few more things to post that should have been included in the above.
While I don't think either of them were really overtly trying to mentor me, I owe a lot of credit for what I know and what I can do to a couple of brilliant programmers that I've had the privilege to work with. Both of these fellows are very kind, pleasant people and went out of their way to help me. They also both go out of their way to write correct code, as opposed to, say, just screwing around with it until it sort of works.
I met Haim Zamir at Live Picture (now MGI Software) in 1997 where I really began my C++ effort in a serious way (I tried it in 1990 to write test tools at Apple but didn't really enjoy the experience). Have a look at Haim's Resume, particularly under "Skills" where he lists:
Well grounded in disciplines of software engineering for correctness, robustness, performance, and longevity
Haim can write the most difficult code, and it doesn't just work right, it is unquestionable.Another brilliant programmer is my friend Andrew Green. Andy spares no amount of effort to get his code just right - he devoted nine years to developing the ZooLib cross-platform application framework before releasing under the MIT License. (Not five years as I say on the page.)
If you think being correct, as opposed to merely working ok isn't important, imagine trying to get platform-independent reference counted smart pointers to work in a multithreaded application framework. Andy did.
For an archive of anecdotes of interesting, funny and sometimes tragic technology quality problems, please read:
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
- The Sinking of the USS Gitarro (because of either poor training, poor UI, or both)
- The scary MSWord residue feature - exchange Word documents during legal negotiations?
- Also see the book Computer Related Risks by Risks moderator Peter Neumann
If you write software, another good investment (more important than your hardware investment), is buying and reading good books. As a software consultant I keep the canceled checks and receipts for my technical book purchases; in 1999 I deducted about $750 worth of technical books from my taxes and about $250 in 1998.
But there are a lot of bad software books out there; much as there was a gold rush due to the Internet, there was a smaller-scale gold rush for technical book authors over the last couple years. A really good source of straight-talking book reviews by people who have good reason to know what they're talking about is maintainted by the Association of C and C++ Users at:
The ACCU is interested in more than just C and C++ these days, if you program in those languages, Java or (dare I say it) C-sharp you should join. The mailing lists is pretty low traffic and has some of the best signal-to-noise ratio of any list I've seen (except Risks). The ACCU's technical journals, with articles written by the members, are a valuable source of information on such things as how to write exception-safe code.(Note to CowboyNeal - writing C-sharp with the pound sign set off the lameness filter, driving me damn near out of my skull. How about adding something to the preview to let us know which characters are lame, exactly?).
And good news for those of you across the pond (but bad news for me), it's a British organization and holds regular technical conferences. I believe they also send observers to the ISO standards bodies.
If you program in C++ you should read these two books by Scott Meyers and put them to practice in your code. Read each item one at a time and then go through your code from beginning to end to see how you can apply it:
- Effective C++ - ACCU Review - be sure to get the 2nd Edition
- More Effective C++ - ACCU Review
-Weffc++ (C++ only)
Importantly, in any language, make sure your code compiles cleanly without warnings with all the warnings enabled in the compiler - use the -pedantic option in gcc.Warn about violations of various style guidelines from Scott Meyers' Effective C++ books. If you use this option, you should be aware that the standard library headers do not obey all of these guidelines; you can use `grep -v' to filter out those warnings.
C++ is not the problem language it's often said to be if you follow Meyers' advice, but if you prefer C you certainly can have problems there too - and note that the preferred language for Gnome is C (while KDE is an extended C++), for C programmers you should read:
People who write in any programming language, from assembler on through C and way out to prolog, really should go back to our roots and read the early book: Sadly, this book is out of print, but see the "E" Titles Section at ACCU for other Elements of Style books.Back to the topic of compiler warnings, remember reading about lint in Kernighan and Ritchey's The C Programming Language? When I started out in my first real programming job, doing Sun system administration and writing image processing software back in the late '80's, I learned to write "lint" targets in my Makefiles, and I'd type "make lint" after editing but before compiling to actual machine code. This made my code much easier to debug and quicker to develop.
Much of lint's function is now available in the warnings of GCC (but I don't think all of it), but there are some proprietary products that will do extremely rigorous statis analysis of your source code. I haven't yet used either (although I plan to) but the two I know about are:
Looks like I missed one when I spoke about Bounded Pointers for GCC, Spotlight, etc. in my previous post. Parasoft offers: But note that these products use patented algorithms - number 5,581,696 and 5,860,011.You can search by patent number here.
And speaking of web programming, many Slashdot readers write web applications (Linux being a "server OS" as they say). How many of you validate the HTML that's generated by the web applications you write?
Your HTML should work well in any browser and it should be well designed for easy usability. I don't mean attractive graphics. I mean it shouldn't suck. Two links on design:
Finally, to make sure your HTML is valid, test it with the W3C HTML validation service. You have two choices of how to get your documents processed:- By uploading static files from your browser - most convenient during hand composition
- By entering its URL in a form - best for dynamic pages and final tuning of static pages
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
-
More helpful tips for youWhile I was out for a while I thought of a few more things to post that should have been included in the above.
While I don't think either of them were really overtly trying to mentor me, I owe a lot of credit for what I know and what I can do to a couple of brilliant programmers that I've had the privilege to work with. Both of these fellows are very kind, pleasant people and went out of their way to help me. They also both go out of their way to write correct code, as opposed to, say, just screwing around with it until it sort of works.
I met Haim Zamir at Live Picture (now MGI Software) in 1997 where I really began my C++ effort in a serious way (I tried it in 1990 to write test tools at Apple but didn't really enjoy the experience). Have a look at Haim's Resume, particularly under "Skills" where he lists:
Well grounded in disciplines of software engineering for correctness, robustness, performance, and longevity
Haim can write the most difficult code, and it doesn't just work right, it is unquestionable.Another brilliant programmer is my friend Andrew Green. Andy spares no amount of effort to get his code just right - he devoted nine years to developing the ZooLib cross-platform application framework before releasing under the MIT License. (Not five years as I say on the page.)
If you think being correct, as opposed to merely working ok isn't important, imagine trying to get platform-independent reference counted smart pointers to work in a multithreaded application framework. Andy did.
For an archive of anecdotes of interesting, funny and sometimes tragic technology quality problems, please read:
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
- The Sinking of the USS Gitarro (because of either poor training, poor UI, or both)
- The scary MSWord residue feature - exchange Word documents during legal negotiations?
- Also see the book Computer Related Risks by Risks moderator Peter Neumann
If you write software, another good investment (more important than your hardware investment), is buying and reading good books. As a software consultant I keep the canceled checks and receipts for my technical book purchases; in 1999 I deducted about $750 worth of technical books from my taxes and about $250 in 1998.
But there are a lot of bad software books out there; much as there was a gold rush due to the Internet, there was a smaller-scale gold rush for technical book authors over the last couple years. A really good source of straight-talking book reviews by people who have good reason to know what they're talking about is maintainted by the Association of C and C++ Users at:
The ACCU is interested in more than just C and C++ these days, if you program in those languages, Java or (dare I say it) C-sharp you should join. The mailing lists is pretty low traffic and has some of the best signal-to-noise ratio of any list I've seen (except Risks). The ACCU's technical journals, with articles written by the members, are a valuable source of information on such things as how to write exception-safe code.(Note to CowboyNeal - writing C-sharp with the pound sign set off the lameness filter, driving me damn near out of my skull. How about adding something to the preview to let us know which characters are lame, exactly?).
And good news for those of you across the pond (but bad news for me), it's a British organization and holds regular technical conferences. I believe they also send observers to the ISO standards bodies.
If you program in C++ you should read these two books by Scott Meyers and put them to practice in your code. Read each item one at a time and then go through your code from beginning to end to see how you can apply it:
- Effective C++ - ACCU Review - be sure to get the 2nd Edition
- More Effective C++ - ACCU Review
-Weffc++ (C++ only)
Importantly, in any language, make sure your code compiles cleanly without warnings with all the warnings enabled in the compiler - use the -pedantic option in gcc.Warn about violations of various style guidelines from Scott Meyers' Effective C++ books. If you use this option, you should be aware that the standard library headers do not obey all of these guidelines; you can use `grep -v' to filter out those warnings.
C++ is not the problem language it's often said to be if you follow Meyers' advice, but if you prefer C you certainly can have problems there too - and note that the preferred language for Gnome is C (while KDE is an extended C++), for C programmers you should read:
People who write in any programming language, from assembler on through C and way out to prolog, really should go back to our roots and read the early book: Sadly, this book is out of print, but see the "E" Titles Section at ACCU for other Elements of Style books.Back to the topic of compiler warnings, remember reading about lint in Kernighan and Ritchey's The C Programming Language? When I started out in my first real programming job, doing Sun system administration and writing image processing software back in the late '80's, I learned to write "lint" targets in my Makefiles, and I'd type "make lint" after editing but before compiling to actual machine code. This made my code much easier to debug and quicker to develop.
Much of lint's function is now available in the warnings of GCC (but I don't think all of it), but there are some proprietary products that will do extremely rigorous statis analysis of your source code. I haven't yet used either (although I plan to) but the two I know about are:
Looks like I missed one when I spoke about Bounded Pointers for GCC, Spotlight, etc. in my previous post. Parasoft offers: But note that these products use patented algorithms - number 5,581,696 and 5,860,011.You can search by patent number here.
And speaking of web programming, many Slashdot readers write web applications (Linux being a "server OS" as they say). How many of you validate the HTML that's generated by the web applications you write?
Your HTML should work well in any browser and it should be well designed for easy usability. I don't mean attractive graphics. I mean it shouldn't suck. Two links on design:
Finally, to make sure your HTML is valid, test it with the W3C HTML validation service. You have two choices of how to get your documents processed:- By uploading static files from your browser - most convenient during hand composition
- By entering its URL in a form - best for dynamic pages and final tuning of static pages
-
The Forum on Risks to the Public in Computers and Related Systems,
with such anecdotes as:
-
Re:Oops, should've used preview. *sigh*
The correct link is "The Cassini Division".