Written by Gilles Magalhaes during his four-week-long summer vacation job.
Having had Gilles with us four weeks during this summer, and four days earlier this year, turned out to be a real joy and huge benefit. Gilles’ quite positively a formidable chap to have around as a person, and, never have I seen someone transform ideas into python applications in such a small amount of time.
Foremost, he also introduced us at tentwentyfour1024 to a range of new trends and tools out there that are on their way to becoming - or already are - the next big thing™ on the Internet. While we still hope that there are some tricks of the trade that they - aged 15 through 18 - can learn from us, I’m quite positive that, in the end, we have more to gain from them, bringing in fresh ideas and new perspectives into a company that has had a full year to adopt all sorts of ill preconceptions and the kind of attitude that says “Thanks, but we’re too busy to innovate!”.
When you’re lucky to have young people like that around you, showing you tools and technologies you’ve not even heard about, you feel kind of obliged to take some time off the “important matters” and check out what the heck they’re talking about. You might be dismissing it as naive at first, but I think it would be a serious mistake to stop at that.
So, Thank You, Gilles, for having stayed with us and for having made us young again (figuratively speaking ;) )
The first week at tentwentyfour1024 began by David telling me what I could work on, he had prepared a few tasks, all of which seemed interesting, so I started with the one that seemed easy enough: adding new features and fixing a few bugs on a project that I had worked on during my short internship earlier this year. The program is rather simple, it fetches data from a semantic wiki, formats it and then sends it off to a label-printer.
At the same time, I was also setting up my computer which was running Ubuntu. I installed Vagrant and that was pretty much it, since every web app we develop brings its own Vagrant environment and so I didn’t need to install any other dependencies.
One of the projects I worked on the second week was a patch for the NextGen Gallery, which was kind of a challenge, since I wasn’t very familiar with PHP and even less with WordPress, so I was hunting the bug that was causing the resources not to be loaded while learning PHP and WordPress. I eventually found out what was causing the bug – NextGen Gallery not using the proper Wordpress functions to load static resources – fixed it and submited a pull request to the NextGen Gallery repo on Bitbucket.
I spent the majoity of the week, creating a base box for vagrant, that would run Debian 7.6 Wheezy with docker and modifying puppet scripts for the various development environments, at the time PHP and Ruby on Rails, to make them work with the new Vagrant base box. This took a lot of time, since installing Debian in Virtualbox took a long time and by a long time I mean 3-4 hours.
At the end of the week, I looked at using the WordPress plugins wpml-cms-nav and wptouch pro for a customer having a multilingual website and an impressive number of menus.
One of the projects needed a task queue for geocoding addresses and the current implementation ran the tasks when you went to an URL, so the problem was that the request timed out since each task would take a long time to run and this had to be fixed. Initially we wanted to use zeromq, but soon we realized that we were implementing our own task queue and that it would make sense to use something that had already been written and – most importantly – well tested, so we opted for php-resque, which is a Redis-backed library for creating background jobs, placing those jobs on one or more queues, and processing them later. Implementing this took about a day, since I wasn’t really familiar with the project. I also got help from David.
On my last day, I wrote a small program (in Python, of course) that reads addresses from a database and creates a gpx file that can be read by a GPS.
<div class="col-xs-12 col-md-6"> <ul> <li><a href="http://www.gnu.org/software/emacs/">Emacs</a></li> <li><a href="http://www.ubuntu.com">Ubuntu</a></li> <li><a href="http://www.vagrantup.com/">Vagrant</a></li> <li><a href="http://git-scm.com/">git</a></li> <li><a href="https://www.python.org/">python</a></li> <li><a href="http://php.net">PHP</a></li> <li><a href="http://wordpress.org/">Wordpress</a></li> <li><a href="http://www.nextgen-gallery.com/">NextGen Gallery</a></li> <li><a href="https://www.virtualbox.org/">VirtualBox</a></li> </ul> </div> <div class="col-xs-12 col-md-6"> <ul> <li><a href="http://www.debian.org">Debian</a></li> <li><a href="http://www.puppetlabs.com">Puppet</a></li> <li><a href="https://www.ruby-lang.org">Ruby</a></li> <li><a href="http://rubyonrails.org/">Rails</a></li> <li><a href="http://www.docker.com">Docker</a></li> <li><a href="https://github.com/mjphaynes/php-resque">php-resque</a></li> <li><a href="http://redis.io/">redis</a></li> <li><a href="http://silex.sensiolabs.org/">Silex</a></li> </ul> </div>