Part 1 of the series on Apache Pulsar focusing on development setup and testing using Python and Rust.

Apache Pulsar Architecture


Apache Pulsar is a cloud-native, distributed messaging and streaming platform. In this article, I am going to focus on setting up a local development environment using Docker.

Client libraries for Apache Pulsar are available natively for Java, Go, Python, C++, Node.js, WebSocket, and C#. In this article, let’s try with Python and a 3rd party Rust library.

Pulsar and Pulsar Manager

Let’s get started by setting up Pulsar and Pulsar Manager.

Pulsar Manager is a web-based GUI management and monitoring tool that helps administrators and users…

Vim/Neovim plugins for writers.

Distraction-Free Writing


In my previous article, I talked about Vim/Neovim plugins used to manage notes and to-do lists. Vim/Neovim, being a text editor, can also be a very efficient tool for writing. In this article, let’s explore plugins that writers can use to help them write books, documentation, etc.

Let’s start with some of the popular plugins.

goyo.vim + limelight.vim = Zen Mode

These 2 plugins normally go hand-in-hand. Both are popular options when people talk about distraction-free writing.

Use Visual Studio Code for diagramming and presentation.

VSCode with


Besides writing code, Visual Studio Code, with the wide range of available extensions, is also a great tool for writing, diagramming, and presentation.

In my previous articles, I described using Vim/Neovim and Emacs for presentation, documentation, and notes taking. In this article, let’s explore using VSCode for diagramming and presentation. (formerly

This is definitely one of my favorite diagramming tools. diagrams.netis a free browser-based end-user diagramming software.

Serve machine learning model using GraphQL subscription.

Photo by h heyerlein on Unsplash


In previous articles, I have used FastAPI + WebSocket + React to serve machine learning models. As machine learning models getting more complicated, the time to come out with predictions also takes longer. Using WebSocket provides an asynchronous method for the server to update the client with the prediction when the evaluation is completed.

GraphQL Subscription is a feature that allows a server to send data to its clients when a specific event happens and is usually implemented with WebSocket.

In this article, let’s explore using GraphQL to serve machine learning models. …

Navigate the World Wide Web using keyboard-driven web browsers or add-ons with Vim key bindings.

qutebrowser Key Bindings


As developers using Vim/Neovim, you definitely get used to a mouseless development workflow. In my previous article, I talked about some niche Neovim plugins, including Firenvim which allows you to embed Neovim in a browser. In this article, let’s explore keyboard-driven web browsing using the familiar Vim key bindings.

Web Browsers

Let’s started by going through browsers that support keyboard-driven web browsing natively.

Perhaps this is one of the most popular options for developers. qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python…

Air traffic visualization using NetworkX and Cartopy — Pre-pandemic versus Current.

Air Traffic Visualization


With the current pandemic, the aviation and tourism industries are badly impacted, with still no sign of improvement. In this article, let’s use the air traffic data to compare the pre-pandemic air traffic versus current.

I am going to use the following libraries to visualize the data.

  • NetworkX which is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
  • Cartopy which is a Python package designed for geospatial data processing in order to produce maps and other geospatial data analyses.

Live in Emacs using Emacs Application Framework (EAF).

PDF Viewer in Emacs Buffer


“Emacs has a text editor” and the concept of “Living in Emacs” are some of the strong reasons that developers use Emacs. However, using Emacs as an operating system may not be easy for most developers. Many of the packages which make living in Emacs possible work well in a Linux environment but the functionalities will be reduced for non-Linux OS, e.g. exwm on macOS.

In this article let’s explore Emacs Application Framework (EAF) which is a GUI application framework for Emacs. It works for Linux, Windows, and macOS. …

Using Vim or Neovim for presentation.

Vim/Neovim Presentation


In the previous article, I talked about using Emacs for presentation. Specifically for Emacs, we can use Org mode for keeping notes, maintaining to-do lists, planning projects, authoring documents, computational notebooks, literate programming, and more.

In this article, let’s explore the options we have for Vim/Neovim.


There are quite a number of plugins developed for Vim/Neovim for presentation purposes. However, not many are maintained and updated at this point of writing.

presenting.vim is a Vim plugin that turns your markup into presentable slides in Vim/Neovim. For most scenarios, this plugin should be more than…

Develop a progressive web application using React.

Progressive Web Application


In this article, let’s develop a progressive web application using React.

From Wikipedia,

A progressive web application (PWA) is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser, including both desktop and mobile devices.


Let’ start by creating a progressive web application using create-react-app and the PWA template.

npx create-react-app react-pwa-app --template cra-template-pwa

I use the Javascript template. For Typescript, use cra-template-pwa-typescript.

I am going to leverage the sample code…

org-reveal Presentation


In the previous article, I talked about writing technical documentation using Emacs. In this article let’s explore how to use Emacs for presentation.

In Emacs, there are multiple packages available for doing presentations.


Let’s begin by setting up the document template. Press C-c C-e and you should see the following screen.


Programmer and occasional blogger.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store