Caktus Blog
2014

Congrats to PearlHacks Winners (Including Our Intern, Annie)!
Caleb Smith, Caktus developer, awarding the third place prize to TheRightFit creators Bipasa Chattopadhyay, Ping Fu, and Sarah Andrabi.
Many congratulations to the PearlHacks third place winners who won Sphero Balls! The team from UNC’s Computer Science department created TheRightFit, an Android app that helps shoppers know what sizes will fit them and their families among various brands. Their prize of Sphero Balls, programmable balls that can interact and play games via smart phones, was presented by Caktus developer and Pearl Hacks mentor Caleb Smith as part of our sponsorship. PearlHacks, held at UNC-Chapel Hill, is a conference designed to encourage female high school and college programmers from the NC and VA area.

Caktus is Sponsoring Pearl Hacks
Caktus is excited to further encourage young female programmers through our support of PearlHacks, a two-day hackathon and conference hosted by the University of North Carolina - Chapel Hill. This weekend, March 22-23rd, over 200 young women from local high schools and universities in Virginia and North Carolina will arrive for the conference.

FastCompany: 10 Most Innovative Companies in Local
FastCompany named Caktus client, UNICEF, as one of the Top 10 Most Innovative Companies in Local. UNICEF received this honor for their launch of RapidSMS, an open source platform for quickly building SMS applications.

Caktus Completes RapidSMS Community Coordinator Development for UNICEF
Colin Copeland, Managing Member at Caktus, has wrapped up work, supported by UNICEF, as the Community Coordinator for the open source RapidSMS project. RapidSMS is a text messaging application development library built on top of the Django web framework. It creates a SMS provider agnostic way of sending and receiving text messages. RapidSMS has been used widely in the mobile health field, in particular in areas where internet access cannot be taken for granted and cell phones are the best communication tool available. This has included projects initiated by UNICEF country offices in Ethiopia, Madagascar, Malawi, Rwanda, Uganda, Zambia, and Zimbabwe.

Managing Events with Explicit Time Zones
Managing Events with Explicit Time Zones
Recently we wanted a way to let users create real-life events which could occur in any time zone that the user desired. By default, Django interprets any date/time that the user enters as being in the user’s time zone, but it never displays that time zone, and it converts the time zone to UTC before storing it, so there is no record of what time zone the user initially chose. This is fine for most purposes, but if you want to specifically give the user the ability to choose different time zones for different events, this won’t work.

Caktus is hiring a Web Designer-Contractor
Caktus is actively seeking local web design contractors in the North Carolina Triangle area. We’re looking for folks who can contribute to our growing team of designers on a per-project basis. Our team is focused on designing for the web using HTML5, CSS3, LESS, and responsive design best practices. We take an iterative approach with our clients involving them early and often. So, if you’re a designer looking for some extra work and want to sit in with our sharp team check out the job posting. It has more information about the types of projects you would be working on and some of the skills we hope to find in your toolbox. If it sounds like a good fit, drop us a line—we’d love to chat!
2013

Using strace to Debug Stuck Celery Tasks

ShipIt Day 4: SaltStack, Front-end Exploration, and Django Core
Last week everyone at Caktus stepped away from client work for a day and a half to focus on learning and experimenting. This was our fourth ShipIt day at Caktus, our first being almost exactly a year ago. Each time we all learn a ton, not only by diving head first into something new, but also by hearing the experiences of everyone else on the team.

UNC, Duke Team up with Carrboro-based Caktus Group on HIV Gaming App
The following is a press release posted in partnership with our team at UNC and Duke.
The web application development company Caktus Group has teamed up with researchers at the UNC Institute for Global Health & Infectious Diseases and the Duke Global Health Institute to develop a mobile phone app that may help patients better adhere to their medication regimens.

Skipping Test DB Creation
We are always looking for ways to make our tests run faster. That means
writing tests which don't preform I/O (DB reads/writes, disk
reads/writes) when possible. Django has a collection of TestCase
subclasses
for different use cases. The common TestCase handles the fixture
loading and the creation the of TestClient. It uses the database
transactions to ensure that the database state is reset for every test.
That is it wraps each test in a transaction and rolls it back once the
test is over. Any transaction management inside the test becomes a
no-op. Since [TestCase]{.title-ref}[ overrides the transaction
facilities, if you need to test the transactional behavior of a piece of
code you can instead use
]{.title-ref}[TransactionTestCase]{.title-ref}[.
]{.title-ref}[TransactionTestCase]{.title-ref}` resets the database
after the test runs by truncating all tables which is much slower than
rolling back the transaction particularly if you have a large number of
tables.