Small Business Work-From-Home Survival Guide

Everyone is now well aware of the COVID-19 virus outbreak and the need to reduce person-to-person exposure and self-quarantine. Larger companies have no doubt been busy implementing their business continuity plans to cope with the issue however many smaller companies don't have the resources available to prepare for these types of disaster scenarios ahead of time. As the reality of this situation starts to take hold, many businesses that were initially reluctant to make adjustments are now scrambling for options on how to continue to conduct business in an unexpected, and likely prolonged, work-from-home environment. Below I've put together some resources and tools that may be of use to those unfamiliar with these types of setups. [Continue reading...] Small Business Work-From-Home Survival Guide

High Availability RabbitMQ With Mirrored Queues

RabbitMQ is a robust message queue which features high message throughput, configurable acknowledgements, an intuitive management GUI and wide client library support. Written in Erlang, RabbitMQ has built a reputation for outstanding stability which makes it a popular choice as a core infrastructure system.

As you plan your overall messaging architecture a universal requirement is to minimize downtime from any single point of failure. Fortunately RabbitMQ comes equipped with built-in high-availability facilities, your tolerance for message loss will determine the which of the available HA options and approaches fits best. This post will mainly focus on setting up RabbitMQ mirrored queues which provide the highest protection against message loss. [Continue reading...] High Availability RabbitMQ With Mirrored Queues

Guaranteed Topic Delivery using ActiveMQ Virtual Destinations

The original JMS spec first arrived in 2001 with JSR 914. At the time several enterprise messaging systems were already widely available however each had their own unique features and mechanisms which required software that wanted to talk on a given messaging bus to be tightly-coupled to the specific messaging system implementation in use.

Given that "tightly-coupled" is something you want to avoid in your enterprise systems, there was a push to abstract away these implementation-specific system aspects from the messaging client code. To address this, the JMS was developed to define a standardized, consistent programming interface that would work across different JMS-provider implementations. [Continue reading...] Guaranteed Topic Delivery using ActiveMQ Virtual Destinations

Integrating ReCaptcha With Django-AllAuth

Automated bots creating fake accounts are a persistent problem targeting any user self-registration systems and django-allauth is no exception. The most common approach to discourage these bots is to incorporate a captcha on your signup page that adds a layer of validation, with Google's ReCaptcha being the industry-standard implementation. Integrating recaptcha into django-allauth can be tricky so in this post I'll cover the steps to add a captcha to the django-auth signup page. [Continue reading...] Integrating ReCaptcha With Django-AllAuth