Blog Channels

Development Back-End List Filtering with Django

Development

Back-End List Filtering with Django

Django comes with a powerful and well-documented API for interacting with database objects. If you want to display a specific set of objects in a ListView, for example, you need only construct a queryset with the appropriate filters. However, this starts to get complicated if you want to be able to adjust the filters from the front end, and if there are many of them. In this example, I will demonstrate how to simultaneously implement multiple types of back-end filters on a large group of objects...

Development

Development

Creating a Multipage PDF Document from UIViews in iOS

We work on a wide variety of mobile projects here at Concentric Sky, and one requirement we occasionally encounter is for an iOS app to output data in PDF format. We've done this with UIWebViews in an EMR (electronic medical records) app for printing medication prescriptions and information leaflets, and in an industrial app for printing MSDS (material safety data sheet) documents for the client's products. We recently added this feature to an educational app, for outputting a multipage scrapbook, and in this blog post we'll detail the process.

Development Error-Free Python, Except Everywhere

Development

Error-Free Python, Except Everywhere

I’ve worked with many software developers who would rate themselves high on the scale of conscientiousness. And that’s a good thing, as codifying best practices and gaining order from chaos is what keeps us from driving ourselves or our co-workers mad. Some developers even consider themselves ‘engineers', minus the certifications or legal liability. I’d guess that is because it implies a sense of professionalism and discipline.

This mindset extends beyond writing organized, error-free code. We often seek predictability in our development environments and automated deployments. We know how to clean a dataset or properly encoded media files. But as orderly as we might be, our software is used in the real-world by people who may not be as analytical or thorough.

Community iBeacon Use Cases

Community

iBeacon Use Cases

Apple’s iBeacon micro-location technology is brimming with potential, but most people have yet to realize its value. I’ve enjoyed talking with our clients about how they can put iBeacon technology to work. I thought sharing a few use cases would help make more clear the potential power and benefit of iBeacons.

Development Client Admin for Django

Development

Client Admin for Django

Concentric Sky recently open sourced version 1.0 of Client Admin, the Django admin interface we use as a basis for most of the Django projects we're involved in. I'm going to review a bit of background on the built-in Django admin interface, then talk about what we've done with Client Admin and where we'd like to take it in the future.

Design Smile Global V2 @ UNESCO MLW

Design

Smile Global V2 @ UNESCO MLW

In January of 2014, we completed work for SMILE Consortium. SMILE, dedicated to bringing the best in pedagogical theory and implementation to classrooms around the world, was referred to Concentric Sky by Gooru Learning, another partner of Concentric Sky. SMILE focuses on improving education in developing countries through the synthesis of hardware and software. The SMILE Plug, a last-mile hardware solution, allows remote classrooms to project a local WiFi network. This network connects devices in a classroom to the knowledge archive stored on the Plug, opening up troves of information learners can use to craft and tinker with home-spun curriculums. Furthermore, the network serves as the transport vehicle for Smile Global.

Development

Development

A Custom Django Widget

Writing a custom admin widget can be a little tricky, due to the way that form data is handled. In order to minimize your trouble, I would highly recommend extending an existing widget if at all possible. It may save you a lot of trouble, since Django has a lot of custom labeling and logic to create, populate, validate, and submit admin forms. Once you have a functional baseline, any custom behavior can overwrite the defaults.

Community

Community

Libations Goes to Brew Fest

Local, and not so local, brewers are coming together tonight and through the weekend at the Lane Events Center for the 2014 KLCC Microbrew Festival. The annual festival, a fundraiser for KLCC, is a great local event and a once-a-year opportunity to sample a massive assortment of beers.

Community Introducing Libations

Community

Introducing Libations

Until recently, I often found myself at The Bier Stein sampling craft beers, liking some, disliking others, and hoping that I can remember which beers I liked and which beers I disliked. I also found myself in a similar situation with wine; do I like this varietal, do I like this winery, do I prefer the 2008 Pinot Noir or do I prefer the 2002?

Development

Development

Data Migrations with South and Django

The workflow for a data migration in Django with South migrations is relatively simple, and fairly well-documented. The workflow is simple enough to understand, but if you want to do anything more complicated than break your names into first_name and last_name, you'll need some more tools. Recently, I ran into a situation where I needed to condense two entire models into a single super-model that contained all fields from both of the originals.

Loading More