2021
Hello — I'm Pankaj Parashar, a designer, developer, and writer from Mumbai, India.
Match Expressions in Python
↬ 8 mins
PEP 636 introduced a new match expression which effectively is a switch statement on steriods. It not only fills the void due to the lack of switch cases in Python but caters to advanced use cases that will supercharge your Python codebase. Its basically Guido's way of saying, "In you're face" to the other programming languages commmunity. ..more
What The Kafka!
↬ 16 mins
In this article, we'll explore some of the basic concepts of Apache Kafka with hand drawn illustrations and cover all the commonly used terminologies in relation to Kafka. ..more
2020
Passing the parcel
↬ 19 mins
In many ways Python's approach to handle references is quite different to other programming languages but I find it remarkably intuitive if you understand the idea of how everything in Python is an object and how objects are supposed to behave when passed as arguments to a function. ..more
The Walrus operator
↬ 9 mins
The walrus operator (:=) is perhaps the most controversial operator in the history of Python. Guido was so unhappy with the proposal that he even stepped down permanently from his BDFL role after he accepted this operator as part of PEP 572. ..more
Python Assert Methods
↬ 41 mins
This post is about using the different assert methods available in the unittest framework. It is however, has no resemblance with the python assert statements. ..more
Building a Blog with Next.js
↬ 0 mins
In this article, we will use Next.js to build a static blog framework with the design and structure inspired by Jekyll. I’ve always been a big fan of how Jekyll makes it easier for beginners to setup a blog and at the same time also provides a great degree of control over every aspect of the blog for the advanced users. ..more
What's new in Python 3.9
↬ 13 mins
Python 3.9 will release today. This article serves as a preview for the new features that will be introduced in the final release. ..more
Dark Mode
↬ 13 mins
It's not surprising that dark mode is the new fad in the town after Apple introduced the dark mode in MacOS. I decided to add a toggle button to switch to the dark theme on my blog. ..more
Look Ma! No Media Queries
↬ 5 mins
If you look under the hood of this website, you will not find any Media queries. That doesn't mean this website isn't responsive. It means it is practically possible to design modern websites with no media queries. ..more
Back to Top reboot
↬ 4 mins
The Back To Top button has been a holy grail along with the hamburger menu. Historically, jQuery was used to animate the jump from the bottom of the page to the top of the page. Is there a modern day equivalent? ..more
Lighthouse Audit Report
↬ 4 mins
I deployed the latest version of my website (v9.0) and was quite keen to run the Lighthouse Audit report. Admittedly this is such a small website that getting scores close to 100% is quite easy and not as daunting as a modern web app. ..more
Four years
↬ 60 mins
Its been four years since I last wrote an article on this blog. Even though the domain has been active, the content has been lying dormant for a while. To take a positive spin out of this ongoing pandemic, I promised myself to revive this blog and resurrect the old content for everyone's pleasure. ..more
2016
Mocking Python
↬ 21 mins
The Python mock library has largely been a black hole when it comes to efficiently unit testing a Python code. Hopefully, this article will help you understand the essential bits to bump up that test coverage. ..more
Beyond PEP8
↬ 1 mins
Raymond Hettinger is a Python Core developer and has an amazing knack of explaining concepts related to Python in a succint manner. His talk at PyCon US 2015, titled "Beyond PEP8" revolves around the hazards of the PEP 8 style guide and learn what really matters for creating beautiful intelligible code. ..more
A friendly Readme
↬ 1 mins
Rowan Manning writes about the importance of writing a friendly README for your project, which is perhaps in my opinion is the most underrated yet extremely important part of maintaining a project. ..more
Introducing Atomize IO
↬ 14 mins
Over the weekend, I pushed out a new update to the Atomize IO app and this post is all about, explaining how those numbers are calculated. ..more
How 11 lines of JavaScript broke the Internet?
↬ 17 mins
Roughly around 1430 hours Pacific time on Tuesday, March 22nd, 2016, @npmjs observed hundreds of failures per minute for missing dependencies requesting for the now-unpublished package, left-pad. ..more
The Apple FBI saga
↬ 7 mins
In the San Bernadino shooting, FBI found an iPhone 5C of one of the gunmen. The FBI has a search warrant to check the contents of the iPhone to build its case. ..more
PEP8 for Humans
↬ 1 mins
The PEP8 standard has been known to be mysteriously obscure for the beginners. Kenneth Reitz, the man behind "Requests - HTTP for Humans" has re-written the PEP8 style guide so that humans can read and understand it too! ..more
ES6 - 101
↬ 20 mins
ES6 known to many as Harmony or es-next or ES2015 (preferred way) is the latest specification in the JavaScript world. In this article we'll go through some of the improvements and enhancements that ES6 has to offer. ..more
Atomize IO
↬ 3 mins
Offline Web Applications
↬ 4 mins
Codelab IO
↬ 3 mins
2015
Building Custom Web Components with X-Tag
↬ 0 mins
After Google and Mozilla‘s solutions for web components, it is now Microsoft’s turn to enter this space with their public release of the X-Tag library. ..more
Password strength meter
↬ 0 mins
A number of major websites like Dropbox, Gmail and eBay, rely on some kind of an indicator to indicate the strength of the password to the user during registration. The indicator serves as a good reminder for the user as to the level of difficulty to crack the password ..more
Whats new in Python 3.5?
↬ 15 mins
Python 3.5 was released in the 2nd week of September, 2015 and brought a bunch of useful changes with it. In this article, I'll be discussing some of the enhancements to the language that I found extremely useful in the latest release. ..more
Introducing Pandas
↬ 15 mins
The intent of this post is to introduce you to the Pandas library by performing common tasks like reading, writing files and manipulating data. ..more
Optimizing website using GTmetrix
↬ 3 mins
Less vs Sass
↬ 3 mins
Magic methods
↬ 52 mins
Python's got a bunch of very useful magic methods that most of us do not use in day-to-day practice. This article is all about the dunder methods that can add magic to your python code. ..more
Atomizer Web
↬ 4 mins
The Diaper Pattern
↬ 3 mins
Migration to Polymer 1.0
↬ 0 mins
At the recently concluded Google IO 2015, Google released the much awaited 1.0 version of Polymer and declared it production-ready. For those of you who have been using the Polymer library while it was still in developer preview, this article will serve as a guide to migrate your existing application to the latest version of Polymer. ..more
Webucator - Python Training
↬ 4 mins
Building a Todo app with React.js
↬ 27 mins
This is my first attempt with React.js to build a basic Todo app. React has gained massive traction as a JavaScript library for building user interfaces largely because it is built by Facebook and their engineers have challenged the age-old best practice for separation of concerns. ..more
Best practices vs HTTP 2.0
↬ 11 mins
This post is all about the introduction of HTTP 2.0 into the mainstream by putting it side-to-side with some of the best practices that we have engineered and cultivated over the years. ..more
Credit Card Custom Element with Polymer
↬ 0 mins
In this article, we’ll be creating a custom element for a credit card payment form using the Polymer library. ..more
Scoping of index variables in Python
↬ 7 mins
The way scoping of index variables work in Python might surprise a few! This article is all about dealing with them by considering few scenarios and understanding the behavior. ..more
Mapping on iOS and Android
↬ 3 mins
Beautify CSS code using Codepen
↬ 5 mins
Few would argue that Codepen has been an indispensable tool for the Frontend developer community. Although, I have been using Codepen for a long time, only recently, I realised that it can also be used to beautify your compressed CSS code. ..more
CSS Selectors Level 4
↬ 17 mins
Not-so long ago I remember writing about CSS Selectors Level 3. Fast-forward 14 months, I'm now writing about the next specification of CSS that aims to improve and enhance CSS3 by introducing wide-range of new selectors and pseudo-classes. ..more
Connect Four
↬ 2 mins
2014
Serving from a cookieless domain?
↬ 5 mins
Shorter code is inconsiderate
↬ 4 mins
JavaScript Classes
↬ 26 mins
It shouldn't come as surprise that JavaScript doesn't have classes! However, the language is potent enough to match any OO-language and has the ammunition to functionally represent OOP concepts. ..more
Practical Aria Examples
↬ 2 mins
Introducing Pedantic Python
↬ 2 mins
Building a Custom Element with Polymer
↬ 0 mins
Custom elements allow developers to define their own HTML elements with custom tag names that closely resemble their design components. ..more
Pedantic Guide
↬ 1 mins
OpenType features in web browsers
↬ 3 mins
Introduction to Polymer
↬ 0 mins
Modern web applications are not only complex to design but also quite difficult to develop. Given the range of tools involved, amount of testing required, and the combination of libraries/frameworks used, the development process has become harder. As the application scales over a period of time, it becomes harder to maintain the code and make enhancements. ..more
Regular Expressions in Python
↬ 33 mins
Regular expressions are hard but this post is not going to make them appear harder. Instead it attempts to simplify the complications that surround the world of regex. ..more
Designers Guide to DPI
↬ 3 mins
Holy Grail of Script Loading
↬ 3 mins
Negative Margin, Positive Padding
↬ 13 mins
Neat little trick I learned from Joshua Hibbert's website, where he has effectively used this technique to design backgrounds stretching infinitely on either directions but the content respects the width. ..more
Random Colors in Sass
↬ 25 mins
Randomly generating numbers in Sass is easy using the random() function that was released in v3.3. Interestingly, we can extend this concept to randomly generate colors as well. ..more
Freelance writing Infographics
↬ 4 mins
Got featured as Geek of the Week
↬ 2 mins
Minimal business card design
↬ 3 mins
Reading Position Indicator
↬ 0 mins
Lately I’ve seen quite a few websites that have some kind of an indicator to display the current reading position (how much you have “read”, depending on how far you have scrolled down an article). Generally, such indicators are used on blog posts or long form articles and help readers understand how far they are from finishing the article. ..more
Modify pseudo element styles with JavaScript
↬ 12 mins
Quite often I run into situations where I need to modify the CSS styles of the pseudo elements dynamically. This post shows you different ways in which it can be done! ..more
The HeartBleed Bug
↬ 9 mins
The encryption flaw that punctured the heart of the Internet and has left almost two-thirds of the world's websites vulnerable to attack by hackers. ..more
Download the web with WGET
↬ 13 mins
Having recently discovered the power of wget command, I have written this article to remind myself the various ways we could use this command to download the world wide web. ..more
Mistakes in the Design of CSS by W3C
↬ 5 mins
S03W01 Codepen Rodeo - The Chili recipe
↬ 3 mins
RSS to Email via Sendicate
↬ 7 mins
Debuting today, is the new RSS-to-Email feature that I have enabled on my blog using Sendicate. Subscribe to get notified to read new articles on my blog. ..more
Github hosted comments
↬ 3 mins
Unix file permissions
↬ 62 mins
I have used Unix for the major portion of my professional career, yet I have always failed to understand the intricacies surrounding the file permissioning system. This article is an attempt to dig deep and augment my understanding about them. ..more
The Net Awards 2014
↬ 35 mins
It’s that time of the year again when the long list of nominees is declared for the Net Awards 2014. Read on to know who am I voting this summer for Net Awards 2014. ..more
Font-face saga of Chrome
↬ 5 mins
Apparently, Google Chrome has been infected with a wierd bug that causes web fonts to randomly disappear and fallback to the default system fonts. Initially, I thought I was the only one facing this problem, becuase either hovering the text or reloading the page solved the issue. ..more
Github pages with custom domain
↬ 16 mins
Setup custom domain on the user page and then all the project pages of Github repositories will automatically appear under the same url. ..more
Color Stack
↬ 2 mins
2013
Frontend build tool wishlist
↬ 31 mins
For quite a long time now, I have been toying around an idea of a perfect build tool to deploy front-end projects. This article is all about my wishlist from such a tool. ..more
CSS Selectors Level 3
↬ 2 mins
Effective shorthand CSS techniques
↬ 1 mins
The HTML5 meter element
↬ 0 mins
The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate. This is also known as a gauge. ..more
The HTML5 progress element
↬ 0 mins
As per the standard defined by W3C, the progress element represents the completion progress of a task. A progress element must have both a start tag (i.e. <progress>) and an end tag (i.e. </progress>), even though it looks like a replaced element (like an input). This is good though, as it helps with fallback content as we’ll cover later. ..more
Jack Morgan on Squared logo
↬ 3 mins
Why do I hate CSS preprocessors?
↬ 20 mins
Preprocessors solves a problem that doesn’t really exist! Continue reading my musings about using a pre-processing tool for a language like CSS. ..more
2012
Getting to grips with the HTML5 File API
↬ 0 mins
The HTML5 File API allows developers to interact with the local filesystem on the client-side. Using these APIs, developers can build more robust web applications that work seamlessly both online and offline. This tutorial demonstrates the basic usage of these APIs to do common tasks like reading the properties and content of files. ..more
Dissecting HTML5 Boilerplate 4
↬ 0 mins
If you are looking for a perfect HTML5 template to kickstart your new project that should be fast, robust and cross-browser compatible, you do not have to look beyond the HTML5 Boilerplate. The world’s most popular frontend template is a result of the combined knowledge and effort of more than 100 developers, making it one of the most popular projects on GitHub. But before you skip this article to press the download button, you need to understand; what makes this framework so popular? ..more