ios7 appears to have broken input fields for a number of web applications. Input fields now take two taps to allow the user to input data even though the keyboard is brought up after only one click. Here’s a hack to fix the input fields for any of your webapps […]
Here is a MongoDB script for presenting index information in a more concise way than getIndexes() provides. This script also presents an index’s total size along with a breakdown of its size on all of the shards. //mongo --eval="var collection='file';" var ret = db[collection].getIndexes().map(function(i){ return {"key":i.key, "name":i.name}; }); var o […]
Getting useful index information from MongoDB
I was recently tasked with writing a Hadoop map/reduce job. This job had the requirement of taking a list of regular expressions and scouring hundreds of gigs worth of log files for matches. Since I’ve been leaning more and more towards Scala I wanted to use it for my job […]
Simple Scala Map/Reduce Job
Here is a handy script I’ve been using for MongoDB to retrieve a list of all the fields used in a collection. This uses a map/reduce routine and has to comb over all the documents in a collection so you may want to exercise caution when using this script. // […]
Select distinct for MongoDB

Here is a simple web scraping script I wrote for PhantomJS, the immensely useful headless browser, to load a page, inject jQuery into it, and then scrape the page using a user-supplied jQuery selector. page = require('webpage').create() system = require 'system' phantom.injectJs "static/js/underscore-min.js" page.onConsoleMessage = (msg) -> if not msg.match […]
Simple PhantomJS web scraping script
Origional
Teaching cybersecurity
Here is a presentation I gave at MongoSF 2012 on unique security considerations for MongoDB. And here are my slides.
MongoDB Security Considerations presentation at MongoSF 2012
[Guest post by Ryan Bailey] Earlier this year roughly 50,000 stolen iTunes accounts were posted to a Chinese online auction site with prices ranging from 15 cents to $30 each. Many forms of attacks can be leveraged in acquiring passwords such as these through covert means, but almost none provide […]