Systems | Development | Analytics | API | Testing

Building a Distributed Rate Limiter in Elixir with HashRing

Communication between processes in the Erlang VM happens through message passing. In fact, all communication across processes occurs through the same mechanism. All you need is an address and you can send a message to it, with the lower level building blocks being send and receive. This is true even if that address is on another node in a cluster of Elixir nodes that are aware of each other. In fact, it works in exactly the same way.

Python argparse: Definition, How to Use, and Best Practices

Command-line interfaces (CLIs) have been an essential part of computing for decades. However, creating a CLI from scratch can be tedious. Developers need to handle inputs, validate arguments, and provide user-friendly error messages, which can quickly become complex. This is where the Python argparse module comes in.

OOP Concept for Beginners: What Is Inheritance?

Object-oriented programming is a programming model that designs software around objects and data, as opposed to procedures and logic. Generally, object-oriented programming delivers more reusable, maintainable, and scalable code. This is in no small part due to its core concepts like inheritance, abstraction, and encapsulation. As we explained before, encapsulation involves combining data and the methods that operate on it into one unit, usually a class.

Why Are Coding Standards Important for Medical Robotics Engineering?

Advances in medical robotics and healthcare technology — enabled by the Internet of Medical Things (IoMT), Machine Learning (ML), and Artificial Intelligence (AI) — mean that we are already seeing less invasive procedures, more accurate diagnoses, and more personalized treatment options for patients. But these innovations depend on software which brings increased safety and security risks.

Android Pickers Explained: Choosing Dates, Times, and Files in Your App

Pickers enable Android developers to minimize error-free input and optimize everyday features of their apps, such as date selection, delivering crucial gains in user experience. Users can validate input data by pressing a single button, and ensure structured input without any typing errors (in fact users don’t need to type an input at all). And we can customize the picker to our specific needs, creating better UI for our users.

Onboarding new software on a deadline: Microsoft Visual Studio App Center shutdown

With just two months to go until the deprecation date for Microsoft Visual Studio App Center, it might feel like there’s a mountain to climb. However, with a clear plan and the right resources (spoiler alert: free templates here or at the end of this post), you can turn this challenge into a success story. Let’s get going.

Get interactive realtime experiences back on the roadmap with Ably's server-side message batching

High-scale, high-frequency messaging and burst activity can lead to significant costs and performance challenges for realtime applications. Trying to solve for these spikes places additional cognitive load on development teams, slowing down development times. And because of this, all too often, developers have to shelve adding new features to their product. To solve this issue, we've introduced a powerful and simple-to-use cost optimization feature into Ably Pub/Sub: server-side message batching.