Internship at LShift

Elzbieta Siwy wrote “Introduction Today it’s my last day of a 5 month internship as a Software Engineer at LShift. This has been a truly valuable experience for me. I am a third year student of Mathematics and Computer Science at Imperial College London and working here has taught me skills I would have not gained by just…”


Lunchtime hack: My cycling routes

James Uther wrote “Like most Android users (because I think it’s the default) Google tracks my location. Thankfully, they provide a way for me to view and edit the data collected (Thus satisfying some major rules of personal data collection – well done!). But the interface on location history is clunky as a visualisation, so let’s spend lunch…”

By Rept0n1x (Own work) [GFDL ( or CC-BY-SA-3.0-2.5-2.0-1.0 (], via Wikimedia Commons

Optimizing Salsa20 in BouncyCastle

Jarek Siembida wrote “A while ago I started dabbling in cryptography a bit, and inevitably, I ended up toying with performance of the related algorithms and code. In this post I’d like to share my approach to optimizing BouncyCastle’s implementation of Salsa20. A few observations regarding Salsa20 (and presumably other modern ciphers) in the context of performance: Salsa20…”

Automating pre-deployment sanity checks with Grunt

Sam Carr wrote “Grunt is a great tool for building, running and deploying ‘Single Page Apps’. I have a single grunt command to build and deploy to S3 for production, but recently I added some extra functionality to make deployment safer and even easier: Abort if you are not on master branch Abort if there are any uncommitted…”

Things I wish I’d known about Google Docs

Sam Carr wrote “I have had cause to write a lot of Google Docs recently, which leaves me furnished with a stock of interesting observations that others might find helpful. With no further ado… It doesn’t auto-number headers I typically want my business-like docs to have numbered headings, so an H3 might be “2.4.1. Architecture considerations”. Word can…”

By Loozrboy from Toronto, Canada (Stacks Uploaded by Skeezix1000) [CC BY-SA 2.0 (], via Wikimedia Commons

Optimising compilers as adversaries

Ashley Hewson wrote “Suppose that you want to handle some secret data in C and, in the wake of some high-profile vulnerability or other, want to take precautions against your secret being leaked. Perhaps you’d write something along these lines: #include <string .h> typedef struct {   char password[16]; } secret_t; void get_secret(secret_t* secret); void use_secret(secret_t* secret); void…”,_New_Jersey_-_NOAA.jpg

Dockerising an XMPP Server

Shaun Taheri wrote “As part of an internal migration of our XMPP server, we thought this would also present a good opportunity to test drive Docker to see if it would be useful for other infrastructure projects in the future. Docker is fast becoming the industry standard for deployment on Linux platforms, and for a number of good…”

Super-simple JavaScript inheritance

Sam Carr wrote “JavaScript uses prototype-based inheritance, which can prove a bit of a puzzler for those of us used to class-based object orientation. At first glance it seems like it’s basically the same and as if it can be used in very nearly the same way. If you pretend that those prototype objects are in fact classes…”


CSS Transitions can’t animate display change

Sam Carr wrote “I’d like to demonstrate a fairly simple CSS issue that caught me out, and the straightforward solution. Put simply CSS Transitions do not work if there is a change in the display property as part of the same change that fires the transition, but you can workaround this by separating out the display change. If…”

By Janos Korom Dr. from Wien, Austria (Requiem in Mariazell (4)) [CC-BY-SA-2.0 (], via Wikimedia Commons

Requiem for the Command pattern

Tim Band wrote “Is there anything sadder than the Command pattern? The exemplar of the once-proud Patterns movement, the one that everyone understands and can see the power of, the one that has an instant applicability to many applications: the undo system. I remember a time when undo seemed a luxury to be implemented only by the most hardened of programmers; then the command pattern made it achievable by any decent coder. Now, the Command pattern is just that extra cruft you have to write when your language doesn't have good support for closures.”