Blog Channels

Development Implement iAd and Let Layout Constraints Do The Lifting


Implement iAd and Let Layout Constraints Do The Lifting

Apple promotes iAd as an easy way for developers to monetize their apps.  Looking at the official iAd Programming guide, Apple makes it evident that little is required from the developer in the code-writing department to implement this framework.  Examining the example code, however, you may be surprised to find code that is written to support iOS versions as low as 5.0.

90% of devices have at least iOS 7.0 installed, so it would be nice to take advantage of Auto Layout.  If yo...

Development Back-End List Filtering with Django


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...



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


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


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


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


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.



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.



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


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?

Loading More