Web Apps Plato: A JavaScript Static Analysis Report Generator Playing around with Plato, a JavaScript static analysis and source code complexity tool.
Project & Team Management Sprint Retrospectives: The Cornerstone of Agile Giving people the ability to raise concerns, develop a plan, and measure outcomes can be very empowering because it lets them own their problems.
Developer Tools Comparing Node.js Debug Options Comparing the built-in Node debugger, Node Inspector, and IDEs for debugging Node.js apps.
Web Apps Creating Charts with Rickshaw.js Rickshaw.js is an open source JavaScript charting framework built on top of D3.js. It specializes in creating timeseries graphs.
Growing as Makers Podcast Review: Programming Throwdown If you’re interested in high-level introductions to languages or topics you don’t know much about, I would strongly recommend Programming Throwdown.
Software Science Mean Shift Clustering An overview of mean shift clustering (one of my favorite algorithms) and some of its strengths and weaknesses.
iOS / OS X Evaluating Expressions in iOS with Objective-C and Swift Evaluating string expressions in iOS with the NSExpression and NSPredicate classes. Examples given in both Objective-C and Swift.
Software Science An Introduction to the Central Limit Theorem The Central Limit Theorem is the cornerstone of statistics – vital to any type of data analysis.
Objective-C Method Swizzling in Objective-C Method swizzling is the act of swapping the implementations of two selectors as an Objective C program runs, similar to monkey patching.
Software Science Optimizing Tail Call Recursion Writing optimized recursive tail calls so they execute in an iterative way and use constant stack space.
Python Managing Amazon S3 files in Python with Boto I recently found myself in a situation where I wanted to automate pulling and parsing some content that was stored in an S3 bucket.
Software Science Fisher-Yates Shuffle – An Algorithm Every Developer Should Know Unlike biased algorithms, the Fisher-Yates Knuth shuffle algorithm produces each outcome with equal likelihood.