Posts

Showing posts from 2022

Book clubs are amazing

At some point in November of 2019, I asked a work colleague to be my mentor. He is a CPython core contributor, he has been at Enthought for over a decade and I wanted to learn from him. I don't exactly remember why but we decided that we would start reading a book and discuss it every week. My broad goal was to get better at writing software, which is why I think we chose to read and discuss the book  Clean Architecture by Robert Martin . For those of you who don't know, it's one of the classic texts on software and software architecture. Initially, it was supposed to be just the two of us but others in the office were interested in the book as well so there were three of us when we first met to discuss the book on the 22nd of Nov 2019. We added one more person when we met a week later. I think we discussed a few chapters every week, depending on how big the chapters were or how interesting we felt they were. We didn't have a fixed deadline to finish the book so there w...

I happily pay for The Morning Context

I turned 30 this year and until recently, I didn't have the habit of reading a daily newspaper. I think I used to pay for newspapers for an year or so when I was in college but I don't remember reading them. I just remember them being piled up in a corner of my room. I used to get most of my news from Facebook, and then Twitter and then from Reddit. But they're just a news feed and these feeds have been slowly tightening the bubble around me over the past decade. At some point over the past year, I came across The Morning Context . I follow the Zerodha universe  so I came across the fact that Rainmatter Foundation, a non-profit initiative by the people behind Zerodha, funded The Morning Context . I signed up to access the few free articles they have and quickly, decided to become a paid subscriber. It costs around 3,000 Rupees per year (~40 USD). That feels like a lot when compared to the cheapest Netflix subscription that costs 1,788 Rupees per year, the Amazon Prime subsc...

The Indian Government is already trying to DIY FOSS - Should it?

In a previous post , I wrote about 8 things a government can do about FOSS where I talked about categorizing the governments actions in 8 distinct ways. From what I've been reading online, it looks like the Indian Government is already trying to Do-It-Yourself (DIY) FOSS. To recap, DIY-ing is the very last option in the "8 things" and it's risky. Especially in the case of FOSS, DIY is risky. Given the scale of government operations, any DIY solution that the government comes up with gain widespread usage, which can then lead to inertia. Remember that DIY-ing requires not just building expertise in FOSS but also continually maintaining it. If the Indian government doesn't maintain the necessary expertise, it risks the FOSS project falling behind the curve. Let's look at the Samarth eGov project as an example of the Indian government DIY-ing FOSS. Samarth project aims at creating an Open Source, Open Standard enabled Robust, Secure, Scalable and Evolutionary Pr...

Let us look at the numbers - Indians and International travel

According to the 2011 Census of India, the population of India is 1,21,08,54,977 (121 Crore or 1.2 Billion) . In 2021, the US government Census website estimates the population of India to be 1.4 B (140 Crore). For simplicity, let's work with that number for the rest of this article. In the Indian Governments' Ministry of External Affairs' Annual Report 2021-2022 , more than 39.5 lakh (around 4 Million) Overseas Citizen of India cards have been issued since August 2005. (See "Consular, Passport and Visa services"). If we round that up to 40 lakhs, we're looking at roughly 0.3% of the total Indian population. Around 3 Indians in 1000 have an OCI card. In the report 2020-2021, 1.91 lakh (191,000) OCI cards were issued (See "Consular, Passport and Visa services"). In the same section of report, we also see that the Government of India issued more than 57.94 lakh passports (around 5.8 Million) and the Indian Missions/Posts abroad issued 9.94 lakh passp...

You need to start writing Architecture Decision Records

If you write software, you need to start maintaining Architecture Decision Records (ADRs). ADRs roughly fall into the category of Developer Documentation. They aren't aimed at the Users of the software. Instead, they are aimed at the developers and maintainers of the software. They usually contain information about the layout of the package and what the code does. ADRs, in this context, are an absolute necessity. By definition, ADRs are simply a Record of a Decision that has an impact of the Architecture of the application. In fact, Any meaningful technical decision made in a software project, irrespective of whether it has an impact on the architecture of the application, needs to be documented. I first came across ADRs in Chapter 17 of Fundamentals of Software Architecture book. A few of us (at Enthought ) read this book earlier in the year and ADRs are one of the things that we took away from the book. You can find more information on ADRs here and here . Here's what the f...

8 things the Government can do about FOSS

