Posts

Showing posts from 2020

A thought provoking article about a bet on American Malls heading towards a crash.

It's a good thing I didn't just blindly close the hundreds of tabs that I have open because I just read this beautiful, amazing and thought-provoking piece by Esquire (which has some amazing long reads BTW) on a wall street hedge fund betting that american shopping malls were going towards a crash . It was amazing and fun to read but at the same time there's a deeper and sadder issue of the impact this has on the people. I'm not talking about the people impact of the bet itself but the fact that a bet can be made in the first place. Two paragraphs nicely sum up the issue. “A well-documented historical pattern is that fraud thrives in boom periods and is revealed in busts,” the university researchers wrote, adding that end investors were unaware of this hidden risk, a deception akin to buying a Ferrari secretly outfitted with a rusted-out Kia engine. It could be argued that CMBS had been a magic trick all along, with big banks one step ahead, luring investors to pick a c...

I love the Big Bang AR app by CERN

A month or so back I remember coming across the Big Bang AR app by CERN . I ended up searching for and installing a bunch (A BUNCH) of different apps made by CERN and NASA. I am not too happy with the HiLumi3D app ( on the app store and on the play store ). It was slightly buggy and not exactly information but the Big Bang AR app blew my mind. It was made in collaboration with Google so understandbly, the app itself works and looks much better than the HiLumi3D app. I also loved the content itself in the app, along with the small amount of additional reading. I'm in awe of what people are doing with AR for science education and communication. One day, I hope to be able to join the party.

Getting the pegen examples/visualization to work.

Image
In the previous blogpost, I linked to the code that Guido used to visualize the PEG parser now used in CPython 3.9. The code lives in the GitHub repository - pegen . I use Windows as my daily driver and right off the bat, this is a problem because the visualizer uses the curses standard library package - which only works on Linux/Mac OS by default. There are apparently Python packages I can install to get it to work on Windows but I didn't try that approach. A brief search on PyPI led me to the windows-curses package, which might be the solution. I switched to the Ubuntu WSL I have setup on my Windows machine. Once on Ubuntu, I needed to install Python. Specifically, I wanted to install Python 3.9. For that, I had to add the deadsnakes ppa to the apt repository list. Once I did that, I needed to install Python3.9-dev and Python3.9-venv. venv to be able to create a virtual environment and install the necessary packages. Python3.9-dev because one of the requirements needed the de...

Trying to understand the new Python* (*grammer)

Image
For reasons I don't fully understand, I started reading the PEP 617 -- New PEG parser for CPython today morning. Note that the PEP is accepted and the latest Python release (Python v 3.9.0) uses the new PEG parser by default and in Python 3.10, the old LL(1) parser will be removed. I remember looking at the Python 2.7 grammer when I started using CPython professionally four years back. None of it made sense whatsoever to me so I mostly ignored the Language Reference section of the Python docs. To cut the story short, see the difference in CPython grammer for yourselves - grammer for version 3.8 and grammer for version 3.9 . I ended up searching for, and coming across the above linked talk by Guido because I wanted to see if anyone had already put together a talk around the new PEG based parser for CPython. I also came across this interesting looking series of blogposts by Guido regarding the work he did to implement the PEG parser for CPython. I say interesting looking, not in...

You need some Matt Levine in your daily life.

I just read this profile of Matt Levine on the NYTimes . You need Matt Levine in your daily life . That's all really.

[YouTube] Rethinking the Developer Career Path by Randall Koutnik

Image
I keep rewatching this talk by Randall Koutnik on Developer Career Path every so often, just to reevaluate my own developer career. I think the "Solution Implementer", "Problem Solver", "Problem Finder" career path that Randall talks about makes a lot of sense, especially in the career path I am currently on. A highlight of his talk is the discussion around shapes and sizes of problems and that the developer career path should ideally expose the developer to a large number of shapes and progressively increasing sizes of problems. Thinking about my own career path in terms of shapes and sizes of problems makes me realize that there are still a lot a lot of shapes that I haven't worked with. I think I'm a "Problem Solver" at this point, while also doing a bunch of "Solution Implementer" work but I'm far from being a good "Problem Finder".  

