Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

Ryan Paul over at Ars Technica wrote a very interesting article today regarding the rumors about whether or not Dell will put Linux on their desktop machines.

We would gladly see more diversification, and less dominance on the PC desktop market, but do we have to sacrifice something from our beloved Linux in order for it to hit the big market? As we all know, the power in Linux lays in the its ability to customize for our needs. But how will this affect the support? In order for a vendor such as Dell to sell a computer, they need to fully be able to support it, both the hardware and the software. Mr. Paul writes that “[f]or Dell to provide cost-effective Linux support for desktop users on a large scale, the company would have to limit its Linux pre-installation to very specific components, limiting user flexibility and ultimately defeating one of the biggest advantages of Linux, which is freedom of choice.”

Mr. Paul points out something very interesting here, that most of us forget since we’re tech-savvy power-users. For us support is most often solved through various online forums (see our article “Support is for old people“). However, for the majority of the PC users, the vendor’s support is where they turn for help.

Gnome, KDE, XFCE, Afterstep…the list of window managers can go on forever, which makes commercial support very expensive. All of these window managers uses their own way to configure things. Even if we just narrow things down to KDE and Gnome, which are the biggest ones, it can still be expensive. Both KDE and Gnome tend to evolve quite rapidly, and different versions behave differently and settings are not necessary located at the same place.

Linux means less support, right? Well, you might argue that “Linux is rock solid” and “things just work.” To some extent this is actually true, once a Linux machine is properly installed (and no new updates are installed), the machine tend to be rock solid. If you take that into the equation, it might actually not be more expensive to support Linux machines, once the initial competence is acquired.

I’d strongly recommend you to read Mr. Paul’s article over at Ars Technica. He brings up some very interesting points that many of us simply never thought of.

Author: Tags: ,
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

Continuing our series “Building the Base-camp,” we continue with a CRM-system. In a modern corporation a CRM-system is a crucial element to optimizing your business.

There are a couple of Open Source CRM systems available, but we decided to use a software called SugarCRM, which filled our needs just fine. The user-interface of SugarCRM is really appealing, which certainly is a benefit if you’re working with it several hours per day.

SugarCRM offers a variety of features, including an e-mail client, a bug-tracker and of course, a customer database. It’s also available in 40 different languages.

Installing SugarCRM was really easy. On FreeBSD using the ports, the entire installation probably took less then 15 minutes, where most of the time was spent customizing the installation for our needs.

SugarCRM screenshot

Instead of changing memory_limit in php.ini as the installation document states, we made this change to the local .htaccess file in the sugarcrm directory. By doing so, we didn’t need to raise the memory_limit for the entire server to 32Mb, instead we only applied this to SugarCRM.


php_value memory_limit 32M
php_value session.save_path /tmp

/usr/local/etc/apache/httpd.conf or ssl.conf

Alias /sugarcrm /usr/local/www/sugarcrm
<directory /usr/local/www/sugarcrm>
AllowOverride All
Order allow,deny
Allow from all

After changing these files to include the data above, you just surf to http://yourserver/sugarcrm and follow the steps.

For the installation you will need a mysql-account with a database that SugarCRM will be using.

When you’ve finished the installation and try to access SugarCRM, you might receive an error. At least we did. This was caused by the fact that the installation assumed that .htaccess-file was empty, and therefore corrupted the changes we did above. Just go in and edit it by hand, and make sure it all looks proper.

For more screenshots, visit the screen gallery at

Author: Tags: ,
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

Picture of The Definitive Guide to symfony.Symfony is a PHP web development framework, similar to Ruby on Rails. The framework is currently gaining in popularity; a few months ago it was announced that it is used by Yahoo! Bookmarks, for instance. Recently, version 1.0 of symfony was released. A print manual, “The Definitive Guide to symfony” by François Zaninotto and Fabien Potencier, was prepared in conjunction with this major update of symfony.

As the title suggests, the Definitive Guide to symfony is a guide book. Every chapter explores a certain component or part of symfony, ordered in such a manner that someone who hasn’t touched symfony before can easily get started. The book is not a tutorial; even that the chapters are sensibly ordered, the book does not take the reader through the process of developing an application.

The sections of the guide are,

  1. The Basics: An introduction to symfony, who made it and why, and a primer to the underlying technologies used by symfony including PHP itself. Later chapters in the first part delve into an overview of how symfony works and how to set up an application in the framework.
  2. The Core Architecture: This part of the book is essentially a description of the MVC pattern and how it is employed in symfony. The chapters talk about how the Control, View and Model layers work in symfony.
  3. Special Features: If the previous parts are about the foundation of symfony, the Special Features part of the book is really about the bells and whistles of the framework. The routing system, the form helpers, Ajax, caching and internationalization are described here.
  4. Development Tools: A description of the tools and mechanisms in symfony used during the development tools, just like the name would imply. Generators, unit testing and other important tools are described here. Towards the end there is an oddly placed chapter about extending symfony.
  5. Becoming a symfony Expert: This is a very interesting section which gets into performance optimization for symfony. The authors pool some very valuable practical experience about deploying symfony applications into this part of the book.

