Category Archives: Home Automation

Home Automation Mac OS X Mac OS X Server Mac Security Mass Deployment Xsan

Lights Out Managing Mac Mini Servers with Vera

There is no Lights Out Management for a Mac mini Server (btw, am I the only one that noticed that these are now called Mac mini with Lion Server, where mini isn’t capitalized). While the Mac mini Server doesn’t have the Lights Out Management (LOM)/IPMI chips in it, there are a few things that we can control anyway. Convention would say that we’d get a NetBotz card for that spiffy APC we’ve got, which can do minor automation and even a little environmental monitoring. And there are a few other systems out there that can do similar tasks.

But I’m a home automation nerd these days. So I decided to look into whether my Vera can manage my mini Server botnet and what I might be getting or sacrificing. First, let’s define what we did with LOM. The first and most important is, when the system crashed, we rebooted the server. The second aspect was to maybe wake the thing up, with the 3rd to monitor the components of the system. Let’s look at the first, most important thing, rebooting.

I’m going to start with a Vera. The setup process for Vera is similar to that of a LinkSys, where you give the device an IP and then go a step further by signing up for the MiOS portal, used to remotely control the Vera through a secure tunnel. Then I’m going to add an appliance module to the system. Notably, I want a ground, so I’m going to add the Wayne-Dalton HA-04WD HomeSettings Outdoor Appliance Module. The device can be added to Vera pretty easily. To do so, open Vera and click on DEVICES and then on Add Devices in the subnav bar. From here, click on Add in the first row.

Then scroll down a little and click on Option 1.

The system will then scan for a device. At this point, you’ll see a screen telling you to manage the device. At this point, I just press the button on the device to pair it to the Z-wave network.

Once the device is seen by the Vera, we can go ahead and click on the Next button (by default they’re seen as light switches).

At the next screen, you’ll see a screen with a field you can type in. Here, provide a name for the device and give it a room that the device is in (if you’re using rooms). Click on Close and then Save (big red button after you click Close).

Click on the Continue button to commit the save and you should see your new device listed in All Devices.

At this point, click on the On and Off switches to turn systems on and off. From System Preferences, go to Energy Saver and then check the box for Restart automatically

We’ve now achieved the first goal, having a way to physically turn on and off a Mac mini with Lion Server. Better than LOM, we can do so using a web interface or an iOS app. While the lack of so many moving parts has reduced the need for environmental monitoring, we want to monitor the environment outside the box, the environment inside the box and whether the box has developed any human emotions. To monitor the environment outside the box, I’m using one of the many Z-wave thermostats available. I plan on replacing it with a Temperature and Humidity Sensor, so I can put a sensor right by the machine instead of just monitoring the temperature of the room. I also like the idea of seeing moisture levels, but that’s aside from the point.

Monitoring the inside of the system is really easy, since Apple has built snmp into Mac OS X and a quick snmpwalk will show me most everything I need to know about a box. For that, let’s just remove the default snmpd.conf file:

rm /etc/snmp/snmpd.conf

And then run snmpconf -i to create a new snmpd.conf file. This is interactive, so use option 1 and then choose the settings that work best for whatever monitoring software you’re using. With the loss of Lithium, I am a big fan of Nagios and Dartware’s Intermapper, but there are a number of other solutions that I would look at as well. Either way, this can be a very cumbersome aspect if you let it. Once you’ve configured snmpd.conf, restart it (assuming it’s running):

launchctl unload /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist
launchctl load -w /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist

Next, to wake up the server, we can use Wake on LAN (note that wake for network access is in the Energy Saver System Preference pane). We can also monitor the server’s IP address (ping/ICMP) and even activate a camera in the event that a motion sensor is tripped. I’ll look at these in a future automation article, where we’ll reboot the server automatically in the event that it goes offline and maybe even control an IR blaster to turn on the TV when status bars are running on the server (we might also hook up a coffee pot so we can stay awake while waiting for Lion to download during some upgrades). But for now, suffice it to say that at this point, we have some of what we had with LOM on an Xserve. It’s not everything and it’s not really pretty. But it works and would cost about the same as a module for that APC you’ve got sitting around, while also laying the groundwork for much more home and small office/small data center automation – and at about $25 per additional device, it’s priced pretty well all things considered.

