Slashdot Mirror


Professional Linux Programming

WrinkledShirt contributed this review of a Professional Linux Programming, a tome he says can "bend light" by its sheer size -- 1155 pages of multi-author, multi-language instruction and examples. Read on for his thoughts on the book's shortcomings as well as its strengths, and remember, lift with your knees, not with your back. Professional Linux Programming author Neil Matthew, Richard Stones, et. al. pages 1155 publisher Wrox rating 8 reviewer WrinkledShirt ISBN 1-861003-01-3 summary A brilliant book for anyone wanting to gain new Linux programming skills.

Introduction

Large programming books have a special sort of gravitational pull to them. It's a sort of siren's song for us techie types, with lyrics promising an endless fountain of information, more than you could ever possibly hope to use, superfluous only in the same way that you don't plan on reading the Encyclopaedia Britannica cover-to-cover anytime soon, either.

Unfortunately, this branch of the publishing industry responsible for these books is well aware of this, and as such there's a veritable critical mass of crap in that corner of the bookstore, some of it reading like blood being squeezed from a stone, with any number of useless chapters thrown in there just to meet some predefined page quota. Which is why it's such a relief to get a book like Professional Linux Programming that's 1155 pages long and contains a ton of material, with very little of it page-filler. Unless you already know it all, there is something valuable in this book for just about every Linux developer out there.

The Good

This book is loaded. Go straight to the table of contents if you need to see what I mean. The book's sheer ambition almost makes it worth picking up a copy. We need more like this -- not just for Linux, not just for programming, but for computer references in general.

If you've thought about developing for Linux, you've probably rubbed up against the impression that Linux and C go together like a wink and a smile. This book delivers on that impression, and it delivers huge. There are chapters on how to use C with PostgreSQL and MySQL databases, LDAP services, GTK+/Gnome/libglade and Qt/KDE, Flex and Bison, XML, sockets, RPC and CORBA (using ORBit). There are also sections on applied professional development theory, like design, debugging, security, deployment, and encryption.

If C isn't your bag, you might not find as much to get out of this book, but there are still sections on PHP, Python, documentation, package deployment, internationalization and shell database manipulation. Ever wondered how CVS or patching worked? It's in there. There's even material on device drivers and Beowulf clusters. By the end of this book you'll have more than just proof-of-concept familiarity with just about all the topics. For all but the more exotic subjects, you start at the simplest example, and the complexity gets increased with subsequent scenario, until the point where the chapter gets applied to the book's ongoing case study, which is the development of a hypothetical system to track a DVD store's business operations.

To give you an idea about what sort of depth to expect from this book, I'll talk about what it does with PostgreSQL. It shows you how to install it and maintain it from the command line; walks you through how to create basic databases; gets you comfortable with running SQL queries from the command line or scripts from a file; shows you how to interface with it using C (using both libpq functions and embedded techniques); shows you how to handle different kinds of transactions and cursors; talks about bringing it into PHP; and uses PostgreSQL for the core engine for the case study. Now, database work is obviously going to be getting special treatment when it comes to commerce development, but that's still only one of many subjects that this book tackles, most of which are designed to get you on the ground running before needing to resort to supplementary material.

As an aside, from a coordinating standpoint, this book is a marvel. Content was contributed from 15 separate authors and yet continuity is practically a non-issue.

The Not-So-Good

Typos. Oy vey. It's like getting a buddy to lend you his Ferrari, only to discover that there's a little bit of bird crap on the windshield that nobody can wipe off. Nice car, shame about the bird crap. Now, this book isn't horribly bad for it, but you shouldn't be surprised to find the odd error at the rate of one or two per chapter, usually in the form of an incorrect diagram symbol here or there or a formatting character that didn't quite translate into a code listing. Not too bad, but it's enough to be a mentionable problem. The Wrox people were good about putting up an errata page, but, unfortunately, it's empty. This may speak to the fact that the intended audience are hackers who can probably figure out the problem for themselves anyway.

Then there's the timeliness factor. This is a review of the first edition, which came out in September 2000, and it's unfortunate that with all the new technologies coming out (Bonobo, KParts, Mono, etc.) there isn't a second edition in the works as of yet. As such, people hoping to find useful information on programming with the more volatile APIs (specifically the GUI stuff) might want to look elsewhere. The information in this area isn't completely obsolete, just not as cutting edge as it was when the book first came out. Most of the other chapters are still current, and had this review been done near the publication date, the rating would easily be a 9 out of 10. That it still merits a review at this point, after being out for almost a year and a half, hopefully says something.

There's also the fact that even though this book contains so much, it doesn't really act as a definitive reference in any area that it describes. For instance, I was toying with the idea of making a code mangler for an XML-type language, so the chapter on Flex and Bison had me drooling. It wasn't long after reading it, though, that I found myself needing to go to GNU's Flex website just to get a better listing of all the regular expressions I'd need to use. That's symptomatic of pretty much all the chapters here -- it doesn't take long to outgrow the material when you need to apply it to your personal project. In this sense the title seems misleading; if you wanted to program in some of these areas at a professional level, this book would only be a starting point to another, deeper reference.

