Ruby is really good at writing DSLs, Javascript sucks at it.
I'll happily admin that this is user error, but I always have trouble editing Gruntfiles when I start to bring in other packages. Adding an additional task to a Gruntfile is way harder in than Rake, or make, or even Ant for that matter, mainly because you are dealing with hand editing a huge JSON blob.
Tweaking the file to add a different path in or whatever is fine, but there are many times where I wanted to to copy and paste something in to make it work, and I spent as much time fiddling with the format of the js file as I did solving my problem.
A lot of people love grunt, but I'm not one of them.
Thanks for your reply. I've been working with maven and make so far. I'm not used to do much stuff in Ruby, so that's why I don't consider Rake files for a big benefit of my working process.
Anyway I consider your points valid, although I also think you can remove a lot of the boilerplate ( Copy-Paste code ) by introducing some variables to your Grunt build.
I personally use Assemble [1] and I find it pretty decent for generating static content websites.
Good to know there's a good alternative in the ruby world.
There is code in there to pull the arp table and use that, but it's commented out because I never found a good way to determining how long things stay in the ARP cache. Since we don't know how long they stay in there, you will lose all of the "xxx left the network" notices, so we made that trade off.
The reason that I used redis here is because I wanted it to work even if you scheduled the thing in cron, or have it work when you restarted the process and not give any false messages. Also, putting things in redis makes it easier to integrate it with something else, e.g. a UI, without really having to tool anything.
But yes, at this point it doesn't really need to use redis and if you don't already have a redis-server running it's a bit of unnecessary work to get the proof of concept working.