Finally, if that snmp-based monitoring system happens to need to restart the devices, there’s also an API for Vera, documented at http://wiki.micasaverde.com/index.php/Luup_Requests. Being able to script an snmp-generated event that kicks off some kind of triggered response with a grid of devices is pretty cool, and while I hope to cover it eventually, I’m not sure exactly when I’ll end up with time, so might be awhile…

Home Automation

Monster Delivers Z-Wave Win

Who knew, Monster is getting in on the whole Z-wave thing. I can’t even find “Z-wave”  on their official website. But their Z-wave dimmers are available at a few different websites, including Smarthome: http://www.smarthome.com/8500SD/Monster-Wall-Dimmer-Switch-Z-Wave-Lighting-Control/p.aspx. I ordered one of these and my system automatically saw it (as a Leviton btw) and I was controlling yet another light in my basement within about 5 minutes. Total Z-wave win.

While I don’t see the dimmers, what I do see on Monster’s website is a new Z-wave remote in their Revolution 200: http://www.monsterproducts.com/productdisplay.asp?pin=3369&id=9139.

 It’s a little fancy for me (I prefer things that are beige and covered in DIP switches), but it’s cool to see another household name with lots of sales people pushing their products into Target, Best Buy (who use Control4 systems in their stores) and Home Depot, as well as other large chains.

Home Automation

Home Automation :: Mi Casa Verde’s Vera Light

Mi Casa Verde has had the Vera appliance for a number of years. Recently, they released the Vera 3, which controls practically any Z-wave device ever made (in fact many are guaranteed to work). The Vera 3 is also wireless (802.11), so you can place it practically anywhere in the home.

Now there’s Vera Light, which retails for $100 less, has a much smaller footprint and no 802.11 networking but otherwise it appears to have pretty much the same feature set. I’m sure it can’t control as many things concurrently, given the smaller footprint, but it looks to me like a great deal for those looking to get started with Z-Wave and home automation in general!

Home Automation Mac OS X

Running SSH on AppleTV

Sometimes it can be really useful to have an SSH connection into your AppleTV. If I need to explain why then you probably won’t want to do it. Unless of course, you’re just after getting something like Boxee running, which we’ll look at as well. Before we get into doing anything to your AppleTV, when we’re done I do not know how Apple will feel about your warranty moving forward, so do this stuff at your own risk (but that’s pretty much true for many articles on this site)…

So first up, let’s install SSH. To get started, plug in a jump drive you don’t mind reformatting. Then run the df command and look at which filesystem that the jump drive was mounted as. In most cases this should be /dev/disk1s1 or /dev/disk2s1 or something like that. Note this location and while you’re at it, double-check that the data is trivial to you and that you really don’t mind reformatting the jump drive.

Next, let’s download atvusb-creator, a little utility that will generate a new patchstick based on that jump drive (a patchstick being the term applied to usb sticks that will hax0r an AppleTV). Once downloaded, run the tool. Select ATV-Patchstick in the Choose an Installation dialog, and then select the version of the AppleTV OS you have (if you’re fully software updated then as of the date of this writing that would be 3.x). Next, choose ssh tools from the 3rd field in the Installation Options section, making sure that the box is checked. If you are just trying to get XBMC or Boxee running then you can check the boxes for those as well at this point.

ATV USB Creator Screenshot

ATV USB Creator

Next, set the USB Target Device field to be the filesystem you selected earlier and then click the Create Using button and wait for the process to finish. Once the patchstick has been created, plug it into your AppleTV and reboot the unit. You’ll see a bunch of code, similar to starting Mac OS X into verbose mode. When the screen tells you that you’re done, unplug the patchstick and reboot the device. Upon reboot it will be running SSH with a username and password of frontrow. If you’re not using a static IP address then if you open iTunes and connect to the device you’ll have an entry in your arp table for it. You can run arp and find the IP fairly easily. Once found, use the SSH command to connect to the device. For example, if mine is on an IP address of 10.0.0.100 then I would use the following command to connect to it:

ssh frontrow@10.0.0.100

Now you have an AppleTV running SSH. Even though this article isn’t meant to be about Boxee or XBMC, you can then install those by going to the new Launcher menu and then to Downloads and downloading those applications (otherwise if you try to access them you’ll get an error that the .app bundle can’t be found). Once those are in place it should open pretty easily.

