Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol, MQ Telemetry Transport, and other protocols.
In this tutorial, we are going to create a minimal RabbitMQ client that allows other packages consume or publish messages from or to RabbitMQ. The final source code can be found on my GitHub.
Goalready. If not, check here.
You can find problems and bugs in every living software. As we always say, there is no complete code and one must always try to refactor and improve.
Every now and then I’ve come across a software that is working as expected and noticed that not much effort is put into it’s soul to be clean and open for extensions.
So what would you do when there’s a new feature and a change in the code might break the old functionality completely? As Martin Fowler said in Refactoring: Improving the Design of Existing Code
When you find you have to…
Rust is a multi-paradigm programming language focused on performance and safety, especially safe concurrency. Rust is syntactically similar to C++, but provides memory safety without using garbage collection
In this tutorial, we are creating an API that will allow users to upload and download files from a server. The final source code can be found on GitHub.
We’re going to use actix-web framework to handle our REST APIs. Actix web is a simple, pragmatic and extremely fast web framework for Rust.
Rustalready. If not, check here.
What is semantic versioning anyway? Semantic versioning (also referred as SemVer) is a versioning system to use when developing/releasing a software. Semantic versioning offers a universal way of versioning the software development projects and this is the best way to track what is going on with the software as new plugins, addons, libraries and extensions are being built almost everyday.
Given a version number
Major.Minor.Patch, increment the:
Majorversion when you make incompatible API changes,
Minorversion when you add functionality in a backwards compatible manner, and
Patchversion when you make backwards compatible bug fixes.
Additional labels for pre-release…
Lambda expressions in Python and other programming languages have their roots in lambda calculus, a model of computation invented by Alonzo Church. Alonzo Church formalized lambda calculus, a language based on pure abstraction, in the 1930s. Lambda functions are also referred to as lambda abstractions, a direct reference to the abstraction model of Alonzo Church’s original creation.
Functional languages directly inherit the lambda calculus philosophy, adopting a declarative approach of programming that emphasizes abstraction, data transformation, composition, and purity (no state and no side effects). While python inherently is not a functional programming language, it’s adopted some functional concepts early…
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
In this tutorial, we are creating an API that will allow users to upload and download file from a server. The final source code can be found on GitHub.
We’re going to use the Gin web framework to handle our REST APIs. Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance.
Erlang’s key organizational concept is the process, an independent component (built from functions) that sends and receives messages. Programs are deployed as sets of processes that communicate with each other. Erlang concurrency is based on processes. These are small, self-contained virtual machines that can evaluate Erlang functions.
Tuples and lists are powerful tools for creating complex data structures, but there are two key pieces missing when you use them. First, tuples are relatively anonymous structures. Relying on a specific order and number of components in tuples can create major maintenance headaches. This also means that tuples don’t let you refer to contents by name: you always have to know their location. Second, despite Erlang’s general preference for avoiding side effects, storing and sharing data is a fundamental side effect needed for a wide variety of projects.
Referring to data by its place in a list or tuple…
Dependency management is a technique for declaring, resolving and using dependencies required by the project in an automated fashion. There are several different approaches to dealing with dependencies in Python. In this article, I’ll show you how manage your project’s dependencies using Poetry. Poetry is a tool for dependency management and packaging in Python. It allows you to declare dependencies of your project and it will manage them for you.
Poetry requires Python 2.7 or 3.4+. It is multi-platform and the goal is to make it work equally well on different operating systems.
Poetry provides a custom installer that will…
Django comes with a variety of command line utilities that can be invoked using
manage.py script. In addition to all existing commands (like this command to create a new app:
python manage.py startapp custom) you can also add your own commands. These custom management commands can be very useful when you need to interact with your application via command line using a terminal and it can also serve as an interface to execute recurring jobs.
Each application in django can have their own commands. you can add new commands by creating a management/commands directory inside an app directory. Django will register…
Software engineer, writer and something of a dreamer