Tuesday, January 27, 2015

A look at how Caktus Group built PyCon 2015, Libya's SMS voter registration, and more

Each July, the launch of the upcoming year's conference website is a huge moment for the PyCon team and community. It's a beacon to everyone that another PyCon is on the way, and a sign that the various teams that shape the event are already hard at work to prepare for it. For yet another year, we have a beautiful site in front of us: https://us.pycon.org/2015, designed and implemented by long time sponsor Caktus Group.

As with years past, the site is built on Django and Symposion, a conference management framework in use by several conferences in the Python community and otherwise. Caktus' prior involvement with that combination of technologies meant "we were able to concentrate on bug fixes and small features that make a big difference to the conference organizers," according to Rebecca Muraya, Caktus' lead developer on the PyCon 2015 site. Having been around the block with that stack has resulted in a higher quality site, and left more time to spend on the visual aspects of the site.

"One of the few requirements was the design should have color and energy and something that tied to the Palais [des congrès de MontrĂ©al]," Trevor Ray, lead designer, said of our request to include the vibrant colors found inside and out of the venue. Beyond the structure, what happens inside was equally as important to represent in the design, especially the talks - both on stage and in the hallways.

"Fueled by this idea, we focused on creating a design that communicated the idea of diversity, mingling crowds, and the energy you feel while you’re at a truly great conference. We wanted the colors to talk about PyCon, not only the Palais," said Trevor of the flowing snake-like colored ribbon.

Having spent nearly all of my time outside of talks the last few years, I saw this immediately. The free flowing nature of the color stream crossing back on itself, looping around, randomly appearing out of the sides as you scroll down the front page - that's a walk through the halls of PyCon to me. The size, direction, and shape of each color in the ribbon changing represents the different conversations with different groups going in slightly different directions at each step.

"It was both a great challenge and a wonderful opportunity to create a design for PyCon 2015. With the great feedback of the PyCon organizers and the input from the entire Caktus team I think the project has been a great success," said Trevor.

All the while, Caktus has been busy continuing work with iN DEMAND, one of the largest providers of pay-per-view and video on demand services. According to Hao Nguygen, through their work with iN DEMAND they've uploaded 1.3 petabytes of movies into the system. They're also working with the International Rescue Committee, a group which helped over 13 million people affected by humanitarian crises around the world. "Our portfolio really emphasizes projects that are complex and highly scalable since that, for us, is where it gets interesting, where high quality code matters most," says Hao.

One of the most interesting pieces of their portfolio is the work they've done to implement SMS voter registration in Libya. Due to the ubiquity of SMS technology in Libya, where there are 163 cell phone subscriptions per 100 Libyans as of 2013, the government mandated that registration be carried out via SMS.

In order to build the system, Caktus went with RapidSMS, a Django-based SMS framework. "We’ve implemented RapidSMS applications for UNICEF in Rwanda, Malawi, and Zambia," said Tobias McNulty, CEO of Caktus, experience which helped them build the Libyan system that saw 1.5 million registrants across two elections.

Tobias went on to mention how political instability raised the stakes not only for delivery of the project within time and budget constraints, but how that instability led to the need for a system that
didn't rely on in-person registration. A Caktus case study mentioned 78 in-person registration stations having been forcibly closed by violence in December 2013, among the many reasons why an SMS system was needed by the Libyan High National Elections Commission.

"Our software integrates with Vumi, an application focused on connecting to mobile network operators in a very scalable fashion," said Vinod Kurup, Caktus' lead developer on the registration project. The application is built on top of Twisted, with heavy use of Celery to offload their message processing. Deployment is managed with Fabric and Salt. They also got a lot of use out of Django and a host of Django libraries under the hood.

"As you can see, one of the major reasons that Python is attractive is that it can handle so many diverse aspects of the application, from the web, to the SMS backend, to asynchronous processing, to mobile network connectivity, to deployment," continued Vinod. "The combination of simplicity and power made it an obvious choice for this project."

Beyond development projects, Caktus is currently building out classroom space and curriculum for their upcoming Python and Django courses. Called Astro Code School, the three and twelve week courses are heading for a spring time launch, with plans for corporate training as well.

As for PyCon itself, Caktus is looking forward to getting back to Montreal for another year. "Aside from manning our booth, we’re hoping to attend talks, say hello to folks we know, and meet new people," says Hao, so go up and introduce yourself. They're also sponsoring Django Girls and PyLadies as well!

No comments: