"We recently doubled the number of our IT security engineers and analysts. We also doubled our investment in top-end security tools. Obviously, we need to do more and better, and we will."


Google - If you search the word “recursion” in Google, it’ll suggest “recursion”. If you click on the suggestion, it’ll suggest “recursion” again… creating a recursive search.

/via Channel 78 

As you may or may not know, I have what some would call an obsession. Making bots on Twitter. I like to think that I created one of the first retweet bots (@ShutupMeg in Sept 2008) and made a few dozen more over the years. Then there was @CapsCop, @Fandumb, plus a few experiments. Retweet bots have been done to death. Before Twitter deprecated version 1 of their API you could make what I call a “dumb” retweet bot using Yahoo pipes or any RSS to tweet service. A few people have tried to imitate @CapsCop. Either by correcting grammar, manually complaining about capslock tweets, or going so far as to copy the CapsCop timeline to “catch” people right after I have.

Today, I would like to introduce you to a new type of bot. One that will be difficult for some people to copy and, to me at least, is a breakthrough in Twitter bots: @AllCatsBro

@AllCatsBro takes tweets from @AllCapsBro and makes a meme image from random cat pictures off of Flickr. @AllCapsBro is a regular guy that tweets all day in hopes that his follower count will dwindle down to nothing. Usually I would say that taking someone else’s content and tweeting it as my own is wrong. Lucky for me, @AllCapsBro finds this as hilarious as I do.

Here are a few sample images:

Making this all work was easier than you would think. I recently completed an overhaul of the code that runs CapsCop and most of my other bots. This framework allows me to make almost any new style of bot that I can think of using a simple plug-in architecture. I had to merge in a fork to abraham/twitteroauth that allowed image uploading. Then there was a bug with piotrbelina/memegenerator. The bottom text was placed too low on an image causing text to be cut off. Once those issues were resolved, the rest was a piece of cake.

Now that the hard work of creating and posting images is done, I am free to come up with new bots that fall in to the “instant meme” class. This is going to get interesting.

Recently, there has been an up-swell in Justin Bieber fans that have joined Twitter. Personally, as an adult, I don’t want 10-16 year old kids following me on Twitter.

Feel the same way?

BieberBlock will scan your followers and find any fans of Justin Bieber. You can force any of those (or other) users to stop following you right away. Problem solved.

It really bothers me when I see news outlets post crap about Apple without even thinking. Bloomberg, telegraph, zdnet, businessinsider, engadget, and venturebeat are all claiming that using Siri on your iPhone 4s can double your data usage.

They’re all basing this off of this report from Arieso that claims

iPhone 4S users are the “hungriest” data consumers, demanding twice as much data as iPhone 4 users and three times as much as iPhone 3G users

Now, I don’t doubt they’re right. But the report does not say anything about Siri or even indicate that they know what kind of data is being transmitted. They’re just assuming that Siri is the cause of this because it’s a feature not offered on any other iOS device.

Personally I blame the data usage on iCloud and iTunes Match. Siri transmits small bits of data for each request. According to Ars Technica, Siri isn’t really that bad with data.

If you use Siri 2-3 times per day at an average of 63KB per instance, you might expect to use 126KB to 189KB per day, or 3.7 to 5.5MB per month. For 4-6 times a day, that might come out to 252KB to 378KB per day, or 7.4 to 11MB per month. If you use it 10-15 times per day, you might end up using 630KB to 945KB per day, or 18.5 to 27.7MB per month.

The above stats don’t t even factor in if you use Siri while on a WiFi network. 27.7MB a month on an iPhone isn’t that much data at all. I can’t speak for other iPhone users but my monthly usage is anywhere between 1-2GB a month.

Compare this to the 2-5MB that you can transfer every three minutes when using iTunes Match. And don’t forget about the battery life issue most 4S devices had when they were first released. That problem was mainly due to iCloud trying to sync all the time. Who knows how many versions of iOS 5 haven’t been upgraded.

This kind of reporting is what really bothers me, especially with all of this TV set crap flying around. Editors will post anything that mentions a new product or potential issue from Apple. Don’t be lead on by these news outlets doing whatever they can to gain more eyeballs.

For most people that have used Dropbox it’s been a great time saver. Personally when going from machine to machine nothing is easier and “just works” like Dropbox. I want to share a few ways that I use Dropbox to help me out

1. Symlink Folders

The title may put you off but I’ll explain what this does and how this works. I have a folder on my work machine called ‘Projects.’ Now sometimes I remember to move some files that I really need to work on later at home in my Dropbox, edit them, then move them back in to place the next day. If I forget I’m out of luck and I don’t want to move that folder just in to Dropbox because I’ll end up always looking for it in the old place.

