Packt Publishing Supports Open Source by $300,000 (So far)

You’ve probably noticed that I’ve reviewed a couple of books for Packt before; they asked me and I was happy to (I got a free book for my time and learned some new stuff). Last year I felt rather honoured when asked to be a judge on their popular Open Source Awards – In the Open Source E-Commerce Applications category.

They’re a a modern Publishing business which. since last year, has a specialist brand Packt Open Source. It’s a business I’m quite happy to help promote and support as they reciprocate by supporting the communities and projects we all use everyday.

Today they announced a bit of a milestone.

Packt Publishing Believes in Open Source, Donates Over $300K to Projects

Birmingham, UK. 2nd March 2011

Packt today announced that its donations to open source projects have surpassed the $300,000 mark. Following its first donation to the phpMyAdmin project in April 2004, the company has gone on to provide sustained support for over 70 different open source projects.

Packt has introduced initiatives such as the annual Open Source Award and Open Source Project Royalty Scheme to provide sustained donations to projects over the last six years.

“Most of the money that we’ve used, donated from Packt has gone towards running jQuery conferences for the community and bringing together the jQuery team to do development work together.” said John Resig, the founder of the popular JavaScript library, jQuery. “The financial contributions have been very valuable and in that regard, have resulted in a team that’s able to operate much more efficiently and effectively.”

The Open Source Awards, now in its fifth year, has been adapted from the established Open Source Content Management System (CMS) Award with the wider aim of encouraging,
supporting, recognizing and rewarding all open source projects. “The support that Packt has shown, through its book royalties and awards, has contributed to that success and helped the Drupal project handle its growth”. Added Dries Buytaert, founder of the CMS Drupal, winner of the 2007 and 2008’s Overall CMS Award, and a project which also benefits from Packt’s Open Source Project Royalty Scheme.

The Open Source Project Royalty Scheme allows projects to benefit from the publication of a Packt book, as they are allocated a percentage of every copy sold. “This is a support system that we provide to every open source project that we publish on” said Julian Copes, a spokesperson for Packt Open Source. “Packt is proud to have reached this significant milestone and remains committed to keeping donations at the heart of its long-term publishing strategy.”

Open source software is freely available and free from restrictions. Open source projects survive largely on financial donations and support to cover the essential costs of running an
open source project. Therefore, regular donations are vital for their ongoing development and relevancy. “Moodle is grateful for the royalty donations that Packt have volunteered to send us as part of their Open Source Project Royalty Scheme.” said Martin Dougiamas, founder of Moodle the hugely popular open source course management system. “The money donated helps us fund a developer for a few months a year and thus contributes directly towards Moodle core development, support and improvements in the future.”

Are you an open source project that Packt has published a book on? Packt believes in Open Source and your project may be able to receive support through the Open Source Project Royalty Scheme. Simply contact Packt:

Interested in which projects receive support through the Open Source Project Royalty Scheme? Click here to view all projects involved.

I wonder how long it will be until they reach $500,000 in contributions…?

WordPress MU 2.8: Book Review

The people at Packt Publishing asked me if I’d care to read and review a new book from them. It’s called WordPress MU 2.8 Beginner’s Guide. As WordPress is something we use ourselves (this blog is WordPress) and with our customers I was more than happy to take a look.

WordPress MU 2.8 Beginner's Guide

WordPress MU 2.8 Beginner's Guide

If you didn’t know, WordPress MU is the “Multi User” version of the very popular free and open source blogging software. MU allows you build a site where users can create and run their own individual blogs themselves. One of the best known examples is probably the site itself which serves tens of millions of hits on millions of blogs each day.

That’s a little background, now on with the book review itself.

Firstly, I was a bit confused by the title: “Beginner’s” and “WordPress MU” aren’t two words I would normally associate together. After all, a multi-user blogging farm capable of hosting literally millions of blogs doesn’t strike me as something a beginner would be doing. You can’t however judge a book by it’s cover as they say…

At approximately 250 pages the book is a reasonable size unlike some of those 1000+ page tomes that are too heavy to carry and won’t stay open due to the effects of gravity.

The book has a clearly stated objective:

