Category Archives: Computers

Das Keyboard

_20140922_131900Back in the beginnings of the computer era, the keyboard you received with your computer was a mechanical keyboard. Now when you buy a computer, you get a cheap membrane keyboard. Educate yourself on the difference.

I recently purchased a Das Keyboard 4 Professional (Soft Tactile) that uses Cherry MX Brown switches. Typing on it makes me nostalgic. 20 years ago I had a Tandy 1000 with a mechanical keyboard and remember the sound and touch of the keypresses.

I spend my entire working day using a keyboard and I am very happy with my purchase.

I’ve had my Logitech Revolution MX mouse for 8 years now. It has required a few cleanings and one major overhaul. Hopefully this keyboard last just as long.

New setup at home

I just discovered, self described as “for those who have a computer lab at home.” The first computer homelab I had was about a decade ago when I built my first computer to run linux and serve webpages. I started with Fedora, then Debian, and finally Ubuntu.

I recently retired my DD-WRT router in favor of pfSense and a Unifi wireless AP. I have run DD-WRT on a router for about 7 years. First on a Linksys WRT54G (v2) for 6 of those years and then on a shoddy Netgear for the last 8 months. Until now I had never bought a new router. The WRT54G I bought off craigslist for about $30 back in 2007. The netgear was my parents old router. Now that we rely on wifi for more than the occasional laptop, it was time to beef up the setup. We use wifi for 2 Nexus phones, an old ASUS netbook, and a Chromecast.

I’m running pfSense on an old Dell desktop with an added Intel NIC. I have the Ubnt UniFi controller software running on pfSense as well. I’ve prefer to have a new appliance to run pfSense but its cheaper to run the more power hungry desktop (which cost nothing to buy) than buy a $100 or $200 router. Right now I’ve sunk $68 (the cost of the UniFI AP) into the new setup.

I should run the power number of the desktop and see what my return on investment would be if I bought a Ubnt EdgeRouter-Lite. There are rumors that the EdgeRouter-Lite will be able to run pfSense in the future.  Ubnt’s EdgeOS might be sufficient too.

Home Sysadmin Projects

One of the easiest easy ways to show your chops as a Sysadmin is to mess around at home. I have known a couple Sysadmins who always asked about an interviewee’s home setup. I have read a couple of articles about how the new programmer’s resume is GitHub or their commits to open source projects. This is the Sysadmin version.  The following are a couple of current projects of different sizes that one can do at home and give you something to talk about during your interview. They are all relatively easy, my intention is not to give you something hard to accomplish but to get your hands dirty.


FreeNAS is an open source storage platform that provides numerous ways to turn your old desktop into a Network Attached Storage appliance.  It has both a web and commandline interface which provide access to various tightly integrated software services: iSCSI, FTP, SSH, torrent, TFTP, NFS, CIFS, rsync and many more. It will allow you to do a number of cool and nifty things. I use the TFTP server coupled with DD-WRT to build a home pxe multi-distro build environment. You can setup a fileserver to share music, movies, or documents across home computers.


DD-WRT is an open source commercial wireless router firmware replacement. You can take your old Linksys or Belkin and flash it with DD-WRT. There are numerous articles all over the web about how dd-wrt will turn your $60 router into a $600 super-router. When you first flash the firmware, it is still just a regular old router. It takes work to utilize all the features. As aforementioned you can couple it with FreeNAS to create a home pxe environment. You can also create multiple wireless and/or wired networks. At one point I had 5 separate networks on my dd-wrt enabled linksys router. Take a look at the dd-wrt features page for more ideas. The more creative the better.

Build a desktop

You would be surprised how many computer programmers could not open up their desktop and upgrade a component. Edsger Dijkstra, of Dijkstra’s algorithm, is a computer science teacher who believe a true computer scientist should never touch a computer. Ask friends for old desktops, visit newegg, or just get a bare bones PC. Tinker, tinker, tinker. Servers and desktops might look completely different but they all have the same innards. It will turn out to be so much more than just CPU, memory, PCI-E cards, etc. Only specific memory works with each motherboard that also requires a specific type of CPU. When Intel upgraded from the Xeon 5500 series CPU to the Xeon 5600 series CPU they completely changed the memory bus configuration and type. You will quickly learn as a sysadmin that you should never throw anything out. Just because you don’t need it today does not mean you won’t need it in 5 years. I have heard of sysadmins digging out their old dial-up modems in 2010 to just mess around.