Now that you’re running SSH, let’s look at one of the uses. I want a web browser on the AppleTV (even though typing a URL in it is pretty painful unless you install a keyboard too). For this instance, I’m going to use CouchServer, ’cause I like the way the keyboard works and because there’s a silverlight that kinda’ sorta’ works with it. First, download the files for CouchSurfer here. Then copy the files that were downloaded up to the device (assuming the filename is CouchSurfer-Lite.tar) from your client computer:

scp ~/Desktop/CouchSurfer-Lite.tar frontrow@10.0.0.100:~

Next, SSH into the AppleTV and extract the tar file:

tar -xvpf CouchSurfer-Lite.tar

Then move the extracted data into the PlugIns directory (which will display the appliance similar to how Launcher would be displayed at this point:

sudo mv CouchSurfer.frappliance /System/Library/CoreServices/Finder.app/Contents/PlugIns/

(your password will be frontrow in case you have hard core add and have forgotten it already)

We’re gonna’ give ownership to wheel:

sudo chown -R root:wheel /System/Library/CoreServices/Finder.app/Contents/PlugIns/CouchSurfer.frappliance

Then reboot the AppleTV. Upon reboot, you will then have a shiny new web browser making your AppleTV even more like a full fledged Mac with Front Row. Now you’re in pretty good shape. You’ve pretty much put more stuff on your AppleTV than you can possibly use, but you still probably just want NetFlix to work on it. For that, you’ll need to get Silverlight working with CouchSurfer and just browse to the movies in the web browser at Netflix.com as the Boxee implementation for AppleTV doesn’t yet work with NetFlix and there aren’t any native Plug-Ins that work with it yet either (that I’m aware of). Also, if you’re going to use any of the 3rd party media browsers, keep in mind that they’re sitting on top of the OS layer and that their resource utilization seems pretty poor compared to the native media browser on the device (given the abstraction there, it seems logical it would be so no complaints).

BTW, another fun little app (to help make your AppleTV more like your iPad):

http://code.google.com/p/weatherfront

And the most intriguing one that I haven’t actually gotten to work yet (haven’t had time to get past the second or third step – busy) is:
http://www.appletvhacks.net/2007/04/02/install-asterisk-on-apple-tv/#more-41

What I’d like to see – the ability to run my AppleTV as a Zwave controller… Or iPad… Or Newton… :)

Home Automation

Z-Wave Remotes

I talk about home automation occasionally, but I almost exclusively talk about leveraging home automation on computers. I guess it’s worth nothing that Z-Wave isn’t just for computers (nor ZigBee or X10). There are a number of remote controls that can be leveraged to manage the systems in your house. For example:

Overall, these are just a few of the options that you can go with. As I believe I’ve mentioned in the past, when possible (it isn’t always) it is preferable to go with the same brand remote as you bought a Z-Wave device, be it a garage door opener, a front door lock, an appliance module, dimmers or just a standard receptacle…

Home Automation

Zigbee & Z-Wave in 2010

I have mentioned Z-wave a few times on this site, especially since getting the Wayne Dalton USB Interface. But do you remember Zigbee (aka IEEE 802.15.4)? Certainly the emergence of the Schlage Link Wireless Keypads and the addition of not only Schlage but also a number of other Z-Wave products into Radio Shack’s retail chain, Z-Wave has seemed to be doing really well these days. But Zigbee is definitely still kicking around. Unlike Z-Wave, they seem to have people pushing for larger-scale ratification and implementation. For example, I noticed in Gothenborg, Sweden, that they were implementing Zigbee into power meters in order to comply with the once-per-month meter readings that Sweden is pushing to go national with. And then there’s iControl, who seems to be able to bridge Zigbee home security and temperature control when they’re not meeting with the FCC. iControl has more money and business than engineering, and are quite busy, so it will be interesting to see what comes of them.

Both Z-Wave and Zigbee work on the Mac. The Telegesis USB stick can provide Zigbee connectivity to Mac OS X, thus allowing your Mac to communicate with IEEE 802.15.4. There are also books for ZigBee, like Fred Eady’s Hands-On, which I found a hard read and Farahani’s Zigbee Wireless Networks and Transceivers, which I found much more accessible. But Zigbee books are easier to find than the transceivers themselves, and it’s going to be a fairly command-line heavy path in order to communicate to Zigbee over the Mac. Digi has a nice tutorial on sending commands to the XBee, but you’re still gonna’ need to wrap it into a GUI yourself. Therefore, while Z-wave is heavily in the throws of possibly premature consumerization it seems as though Zigbee is out there beating down the doors of governments, the FCC and the global business world, including the likes of GE.