This book will take you through the setup of a WordPress MU-powered blogging network, using a real, working blog network as an example, so that you can follow the creation process step-by-step. Your blogging network will be complete with professional features such as friends lists, status feeds, groups, forums, photo galleries, and more, to build your own – a place where users can quickly come and create a blog for themselves.

The book is written by Lesley A. Harrison:

Lesley Harrison has more than ten years of experience working in the world of IT. She has served as a web developer for various local organizations, a systems administrator for a multinational IT outsourcing company, and later a database administrator for a British utility company. Today, Lesley runs her own video gaming site,, and works as a freelance web developer. She works with clients all over the world to develop Joomla! and WordPress/WordPress MU web sites.

When I first thumbed through it I was a bit put-off by the style and layout – it felt like it might be one of those “books for stupid people”. Each short piece is wrapped in the same set of three headings:

  • A Title,
  • the main content called “Time for action“,
  • and a short review headed “What just happened?“.

After a couple of these you also get:

  • a “Pop Quiz” with some fairly simple questions,
  • and something entitled “Have a go hero” that gives the reader some guidance to exploring the subject further.

In one way, I’m somewhat confused by this book; the styling and layout feels, to me at least, rather condescending and childish, and yet the actual breadth and depth of content is really very good. You can get a feel for the style in this short excerpt from chapter 7.

Over 12 chapters the author leads the reader from a brief overview of WordPress MU itself and some discussion about the choices you will need to make with regards to hosting etc. through installation of the basic system, installing and customising themes, user management, security, adding features through plugins and extensions, getting money from your site, and finishes off with some optimisation and troubleshooting advice.

There is a huge amount of information in this book. The shear quantity of extensions selected, described, setup and configured makes this well worth the money, just for the time it would take to find them yourself. Lesley uses a fictitious site for Vampire Slayers as the theme and builds a highly functional and comprehensive WordPress MU installation that delivers not just a blog network but also tightly integrated forums and social networking features. It’s obvious she knows her stuff and there are some real nuggets in the book that I wasn’t familiar with myself. There are plenty of screenshots showing what needs clicking and configuring and lots of code snippets where the editing of various WordPress php files is required.

As well as the breadth of information, it’s surprising just how much detail there is in between the covers of WordPress MU 2.8 Beginner’s Guide too. I wouldn’t think of a “Beginner’s” book covering things like Apache’s mod_rewrite and writing your own rewrite rules in .htaccess for example. On the flip-side there were one or two items that felt like they had finished half way, leaving the reader to go and do their own research. So again I question the title and styling of the book against the kind of reader I would expect that would want to buy and use it.

It’s a quick book to read, and is fast-paced which I like. There is minimal waffle or superfluous language – something I’ve noticed with other Packt books in the past too. Perhaps this is part of their editorial design? It certainly helps if it is “by design”. I’ve other technology books that are a real chore to read, requiring the reader to fish the information out of a vast sea of irrelevant language. You can easily read the whole book through in a few hours. It then becomes a great reference device (another benefit of succinctness) when you start to build your MU blog network.

To summarise then, I thought this book has great content, lots of information, good detail in most places and does what it set out to do with regards to the quote at the top of the page. In other ways I found the book a paradox; I thought the layout and style was too infantile for the subject matter and I think the title really doesn’t do the book justice. The saving grace is that these shortcomings don’t really get in the way of the content.

Had I picked up this book and thumbed through it in a bookshop I’m not sure I’d have bought it. By dropping the “Beginner’s Guide” from the cover and making the style a little more adult I probably would have. Of course in this case, Packt sent the book to me so I didn’t have to make that choice and my “job” was to read it and comment. It’s a good book. I enjoyed it, and it has really good content, but I’m not sure it’s being targeted at the right potential buyer. In this case, don’t be put off by the cover.

[Please Note: If you use the links from here to Packt’s website and decide to buy any book from their site, we will get a small commission that we can use towards the upkeep of our servers etc.]

More book reviews and what I’ve been up to…

I just noticed that I hadn’t posted anything here for what feels like ages – since August the 15th.

So I thought, hmmm, better write something.

But what? A quick update on what’s been going on perhaps? That’ll do…

