The Architecture of Open Source Applications 85
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.
Re: (Score:3)
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
Re: (Score:2)
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.
Re: (Score:2)
Does anybody want to post a link to the book?
I don't want to RTFA.
Re: (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. [lulu.com]
Is There An Epub Format? (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? 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, afte
Re: (Score:2)
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.
Re: (Score:3)
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.
Re:Is There An Epub Format? (Score:4, 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.
Re: (Score:1)
That's ridiculous. Just because you're a programmer doesn't mean you're familiar with the various SDKs necessary to do such at thing. Which do you think would be faster? Copying and pasting a few pages into Word or learning (at least) two new SDKs and dealing with everything involved with that. Some of us have jobs and don't have the time to research and write a program like that in addition to actually reading the book.
Re: (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.
Re: (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? :-)
Re: (Score:2)
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)...
Re: (Score:1)
use wget, then calibre to convert it to any of those formats
Re: (Score:3)
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 docume
Re: (Score:1)
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?
Of course it is too much to ask. Far too many on slashdot truly believe they are entitled to anything they want, for free, and if you fail to provide exactly what they demand, for free, you're a piece of crap.
Far too many suffer from self delusion and a massive sense of self entitlement.
I'm sure this post will be troll moderated, but it doesn't change the fact its true.
Re: (Score:2)
Re: (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 [calibre-ebook.com]. 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 [google.com].
Re: (Score:2)
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...
Re: (Score:1)
Me too. :)
Re: (Score:1)
Re: (Score:2)
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.
Re: (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 [aosabook.org]
"We're working on it."
"If you are an expert, and would like to help, we'd be grateful for assistance. "
Re: (Score:2)
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)
Re: (Score:2)
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 inst
Re: (Score:2)
Re: (Score:3)
Furthermore, the fac
Re: (Score:2)
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 do
Re: (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.
Re:horseless carriages putting horses out of work (Score:4, 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.
Re: (Score:2)
>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!
Re: (Score:2)
Re: (Score:3)
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.
Re:Any book such as this... (Score:5, 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.
Re: (Score:2)
Re: (Score:2)
Some good stuff (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.
Re: (Score:2)
What I don't get how could anyone choose to put Sendmail in the book instead of Postfix, which obviously has a better architecture.
Re: (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.
Asterisk? Really? (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
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?
Re: (Score:2)
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 [freeswitch.org]
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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,
Is Wikipedia blocked in mainland China? (Score:1)
decidedly worth reading (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.
where is Emacs? (Score:2)
Battle of Wesnoth (Score:1)
I also like a piece [wesnoth.org] 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 succes
Re: (Score:2)
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.
about time (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 everyth
Re: (Score:1)
You might want to check out O'Reilly's Beautiful Code [oreilly.com]. It has the same goal as TFA.
Available online:
Re: (Score:1)
Thanks for the tip!
Anyone find the source? (Score:2)
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.