You need to go read all three volumes of March right now.

Image
I came across March : Book Two in early 2020 at the local library. I had heard of this autobiographical comic book documenting the early life of the United States Congressman and civil rights leader John Lewis and I was pretty excited about being able to get my hands on the comic book. But I couldn't find the other two volumes at the time so I settled for reading only the second book. The only introduction to the civil rights movement in the United States I had prior to this book was Leadership by Doris Kearns Goodwin and this book introduced me to the darker side of the movement. I was hoping to come back to this series and read the First and Third books but they just slipped my mind. I was pleasently surprised a couple of days back when I came across the First and Third books as I was browsing through the eBooks available in the local library. The series as a whole is a must read for every man, woman and child alive in my opinion. And I don't just mean citizens of the US...

And you thought flying cars were a new thing.

Image
    I love Chain Bear for my F1 news .

[YouTube] How Kurzgesagt and CGP Grey videos are made.

Image
Kurzgesagt and CGP Grey are two of my favorite YouTube channels and I watched this video from Kurzgesagt yesterday night, which reminded me of the older CGP Grey video. I love knowing what goes into producing the amazing content on these channels. The CGP Grey video is especially interesting because he talks about the content production process in the context of understanding how a mistake was made and dissects where all in the production process they could have/should have noticed and fixed the error. Wait a second. This actually just reminded me of another favorite channel of mine, Every Frame a Painting .

Notes on profiling Python applications

Image
I've been watching a looooot of Scott Hanselman lately and in one of his videos, he googles for the sentence "penny pinching in the cloud" and a bunch of his articles are the top hits. He talks about how he blogs about things as a way of maintaining notes for his future self. My articles might not be top hits on google for any sentence but I can still find them in my blogpost history. Over the weekend, I spent a little bit of time profiling a Python GUI application. It's been a while since I profiled Python code and every single time I forget how to set things up and get it working. There are the usual Python standard library modules cProfile and pstats but there are a lot of powerful visualisation techniques that help you better understand the profiling results. First of all, when you are profiling a GUI application (or profiling anything for that matter) in Python, the first question to answer is what exactly are you trying to measure? In my case, what I was real...

The Three Utilities puzzle with 3Blue1Brown

Image
Start watching the video but once you understand the puzzle, pause the video and try solving the puzzle by yourself. I figured out the key insight to solve the puzzle after playing around for a few minutes and I am on a high right now :D Also, if you don't already follow and subscribe to 3Blue1Brown, you really _really_ should.

How I would like to be managed - Part I

An alternative title for this post is : "What you should expect from a good engineering manager?" I started reading The Manager's Path and the second paragraph in the first chapter poses this question. I think it was a rhetorical question and not one the author asked to provoke thought/discussion. But here we are. I abruptly put the book down (well, the tablet) and started writing. Leadership and/or mentorship are always on the back of my mind, mainly because I want to lead one day and I would like to be good at it. I also want to constantly grow and I would like to be mentored. One day, maybe I'll be good enough that I will be able to mentor others. Aside : There is a separate discussion to be had about whether your technical manager should also be your technical mentor but let's leave that aside for now. Given that, here is how I would like to be managed (as a software developer): Give me context about the team and/or the company, Give me an introduction to the...

Some of Pieter Hinjens' writing

  I'm a traitor to my "race" and gender and culture. These are boxes to contain and divide us. ... The debt of privilege is massive, yet it is like any debt. You repay little by little, as you can. You never forget it, and you never justify it. From  Five Years, Five Wishes . Over time I learned that if you chat with a stranger, in the course of any kind of interaction (like buying a hot dog, or groceries) they'll chat back with a beam of pleasure. Slowly, like a creeping addiction to coffee, this became my drug of choice. In time it became the basis, and then the goal of my work: to go to strange places and meet new people. I love the conferences because you don't need an excuse. Everyone there wants, and expects, to talk. I rarely talk about technical issues. Read the code, if you want that. From A Protocol for Dying .    This is how it happens: we construct, and then when we reach a plateau, the wolves come along, destroy what we make, and liberate us to go fo...

