Archive for the ‘General’ Category

I always forget the order to concatenate SSL certificates and to upload to Amazon ELBs as well as commands to verify SSL certificates. Extract dates from certificate echo | openssl s_client -connect co.photobox.com:443 2>/dev/null | openssl x509 -noout -dates notBefore=Feb 10 00:00:00 2015 GMT notAfter=Jun 9 23:59:59 2016 GMT cat 14619087repl_1.crt | openssl x509 -noout […]

A quick script to update Amazon ELB SSL Negotiation policies for all Amazon ELBs. The security policies are managed from Amazon and will only update the predefined security policies, choosing the latest one. More information available on AWS predefined negotiation policies. View the code on Gist. Sample output… View the code on Gist.

A while back I wrote an awk script to process a custom log file to work out how an application was performing over a period of time. The following script takes a timestamp in field one $1 and also an arbitrary field $10 in this case. For every 100 lines of the log file processed […]

I’ve implemented a number of sites with Elastic Search and recently had a two-day spike to implement Elastic Search for Photobox’s backoffice systems. As a result I have since wrote a presentation and presented at Photobox on Friday. I have posted the slides for the presentation here… I wrote this presentation using rvl.io – reveal.js, […]

Whilst recently looking into usage of SSL, I needed to analyse some logs from apache to determine requests per second. Initially I wrote a quick bash script to do this, however figured it would be handy to elaborate on this, as a result I have posted a perl script on github at apache-log-stats total_requests=$(zcat b2f01_ApacheAccess.2011-12-05.gz […]

At Everlution we did a hack day to help motivate developers and to get the team working together. We started at 8.30am and finished at 5pm. It was pretty impressive what all the teams managed to achieve, with four teams of two developers and a designer. It was set out in a competition style event […]

A nice tip for logging data against apache logs within requests. Apache_note is a wrapper for Apache’s table_get and table_set. It edits the table of notes that exists during a request. The table’s purpose is to allow Apache modules to communicate. if (function_exists(‘apache_note’)) { if (isset($_SESSION) && !empty($_SESSION)) { apache_note(‘session_id’, session_id()); apache_note(‘users_id’, isset($_SESSION[‘users_id’])? $_SESSION[‘users_id’] : […]

Vagrant is simply a wrapper around Virtualbox headless that allows for provisioning virtual machines with support for puppet, chef-solo, chef, and bash. This allows you to automate the deployment and sandboxing of development sites. Additional base box images can be found at vagrantbox.es. Installing Vagrant apt-get install -y ruby1.9.1 ruby1.9.1-dev ln -svf /usr/bin/ruby1.9.1 /etc/alternatives/ruby gem […]

This is something I commonly have to run and always seem to forget. In order to run unattended. Java 6 installation on Ubuntu add-apt-repository “deb http://archive.canonical.com/ $(lsb_release -s -c) partner” apt-get update echo “sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true” | debconf-set-selections echo “sun-java6-jre shared/accepted-sun-dlj-v1-1 select true” | debconf-set-selections DEBIAN_FRONTEND=noninteractive aptitude install -y -f sun-java6-jre sun-java6-bin sun-java6-jdk Java […]

I Spent a little while yesterday investigating why memcached causes problems with multigets returning results and ended up comparing debian vs ubuntu. I tested from virtual machines and physical hardware of relative specs. I have also tried a combination of libmemcached libraries and tuned the tcp stack, however here are some of the results from […]


About this blog

I have been a developer for roughly 10 years and have worked with an extensive range of technologies. Whilst working for relatively small companies, I have worked with all aspects of the development life cycle, which has given me a broad and in-depth experience.