New Augmented Reality site launched
Posted by Sam
I've been hard at work (in the off hours) on a side project with a few other folks. It's really starting to come together, but it's very early on yet. If you are interested in augmented reality then you should check out Shimmerbeam. Keep in mind it's a long ways from finished but it's already a fun way to inject yourself into augmented reality. And it's one of the more interesting things I've coded in a while. If you have any suggestions on how to make it better feel free to post them in the comments!
For the technical folks the entire site is built on Ruby on Rails, RMagick, Prawn and PostgreSQL and so far the whole thing is written in less than 1,100 lines of code! Once I get rid of the controller logic in Rails 3 it will be even less code. Check out the site... go... now!
Tags: augmentedreality rubyonrails
New Site Launched
Posted by Sam
I've had this idea rolling around in my head for a while that I thought would be fun. It celebrates the under appreciated White Boy Fro. You can hop on over and rate your favorite fros, comment and even upload your own fro. Hopefully people will find it fun.
Tags:
A10 AX2000 Load Balancer Review
Posted by Sam
We've been using a Kemp load balancer for a bit over a year now. At the time we purchased the Kemp we weren't pushing that much traffic and the Kemp was an OK replacement for the Cisco LocalDirector that it replaced. However, our needs grew more quickly than we expected and the Kemp just couldn't keep up. When it was only pushing L4 traffic it was fine, but once we started pushing L7 traffic it just couldn't keep up. The CPU would spike to 100% and the load balancer would stop passing traffic until it caught it's breath. Usually only a few seconds but that's a lifetime for a website. The Kemp had other things that I didn't really like once I dug deeper. For example there was no way to setup a second server to only get traffic when the primary went down. You could set the weighting really high but it was still hacky. The interface also had it's quirks. Sometimes you could set a label on a VIP and sometimes you couldn't. I didn't feel confident that another Kemp would serve us well with our increased requirements. So I started researching other load balancers.
I'd never heard of A10 until I read this article on selective source NATing. I prefer to use the load balancer as the gateway in what's often called routed mode. This works great for everything except being able to hit the VIP on the same subnet. Selective source NATing lets me use routed mode, keep the client IP addresses and still be able to hit the VIP locally. This is really useful when you have one site that needs to call another site or for monitoring. You can hit the VIP and keep the benefits of load balancing the servers.
Another thing I like about the A10 is that they don't have licensing fees. Once you own the box you own all of the features that the software has. F5 and most of the other big vendors charge you a licensing fee to "unlock" additional features. They also don't require a license key like the Kemp does.
So far the A10 has been extremely fast. It's a quad CPU box and I've never seen the dedicated data CPUs rise about 2-3%. The A10 has other features that you'd expect such as caching, compression and SSL offloading. I'm not too concerned with any of those features yet, but so far the A10 nails the basics. I expect to be able to use caching and compression without any CPU congestion.
There are a couple of nitpicks with the A10 such as the web interface could use some usability tweaks and a quick start guide would be nice. Also, looking through the aFlex rules it looks like you can't override which server traffic goes to if you are using server persistence. I understand the logic but it's very possible that you might want to offload static files to a very fast web server while serving dynamic content from an app server for example. If I'm reading the aFlex guide correctly this isn't possible.
A couple of features I'd like to see are the ability to limit traffic based on bandwidth. This can be done through the firewall but it would be nice if it was integrated into the load balancer. The other thing I'd like to see are combined bandwidth and connections graphs. The A10 shows one graph per VIP. It would be really nice to see one graph with all the VIPs so you could see all the traffic with one graph instead of switching among perhaps a dozen or more individual graphs. This can be accomplished with something that monitors the A10 via SNMP but it would be nice to have it in the web interface. And last on my wish list would be some sort of application firewall. This might be possible with aFlex rules but writing a decent set of rules from scratch would be a pretty big task. At least a basic set of rules would be helpful (assuming the aFlex rules would work for that).
All in all I'm pretty happy with the A10. It's solid and fast. A few more features and nothing in it's price range could touch the A10. If you have any specific questions feel free to leave them in the comments.
Tags: loadbalancer
Installing RMagick on Solaris
Posted by Sam
It seems that installing RMagick is a pain on any OS but recently installing on Solaris seemed a bit impossible. Previously we were using ImageMagick 5.2.9 and an older version of RMagick. We've recently switched from Blastwave to OpenCSW to get our Solaris package fix. With that came a new version of ImageMagick and new problems. Turns out ImageMagick from OpenCSW was using compiled using OpenMP but support for that isn't in the current version of GCC that OpenCSW has. Here are the steps I took to install RMagick. There might be a simpler way but this worked for me.
wget http://rubyforge.org/frs/download.php/51093/rmagick-2.9.1.gem
gem unpack rmagick-2.9.1.gem
Change line #139 rmagick-2.9.1/ext/RMagick/extconf.rb to: $CFLAGS = ENV["CFLAGS"].to_s + " -I/opt/csw/include/ImageMagick"
cd rmagick-2.9.1
gem build rmagick.gemspec
gem install rmagick-2.9.1.gem
Automating Windows Tasks with Capistrano
Posted by Sam
It seems that I've been getting more and more work but my group is still me and one other guy. And the crazy thing is we just keep getting our work done. It seems no matter how much work we get we just keep finding ways to get it done. A big part of this is because of Ruby on Rails and to a lesser extent Solaris.
I discovered Ruby on Rails about 4 years ago and I haven't looked back since. You might be wondering what Ruby on Rails has to do with automating windows tasks. Well that's a good question. Rails is about getting things done and not repeating yourself. There are two types of programmers and system admins. Those that automate and those that don't. If you find yourself doing the same thing more than twice than you should be finding a way to automate it. The Rails community has been driving this since the very beginning and because of this dogged determination to automate and streamline programming and processes several tools have been created to handle this. One of those tools is Capistrano. Capistrano is a great way to run remote tasks on one or a hundred servers. It's relatively easy to use and once you're written your scripts you will save a mountain of time.
Capistrano wasn't written with deploying to Windows server in mind and that's fine. It's open source. You can either create your own tool and make it work for your environment. Fortunately, making it work in Windows is actually quite easy. Basically you need a SSH server and a Unix shell installed on your Windows server. Both tasks can be handled easily by installing copSSH. CopSSH installs OpenSSH and BASH along with several other gnu tools. This is enough for you to start writing Capistrano tasks. In a future post I'll show how to automate some common (for me) windows tasks like creating sites in IIS and creating domain names.
Tags: windows capistrano