The Takshashila Institution taught us last weekend that the various types of government action can be roughly split into 8 categories. Let's look at the categories in the context of Free and Open Source Software (FOSS). Do Nothing The government can choose to do nothing about FOSS and leave it up to the various public and private entities to decide what each of them want to do with FOSS i.e. whether or not they want to integrate FOSS into their IT systems, how deeply integrated FOSS is in their IT systems, etc. For example, most big public and private players have Enterprise Resource Planning (ERP) software as part of their IT operations. And when deciding an ERP software to use, they can either choose to go with a provider like Oracle ERP , which isn't FOSS, or they can choose to go with a provider like ERPNext , which is FOSS and home-grown in India. It might sound like doing nothing would mean the government doesn't incur any costs. Alas, that isn't really the case....

Non-fiction graphic novels

Image
If Graphic Novel is a new word for you, let's just say for simplicity that Graphic novel is a fancy word for a comic book. It's a dramatic oversimplification but for the moment, let's go with it. And if non-fiction is a new word for you, it just means the book contains a real-life story. For example, a biography is non-fiction because it describes what happened in real life. Comic books that contain real life stories. The last time I mentioned this to a friend, he was surprised that such things even exist "a comic book that is non-fiction"? He was an avid comic reader of DC and Marvel comic books, all of which are fictitious. So when he first heard "Non fiction graphic novel", he didn't even know what that looked like. I always had an interest in history but most of the history books that I came across or that were recommended to me felt impersonal. That's how I got into non-fiction graphic novels and over the past 5 years, I have immersed myself...

Should internet infrastructure (e.g. fiber) be a public utility?

I have been all over the country during this past year. Starting in Ongole, Andhra Pradesh (AP), I spent a few months in Anantapur, AP. Then I spent a month in Solan, Himachal Pradesh (HP), a month in Chandigarh, India and a couple of weeks in Ralli, Kinnaur District, HP, These places can roughly be categorized as - Places where I had great internet access at home e.g. via fiber. Both in Ongole, AP and Anantapur, AP, I had fiber at home and these are probably Tier-III or Tier-IV towns in India. For context, they are both district headquarters (and if you don't know many Districts make up a State). This meant 50-100 Mbps speeds which cost ~1000 Rupees per month (~10-15 Dollars). These speeds mean me, my wife, my brother and my mother can all use one or more devices at the same time and no one has to deal with slow internet or buffered video playback. All of my work calls were crystal clear and I never had to worry about downgrading the video quality on my video calls t...

Working from home is a public policy problem now

"Software hub"s are emerging in most countries. For example Bengaluru is widely considered to be the software hub of India. Hyderebad is a close runner up for the top spot. The number of people that recognize what "Silicon Valley" stands for grows every day. The concentration of human capital in these cities and regions is mind boggling. According to the 2011 census of India, the Bengaluru City population stood at 84,43,675 (8.4 million) . For comparison, this is higher than 15 States and Union Territories in India and higher than the 10 least populous States and Union Territories combined ! Similarly, the Hyderebad Urban population in 2011 was 39,43,323 (3.9 million) , higher than 14 States and Union Territories in India and higher than the 7 least populous States and Union Territories combined. And the cities have only gotten bigger in the past decade. Such concentration of human capital seems to have had a positive effect on the overall economic output of the cou...

Including API documentation in docs built with Jupyter Book

The title is chock full of jargon. Let me break it down. API stands for Application Programming Interface. An API is the user-facing part of a software package. For example, if you use the "numpy" package, "numpy.array" is an API. And APIs need to be documented. A single API can produce different results depending on the inputs so documenting the full capabilities of an API is important. Jupyter Book  is a new tool in the Scientific Python community to create and upload documentation easily. The community as a whole seems to be working towards better documenting their projects and some have chosen to go with Jupyter Book instead of relying on Sphinx. I personally don't know why the community felt the need to move away from vanilla rst ( reStructureText ) and Sphinx . One of the advantages of Sphinx is the fact that API documentation for the package can be created automatically (using sphinx-apidoc ) and the API docs can be included in the user-facing documentati...

Books I read in March 2022

I got lucky in March 2022. I happened to be in Bhopal for two weeks. Specifically, I was at the Indian Institute of Science Education and Research (IISER) Bhopal with my wife. She was wrapping up some work at the TrEE lab in the Biology department. She successfully defended her PhD thesis in 2021 but she needed to go back to wrap up some loose ends. I went along with her and I got to meet her labmates. That's how I came across Improbable destinies by Jonathan Losos . As far as I can remember, it's the first biology/ecology book that I have read. It's technically a popular science book but it's not something that a school student can read and understand. But, it's damn good. I would definitely recommend it to biology and science undergraduates who are yet to understand and decide where their interests lie in. Preeti likes the fact that I can atleast know of and can use some of the vocabulary she works with on a day-to-day basis. The book introduces the reader to con...