Home Network

As I've mentioned in other articles, I use my home network for evaluation of technologies as well as supporting multiple websites. The primary server runs Apache/Tomcat and also acts as the firewall for the internal network. I use iptables to limit access to ports and also proxy some of the internal services. Everything else behind the firewall is masqueraded. The internal servers typically provide support services, running three different J2EE application servers (IBM's WebSphere, BEA Weblogic and Sun's glassfish) as well as various RDBMS servers (Oracle, DB/2, MySQL and PostgreSQL.) The hex core processor (sudsyxen) is sometimes used as a Xen server but that functionality is gradually being supplanted by VirtualBox. The internal network was upgraded to gigabit Ethernet, while the commercial Internet service runs at 80 Mbps, and it significantly speeds up ftp or scp transfers between machines.

I've assembled each of the servers myself. I select the components (motherboard, processor, memory, power supply, hard drives, etc.) and re-use some server boxes I purchased a number of years ago. They all look the same from the outside but the internals change over time and as needs require. That also explains my collection of older motherboards, processors and hard drives, even some old IDE drives which most contemporary mother boards don't even support. I even have some old CD (pre-DVD) and floppy drives. Also lots of memory cards which will never be used again unless someone comes to me with a very old computer in need of a new lease on life. Four of the servers live downstairs, due to both heat and noise. There's also a Brother 4040 CDN (colour laser, duplex, networked) printer down there. It generates beautiful output although toner life leaves something to be desired.

The laptop runs Fedora Linux from a Solid-State Drive (SSD) which replaced the original 5400 RPM hard disk. The other boxes run variants of Linux except for the Mac Mini which obviously runs OSX. The sudsy5 machine is a dual-boot system which runs Fedora 20 as well as Windows 7 Professional. One of my latest experiments involved installing Samba 4.3 and configuring it as an Active Directory Domain Controller. The dual-boot system can join the domain and can't tell that it's not talking to Windows Server. The beauty is that Microsoft® makes available Remote Server Administration Tools for Windows 7. And that software can't tell that it's not running against Windows Server either. It's completely transparent!

I replaced dual 19" LCD monitors with a 27" HP 27xi which has connectors for VGA, DVI and HDMI. This allows me to leave the dual-boot sudsy5 connected to the HDMI port and the KVM switch downstairs to the VGA port. I have to manually switch the DVI cable between sudsymac and sudsyxen but I can ssh to these machines so I don't often need to view the display from those boxes. They also share a single USB keyboard and mouse. I have a keybord and track ball (PS-2) for the servers downstairs sitting on a slide-out shelf underneath the glass desktop and a separate keyboard and mouse for sudsy5. It's actually not as busy on the desktop as it might sound since I leave the keyboard and mouse for sudsymac sitting on the case, beside the desk. The sudsy5 machine can be noisy at times due to the throttled CPU fan (AMD Cool'n'Quiet) but the Mac Mini is next to silent.

UPDATE: I acquired an HDMI switch so now I can switch between four inputs: the Mac Mini, the Windows box, the Raspberry Pi and my new server (see below.) It cleans the desk up a bit since a single keyboard and mouse can control all the upstairs servers and they all can generate HDMI video. I really should have done it sooner but I was waiting for the prices to drop. I also picked up a long HDMI cable which plugs into my Sony STR-KS470 Matching Surround Sound Home Theater System which feeds the Samsung plasma in the den. Not pulled into service very often but useful when I need the real-estate for applications like Eclipse.

UPDATE: I've assembled yet another server here at the house for some additional work I'm doing with WordPress. You can read about it here.

I live in a house built to modern standards, i.e. wooden studs covered in drywall. As a result, wireless range is necessarily limited. While I can get a good signal on a Mac Book Pro in the den from the wireless router in the office, the Acer design means that the laptop wireless antenna doesn't "see" as good a signal and speeds are negatively impacted. Things became more problematic when I tried to use the Acer out on the deck. Rarely was I successful in connecting to the router in the office. I ended up configuring a repeater in the kitchen which resolved the connectivity issues. I just have to remember to switch networks when moving indoors.

Here's a brief rundown on the hardware and software running on the machines in my home network:

Host Name CPU Memory Hard Drives Applications
sudsy3 AMD Athlon 64 X2 5600+ 4 GB 2 x 250 GB SATA II Red Hat Enterprise Linux 2.1AS
Apache 2.4.23
IBM WebSphere 7.0
Oracle 10g Release 2
sudsy4 AMD Athlon 64 X2 3800+ 1.5 GB 300 GB SATA Red Hat Enterprise Linux 4AS (Nahant Update 5)
IBM WebSphere 7.0
IBM DB/2 V9.1
sudsy5 AMD FX-6300 16 GB 200 GB IDE
Windows 7 Professional/
Fedora 20 (Heisenbug)
sudsy10 AMD Athlon II X2 245 2 GB 1 TB SATA II Fedora 12 (Constantine)
Glassfish 2.1
Oracle 11g
MySQL 5.1.47
sudsy64 AMD Athlon 64 3200+ 3 GB 80 GB IDE
Fedora 20
Tomcat 6.0.43
BEA Weblogic 9.2
MySQL 5.6.13
PostgreSQL 7.2.3
sudsyxen AMD Phenom II X6 1090T 8 GB 120 GB SATA III SSD
Fedora 18
Samba 4.3 AD DC (includes Kerberos)
MySQL 5.7.7
Oracle 11g XE
sudsyi Intel Core i5-7500 8 GB 256 GB M.2 SSD
Fedora 25 Server
Apache 2.4.23
MySQL 5.7.24
sudsymac 2.66GHz Intel Core 2 Duo 16 GB 2 x 500 GB SATA OSX 10.10.5 (Yosemite)
Xcode 6.1
MySQL 5.6.24
Subversion server
laptop AMD Athlon 64 X2 L310 4 GB 256 GB SATA II SSD Fedora 24
(Windows 7 Home Premium retd.)

