Source Allies Logo

Blog Insights

  • agile icon

    Agile Teams: Unequal and Opposite Reactions

    Newton's Third law of motion,"To every action there is always an equal and opposite reaction..." is a powerful standard in analyzing team dynamics. I have been leading agile teams for over five years. When I am asked to lead a new team I begin by looking for reactions that are...
  • development icon

    First Glance at PowerShell

    A couple days ago I had the surprisingly excellent opportunity to learn and use Windows PowerShell... What? Don't look at me like that. I disapprove of Microsoft just as much as the next Linux fanboy, but seriously, this was cool. Just give me a chance to explain. I swear, I...
  • infrastructure icon

    How RAID 5 Works at a Bitwise Level

    RAID 5 is a pretty magical thing overall, though a large portion of its magic lies in how it works on a bitwise level. But before I get into the bitwise sorcery, I'd like to briefly explain what RAID5 is. RAID stands for Redundant Array of Inexpensive (or Independent) Disks....
  • cloud icon

    Installing Ubuntu: A Trial and Error Account

    Recently I decided it was time to grab up a spare computer that I could use for tinkering as well as back up files from my other machine in the event that it goes down. The one big thing I wanted to do was to install a Linux OS and...
  • development icon

    Incrementing Oracle Sequences Without Permissions

    If you are ever working with a database where data is consistently being imported, dropped, and/or restored; sooner or later you will find yourself in the situation where the primary key of a table is no longer synchronized with the sequence used to generate it. If you have the appropriate permissions,...
  • development icon

    Google Analytics Data Export API

    When Google exposed its Data Export API, it endeared itself closer to developers and to customers of Google Analytics. Data Export API allows us to develop client applications to retrieve data from existing analytics profiles of authorized users. At this point, Google offers 2 solutions: a Java and a JavaScript client....
  • development icon

    MySQL Master/Slave configuration with EJB3 and JPA

    Well this turned out to be quite an exercise. The goal: scalable reads with MySQL in master-slave configuration, writing to the master, and reading from N slaves, load balanced in round-robin fashion (or something). The problem: using JPA (Java Persistence API) instead of direct JDBC calls. Turns out the MySQL ReplicationDriver (used...
  • cloud icon

    Loadbalancing and its benefits

    Another, more global, method of load balancing is Anycast. Anycast is an addressing strategy often used in DNS where hosts in multiple geographical locations represent the same IP address. This balances workload because any request is routed to the closest host (as determined by the routing protocol). In the event...
  • development icon

    Rendering Global t:messages After Redirect

    A common problem when working with JSF is getting global info messages  via <t:messages globalOnly="true"> or <f:messages globalOnly="true"> to display messages set in the previous request when you have a <redirect/> in your faces-config for a particular page You will not see your <t:messages> that are set on the previous...
  • testing icon

    Developing a multithreaded test harness

    You can't ignore the fact that web servers are multithreaded. We can hide as much as we want, but sooner or later you'll find yourself in the situation where your application works fine during development and testing; but once it hits production you start hearing about "funny" things happening. While...