There’s an easy fix for this when you’re on a Mac or Linux box: Symlinks. A symlink is like an alias that points to a file or folder that’s in another location. Open a Terminal on your machine and do this *


It’s that simple! Now that Projects folder will always sync with your Dropbox account and it will stay in it’s original location. (* Make a backup of that folder first just in case)

2. Shared Folders

I like to keep my work and personal work as separate as I can. While adding your own Dropbox account to your work machine seems like a good idea I just wasn’t thrilled with it. If I end up unemployed all of my personal files will be on my work machine with no way to remove them. My solution to this is to have two Dropbox accounts. One is my personal account and the second is only for work. Now on my work account I have a shared folder called Work. I invited my personal account to use it and now what’s personal stays personal and what’s work can be accessed anywhere. This is great for when I take my personal laptop to work and need to share files between the two machines without switching accounts.

3. The same wallpaper everywhere

For a while now I’ve had random wallpaper setup on my macs. It’s simple, go to System Preferences, Desktop & Screensaver, select a folder with a bunch of images inside, and set it to change the picture every few minutes. This way when I come across an image I like I can just add it to the folder. You get the added bonus of not looking at the same boring image you once liked six months ago. With Dropbox you can keep the same wallpaper rotating on any machine that you own. Just make a Wallpaper folder inside of Dropbox and point your mac to it.

And that’s it. If you’re not using Dropbox already just use this link http://db.tt/Rvk9DQK and we’ll both get some extra storage space.

My cat and his favorite toy: Red string

It’s almost irritating how many news outlets have this dreamed up image of a Apple making an HDTV. Yes, Steve Jobs did say “I Finally Cracked It” when it comes to television but there’s nothing to “crack” when it comes to getting someone to buy a TV. Most of us have an HDTV and the market is saturated enough to not want to be a newcomer. One thing is for sure with an Apple branded TV set, it’s going to be expensive. I bought a 42 inch tv for $900 years ago and plan on owning it until it dies. After that I want to get a 3d tv. It’s going to be hard to convince people to throw out their HDTV. Especially when someone has invested so much in one already. It’s also not really “green” of Apple. What’s going to happen to all of these now outdated TV sets that people are replacing? Sure, you could recycle them but you’re still causing more harm than good here.

This is what I think so far

  • Apple is working on something TV related. It’s going to be a set-top box for sure
  • The old Apple TV remote is going away
  • It may involve almost every major cable/tv network (think when apple was courting record companies back in the day)
  • You’ll need a CableCard for it to work
  • If Apple does it right, they’re going to kill TiVo. Absolutely crush them

If you really want to get a jump on what Apple is going for I really recommend you check out patentlyapple.com. They have a whole section on Apple’s TV patents here: http://www.patentlyapple.com/patently-apple/tech-tv/

This should explain some of the commands that you can use with CapsCop. I really feel that this bot is unique that it lets anyone interact and play with the system at any time.

#snitch or #narc
These commands aren’t actually a secret. Just mention @CapsCop, either #snitch or #narc, and another username with the @ and we’ll do our best to bust them. If that person gets busted you get a snitch point. Snitch points get you listed on the website, iPhone app, and keep you out of “Jail”

This is a brand new command that launched. Mention @CapsCop and #stats in a tweet to receive details on how often you’ve been busted, if you’re in jail, your snitch points, and how long ago you were caught.banana
I had this posted in my bio but then I had people leaving voicemails just saying banana. Banana is the safeword. I would choose it’s use wisely. When you mention @CapsCop and say banana you will never get caught for using caps by CapsCop ever again. THE HORROR! This can’t be undone (because I’m lazy) and you’ll get a tweet back confirming this.

"caps cop"
Last, but not least, the “speak of the devil” command. Because of how CapsCop works and a few limitations of the Twitter API, we can’t catch everyone. I started to notice that a ton of people would taunt CapsCop and hope for a reply back. Well this is my answer to that. When someone mentions my name (not an @reply) they’re basically snitching on themselves. I go through their last 20 tweets and bust them if needed.

For now that concludes what else can be done with the CapsCop system. Enjoy it! (and don’t say banana)