Which monkey are you?

I have known about Chaos Monkey for a while now. If you didn't know, Chaos Monkey is a tool that Netflix developed and uses to test the resilience of it's network. Chaos and Monkey seems redundant because I don't think a Monkey's behavior in an engineering environment can be predicted but yeah, the idea is to make unpredictable changes to the software engineering environment of the application to see what happens. And more importantly, to ensure that the software is immune to such chaotic events. What I didn't know until now is the Simian Army . Latency Monkey Conformity Monkey Doctor Monkey Janitor Monkey 10-18 Monkey Chaos Gorilla Finally, "Chaos Monkey" is obviously obviously a genus with various subspecies   Simius Mortus Simius Quies Simius Amputa Simius Cogitarius Simius Plenus Simius Delirius Simius Desertus Simius Nonomenius Simius Noneccius Simius Amnesius Simius Nodynamus Simius Politicus Simius Tardus Simius Perditus Simius is Latin for ape, m...

An Editorial article from the iMatix Corporation webpage.

I spent a good chunk of time a couple of weeks back looking at ZeroMQ and PyZMQ specifically. While I was going through the documentation for the project, I came across the webpage - http://www.imatix.com/ . Not matrix. matix. These are the people who created and opensourced the ZeroMQ project. If you tried clicking on the URL, you should have gotten a "can't reach this page" kinda message. Using the Internet Archives' Wayback Machine , I was able to find the last time the URL directed to a working webpage - https://web.archive.org/web/20190620093511/http://www.imatix.com/ . Side note : That's a very interesting/intriguing webpage because from the looks of it, the webpage is displaying Google Slides. Going further back, I noticed an Editorial link on the webpage - https://web.archive.org/web/20051125213101/http://www.imatix.com/edito.htm . That editorial page has been open on my browser for almost two weeks now and I am happy I finally read it instead of blindly...

I used regex in a meaningful way for the first time yesterday.

Regex is short for Regular Expressions and are used to define search/match patterns in programming. For example, Python has the re standard library module which can be used to construct regular expressions and use them to match/search strings. I have known of regular expressions for a while now but I have never actually used them in any meaningful way. Until yesterday. I've been working on trivial contributions to open source Python projects. One of the trivial changes was updating how the super builtin function is called. On Python 3, arguments are optional. On Python 2, arguments have to be passed and specifically, super(ClassName, self) is how the builtin function needs to be called. For Python packages that are completely dropping support for Python 2, they can get rid of the old way of calling super . But, manually finding and updating the usage is a little tedious, especially for large codebases which heavily rely on objects and inheritance. This is the perfect place wher...

async/await in Python

Image
 Concurrency is not something I have much experience with and all of the new async/await/asyncio stuff in Python was kinda giving me headaches. So, when the humble bundle I bought had the book Using Asyncio in Python , I was excited. I tried reading it on a weekend a couple of weeks back and I got a headache. I picked it up again last weekend and worked through the examples as I was reading the book, which helped tremendously. The book also linked to a couple of very useful talks, which aided in improving my understanding of this new world. David Beazley on Concurrency Yury Selivanov - async/await in Python 3.5 and why it is awesome Get to grips with asyncio in Python 3 - Robert Smallshire A couple of colleagues of mine at work also recommended two books - "Seven concurrency models in seven weeks" and "High Performance Python". For now, I want to get better at using async/await/asyncio and gain a deeper understanding. I'll probably keep watching more talks regar...

My first* OSS contributions got merged!

The asterisk after first is because I have contributed to open source software that Enthought (my employer at the moment) maintains so these are my first contributions to a project which isn't maintained by Enthought. Also, i'm not counting opening issues on open source software as contributions at the moment, which I have done a couple of times in the past. In this specific case, I was looking at code in the Jupyter ecosystem in Python and I came across a few trivial changes that could be made in the projects, given that they dropped support for Python 2 and only supported Python 3. Remove u string prefixes from ipykernel, Remove Python 2 compatibility code from ipykernel, Remove Python 2 compatibility code from jupyter_client . There are actually a few more PRs (5 more, I think), for  which I am waiting for reviews. But they all make pretty much the same kind of changes. If you took a look at the PRs, you will notice that the changes themselves are extremely trivial and prett...