Install a Linux Distro

There are a myriad of available linux distributions. Ubuntu, Fedora, Debian, are centOS are just a few. Pick one out and install it on an old piece of hardware. If you can’t find hardware, install virtualbox on your current PC and build a guest. Build it, update it, break it, a lot is learnt when trying to fix an issue. After you have installed an Operating System, install interesting packages. LAMP is a common acronym for a Linux, Apache, mySQL, PHP server. You can use it to create a webpage, or install wordpress or another blogging platform. Once you have mastered the easy installs, you can try Gentoo or even LFS (Linux From Scratch).

Other non-project ways to boost your Sysadmin cred:

Someone also brought this discussion to my attention Reddit: Set me some tasks to advance above noob

DD-WRT router recommendations

It my previous post My Awesome Home Network, I stated that I had found my next DD-WRT router: Buffalo WZR-HP-G300NH. Unfortunately after more research I have found that it is notorious for wireless issues. It appears to lose it’s wirless interface and while it can be patched with a script to reset it, I am not buying known bad equipment.

I am looking for a router with as fast a CPU as possible that supports DD-WRT and has as much RAM and FLASH as possible.

Any recommendations?

Laptop Surgery

This past weekend my wife accidentally spilled hot chocolate on her mostly new laptop. We bought her an ASUS 1015PED netbook not too long ago to replace her 4+ year old Dell Inspiron laptop.

The first thing you want to do whenever you spill anything on electronics is to turn it off IMMEDIATELY.

The second thing you want to do it put it rice or a permeable bag and then in cat litter. Because she spilled hot chocolate and not water, removing the liquid isn’t the problem. The issue is that after the water evaporates it leaves behind sticky chocolate.

After turning it off and waiting until the next day, it powered on fine. Unfortunately certain keys were not working. Today I got a chance to open it up. I know this voids my warranty but the warranty does not cover spilled liquids. It was not easy to get it open because it is made to look smooth and seamless (stupid apple influence). I managed to get it open by removing a bunch of screws and breaking a couple little plastic clips. I wiped it down, removing quite a bit of dried hot chocolate. I reassembled it and it powered on fine.

The same problem persists, certain keys don’t work. You can’t really use a computer when the ENTER key doesn’t work. Additionally the BACKSPACE, and arrow keys don’t work. Even after cleaning the mouse buttons they still don’t function either.

I don’t know if I can disassemble the keyboard, it seems to be one piece. I looked online but can’t find a replacement keyboard for my model.


My Awesome Home Network

Well I finally have the house to setup my permanent home network. Being that I spend 10+ hours a day administrating my employer’s network and infrastructure it is mucho exciting to set my own up. I have a colleague who showed me his network diagram and I was impressed. I have no trouble setting up floorplans for data centers because they are a simulacrum of reality. When it comes to network diagrams I start one and halfway through trash it. It seems there is an inifite number of ways to represent a simple network.

My setup:
I am running dd-wrt on a Linksys WRT54G v4. I bought this 3+ years ago off craiglist, it has served me very well. I had to upgrade from v24 SP1 to a v24 pre-SP2 because I was experiencing some issues with the router freezing which required a reset. You really have to read the dd-wrt wiki and forums carefully to pick out the correct firmware. I am running a Brainslayer standard build with no kaid support (a gaming protocol). It uses the NEWD drivers, but not the NEWD-2 drivers which should only be used on the latest routers. The firmware also still uses 2.4 kernel. While there are firmwares that run the 2.6 kernel you have to be careful because they all use the NEWD-2 driver which has a tendancy to brick older routers.

Networks: Main LAN Private WLAN secured with WPA2 (TKIP+AES) Guest WLAN (unsure what security to implement) Out of band management LAN

I might add a OOBM wifi in the future if necessary. I have the config 90% done. The guest WLAN is created but not separated from the other networks. In the end the guest WLAN will have access only to the internet and no internal networks. It would be easier to accomplish this by buying a 2nd router, but at this time my funds are limited. I have scoped out the next dd-wrt compatible wireless router I would get: Buffalo WZR-HP-G300NH. It retails for $79 right now and offers some significant upgrades from my current router.