I’ve been working quite a bit with the brilliant free and open source vtiger CRM recently. Looking at some of the less widely used features and updating our training materials for the recent 5.10 release. I’ve also just submitted a small patch for the Customer Portal feature, to do with its web layout and have been thinking about how best to improve this, and the Webforms modules, to make them easier to customise.

I am also really enjoying using a great little python application called “Getting Things Gnome“. It one of those simple applications which does one job, does it very well and is easy to use. It’s basically an app for jotting down your todo list and making sure you get things done… Here’s what it looks like on my Ubuntu Jaunty desktop:

Getting Things Gnome

Getting Things Gnome

I also had a mail from those nice people at Packt Publishing suggesting two new books to look at and review for them, In fact a co-author of one of them actually requested that Packt contact me to do a review 🙂 Flattery indeed.

So, we now have four books in the pipeline in no particular order:

Joomla! and Virtuemart

Joomla! and Virtuemart

Building ecommerce sites with Joomla! and Virtuemart. I haven’t started on this one yet, but if you want to buy it direct from Packt just follow this link and we’ll get a few pennies in commission.
Alfresco 3

Alfresco 3

My partner-in-crime at The Open Learning Centre, Alan Bell, is reviewing this book on the also brilliant Alfresco ECMS (Enterprise Content Management System). We’ve just set up a 3.2 community install on one of our own servers and the new interface – called Alfresco Share – is really very cool indeed. Once again if you can’t wait we have a link to Packt’s on-line store where you can purchase the book.
FreePBX 2.5

FreePBX 2.5

Here’s one of the new ones we’ve been asked to take a look at. FreePBX is a very popular GUI to the even more popular Asterisk telephony platform. I am very much looking forward to reviewing this one and the next book. FreePBX 2.5 is available now from Packt’s on-line store.
The Professional's Guide to Asterisk 1.4

The Professional's Guide to Asterisk 1.4

I really like the sound of this one:

Implementing, Administering, and Consulting on Commercial IP Telephony Solutions

  • Written by four Asterisk Professionals, this book brings their years of experience together in an easy-to-understand guide to working with Asterisk in small, medium and larger Commercial environments
  • Packed with hints, tips, and best practice – learn to avoid the pitfalls that can hinder an Asterisk implementation
  • Focused chapters provide thorough, comprehensive, and self-contained instructions on how to deploy Asterisk across different commercial scenarios

This will probably be the first one I read when they arrive next week. It’s hot-off the press, just been released and can be ordered from Packt’s web site here.

My little Asus 1008HA netbook is running very happily with the Alpha build of Ubuntu Karmic Koala. I was at the swimming pool yesterday (not in it but taking my son to his lesson) and using 3G mobile internet to get on line. Battery life is good although not as long as is quoted by Asus. I reckon I get about 3 1/2 to 4hrs of good use. But that is mainly when powering a 3G dongle too – and they get hot. Karmic is shaping up to be a great release I think although to be frank I am really not sure about the new Gwibber interface, and the Empathy IM client hasn’t really floated my boat yet. But hey ho, never mind, at least we have a choice folks.

We are planning some new marketing activities over the coming months, what with the forthcoming release of the best desktop OS of all time and Microsoft releasing their rewrite of Vista, October should be a fun month. Hopefully we’ll have lots of interesting stuff to write about.

In fact I want to share with you a backup script I’ve written in Bash for my home office network and what may well end up being expanded and developed to support some of our commercial systems too. Well I think it’s pretty cool anyway. It wakes up machines in the middle of the night, uses – currently – rsync to back them up, then turns them off again. Configuration is easy and it seems to be working fine. When I get a mo I’ll publish the script source and let you all comment on my terrible bash skills. But I like it…

So there!

Packt Annual Open Source CMS Awards

Packt has launched its Fourth Annual Open Source CMS Award.

The Packt Open Source Content Management System Award is designed to encourage, support, recognize and reward Open Source Content Management Systems (CMS) that have been selected by a panel of judges and visitors to our website. At the moment, we’re accepting nominations for CMSes across different categories on the Award. Nominations will remain open till September 11, after which, the top 5 nominations for each category will go through to the final stage where people and our judges will vote to choose the best CMS in each category.

