Tailwind CSS is not Good Enough 22 Nov 2022 Bangalore Tailwind CSS is a popular CSS framework, claims to be highly productive and many good engineers that I know love it. From the time I encountered it, i had a strange feeling that this is not a right approach. I wasn’t sure what it was, but I had that strong feeling. Now, I’ve figured out what is missing. Struture and Interpretation of Computer…
Good Bye FOSS United! 31 Mar 2022 Bangalore I have joined FOSS United Foundation in the beginning of last year. During this time, I’ve focussed most of my efforts on building Mon School , an online platform for learning programming, created a new course The Joy of Programming , supported a couple of new authors in creating courses on the platform and ran a course with large cohort of 3000+…
Deploying a Static Website to IPFS 21 Jan 2021 Bangalore This is a quick tutorial to deploy your static website to IPFS from a unix machine (Linux/Mac). Make sure you have installed IPFS Desktop or IPFS command-line installed to follow this. Brave browser recently added support for IPFS , that allows users to access ipfs://... urls, making it easier to access the content on IPFS. Introduction to…
Introducing Archive Pages 15 November 2020 Bangalore Today, in memory of Aaron Swartz , I’m introducing Archive Pages , a little tool to let you host websites for your archives on the Internet Archive. Internet Archive is wonderful institution. It more-or-less provides infinite storage and infinite bandwidth for public data forever for free. However, it is hard to host a website on the Internet…
Python is Infinitely Beautiful! 11 July 2019 Bangalore Infinity can be quite elegantly handled in Python! Let me demonstrate it by solving the string and week primes problem mentioned in Infinite work is less work by Damian Conway. The Problem Write a script to generate first 10 strong and weak prime numbers. A prime p[n] is “strong” if it’s larger than the average of its two neighbouring primes…
Designing RESTful APIs 03 May 2018 Visakhapatnam APIs are all around. Everyone talks about RESTful APIs, but what does “RESTful” really mean? Let us try to understand that using a simple example. Let us build an Address Book API. Address Book API - the naive version What are all the actions that you may want to do with an address book API? list all entries in the address book add a new entry…
Python Decorators Demystified 19 October 2016 Visakhapatnam This articile was published earlier on Medium . Decorators are one of the elegant features of the Python programming language. They are heavily used in modern libraries and frameworks. The decorators are very good tools to encapsulate lot of implementation details and leaving out very simple interface. Let’s look at the following example:…
Improving the experience of remote trainings 13 November 2015 Visakhapatnam I’ve been doing tech trainings (mostly Python) from quite some time, but it is only recently that I got a chance to explore remote trainings. In the traditional remote training setup, the instructor presents via WebEx/Skype/Hangout and the participants watch it. This experience is closer to watching a video than an…
Good Bye Internet Archive 31 December 2014 Visakhapatnam Today is my last working day at the Internet Archive. Its been close to 8 years since I joined the Archive. I’ve enjoyed and learnt great deal while working there. Its been quite time some since I’ve taken off from work for a long stretch and had time for myself. I’ve been longing for such a break and I’m very happy that day has come. Even…
Understanding a phishing attack 25 February 2013 Bangalore I opened my mailbox today and found a lot of messages from friends saying that they got a twitter DM (Direct Message) from me, with a phishing link. I opened twitter and looked at sent messages and found a lot of them but none of them were sent by me. I was sure that my twitter accont was compromised. Understanding the phishing attack One…
How to improve IRCTC 12 December 2012 Bangalore www.irctc.co.in is the only available option for people to book train tickets online in India. Even though there are other good websites like cleartrip.com , they are not allowed to book tickets until 12 noon. The www.irctc.co.in website is poorly engineered and can’t handle the load it recieves, esp. around 10:00AM when the tatkal tickets start. The…
Python Training Course 03 July 2012 Bangalore I’m conducting a two day training course on Python programming on 4th and 5th August at The Center for Internet and Society. For more details, please visit the training page . Thanks to The Center for Internet and Society for their support.
Using iterators and generators in multi-threaded applications 24 May 2012 Bangalore Python iterators and generators have almost the same behavior, but there are subtle differences, especially when the iterator/generator is used in a multi-threaded application. Here is an example to demonstrate that behavior. import threading def count(): i = 0 while True: i += 1 yield i class Counter: def…
Python 101 - One-day Python Training Course 05 May 2012 Bangalore I’m offering a one-day training course on Python programming on Sunday, June 03, 2012. This will cover the basics of Python programming language, enough to get started on small projects. No prior Python experience is expected. Experience with programming in some language will be helpful. This will be a hands on session. The…
How to write a web framework in Python 28 March 2012 Bangalore I want to write a small web app today. Don’t you think using a web framework is an overkill for a hello world app? I think a simple wsgi app will be good enough. def application(environ, start_response): """Simplest possible application object""" status = '200 OK' response_headers = [('Content-type', 'text/plain')]…
Inside Javascript Objects 17 Aug 2011 Bangalore Javascript is an interesting programming language. Unlike traditional programming languages, it has a prototype-based object system. Here is my attempt to explain the nut and bolts of Javascript language and how its objects work. Objects There are many ways to create an object, the simplest form is this: p = {x:1, y:2}; The properties of the object…
JavaScript templating with web.py 05 Mar 2010 Visakhapatnam I’ve been looking for a good JavaScript templating library for so long. I was using a variant of JavaScript Micro-Templating for my work and I wasn’t happy with it. Most often, I ended up in duplication because of writing a Python template and a JavaScript template for doing the same thing. I started exploring to see if it is possible to…