Z-Wave is proprietary, with Zensys, the manufacturer of all the radios basically leading the charge (and accepting VC if ya’ got any). Zigbee on the other hand is open source. But there are no battle lines between the protocols. Possibly in part due to the lack of a cohesive strategy for overall home automation and possibly just ’cause it was a cool thing to do at CES, BuLogics, announced a Z-Wave to ZigBee bridge on Friday. Check out the press release here! Rest assured that bridging my schwag in the house is a high priority of mine and so expect to see some writing on this here in the future.

And if you haven’t started to tinker or research home automation, the promises of the last decade were possible, but you needed to either spend an arm and a leg or spend countless hours of programming to figure out how to make any of it work. I like spending that time but it never got user friendly enough to actually implement in the home due to the fact that I’m not the only person in the home…

Business Home Automation Mac OS X

Houseport Z-Wave for Mac Finally Available!!

I’m a geek, I can’t help it. The Houseport USB Z-Wave Adapter can control 230 devices, set the level of lights that have dimmers, time lighting controls and garage door openers and maintain the actual Z-Wave mesh network. So how could I not be interested?!?! The Wayne Dalton Houseport software and Z-Wave adapter were announced some time ago. Betas went out and got our appetites wet. I have been sitting by my phone waiting for them to call and tell me I can buy it for months! Now, you can finally buy the Houseport software and adapter at http://www.smarthomeusa.com/ShopByManufacturer/Wayne-Dalton/Item/WDUSB-10MAC/ and you can download the manual at http://www.smarthomeusa.com/Products/WDUSB-10MAC/manuals/USB-MAC.pdf. The PC version is the Wayne-Dalton WDUSB-10R HomeSettings Controls USB Adapter for PC.

Houseport in Action

Houseport in Action

For those unfamiliar with Z-Wave, it’s home automation gear and corresponding software. You can control the HVAC in your home, Wayne-Dalton WDTC-20 HomeSettings Controls Thermostat, the Intermatic HA04C Home Settings Wireless Heavy-Duty Outdoor Lighting Module for outdoor lighting (ie – those darn Christmas lights you forget to unplug in the mornings), GE 45605 Z-Wave Technology Duplex Receptacle the inwall power outlets, Screw in Module for screwing into those sockets you can’t otherwise Z-Wave enable and of course, there’s the HomeSettings In-Wall Switch/Dimmer (300W) and other dimmers for controlling indoor lighting (make sure you know how your place is wired, this has been a sore point with me with 3-way vs. 4-way, etc).

You can also control the Garage Door with Wayne-Dalton 3018Z Classic Drive Opener with Z-Wave and even small appliances Wayne-Dalton 3018Z Classic Drive Opener with Z-Wave and even lamps with Wayne-Dalton HA-03WD HomeSettings Lamp Module. The latest addition to the Z-Wave offerings is the Schlage LiNK line, which includes Schlage LiNK Wireless Keypad Deadbolt Starter Kit System that can be used to Z-wave enable the locks on the doors in your home.

Control doesn’t have to just be automated. You can also have control over things respond to events. For example, using the Hawking Technologies Z-Wave Sensors Homeremote Wireless Motion Detector you can have preset lighting or turn on the stereo when someone walks into a room. You can use Z-Wave as a bit of a personal monitoring system using cameras such as Hawking HomeRemote Pro HRPC2 Wireless Video Camera with Night Vision and there are even products that allow for voice activation of systems. Not that control needs to all flow through the computer. You can also get a GE 45608 Home Theater Remote with Z-Wave Lighting Control, which allows you to control a number of Z-Wave enabled devices and the home stereo.