The 2009 Open Source CMS Award nominations have begun. Nominate your favourite CMS for the appropriate categories today and help them win their share of $24,000! If you’ve benefited from an open source CMS and would like to give something back to the team that made it happen, now is the time!

If you’ve been using a FOSS CMS then take a few minutes out and go and nominate your favourite; I’ve voted for mine. It’s a great way to help your project…

Book Review: Trixbox CE 2.6 from Packt

[Please Note: If you use the book links from this site to Packt’s and decide to buy *any* book from their site, we will get a small commission that we’ll use towards the upkeep of our servers etc.]

Trixbox CE 2.6

Trixbox CE 2.6

Following on the heels of the Asterisk AGI Programming book review, Packt asked me to take a look at this one.

trixbox itself is a “packaged solution” comprising the operating system, Asterisk and a back-end/front-end configuration tool based on FreePBX. Personally, I’m from the “old school” when it comes to applications and I do like to know what makes them tick. So with Asterisk for example, when I first started looking at it I wanted to try and understand the configuration files and how it really worked so I installed from source and built everything from scratch. trixbox CE (Community Edition) on the other hand provides a user-friendly front end to Asterisk and wraps the whole thing up with an OS and delivers the bundle as a free download which is a ready-to-run ISO.

I guess one downside to the appliance package like trixbox is that you are tied into using the vendor’s choice of OS (CentOS in this instance) rather than your own. However, there are several advantages too: you know it works, has been tested all together and is supported, to whatever extent the community provides, by the producer. Anyway, this post isn’t a plug for Ubuntu or a review of the trixbox product itself. This is a review of a book about trixbox.

Before we get into the book though, for those who are unfamiliar with what trixbox is, their website tells us:

Beginning in 2004 as Asterisk@Home, the trixbox® Community Edition (CE) telephony application platform is the open source software that has quickly become the most popular Asterisk®-based distribution in the world. trixbox CE combines the best of the open source telephony tools into one easy-to-install package, along with the trixbox dashboard which provides a web-based interface to configure and manage a complete IP-PBX system. The most flexible and customizable communications platform available, trixbox CE averages over 65,000 downloads a month.

And the Wikipedia, in what must be one of the shortest pages in the entire Wikiverse, states:

Trixbox CE is 100% free and licensed under the GPLv2. Founding members of the trixbox CE project are Kerry Garrison and Andrew Gillis.

The trixbox CE brand is now owned by Fonality. Documentation, help and community forums can be found at

So that’s what the book is supposed to be telling us about. Let’s see if does…

It is subtitled “Implementing, managing, and maintaining an Asterisk-based telephony system” and written by Kerry Garrison. It’s quite a hefty tome weighing in at around 300 pages and is produced with Packt’s professional and easy-to-read layout & styling.

Chapter 1 is a brief introduction into the whole telephony scene covering subject such as what a PBX is. It then moves the reader toward an overview of the key features of Asterisk. For the most part the author has a good writing style and gets the information over with clarity. There is some good advice too; whilst obviously the author wants to explain why trixbox is the bees knees, he does make a very sensible comment early on:

While trixbox CE does make using Asterisk dramatically easier, it is certainly a good idea to really get in and learn all you can about the Asterisk configuration files. The more you know about how the system works under the hood the easier it will be for you to troubleshoot problems and even add features to your systems that aren’t available in trixbox CE.

Chapter 2 introduces the reader to trixbox itself:

  • Going over some of it’s history,
  • briefly mentioning the commercial trixbox packages available from Fonality,
  • looking at the core components that make up trixbox
  • trixbox features with lots of screenshots
  • and what you will need to try out trixbox such as a PC, perhaps an analogue line card and a SIP phone.

There are lots of URLs scattered about where necessary directing the reader to further sources of reading or links to relevant vendors and downloads etc. For someone who is getting started this is a good resource and introduction.

trixbox console after first boot

trixbox console after first boot

In Chapter 3 we get shown how to install trixbox, even showing novice readers how to burn a CD if you happen to be unfortunate enough to be using Windows.

I followed this chapter through myself and installed trixbox CE 2.6 in a VirtualBox VM. The instructions were good with plenty of screenshots and comments guiding the reader through the process. (Just FYI, on my PC Lobsang, the entire install in a Virtual Machine took just about 3 minutes!. During the first boot up I noticed that it uses the excellent OSLEC echo canceller by default. That’s a plus mark from me.)

