Source Allies Logo

Blog Insights

  • development icon

    Should Developers Learn More Than One Language?

    This is an interesting question. Let’s think of it this way: Does a carpenter only use one type of saw? Does a mechanic only have one type of wrench? No. In short the answer is, as craftsmen of code, we are only as good as the tools that we know...
  • development icon

    The Danger of Carrier Objects

    In the everyday world, it's usually a good thing to have what you need ahead of time, even if there's a possibility of never using it: I'm going to school, better pack my books; I'm taking a flight this afternoon, better bring some earplugs; I'm going to a meeting, better...
  • development icon

    Dry Up Your CSS

    As we start to build websites with mobile first in mind, our stylesheets can get messy really quick. In this article, we'll talk about making your stylesheets more functional and easier to read at the same time. We will take a quick peek into SASS, and the benefits that it...
  • cloud icon

    ActiveMQ Memory Tuning

    ActiveMQ is a great messaging broker. However, using the default configuration is not recommended. This article will explain how I determined the appropriate ActiveMQ memory settings for one of our partners. I recently helped a partner with a production issue involving a large java web application that used ActiveMQ as the...
  • development icon

    Put the Grunt Work Behind You

    Gulp is quickly becoming the the leading task runner over grunt. If you are currently using Grunt or even worse, an ant task, then I highly recommend this topic for you. In this write up, we will quickly discuss Grunt, Gulp, and Gulp syntax. Let's take a look at how Grunt...
  • testing icon

    Test Driven Groovy: StubFor

    After years of being immersed in Java development, I must admit that I got spoiled by its strong and mature ecosystem. Hence, whenever I want to pick up a new technology or programming language the following must be there: class StudentScoreService { private StudentRepository studentRepository ...
  • development icon

    Automated Plant Watering System

    Taking care of indoor plants can be work, especially if you have many of them. As you know water plays a major role in the health of plants, so lets automate it! Automation of watering plants can be cheap, fun and rewarding. Some quick history about plant watering and why I...
  • testing icon

    Updated TDD Mantra

    If you have ever practiced test driven development (TDD), then you are probably familiar with the TDD mantra – red, green, refactor. I’m a big proponent of TDD, but I think the TDD mantra is missing a fourth step. In his book that introduced me to TDD, Test Driven Development: By...
  • development icon

    Customizing CSRF Protection in Spring Security

    Starting in Spring Security 3.2, developers gained an easy solution to their Cross-Site Request Forgery problems with Spring's implementation of the Synchronizer Token Pattern. Spring's documentation does a great job of explaining Synchronizer Token Pattern and their implementation, so rather than talk about all of that, I'm going to show you...
  • development icon

    How to Implement the Splitter and Aggregator Patterns with Apache Camel

    I have found that Apache Camel is a good way to load data from log files into a database. Read on to see how I did this using the splitter and aggregator patterns with Apache Camel. Example: username1,fname1,lname1,email1,action1,start-time1,end-time1 username2,fname2,lname2,email2,action2,start-time2,end-time2 username3,fname3,lname3,email3,action3,start-time3,end-time3 username4,fname4,lname4,email4,action4,start-time4,end-time4 username5,fname5,lname5,email5,action5,start-time5,end-time5 username6,fname6,lname6,email6,action6,start-time6,end-time6 . . . //This can go 150000 records Now what we want is to transfer these huge records from...