Model H.W. rev FCC ID Platform & Frequency [MHz] RAM [MB] Flash [MB] Wireless NIC WLAN standard [802.11] mini PCI Serial port JTAG port Eth. port count Volt. Input [V/A] extras min required DD-WRT version
WZR-HP-G300NH v1 FDI-09101560-0 Atheros AR9132@400 64 32 Atheros AR9103 b/g/n 1 1 4 LAN 1 WAN (Gb) 12V 2A 1 USB 2.0, 1000 BaseT (Gb) switch v24sp2 v13525 20091228
WRT54G 4.0 Q87-WT54GV40 Broadcom BCM5352@200 16 4 Broadcom BCM5352 SoC b/g No Yes Yes 4 LAN 1 WAN 12V 1A ? ?

UPDATE: DD-WRT Router Recommendations

Intel Add-In Cards

We recently started using 10GbE at work. Our solution uses cat6 cable and Intel Server AT2 adapters with RJ-45 connectors. The cards themselves don’t PXE out of the box, unfortunately. You need to enable them. I believe this can be done by hitting CTRL+S at some point during POST, but it is easier to boot into an limited OS and automate the changes. The issue with that is that Intel tools only work in DOS, ugh. So with that limitation I downloaded a DOS bootdisk. The last time I did that was in the 90s. Added the Intel utility and firmware updates and added the commands to autoexec.bat. Bingo.

I’d prefer it if Intel supported a linux utility.

HTML5 & CSS3, and PING

Just a couple of interesting links.

Designing for the Future with HTML5+CSS3 : Tutorials and Best Practices

I am not a web designer but I have made my fair share of websites since I created my first in 7th grade. My friend Porter had created his and I thought it was pretty awesome. I wrote my first webpage from scratch in notepad sometime in 1997. It was a monstrosity with tons of animated GIFs on a hideous background. Since then I have messed around with HTML, CSS, PHP, Javascript (most notably jQuery). Now with HTML5 and CSS3 we have some more cool toys to play with. The primary use of computers is becoming internet usage. This means javascript libraries and javascript engines are going to play more important roles.

The Story of the PING Program

The best anecdote is that the creator of PING is jealous of the guy who used PING to create traceroute. Awesome.

Where Is My Next Generation File System?

I read a good article over at entitled, Why filesystems are hard. I am not going to summarize it for you. Too many netizens (net citizens) are reliant on quick fixes and blurbs. But this is a rant for another post. Go read it, it is not a waste of time.

But what I will discus are my thoughts on the article.

Every since I downloaded my first linux distribution (8th grade), there has been ext3. All of my countless builds and rebuilds across multiple distros (fedora, debian, ubuntu) I pretty much stuck with ext3. It was the default and it worked. It wasn’t until one of my college classes we covered the nitty gritty of filesystems and even then I remember it being covered in just 2 sessions. Still every build I just built using the default fs (although by this time I had at least setup RAID). It wasn’t really until I got a job where I started interacting with various filesystems. And while we use XFS for its speed (no one wants to fsck a 2TB journaled filesystem), again the majority are on a ext3. There has been talk about switching to ZFS or EXT4, but this definitely won’t happen until they are quite a bit mature.

Now that Ubuntu 9.10 Karmic Koala is out and its default fs is EXT4, there will be a lot more people testing it out. They will find those very infrequent and rare bugs, and eventually EXT4 will be everyone’s default.

Linux Run Levels

Back in the day ( I’m being facetious) there were 6 run levels.

0 System Halted
1 Single User Mode
2 Multi User No Networking
3 Multi User No X
4 Not Defined (special use cases)
5 Multi User with X
6 Reboot

These days Ubuntu is the distribution of choice. Unlike its predecessors, it does not have as complicated a scheme. In Ubuntu (and Debian as a base) there is no distinction between runlevels 2-5. 1 is still single user mode and 6 is still reboot. On top of this wild and crazy scheme, Ubuntu has gotten rid of inittab. Prior to 9.04 entries were put in /etc/event.d but with 9.10 even that is gone. They call their system and it can now be found in /etc/init . For administrators moving from an older distro, it can take some getting used to.