I’ve been using Spotify for around 6-8 hours a day while I’m at work. Some things are great. Some are not. Keep reading:


  1. Lots of music
  2. Lets me listen to my iTunes library at home from work (see #5 below though)
  3. Helps me find music I might also like


  1. Not meant to “set it and forget it” unless you just like popular music or can search for some terms and hit random.
  2. Only one of my Facebook Friends uses it… and we’re not at a “music sharing” friendship really.
  3. Buggy: I’ve had Stars go missing. So have a ton of people on Get Satisfaction
  4. Forgetful: Why can’t it keep a history of what I listened to after I close and reopen the app?
  5. iTunes tracks lasted a day. Never to return.
  6. Buggy #2: Some ads won’t play. You can’t skip the dead air and since the commertial never finishes, you either have to wait 5+ minutes for it to time out or reopen the app.
  7. Buggy #3: After prolonged usage (and maybe correlating to bug #2) the next track won’t play unless you hit play.

That’s all I have time for at the moment. I think I’ll be switching back to Google Music

Just outlining some of my thoughts about Lion so far:

  • The mds process is still a memory hog at times. I caught it using 700Mb+ of virtual memory
  • Launchpad - Meh
  • Mission Control - Nice concept, well executed but it’s going to take people a long time to learn how to use it to their advantage
  • Mission Control #2 - It’s making me think my machine is faster then it really is. Causing me to open more apps then I normally would. (Note to self, upgrade ram)
  • Time Machine - Not sure what’s up with it complaining if I don’t have my back up disk attached for an hour. It’s just an hour!
  • Mouse gestures - HUGE learning curve. I’ll deal but it’s putting a lot of people off
  • Everything is grey and dull! Not a fan.
  • Full screen apps are nice until you attach a second monitor. There’s nothing that can be done with the second screen.
  • The remote boot of MacBook Air and Mini sounds awesome. I’m hoping older Macs can get this with a firmware update.
  • Pro Tip: Do yourself a favor and get Lion on a USB key before you upgrade. Instructions here http://holgr.com/blog/2011/02/creating-a-bootable-os-x-10-7-lion-disc/

There are many small improvements but the real game changers are the App Store upgrade, Mission Control and Gestures. This release is a prime example of how Apple pushes boundaries and is generally ahead of it’s time. This time Apple has the pull to show us what the future is and make it stick. The iPad offered a sneak peak of what would be coming in to OSX. Like it or not this gesture filled multi screen way of computing is the future. Give it time and be willing to retrain yourself on scrolling and gestures. I’m sure we will all love it a few months from now.

It’s been 4 months since @twitter told devs to stop making clients so they can provide “A Consistent User Experience”  (seen here http://groups.google.com/group/twitter-development-talk/browse_thread/thread/…

While the main reason for this policy change and warning was because of apps violating user’s privacy, it set a bar and goal for Twitter to reach. Mainly to provide a consistent user experience across all of their apps. So far, they’ve failed that mission.

I use a few Twitter apps. The iPhone, Mac, and iPad versions. The iPhone and Mac Twitter clients were purchased from atebits and as far as I know their iPad version was developed in house. The Mac version of the client was updated to version 2.0 after the purchase and included a range of new features and upgrades to it’s inner-workins and display.

Alright, enough history, on with the issue at hand. Feature fragmentation. It’s fairly rampant between these three versions.

Adding/Removing users from lists - Only supported on iPhone

Viewing lists on followers/following - Not available on the Mac

Removing a DM - Not available on the iPad

I may be missing a feature or two but these are the ones I’ve noticed so far. It’s frustrating for users of their apps to have to go, “oh, I need to manage a list, better break out my phone and stop using my iPad” But this is a chance for developers to shine as usual. I wouldn’t care what Twitter says about making clients for their service. If there’s a problem with the current software available that’s always a chance for another developer to enter the competition.

Pants hates being left out of a room

After reading a post on Cult of Mac about the “9 Things Apple Needs to Fix in iOS 5 Before Launch” I got a little peeved as a developer.

Here are my “3 reasons why I hate hearing about non-developers installing iOS 5”

1. It’s not done yet

There are going to be rough edges, bugs, sluggishness and I would expect that from any iOS beta that comes from Apple. They leave a lot of extra logging in and a lot of optimizations out. Stop complaining that some things do not work. It’s called a beta for a reason.

2. You’re advised AGAINST installing this on your main device

… and I bet every single one of you followed that recommendation too. (e_e) Take it from someone that didn’t follow this advice before: This is great advice. Apple knows the beta isn’t perfect. Other apps you have installed may not work, your battery life will suffer, strange shit can happen. They want everyone to experience their products at their best. Not at their worst just to access a new feature before their friends.

3. You’re going to be screwed once beta 1 expires

You can’t keep beta 1 on your device forever. At some unknown date your phone is going to be a brick that can only place emergency calls. I have some bad news for you. Apple is going to fix the beta for everyone workaround and the only option will be to restore back to 4.3. Once iTunes asks if you want to restore a backup of your phone it’s going to complain. Backups can never be restored on to an older version of iOS. Any messages, application data, whatever that you collected over that time frame are gone. If you don’t have a backup from before the beta you will have to start from scratch.

The exception

There is only one reason I like seeing people do this. The Windows users in Apple’s developer forums complaining that they can’t get shit working. They paid the $99 fee to get in to the dev program, own 0 Macs, and once they start running in to problems it’s obvious what happened. Those posts make me laugh and laugh and laugh!

The short version: Let developers play with iOS 5 and deal with buggy betas. They are under an NDA and will gripe about it in the dev forums and bug reports as they should. If anyone asks if any beta of iOS is ready to be installed on their device… they obviously are not ready.

PS: This is coming from a person who signed up as a dev to get copy/paste in iOS 3… but I’m making apps now so it’s cool ;)

Wanted to outline how I backup my VPS with Linode. Backups are very important. You want to create a plan that’s redundant, tested, and foolproof.

First you want to figure out what to back up. For me it’s my MySQL data, web, and configuration files to make a rebuild a little easier. For my server this means two directories: /home/user and /etc. To backup MySQL I’ll run mysqldump and that file will be saved in my homedir for easy access later.

Now to figure out where you want these files backed up. I really recommend that you back up your files to two locations. There may be times when one isn’t accessable and you want to be sure your files are safe. Personally I backup everything on a linux machine that I have at home and on space that I have with http://rsync.net. I highly recommend using rsync.net. For less than $5 they offer a great service with almost no downtime. Check their site for details. Either way, for the purposes of this script we’re backing up to another ssh enabled server using rsync (talking about the program, not the service here.)

You can also use Amazon’s Simple Storage Service (S3) but inital setup can be a pain for people new to the service and rsync.net won’t charge you for data transfer.

Since you will (hopefully) running this script automatically through you will not be there every time to enter your password for your remote machines when you start to copy files over. This is taken care of with SSH keys. Once you create your account on rsync.net you can follow these instructions to create the correct keys http://www.rsync.net/resources/howto/ssh_keys.html The process is close to creating keys to connect back to your home (or other) server http://www.ece.uci.edu/~chou/ssh-key.html

So now you should have almost everything needed. A what you want to back up, a remote location to back up to, and a way to ssh in to that location with no password. Next up, creating your rsync command. (If I mean rsync the command I will just say rsync, the service is rsync.net) First, you want to be VERY careful of what paths you use with rsync. It is not uncommon for noobs to try to backup their storage location on to the location they are trying to back up. This will generally destroy all of your data. Be careful and for now use the —dry-run flag until you are ready to perform your first backup.

This is the command that I use:

rsync -vrtz —del —delete-excluded —exclude-from=”/home/user/.rsync/exclude” “/home/user” accountID@server.rsync.net:myvps/home

If you’re unfamiliar with rsync I’ll give a quick rundown. rsync is a utility for copying files from one location to another. It’s biggest strength is syncronyzing those locations where only files that have been changed will be copied. What we’re creating here is an copy of a directory on your server to another location.

Now, for the flags I’m using in order:

  • verbose I like to see this output and cron emails me the results nightly
  • recursive This is important as it goes through all subfolders
  • preserve modification times Fairly important to me as it helps comparing files easier later on
  • compress Saves on bandwidth and transfer time by sacrificing a little cpu
  • receiver deletes during xfer, not before I’m not keeping files deleted on the server. This removes them from the backup loaction
  • also delete excluded files from dest dirs if you add files to your exclude from file this will remove ones copied already
  • —exclude-from= A list of files and folders you do not want backed up. Logs and cache files are a good idea to place here. Use the full path so the file can be found when ran through cron.

Again, TEST THE COMMAND ABOVE WITH —dry-run and tweak it until you have all of the files backing up with no issues and errors. Watch your output for files that you may need to exclude from backing up and add them to your exclude list. 

Once that’s all set you’re ready to create a script. Save the below gist as backup.sh on your server. Make sure you change all of the paths and server information to your own. run `chmod 755 backup.sh` Run the script as root to test it out then add the script to root’s cron.


This script assumes that you’re backing up everything in your homedir. (This is where I keep my sites) Your MySQL and /etc data will reside here, be copied to your remote backup, then your /etc backup will be removed. Mine was a bit large so I wanted to save the space.

Now to add another location to your script just duplicate the rsync line and change your server information where appropriate. I have a machine running Ubuntu at home with a drive dedicated to backups. This drive uses ‘Back in time’ to create daily snapshots. This is great for when you remove a file and don’t notice until days later. Since this script runs daily the —del flag will remove any files you trashed even if it was an accident. Trust me, I’ve had it happen a few times :)