The huge breadth of knowledge also makes some omissions seem glaring. There is nothing on Perl or some of the other popular shell languages. Outside of two chapters, C++ is avoided like the plague. The section on deployment using automake is tiny enough that it's practically not there, which is surprising given the amount of time a reader spends churning out source code throughout the rest of the book. There's also a brief section on multimedia that, given the context of the rest of the topics, just feels out of place. Some of these shortcomings are made up in the intended predecessor to this book, Beginning Linux Programming , so you might want to give that book a whirl as well (TCL, BASH, and Perl all get treatment there).

And just to leave no superficial stone unturned, the cover is just awful -- it looks like a police lineup. Although I suspect there's a focus group somewhere that needs to answer for this, maybe it bodes well knowing that, considering the slightly expensive nature of this book, none of that money went into its outer design.

Conclusion

There are some people who aren't going to want to buy this book. Specialists, or people who want to specialize, likely won't get enough of what they want on any of the subjects here. Also, this isn't so much a learning guide that will give you exercises and quizzes, so if you're still at the stage where you need that sort of thing, this book might be a bit rich. If you're hoping for bleeding-edge stuff, wait for a second edition.

Also, it's taken for granted that the reader understands C pretty well, so if you don't, invest some time in that area first.

However, if you've got the fundamentals of Linux programming down pat but don't know where you want to go next, buy this book. If you're a seasoned developer and just need to get the basics of a new area in order to apply it to your ongoing projects, buy this book. If you're a generalist or a hobbyist, buy this book. If you need to design application prototypes for the Linux platform, buy this book. If you want to compare different APIs without having to commit to buying different textbooks, buy this book. If you get off on knowing you can do more Hello Worlds than any of your friends, buy this book. And if you like your references so big and fat that they bend light, buy this book.

Table of Contents Introduction
Chapter 1: Application Design
Chapter 2: Concurrent Versions System (CVS)
Chapter 3: Databases
Chapter 4: PostgreSQL interfacing
Chapter 5: MySQL
Chapter 6: Tackling Bugs
Chapter 7: LDAP Directory Services
Chapter 8: GUI programming with GNOME/GTK+
Chapter 9: GUI Building with Glade and GTK+/GNOME
Chapter 10: Flex and Bison
Chapter 11: Testing Tools
Chapter 12: Secure Programming
Chapter 13: GUI programming with KDE/Qt
Chapter 14: Writing the dvdstore GUI using KDE/Qt
Chapter 15: Python
Chapter 16: Creating Web interfaces with PHP
Chapter 17: Embedding and extending Python with C/C++
Chapter 18: Remote Procedure Calls
Chapter 19: Multi-media and Linux
Chapter 20: CORBA.
Chapter 21: Implementing CORBA with ORBit
Chapter 22: Diskless systems
Chapter 23: XML and libxml
Chapter 24: Beowulf Clusters
Chapter 25: Documentation
Chapter 26: Device Drivers
Chapter 27: Distributing the application
Chapter 28: Internationalization
Appendix A: GTK+/GNOME Object Reference
Appendix B: DVD RPC Protocol Definition
Appendix C: Open Source Licenses
Appendix D: Support, Errata & P2P.Wrox.Com Related Links

You can purchase Professional Linux Programming at Fatbrain.

