At my place of employment we recently purchased a piece of software to design and print identification cards. We were planning to use the software to make employee badges. I did not have an opportunity to try out the software in advance because no trial version was offered. However, the vendor made a good sales pitch, so I shelled out roughly a thousand dollars to purchase the software.
It turned out to be one of the most difficult-to-learn software packages I have ever attempted to use. After laboring for five hours, I still had not figured out how to print a single ID card. I’m not the sharpest knife in the drawer, but I’m not the dullest, either. There had to be a better solution. Not wanting to spend more money, I decided to build the software myself.
I started with a 2U rackmount case, the Norco RPC-230. I like this particular case for several reasons: First, it has a shallow depth that allows it to be mounted without rails, and it is sturdy enough that it won’t sag. Secondly, being 2U allows for a standard off-the-shelf power supply unit. I do not like scrambling to hunt down an odd-ball power supply when my server goes down.
I went with a fan-less mini-itx motherboard from Asus that comes with a dual-core Intel Atom processor already integrated. This is one of the few Atom boards that met my three qualifications: four SATA ports, no fans, and a decent price.
For storage I selected two identical Seagate 1 Terabyte drives. The data on these will be mirrored (RAID 1).
I finished it by installing the fabulous and open-source FreeNAS version 8 on a 8 GB USB thumb drive, freeing the entire RAID pair to be used for storage.
For reference, here is a list of all the hardware for the appliance, cleverly linked to my Amazon affiliate account:
- Norco RPC-230 rack-mount enclosure
- Antec Basiq BP430 Power Supply
- Asus AT5NM10T-I mini itx motherboard
- Two Crucial 2GB memory modules
- Two Seagate 1 TB hard drives
- Lexar 8 GB flash drive
I am a recent convert to the Google Chrome web browser. In my opinion, the speed and simplicity of this browser is unmatched by the other popular choices. Although Internet Explorer 9 and Firefox 4 are fairly good as well, Chrome is still my favorite browser on both the Linux and Windows platforms.
For some time now I have been displeased with Adobe Reader. First of all, it seems bloated and launches slower than other PDF viewers I have used. To make up for the slow speed, recent versions also install a background process in Windows that presumably loads part of the application in advance. Little displeases me more than a software application that includes a background process, with the obvious exception of anti-virus programs that NEED to run in the background.
Lately I have been using the Google Chrome web browser more and more and my old favorite, Firefox, less and less. Unlike other web browsers, Chrome has a built-in PDF viewer, eliminating the need for the Adobe Reader plug-in. This makes viewing PDFs faster and more trouble-free than relying on the plug-in. I have never encountered a PDF document that did not display correctly in Chrome.
A few days ago it struck me that Chrome could be used to view PDF documents on my computer as easily as those on the web. All you have to do is set it as the default application for opening PDF documents. To do this in Windows 7, RIGHT-click on any PDF file and select Open With > Choose default program. A screen will appear with a list of programs. Select Chrome from this list (you may have to browse for it), check the box beside “Always use this program to open this kind of file”, and then click OK. In the future, Chrome will be your default PDF viewer. These steps will be very similar in Windows XP or Vista.
One of the first frustrations I ran into with Zend framework was with linking images and style sheets to a web site. In my pre-Zend days of web programming, I’d just use a relative link, such as the following:
<link rel='stylesheet' href='theme/style.css' type='text/css' media='all' />
This link works fine within the default controller and action. However, when a different controller and/or action is specified, the URL changes, and the relative link breaks. In search for an answer, some programmers suggested that the solution is to simply add a slash at the beginning of the href to make the link absolute, like so:
<link rel='stylesheet' href='/theme/style.css' type='text/css' media='all' />
Although this may work, it still breaks if you ever store the website in a sub-directory as opposed to the root of the webserver’s public directory. In my case, this solution was a non-starter, as my development site uses sub-directories for each project. I use a symbolic link to link a particular sub-directory on my development site to each of the Zend projects “public” directories.
dev.mydomain.com/project1 (sym-linked to /zendapps/project1/public)
dev.mydomain.com/project2 (sym-linked to /zendapps/project2/public)
dev.mydomain.com/project3 (sym-linked to /zendapps/project3/public)
Using a non-changing absolute link would cause the code to break as soon as it is copied to my production server, where each project resides by itself in the webserver’s root directory.
The real solution to this problem is to use Zend’s built-in baseUrl() view helper. Then your code will look like this:
<link rel='stylesheet' href='<?php echo $this->baseUrl(); ?>/theme/style.css' type='text/css' media='all' />
I recently had the privilege of building a computer at my place of employment, using the following parts:
The result is an inexpensive, fan-less computer that can be mounted on a wall or on the back of an LCD. The power usage of this computer ranges from 15 to 21 watts depending on its load, so I stand to save $30-$40 a year in electricity when compared with a more typical computer that consumes 50 to 80 watts (I leave my computer running 24/7).
There are prebuilt computers that are similar in price, such as the Zotac MAG, but they use proprietary parts. That means if something breaks outside of warranty, you may find it difficult or impossible to find replacement parts. With a standard mini-itx system like this one, parts availability should not be a problem for several years.
Speaking of “green”: did you know that you can save money on ink simply by using a different font when composing documents for printing? According to this article on Yahoo! News, a font with thin lines such as Century Gothic can use up to 30% less ink than popular fonts such as Arial. If you’re using Linux instead of Windows, you may not find either one of these in the list of fonts available to you. However, the concept still applies; just look for a font with thin lines.
If you’ve been wishing that you could install a web server on your Ubuntu PC, you will be pleased to find out that you can install one very easily. All you will need is an Internet connection, and a bit of time. I hope this guide is helpful.
Here’s how to install: Open Synaptic Package Manager. Choose Edit > Mark Packages by Task. Scroll down and check the box beside “LAMP Server.” This will mark apache2, PHP, and MySQL for installation. Apply the changes. You will be prompted for some configuration information. That’s it! Punch http://localhost into your browser’s address box to test your installation.
Now I suppose you want to add some files. The server’s root directory is
/var/www. If you navigate there with your file browser you will see the files, and even be able to open them with gedit, but you will not be able to edit them. This is because the directory is owned by root. There are multiple ways to work with this. You can run Nautilus from a terminal (
sudo nautilus /var/www), or even create a launcher on your desktop (
for this command: gksudo nautilus /var/www). However, you will probably find it more convenient to change the permissions of the
/var/www folder. To do this, run Nautilus as root (
sudo nautilus), navigate to the
/var folder and right-click on the
www folder. Give yourself access under the permissions tab. Now you can create and delete files without running your file browser as root.
Oh by the way, you can access the server from another computer on the network as well, provided that your firewall allows incoming traffic on port 80. Just enter
your-ip is the ip address of the computer that hosts the server.
One of the strengths of Linux and open-source in general is that it is infinitely customizable, allowing it to be used to power anything from a phone to a mainframe. In addition, there are a wide variety of distributions available, some of which are targeted at specific tasks. Ken Hess has compiled a valuable list of 10 special-purpose Linux distributions. You can find his list at:
I’ve been on the look-out for open source firewall software recently. For your benefit, here’s a list of what I’ve found so far:
pfSense – http://www.pfsense.com/
m0n0wall – http://m0n0.ch/wall/
Untangle – http://www.untangle.com/
Zeroshell – http://www.zeroshell.net/eng/
I also ran across a very interesting web-based SSL VPN:
OpenVPN ALS (a.k.a as Adito) – http://sourceforge.net/projects/openvpn-als/