The trixbox status screen

The trixbox status screen

Continuing through the chapter, after installing and doing a yum update we are guided to the browser interface of trixbox…

The rest of Chapter 3 explains the various screens and basic navigation techniques to get around. Once again, I’d say the book is comprehensive and has plenty of screenshots and comments.

I’m not going to write about every chapter because, to be honest, the rest of the book is equally well put together and covers the subject in detail. Chapters 3 to 11 are what a good manual would be like. Having digested these chapters, the reader will know a good deal of how (and perhaps more importantly why) to plan, select hardware, install, setup, configure and maintain a trixbox system. There is plenty of “extra” information thrown in that explains what various features or aspects of the system are for and how they work. References to external sources abound and other vendors are given a decent mention where appropriate. Simply put, it’s good. If you want to use or manage a trixbox CE system this book would be an excellent resource in my opinion.

The final part of the book, Chapters 12 to 17, provide somewhat more orthogonal, but nevertheless valuable, information. We get to find out a little about:

  • troubleshooting techniques and also where else to go to learn further skills,
  • some of the additional trixbox utilities that are available like the endpoint manager,
  • the basics of designing a decent callflow for the IVR,
  • an introduction to a new end-user interface called HUD (Head Up Display),
  • and an overview of the commercial trixbox Pro products.

In summary then, this is another good book from Packt that hits all the right buttons. It is well written, very detailed, and has good explanations of technologies and applications related to IP telephony.

As to it’s main purpose, that is explaining how to deploy and use trixbox CE, in my opinion this what a decent product manual should be like.

Book Review: Asterisk AGI Programming with Packt

[Please Note: If you follow the book links from this site to Packt’s and decide to buy *any* book from their site, we will get a small commission that we’ll use towards the upkeep of our servers etc.]

Asterisk Gateway Interface ProgrammingAs you may have read previously, I was approached by Packt Publishing to see if I would like to review their new book on AGI Programming by Nir Simionovich. Time has conspired against me to actually use it for a real project so instead I resorted to choosing it as my bedtime reading for a few days.

I’ve now read the book and first off I’d like to thank Packt for asking me. I have enjoyed it far more than I thought I would. As for how to review it, I thought I’d give my overall impression and then just go through it chapter by chapter.

It isn’t a long book – about 190 pages – which to my mind is no bad thing. It managed to concentrate on the subject and had little in the way of superfluous text and language (Apart from chapter 1 that is). The author knows his subject well and writes in a fairly informal and easy-to-read style which I personally quite liked. The meat of the book concentrates on – as you would probably guess – programming with AGI and focusses almost exclusively on using PHP. As much as I am happy around PHP, I would have liked to see some examples with alternative languages such as Python perhaps. The subtitle of the book is “Design and Develop Asterisk-based VoIP telephony platforms and services using PHP and PHPAGI” so I guess that’s why other languages don’t get much of a look in. They are mentioned here and there and there are some good links to various other libraries and open source projects. I did like the fact that he mentioned throughout the book – where necessary – the functional difference between the main versions of Asterisk (1.2, 1.4 and 1.6) and ways to deal with those differences when you come up against them.

OK – so here is my chapter-by-chapter review:

Sorry, but I didn’t really get the first chapter at all. This is a book aimed at programmers and developers and yet the first chapter was a repetitive cut-and-paste of how to build the various asterisk components from source, including lots of screen shots showing the output of things like ./configure which personally I found a bit trivial and uninteresting. I was a bit concerned that the rest of the book was going to follow suit but thankfully I was mistaken.

Chapter 2 is really good. It explains the workings of Asterisk’s dialplan and applications – the infamous extension.conf – in a very clear and understandable way. I recall when I first started to look at Asterisk and was delving into as much information on-line as I could get, the Asterisk TFOT book [pdf download] and whatever else I could find, that it was several days before the penny finally dropped. It isn’t difficult really but it isn’t quite the same as “normal” programming or scripting concepts and the language itself is far from obvious (e.g. an extension is not the phone on your desk in Asterisk’s configuration files). But then this is telephony we are talking about. Using the example of a basic IVR or AA the author examines the diaplan syntax and construction.

