Hobbies
LaCrosse WS2308 Weather Station
For Christmas last year my wife bought me a LaCrosse 2308 weather station complete with wind and rain sensors. I mounted the remote temperature gauge outside and connected the station to my Mac Pro with a USB to serial adapter.
Over the course of the past few months I've tried various weather station software packages including WeatherTracker and LWC. Unfortunately development on WeatherTracker seems to have halted, and LWC didn't meet my needs. Both are cool packages though. While I was experimenting with WeatherTracker I helped the developer of GaugeSoftware get his package compatible with PHP4 and PHP5.
Instead of using a compiled software application to log my weather data I decided to build my own data logger. Unfortunately LaCrosse doesn't publish any information about their device, so writing a method to query data direct from the station was impossible (for me). After much research I stumbled upon a perl library (available via CPAN)
that acts as an interface for the USB serial driver.
Eventually I wrote a little perl script to query the device and submit the data to the database. I also wrote a LaunchDaemon plist file that fires off the perl script every hour during the day. With data logging to a MySQL db running locally I then wrote a little web application to query and post the data. You can see current weather data here. I also plot the historical weather data using a PHP library called jpgraph.
For kicks, I modified a script available for PBX In A Flash that speaks the current weather conditions to anyone that calls. Hows that for geekery?
Next, I'm going to improve this application by adding a "real time" method that will query the device every 15 minutes and log this data to the database.
PBX in a Flash
After the controversy surrounding Trixbox phoning home, I decided to abanond Trixbox and migrated to PBX In A Flash. PIAF is a completely "open" Asterisk distribution built and provided by the folks at NerdVittles. This is a great distribution that includes Asterisk, FreePBX, and the guys running the show provide a bunch of scripts that can be used to upgrade and enhance the distribution. I like this system and the growing community around this distribution is helpful and provides great support.
I decided to volunteer some time to this effort and am currently rebuilding the website for PIAF Scripts. I expect the new site to be online soon!
Mambo/Joomla vs. Drupal
I've done a few projects using Mambo/Joomla and (at the time) was very impressed with this CMS:
- Easy to theme
- Great administrative tools
- Easy to maintain
- Structured content publishing paradigm (Category/Subject)
- Easy to learn
I liked Joomla so much I've been using it for my personal website for the past 2 years.
At work we started evaluating other CMS packages, including Joomla, and using Joomla was my first choice. However my friend and co-worker Cedric suggested we check out Drupal. I'd heard of Drupal before and had visited the site a few times but was initially put off by (what seemed to be) the very unstructured nature of this package. More specificially, perhaps due to my experience with Joomla, Drupal seemed very foreign: I didn't understand the Vocabulary/Taxonomy system for tagging content.
Cedric suggested I read up on Drupal and over Christmas break I installed it and began using the tool. After a few hours all I can say is WOW. Drupal rocks! I was (and am still) blown away by how powerful and well thought-out this package is. We've been using it at work for a big project and Cedric's decision to use this tool has paid dividends several-fold. One of the huge advantages for us was the ability to downloa, install, customize, and use "off the shelf" modules to meet a variety of feature requests from the client. Apart from the dizzying assortment of modules available Drupal's core architecture is well designed, tested, and has well documented hooks and api's that allow web developers to extend and customize the system to the extent that our project doesn't behave like other Drupal powered websites. This is a key advantage and attests to the power and flexibility of the core system.
Currently I'm rebuilding my personal website using Drupal. I'm leveraging much of the knowledge and skills I've aquired from the project at work and am having loads of fun using Drupal. Can't wait till my new website is done.
Home Voip Server
I finally have it all working perfectly. Last year I became interested in the Asterisk@Home project. After downloading a copy of the .iso I went out and bought an old POS Dell OptiPlex GX1 that would become a dedicated CentOS/Asterisk@Home server.
Over the course of the past year I've gradually upgraded the system, learned about VOIP, Asterisk, and the whole brave new world of internet telephony. Fricking cool shit. Within this past year Asterisk@Home eventually became Trixbox, and the reliability and the maturity of this technology has increased steadily.
After cutting my teeth learning to create a basic Trixbox home server I signed up for a VOIP service account with AXVoice--who offer a flat rate and compatibility with Asterisk. Part of the service includes a telephone number in any area code you want. This is important because of the "virtual" nature of IP telephony: your server can be in one place and serve a phone number in any location across the country. This is really cool: one application of this is it allows you to make "local" calls to home, friends, family, and work while you're on the road any where in the country.
After using my VOIP server and service with a "softphone" (a virtual telephone application you run on your desktop or laptop computer) for a few months I decided it was time to upgrade the system with a neat little hardware device called an Analog Telephone Adapter (or ATA). These devices act as a network bridge between analog phones and digital VOIP systems: essentially you plug in an ethernet cable and a regular home phone and dial away. I decided to purchase an Sipura SPA-2102, which is a little router that includes two RJ-11 jacks.
Configuring this little beast can be tricky, and luckily there is ample information on the web to help noobs like me. The SPA-2102 has an integrated web server so you can do all your configuration with a web-browser--which is much more convenient than using the mini voice server that's built in. Basically you assign it an IP address and supply it with the necessary extension and account credentials so that it will connect with your Asterisk server. Of course, you need to create a new extension in Asterisk so that the SPA-2102 can connect to it as well!
I finally got everything figured out and connected a RadioShack wireless phone to the SPA-2102. Believe it or not it rings and acts just like a normal phone--which is no small miracle. But in addition to a "normal" phone that makes calls using the internet Asterisk also gives you all the bells and whistles you normally only get in the office: voicemail, email notification of voicemail, call forwarding, conference calling, etc etc. Cool.
As I mentioned earlier, Asterisk and IP telephony give you all kinds of other features besides voicemail and the other features I listed previously. I also have a few custom scripts set up so that I can actually dial in to my Asterisk box from another number and have it call me back in such a way that I can then place calls from it. In plain english, this means that I can call my VOIP telephone number from my cell phone on the road, punch in a few codes, and have the Asterisk server call me back and provide a dial tone...which allows me to make a call "from" my VOIP phone number. This is a sweet feature for business travelers tired of paying exorbitant long distance fees from hotel telephones.
Another sweet feature is the ability to create a "digital receptionist" and interactive voice menus that can route calls to specific people and extensions. It's also a great way to screen out annoying automated calls, marketers, surveys, etc.
Here's a diagram of what my home network looks like:

