Slashdot Mirror


The Architecture of Open Source Applications

jrepin writes "In new free book the authors of twenty-five open source applications explain how their software is structured, and why. What are each program's major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to this book provide unique insights into how they think." Note: the whole text of the book, under a Creative Commons license, is available on the site.

50 of 85 comments (clear)

  1. Is There An Epub Format? by ideonexus · · Score: 1

    I don't understand why so many people put "Free Book" on the web, but put it in an HTML page with links to the various chapters. Is it too much to ask for the convenience of a single PDF, MOBI, or EPUB I can download to an eReader? They went to the trouble of publishing on Lulu, could they take the additional step of checking the "Make my book available as a free ebook" checkbox so I could download the PDF that Lulu uses to print it?

    Other than that, this sounds like something I look forward to reading, after I copy and paste each chapter into a Word Document and convert it myself. : )

    --
    i ~ Celebrating Science, Cyberspace, Speculation
    1. Re:Is There An Epub Format? by blair1q · · Score: 1

      If they're paying for "free book" by charging advertisers for your clicks, then that's why you get the wisdom for "free".

      Also, despite the chronology of their development and deployment, webpages are newer and better technology than e-Books are.

    2. Re:Is There An Epub Format? by wondafucka · · Score: 3, Insightful

      I don't understand why so many people put "Free Book" on the web, but put it in an HTML page with links to the various chapters. Is it too much to ask for the convenience of a single PDF, MOBI, or EPUB I can download to an eReader? They went to the trouble of publishing on Lulu, could they take the additional step of checking the "Make my book available as a free ebook" checkbox so I could download the PDF that Lulu uses to print it?

      Other than that, this sounds like something I look forward to reading, after I copy and paste each chapter into a Word Document and convert it myself. : )

      I'm sorry, I thought you were a programmer.

    3. Re:Is There An Epub Format? by hedwards · · Score: 2

      Indeed, I'd say that it's a fair compromise. Probably the other option would be a dynamically created PDF complete with ads. It's generous to give away a book, even with advertising.

    4. Re:Is There An Epub Format? by Anonymous Coward · · Score: 1

      use wget, then calibre to convert it to any of those formats

    5. Re:Is There An Epub Format? by asdf7890 · · Score: 2

      I don't understand why so many people put "Free Book" on the web, but put it in an HTML page with links to the various chapters. Is it too much to ask for the convenience of a single PDF, MOBI, or EPUB I can download to an eReader?

      I don't understand why so many people, when given good content for free, moan that it is not in the format they prefer. Is it too much to ask that they pony up for the print version, or make a modicum of effort to convert the content if they so desire?

      On a less factious note: this is how I sometimes prefer to read such content. A good PDF (by "good" I mean "properly formatted as pages", not just the HTML hastily thrown at a PDF generating virtual printer) is nice for printing sections or the whole document, but HTML is usually better for on-screen reading IMO. Different stroke an' all that.

    6. Re:Is There An Epub Format? by arwild01 · · Score: 3, Insightful

      I don't understand why so many people put "Free Book" on the web, but put it in an HTML page with links to the various chapters. Is it too much to ask for the convenience of a single PDF, MOBI, or EPUB I can download to an eReader?

      Since it's Creative Commons, Derivative works should be allowed. I took a stab at pulling down all the files with wget and then generating an EPUB using Calibre. Don't claim the format is perfect, this is the first time I've ever tried anything like this. However, it should be readable. If you interested, I've put it up on Google Docs.

    7. Re:Is There An Epub Format? by Fnord666 · · Score: 1

      Other than that, this sounds like something I look forward to reading, after I copy and paste each chapter into a Word Document and convert it myself. : )

      Please do us all a favor and put the chapters in the correct order when you do. The chapter on Continuous Integration, listed as Chapter 9, is actually Chapter 6 for example.

      Thanks.

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    8. Re:Is There An Epub Format? by grantek · · Score: 1

      Thanks, I've grabbed it, will check it out later.

      I would have bought a single-file downloadable ebook from the AOSA site if they offered it though...

    9. Re:Is There An Epub Format? by bennettp · · Score: 1

      Works well in Stanza for iPhone. Thanks!

    10. Re:Is There An Epub Format? by maxwell+demon · · Score: 1

      Ok, before anyone responds to this, I should note that I just read the post below mine that says "use wget, then calibre..." That's actually not a bad way to do it - I didn't think of that. However that doesn't make you a programmer, that makes you a "super user," as stackexchange would call it.

      Wow, I get superuser privileges by downloading the book and converting it with calibre? :-)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    11. Re:Is There An Epub Format? by asdf7890 · · Score: 1

      If you think that is a trait unique to slashdot, then you have a higher opinion than I of human nature in general!

    12. Re:Is There An Epub Format? by Akima · · Score: 1

      See their FAQ entry titled "[2011-05-24] Is the book available as a PDF or in e-book format?" http://www.aosabook.org/en/faq.html
      "We're working on it."
      "If you are an expert, and would like to help, we'd be grateful for assistance. "

    13. Re:Is There An Epub Format? by arwild01 · · Score: 1

      Me too. :)

    14. Re:Is There An Epub Format? by emj · · Score: 1

      If it technically can't do HTML: What's *wrong* with you, buying such a device?

      Most ereaders have a hard time handling HTML files, the ereders are made for books that only have the function "read next page". So HTML files where you need to click links and such is hard to read on ereaders. (IMHO that's even true for devices with touch screens)...

  2. Re:FOSS costs jobs. by blair1q · · Score: 1

    Your next job will then be:

    1) massage therapist
    2) nail technician
    3) prostitute
    4) photo-posting website TOS-enforcement specialist (i.e., manual kiddie-porn filter)

  3. Re:Wait... by hedwards · · Score: 2

    I'm not going to mod it, but those mods would have a point. The implication that the GP is making is that commercial vendors don't slap together code like a bunch of cowboys. The problem is that some outfits will and others won't, at least with the open source option you can take a quick look and see. Granted a non-coder isn't going to know conclusively, but if the comments are there and the formatting looks good, the chances are also good that whoever it was that coded the program was taking at least some pride in their work.

  4. Some good stuff by oldhack · · Score: 1

    I scanned the Sendmail chapter and it was pretty interesting - an important piece of Internet's software infrastructure that evolved over time along with the internet.

    Eclipse chapter is pretty good if you have (or are interested in) written Eclipse plugins.

    Good stuff.

    --
    Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    1. Re:Some good stuff by Lennie · · Score: 1

      What I don't get how could anyone choose to put Sendmail in the book instead of Postfix, which obviously has a better architecture.

      --
      New things are always on the horizon
    2. Re:Some good stuff by oldhack · · Score: 1

      It's not about the good ones, but ones out there, and sendmail is certainly ubiquitous and its history teaches us a lot.

      Eclipse (the other section I read), despite her success, has gathered quite a crud along the way (anyone who tried to write plugins would know this), and is evolving to adapt to new challenges.

      I think I'll kick a few bucks their (book) way.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
  5. Re:FOSS costs jobs. by kerohazel · · Score: 1

    The only measure of economic prosperity that matters is actual resources (goods and services with real value) produced. FOSS does this.

    Measuring economic prosperity by numbers of jobs is the kind of backwards thinking that artificial scarcity encourages.

    No doubt your great-grandfather was up in arms about horseless carriages putting horses out of work.

    --
    Skype is too convoluted... Now I'm reverse-engineering the Kyoto Protocol.
  6. Asterisk? Really? by grahamsaa · · Score: 1

    The first chapter is on Asterisk. Don't get me wrong, Asterisk has done a lot of good for the open source community, but I shudder to think that anyone would use it as an example of good development

    --
    Facts have a liberal bias.
  7. Re:FOSS costs jobs. by migla · · Score: 1

    >Every program that is released as free steals much needed jobs from paid programmers which hurts the economy.

    Yeah! Fucking computing infrastructure! And all those paved roads! They're an even bigger problem! Think of all the pulling-cars-out-of-pits-and-over-tree-trunks-jobs millions of people could have all over the country if it weren't for all those commie roads!

    --
    Some of my favourite people are from th US; Vonnegut, Chomsky, Bill Hicks.
  8. Re:horseless carriages putting horses out of work by TaoPhoenix · · Score: 3, Insightful

    I'll reply to you.

    FOSS take a long-haul view.

    It bypasses random manager's quarterly bonuses, and says "what can we do if we have better foundations to start with and learn on"? There's a theory somewhere that it takes a pyramid of enthusiastic amateurs to produce a few experts per field. When you restrict the base, you get fewer experts. The secret is that "level 7 fans" teach "level 2 fans" with the knowledge perpetuating.

    So this kind of book is neat. It may not have all the answers. If some magical funding were to appear, someone could compile Volume 2 with the missing essentials. But it is important to get mid-grade fans like me into the act to build mometum.

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  9. Re:Any book such as this... by b4dc0d3r · · Score: 4, Informative

    Dozens of volunteers worked hard to create this book, but there is still lots to do. You can help by reporting errors, by helping to translate the content into other languages, or by describing the architecture of other open source projects. Please contact us at aosa@aosabook.org if you would like to get involved.

    FTFA, not sure if you read that far.

  10. Re:FOSS costs jobs. by Ruke · · Score: 1

    Can you elaborate on this at all? I was under the impression that the New Deal pulled us out of the Great Depression, and that employing the poor, even with needless jobs, gave them money which they would immediately pump back into their local economies. I was under the further impression that money in the control of relatively poor individuals has a tendency to cycle through the economy at a much higher rate (is "Money Multiplier" the correct term?), because of their propensity to spend it immediately instead of saving it in a bank. (Contrary to what one might think, while saving money is the responsible thing for an individual to do, it isn't very good for the economy.)

    Do you have any evidence to back up your claims that artificial job creation harms the economy? I'm certainly not looking for a complete Economics lesson here, but it would be nice to know if your claims are backed up by any legitimate Economic theories, or if they're more your "gut feelings."

  11. Re:Any book such as this... by QuietLagoon · · Score: 1

    ... that doesn't mention Postfix, but does mention sendmail isn't worth reading. I mean, really. sendmail? As an example of architecture design?

  12. Re:Asterisk? Really? by kent_eh · · Score: 1

    The first chapter is on Asterisk. Don't get me wrong, Asterisk has done a lot of good for the open source community, but I shudder to think that anyone would use it as an example of good development

    FTFA:

    As a result, they repeat one another's mistakes rather than building on one another's successes

    One can learn from another's mistakes as well as from their successes.

    --

    ---
    "I can't complain, but sometimes still do..." Joe Walsh
  13. decidedly worth reading by Anonymous Coward · · Score: 1

    This is an interesting and instructive collection of essays, notwithstanding complaint here from people who have made a lot fewer contributions than the authors of this book.

  14. Re:Asterisk? Really? by swillden · · Score: 1

    The first chapter is on Asterisk. Don't get me wrong, Asterisk has done a lot of good for the open source community, but I shudder to think that anyone would use it as an example of good development

    What's bad about it?

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  15. Re:Wait... by Larryish · · Score: 1

    Does anybody want to post a link to the book?

    I don't want to RTFA.

  16. Re:FOSS costs jobs. by MakinBacon · · Score: 1

    I was recently offered a job developing Android applications. Several components of the Android platform are open-source. Ergo, my job was created by open-source software.

  17. where is Emacs? by 10am-bedtime · · Score: 1

    Exsqueeze me, but Emacs is not on that list.

  18. Re:FOSS costs jobs. by pmontra · · Score: 2
    May I quote the very book we're discussing about? From Chapter 7. Eclipse:

    The stereotypical image of an open source developer is that of an altruistic person toiling late into night fixing bugs and implementing fantastic new features to address their own personal interests. In contrast, if you look back at the early history of the Eclipse project, some of the initial code that was donated was based on VisualAge for Java, developed by IBM. The first committers who worked on this open source project were employees of an IBM subsidiary called Object Technology International (OTI). These committers were paid to work full time on the open source project, to answer questions on newsgroups, address bugs, and implement new features. A consortium of interested software vendors was formed to expand this open tooling effort. The initial members of the Eclipse consortium were Borland, IBM, Merant, QNX Software Systems, Rational Software, RedHat, SuSE, and TogetherSoft. By investing in this effort, these companies would have the expertise to ship commercial products based on Eclipse. This is similar to investments that corporations make in contributing to the Linux kernel because it is in their self-interest to have employees improving the open source software that underlies their commercial offerings.

  19. Re:FOSS costs jobs. by pmontra · · Score: 1

    Is the former Soviet Union a good enough example?

  20. Re:Asterisk? Really? by wrook · · Score: 1

    I thought the same thing at first too, although I haven't really worked with the code much other than to play with the SIP code. If, like me, your only view of the code is a 30K line file containing an ad-hoc parser you aren't left with too much confidence. But in fairness, the concepts that they talk about (channels, etc) are decent abstractions. I've worked in telephony long enough to know that there a *lot* of very poorly designed PBXs out there. While the implementation sometimes lacks in Asterisk, the deign and architecture elements that they describe are pretty sound.

  21. Battle of Wesnoth by Dennis+Sheil · · Score: 1
    I see Battle of Wesnoth is included. I downloaded this game a number of years ago, when it was touted as one of the better free Linux games. I enjoyed it, mostly.

    I also like a piece written by the original developer. He talks about how he had worked on various games which were unsuccessful, and what he learned subsequently and what he then did in preparation so that Battle of Wesnoth would be successful. I thought it was a pretty good short read of how he went from projects that fizzled out to a successful one with millions of downloads.

  22. Re:FOSS costs jobs. by mrlibertarian · · Score: 2

    The point of all economic activity is to increase production. That's what for-profit businesses do, by definition. Making large profits (in a legal way) is proof that a business is satisfying its customers in a very efficient way (high revenue = satisfied customers, low costs = efficient use of resources). Conversely, needless jobs, by definition, are created without any respect to profit. Therefore, they are very inefficient; they represent capital that could be put to much better use.

    Furthermore, the fact that needless jobs put money in the hands of consumers is irrelevant. The economy is driven by production, not spending. If we doubled everyone's bank account, what would that do? Nothing. Prices would simply double. But what if we doubled the supply of goods in the economy? Then everyone would be wealthier. That's the difference between spending and production.

    The right question isn't, "How do we create more jobs?" The right question is, "Why isn't the market naturally creating more jobs?" And the answer is always that it has been distorted by the government. The government attempts to slow down the adjustment process by propping up falling industries (e.g. housing, banking, etc.), but that just drags out the depression. If we just allowed businesses to fail, liquidated everything, stopped paying unemployment insurance, etc., then the economy would be fixed very quickly. That's exactly what happened in 1921. Unemployment shot up to 12%, the government did nothing, and we recovered in less than a year.

  23. Re:Any book such as this... by JAlexoi · · Score: 1

    They needed to add "How not to do it" part, didn't they?

  24. Re:Wait... by AmiMoJo · · Score: 1

    I think simply having your work made public is enough to make some programmers tidy it up and at least try to organise it. When closed source software in a dev team that is under pressure to get it out the door it is easy for corner cutting and bad practice to become the normal way of doing things.

    --
    const int one = 65536; (Silvermoon, Texture.cs)
    SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  25. Re:Asterisk? Really? by gpuk · · Score: 1

    As a current Asterisk 1.6 user, I can attest that it is a piece of junk. It's monolithic, buggy, poorly documented and unwieldy to install from source (witness the number of ISO based all in one installation solutions).

    I'm in the process of reading up on FreeSwitch with a view to shifting to it.

    Have a read of: http://www.freeswitch.org/node/117

  26. Re:Wait... by maxwell+demon · · Score: 1

    AFAICT TFA more or less is the online version of the book.

    If you want a link where to buy a printed version, you can go here.

    --
    The Tao of math: The numbers you can count are not the real numbers.
  27. about time by ruggard · · Score: 1

    The architecture of software is something almost (if not totally) always neglected in all forms of docs I find on open source project.

    One problem I perceive in the open-source community, which I love, is that sharing of knowledge and the education of peers is something that is often considered a mercenary's game - each is left to his own devices. The mentality seems to be: if you can't read the code and figure it out, then stfu noob. This mentality completely forgets that noobs need to learn and not everything should take interminable code reading to figure out.

    I've long wished I could contribute to open source projects, but always dreaded the prospect of having to pore through reams and reams of code just to understand basic connectivity and causality in a piece of software. These are things which a few words, a few diagrams can handily take care of, which would be much more efficient than telling everybody the barrier to entry is the ability to devote weeks of code reading just to understand basics. The basics.

    I've found new/fledgling projects I can contribute to because as long as a codebase is young I have a chance of catching up, but when something is a world-class projects several years old at least, it would be nice to be able to understand what is going on without having to wait until I am at the 10th level of extraplanarity in terms of coding wisdom.

    I hope this example of documentary exposition on open-source software isn't the last I see.

    1. Re:about time by salty-horse · · Score: 1

      You might want to check out O'Reilly's Beautiful Code. It has the same goal as TFA.

      Available online:

      • Chapter 2 about Subversion's delta editor, written by Karl Fogel.
      • Chapter 24 about Software Transactional Memory, written by Simon Peyton Jones.
    2. Re:about time by ruggard · · Score: 1

      Thanks for the tip!

  28. Re:Asterisk? Really? by swillden · · Score: 1

    As a current Asterisk 1.6 user, I can attest that it is a piece of junk. It's monolithic, buggy, poorly documented and unwieldy to install from source

    Hmm. According to the architecture document, it is not monolithic. Your other complaints may or may not have anything to do with architecture; they're partly about execution and partly about a lack of user focus. It can still be very interesting and useful from an architectural perspective.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  29. Re:Asterisk? Really? by gpuk · · Score: 1

    It claims to be modular but is effectively monolithic due to myriad cross dependencies (some of which are poorly documented) and a terrible thread management system.

  30. Anyone find the source? by DdJ · · Score: 1

    They mention that it's not in EPUB or other ebook formats yet because it's difficult to make a good-looking book out of LaTeX source. They also say the book is under a CC license. Anyone manage to find the LaTeX source yet? I'd like to take a stab at ebook conversion for them, and the closer I get to the original source (the LaTeX files), the more flexibility I ought to have in doing so.

  31. Re:I loved the Eclipse / OSGi part... by rjstanford · · Score: 1

    The last time I used IntelliJ was for a 6 week gig, so I may not have given it enough attention - eg, I'm not sure how much was reconfigurable. At the time though, what I really despised was the way that it would automatically save every change I made to every file I touched. That in and of itself was a significant enough change in my preferred work habits that I never got used to it.

    Eclipse is certainly no pleasure to use, though.

    --
    You're special forces then? That's great! I just love your olympics!
  32. Re:FOSS costs jobs. by Ruke · · Score: 1

    Creating more jobs, even "needless" jobs, still produces goods and services that are forcibly injected into the economy. And the money put into the hands of the consumers has a greater effect than simply raising prices; if you gave a thousand homeless guys $5, a thousand hamburgers would be purchased that would not have otherwise been purchased, and they'd be purchased today. The result would not simply be that the price of a hamburger goes up $5. Furthermore, poorer individuals have a higher "demand per dollar earned" than richer individuals. Again, giving a thousand homeless guys $5 immediately creates demand for about $5000 in food, booze, and cigarettes. Giving a millionaire $5000 effectively has no change in the amount of goods and services that he demands. Increasing demand ramps up production, which improves the economy.