Regardless of language or environment, there are core principles we follow in software development, to encourage readability, maintainability, and joy. Each member of the team is responsible for adhering to these principles and guidelines and to assist and encourage others in doing so.
Where the Software Development Guidelines are about the practice of developing software, this document is about details of implementation in all or specific environments.
One of the most powerful features that come with Django is the ORM
(object-relational mapping). It allows you to easily fetch data from the
database by writing intuitive Python code. However, if you don’t know (maybe
read a different article if you do), there is more to
Django’s ORM than the simple objects.get
and objects.filter
. This article
aims to take your ability to use the Django’s ORM to the next level.
It can take a while to learn a team’s culture, and there’s no quick solve for that: it’s the culmination not only of the group’s shared experience but the years of lived experience each individual brings in, and it evolves over time and is always unique. Expected practice, on the other hand, can and should be clarified–and if your team culture has “inclusion” as a core tenet, then setting clear expectations is essential to keeping everybody on the same page.
At ARCsoft we have begun building a repository of custom Helpers libraries that will be included in future projects. First on the docket was looking at several giant UI test code blocks in Django. These often span dozens of modules and thousands of lines of code. Quite common throughout was the use of repetitive and non-descriptive JsonResponse
calls. Let’s walk through how we compartmentalized these calls into a more cohesive set of custom JsonResponse
classes and how we added them to our repository of custom methods that we will use here at ARCsoft. Along the way we will document the setup of the Helpers repository and the essential inclusions to a project for the package to be able to be used, imported, and published.
In academia, it is quite common to collect data in spreadsheets due to its simplicity and ease of use. Managing a full-fledged database is boss-level stuff in comparison. However, a database is necessary for making that data available via the web, so we're having to load spreadsheet data into databases in multiple projects. Here's how we started to build a generic solution we can use for multiple projects.
This article assumes readers have a basic knowledge about Kubernetes, as Helm and Kubernetes are closely related. Reading Introduction to Kubernetes is highly recommended prior to reading this article.
Authentication and authorization are two vital concepts in web development. You don’t want somebody to break into your house, view your private rooms, rearrange furnitures, or take away your stuffs. The same thing applies for your web app. You don’t want a random person to see private contents, make changes or delete important information. Fortunately, Django provides developer an easy way to implement authentication and authorization out of the box.
This article is meant for total newbies (such as myself a month ago) in Kubernetes. I will try to explain Kubernetes and some of its basic concepts in the simplest terms possible. However, we assume that you already know some basics about Docker containers. If you don’t, I recommend checking out our Docker basics article.
OpenStack is open source software for running cloud services. Recently I worked on a Python program that would scan ARC cloud instances and determine which instances have been running longer than their allotted time. This mostly used the compute API which is a proxy for OpenStack’s Nova service.