!!Con

Image
 I came across the bangbangcon conference a long long time back and I came across it again this weekend. It's nothing like the other software conferences that I have come across. Here are four amazing talks that I think exemplify what the bangbangcon is all about.  

Dissatisfaction and Loneliness by Kurzgesagt

Image
 I came across these two videos yesterday night and I think they are videos that everyone needs to watch. Especially at this point in time. I've been a fan of Kurzgesagt in general and it was a little surprising to come across these videos that are subjective, unlike most of their videos which are fully objective.    

Buffalo Fish Police

Image
buffalo fish police I finally got around to listening to a few talks from SciPy US 2020 which is when I came across buffalo fish police.

Google's Search monopoly

Does Google use its overwhelming market power to benefit itself while crushing competition? YES. Do these actions have negative impacts on the open internet? YES. Are everyday consumers harmed by Google’s practices YES.   Every time Google commits a flagrantly anticompetitive act, it always points to a flimsy pro-consumer pretense for doing so. Google Product managers convince themselves that it’s a 7better user experienceto simplyprovide the answer, but fail to consider the negative externalities of destroying a small business.  I just read a written statement by Brian Warner of Celebrity Net Worth about Google's Search Monopoly. A PDF version of the written statement can be found at this link . Everyone needs to read this. I wonder how Alphabet would look if it were broken up - Google Search and Ads, GSuite, Youtube, Android and Google Cloud.

The O'Reilly Humble Bundle

 I purchased the O'Reilly Humble Book Bundle two weeks back and I've just read my second book from the bundle. So far, I'm pretty happy with the purchase. I paid for the full bundle and last weekend, I read Introducing Go and today, I read 97 Things every Java programmer should know  and i'm pretty happy with both. "Introducing Go" is a short book that introduces the Go language. The part of it that I found most interesting was the last chapters, one of which introduced Goroutines i.e. coroutines in Go. That leads nicely to looking at "Using Asyncio in Python". I browsed through  Think Julia  and  Using Asyncio in Python  as well last weekend, the latter of which made my head hurt. I'll prolly take a closer look at "Using Asyncio in Python" next weekend. "97 Things every Java programmer should know" seems to be part of the "97 Things XYZ should know" series of books by O'Reilly. There were a lot of "Things...

Recommend GitHub Guides to newhires.

I've been using GitHub everyday for the last 4 years. I think I spend 2+ hours everyday on the website. Some of it is spent opening issues. Some more spent opening Pull Requests. Some time spent commenting on open issues and pull requests. That probably covers 90% of the time I spend on GitHub. This is what most software developers can expect if they join a company which uses GitHub for code/software. On that note, becoming comfortable with the website, it's user interface and being able to take full advantage of it is very important to be productive at work. GitHub guides look pretty useful in that context, especially for new developers who have little to no experience with GitHub. I had been using GitHub before I joined Enthought but I was using it purely as a place to back up my code. commit -> push -> rinse and repeat. Specifically, The "Hello world" https://guides.github.com/activities/hello-world/ guide is something that *every single developer* s...

BSE and NSE - The two (popular) stock markets in India

[Note that this article is a Work In Progress. I will update it as I dig deeper and get a better understanding of NSE/BSE, the companies listed on the two exchanges, how they make money, their respective financial information etc] Mind the word "popular" in the title. BSE (Bombay Stock Exchange) [1] and NSE (National Stock Exchange) [2] aren't the only stock exchanges in India. There are apparently 9 currently operational stock exchanges in India according to this wikipedia article (which I have verified from the SEBI webpage [4]). Note that not all stock exchanges are the same. Indian Commodity Exchange Limited (ICEX), Multi Commodity Exchange of India Limited (MCX) and National Commodities and Derivatives Exchange Limited (NCDEX) are only permitted to operate in the Commodity Derivatives Segment by the SEBI. SEBI, by the way, is the Securities and Exchange Board of India, is the securities market regulator in India. For those of you who aren't Indians, SEBI ...