The book places almost no requirements on the reader. Obviously you will need to know PHP 5, but apart from that the book carefully introduces almost every concept used in the framework. At the same time I don’t think that a more experienced programmer would find the hand-holding excessive – the 450 or so pages went by quickly when I read the book, and I have worked with symfony before.

The book also features a good selection of sample code and examples. This is in line with the general pragmatic feeling of the book. There is no key concept left without an illustrative code sample. Anyone who has worked with symfony and its developers before will recognize this. The official website is absolutely brimming over with code samples, and Mr. Zaninotto in fact even wrote ‘snipeet’, a code snippet repository. The book is right in line with this demonstrate-by-code philosophy.

The book has some shortcomings. The chapter about Generators feels incomplete for one. Ostensibly the chapter is about the automatic generation of code, called scaffolding, that is a common feature for many modern web development frameworks. This kind of generation makes it faster to develop web applications since it creates a foundation (hence the term scaffolding) for building the web application. But the Generators chapter is really hijacked by the automatic admin generation feature of symfony. While this is a very powerful and impressive feature, the very strong focus on this feature may leave the reader wondering about the ordinary, non admin, scaffolding functionality. For example, it is not at all clear how to customize what generated scaffolding should look like. With such a lengthy description about how to customize the generation of the admin interface, the omission of a corresponding general section is conspicuous.

(For the record, this is how to theme or customize the generated scaffolding:

  1. Copy the default theme from




  2. Edit the files in data/generator/sfPropelCrud/default/theme/templates as you would with an admin template.
  3. Generate like usual: symfony propel-generate-crud <app> <module> <base>.

The generated code will be built to specification.)

Another shortcoming of the book is that there are a few instances of bugs in the provided source code. It might have been useful if the authors had taken a day to test-run their code. For example, in the database section, page 156, the following sample databases.yml listing can be found:

    class:                sfPropelDatabase
      encoding:           utf-8     # Default charset [...]

When I tested this code I got an error message: Unknown character set: 'utf'. Turns out that “utf-8″ is not the correct identifier – “utf8″ is correct.

These shortcomings are minor though. A few typos are to be expected, and with so much to cover omissions may accidentally be made. All in all the book is a friendly and pragmatic one. The material is described in a light and fluffy way – there is no ‘academic’ dead weight or terse theoretical descriptions, but rather a hands on description about what symfony programming is like. The book can be used both as a primer and as a reference for a person who is not yet a symfony expert.

If you want to know more about the book, you can actually finds its whole contents online. At the time of this writing, the online edition is available at The Definitive Guide to symfony. This is very generous and a great aid when you want to quickly search for something. Curiously enough Apress, the publisher of the book, has a full page ad for an eBook version in the print edition. They charge $10 for this pleasure, which is a bit odd.

Update 1: The original article credited Mr. Potencier with the Snippeet application. Snippeet was in fact written by Mr. Zaninotto. I apologize for the mistake.
Update 2: Jason Gilmore, the book’s editor, wrote to let us know that Apress sells the $10 ebook as an additional means to support GFDL work. Take a look at the comments section below for the full clarification.

Author: Tags: , ,
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.
Comments Off
Category: Uncategorized

Did you know you could create an infinite loop with the ‘cp’-command? I didn’t. I managed to create an infinite loop with the following commands:

cd dir
mkdir backup
cp -rfv ../* ./

Before I knew it, I had a 20-some level deep folder.

Author: Tags:
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.
Comments Off
Category: Business

If you haven’t heard about PortableApps yet, you’ve missed out on something cool. PortableApps focuses on modifying popular (mainly open source) softwares to run on USB flash-drives. The benefit of this is that you have all your bookmarks and settings right there, and you don’t have to install the softwares you need on each and every computer you use.

Among the products available, these might be used in business:

I’m not seriously suggesting that everyone run around with a flash-drive with all their data, but rather use their home directory on the server as the installation target for these applications. I’d imagine that this would be very useful in an organization that do not use individual computers, but have many computers that are shared by the people in the organization. By doing so, everyone gets their set of individual applications with settings, cached e-mails and everything accessible without having to spend time configuring the applications for every computer.

Of course there are other approaches to solve this problem, such as roaming profiles with samba or a windows server, and locally installed softwares with profile support. I’m not suggesting that one solution is better than the other, because they both have their benefits and drawbacks.

Author: Tags:

© 2006-2009 WireLoad, LLC.
Logo photo by William Picard. Theme based on BlueMod © 2005 - 2009, based on blueblog_DE by Oliver Wunder.