56 of 194 comments (clear)

  1. View from 30,000 feet by McSnickered · · Score: 4, Insightful

    I own Beginning Linux Programming 2nd ed. and think it's great for reference and instruction. I really wanted to get the Professional book. But after spending about 30 minutes at Borders looking through it, I found that it covered a lot of subjects but it didn't seem to go in any significant depth in any one of them. I think maybe the scope was a bit too big and they should have covered fewer subjects in greater detail.

    --
    They call me the working man. I guess that's what I am.
    1. Re:View from 30,000 feet by sketerpot · · Score: 3, Informative
      I think maybe the scope was a bit too big and they should have covered fewer subjects in greater detail.

      There are plenty of books and web sites that go into specific topics in as much detail as you could want, and often more. These books are good for giving a very broad overview of lots of things, and teaching you a little about everything and making it easy for you to get into more detail if you like from other sources.

      In other words, I like this series. :-)=-

  2. Its a damn fine book. by Richard_at_work · · Score: 4, Insightful

    I have this one, i also have the Beginning Linux programming book by the same people. i can heartily recommend both books to anyone looking to get into linux programming in general or advanced c programming with linux in mind. This book covered stuff my C programming book didnt. They also have a huge following on their website, with very good mailing lists for that little extra help if thats what u need.

    1. Re:Its a damn fine book. by joyrider · · Score: 2, Informative

      I heartily agree - I definitely recommend visiting the Wrox forums if you're interested in any of the subject areas their books cover. They do have a slight Microsoft bias in terms of available forums, but there's a fair few Linux-related ones too.

  3. Undocumented Linux in 21 Days Unleashed Black Book by mintoman · · Score: 2, Insightful

    The "typos" comment is very telling.

    This sounds to me like a "shovelware" book, albeit too late to have any impact on anything other then the trees that died to print it. Do they pay the authors of these tomes by the pound?

    The fact of the matter is anything Unix programming related or C related has been done already and done well. These attempts to cash in by vendors like WROX (and their ilk, like QUE) by slapping "Linux" on the cover are just that, attempts to cash in.

    You want a decent Linux book, make sure it's in a nutshell and/or has a funky animal on the cover.

  4. Is it me or? by funkman · · Score: 4, Interesting

    Does every review end up being a 7 or 8 lately? Where are the really great books or really bad books? Or is the Book Review going to turn into here is the latest above average book we have reviewed

    1. Re:Is it me or? by Masem · · Score: 3, Insightful
      If /. was, say, a professional computing site/magazine, I would simply chalk it up to that... I've yet to see such a site given anything less than 'average or above' reviews, save for once in a while when they really slam a product.

      Here, I think because we have readers submitting book reviews, the reviewers are buying and reviewing books that would be of interest to them, and because of that, most of these books would already rank somewhat average-like because of the content. In addition, the reviewers have the ability to pre-review books at a store...if they're considering a book based on title alone, and open it up to see crap, they're not going to buy it nor review it. Thus, because these non-professional reviewers are only buying books that will already have some interest to /. reading in content and quality, I would expect very very few "less than average" books to be reviewed.

      Maybe /. ought to solicate some of these reviewers with $40-50 and ask them to go out and review a book that most here would expect to be crap, just so that we see what those reviewers say about the opposite end of the spectrum. Or maybe the reviewers should consider that a 0-10 scale on /. is not the same as a 0-10 for any book review, as our bottom rung would probably fall around a 3 or 4 on a normal scale, with our average expection (our 5) being a 6 or 7 on the unadjusted scale.

      --
      "Pinky, you've left the lens cap of your mind on again." - P&TB
      "I can see my house from here!" - ST:
    2. Re:Is it me or? by kubrick · · Score: 2

      Thus, because these non-professional reviewers are only buying books that will already have some interest to /. reading in content and quality, I would expect very very few "less than average" books to be reviewed.

      And those ones that are reviewed and given low marks are more likely to be a public safety warning than anything else.

      e.g. "I bought this book, please don't make the same mistake..."

      --
      deus does not exist but if he does
  5. Typos by jargoone · · Score: 4, Interesting

    I think a certain number of typos in a book that I pay for should allow me to receive a refund. Particularly in a technical manual, when you are trying to learn something, typos can really lead you down the wrong path. Especially with the number of readers that would be willing to proofread for free prior to the book being published, there is no excuse.

    1. Re:Typos by foobar104 · · Score: 3, Interesting

      I think a certain number of typos in a book that I pay for should allow me to receive a refund.

      Knuth still offers a bounty for every error-- typographical, factual, logical, whatever-- found in any of his books. If I recall, the bounty for errors in TAOCP is up to $2.56 per item.

      The result? Pretty damn near error-free books. Go, capitalism.

    2. Re:Typos by (H)elix1 · · Score: 3, Interesting

      A close friend of mine wrote a Perl book that was published by one of the biggies. He figures he made well under minimum wage for the time spent - not one of those template style books for sure.

      Anyhow, there were a few fubars on his part, but the editors(?) introduced a lot of bugs in the code when they horked around with the format. Deadlines prevented a solid review of the changes. A second revision fixed it, but just like us in the field - some times you have to hit a deadline.

      It was a hoot hearing him sigh that while the second revision was "patched", he liked the artwork on the first revision....

    3. Re:Typos by gorilla · · Score: 2

      It's mainly symbolic though, since very few people who actually get a check from Knuth cash it.

    4. Re:Typos by Mignon · · Score: 3, Funny
      A close friend of mine wrote a Perl book... but the editors(?) introduced a lot of bugs in the code when they horked around with the format.

      They would have done even more damage if it had been a Python book.

    5. Re:Typos by haruharaharu · · Score: 2

      since very few people who actually get a check from Knuth cash it

      Yeah. I'd frame mine.

      --
      Reboot macht Frei.
  6. Re:Want a brand new car for free? by foobar104 · · Score: 3, Offtopic

    just so you know, comparing a linux company to a car company is ver different.

    Actually, it's a much better analogy than you realize. The cost of the materials and labor that goes into producing a single car is nothing-- a few thousand dollars at the very most, and the vast majority of that in labor costs-- compared to the tens of millions of dollars spent to conceptualize and design that car model.

    To my knowledge, nobody's ever done a cost-accounting for, say, Red Hat Linux 7.2. Let's say it cost a grand total of $6 million to produce Red Hat 7.2, going all the way back to Linus's spare time. Your plan for recouping those costs and eventually making a profit is called a business model, and the jury is still very much out on whether it can be made to work.

    But really, who cares? After all, you can't spell analogy without anal.

  7. The NEW DOORSTOP IS HERE!!!! by CyberGarp · · Score: 3, Funny

    The much awaited new doorstop from WROX press has arrived. It's in the traditional red to coordinate with the theme of their current line of doorstops. This latest addition is really large in case the door has a high clearance and extra heavy for those doors with large springs. It also features a fashionable "Linux" on the cover so you can be the envy of your guests, assuming you ever have any.

    --

    I used to wonder what was so holy about a silent night, now I have a child.
  8. Re:Undocumented Linux in 21 Days Unleashed Black B by Geeky · · Score: 2, Funny

    I've got the beginners book, and reckon it's a cut above the QUE and SAMS tomes. As an overview of many topics it's great.

    Probably as good as O'Reilly, which can sometimes be a little too terse (when I want documentation that only makes sense when you understand the topic anyway, I'll read a man page).

    The one thing I can't stand about Wrox is the author pictures on the covers - definitely prefer the animals...

    --
    Sigs are so 1990s. No way would I be seen dead with one.
  9. Re:Undocumented Linux in 21 Days Unleashed Black B by dattaway · · Score: 2

    Granted, typos are annoying. The value of these books goes beyond a compilation of information, but the wealth of information is organized in an easily digestible way. Its like reading a newspaper on a lazy afternoon. Compare to that of taking a casual interest and reading through the howtos and other documentation through the net. This book can be taken around the house or at appointments for casual reading. The Beginning Linux book was an enjoyable read and the Professional Linux book appears to be on scale with those huge electronic engineers books for reference or learning technical knowledge in spare time.

  10. A plethora of similies by saider · · Score: 3, Funny

    Like ants at a picnic, there are plenty of similies in this review. No doubt the work of someone who has actually read things other than programming manuals.

    --


    Remember, You are unique...just like everyone else.
  11. Re:is it me... by yeOldeSkeptic · · Score: 2, Funny

    Of course its going to be strictly Linux/open source oriented. After all the money you spent on that MCSE, the MSDN subscriptions, etc..., why would you be so kind as to give out tips to an anonymous fellow on the internet? Even if slashdot started out with an eclectic mix of platforms, it will soon evolve into something that slashdot is now. My guess is that soon, there will be no microsoft partisans on this site. Except for those few lost fellows who can't afford the MSDN.

  12. feel free to submit your rated-2 and -3 reviews :) by timothy · · Score: 4, Informative

    Remember, Slashdot book reviews are submitted by people who read the books and jotted down their thoughts.

    It's true that most Slashdot book reviews fill the 7-9 range, but that shouldn't be *that* surprising -- how many people *bother* with the time and hassle of finishing a book they think is awful (or just well below par) in order to write a review of it? Paid reviewers on a contract, assigned books whether they like 'em or not, Yes -- but that's not how we do it :) Instead, we rely mostly on self-selection; hopefully this means that people distill their good and their bad book experiences, but since people (rationally) try to minimize their bad experiences anyhow, it's natural that they instead choose to finish, enjoy and pass on ones they like.

    We may decline book review submissions that are hard to read, abusive, don't fit our book review guidelines well enough, etc, but never for a low rating. That rating is up to the reviewer.

    --
    jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
  13. Re:This book was published 16 months ago by psykocrime · · Score: 2

    Exactly how is a review of a 16-month old book newsworthy?

    It's not meant to be news, it's meant to be a book review. I've seen plenty of Slashdot book reviews that weren't of recently minted books. I don't see why it's a problem. As long as the book is still relevant in it's subject area, a review is beneficial.

    Hell, the review may be beneficial even if the book ISN'T still relevant, if the book review brings that point out, thereby helping somebody avoid a useless purchase.

    --
    // TODO: Insert Cool Sig
  14. Re:true but, by dattaway · · Score: 2

    Getting worse? Ha! Slashdot was started by c.o.l.a regulars, so this shouldn't be surprising. Its much, much tamer these days, but still expect your daily dose of Windows bashing. Unfortunately, slashdot attracts these pushbutton Windows users like flies since the Chips&Dips days.

  15. typos = training tool? by simetra · · Score: 2, Interesting

    I bought a different Wrox book, and found so many typos that I emailed Wrox offering to tell them all the errors I found, in exchange for a free book. I never heard back from them. Other than the typos, the book was fine. In fact, the typos caused me to stop and pay closer attention, so perhaps it's actually a good training tool?

    Really though, I suspect Wrox doesn't have a proof-reader. Or, their proof-reader is drunk all the time.

    --

    "Would it kill you to put down the toilet seat?" -- Maya Angelou
  16. I never did like Wrox by hardburn · · Score: 2, Informative

    Am I alone in thinking Wrox generaly sucks? Their Beginning Java 2 book was used in my Java course last year. The book is OK if you're just learning Java, but is almost useless as a referance (possibly because they want you to buy the referance as a seperate book). Don't get me started on that Ivor Horton guy (aka, "Evil Horn").

    --
    Not a typewriter
    1. Re:I never did like Wrox by lelitsch · · Score: 2, Informative

      I wouldn't say generally. Some of their Java tomes are horrible, and I didn't especially like their first edition of Beginning Linux Programming as a beginners book. Mainly because a lot of the topics, techniques etc were at least five years out of date. And because they made odd choices what to cover like TCL instead of Perl/Python.

      But their Professional series, especially Professional Linux Deployment, are pretty good if you just need to look something up and actually would like to see worked examples. For example, PLD is as far as I know the only book that actually takes you line by line throuh setting up Samba, or installing and configuring a ftp demon from scratch. While we are gerneralizing shamelessly, I like O'Reily or AW, but the first often decribes things in the same amount of detail as the help pages and AW usually turn the description of minor tasks into a 100 page CS class.

  17. Re:Want a brand new car for free? by MartinG · · Score: 2

    the jury is still very much out on whether it can be made to work.

    What do you mean by work? If the people doing the work and happy and the people using the products are happy then it works. Who else matters?

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
  18. C is great..but looking for good C++ Linux book by proxima · · Score: 4, Interesting

    Most Linux programming books deal almost exclusively with C, since a good number of programs (and the kernel) are C. However, I am looking for a high-quality book about Linux programming with C++.

    I have a good C++ book that covers the fundamentals of OO programming and the language, but I would like a book that is a bit more Linux-specific. Makefiles, QT, gtk-- (perhaps), database programming would all be nice. I have seen QT books, but I am looking for something a bit more general/comprehensive. Any recommendations?

    --
    "The universe seems neither benign nor hostile, merely indifferent." --Carl Sagan
    1. Re:C is great..but looking for good C++ Linux book by Dominic · · Score: 2, Informative

      You could do worse than Jesse Liberty and David Hovarth's "Teach yourself C++ for Linux in 21 days", published by Sams. There is also Tom Swans "Tom Swan's GNU C++ for Linux", published by Que (I think).

    2. Re:C is great..but looking for good C++ Linux book by proxima · · Score: 2

      There is something to be said for a well-written dead-tree version in a comprehensive, tutorial form. If a tutorial online is longer than about 8 pages, I end up printing it anyway. I might as well have it been in a cohesive fashion and save myself the paper.

      --
      "The universe seems neither benign nor hostile, merely indifferent." --Carl Sagan
    3. Re:C is great..but looking for good C++ Linux book by obobo · · Score: 2, Interesting
      I don't know of a good Linux C++ book... C++ really isn't the default language for Linux, and it shows, especially in gcc and the standard library. It's gotten alot better in the past few years, but it still has a ways to go. Not to say that Windows is any better... VC++ is even worse (although the APIs are all there).

      My advice:

      Use the STLPort, not the GNU Standard C++ Library. It actually conforms to the spec, and has fewer bugs. This is huge if you're going to be doing multithreaded programming.

      Use the Boost libraries. They're gonna be put into the next generation standard, and it is good stuff.

      Databases: check out the OTL (Oracle Template Library) for interfacing with Oracle. I haven't done too much with other DBs. The OTL web page makes it look like a "make money fast" scheme, but it works, and the mainainer apparently has no life, and has nothing better to do than patch it whenever a user whines or Oracle changes versions :)

      Makefiles: look at the man/info pages for "make", or look at the (old but still good) O'Reilly book on Make. There's really no difference between C and C++ there.

      I haven't done much with GUI dev, so I don't know of a good ref for QT or gtk--. I can say that FLTK has good online docs, and is quite easy to use.

      As many others have said elsewhere: the best documentation is usually on the project page for the tool you're interested in. Finding the right tool, though, can be hard.

    4. Re:C is great..but looking for good C++ Linux book by elflord · · Score: 2
      Most Linux programming books deal almost exclusively with C, since a good number of programs (and the kernel) are C. However, I am looking for a high-quality book about Linux programming with C++.

      You'll have a hard time finding such a book, and there's a good reason for this -- Linux books tend to document the POSIX and X/Open APIs. Basically, the traditional APIs are all C based. There are books for C++ libraries like Qt and KDE, but the Qt documentation is so good that you're better off just using the online version. If you're fond of dead trees, I suggest you print out the tutorials.

      Regarding learning C++ on Linux, I'd suggest you focus on mastering C++ (BTW, one book is NOT enough. Not even close), and try to learn some of the C APIs. It's also interesting to try things like wrapping things in classes (eg Sockets)

      Cheers,

  19. Re:Undocumented Linux in 21 Days Unleashed Black B by sql*kitten · · Score: 3, Interesting

    This sounds to me like a "shovelware" book, albeit too late to have any impact on anything other then the trees that died to print it. Do they pay the authors of these tomes by the pound?

    I wrote some of Professional Oracle 8i Application Programming, and was paid by the page.

    The fact of the matter is anything Unix programming related or C related has been done already and done well. These attempts to cash in by vendors like WROX (and their ilk, like QUE) by slapping "Linux" on the cover are just that, attempts to cash in.

    Unix and C, perhaps, but there are all the layered products to consider also.

  20. What I really want to see... by wls · · Score: 5, Insightful

    What I really want to see is a book that assumes you know how to sling code, but addresses the specifics on how to become part of the coding community.

    I've seen lots of lists that say:
    0. Get the latest version of the code from CVS.
    1. Read and understand the code.
    2. Make changes.
    3. Send your patches to the maintainer.
    4. Hope they get accepted.

    There are a lot of programmers out there who don't have the minimum set of knowledge to perform the admin part of steps, but do have the technical know how to write solid code.

    How many people have code but don't know how to set up a good makefile, but could if a decent template were explained? How many people would like to have configure scripts, but aren't sure how the magic works? How many people aren't sure how to put their code in CVS or upload it to SourceForge? How many people want to know how to build packages, whether by RPM or some other means? How many people don't know what questions users need answered in documentation, nor how to put it in a man/info page?

    Simply making a breadth, but shallow, offering consisting of nicely printed man pages that are indexed hasn't helped much. It'd be nice if someone took a simple project and followed it end-to-end.

    (At serious risk to my inbox, if enough contributors send me suggestions, tidbits, or the process as _they_ see it, I'll make a decent effort and putting something together.)

    1. Re:What I really want to see... by wls · · Score: 5, Insightful
      There are a lot of programmers out there who don't have the minimum set of knowledge to perform the admin part of steps, but do have the technical know how to write solid code.

      > I very much doubt that. The former is generally easier than the latter.

      I've written a number of various utilities and applications for the public domain. Some shareware was successful enough it still results in checks in the mail, some applications I personally witnessed in use by over 300 people each day over the course of four years, and many others have just faded away with time and platform changes. On the commercial front, I've written a lot of flagship products, directed development efforts, and been highly involved in QA and SCM. I like to think I can code my way out of a paper bag.

      Naturally to do all those things, I've needed to know various languages, compilers, bug tracking tools, version control systems, build automation, and documentation. I like to think I've successfully been involved with much of the software lifecycle.

      But, when I first dipped my foot in the Linux pool, I was trying desperately to map my prior experience from PC to Linux.

      I knew Microsoft and Borland's C++, but couldn't get certain parts of the STL to work with gcc. Oh, that part was broken (it's hence been fixed).

      I knew SourceSafe and PVCS inside and out and had been the CM manager of 70 people. Just mapping the terminology from those products to RCS/SCCS/CVS was a small barrier of its own when I first started. Things didn't help when the some standard CM tasks required implementation knowledge of CVS and tweaking the repository directly.

      In corporate environments, we had access to the version control system directly; we were immediately responsible for the code. There was no need to generate patches for submission, or apply them.

      In cases where the software wasn't designed to be portable, people never took that into account. The general philosophy had to change for Linux.

      Tired of Microsoft's or Borland's make? Use OpusMake. Want to build an installation package? Use InstallSheild or another varient. Hard core debugging? Soft/ICE. Powerful tracing? Any NuMega product. Documentation? Word. PageMaker. FrameMaker.

      But assuming I've got GNU Make, autoconf, RPM, gdb, LaTex, and a number other things under my belt -- everything has to be done in a way that's acceptable and receptive to the community.

      The point I'm going with is this: there's a lot of untapped talent out there, because of the transitional Rosetta stone is kept too close to our chest.

      We share our code, but not our process and techniques. We assume that just because people haven't cut their teeth on Linux, know GNU utilities inside and out, and know how to do things the way we do that they are neophytes. That needs to change.

      If the Linux and OpenSource community wants to tap the knowledge and talent of the commercial world, we need to not just provide software tools and grass movement marketing, but we need to provide the intellectual resources as well.

    2. Re:What I really want to see... by Arandir · · Score: 2

      There are a lot of programmers out there who don't have the minimum set of knowledge to perform the admin part of steps, but do have the technical know how to write solid code.

      I remember the first patch someone sent me. I was overjoyed that someone was actually using my program! Then I realized I didn't know how to apply a patch. So I patched it manually through cut-n-paste. Never again.

      (at least I knew how to write a makefile rather than letting some IDE do it for me)

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    3. Re:What I really want to see... by seanadams.com · · Score: 2

      How many people have code but don't know how to set up a good makefile, but could if a decent template were explained? How many people would like to have configure scripts, but aren't sure how the magic works? How many people aren't sure how to put their code in CVS or upload it to SourceForge?

      I doubt if you've actually tried doing this stuff, and failed for lack of documenation. Yes, make, autoconf, etc are difficult programs, but there are many books and web sites on the topic. I'm sure if you allocated 8 hours and a 6-pick of Dew to the task, you'd get the basic idea.

      CVs and sourceforge are *much* easier than they appear. There is a book called "open source development using CVS" which covers CVS in excruciating detail. If you want to learn CVS I'd suggest just diving in with the basic functions, and don't worry about learning how to use a more difficult feature (like branching) until you feel the need for it.

      These issues:

      1. Read and understand the code.
      2. Make changes.
      4. Hope they get accepted.

      Are all specific to the project and the development community you want to join. I think that as you get into open development, you will most likely find that projects always want help, and they don't expect (or even want) everyone to be a seasoned hacker. If you're a beginner, lurk on the mailing list for a while, read the code, then introduce yourself. Read the bug tracker on sourceforge and see if there's any housekeeping you can do there, or any small bugs that need fixing. Send a diff against the current source. Or send a big diff. Get involved. Answer people's questions. Ask for CVS write access.

      You're asking how to join a community. The answer is listen & learn, introduce yourself, make some friends, find something to do. It's no different than real life.

  21. Just another overview by Joohn · · Score: 2, Insightful

    These books always try to cover too large fields. I guess reading the title is enough to realize that. I have bought a couple of programming books like this one, and they are always very interesting. But they never go in to the depth of any area, so it's quite impossible to acctually learn any real programming from them. So, it usually ends up with the fact that I'm finding the information I wanted where I should have looked in the first place, on the web.

    1. Re:Just another overview by elflord · · Score: 2
      These books always try to cover too large fields. I guess reading the title is enough to realize that. I have bought a couple of programming books like this one, and they are always very interesting. But they never go in to the depth of any area, so it's quite impossible to acctually learn any real programming from them. So, it usually ends up with the fact that I'm finding the information I wanted where I should have looked in the first place, on the web.

      The books are intended as a primer to get you up to speed, so that you'll be able to work with the reference docs once you're done with their tutorial. You won't find this much in the way of good tutorial material on the web. And in my experience, it works. I don't know why you're going to the web all the time, most of the stuff in this book has reasonable reference documentation.

  22. Re:Want a brand new car for free? by MartinG · · Score: 2

    "What kind of working business-model is that"

    Clearly a business has to pay as much as is neccesary to hold on to their developers. In some cases though, that amount just happens to be zero and the developers are very happy with that.

    The child workers you talk of are NOT happy with their level of pay. Many of the developers whose code gets used by Redhat etc earn money in other ways.

    It seems (correct me if i'm wrong) that you have this idea that all useful work MUST be financially compensated else it doesn't "work"

    Well, in my mind that is nonsense. Financial compensation is something that is only neccesary to provide a motive to get people to do things that otherwise nobody would do. It just happens to be the case (sadly) that this currently includes almost everything.

    You don't have to "compensate" me for writing code in the same way that you don't have to for playing football with my friends. I do both for fun. It just happens that one is useful to others without any extra work from me and instead of trying to keep it all to myself and extract as much money from everyone else as possible using strict licenses etc, I chose not to be greedy.

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
  23. Re:Want a brand new car for free? by foobar104 · · Score: 2

    What do you mean by work? If the people doing the work and happy and the people using the products are happy then it works. Who else matters?

    I think a business that works can be pretty clearly defined as one that survives. A business can't lose money and survive; if it does, then it's not a business. It's a church or a dot com or something.

    The socialist ideal (don't flame me yet!) of a world in which we all work for love and money isn't important is a neat idea and all, but that's not the world we live in. In order to live, I have to make money, because despite my constant protestations to the contrary my bank won't give me my car and my house for free. Can't understand it myself. I explained to them how residences and transportation should be Free (as in libre) and free (as in gratis), and I forwarded them some of Stallman's writings, but they just don't seem to get it.

    So I'm stuck being a part of this whole "economy" thing. Therefore I must wedge myself into a situation in which somebody gives me a fairly substantial amount money on a regular basis. We call these situations "jobs."

    Jobs are provided by companies to people based on the premise that the company will be able to take more money in than it gives out. Come to think of it, maybe that's why my house wasn't free....

    Anyway, if the company that pays me (say, Red Hat, although it isn't) gives out more money than it takes in, eventually it will run out of money. The people who work for the company (say, Red Hat) will be faced with the sudden, unpleasant realization that their houses aren't Free (as in libre) or free (as in gratis). They've gotta find another one of those "job" situations so they can make their mortgage payments.

    Poof. The company (say, Red Hat) disappears.

    I'd say that's how I define "works." If it doesn't do what I just described (the "poof" part), then it "works."

  24. Re:Want a brand new car for free? by mangu · · Score: 2
    The cost of the materials and labor that goes into producing a single car is nothing

    I want nothing from you. Will e-mail my bank acount #. Or my snail-mail address, if you prefer sending a check.


    nobody's ever done a cost-accounting for, say, Red Hat Linux ... going all the way back to Linus's spare time.


    Linus's spare time cost nothing to Red Hat. What he does in his spare time is his own choice. Compared to other alternatives, creating software is one of the less costly ways of spending one's spare time. And the pleasure of having created one of the most famous softwares in the world surely brings as much "profit" as, for instance, surfing a "perfect wave"?

    What the business model studies fail to take into account is that open source software goes both ways. A company that develops it may not be able to recover some costs directly, but, on the other hand, that same company may also use free software created by others without paying anything for it.
  25. Re:Want a brand new car for free? by jdavidb · · Score: 2

    To my knowledge, nobody's ever done a cost-accounting for, say, Red Hat Linux 7.2.



    Actually, a cost accounting like that was done, once, but I can't seem to find it anymore. It was very interesting; showing how many lines of code were produced by GNU, how many were in the kernel, how many were in X, and so on. It included an estimate of the cost to produce "Linux" (i.e., a GNU/Linux system). I'm guessing it was based on an earlier version of RedHat, like 7.0, or maybe Debian.

  26. Re:Undocumented Linux in 21 Days Unleashed Black B by Scooter · · Score: 5, Interesting

    "Do they pay the authors of these tomes by the pound? "

    Almost. I wrote a few chapters for an "Unleashed" Linux book by Sams which they canned unfortunateley, and they pay by the chapter which has to be around the 20 page mark (given a standard font, ruler settings etc.). They don't pay very much either - it was about $600/chapter back in 1999 (and they never paid anyway)and it was taking me about a week to 10 days to do one - as it's not like you're just offering your $.02 in a web forum - every claim, and fact has to be checked as much as possible.

    Yes indeed - C is still C when it's in a Linux environment. I think there is a place for these "lets cover everything" books but I think it's more appropriate at the "introduction" end of the market - I have a copy of Wrox's "Beggining Linux Programing" and its good - I still look in now if I need to see how to do soemthing simple in a language I don't really use that often - say like "what's the syntax of an if statement in Perl then?" a quicj flick through to an example will often provide the answers.

    Yes - the funky animal books are more in line with what I want: just the facts.

  27. Too big, but otherwise good by smoon · · Score: 3, Informative

    I've got this book, and actually read quite a bit of it. My only complaint is that it's too big to effectively balance on your desk and work with next to a computer. Maybe I just need a bigger desk.

    On the other hand, it sure would be nice to have this in a 3 or 4-volume boxed set. I'd pay a few bucks more for that format -- smaller (300-400) page books are a lot easier to handle.

    --
    "But actually trying to use m4 as a general-purpose langage would be deeply perverse" --ESR
  28. Re:Want a brand new car for free? by Anonymous Coward · · Score: 3, Informative

    The study was of Debian Potato (stable) and it's here.

    A quote for the impatient:
    It is also shown that if Debian had been developed using traditional proprietary methods, the COCOMO model estimates that its cost would be close to $1.9 billion USD to develop Debian 2.2..

    Note that Debian stable is very conservative and now quite out-of-date. I hesitate to think how much unstable, or something like Mandrake, would have cost.

  29. Re:Want a brand new car for free? by foobar104 · · Score: 2

    What the business model studies fail to take into account is that open source software goes both ways. A company that develops it may not be able to recover some costs directly, but, on the other hand, that same company may also use free software created by others without paying anything for it.

    Net economic result: zero.

    Which explains why lots of people believe it's impossible to make money in Free Software.

  30. Bends Light? by Tim+C · · Score: 2

    Of course it bends light, all masses do so.

    As it's only a book, though, I would challenge anyone to measure the effect it has on a passing light ray :-)

    </physics nerd>

    Cheers,

    Tim

  31. Re:Want a brand new car for free? by jdavidb · · Score: 2

    Thank you! I was hoping some kind soul would post the link.



    I also see a link to this, which may be the article I remembered. Both are very interesting.



    The practical upshot is that Linux (the system) represents more than a billion-dollar development effort.

  32. Re:Want a brand new car for free? by jdavidb · · Score: 2

    If you'll check the articles mentioned in the post below, you'll see that six million dollars is a few orders of magnitude too small.

  33. 1155 pages? Not that big a deal... by jejones · · Score: 2

    ...that's about the size of the typical introductory C++ book these days, isn't it?

  34. Certainly the case with PLP by Christopher+B.+Brown · · Score: 2
    I wrote the chapters in PLP on CORBA, and found, when I went through it, there were some tpyos that I was pretty sure I had not introduced. (There was one place where it looks like someone rewrote some material; didn't read like something I'd write...)

    There were indeed some deadline issues, which makes it difficult to generate a flawless product.

    This is going to be a problem with any situation where there is urgency in getting the book pushed out. Donald Knuth may have the "clout" to get Addison Wesley to wait for him to be happy with the results; that is definitely not going to be the case for these sorts of books with garish red covers.

    --
    If you're not part of the solution, you're part of the precipitate.
  35. Re:Undocumented Linux in 21 Days Unleashed Black B by JamesOfTheDesert · · Score: 3
    This sounds to me like a "shovelware" book, albeit too late to have any impact on anything other then the trees that died to print it. Do they pay the authors of these tomes by the pound?

    I co-wrote Pro VB 6 XML for Wrox, and choose royalties. (Paid better, long term, than the flat rate!) If you're writing just one or two chapters for a book you're likely to be offered only flat rate, which is per page. But the editors don't encourage cruft.

    Also, I don't think Wrox is merely trying to "cash in", though they are in business to sell books. The folks I've dealt with are sincerly interested in developing atttention to Linux and open source development.

    --

    Java is the blue pill
    Choose the red pill
  36. Re:Undocumented Linux in 21 Days Unleashed Black B by lahi · · Score: 2, Insightful

    I have bought a couple of books o the 2" type. Judging by those, I have simply concluded that no book thicker than 1" (OK 1 1/2" if it's hardcover) is worth reading.

    The best book I've (re)read recently is _The AWK Programming Language_, which I bought for 1 buck at a library sale of old books. I wonder why a library would sell such a classic, but now at least it has a loving home. This book is 220 pages including index and content listing, and quite a bit can be learned from it - and it is a joy to read. I look forward to the day I dig up a copy of _The UNIX Programming Environment_ in a heap of cheap books.

    Small is beautiful!

    -Lasse

  37. Any mass bends light by pmancini · · Score: 2

    All mass warps space, so it doesn't matter if the book was one page or one million pages -- it would still bend light.

    :)

    Of course the detectability of it spacial warp is dependent on total mass, perhaps that is what was meant by the author of the book?

    --Pete

  38. Re:1155 pages? Not that big a deal... by elflord · · Score: 2
    ..that's about the size of the typical introductory C++ book these days, isn't it?

    This is part of the "telephone book" trend. Because C++ is popular, there are a lot of heavy C++ books written by incompetents. I wonder if they think anyone's going to actually read all of those pages ?

    FYI, if you're looking for a more concise, yet readable intro to C++, see "Accelerated C++", Koenig and Moo. The book is 300 pages long, and it covers all the essentials. Accelerated C++ has introduced iterators, exceptions, std::string, std::vector and std::list by page 100, whereas most books are still explaining if/then at that stage.