Blog - code

Lessons, ideas and stories from our team.
  • From Mock to Docker for RPMs

    Here at Owsy we package all our applications using RPM to Yum repositories. Is that still new and sexy in the tech world these days? Probably not, right? For us though it provides a very stable and standardised method of packaging/deploying applications written in various languages (we have apps written in PHP, Clojure, Scala, Java, etc…) Until now we’d been using Mock to build these RPMs, but in a world where everything needs to keep getter faster it was proving too much to spend 10 minutes building packages (especially if you do it 10 times a day!). So we wanted something faster…


    Continue Reading
  • Vagrant, Symfony, Rsync (and Assetic)

    This post is a follow up to one I wrote on my personal blog about a year and a half ago. Since then I was lucky enough to have an extremely talented engineer join Owsy, who wasn’t as easy-going about slow page response times on their development VM as I was ;)


    Continue Reading
  • JUnit Linting for Clojure with Eastwood

    We use Clojure for most of our service layer, and run all our CI stuff through the venerable Jenkins server. I recently wanted to add support for the Eastwood linting tool to our standard Leiningen job on Jenkins (which previously just ran unit tests) to give us some extra feedback amd possibly catch errors or suggest improvements automatically.


    Continue Reading
  • Configuring ELB access for EC2 instances with Ansible

    We use Ansible to manage our security group configuration in EC2, but there is currently a limitation with the ec2_group module that doesn’t allow you to work with groups from other accounts. This poses a problem when you need to allow ELB to access your web servers for example. We’ve worked around this problem for a while now by manually tweaking the security groups when needed, but today I decided to look into a more automated workaround.


    Continue Reading
  • Soft-delete in Symfony with Doctrine

    One of our applications, BindHQ, requires we keep a full auditable history of the data that passes through the system. The way we try to achieve this is with an append-only model, but the standard techniques and examples you’ll find when researching Symfony generally demonstrate update-in-place usage.


    Continue Reading
  • Output Stream to Input Stream

    I was working on a JVM service we have which does some processing on various document types (PDF, PNG, etc…), returning the transformed result to the client. The way the PDF portion of this works is that the library we use writes its output to an OutputStream, and currently we’re using a ByeArrayOutputStream. I then needed to find an effecient way of getting the data in that object back to the client.


    Continue Reading
  • Externally Monitoring Services with Librato and Ansible

    We use the excellent Metrics service from Librato for our monitoring and visualisation for our infrastructure. Recently though I saw a presentation from Dataloop and loved their dynamic check script feature. I instantly saw a use in our environment for ensuring services were responding correctly.


    Continue Reading
  • Error Updating Route53 CNAME

    We use EC2 for our server infrastructure, and in the current iteration of our environment couple that with Route53 to provide simple well known names for our boxes.


    Continue Reading
  • Streaming Resources with Symfony 2

    One of our products, BindHQ, makes heavy use of S3 for storage of a large number of varied document types.


    Continue Reading