• Cfengine 2 for Debian and Ubuntu

    Cfengine is a declarative system configuration tool. This helps apply standards to system configuration. The configuration files specify the desired configuration and the engine applies these specifications to the system.  It is useful to:

    • Distribute configuration files;
    • Install standard packages (including on Debian and Ubuntu with code provided here);
    • Cleanup old files; and
    • Ensure certain programs are/are not running.

    This documentation applies to Cfengine version 2. Version 3 has made significant changes to the scripting structure but maintains the capability to run the version 2 format files.

    (more…)
  • Firewalling Google Chat and Skype

    To enable for Internet chat I set up Google Chat and Skype.  My firewall rules have been extremely restrictive with only known and approved services allowed to connect.  Google Chat installed with no noticeable impact to the firewall. Things did not go so well with Skype.

    The installation of Skype resulted in lots of warnings on the firewall.  Outgoing tests worked with only port 80 and 443 open.  Skype’s peer-to-peer approach  requires at least one port be opened incoming and and a large range of ports outgoing.  They specify all ports over 1024 should be open.  Their preferred mode seems to be to use uPnP to dynamically modify the firewall.   They do allow you to attempt to set  fixed incoming port which is also used for some outgoing UDP traffic.

    (more…)
  • Setting up Squid Proxy on Ubuntu

    Squid is a proxy service for HTTP and other requests. This article covers installing it and configuring it to run on Ubuntu as a transparent proxy. This documentation includes configuring Web Proxy Auto-Discovery (WPAD) via DHCP and DNS.

    I run a heterogeneous configuration. This provided a number of challenges as various implementations of WPAD were encountered. Each seems to require something different. The final configuration works for Ubuntu, Windows X/P, and Windows Vista. Both Internet Explorer and Firefox configured correctly.

    (more…)
  • Database Naming Conventions

    Naming standards for database objects can simplify development. The names used for tables and columns are most visible. Using standard conventions for the other objects can clarify where they fit in the design. This article describes the conventions I use by default.

    (more…)
  • Code Optimization Rules

    It is common for developers to worry about optimization while doing initial programming. Some write extremely complex code in the belief that it is optimized. Unfortunately, this code is often slower than it might otherwise be. Additionally, the compiler may be unable to optimize the code. I find optimization is rarely necessary and effective optimizations are difficult to predict.

    This post present the my optimization rules. Future posts will present the techniques I use to avoid optimization, and perform optimization when needed. (more…)

  • Running an Email Server

    I administer an email server for a couple of domains and a few users.  Incorrectly configured email servers result in a lot of my administration work.   Due to improper configuration, far too many servers look like Spam servers.   A little effort in setting up your server can make my life easier, and increase your chance of successfully delivering email everywhere.  This article describes steps you should take. (more…)

  • Connecting a Palm via USB

    The computer to which I had been synchronizing my Palm Tungsten E died a while ago. I explored the two options for connecting to my Ubuntu system using a USB cable. The fastest is to use a direct USB connection. However, I wanted to ensure I could synchronize over a network connection. I also configured and tested setting up a PPP connection over USB. (more…)

  • Analog with Report Magic and Logwrangler

    I am now using Report Magic for Analog with my Analog installation.  My last attempt had failed miserably, but this time it went extremely well.  I found Logwrangler which does a lot of the work.  I encountered an incompatibility between Report Magic and an updated graphics library.  Once the patch was applied the program ran well.  All that was left was tuning the report layout and the interaction with Logwrangler. (more…)

  • Analog for Multiple Sites

    Analog is a fast and flexible web log analysis tool.  Its configuration can consist of several files nested using include statements.  This allows common configuration items to be grouped in separate files.  The minimal site specific configuration items can be contained in small include files.  Similarly, time period specific include files allow for reports by time period to be easily configured.  Each report then requires a configuration file, which includes a few other files.

    I have reviewed and updated my previous documentation for analog.  This site is hosted on a new server, and I needed to setup analog for the new server.  I also made changes to the list of virtual sites being hosted.  I generate report sets for each site as well as an overview report for all sites.  Each report set includes reports for covering the latest week, month, and year of data.  (more…)

  • Monitoring with Munin

    Munin is a system monitoring program designed to capture and graph performance statistics with minimal configuration. It is significantly easier to configure than MRTG and has a wide variety of plugins.  The Ubuntu (Debian) installer will setup a reasonable configuration on installation.  It requires one server, and a client daemon on all monitored servers including the server. Scalability to large (campus) environments has been reported to be an issue (more…)