developer notes, code, iot projects, software trends, code reviews, etc...
Saturday, April 25, 2026
Screentime
Wednesday, April 22, 2026
Keep Android Open Saga (6/6)
It Us!
Google already has started locking-down android, and, is a few months from completely locking it down. Visit keepandroidopen.org for more information on how it affects you, and, what you can do about it. I will try to make this series easy enough to help you understand why we (as a species) are in this situation now. This post is part 6.
Let's summarize.
1. Google is locking-down on android. They publicly claim that it is a move to protect consumers.
2. Scams happen. It is the side-effect of technological progress in civilization. There will always be victims here. Sorry if you happened to be one, and, if so, know that you will shake-it-off!
3. We already live in a world where linux exists. It was born out of the concept of "software freedoms". The right to side-load is a necessary aspect of software freedom. Denying these nature of freedoms only delays innovations. But apparently the corporate lore is that denying this freedom actually protects you from scammers.
4. Have a look at and/or study the evolution of other products to see the bigger picture of why a "walled-garden" would make sense.
However, is "the company" in concern really to blame?
One must pause, to consider a world where Youtube is this "free online service" for streaming/uploading videos on the internet. They have had both positive and negative impacts. The impacts flourish in several categories of humanity - news, education, culture, cuisine, etc. On the negative end, there has been dissemination of racism, hate, misinformation campaigns, conspiracies, etc. But if it were a paid platform from the beginning, I probably wouldn't be writing this post.
Youtube is the easiest company/product to scapegoat for the purposes of writing these series, but, I don't really intend to scapegoat the company/product. I really want to scapegoat a model of capitalism many companies/products (an therefore human beings) adopt. There are many services/businesses/products, online or otherwise, that follow the same pattern/model.
If you have lived in an urban city, there are (for e.g.) new cake shops opening every few months or years. As a strategy of increasing customers, and "expanding the business", what do you think a store owner does? He/She might offer cakes at some competitive price for a short duration. This is done with the long-term goal of increasing customers, expanding, and profits. In theory, that phenomenon is healthy sign of civilization and economic progress. But I believe that is co-incidentally why we are where we are today.
This "free first and start charging later model", seems to work for successful companies. It may not work for everyone else. I wonder how many generations moving forward are people going to actually understand that this "model" isn't a model that always churns profit. But this pattern is sadly going to stay for a long time. And there are going to be consequences small or big.
If you were to ask me, "what is the better road forward", I would say, whatever your answer is...it shouldn't begin right away with any of those economic "-isms". One must step back, be patient, and observe what the already known "-isms" have done to society; observe what have they done to "the kingdom of humanity".
Thankyou for reading.
Monday, April 20, 2026
Keep Android Open Saga (5/6)
The social science of Datacenters
Google already has started locking-down android, and, is a few months from completely locking it down. Visit keepandroidopen.org for more information on how it affects you, and, what you can do about it. I will try to make this series easy enough to help you understand why we (as a species) are in this situation now. This post is part 5.
I wish datacenters were thought to us in school. Probably in social science classes. You are able to read this blog post since, this post, is stored on some database on some server (owned by google) on another remote part of this planet. This is the magic of the internet. A layman could easily be humbled here. Not by reading my blog post specifically. And if you are a digital scam victim, that emotion is non-existent now. (But it will come back to you). The significance of these artifacts on earth doesn't get an iota of thought among the average people.
To understand their significance, one must simply look at the plethora of apps on their phone. You will find apps for all niches of urban life (both good/bad). Listing down a few in no particular order:
1. Food delivery apps
2. Weather
3. Mobile banking
4. Matrimony
5. Dating
6. Sex
7. Trekking
9. Renting
10. Education
11. Chatting
12. etc
When an app becomes an internet sensation imagine what would happen to its datacenters. How many such apps do you know? Given that this blog post alludes to a certain company we all can take a good guess what that sensational product might be. Again, let me disclaimer here, that even though I am alluding to very real entity, I would want my readers to generalize, and, not always think of that entity as the entity, but a bunch of human beings influencing other humans for profit. (Be it for others or the self).
Now let's understand the rise of youtube. It started out as a free video streaming platform. It remained that way for many years. It gained popularity, and, its datacenters also grew as consequence. The youtube webservice has its core services exposed over the internet for any developer to access. This had lead to appearance of many alternate mobile viewing clients which streamed youtube. The web-service enablement enabled google to make its mobile app counterpart. Other developers began making alternate clients where people could stream youtube videos. For e.g. NewPipe is one such popular client.
After many years of operating this way, the system resorted to streaming advertisements on its platform. This in itself became publicly annoying. Meanwhile the company rolled out their creator outreach program. The "ads" were central to the effectiveness of this program. Because youtube paid off creators if their venture became successful - i.e many people came to stream videos. Youtube would portion some of the ad revenue to these creators. The creators were getting paid.
But slowly the ads became more frequent and annoying. These clients grew even more popular; not just for the "ad-free" streaming. Some clients allowed for downloading video content. Very soon, youtube allowed for a subscription model for consumers to enjoy ad-free services. And thus, slowly ensued a battle of small-time developers and youtube. A few of these clients allowed for a no-ads experience while not being subscribed. Youtube would change something on its website or service to prevent such clients from working properly, and the developers would always find a way to circumvent those strategies. It was a kind of war.
I suppose the company got fed up with this war. We learn from the previous posts that the "true" purpose of this android lock-down is to protect the consumers from being scammed. What the consumers don't know is that this lock-down allows google to operate the "walled-garden" more effectively. The "lock-down" requires a developer to register; the company can take a decision on allowing a developer onboard the platform. Now if the developer is known to float apps which go directly against a product's terms of service, he/she will not be onboarded. Most apps which fit the category mentioned above will easily be unavailable. It is a corporate win for Google, and the (gullible/vulnerable) consumers.
The important take away here is that to keep a service such as youtube (i.e an online service) "always running", you have to incur massive datacenter operation costs. So where does it make sense to offer service for free? At any point of time? Did the gesture of making it free in the first few years contribute to many good things of today?!
Thankyou for reading.
Saturday, April 18, 2026
Keep Android Open Saga (4/6)
Hello Linux
Google already has started locking-down android, and, is a few months from completely locking it down. Visit keepandroidopen.org for more information on how it affects you, and, what you can do about it. I will try to make this series easy enough to help you understand why we (as a species) are in this situation now. This post is part 4.
Side-loading is not good per people at google. Perhaps they are people who want to be dramatic about it for your security; it makes their jobs easier. They do have the right to save you from being scammed. You - the consumer. Side-loading is a glorified term for obtaining software (and installing in on your phone) on your own without the intervention of the appstore. The software program could come from the internet, or, your friend, school, etc.
But have you heard of Linux? You may equate this term to an operating system. However, what you really need to look into the story about how it came about.
Linux is an operating system software - like android, or windows. Linux stands for is software freedom. And most lay people of today might easily mistake it as a privilege that their phone's appstores give it to them. The right to install any software they want. The actual essence of software freedom is lost when you talk about appstores like the playstore or apple store.
A vital part of this freedom is all about upholding all the following principles when we talk of distributing software:
1. the right to install any software you want and run it on the hardware you own (provided it can).
2. the right to install software from any source.
3. the right to obtain the source code, modify and distribute copies of the modified version
4. the right to run the software the way you want
Android embodies all of this. But the software on their appstores need not really have to. However, the point of focus in point #2. It is the vehicle via which a plethora of digital scams happen today. People can download software from untrusted sources. This way they can perhaps impersonate your banking app and capture your bank's credentials, and, finally siphon your savings. However, one has to realize it is "evil" lurking in the world - doing its bidding - instilling fear in the product managers and consumers.
If linux or even windows was evolved around the concept of a walled garden in the early days, that could have been another parallel universe. A hard/pessismistic fact to admit here is that scams are the natural price or consequence of software freedom. But scamming has always happened throughout human existence sans the advent of computers or "software freedoms". The same phenomenon (i.e digital scams) happens irrespective of people understanding the significance of "software freedoms". We must all come to terms to the flaw in humans as a species. If a victim happens to be reading this, it might be hard to swallow. It doesn't mean the victim is forever weak; everyone eventually comes out of this weakness.
Let me summarize some key points:
1. Unsuspecting victims fall prey to digital scams. Some of them lose their life savings. Some are driven to suicide and depression.
2. Scams in whatever form cannot be ethically prevented. It means they will keep recurring no matter the technological civilization we live in. Many people accept this hard fact. Still many other people are oblivious to it.
3. But in the face of this, "software freedoms" have evolved, and, gave us the gift of linux. (Android is a derivative of linux). (Although I say this, I mean here that point #2 of the freedoms is essential for such a kind of progress), and, the android os and its appstore violate this principle. It wasn't so at the beginning; when android was in its infancy. Recents events surrounding this topic of side-loading suggests the violation of freedom #2.
4. Now certain people are complaining that side-loading (which is a conflated term for freedom #2). They claim we should get rid of it to protect the consumers.
I can see why people come to that conclusion, but, I wish they upheld freedom #2. At face value these decisions to me (who isn't a victim of digital scams yet) seems incongruent.
I am sure the world is drowning with paranoia because of the digital scams. Let us assume those few people at google win and decide to lock-down android. What then?
The evolution of linux operating system has the answer to this question. So for those unfamiliar with that, I would just say that the speed of innovation might just be slowed down a bit. Now is the world and therefore life/civilization really a balance of "speed of innovation" and "the plethora of scams"? I will leave you to ponder on that.
Thankyou for reading.
Thursday, April 16, 2026
Keep Android Open Saga (3/6)
Evil
Google already has started locking-down android, and, is a few months from completely locking it down. Visit keepandroidopen.org for more information on how it affects you, and, what you can do about it. I will try to make this series easy enough to help you understand why we (as a species) are in this situation now. This post is part 3.
Certain corporate developers and tech leaders say that side-loading is a kind of evil. Side-loading is a fancy term to mean obtaining software on android phones through channels other than the formal appstore. There is probably a corporate blog post online which elegantly explains why its evil. And to paint that picture more gullible, they explain a plight of a certain victim of a "developing country". That story could be true or false; I haven't fact checked.
Shocking fact! Nobody really knows why Blue Whale? To learn more about the blue whale app, I suggest you search wikipedia. Today we don't know the evil perpetrators behind it. Perhaps a criminal psychologist can answer this question. Maybe some day someone will...
However, what you must think about is...why at all they (i.e such incidents) happen?
And, why is it "they"? (A plural). I am not alluding to the blue-whale app instance alone; there are other nefarious apps which have existed over time. Every year a new one keeps coming up. It has a different attacking mechanism. For e.g. if you are computer savvy, and you know a little linux, try searching youtube for the xz-hack.
We are entering into a dark territory of our human existence on Earth. There are a lot of darker chapters when you venture here. Fortunately I am only going to deal with a small (and thus relatively less dark, yet evil) topic about digital scams.
Lets forget the digital aspect of a much wider phenomenon called "scams". Why do scams happen? Is it the capitalist economy that breeds scams? Or, is it a private desire to feel powerful? Is it revenge? Whatever the reasons or agenda may be, when you observe the facts behind any scam story, the victims show some level of failure or weakness. The scammers engineer the victims to their point of failure. It could be their carelessness. It could be that the victim had a dark past when he/she was younger; that wasn't made public before; and the scammer used this fact to blackmail.
Digital scams are no different. In digital scams, the "technology" factors into the fray. Digital or otherwise, scams continue to crop up in one form or another, and, in ever ingenious ways.
Can humanity cure "the need for scamming"?
But what will you/we do?
Stop capitalism? Promote communism? Promote capitalism with furious taxes? Find the gene responsible for megalomania/revenge/jealousy, and, attempt a slow and gradual genocide?!
We've done it all! (Somewhat. Or at least tried). History has all the answers. I don't have all the know-how. For e.g. the holocaust was all about the extermination of a certain race of people, because one set of people who believed they were a superior race, were radicalized to believe that the former group of people were in part inferior, and shrewd business minded people. This interpretation of "why" the holocaust happened, isn't all that complete. But capitalism played its small role in aggravating that "evil".
Let me bring you back to the grand saga for a moment. Do you think a "walled garden" is the solution? Humanity's cure for stopping all scams?! And now again, lets for a moment, forget you knew about walled gardens or scams...what can put a stop to rampant capitalism or aggressive sales marketing in society. (Think about the Wolf Gupta's of our society).
Will an "appstore" stop a "wolf"? The recent events surrounding seems to suggest people think that fortifying that garden they can prevent it to some degree. They are somewhat right. There is a small issue here. I will explore that in the next post.
Thankyou for reading.
Monday, April 13, 2026
Keep Android Open Saga (2/6)
A beautiful draconian garden
Google already has started locking-down android, and, is a few months from completely locking it down. Visit keepandroidopen.org for more information on how it affects you, and, what you can do about it. I will try to make this series to help you understand why we (as a species) are in this situation now. This post is part 2.
Appstores grew in scale. A lot of applications started appearing on it. This software included all possibily imaginable categories - dating, matrimony, games, productivity, health. It is exactly hard to say when and why, but, a lot of nefarious apps came to be available on the appstores. On linux it wasn't much of a headline-news kind of a problem. On android...well, news spread like wild fire. Case in point is an app called Blue Whale. I am intentionally not going into horrific details about that phenomenon.
Appstores (not just Google's) became a little bit stricter on allowing software to be available on their platforms. In Google's case, a few developers thought that Google's rules were too draconian or strict. For e.g., A clever android developer, made an app which might allow the owner of the phone to control the phone's wifi. And that app lived on the playstore for a while. Many people would have downloaded and became fans of the app. The os developers, on one fine one day, advocated against it. "Software shouldn't over-pressure your hardware". (There is valid reason for this). However, in the end, such applications would be dropped from the appstore. On the other hand, our developer would have had genuine users for this fictious app. They must have had some use for it. And now that google android os developers decided it is a bad thing the users and the concerned app developers, had to suffer disappointment.
That isn't the entire story, however, it is probably one of the reasons "many other" appstores came to sprout. These appstores were specifically for the android operating system. In other words, these alternative appstores were intended to supply software on android phones. But, how were people able to install such software onto the phones? I suppose a lot of MS Windows users of the 90s era might introspect and have an answer to that question. If the answer doesn't come to you, perhaps, become a little social and ask around.
I made up a fictious scenario to explain why a "walled-garden" came to exist. And "bad fruits" in that garden would be plucked off. Perhaps the use of the word "draconic" in the title is a bit harsh. Because in this fictional scenario the corporate is correct. Why?! Phones are relatively delicate devices. They are powered by lithium batteries. They need to be operated with care. If some software exerted the battery too much the phone could blow up (or explode) on my hand or other body parts, (my eyes for e.g). I could sue google for damages. It is a pessismistic way of putting it. But on a more nobler note, Google is actually trying to protect you - the consumer, by bringing "restrictions" on its platform.
I hope you'd come to understand that certain people will be concered about these restrictions. They are a small group. The others (i.e the majority) see a very colorful garden where they can get "software they want" downloaded and installed onto their phones.
You probably already understand that "bad fruit" in the context probably means an app that defies a corporate os developer's norms. In the next post, you will have a much wider concept of the term.
Thankyou for reading.
Wednesday, April 8, 2026
Keep Android Open Saga - (1/6)
Opensource And Appstores
Wednesday, March 4, 2026
A collatz weekend
TLDR; found an opensource python software for printing a graph. My program got referenced by the developer over at the repo discussions page. Understood where ascii and where graphical printing makes sense. I also share a few thoughts on opensource.
My youtube algorithm suggested a Veritasium video on the collatz conjecture. In it there was a graph - for a long time I wanted to print it. Here is an example of the graph which was shown in the Veritasium video. And what follows are two images I generated using other opensource software.
| Fig1. Graph plot from the Veritasium video |
![]() |
| Fig 2. pygraphviz plot |
![]() |
| Fig 3. Ascii plot using binarytree python library |
These graphs are generally called collatz graph or collatz chains. It is built on a simple mathematical rule which we won't discuss here. The specific graph I have printed is called a reverse-collatz graph. But note that the 3rd image is an ascii print of the same graph.
Oh wait! Do you know what is a "graph"? Or do you know what "ascii" is? I think I must devote some time to introduce some fancy computer science terms. However, I am not going to delve deep into them. The impatient readers can skip the next few sections and directly read from the section called "My opensource library hunt"
Graphs
YOU don't really need to know what a graph is...It has no significance in your day-to-day life! That picture above is an example of a graph. It is a node which is connected to other nodes via lines called edges. In practice, the nodes/edges represent something. I am sure most visitors here have used Google Maps; it uses "graphs". Its neatly abstracted to you, the consumer.
Binary Tree
The collatz graph which I tried to print is a kind of "binary tree". I have hidden most of the "binariness" to make it look plesant. Another example of a binary tree is the famous pascal's triangle. This is another mathematical term that is of no consequence to people's lives.
![]() |
| Fig 4. Somewhere in Ladakh |
Yet it is out there in world. Staring back at you. Oblivious; in plain sight.
ASCII
It is an encoding standard for storing and transmitting information. Simply put if I save some text file (with a few sentences) onto a disk, and, I sent that disk to you...you use your computer to access that disk and read that text file and it contents...if the computer displays the correct sentences - how do you think that is possible?
This is a remarkable invention by human beings. It is the backbone of the internet. It is because of ascii many subtle things happen in life - good or bad:
1. You are able to read this blog post.
2. An expectant father is able to view the first pictures of his new born child while he is located on a different continent compared to his spouse's labour ward.
3. People nefariously indulge in relatively evil practices like pornography, blackmail, riots, etc.
4. Etc.
Shakespear once said, the web of life is of mingled yarn - the good and bad together. Maybe I failed in social science - and today its via ascii that I am coming to realize a lot more about our own species. (And I am a quadrigenarian)
Why print in ascii?
1. I can easily print the graph in a text file
2. I don't have to worry about scale. Most plotting libraries, will take into account the drawing area and auto-scale the plots.
3. I don't need special software to view my outputs. A simple text editor (with word-wrap-off) would do.
My opensource library hunt
In python, we usually have matplotlib for plotting stuff. But instead I thought that I would want to see the graphs better and not be worried about "scale" or drawing-area-sizes. Therefore ascii; there was no further reason than that initially.
Finally came to discover a small library phart - Python Heirarchial Ascii Rendering Tool. Of course if you are someone who quickly alluded to some nasty things humans and often other mammals indulge in; you are excused.
The version I had got via pypi (i.e. pip install). It had a dependency of another pythonic graph software called "networkx". It was fairly quick for me to setup and get to printing outputs. But later I came to understand that the plots were incorrect. And I posted in on the github repo discussions. I waited for the response. Meanwhile I discovered another graph plotting package. This wasn't a python library. It was a C program called graphiviz. And there were python ports of graphviz which I then explored. And it internally used matplotlib to plot. But then the phart developer of the repo got back with fixes to my issue. And then I got to printing.
What kind of plot to choose and when?
This section won't be useful for anyone unless you are into research involving graph theory or you need to do some graph based computations.
(A) Choose a image-based graph plotting solutions when you need the following:
1. Auto-scaling.
2. High detail in nodes/edges
3. Aesthetics
(B) Choose ascii graph plotting when you need the following:
1. Searchability
2. Plotting to scale is not needed
3. Simple text file based sharing is important.
Most people will choose approach A. However, the final say is really a matter of requirement. I was doing it as a weekend fun project. If I were a PG student writing a research paper on the Collatz conjecture, I'd probably do both ascii printing and graphical renderings. But I'd use the latter when I write my research paper.
Opensource Affairs
Here is a small appreciation to phart developer and opensource
When I first tinkered with phart it was buggy. My output wasn't coming right. I thought it may be my incorrect use of the APIs. I posted onto the repo discussions page, and, in fact shared by whole program there and asked the developer if I was doing it wrong. He admitted his code had a bug. And he fixed it in a span of few days. It didn't matter if he took a month, or, even a year. He got back to me. These are qualities I adore.
| Fig 5. ascii plot using phart |
I have posted issues and interacted in developer forums and slack groups of other opensource software. The larger they are it is likely that the issue you post (or raise) is not given enough attention. There are many reasons why this can happen, but, I leave it to you the reader. And there are a few issues I have raised in some repos that belong to a few infamous organizations that need attention.
Sunday, February 8, 2026
[Rant] Google Photos Library API ens***tification
TLDR; Google Photos Library API is intentionally limited. Most tutorials will show how you can access your entire data. They are outdated. This is the state in Feb 2026.
I am a Google one customer. Most people know that this means I rent a finite amount of cloud storage. My Google Photos takes a significant amount of storage space. Now that storage is becoming full.
So naturally I wanted to off-load. It is somewhat possible through their website app; but that can be cumbersome. Google Photos Library API showed some promise. I believed that I could access data on Google programmatically. I had experiencd with Google Apps Scripts before, and, believed this was possible.
Being the relatively lonesome developer that I am...I thought I could quickly hack some python program to help me out with this task.
The choice of "python" is inconsequential. Most google searches related to this topic will result in some pythonic script which understands how to talk to the library api. But make note, that I have never tried this before, and, I have heard or had a faint memory that google allows you to programmatically access your data stored on its various services.
Therefore I thought this farce objective of mine was achievable. And I set about a journey to learn how to work the python code and learn from video tutorials and blogs on the subject.
This is where you walk into a realm of oauth authentication. If you aren't a developer you can skip over this paragraph. And I am not going to go into this topic deeply either. There is a technical term associated with it called permission scopes (aka permissions) which controls your access to your "resource". Most tutorials say that "you have to this specific scope" and you magically can access your "resource".
Lo and behold...when I tried the tutorial examples myself, I was unable to access my data on Google photos. I initially got "request forbidden" or that I am "unauthorised". I understood that this meant I misconfigured some permission. I later fixed it. (After referring to documentation). And on the next trial, the script executed without errors and said that I had no albums!!?
That is when I took a closer read of the documentation. There was a link to an update. That further confirmed more disappointment. They have sunset the ability to entirely access since March 2025. I am trying to learn all this, with the mislead hope, in Feb 2026! And now I wonder why the tutorials weren't updated! 😖
So the state of affairs now is that you can script and upload data, and, download/access that data you have uploaded via that script. This hardly solves my requirement. There was probably a time developers had access to entire data. But Google has now intentionally limited this. I am frustrated at this pattern of capitalism that I decline to comment further on this.
I could have used AI to help. But honestly it was too early for that. I was simply on a exploration spree and I hit mildly sad news. However all internet searches prior to being "saddened" said that my goal was achievable.
For those who have reached this paragraph, Google Takeout is the only option for a complete backup. I hear that it thorns and caveats. I shall leave it for the world to rant on that subject.
Sunday, December 14, 2025
Will you invite Mark Zuckerberg to your wedding?
TLDR; this is just a critique on the default non-private design of Whatsapp, a famous messaging app. Many apps adopt this design principle. We have to be critical of such design and the people behind those designs.
You own a sim belonging to a particular network. The sim is capable of storing a few mobile numbers. However, these days people have their contacts synced up in Google. Having google contacts makes it easy to restore contacts onto a new phone. This is relatively convenient for many consumers.
Most people in India prefer using a single mobile sim for all purposes. Culturally this dates back to the days when people had landline telephones. Each house would probably have only one phone line and a single phone number. It was enough; it served its purpose. For our various domestic needs at the time, we'd often call an electrician, plumber, etc. Back in those days we stored their numbers in a diary. The wired telephones of that time did not have a capability to store phone numbers on it.
Cut to the modern day, traditional SIMs have an upper limit as to how much numbers they can store. These limits are far superseded by what can be stored on Google Contacts.
Now whatsapp is a modern messaging app which the company called as Meta, formerly Facebook, has acquired a long while back. A long while back it has introduced the system of showing a status.
A WhatsApp Status is a feature in WhatsApp that lets you share updates with your contacts in a certain format. Primarily the section below will outline it
📌 Key Details of WhatsApp Status
- Temporary posts: A status update lasts for 24 hours before disappearing automatically.
- Content types: You can post text, photos, videos, GIFs, or links.
- Privacy controls: You decide who can see your status (all contacts, selected contacts, or exclude specific ones).
- End-to-end encryption: Like chats, statuses are protected so only the people you choose can view them.
- Replies: Friends can reply directly to your status, which starts a private chat.
🎯 Purpose
- Share moments (like a trip photo or a thought of the day).
- Broadcast announcements (e.g., “Closed today” for a business).
- Express moods or creativity with text, emojis, and stickers.
⚡ Example
- You post: “Enjoying the sunset 🌅” with a photo.
- Your contacts see it in the Status tab.
- After 24 hours, it disappears automatically.
So, a WhatsApp Status is essentially your short-lived story or update that your contacts can view for a day.
It is a given that Whatsapp has privacy controls which enable controlling who you are going to share your update with. But people do not realize that out-of-the-box, your status updates go to everyone in your contacts who also use whatsapp.
Why would you want to share your "personal" status update with your plumber/electrician/taxi driver/etc? These are people not directly connected with most aspects of your life. Would you invite these people to your wedding, or, your children's wedding? Perhaps there are a few people who might invite such people to their marriages or important life events. But statistically speaking they don't make the majority of people in urban India. (In Indian villages, the story is a little different).
What do we do about it? Are we not meant to store contacts of local service providers in our phone contacts? Are they meant to be only reached via internet search? Are we supposed to have a different mobile number and phone only meant to store the number of local service providers?
What does it say about the company or the person who has designed such an app? Does he care about your privacy? Will you invite such a person to your family wedding? The creators or owners of such apps are considered celebrities. There is a certain social allure to invite a celebrity to your personal life event. It might give you a relative social flair if you get to mention that a celebrity is attending your marriage. To me, personally that idea is insane. If you are likely to show such a behavior, then you might surely will get labelled as a status-seeking social and selfish animal with no concern to protect the society you live in.
On a relative positive vein of thought, perhaps one could argue that "that design" is actually meant to make you "more" privacy conscious. It is what is required by the ever-changing modern times. I don't agree. Perhaps life might go this route...One day our future generations should be thought in schools itself to be privacy conscious. But the kind of privacy issues in the modern day were much different a few centuries back. Case-in-point - you should probably read the classic by T.H called "The Mayor of Casterbridge". We were not bothered by privacy those days. Why should we now?
Saturday, September 13, 2025
[Rant] A gmail google takeout frustration
⚠️ The intention here is not to point fingers at products or an organization.
TLDR; I tried to "cleanse" my gmail inbox, and, gave up. But I discovered some pythonic support related things along the way. Respect for that. 🙏
If you are someone from my generation, I am sure statistically speaking there must be around 50k unread emails in your inbox. I do not want to explain why that is so. It is a fun exercise to try to understand why the dire state of such email inboxes. But in this blog post, I guess it is enough to sum it up by stating that most of us are victims of capitalism and the communication revolution.
I set out on the journey of reducing my Google One storage foot print. Somewhere in one of Google One's web pages, we can see product wise usage of the storage. (Between Photos, Gmail, Drive, etc). Gmail wasn't the culprit here. Gmail had some sizable chunk of data, but, Photos was taking 7x more than that.
Therefore I figured out what I could cull from my gmail inbox. There are a lot of things I need to keep - like bank statements, receipts, personal communications with people in my friends circle, etc. There are a lot of things I can discard - all of those facebook notification emails, quora email digests, etc.
At this stage, there is no point in wondering why the inbox is flooded with these. At one point I was active into social media, and, therefore I never considered those emails as junk. But now they are! Oh, how the times have changed!!
I assumed that there could be a way to estimate what I am about to delete, and, then actually delete it. In other words, I could say that I wanted to delete which I deemed unnecessary, and, not something accidentally.
My plan was to do a kind of data analysis on the data. In simpler words, find out who is spamming me. Then gather the data, and, write a google app scripts to delete the emails. But I was in for a shock. Highlighting two important points below:
1. Many mail items had received time, but they are not timezone normalized. In some cases a few the formats itself were varying. There is no reason why one should expect data that way.
2. You cannot trace a mail item to a thread. Gmail servers organize emails as conversation threads. Each thread has a unique identifier. I know this since I have played around gmail inboxes via google app scripts. There looks to be an identifier but there is no correlation with what is on gmail servers.
These two reasons make it absolutely impossible for me to decide what to delete before I delete.
I used jupyter notebooks and pandas to help we out with this exercise. I was surprised that python had built-in support for working with mbox files. My choice to use a programming language such as python is personal. The language and its ecosystem is quite mature towards data analysis. I am sure others language ecosystems exist. However, after saying all this I am not trying to evangelize usage of some product or another.
It has been more than 10+ years single google takeout released. It is natural for a bloke like to be shocked. Why is there no support the way you want it to be. I think it is probably because it takes efforts to design a archival system that supports your email server. And my use case happens to be niche. People may think more about backing up their data. Not find a convoluted way to "cleanse" it.
However, I am hardly discouraging others to walk this path. In fact I encourage it. Who knows, a fresh set of eyes might discover something I could not. Just be happy to let people know if it comes to that.
Friday, June 13, 2025
My 2 paisa (cents) on digipin
It is a geo-coded addressing framework. However, to appreciate the concept and the acceptance of the digipin, you need to contrast it with the concept of India Post's PINCODE. I am purposefully omitting all that in this post.
I feel this addressing system helps a lot of "machine readable" systems. This term is a very broad term; too esoteric for the common man to understand. Ultimately, I think "machine readability" is what enables common man to shop online, order food, get turn-by-turn directions while navigation, etc. It is the whole reason why you are able to read this blog post today. However, let's not go there either.
Again, the next few lines are perhaps what a common man would not appreciate all that much...the crux of this addressing framework is a system for encoding/decoding gps coordinates mainly latitude and longitude. Somebody or a handful of people, thought of it, and, fought to make it relevant. Kudos for that.
Every Indian would want to tout this as a novel idea; its relatively novel. There is already a manifestation of an addressing framework in Google Maps. (Good luck finding what it is, much less using it). There are many others - like What3Words. (Car enthusiasts might know). You can find more if you wikipedia geocoding.
A common man can find more information on digipin. (If he or she is ⚠️determined). I found a github repo which gives a neat technical documentation. There is also DHRUVA. It is an acronym. That document details the idea behind digipin. All of these can be found of the website of India Post after a little internet search.
Final Note
All this is good innovation. But don't forget we are still a savage species. Some individuals in this species can give birth to increase its relative population. The mechanism concerned has been the same for millions of years. And it is going to be the same for millions more. Of course, today there are technologies like IVF, and, c-sections, etc. (But that is beside the point).
A subset of that population gets to witness these kinds of innovations over their lifetimes. In one sense, that is a blessing. But forget that what "these individuals" did over the years to get there. They have lied, rescued, murdered, fought, escaped, ate food, polluted, cheated, innovated, raped, invented, travelled, fake news-ed, voted, blogged, judged, punished, etc. They've done a myriad of things both good and bad.
Realize that humanity even today still continues to do these same things.
And oh yes, there is digipin for places in the Indian/Arabian oceans too.🌊
Wednesday, March 20, 2024
Dammit root-check (a yeoman bug saga)
TLDR; Discovered a bug in yeoman, and, thought it was a bug for a long time. Until I discovered it was a module called root-check. And the bug wasn't actually a bug!
This is a rant. My previous blog post, does add a little context here. But it is not "absolutely necessary" that people must read that one first before continuing here. This is a post about a bug I recently faced with yeoman.
For those in the dark, Yeoman is a program to scaffold projects. Mostly nodejs. But you are not limited to nodejs projects; you can scaffold any kind of project. And, you could make it do some simple tasks. So when I figured out how to make cloud-init vmdks, I thought it needed a bit of automation, and, went ahead and made a yeoman generator for the same.
So this involves writing a custom generator.
A generator in yeoman parlance, is an encapsulation of a folder structure, files (that can be templated), and, scaffolding logic. So when a generator is run in your working folder, it is usually for a specific purpose, like for e.g., a scaffold react app, or, an angular, or, a loopback 4 application, etc, the generator creates the necessary folder structure, assets, etc, (including adding of license texts), to get you quickly started with the respective development process.
The yeoman cli (command-line interface) is a nodejs program, that helps humans download generators from the internet (i.e. generators that meet their project needs), discover generators already downloaded/installed on their machine, and, executing them. There are other parts involved in the picture; together they lend themselves to be a kind of an ecosystem for scaffolding projects. This is in the same spirit of tools like Maven, or, NuGet.
I will narrate my recent yeoman experience. The goal is not to ridicule the project maintainers. If you asked someone what opensource software development looked like...this blog post might give you a perspective. Further, I am not imposing that the reader be familiar about the tool. However, I make no attempt at explaining specifics since I believe they are self-explainable.
The first hiccup was the cli and the generator-generator. Today, from npm you download the following:
yo@5.0.0
generator-generator@5.1.0
And, when you type yo generator (to scaffold a custom generator project), the cli errors! But, once you google enough, you will find that the simple fix for this problem is to downgrade yo, i.e. install yo@4.3.1. With this I was able to progress authoring my generator. But please note this as issue #1.
I knew what the generator should do. But when it specifically came to do a linux filesystem mount, things started to break. I didn't know why it failed! I ensured that I ran in an rooted terminal and all. I wrote some isolated tests and confirmed that there is actually no fault with code I wrote. And, yet its failure to work through a yeoman cli invocation escaped me. Make note of this as issue #2.
And, the next thing I did is, raised an issue on github. This issue post contains examples of what I am trying to accomplish, and, an isolated example which proved that the file mount was working even as expected when running via root. (You will also find a gist in that post).
There was an itch to "tell the world" first; I went around forums and asked people if they would react on the github issue. It is unethical to do this, but people do it anyway. However, my aim was to get other people somehow confirm that they were able to reproduce the bug, and then perhaps ask them nicely to react on that issue!
Those attempts didn't work anyway. So, there was no choice, but to read the source code. I wondered if this could be a bug with nodejs itself?! On linux?! Can I pride myself on discovering a nodejs bug?!! All the source code research did was help me make a better isolate test script. It modeled what happened inside the yeoman cli. And to my surprise even that test seemed to perform the file-mount; whereas when yeoman tried to run my generator, the linux file mount failed! I was flabbergasted. Here is the link to that isolated example: https://gist.github.com/deostroll/b69f6868c99f97bccb14bf1b848c7bbf#file-index-js
For a long time, I thought the issue could be #1. Am I working with outdated components?! I made the next decision to find out the updated components I have to use. But I couldn't find any in those standard official repos which npm pointed to. This made we wonder about OSS experience. Now I am really at the mercy of the maintainers, or I am on my own to fix the problem. Because, as of that moment, my issue on github, were merely bytes of data stored on github's database residing in a datacenter somewhere in the world. Would someone ever respond as to why the bug was so?
Lingering around, trying to find out what could be the updated component versions I could work with, I discover a few other facts. Many OSS in javascript and web development in general are in some kind of a movement to embrace new standards - like async/await, decorators, etc. Some of these standards are not formalized into the language itself. For e.g. decorators, is not yet imbibed into the ECMAScript standard yet. It is still in an experimental phase, however, because of typescript, developers can enjoy using them in their code bases. So, this is what is happening in our software landscape today - a kind of migration of code patterns.
Most OSSs, have nothing new to bring to the table for developers. But they would do this migration anyway for several reasons. Some of them do it well; that is their end-developers are not affected. Everything works like before for them. For others, not so much. I seem to be stuck in this branch of life. Yeoman is migrating. They are even namespacing their projects over at npm, in an effort to reinvent the wheel. This leaves developers like me in the shadow on how to fix things. But make a mental note of my actual position. I am not someone deeply involved with this project; I have not made any contributions. Nor do I go about doing code reviews, or respond to other issues on their github issues page. I am using the so-called software after 10 years, and I find an issue. I post it on their issues page with full hope that someone would quickly respond. And then, I realize about this great migration, and realize my bug may never get the response I am hoping for.
Ultimately what gave me the clue was the second version of an isolated test. If I plug my generator into my yeoman environment properly and run in an elevated (or rooted) terminal, my file mount succeeds. But, the same thing via the yeoman cli fails, still! At this moment, there was still no answer.
And then, one of the maintainers responded to my issue post. His response was that I was working with outdated components; they were more than 5 years old! I don't know why the maintainer actually avoided the issue. That is when I actually "read" what I posted. Compare the 1st isolated test and the 2nd isolated test. The second one was more explainable. Perhaps, there is a better probability that a maintainer would understand the underlying issue IF I had posted that one. I wondered to myself what was I smoking when I was writing the issue post like that. 🤔
So, what has ultimately made me figure this all out? I happened to capture the error code for the (linux) mount program, and googled it. It seems that this error only happens when the (linux) mount command runs as a non-root user. I am not running as a non-root user! Now does yeoman have a thing for running as root...? IT DOES. The cli program has a module called root-check and if invoked anywhere in code, and if the terminal is rooted, it downgrades the process to a non-root one. And in my case, there was no other indication of this other than the failure of the mount command!
The damn bug was actually a feature! 🤦♂️
A few minutes prior to finding out the answer to this problem, I came across this issue post on the repository of root-check module. It is titled rather comically. The OP expresses his astonishment/angst. And he also suggested that this module should have an environment variable to control or toggle the root-check behavior. And the maintainer also provided an apt reply. But somehow after all this experience, and, reading that OP post, I could understand his sentiment, and, wanted what he actually wanted.
Thursday, February 22, 2024
So I think I figured cloud-init!
Previously I wrote about cloud-init as part of something a cloud service provider might offer. (Or perhaps I simply called it user-data; I don't accurately recall) Recently I have learned that it is something provisioned by the operating system itself. (Especially linux based servers). I do not know the history of the os feature as such, but if you are someone who plays around with Oracle Virtualbox for provisioning VMs then you need to know how to benefit from cloud-init.
I had to go through several webpages and perform several experiments to get it right. So in this post I will collate the steps for you to get easily started.
- (Step 1) TLDR: Grab the vmdk file. Create a blank VM (no disk) and attach the disk you have downloaded.
You need to grab a cloud image. Every distro has it. Its a vmdk file, that is it is a virtual box disk file. (Not the traditional iso). If you created a blank VM and attached this disk, and, powered up the VM, the os will boot and display the login prompt. But since you don't know the credentials, you cannot proceed to work with the vm instance any further. - Compose the cloud-init disk. Multiple steps required here. Hence find the dedicated section below
- Attach the cloud-init disk to the above, and, boot.
Goodbye secure practices👋🫡
Configuring the cloud-init disk
I will reproduce the commands in a slightly different way below. Now is probably a good time to check out some cloud-init docs and tutorial videos. It should give you a precursor to the stuff that I write, for e.g. in the user-data or meta-data file below. The tutorials you find online, are vastly different from what you are going to go through out here.
0. What am I doing here?
1. create a user-data file:
#cloud-config
users:
- default
ssh_pwauth: true
chpasswd: { expire: false }
preserve_hostname: False
hostname: osbox03
runcmd:
- [ ls, -l, / ]
- [ sh, -xc, "echo $(date) ': hello world!'" ]
- [ sh, -c, echo "=========hello world=========" ]
- [ mkdir, "/home/ubuntu/nodejs" ]
- [ wget, https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz, -O, /home/ubuntu/nodejs/node-v20.11.1-linux-x64.tar.xz ]
- [ tar, xvf, /home/ubuntu/nodejs/node-v20.11.1-linux-x64.tar.xz, -C, /home/ubuntu/nodejs/ ]
- [ ln, -s, /home/ubuntu/nodejs/node-v20.11.1-linux-x64/bin/node, /bin/node ]
- [ ln, -s, /home/ubuntu/nodejs/node-v20.11.1-linux-x64/bin/npx, /bin/npx ]
- [ ln, -s, /home/ubuntu/nodejs/node-v20.11.1-linux-x64/bin/npm, /bin/npm ]
- [ rm, /home/ubuntu/nodejs/node-v20.11.1-linux-x64.tar.xz ]
system_info:
default_user:
name: ubuntu
plain_text_passwd: 'ubuntu'
shell: /bin/bash
lock_passwd: false
gecos: ubuntu user2. Create meta-data file:
instance-id: my-instance-1
3. Create the cloud-init disk:
# Create empty virtual hard drive file
dd if=/dev/zero of=config.img bs=1 count=0 seek=2M
# put correct filesystem and disk label on
mkfs.vfat -n cidata config.img
# mount it somewhere so you can put the config data on
sudo mount config.img /mnt
Copy the user-data and meta-data files to /mnt, and, then unmount:
sudo cp user-data meta-data /mntsudo umount /mntconfig.img is hydrated with the cloud-init setup. We need to convert the file with img extension to vmdk extension.
sudo apt-get install qemu-kvm
qemu-img convert -O vmdk config.img config.vmdkNow attach config.vmdk to the VM created in step #1, and power it up.
Now after you have powered up your VM, you can physically log-in to the terminal. You can quickly inspect the /home/ubuntu/nodejs folder. If contents don't exist, you may have to wait a while for cloud-init to conclude its work. You can run the following commands to inspect the cloud-init output:
Saturday, February 12, 2022
Copying files from host to container and vice versa
Here is a simple trick to deal with the menace of getting files from the host to container or vice versa. This can even work with VMs running inside your host. We usually use ssh to connect to VMs or containers. When working with the former ssh itself has solutions (like scp) to do the same thing. But it can still be done using the technique I am about to explain.
So in most popular docker images (linux based) there will always be a base64 utility program. (Or it can be installed via any package manager utility like apt or yum). The same utility program exists on several other popular operating systems out-of-the-box. And even if it not there, (especially on Windows), there are other applications that provide the same utility program. For e.g. git bash command line.
The steps are simple. Say you have a file called hello.txt with some text.
1. Run the base64 utility to encode the file.
$ base64 hello.txt
2. Copy the output to your clipboard.
3. In your target container instance, in an exec session, you need to do the following:
$ echo <base64_text> | base64 --decode - > hello.txt
The caveats
1. The container image should be linux based, and, have a base64 utility installed. If not installed there must be a script-only solution...will share when I find it.
2. In this example, I based the base64 binary based on what I experienced. Some binaries may have a different set of arguments. Please consult the help docs
NB: #3 is the usual bummer. But if you are able to write on the container file system, why not just use exec sessions⁉️
So why does it work?
I do not have a solid answer. You can youtube about it to understand how the algo works. All I know is that the encoding process is based on 64 ascii characters. All the 64 characters can be typed using a simple english keyboard (US layout).
Incidentally base64 is also a very popular with data transmission over the internet. Because it is mostly ascii based. I learned this the hard way when I explored SMTP. protocol and servers
So any digital sequence of bytes can be encoded, transferred and, then reformed using base64. That is the underlying principle of why this works.
I conclude this post with an interesting exercise. Suppose there is a file with content inside it. This file also has some set of file permissions. How do you get a file across (to a container or elsewhere) with the same permission set?
Saturday, February 5, 2022
Cloud-init or userdata
To start off I would have to say that cloud-init is mostly a concept/feature associated with ubuntu server distros. I have been installing these distros a lot and have seen a lot of console output with this term. But I never really understood much less appreciated its significance, until I explored cloud services such as AWS, DigitalOcean, etc. On cloud services, this feature is commonly referred to as "userdata". (Not all cloud services use that term, or probably have this feature).
As the name suggests it is meant to initialize your VM instance to the required state for you to go about your business - exploring or running software including:
1. Updating software
2. Installing favorite tools - e.g ifconfig in linux
3. Creating user account, setting up hostname, etc...
That is all you need to know. I will give you a quick info about how I came to experience this feature.
So I was exploring SSDP protocol. In short, it is a way programs can find other programs on the network. There are many use cases for this kind of feature in a program. Most commonly it forms an essential part of similar programs trying to decide among themselves who should be a leader or who should be a slave.
A developer exploring cloud services would normally find surprises such as the ones mentioned above. But after all that is done, you explore the ssdpy program. This program has CLI commands to start a SSDP server which can publish some service (usually on the same host machine), and, a discovery program that can discover this. You run the discovery program from a different VM in the same network.
However, SSDP doesn't work in the cloud. To test, I spun up two VMs, came up with the above conclusion and then quickly destroyed the VMs so I don't incur operational costs. But then, I thought about testing it with a different set of options.
So basically all those commands required to setup ssdpy needed to be run, on two VM instances. It seemed apt to use the "userdata" feature here. Further, along with this userdata initialization, I also downloaded some bash scripts from my github gist intended to send notifications to my mobile phone when the VM was "ready".
Final verdict about SSDP is still the same - SSDP doesn't work in the cloud. I am not going to answer why that is so...This post was a short intro into "userdata", or cloud-init.
Sunday, November 28, 2021
[Rant] about the "browser based" video editor - Mastershot.app
TLDR; all the video rendering happens on your own machine. So not really helpful if you have cheap hardware.
Mastershot is an online video editor. I am not promoting the use web app either. That is entirely up to you. This post isn't a critique about the experience the app lends to end-users. I myself haven't used the app so far. It requires a signup and everything. So I never bothered. Its completely browser-based, and, that is the actual problem.
So a bit of history: I was interested in a web-based video editor. I have frozen/crashed my machine a couple times trying to edit videos, and, then render them. I frequently run into these troubles since I use a computer with inferior hardware. I am still on the lookout for a solution however. I want it to be opensource and something I can setup on my own, and, run in my own home network.
So a cursory internet search lead me to Mastershot. I understand that it is a web-based video editor. (Or precisely a chrome-based video editor - chromium or google chrome). The author markets it as a "simple" editor where the video you upload, never leaves the browser. Further, he contrasts with other services (for e.g. like WeVideo) where they force you to bear concerned company's watermark logo on the video or something to this effect; his app does not indulge in such branding tactics.
You can pause here and check out the app, or the hackernews comments about this app, and try to understand the app. It is cool to witness how much browser technology has evolved - today we are able to do video editing in the web browser. I was mesmerized until I realized where I was coming from...
A critical experience related to video editing is the final thing - the video rendering. After all the hard work of editing, mixing audio, adding images/text/etc, you want to distribute the video in a format that your audience can play. Not many people realize that this is also a critical experience. You can term it as the post-editing experience for lack of a better word.
After getting your resolution, file formats, etc all correct, you have to wait for the final video to "render". And this is CPU intensive. Which was why, for long videos, my pc (with inferior hardware) always gave up responding to even a mouse moving across the screen. Mouse movements became sluggish.
So it finally means, for faster rendering, you need a pc with some superior hardware. It will definitely burn your pockets. You can buy laptops which have the processing power to do this. But, I just don't feel comfortable being "mobile" with an expensive piece of hardware. I rather invest in a low end laptop, and, offset all the rendering to a much powerful machine...like a dedicated server. There is also a privacy aspect to this hypothetical web-based solution I am hoping to obtain. But its completely for personal use inside of my personal network. So privacy isn't so much significant here.
Thus, the reason for why I started off writing this post. I realize that Mastershot is a clever app, but it does not help with rendering because it all happens in your browser on your machine which utilizes your own hardware for rendering. So if your hardware is not up to it, your computer mouse movements while rendering might be erratic.
Friday, October 8, 2021
Tip/trick for Visual Code logpoint debugging - nodejs
TLDR; you can decorate logpoint messages to include the file and line number. Useful for tracking the execution of nodejs code/module.
Add these lines of code to the beginning of the file:
You just need add it once. In case you are running multiple test files, include this code in the file that would execute the earliest. So for e.g., if you use mocha as your test runner, this piece of code could go in a require script (mocha --require test/init.js test/**/*.spec.js).
So the getTrace() is now available globally.
Next, add your logpoint messages in the way shown below:
Thats it!!! Now watch the magic unfold when you run your code in debugging mode, and, these logpoints hit. You can either view them in the Debug Console. (Even elsewhere depending on how you started your debugging session).
Saturday, October 10, 2020
The era of faceless conversations - an essay
Disclaimer: This blog of mine hasn't featured essays before.
If you are reading this you are in a sense having a clumsy conversation with me. Actually, its more of a monologue. You don't know me, nor I you. We'll probably never meet. And, if we do, I will leave that to fate.
But it is a little scary to meet someone this way. At least for someone like me; although I am in my mid 30s. But in today's world this same fear has been twisted into a business model - think online dating, or, matrimonial services. This anxiety is both good and bad. In some way and to some degree, it is committed to every individual’s well-being. A mother might tell her young daughter not to talk to strangers, or, stay away from that shady family uncle; otherwise you could get kidnapped, or, worse, molested! Would the young daughter feel nervous when that person is around? Your teenage friend might persuade you to express your feeling to the one your heart skip's a beat for. And if you are earnestly going to express them, won't you be a little nervous?!
This anxiety is universal and normal human behavior.
Now, you may have imagined people to fit those fictional characters and scenarios I wrote earlier. Adults of this generation can easily relate to it. Now I implore you to imagine those same characters in a more modern context. Imagine those same conversations over a phone, or, a video call.
Will the experience be the same?
What about the anxiety? Is the stranger over the phone or email, an immediate potential threat? Now that your teenage friend, has encouraged you...how would you have proposed? Emojis? Friend Request? What then? Observed and scrutinized all your crush's pics! Tried to find out where the crush hangs out so you can be closer to the person; there is a chance the two of you meet face-to-face?
We are not as confronting as our previous generations would have been. Is this not some “thing” that should be responsibly taught in schools?
We can all agree some "thing" is different? Shall I label the way we have conversations today as "faceless"? Most of the time we are not really confronting the person. Is it good or bad? What exactly transpired over the years? Can I call that "civilization"?
We have many mortals to thank for this revolution in the way we humans communicate. We also have many hard humanity facts to curse about.
Civilization. Had I omitted this word; would you have given some thought to this?
But I must divert your attention to a more pressing and related matter - having arguments on this faceless internet. It sounds a little silly on a relative scale. But we all take the liberty to assume that there is an intelligible person at the other end. That mortal is masked under a pseudonym we software developers fondly call a "username".
The idea behind facelessness is not a novel idea. It probably has been mentioned and debated many times. In fact, I may even be plagiarizing someone's TED talk or movie here. Facelessness has existed long before modern forums like HN (Hacker News), Reddit, 9Gag, (or, the gamut of similar other services) existed. But it has bought about an explosion in the way we communicate. This explosion is a sign of progression; it is healthy. But such “progress” will typically have its own set of problems.
Today we are talking to strangers, arguing with them. We are not quick to research that user; we don't take the time to write a bio perhaps; we are quick to respond/react. No concern for which part of the world the OP is. We probably won't even do an age verification. Tomorrow, a social media platform (the likes of Facebook, or Twitter, etc) may insist we be over 18. Its easy to fake things such as our age/gender on the internet. Others, are there for the icing on the cakes (aka upvotes, likes, appreciations, or even silently observing the drama). This relative facelessness is now becoming degenerative. There are flame posts, shit posts, and, people with the sole purpose of maligning others. People are exiting forums, expressing fatigue of arguing with the OP; quitting Facebook, Instagram or Twitter...or several other services. Perhaps even an online banking platform, after becoming dissatisfied at the customer service and bank policy.
It is quite unlike a politician walking out on national television after a heated inconclusive debate. The politician might have lost hope at humanity. Perhaps that is the illusion he or she wants to create. It is a drama tactic to raise support from the people. (The faceless television viewers). But, let us assume it has gone really bad for that politician - he or she has completely lost faith in humanity. Then in all probability he or she is walking back to the kingdom of humanity where there are others to help him or her out of that abject emotional state. His/her own family perhaps.
Can you say the same for our mortal user who has just done the same thing? What drama tactic just transpired? What insane kingdom would he or she have wandered off to? Can you pull the person back to the real world? Would you? The faceless You?
Now imagine, somebody knocking at your door. Some unfamiliar foreign couple hands you a photo of their 15 or 16-year-old child…with tears. Will you think, was that "argument" really worth?
Oh, faceless You.




