• Digging deeper into AWstats
    Armijn Hemel, 2011-01-21
    AWstats is a popular program to analyze logfiles. The AWstats files themselves are neat little databases from which you can extract a wealth of information.
  • Finding out what hardware is in a box with lshw
    Joor Loohuis, 2011-01-04
    Sometimes you need to know what hardware is in a system, but you don't have specs, or you don't have access to the system. Being able to extract this information directly from the system would then be extremely useful, and this is exactly what lshw does.
  • Requesting remote JSON or XML from a Smarty template
    Joor Loohuis, 2010-12-19
    Occasionally it is necessary to get data from another domain to display on a webpage. Using Smarty templates it is very easy to fetch and display remote data in JSON or XML format.
  • Adding sequences in phpPgAdmin
    Armijn Hemel, 2010-11-15
    PostgreSQL is a very powerful database engine. A helpful tool for managing PostgreSQL databases is phpPgAdmin. Although it is a good tool some things are a bit quirky.
  • Static assignment of arrays in Smarty templates
    Joor Loohuis, 2010-11-13
    Occasionally, you need to fill an array with values for use in a Smarty template without explicitly assigning it in your PHP code. Here are some tricks for creating arrays directly in a template.
  • Copying subversion repositories with history using svnsync
    Joor Loohuis, 2010-10-22
    Occasionally it is necessary to make a copy of a subversion repository, while preserving the revision history. Sometimes you need to do this without shell access to the server. In those cases, svnsync may solve your problem.
  • Security through obscurity with HTTP Basic Authentication
    Joor Loohuis, 2010-10-17
    One of the undying fallacies of web development is that an application can be secured by requiring that the users authenticate themselves using HTTP Basic Authentication. We regularly have to explain to developers how easy it is to extract the authentication data from a request. So it's probably useful to put this down in writing for future reference.
  • A Google Map with company logo and travel directions using jQuery
    Joor Loohuis, 2010-09-19
    Our article describing how to set up a Google Map with a company logo and travel directions proves to be popular. One question we've received a few times involves using jQuery in stead of Prototype, so in this article we provide the jQuery version.
  • Filtering mail server side with Sieve, part 1
    Armijn Hemel, 2010-08-31
    Like us, you might receive a lot of mail and read it from different locations, using different mail programs, on different kinds of devices, including mobile. If not all mail is relevant at all times, you might want to look at server side filtering instead of client side filtering.
  • Next step MySQL: using views to improve performance
    Joor Loohuis, 2010-08-14
    When developers start using MySQL as a storage backend, they quickly find out how to insert, update, delete, and retrieve data. But often enough, progress tends to stop there, and problems arise when an application needs to scale. This article demonstrates how creating views may be a life saver for an underperforming application.
  • Running your own microblogging service
    Armijn Hemel, 2010-07-28
    Microblogging services such as Twitter and identi.ca have become very popular. Instead of registering with an existing service you can also quite easily run your own microblogging service, using Status.Net.
  • Integrating Subversion, Trac, and Mailman into a development environment: part 1, design
    Joor Loohuis, 2010-07-01
    Many software development projects are hosted in a 'forge', a web application that provides tools such as source code management, mailing lists, and a bug tracker. We were recently asked to provide such an environment, based on Trac, Mailman, and Subversion. We thought it might be informative to document our findings.
  • Migrating from mbox to maildir
    Armijn Hemel, 2010-05-28
    Two popular formats for storing mail on Unix machines are mbox and maildir. Both have their advantages and disadvantages. Converting from mbox to maildir is easy to do using some Python.
  • Precision of geographical coordinates for use in Google Maps
    Joor Loohuis, 2010-05-22
    One aspect of using Google Maps that is not often addressed, is the precision of geographical coordinates that is required to properly represent information. A little explanation is in place.
  • Digging through AWstats files
    Armijn Hemel, 2010-05-20
    AWstats is a popular program to analyze logfiles. The AWstats files themselves are neat little databases from which you can extract a wealth of information.
  • Making your servers a bit more "green" with smart system adminstration, part 4: MySQL databases
    Armijn Hemel, 2010-05-16
    "Green IT" can only work if you have a combined approach of optimization on all levels. Knowing how to get the most out of the components you are using is a must.
  • Getting more out of logwatch
    Armijn Hemel, 2010-05-11
    Watching your logs is a must for every administrator, but if there are vast amounts of information at once it can be easy to miss things. Serving the information into tiny bite size pieces makes it easier to spot the right things.
  • Finding the right UTF-8 symbol
    Joor Loohuis, 2010-04-29
    Occasionally, you might have the need for a special symbol in HTML. Whether it's a simple arrow, a foreign currency symbol, or something more exotic, it's probably represented in the UTF-8 font encoding. Here's how to find the correct entity.
  • Logging unconfigured domain names in Apache
    Joor Loohuis, 2010-04-01
    When using virtual hosting with Apache, occasionally you may have domain names pointing to your webserver that you don't know about yet. A little tweak to the logging format will help you find out what these domain names are.
  • Find geographical coordinates using Google Maps (revisited)
    Joor Loohuis, 2010-03-08
    A little while ago we posted a short instruction on how to find the map coordinates of a location for use on a Google Map. With some new additions to Google Maps, this has now become even easier.
  • Adobe Flash player for 64bit Linux
    Joor Loohuis, 2010-02-17
    If you're using 64bit Linux on the desktop, and you need Flash support, you've had a pretty rough ride so far. But things are improving.
  • Towards a better HTML textarea
    Joor Loohuis, 2010-02-12
    With webapplications becoming ever more important, you would think that the one control we have for entering larger amounts of text would be one of the points of attention. Unfortunately, the humble textarea has remained just that for years, humble.
    Armijn Hemel, 2010-02-04
    IMAP IDLE is a great addition to the IMAP protocol: whenever new mail arrives the server notifies the client and the client does not have to keep polling the server all the time.
  • Quick checks for PHP PEAR and PECL updates
    Armijn Hemel, 2010-01-24
    Ideally all software on a system is installed via one package manager. Reality is a bit different. As an administrator you need to stay on top on updates from all software that is installed instead of relying on the system's package manager.
  • WWGF: what will Google find?
    Joor Loohuis, 2010-01-10
    One aspect of picking a name for a company or project that has become important the last years, is how it will rank in search results. It turns out this may have unexpected consequences.
  • Book review: Everything you know about CSS is wrong
    Joor Loohuis, 2010-01-03
    While 'Everything you know about CSS is wrong' may be a presumptuous title for a book, it discusses an important development in the layout of websites and applications. The book provides an in-depth discussion of the advantages of CSS table display styles.
  • Automated certificate expiration checks on CentOS
    Joor Loohuis, 2009-12-20
    It is essential to keep track of the expiration dates of SSL certificates, and so it's useful to have a periodic check on all certificates in use on a system, that will alert systems administrators when a certificate is about to expire. This article shows one way of setting up such a procedure for CentOS and other RHEL derivatives.
  • Bad requests from the Reed Elsevier search engine
    Joor Loohuis, 2009-12-03
    Over the last weeks we're seeing ever increasing amounts of strange requests from a crawler that runs on IP addresses used by Reed-Elsevier in Australia. Time for some online forensics.
  • One off system backup methods
    Armijn Hemel, 2009-12-01
    Before a new system install it is smart to do a backup of important personal data. There are various methods how you can do this.
  • Off-by-one errors in background placement in web browsers
    Joor Loohuis, 2009-11-26
    The rendering engines in some popular web browsers contain a bug, where a background positioned in the center of a block element is sometimes offset by one pixel relative to an element that is positioned with automatic margins.
  • Passing complex data from Smarty to JavaScript
    Joor Loohuis, 2009-11-13
    Modern web applications frequently need to process complex data with JavaScript. Typically, these data are requested separately through AJAX calls, but if the data do not change frequently, it is probably easier to output JSON in the (X)HTML, and let JavaScript take it from there. The Smarty template engine makes this more or less trivial.
  • Fixing permissions in Subversion post-commit hooks
    Armijn Hemel, 2009-10-27
    Subversion is a great version control system and it allows for a lot of tweakability, but a mistake with permissions is easily made...and easily fixed.
  • OpenSSL defaults for certificate generation
    Joor Loohuis, 2009-10-19
    OpenSSL deliberately provides rather useless defaults when certificates are generated. Here's one way of saving yourself some typing when you're frequently confronted with this chore.
  • Learn to speak POP3 in one simple lesson
    Joor Loohuis, 2009-10-06
    POP3 is one of the core protocols of the Internet, allowing mail clients to fetch messages from a remote server. There are circumstances where it is very convenient to be able to perform a manual POP3 session, for example for debugging purposes. This article shows you all you need to know about POP3 to handle such a manual session.
  • Stresstesting IMAP clients
    Armijn Hemel, 2009-10-04
    In this blogpost we describe research we did into performance of several graphical mail programs on Linux when dealing with large amounts of email messages using IMAP.
  • DNS names matter
    Armijn Hemel, 2009-09-30
    When naming a local network it matters how you name the network. We found out the hard way.
  • Making your servers a bit more "green" with smart system adminstration, part 3: the right tool for the right job
    Armijn Hemel, 2009-09-26
    "Green IT" can only work if you have a combined approach of optimization on all levels. System administration can play an important role. Even more important is choosing the right programs to solve your problem.
  • Disabling the touchpad while typing on Linux
    Joor Loohuis, 2009-09-22
    For non touch-typists, the touchpad or trackpad may be inadvertently triggered while typing, causing the cursor to be repositioned, with various consequences. Fortunately, a little tool exists for Linux that disables the touchpad while typing, preventing this.
  • Multilingual websites and webapplications using PHP and Smarty, part 3: locales
    Joor Loohuis, 2009-08-30
    Multilingual sites not only need support for different languages, but also for locales, the set of conventions that are used in countries and language regions for representing quantities such as time, numbers, and other information. This article describes how websites and webapplications that use Smarty can set a locale in addition to a language for the best user experience.
  • A Google Map with company logo and travel directions
    Joor Loohuis, 2009-08-24
    A Google Map is a nice attribute for a company website. In the blink of an eye visitors can see where you are located. The posibility for a prospective customer to get travel directions is a very useful addition. Using the company logo to indicate the exact location adds the finishing touch. All this is actually quite simple to set up, as this article shows.
  • Making your servers a bit more "green" with smart system adminstration, part 2: tools
    Armijn Hemel, 2009-08-12
    "Green IT" can only work if you have a combined approach of optimization on all levels. System administration can play an important role. What you need is a good set of tools.
  • Using OpenStreetMaps with the Google Maps API
    Joor Loohuis, 2009-08-06
    It is relatively easy to add a new map type to Google Maps, provided you have access to a tile server. As an example, we use the OpenStreetMaps data set to display a map that doesn't have all the usage restrictions that the regular map types have.
  • Quick and dirty yum checks
    Armijn Hemel, 2009-08-02
    As a system administrator you want to be on top of your systems when it comes to security. You need to know when there are security updates you are interested in, so you can act on them.
  • Multilingual websites and webapplications using PHP and Smarty, part 2: dictionary based templates
    Joor Loohuis, 2009-07-26
    One of the components of a multilingual website or webapplication is providing support for different languages. Typically, the translations are not provided by webdevelopers, but by less technically oriented people, who prefer a low-tech approach to translating. In this article a dictionary based translation model for Smarty templates is demonstrated, which is easy to implement, maintain, and extend.
  • Making your servers a bit more "green" with smart system adminstration (part 1)
    Armijn Hemel, 2009-07-22
    One of the latest crazes is "Green IT". There are a lot of companies who are marketing their solutions, mostly hardware, which should help you consuming less power while doing business. But there are also a lot of things you can do yourself, which are not difficult at all.
  • Installing Fedora 11 on an ASUS Eee Box
    Armijn Hemel, 2009-07-20
    The ASUS Eee Box is a nettop machine. Installing Linux on it is a bit of a challenge, because the machine does not have a DVD-player. With the right tools it is nevertheless quite easy.
  • The art of autoresponders (part 2)
    Armijn Hemel, 2009-07-17
  • Multilingual websites and webapplications using PHP and Smarty, part 1: detecting languages and locales
    Joor Loohuis, 2009-07-12
    Supporting more than one language in a website or webapplication has become a core feature of many projects. This series of articles explains how you can detect languages and locales, and how you can use Smarty to produce interfaces with support for languages and locales that are easy to maintain.
  • Access your Thunderbird address books and calendars from anywhere
    Joor Loohuis, 2009-07-08
    WebDAV is an excellent light weight storage facility for the Thunderbird mail client. With a few choice extensions it can be turned into a personal information manager with globally accessible data sources for calendars and address books.
  • Setting up WebDAV with Apache
    Armijn Hemel, 2009-07-02
    Web based storage with WebDAV can be set up in minutes using the Apache webserver.
  • Ensuring Evolution survives a distro upgrade
    Armijn Hemel, 2009-06-24
    One of the most vital components of the modern desktop is a mail program. A popular mail program on Linux desktops is Evolution. If you upgrade your distribution you want to take special care to ensure that no data is lost.
  • Quick and dirty MySQL optimizations
    Armijn Hemel, 2009-06-18
    Deleted data in a MySQL database often keeps occupying some space (depending on the storage engine), until the database is optimized. With a simple quick and dirty solution you can let cron do this for you.
  • Fighting form spam with a little JavaScript
    Joor Loohuis, 2009-06-12
    Form spam is one of the many forms of abuse your website may fall victim to. Preventing automated form submissions is often done with captchas, but there are effective ways of preventing garbage in your websites and your databases, using nothing but a little JavaScript.
  • Running top for beer and profit
    Armijn Hemel, 2009-06-09
    Sometimes a small tweak in your system or your thought process can save you heaps and heaps of time, which you can spend otherwise, for more useful things.
  • Potentially problematic feedback between greylisting and spam filtering
    Joor Loohuis, 2009-06-03
    Greylisting may affect the spam score of the message when it eventually is accepted by the mail server, which may have unexpected consequences.
  • "Maybe we should plug the guitars in"
    Armijn Hemel, 2009-05-30
    Sometimes the solution to a big problem can be as small as changing a few jumper settings.
  • Graceful maintenance for Apache virtual hosts
    Joor Loohuis, 2009-05-16
    When disabling individual Apache virtual hosts for maintenance, it is desirable to send search engine friendly 503 headers for any domains configured in this virtual host. Fortunately, this takes very little work.
  • Fighting spam with greylisting
    Armijn Hemel, 2009-05-13
    Spam is one of the number one oline irritations for people. There are some effective ways to get rid of a lot of spam, at least until spammers catch up again. One of the most used methods right now is greylisting, which yields really good results, but at a price.
  • Find geographical coordinates using Google Maps
    Joor Loohuis, 2009-05-10
    There are occasions where you need accurate geographical coordinates of a location, for example for putting a marker on a map. Assuming you don't have a GPS receiver handy, or the location you're interested in isn't around the corner, finding coordinates can be a pain. Fortunately, Google Maps provides a little tool that will help you find coordinates for any location you can display on a map.
  • Sysadmin war stories: (disk)size does matter
    Armijn Hemel, 2009-04-26
    When you have a RAID system you need to keep a few things in mind about disk sizes and never use the full disk. Here is why.
  • Debugging Smarty templates
    Joor Loohuis, 2009-04-22
    Debugging Smarty templates becomes more difficult as the complexity of the assigned data increases, and may also depend on the sophistication of the application. Another twist is added when changes need to be made to a live application. This article gives a couple of tips for making debugging templates a little less painful.
  • Prototype: selecting elements by id or name in Internet Explorer
    Joor Loohuis, 2009-04-21
    Selecting HTML elements by id using Prototype turns out to have a little quirk in Internet Explorer 7 and earlier, where the selected element may not have the specified value in the id attribute, but the name attribute in stead.
  • The art of autoresponders (part 1)
    Armijn Hemel, 2009-04-20
  • Nagios checks for failed RAID disks
    Armijn Hemel, 2009-04-15
  • Microformats: embedding information in webpages the right way
    Armijn Hemel, 2009-04-14
  • Unintentional side effects of using microformats
    Joor Loohuis, 2009-04-13
    Interpreting a website using microformats semantics has consequences for webdesigners and webdevelopers, even if they don't intentionally use them. Certain markup is assumed to have a specific meaning, which may result in functional and presentational side effects. Therefore, designers and developers should be aware of the syntax of microformats, and avoid it if the semantics are not applicable.
  • Hackvalue goes live (finally)
    Joor Loohuis, 2009-04-10
    Hackvalue, the Loco corporate blog has gone live. It will contain content on topics such as Free and Open Source Software matters, systems administration, web development, and more.
  • How to use obscurity to improve security (a tiny bit)
    Armijn Hemel, 2009-04-10
  • Universal Plug and Play
    Armijn Hemel, 2009-04-08
  • Digging to safety with stunnel
    Armijn Hemel, 2009-04-06
  • Sysadmin war stories: when the RAID fails
    Armijn Hemel, 2009-04-04
  • Minimizing Apache httpd downtime with logrotate
    Armijn Hemel, 2009-04-03
  • Cheap MP3 players and Linux
    Armijn Hemel, 2009-04-02
  • System administration war stories: BIOS
    Armijn Hemel, 2009-04-02