Finally, my favorite part of Z-Wave has been that it’s a wireless mesh network. You install devices and they mesh with the existing network of devices in the home. My least favorite part of Z-Wave is that it’s a zero config wireless mesh network. If devices are not compatible with the controller it can throw the whole network into a tailspin. What I’ve done in those cases is sell the gear I bought on Craigslist and buy something else…  It’s annoying, but there’s not a great compatibility system out there (theoretically it should all be compatible but hey, it’s technology, that’s a friggin’ pipe dream as most of you likely already know). Most Z-Wave controllers that run on computers have been a little difficult to configure; however, Houseport for the Mac couldn’t be easier. Enjoy!!!

For more on Z-Wave overall, check out their wikipedia page.

Home Automation Mac OS X

Wake-on-Magic-Packet

Wake-on-Magic-Packet, WOMP is pretty much Wake-on-LAN. Essentially, WOMP allows a network interface to be active even when the computer is asleep. Then, when it gets a specially formatted packet, which we call the magic packet (’cause turning something on when it’s sleeping without hitting a button is pretty cool, right?!?!) can be sent to the IP of the system to fire it up. The magic packet is a packet where the packet payload consists of 6 bytes worth of ones in a row followed by the computers MAC address repeated 16 times.

You can enable WOMP for OS X using the Options tab of the Energy System Preference pane.

ENABLE THE WOMPUS

Enable the WOMPUS

Simply check the box for “Wake for Ethernet network administrator access” and you’ve enabled Wake-on-LAN. Now, if you prefer to do so from the command line, you can enable WOMP using the pmset utility as follows (which enables womp for all Ethernet interfaces, btw):

pmset -a womp 1

Then you can use a program such as this one, aptly named WakeonLAN to fire your systems up when they’re asleep.  One thing I really like about using a technology such as womp is that it has the potential to conserve a lot of power.  For example, if you have 5,000 computers on your corporate (or educational) campus) and you want to back all of them up nightly (OK, I know it’s silly but just work with me here).  Well, you wouldn’t want to let them all run for a few hours without going to sleep, just so you can back them up.  Using magic packets could conserve a lot of power give the uses.  Used in conjunction with other automations it could also provide new strategies that you might not have otherwise thought of. 

One critique is that womp is not exactly very secure.  There’s no password required  by default and it operates at Layer 2 (Data Link) so it’s not really secure.  You can implement a password if you have a NIC that supports SecureOn.  I haven’t been able to get that to work with OS X yet, but I have used it with other OSen in the past.  Also, there’s a TLS implementation in the Intel vPro’s.  Haven’t gotten my grubby hands on one of those to dink around with yet though, so more on that later (maybe).

Home Automation Mac OS X

Z-Wave and the Mac

Z-wave is a meshed fabric technology that enables devices with a Zensys chip embedded in them to be controlled from a Z-wave gateway.  In other words, Z-wave is fast becoming the standard in automation.  There are dimmers, light switches, garage door openers, power outlet fixtures, motion sensors, microphones (so you can say what you want to happen rather than using a remote or a computer), remote controls and other items in for the home and office that you can install and manage using Z-wave gateways.  I’ve always been a bit bummed that I have to use a Linux box to manage Z-wave devices and honestly it’s been a bit of a holdup to me being able to do all the things I’ve wanted to do in order to automate my own home, especially the power outlets by my computers (which mostly don’t have Lights Out Management interfaces).

Enter Wayne Dalton into the mix, with Houseport.  These guys have been making garage doors for a long time and have most recently gotten into reselling Z-wave enabled devices. Now they’re going a step further and starting to sell software for the Mac, which they’re calling Houseport, to manage the home. You can use the Houseport to build a layout of your home, define where the Z-wave enabled devices are and then control what aspects of the devices are to be controlled, when and how. It’s amazing that it’s taken this long for the Z-wave world to embrace the Mac, but lucky for us they have.

There are also a number of home automation vendors offering iPhone enabled applications, but this is the first that you can install on your Mac to control your home. While the software doesn’t seem to be shipping (it was just announced at CES) I’m looking forward to getting a copy of it to test and hopefully end the confusion at my own home in short order.

Home Automation Mac OS X WordPress

Easily Automating and Simulating Web Traffic

There are a variety of applications out there that will simulate web traffic. But there’s nothing like the idea of true traffic. Load a page, click on a link, wait for the next page to load, click on another link, etc. Traditional load simulators simply are not real world enough in most cases. There are a variety of more real world simulators but they are typically cost prohibitive for the use I recently encountered a need for. So I started looking at using Automator.

