Quick Introduction to Mock

December 11, 2014 4:07 p.m.

Quick Introduction to Mock

Mock is a powerful library for facilitating testing.  It allows users to replace components of your application with powerful mock objects at testing runtime.  These objects can then be used to make observations about call patterns and to assert which methods of the object were accessed, the number of times a method is called, and with what parameters the method was called.  Additionally, you can specify return values and raise exceptions from these mock calls to test your application under certain situations.  Mock objects can also be used to replace entire objects with lightweight objects to ...

Read More

Updated 12/11/14 @ 04:07PM CST by djohnson

Bookmark and Share

Categories: Testing


Introducing django-nocaptcha-recaptcha

December 10, 2014 12:12 p.m.

This week, Google announced a radically new way of handling human detection with a revamped reCAPTCHA.  This new iteration, called No CAPTCHA reCAPTCHA replaces the hard-to-read distorted text image transcription with a simple checkbox.

We've never been big fans of CAPTCHA technology.  It transfers the burdeon of proof from the server to the end user.  It adds another field - often cryptic and frustration - to the form conversion funnel.  Unfortunately, it has been the most reliable way to parse out human input and drown out the form spam noise.

Now, through Google wizardry, all a user needs to do is ...

Read More

Updated 12/10/14 @ 12:12PM CST by brian

Bookmark and Share

Categories: System-level Tools


5 million votes and counting at Rockhall.com

October 21, 2014 11:16 a.m.

The Rock and Roll Hall of Fame recently announced their 2015 nominees.  At the same time, they opened up a Fan Voting application so that music fans across the world could make their selections known.

Rock Hall approached Imaginary a couple weeks prior and asked if we could design an app to handle the fan vote (in previous years, it was outsourced).

Simple enough.

When asked how many votes they received last year, they said "two million." And, although the voting is open for several weeks, the distribution was more like "one million votes in the first week and one ...

Read More

Updated 10/21/14 @ 11:16AM CDT by brian

Bookmark and Share

Categories: Popular Django Applications Testing


New Django Server Setup: Part 2

September 23, 2014 11:49 a.m.

In Part 1 of this article, we discussed our choice of typical server stack and the general packages that we find useful upon an initial installation. Part 2 will focus on setting up the site environment and configuring the system services. As mentioned before, at Imaginary, this setup process is normally automated via the Saltstack provisioner. However, for the purposes of this article, we will walk through the steps individually. This article assumes that you have read Part 1 previously.

System Setup

In order to make the OS usable to our System Administrators, we need to set up the system ...

Read More

Updated 09/23/14 @ 11:49AM CDT by jjasinski

Bookmark and Share

Categories: System-level Tools Systems Administration


New Django Server Setup: Part 1

September 03, 2014 4:43 p.m.

A core challenge of setting up a Django project is creating a production-worthy server environment and project setup.  At Imaginary Landscape, we've put a lot of thought into how to accomplish this task in an intuitive and flexible way.  

The goal of this article is to detail the default setup process that we use for a single-server site.  We will cover the process of provisioning a server, configuring a virtual environment, and setting up a Django project.  Each site that we create comes with very unique requirements, but this article will detail our default provisioning approach. 

Please note that ...

Read More

Updated 09/03/14 @ 04:43PM CDT by jjasinski

Bookmark and Share

Categories: Best Practices System-level Tools Systems Administration

Tags: amazon gcc git gunicorn mysql nginx ntp pgbouncer pil postfix postgresql rackspace redis supervisor ubuntu virtualenv