• WILT - Akka

    OOP does not work well in multi-threaded environments. Common solutions like locking lead to performance and scalability issues.

    Enter Akka, a new programming paradigm for applications requiring execution concurrency. Akka introduces the “Actor Model” that uses a message passing approach (communication) rather than OOP’s method call approach.

  • Transferring DNS Domains to AWS

    I transferred my personal domain,, to AWS today with little issue. It’s important to follow Amazon’s instructions very carefully. See: Transferring Registration for a Domain to Amazon Route 53

    There will be several steps on both the AWS Route53 console and on the current registrar’s site, including:

    1. Verifying that the admin e-mail is correct and accessible
    2. Unlocking the domain so that the clientTransferProhibited flag does not appear in Whois for the domain
    3. Approving the transfer with your registrar
  • Fixing Apple TV Home Sharing

    I have an Apple TV (3rd Gen) that could not play music from my home iTunes library nor view photos from iCloud. Symptoms included:

    • Attempts to enable Remote app on IOS device shows a message “Turn on home sharing…”
    • Apple TV Photos app does not show photos from your library
    • Apple TV Music app does not have access to your iTunes music library.
    • Using Actiontec MI424WR router on Frontier FIOS

    This turns out to be a network issue. My router was filtering some traffic between network devices. The fix is obscure, so here are the specific steps to resolve it:

    Step 1: Login to your router’s admin interface at

    Step 2: Click on “Advanced”

    Step 2

    Step 3: Click on “Routing”

    Step 2

    Step 4: Uncheck “Internet Group Management Protocol”

    Step 2

    Step 5: Reboot router. I had to power-cycle it.

    Step 6: On your Apple TV, sign out of iTunes store and sign back in.

  • CLI for AWS Lambda Apps

    The folks at have created a CLI for managing Serverless/Event-driven apps to popular cloud providers.

    alt text

    The Serverless Framework is a CLI tool that allows users to build & deploy auto-scaling, pay-per-execution, event-driven functions.

    Write your code, configure events to trigger your functions, then deploy & run those functions to your cloud provider via the Serverless CLI.

    They also have a great blog at

    Of course, don’t forget Amazon’s own AWS Lambda Blog

  • Periodic Table of DevOps Tools

    Neat infographic forwarded by João Lucas Santana:

    Periodic Table of DevOps Tools

    alt text

  • Fixing Common Git Mistakes

    João Santana, one of the illustrious ThoughtWorks consultants I’ve had the pleasure to work with, recommended this link:

    Most common git screwups/questions and solutions

    I was looking to learn a bit more about the parts of git I’ve not ventured into yet. What better way that looking the most common ways people screw them up and how to fix the resulting problems! Here’s a short list, compiled from my own experience and issues I’ve come across on the Internet.

  • Testing Meets Monitoring

    The inestimable Jefferson Girao sent me this link:

    Testing and Monitoring Collide

  • Building SAAS Apps - The Twelve-Factor Approach

    The Twelve Factor approach describes best practices for developing, deploying, and operating applications as services.

    In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that:

    • Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
    • Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
    • Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
    • Minimize divergence between development and production, enabling continuous deployment for maximum agility;
    • And can scale up without significant changes to tooling, architecture, or development practices.
    • The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services ()

    The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

  • Monitoring Driven Development

    These days, I’m called a “software developer”. While I have some background doing test-driven development in C++ and OO-Perl, this is the first time I’ve carried the “developer” job description exclusively.

    When folks ask, I always say that I’m a “Recovering Sysadmin”, a quip I got from Irving Popovetsky at Chef.

    Monitoring is the Same as Testing.

    There is some benefit to having a sysadmin background. One thing I’ve noticed is that developers love to test during development, but not once the code is released. With my team, I have been making the case that monitoring is the same as testing. If a test is important enough for TDD, then that same test should be run continuously in the production environment.

    Benji Weber takes the idea to its logical conclusion by proposing Monitoring Driven Development

    Sounds like a good idea to me.

  • The OS is Dead, All Hail the OS!

    Virtualization has dramatically decreased infrastructure provisioning time, and has permitted much more efficient utilization of hardware resources. Inevitably, when you make something easy, you get more of it. As a result, VM deployments are outstripping our ability to manage operating system configuration at scale. Tools to manage OS configuration are becoming ubiquitous, e.g., Chef, Puppet, Ansible, Salt. However, these tools really just fix a symptom. The problem is:

    Operating Systems contain too much stuff!

    In what twisted universe does it make sense for an OS to include four text editors, five programming languages, and seven different network debugging tools?

    In the modern Cloud Computing and Service Oriented Architecture worlds , the principal value of an OS is to serve as a container for an application. In other words, the role of an OS is approximately the same as the role of the Java Virtual Machine.

    OS configuration should be externalized and OS instantiation should be parameterized to the point that starting an OS instance is a very light-weight operation.

    This concept, “OS as a Library”, is gaining steam.


    An open platform for distributed applications for developers and sysadmins.


    Linux for Massive Server Deployments


    OSv is the open source operating system designed for the cloud. Built from the ground up for effortless deployment and management, with superior performance.

  • Linux Performance Profiling at Netflix

    Linux Performance Profiling at Netflix

subscribe via RSS