So I got quite a lot out of chapter 2. I thought it was well written and clear and useful. Chapter 3 develops the IVR theme further, introduces other features of the Asterisk application pool and covers the scripting language in more detail examining branching, expressions, operators and flow control. It’s a fairly short chapter but covers a good deal of ground if you are unfamiliar with Asterisk programming.

Your level of knowledge and familiarity with Asterisk will dictate what you get from this first section (Chapters 1-3). Although I have used Asterisk for a couple of years now and have felt quite comfortable with the platform’s configuration and use, I got quite a lot of new information and ideas from this early part of the book. For me, this initial part has been very useful and will be a good reference for the future. I think, though, if you are very familiar with Asterisk then you might find it a bit slow going. The book hasn’t examined AGI whatsoever up to this point and we are about a third of the way through already! The author does suggest that a coffee is a good before starting on Chapter 4 as “the journey becomes more and more complicated”…

Chapter 4 introduces the reader to AGI in a fairly gentle way and also offers 10 “rules” to help make your AGI programming more successful – they all make sense to me and will I’m sure prove to be a very useful monitoring/checking tool. Packt sent me an extract from this chapter which you are free to read here if you want to get a flavour of it.

The following chapter introduces us to some real code (PHP) and we build our first, simple AGI application. Nothing to hard, but a useful introduction into how to actually get the conversation happening between Asterisk and your script. There are couple of nice flow charts which are helpful for visualising the traffic flow back and forth between Asterisk and your script too. Again not too complicated but helpful in getting the novice AGI programmer, i.e. me, thinking about things the right way.

In chapter 6 Nir examines and recommends the use of a set of PHP classes (library) called PHPAGI. Being completely new to AGI programming I am in no position to contradict the author’s recommendation, but looking on the Sourceforge site for this library, it is quite old and has not been updated for 3 years or more. Of course that may be because it is perfect and needs no further development, or there might be other reasons but I would have really liked to have had some more discussion regarding this choice of library before continuing – just for my own piece of mind more than anything else. Perhaps if Nir reads this he could leave a comment about this? My own assumptions after reading the rest of the chapter are that the AGI interface itself is fairly simple and so – perhaps – the need for a more dynamic or complex library is just not there and this one does the job just fine. Anyway, the rest of the chapter we look at a new AGI application using the class library above and also we discover the main – and what seems to me to be a first-class – concept for building AGI applications: Atomic AGI or Particle Programming. Sounds great doesn’t it? It really does make a lot of sense. Basically it’s a bit like the traditional ideals behind Unix/Linux command line applications; write small applications that do one thing and do it well. To summarise then, in chapter 6 we are shown the author’s recommended path to AGI Nirvana through adopting some rules, and practices. It is hard for me to draw any solid conclusions from his approach as I am a novice with AGI and so have nothing by way of comparison, but it certainly seems to make a great deal of sense and is clear and well explained. Good stuff.

The remainder of the book goes a bit wider than just pure AGI. Chapters 7 and 8, examine some of the closely related applications and facilities of Asterisk. We get an overview of FastAGI (AGI over TCP) and Nir shows us some further PHP libraries that are available to assist with producing FastAGI applications. Chapter 8 offers an overview of the AMI (Asterisk Manager Interface) and some example code to get you started.

In the penultimate chapter, the reader is given a challenge: to create an application that is used in the real world – an Asterisk Call Recording Gateway. There is no code in this chapter – that’s for you to do. But Nir provides some useful guidance about the way to think about the development and plan the project itself.

And finally, chapter 10 discusses how to make sure your Asterisk applications can scale and offers several ideas and techniques to improve performance such as database query caching and using web services.

As I said at the beginning – I enjoyed reading this book much more than I thought I would. It is not overly technical and Nir has an engaging style of writing. The book is a great introduction into Asterisk programming. It is not “The Bible of Asterisk Programming” and does not set out to be. It is clearly aimed at developers who have not had much to do with Asterisk before but are familiar with traditional programming methods. I really liked the fact that it is quite short. You can read the whole book in a couple of evenings and being laid out the way it is it will become a very useful reference document for me in the future.

Nir Simionovich has a blog.

Next Page »