A New Year Theme (instead of a resolution)

Image
tl; dr - My New Year Theme for 2020 is Financial Literacy. See CGP Grey's video to understand what I mean by a New Year Theme. I was going through the list of channels I subscribe to on Youtube as part of an effort to highlight creators who I admire - creators on Youtube, Instagram and the internet as a whole. I rediscovered CGP Grey's channel. I say rediscovered because I obsessively watched all of this videos a while back. I subscribed to get updates from the channel but given my viewing habits and the recommendation algorithm changes in Youtube, I haven't seen his videos popup on my home page on Youtube these past few months. Coming to the video, it is an interesting take on the common idea of New Year Resolutions. He advocates for defining a Theme instead of Resolutions. He defines themes are broad areas of interest in which I can make progress instead of having a specific resolution which I work towards. For example, I am thinking of setting my ...

A weekend spent in trance (reading Leadership by Doris Kearns Goodwin)

I just spent my weekend reading. I was in a trance. It was amazing! It's been a while since I picked up a lengthy non-fiction book. I usually stick to graphic novels. It doesn't take too long to read them. I can easily chew through a 200 page graphic novel in 2-3 hours. On the other hand, I have been trying to read Chaos by James Gleick and I am still stuck at around page 70. The most recent non-graphic novel that I read was "Bad Astronomy", which wasn't too big and the recent lengthy non-fiction that I read was "Creativity Inc.", which was almost an year ago. I was pretty intimidated when I came across Leadership. A work colleague of mine (Joris) lent me a few books from his personal library, which have been sitting in my room almost untouched for the last three months. This weekend, I finally dared to read again. Instead of trying to restart Chaos or start "The signal and the noise" by Nate Silver, I chose Leadership instead. And it ...

Will Eisner's The Plot and today's political climate

I just finished reading Will Eisner's "The Plot : The secret story of the Protocols of the Elders of Zion" . I am a big fan of Eisner's work and this particular stood out in the current political climate around the world. If you don't know, "The Protocols of the Elders of Zion" is a fabricated text, produced in the 19th century Russia. It is an antisemitic text, used to influence the Czar at the time. It spread like wildfire in Europe in the early 20th century and it was highly influential in antisemitic movements. Sadly, even though it was proven to be fabricated, it is still popular to this day, translated into numerous languages. The use of fabricated material to turn people against one another feels highly relevant in this day and age of fake news and social media. I highly recommend that you find yourselves a copy of the book (among others by Will Eisner).

Information about the pancreas - where it is and what it does.

Image
Where is the pancreas? The pancreas sits behind the stomach and above the small intestine. The head of the pancreas sits next to the deodenum on the right side of the human body and the tail of the pancreas lies close to the spleen. (The deodenum is a part of the digestive system that sits between the stomach and the small intestine.) It lies beneath the liver and the gall bladder. Image source - Mayo Clinic What does the pancreas do? The pancreas serves two functions in the human body - aid in digestion (referred to as exocrine function) and maintain blood sugar levels (endocrine function). The pancreas aids in digestion by producing the pancreatic juice. The juice is collected in the pancreatic duct which spans the length of the pancreas. The duct. joined by the common bile duct from the gall bladder, empties into the deodenum. The juice contains chemicals which neutralize the stomach acids, preventing them from damaging the small intestine. During embryonic developme...

Almost back to Inbox Zero

I don't remember when I started hearing about it but I started earnestly trying to keep my GMail Inbox tidy starting 2016, when I started working full time at Enthought. I vaguely remember spending a full weekend going through my Inbox and archiving or deleting all emails. I remember running into a lot of nostalgia as I was going through emails from when I was in college, which is when I started using GMail seriously. Mails about coursework, mails with photos and videos my and friends of mine took when we went out to eat. I let myself go over the last few months and emails started piling up in my Inbox. Mainly because I periodically go through a cycle of subscribing to more newsletters and email groups than I can possibly keep up with and then culling them to reduce clutter in my Inbox. After many months, I finally spent this weekend cleaning up my Inbox - reading through a lot of finshots ( https://finshots.in/ ), labelling and archiving financial information, deleting...