Here the ARCsoft team write about things we’ve learned or are excited about! Each member contributes an article periodically, both as part of our mission to contribute to the community as well as to grow personally and professionally.
Recently, Karan and I had the opportunity to work on a passion project, not related to the work we do with ARCsoft. Doing so gave us the chance to use some of the more mainstream web development tools that we wouldn’t typically use in our day-to-day work. This experience was both enriching and fulfilling, so I wanted to share some of the key differences we noticed between the tools we use at ARCsoft and the more mainstream ones used in the industry. Let’s dive in!
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.
Django offers many caching strategies, but most notably supports in-memory caches like Memcached and Redis, or database-centric caching solutions interfacing directly with your pre-defined backend. However, there are a couple of considerations you might want to take into account when choosing a caching solution. Below, I will give an analysis of my findings after implementing both caching with Redis and PostgreSQL/SQLite.
Are you eager to add a touch of magic to your Django web applications? Well, look no further than Django signals! These little messengers enable different components of your app to communicate seamlessly, without the hassle of tight coupling. Let’s dive into how Django signals work and how they can elevate your development experience.
In our previous exploration of Leaflet mapping, we delved into the basics of creating a dynamic map, adding markers to it, and also clustering the marker groups. Building upon that foundation, let’s elevate our map’s visual appeal and informational depth by incorporating custom regions with distinct colours. This step-by-step guide will walk us through the process, from obtaining GeoJSON data to adding regions to the map and interactive styling to our regions.
As your test suite grows, so does the time it takes to run it. This can be a major bottleneck in your development process, especially if you’re following a TDD approach like we are. In this post, I’ll give a brief overview of how parallelization can be used to reduce testing times, and how it can beimplemented in local and CI environments, as well as the many headache-inducing issues that can arise from it. Grab a bottle of Tylenol, and a glass of water, and let’s dive in! 🤕
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.
I’m definitely a fan of list comprehensions in Python (as well as dict comprehensions), but I have some pretty specific ideas about how they should be formatted to be readable. Dict comprehensions are more complex, but even the much simpler list comprehensions can be abused, or misleading even when used well.