Vaidik Kapoor

Vagrant for Development in a Service Oriented Architecture (SOA)

Vagrant is an amazing tool for developing throw-away dev environment that closely resembles production. It greatly reduces turn around times and effort on setting up your development environment. It gives you the flexibility to experiment around, play with new experimental stuff and if you mess it up, then you can easily destroy and quickly re-create another one.

You may find a ton of projects on Github that make use of Vagrant for development. However, they use Vagrant for development of the project alone. That may work fine with one off projects or open-source projects. In a real world scenario where you have more than one projects working together, setting them up locally may be difficult. This post presents a way you can use Vagrant in an Service Oriented Architecture where it may be possible for you to use the same Vagrant setup with multiple projects.


Understanding Non Blocking I/O with Python - Part 1

As someone working with the web stack and languages like Python or Ruby, there are high chances that you have heard of Non Blocking I/O. You might as well be using it with some of your projects or have tried your hands with libraries like Gevent or Tornado. But how do these libraries make network requests non blocking. This is something that I had always wondered when I tried Gevent. I just couldn’t get my head around the fact that when you send something to a socket or receive from it, it will block execution for the at least the amount of time it takes to transmit the data. So how do I make it possible to execute something else while I/O is happening? So I started digging in, trying to understand how to make some network request non blocking in Python.

With this article series, I will try to introduce the topic and go in as much detail as possible.


Incoming - JSON Validation Framework for Python

Incoming is a JSON validation framework for Python. Validation of payloads sent over HTTP requests has always been a mess. A bunch of if-then-else further branching into more if-then-else blocks is common and over time becomes extremely difficult to manage. Since the use of JSON for HTTP payload is a common practice, it only made sense to solve the problem of payload validation for payloads in JSON format. Incoming is an opinionated JSON validation framework which does not bind to any kind of web frameworks. It just tries to make JSON validation sensible and logical by giving it structure and making it possible to re-use validation code across your application.

« Older Posts in Archives