UPDATE: For people like me, always educating myself on the latest in technology, things don't stay the same for long. It's why there are now a few SDD drives installed; well, that and the phenomenal performance improvements. There are some new devices recently added to the mix. First is the Raspberry Pi 3 Model B. It's quite the marvel, a tiny little thing with no hard drive, just a microSD card which also contains the operating system called raspbian. As the name implies, it's a port of the Debian Linux distribution. Still, lots of stuff in there by default, even Java! And you can always download anything else you might need from the 'net. It's touted as an educational tool yet is a fully-fledged system, complete with all the tools you need for development in C. I can develop Java applications on my other systems, taking advantage of powerful development tools like Eclipse, and just scp a jar file to the raspberry and run it on the JVM there. Sweet! Finally, it has both Ethernet and WiFi connectivity.

I dabbled with X10 back when I was living down in Atlanta and still have a couple of devices in my possession. I thought that it might be fun to put them to good use, taking advantage of a stand-alone micro system like the raspberry. The power line interface used by X10 was a neat idea but it didn't work particularly well. The problem is that most homes in North America are fed by 220/230 volts AC. The power is split into two "legs" and signals transmitted on one leg will not be picked up on the other. So if you were trying to communicate with an appliance or lamp module, it had to be on the same leg or the system wouldn't work. That's a serious limitation! But they also had a wireless capability and made some neat little infrared motion detectors. In normal operation, when the sensor detected movement it would send a wireless command to a transceiver which would then transmit the command on the AC wiring. It worked well in the house in Atlanta and I wondered whether it might be possible to integrate it with something more contemporary.

The last few years have seen the introduction of several wireless home control systems. As usual, they're incompatible although efforts are underway to standardize the industry. But some, like Philips Hue, have well-documented public APIs available. They also have motion detectors but they're more expensive than the ones I already have and which can still be purchased inexpensively. So I got the idea of using the MS16A motion detectors along with my CM15A transceiver to handle the sensor component and the Hue to control the lights in my house. The CM15A has a USB connector but the communication protocol is very poorly documented. The Hue bridge has an Ethernet connector and the aforementioned well-documented interface. And they both serve as transceivers to wireless in order to communicate with their corresponding devices. So I took the plunge and purchased a starter kit which included a bridge and two white LED bulbs.

Of course, there are numerous software applications available already which run on your iPad, iPhone or Android cellular telephones. But if you read the reviews, they're not particularly well-received. But I can develop software which suits my needs; if others find it useful, all well and good. But it gets better! I went to an Amazon presentation a couple of months ago and was amazed at the kinds of integrations possible with IoT, or the Internet of Things. Amazon uses an interesting combination of technologies, including MQTT. That is a light-weight implementation of message queues, implemented in products like IBMs MQSeries and platforms such as J2EE. It provides a publish/subscribe model permitting multiple consumers of messages. Amazon demonstrated using their voice interface system, Alexa, to publish messages which could then be acted on to perform any number of actions, depending upon how the system was "stitched togther."

So it's no surprise that Philips can interoperate with Apple's HomeKit and that you can use Siri to control your lights. I must admit that it's neat to be able to call up Siri by holding the home button on my iPhone and saying "turn bedroom light on." But what Amazon was also demonstrating was integration with their Echo device. Since I live in Canada, they won't ship here. And now they've introduced the Echo Dot, which is a much smaller device, only lacking in the room-filling sound provided by the full-sized Echo. But I like my sound in stereo, so the smaller form-factor of the Dot makes it far more desirable for my vision. I was finally able to order a couple of Dots from a company in the States which happily ships to their Canadian customers. And I was able to order before supply of both the Echo and the Dot dried-up in the pre-Christmas shopping rush.

My vision runs something like this: using infrared motion detectors, when I enter a room a signal is transmitted wirelessly to the CM15A connected to the raspberry. The pi runs a daemon which "listens" for these commands and publishes them on an MQTT queue via a 'net connection. It also runs another daemon which subscribes to the queue and processes received messages. It sends a command to the Hue bridge via the home WiFi network. The bridge then sends the command wirelessly to turn on the appropriate lamp(s). But add the Dot and I can say, as I'm passing my home office or kitchen, "Alexa, turn on the lights in the basement." The Dot communicates to the 'net via the home WiFi and the circle is almost complete.

But I run my own servers here at the house so I can fairly easily extend the system so that I can connect to the house wherever I have Internet connectivity, or even via the Cellular Data network, and send commands to the house. Suppose I'm going to have to work late at the office. I don't want to waste expensive natural gas so I tell the systems not to turn on the furnace at the usual time. The possibilities are endless. Integrate with an electronic doorbell and be able to see who's at your front door from your 'cell phone and communicate with them. Be alerted to unusual activity around your house by integrating motion detectors and enabling the transmission of SMS messages to your 'cell phone.

So I can hear you asking "why can't you just use the light switch, like the rest of the world?!" Where's the fun in that? Beside which, this is an area which I believe is going to witness explosive growth over the next few years. And there's going to be a corresponding need for the services of people who are intimately familiar with the technologies. People, well maybe not the millenials, already have conniptions doing things as basic as setting up a wireless router at home. How do you expect them to configure all the other "moving parts" so that things work together seamlessly? The devil is in the details. I plan to have some fun learning how to integrate these disparate technologies. Plus I need to come up with some fallback mechanisms for when the 'net connection goes down. If I lose power at the house, though, then all bets are off! Unless I can hook up a whole-house UPS...hmmm...

UPDATED 2018-12-31

See here for more about the home automation experiences.