Source Allies Logo

Blog Insights

  • development icon

    Javascript functions for creating a read-only view

    I'm sure you've all been there before. After months of creating page after page of crud screens, you're now asked to create a read-only view of everything. I usually see this implemented with setting the readOnly attribute on every field to a variable that indicates whether or not the screen...
  • development icon

    Exploring Design Patterns in the JDK

    Design Patterns are software design solutions that can be applied in our daily software development to help us develop code that is flexible, resilient to change and easily understood (when you are familiar with the pattern). The JDK APIs employ patterns in several areas. So even if you aren't familiar...
  • development icon

    Aggregate MyBatis.NET SqlMaps from Multiple C# Projects

    Wouldn't it be nice to have your ASP.NET web application simply discover any new MyBATIS config files when the application starts up? If you're on the bleeding edge with iBATIS 3 beta code, then this is a fairly simple task with psuedo code like: string[] sqlMaps = Inspector.GetSqlMapsFromAssembly( ...
  • development icon

    Avoid merge hell when committing from Git to a Subversion repository

    Previously (I sound like an episode of desperate housewives!) we saw how we can easily commit an existing Git repository into Subversion. That was great and we can commit changes to our git repository and execute git svn dcommit all day long to send the changes up to Subversion. Now...
  • development icon

    How to commit an existing git project into Subversion

    In my last post I mentioned how Git's stash feature finally convinced me that it made sense in my subversion world. Well, once I was well underway on my new project, I'd reached the point where I was ready to commit version 0.1 to subversion. Googling for how to commit...
  • development icon

    One good reason why Git makes sense

    When I first heard about distributed version control systems and Git about a year and a half ago, I was very much a Subversion user both at work and at home. I knew how to setup Subversion, it's ACLs and make it available over http via Apache. You could say...
  • testing icon

    Would you start mocking me?

    One of the primary principles of unit testing is to test a small piece of functionality in isolation. In order to achieve this, mock objects are often necessary. Historically using mocks could be quite painful. After using several mock frameworks, my favorite by far is Mockito. java Person mockPerson = Mockito.mock(PersonImpl.class); assertNotNull(mockPerson.getChildren()); assertEquals(0, mockPerson.getChildren().size()); assertFalse(mockPerson.isCitizen()); assertEquals(new...
  • 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....