Vaidik Kapoor

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.


What is Cloud Computing?

I wrote this article while I was doing my undergrad for students who I was guiding while mentoring in Sytems and Network Programming lab course work. Every lab course would have a semester end assignment (or what we would call semester projects). Cloud Computing was one of the areas in which students could do their projects. But without any understanding of the area, students would decide to make their projects under Cloud Computing and end up doing things that were not even closely related to the area. Unfortunately, there was not much help from the faculty as well. This article was an attempt to explain the topic/area to the students of the lab that I was assisting.

« Older Posts in Archives