In its simplest form, you can just fire up Automator, click on the Record button and then perform an action. However, this is going to perform the same action over and over and over. Let’s say you have a MySQL database and you want to loop through calling a lot of records from the web site. Well, the Record button in Automator is actually going to look for the same pattern. Therefore, you could manually go through all the records while recording. But this is going to be a little time intensive and any misclicks will get replicated into your Automator workflow. Especially if, for each record, you have to click on a button to open it up, which is pretty typical.

Enter Ottomate. Ottomate is a collection of six Automator actions that will perform GUI-level actions without using the record button. Therefore, you can build a button on a page and tell Ottomate to click it. Then save that and you can call it up from a shell script. So let’s say we have an Automator action called clickbutton that we built using Ottomate. Well, we can call it using the following command:
automator clickscript.workflow

This is where a quick and easy while loop can come into play. Let’s say that one record for a standard WordPress deployment loads in a browser as:

http://krypted.com/?p=3088

And another loads in the browser as:

http://krypted.com/?p=3087

The page variable (p=) is increasing one per new article (boy that sure is a lot of articles btw). This makes it pretty simple. We’re going to create a script called test.sh. In the script we’re going to use variable x, which will be that page variable that we’re going to loop through. Because the shell isn’t going to be a fan of the “?” character we’re then going to go ahead and backspace it out by putting a \ in front of it. So we can actually open the next link in descending order in Safari using the following command from the shell:
open http://krypted.com/\?p=3086

At this point we could put the follwoing into the shell script and have it open the site and click on the desired link:
open http://krypted.com/\?p=3086
automator clickscript.workflow

We could paste that in over and over and over, manually changing the page (p=). Or we could just loop it, converting the page to a variable. So now we’re going to variabalize the page by converting the number to a variable called x:
open http://krypted.com/\?p=$x

This would result in a little shell script like so:
x=1
open http://krypted.com/\?p=$x
automator clickscript.workflow

Next, you put a quick while loop around it. Here, we will increase the x variable by one per iteration until it reaches 3086:

x=1
while [ $x -lt 3086 ]
do
open http://krypted.com/\?p=$x
automator clickscript.workflow
x=`expr $x + 1`
done

Now, a couple of things about this kind of thing. First, the site needs to complete loading before Automator can click on the link. So in your Automator workflow you can assign time out variables. But you can also use the sleep command in your shell script. Either way, when you’re simulating real world testing, you can look through your web logs to determine the average amount of time someone spends on one site before moving over to the next page for a good simulation number. Additionally, Safari is simply going to keep opening new pages. While you might be able to open a few hundred you’re likely going to need to occasionally close the window, or close Safari as an application. If you are just closing the Safari window, you can place a Command-W into your workflow. If you want to close Safari entirely you would use the following command in your script (yes, it’s case sensitive):
killall Safari

Also, don’t be afraid of getting a little more complicated.  You can use nested loops and random number generators to augment the sleep times and order that sites load.  This way you can be a little more human-like and a little less likely to have cached data or identical patterns changing your findings.  You will also want to run the scripts from a number of hosts in order to determine the load placed by concurrent computers. In a way this is how you would create your own little Mac OS X based botnet (perhaps in a future article I’ll explain how to deploy the botnet payload). This script runs in the foreground. Anything you do with Automator is going to. Therefore, all of the hosts running it will display the pages on the screen and therefore pretty much not be useable for other tasks while the script is running. According to the type of site you’re looking at you could ditch using Automator and use Lynx, which is easily installed using MacPorts (or from source) if you wanted it to run in the background, although clicking buttons is a little more complicated to script if the browser cannot interpret certain types of said buttons… ;)

This article brings up one of the reasons that Captcha and other anti-spam techniques are such good ideas once you go live with a site: it’s just too easy to write a bot these days (and higher unemployment rates mean more people with spare time to do so). The text in this article took way longer to write than the script. I’m not really that great at scripting, but you could easily do something like perform a Google search of all MediaWiki sites, go to a specified link on the site and edit that page with garbage (oddly enough, really common). Same rings true with advertisements for all sorts of scams in your forums and of course click fraud. Either way, this walkthrough is meant for testing your own site for load and maybe showing how easy it is to automate web tasks, not to propagate FUD or show how to engage in click fraud or create a malicious botnet. Have fun with it.