All posts by Abhishek Nagekar

Private Cloud Part 2 | Encrypted Storage With NextCloud

New cloud setup. YAAY! Self hosted, encrypted and scalable. Plus comes with a nice web interface, native Linux and Android clients and its very own app store. I’ll first write about the setup itself, and then some of my personal thoughts over the entire private cloud exercise.

Features Overview

The major components of the setup include the following

  • NextCloud 11 on Ubuntu using Digital Ocean’s one click installer on a 5 USD cloud vps
  • Digital Ocean’s flexible block storage
  • Let’s Encrypt for free TLS
  • NextCloud sync client for Arch and Android on desktop and phone respectively for data sync
  • DavDroid for contacts and calender sync on Android (uses WebDAV)
  • Optional redundant backup and client side encryption using GnuPG (see below)

Pros Vs Cons

So I now have a proper private cloud, self hosted, synced across mobile and desktop (including contacts, messages and calender), optional client-side encryption and scalable (♥DigitalOcean♥). What’s amazing is that I never had a native Google Drive client on desktop, but now I have a native NextCloud client, and it just works. And yes, it isn’t all sunshine and rainbow. There are some serious trade-offs which I should mention at this point, to make this fair.

  • No Google Peering, hence backing up media is going to be a struggle on slow connections
  • Google’s cloud is without a doubt more securely managed and reliable than my vps.
  • Integration with Android is not as seamless as it was with Google apps, sync is almost always delayed (By 10 minutes. Yes, I’m an impatient (read ‘spoiled’) Google user)
  • Server maintenance is now my responsibility. Not a huge deal, but just something to keep in mind

Having said that, most of it is just a matter of getting familiar with the new set of tools in the arsenal. I’ve tried to keep most things minimal. Using few widely adopted technologies and keeping them regularly updated, sticking to the best practices and disabling any unwanted, potentially dangerous defaults and with that the server is secure from most adversaries. Let’s first define what “secure” means in the current context using a threat model.

Threat Model

The only thing worse than no security, is a false sense of security

Instead of securing everything in an ad hoc fashion, I’m using this explicitly defined threat model, which will help me prioritize what assets to secure and the degree of security, and more importantly, what threats I’m NOT secure against.

  • Compromised end device (Laptop): Since data is present unencrypted on my end, an adversary having access to my computer via say a ssh backdoor can easily get access to all of my (unencrypted) data. Private keys cannot be compromised as they are password protected. A keylogger might be able to sniff out my password which can then be used to decrypt any encrypted data.
  • Compromised end device (Mobile phone): Since data cannot be decrypted on the mobile, all encrypted data would remain secure. Only the unencrypted files will get compromised. However, if an adversary gets access to my unlocked cell phone, securing cloud data would be the least of my worries.
  • Man In The Middle (MITM): As long as Let’s Encrypt does it’s job, TLS used should be enough to secure the data against most adversaries eavesdropping on my network. It would not protect me if Let’s Encrypt (or any other CA) gets compromised and an adversary makes duplicate certificates against my domain and uses it to eavesdrop the traffic, the possibility of which is rare.
  • Server Compromise: If the server is compromised through any server side vulnerability (assume root access) and an attacker gets access to everything on the server, all unencrypted files are compromised, which would include contacts/calender lists. Since the decryption key is never transmitted to the server, encrypted files won’t be compromised.

Why Client Side Encryption

The entire exercise would look pretty pointless if I just took all my data from G Drive and pushed it to NextCloud. And from the previous cloud server attempt, I know how uncomfortable it is to have your data accessible from the network all the time. Those reasons were more than enough for me to go for an encrypted cloud solution. Although it would still look pointless if you were to ask me why didn’t I just encrypt the data and upload it to G Drive again. The answer is simply because I didn’t want to.

After some research (being a novice with security, that was a must), I came up with a list of guidelines that I had to write my solution on.

  • Use of symmetric key cryptography for file encryption, particularly AES-128
  • Memorizing the AES key or using public key cryptography to store the key of file en/decryption on disk. (Not sure which is the proper way of doing it, although I’ve asked the experts for help)

Encryption

There are a lot of tools one can use for data encryption. I used Gnu’s Privacy Guard (GnuPG or simply GPG). It is anything but easy to use. But the nice part is that it just works, is extensively reviewed by experts and has been around since I was 4 years old. So in theory,

  • Generate a public/private key pair in GPG
  • Generate a strong passphrase for the encryption, and encrypt it using the public key you just generated. Store it locally someplace secure
  • Get a list of all files and directories from a specific folder using find (for one time backups), or use rsync with a local sync copy (for incremental backups)
  • Iterate the list (of all or changed files). If item is a directory, create that directory, if item is a file, encrypt the file and push it to that directory.
  • After encryption, you’re left with either two or three directories, /original-dir, /remote-encrypted and optionally, /local-unencrypted-sync
  • The additional (local sync) directory is useful when incremental backups are required and rsync uses this directory to keep track of changes, and only (re)encrypts those files that have been added/changed since last sync. Useful to setup a cron job. At this point, you can delete the files in your /original-dir safely
  • Decryption is just the opposite of this. You supply the location of your /remote-encrypted directory and the script generates a new directory with unencrypted content.


Original directory


Encrypted backup directory

This does the job for now. Here’s the script that I’m currently using. I wanted to enable sync without the need for a helper directory, just like Git does (it stores the changes in the same directory in a .git/ directory). Will update it if I manage to get that done.

In Closing

Eighteen months ago, I wrote on how to create a ‘cloud’ storage solution with the Raspberry Pi and half a terabyte hard disk that I had with me. Although it worked well (now that I think about it, it wasn’t really a cloud. Just storage attached to a computer accessible over the network. Wait, isn’t that a cloud? Damn these terms.), I was reluctant to keep my primary backup disk connected to the network all the time, powered by the tiny Pi, and hence I didn’t use it as much I had expected. So what I did then was what any sane person would’ve anyway done in the first place, connect the disk with a usb cable to the computer for file transfers and backups.

Earlier this year, I switched ISPs and got this new thing called Google Peering, which enabled me to efficiently backup all my data to the real ‘cloud’ (Google Drive). That worked, and it was effortless and maintenance free. And although Google doesn’t have a native Linux client yet, the web client was good enough for most things.

And that was the hardest thing to let go. Sync and automatic backups were, for me, the most useful feature of having Google around. And while everything else was easy to replace, the convenience of Drive is something that I’m still looking for in other open source solutions, something I even mentioned in my previous post on privacy.

So although I now have this good enough cloud solution, it definitely isn’t for everyone. The logical solution for most people (and me) would be to encrypt the data and back it up to Google Drive, Dropbox or others. I haven’t tried, but Mega.nz gives 50GB of free tier end to end encrypted storage. Ultimately, it makes much more sense to use a third party provider than doing it all yourself, but then again, where’s the fun in that! Thank you for reading.

Privacy – How I Converted

In spite of my inclination towards cyber security from an early age (relative to when I ‘discovered’ the Internet), I never was a big fan of privacy over the web. I knew some bits here and there about it, like how my data is used to serve me targeted content, how tracking happens even after I close the browser tabs and how companies watch me visiting sites and track my habits. Heck, I found it fascinating that I saw adverts from third party companies about the products that I was currently researching about. Internet, to me, was like a close friend who knows everything about you, your habits and interests, your lifestyle and more. And when I say friend, it isn’t metaphorical. I literally trusted the web for every bit of work-life thing that I got involved into. I liked that my email was always synced, that Google asked if I wanted to review the place I was at, that all my photos were automatically backed up to the cloud, that I got a ‘This day 3 years ago’ notifications every once in a while, that I received personalized notifications about the bills that were unpaid and the events that were due, like magic!

And all these years, I’ve heard about numerous leaks, activists exposing unethical government secrets and mass surveillance and I was always disconnected from it. When Airtel & BSNL were injecting adverts into my web pages, I was okay with it. When Google or Whatsapp changed their privacy policies, I readily accepted the new ones, after all I’m sure they value their users, and decide in their best interests, right? After all, what do I have to hide?

Now, I consider myself a huge fan of free and open source software, and in the open source world, you readily trust the software or content, not because you personally trust the people behind it, but because the code is subject to scrutiny by fellow community members and as a result, the chances of using an open source software that is a malware or a back-doored Trojan is essentially zero (such attempts are readily caught. (meta meta: is this a survivor bias?)). I remember the heavy criticism of Ubuntu for logging the search keywords of it’s users for serving them targeted ads which eventually led to elite members of the open source community advising against using Ubuntu and RMS calling it a ‘spyware’. But what Ubuntu did is only tiny bit as harmful (they did put an option to opt out of this ‘shopping lens’, or uninstall it altogether) as some of the tools and services we use everyday. And that is what I realized in the past month.

From here, it is about how I turned 180 degrees and started to care about privacy and anonymity more than ever, how I became paranoid about the data that I publish online and think twice before registering for an online service, or visiting untrusted websites without a VPN. If you feel this is of no interest to you, I urge you to close this tab after watching the following video. The message is very powerful and I’d like you to give yourself sufficient exposure to the problem before deciding if you want to care. You may continue reading if you would like to learn about my decision and what led me to it.

Let’s start with the most obvious question…

Why now?

The anticlimactic answer is, better late than never. This article isn’t the result of a single blog post that I read or any specific incident. It is a cumulative result of the critical exposure I’ve had in the past month or two, and a subconscious exposure of the past few years. I had this on my mind from some time, but laziness is what I’d call it. Who wants to give away the convenience of synced devices and automatic backups! I’m fortunate enough to have a paranoid friend around who doesn’t use many (any?) social networking sites and online services. All he has is probably a ProtonMail email address, and he’s just as active on the Internet as I am. I always considered his view of privacy a personal preference, a subjective view of the world, not an objective truth about the Internet and companies based on Internet. But recently, the more exposure I’m getting about the way Internet giants collect and use my information, government surveillance etc, the more I’m moving away from using their services. It isn’t about if someone is watching me while I use the Internet, which no one probably is, given my uninteresting Internet activities. It is the possibility that at any given moment someone/something could watch me, without my consent, store tonnes of meta data about me for use 15 years from now, and I might lose the basic right to privacy that I always took for granted, is what makes me uncomfortable.

However I don’t expect anything to change when I make a switch. In most cases, nothing would change for me, as an individual who accesses and relies on the Internet everyday. Free and open source alternatives exist and it is a matter of hours (if not days) to make a complete switch from proprietary to open source software. But now, I’m leaving a lot less footprints in random server logs and by using open source whenever possible, I can narrow down the number of malwares and spywares I carry around with me in my phone or laptop. And something I really need to emphasis on, a spyware is not necessarily installed by just a third party malicious user. OEMs ship spywares all the time (tampering preinstalled TLS certificates and performing MITM attack to show ads, now that’s dark). All this is without even mentioning the humongous quantities of crapware these OEMs ship their products with, widening the attack surface for a third party adversary. All of this can be mitigated if you control what’s installed on your devices and choose what services to use.

If you want to know more about what sort of threats to privacy exist around you, you might want to check out this amazing course by Nathan House titled ‘The Cyber Security Course – Hackers Exposed’. Don’t get intimidated by the title, it is for anyone who wishes to understand the threat landscape so that he can take the necessary steps to ensure adequate security and privacy according to his needs. Nathan does a great job at putting the key points in front for you to decide rather than feeding you his opinions. Highly recommend his course.

Is the threat real?

This question arises in the minds of people when they hear about issues like Privacy and Global Warming (I was surprised to find a good number people think Global Warming isn’t real). Is this real? Or is it one of those hyped-stories that would fade away and everything will get back to normal once media stops covering it. Let me start by confessing that it was in the last month that I read the terms of service of any company I used online for the first time, and boy I was surprised. I agree that reading ToS is boring, but it really is critical to ensure a peace of mind when you use a service. If you’re still not sold, check out this amazing site called tosdr.org or Terms-of-service-didn’t-read which summarizes the ToS of popular services and rates them from class A (good policy) to class E (bad policy) and the key reasons supporting the rating. The data is a bit outdated, but you do get a general sense of the corporation’s privacy structure. And to be honest, you don’t need any of this. All you need to do is keep your eyes and ears open and assess the data you’re about to give to the next application you download from the market. Take Whatapp’s ToS for example, the service which promises that the messages are end to end encrypted with Signal Protocol. Sure, they are. And there’s no doubt in my mind that Whatsapp is one of the most secure messengers we have with us today. But privacy and security are two very different topics to discuss, both equally important (a good read here). And when it comes to privacy, it is not our messages or content that companies usually target. It is our meta-data. Here’s what Snowden tweeted about it.

Are your readers having trouble understanding the term "metadata"? Replace it with "activity records." That's what they are. #clarity

— Edward Snowden (@Snowden) November 2, 2015

Now there are a lot of articles on this topic and hence I don’t plan to get into it. To quote a key point from one of the articles about what meta data really is,

  • They know you rang a phone sex service at 2:24 am and spoke for 18 minutes. But they don’t know what you talked about.
  • They know you called the suicide prevention hotline from the Golden Gate Bridge. But the topic of the call remains a secret.
  • They know you spoke with an HIV testing service, then your doctor, then your health insurance company in the same hour. But they don’t know what was discussed.

This example should not imply Whatsapp is the only or worst offender, it is just one of them that I’m familiar with (and use personally). I assume that you can read and decide for yourself.

Why did I care?

“But Government Surveillance is a US problem!”, “My nation doesn’t come under 5, 9 or 14 eyes. Sure, but don’t we all use the same Internet? I don’t need to emphasis about the importance of Internet in matters of freedom of speech, how it has nullified international borders to connect people of similar interests and how many revolutions it has started. I don’t need to mention that Internet is a second home to political (h)activists and dissidents, a place where they can express themselves to the masses. I certainly don’t need to mention what I personally feel about the Internet which you probably know by now. And I’m not even getting started on how, even if you don’t belong to any of these ‘eye’ nations, most of your traffic is still getting routed through them.

The way I think about it is, a full disclosure sometimes becomes necessary to bring about a change in the system that is broken and is resisting a fix. This was one of the highlights in Keren Elazari’s TED talk on ‘Hackers: Internet’s immune system’

Precautionary measures I took

I adopted some defensive measures to try out this new Internet lifestyle, applying the learnings from the past couple of months, since it wouldn’t make sense to not do it after this exposure. This is quite experimental, so try out what works for you, the way I’m doing. A word of caution though. This list would not cover you from threats and privacy breaches from third party adversaries like cyber criminals, who might choose targets more specifically (like sending a malware via email or infecting your local network). The best (and in many cases, only) defense against it is to keep your systems (laptops, mobile phones) up to date with the latest security patches. Did I make it sound important enough? KEEPING YOUR SYSTEM SOFTWARE UP TO DATE AND PATCHED IS THE BEST THING YOU CAN DO TO STAY SECURE. Sorry for screaming. Okay, now back to the measures I took.

  1. Flashed LineageOS on my Phone – Almost stock Android, plus more control over what I install (note: rooting, flashing, installing from unknown sources etc potentially opens a huge security hole in itself)
  2. No Google Play Services – The suite of Google apps such as Gmail, Youtube, Docs and Drive are optional, and I chose to not install them
  3. Gave up my G Suite subscription. So no synced devices and automatic photo backups. (Remember to ‘Takeout’ data before leaving)
  4. Turned off port forwarding, DMZ, UPnP and any other service on my router that might expose any of my internal devices to the Internet
  5. K-9 Mail as email client
  6. SkyTube for read-only tracking-free Youtube
  7. f-droid for free and open source Android apps, also there are plenty of closed source apk repositories that don’t require a Google account.
  8. DuckDuckGo as the default search engine across all devices
  9. Debian or Arch linux on desktop, as recommended by Nathan House, provides a good mix of active development, security, support and speed, although you can pretty much choose any good distro depending on your taste and harden it.
  10. Signal Messenger on Android/iOS for Whatsapp like security and usability minus the meta data issues
  11. Firefox Focus as the primary browser on phone, except when explicitly wanting to store history, in which case Mozilla Firefox
  12. Mozilla Firefox on desktop, and Chromium as the secondary browser. Google Chrome is a better browser imho, for it supports a lot more content types than Chromium does out of the box. Not to mention better updates and security. Boils down to your personal preference, really
  13. Deluge for torrents
  14. LibreOffice for document/presentation editing needs
  15. VLC for pretty much everything multimedia
  16. And the rest of the goodies you get with any nice distro. (Must admit that I haven’t found a Google Drive alternative yet)
  17. Lastly (and optionally), encrypted mail providers like ProtonMail for secure email and a good VPN (such as Mullvad, or Tor for that matter, but make sure you read the differences) for use when on public Wifi hotspots

Needless to say, that is what I’m using right now, and kind of recommend. Except for the couple of options on the top, I’m sure most of you are familiar with (and probably use) the rest. If yes, that awesome. That’s a win for the free and open source community. And I’m not affiliated to any of those! Haha

Is any of this necessary?

“You are overdoing it!” as my friend exclaimed. I totally agree, and to be really honest, it is not just about privacy at this point, it is about enjoying the new world that I’ve found, exploring the corners and trying to fit in. I believe that open source shouldn’t feel like a compromise. It should be a pleasant experience for everyone who uses it, whether or not they consciously care about it being free and open. I am sure not everyone is so willing to give away convenience for the sake of some principles and ‘freedom of the web’, and that is totally fine. As long as you take the decision of giving away your data and are okay with it for the rewards it comes with, and not let a corporation decide it for you, I’m no one to tell otherwise. I’m here to tell you that there’s a world out there that represents the open and free nature of the Internet, and it is not at all difficult to convert. I did, and so can anyone.

Links from the post

Aggregating all the blog / additional information post links with their titles from the above text here.

Thank you for reading.

A Programmer Or A Problem Solver?

Normally when we think of programming, we think of problem solving. Similarly, if someone works in the field of computers and say they love problem solving, we immediately assume that they work with some computer code. Programming is almost synonymous with problem solving, in that it involves breaking down complex looking problems into simple mini problems that can be easily taken care of. Where they might differ, in my opinion, is finding the right problems to solve.

The inspiration for this post came from a recent blog post that I read (embarrassed to admit I’m not able to find that post found it!) about the mistakes developers make. One of the mistakes was confusing between the love for problem solving and programming. That was a little “ahaa!” moment for me. It gave me a moment to reflect on my own likes and interests. What is it that excites me? Is it the idea of building the next big thing? Maybe. Is it spending countless hours writing code that does what has been done a million times before, just so that you can fall in love with your code all over again? Yes, that’s sounds about right.

I liked to call myself a problem solver, but I’m not even close to being one. I didn’t feel like there was a distinction. But there definitely is, now that I’ve met some people in my field who are ‘problem solvers’ first. I don’t have Github projects that reflect a problem solver. What you’d rather find are spot on examples of reinventing the wheel (a dozen chat/social network networks), attempts to write the most beautiful code that I can (regardless of whether it works or not), over-engineering to say the least, projects made entirely for trying out new languages, new frameworks, new IDEs, literally. I’m somewhat embarrassed to admit that the current project I’m working on is a chat backend as well.

You get the pattern. It isn’t hard to understand that I love programming. I love writing code regardless of the problem in hand. I see people building things that are changing the world, the way we live, the way we communicate, the way we travel and I appreciate them all. We need people like that. They are on the frontiers of the information age that programmers like me and many of you are riding on. It is here we start to see the difference between someone who is a programmer first and someone who is a problem solver first. I believe it is a matter of preference, experience, and the level and kind of exposure one has in the budding years in tech.

I had a couple of “tech friends” right from my junior college some 4 years ago, people with whom I could discuss programming and tech in general. Most of my collaborated projects were with these people, and we always worked on something because we enjoyed it, purely out of our “passion” for computers. We spoke about new languages, technological advancements and people in tech in our free time. We never thought any of this would help us get a good job or any project would appear on our CVs. That is one reason why technologies and frameworks are scattered all over my blog, instead of quality projects that people actually use in one particular technology that I could’ve been good at.

So that’s what I’ve learnt recently, and wished to share here. I (or anyone) won’t know which way is the right way to go, or if there is one, and it doesn’t really matter much as long as you enjoy what you’re doing and make a decent sum of money doing it. I admire people who are passionate about programming as well as problem solving, and the world would really be incomplete without either one. Thank you for reading.

Book Review – Deep Work By Cal Newport

I watched this video on Youtube that had a list of 10 books that every student should read. The first one, Deep Work by Cal Newport, was of particular interest to me, and I decided to read it. The reason? I’m a distraction junkie.

Introduction

On the highest possible level, the book is divided into two parts. The first part is where the author tries to convince us that deep work is valuable, that it results in a greater degree of productivity, that many successful people who create value embrace a state of hyper-focused concentration towards the work they’re doing. The book illustrates how an obligation by employers (especially in knowledge work) to respond to emails quickly, be active on social media websites and to work in a common work space full of noise, interruptions and shallow tasks (like frequent meetings) has resulted in a generation of knowledge workers who have accepted distractions as a way to life.

The second part assumes that we’ve accepted that the deep life is a good life, a life well lived and gives us a set of guidelines that we can follow to get the most out of our work hours. The reason for this part is quite clear. If I was asked to switch off my email for 3 days straight, or if an employee decides that he/she will not participate in their team’s daily meetings, that will have adverse effects on our careers. Best case, people will be upset with your delayed responses to their messages, worst case, you lose your job. Now how does one strike a balance between the two parts of their work life, the immediate part (shallow work) and the important part (deep work), without sacrificing a hand and a leg in exchange.

Following are a few key takeaways for me from the book. I’ll try to summarize each point in a line or two. The quotes are from the book itself.

Need for Deep Work

The author mentions the three groups of people who will thrive in the current economy, where most of the jobs are getting replaced by computer code.

  • those who can work with intelligent machines
  • those who are the best at what they do
  • those with the capital to invest

Now unless you belong to the last category, you’ll need to produce high quality work at an elite level. A lot of people can write computer code. But the few who create something of value with code that the masses then use is elite work. Deep work isn’t for those who wish to live an ordinary life. You can be a good engineer who does what the job expects from you and never need deep work. Deep work comes in when you want to push the abilities of your concentration muscle to its limits and produce high value in your profession.

Now depending on how we look at it, due to the social media / distraction media outburst, the number of knowledge workers who can work deeply has reduced significantly. It opens up a whole new opportunity for people who still have the ability (or can train themselves) to do deep work. And deep work is still valuable. Look at all the various artists, painters, musicians and other creative workers. It is common to see deep work in their profession because of it’s immediate effects. Deep work gives these people a sense of meaning in their work. But in case of knowledge workers, Internet (and the associated distractions) is an inevitable part of their lives, and that is why deep work is becoming increasingly rare here.

I have been a happy man ever since January 1, 1990, when I no longer had an email address. I’d used email since about 1975, and it seems to me that 15 years of email is plenty for one lifetime. Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration. – Donald Knuth

Embrace Boredom

Idleness is not just a vacation, an indulgence or a vice; it is as indispensable to the brain as vitamin D is to the body, and deprived of it we suffer a mental affliction as disfiguring as rickets… it is, paradoxically, necessary to getting any work done.

My personal problem right here. When I get 10 minutes of free time, I look into my phone. I have tonnes of applications that then keep me engaged (“updated”). I have content aggregators like Reddit which make sure I’m never short of content that can quench my thirst for distractions. And this is while I actively realize that the stuff I’m reading isn’t of much value to my future. To use an analogy, it is like having street side “Chinese” food. You know it isn’t good for your health, but you end up giving in to the temptations. Now, the obvious demerit to this is an adverse effect to your health. But what about the effect it has on your will power. Giving in to temptations and desires weakens your “mental muscle” for will power. It becomes harder and harder to resist the temptation when you keep giving in over and over again. The only way to train this muscle is to actively resist the temptation for distractions.

And apart from this, giving in to easy distractions keep your mind busy and dries it off its ability to work on value generating problems. It does not let quality thoughts come into your mind for subconscious processing, and as a result, you slowly but steadily lose the power to focus and do deep work altogether.

(Quit) Social Media

The author talks about all the adverse effects social media has on our productivity. Having a “presence” on websites like Facebook and Twitter, posting regular updates to keep your “audience” engaged and thus boosting whatever business you’re in, is not only a very misinformed thought, but also something that has become quite common in the information age. Here the author makes some great counterpoints on why, even if social networking has some benefits to it for some people, most people are better off spending the same time on work that can earn them the respect and reputation that can outweigh any benefits of a social media presence in the first place. Not to mention, this can save you the thoughts about “what your friends might be doing in their life right now?” when you’re working on something important.

Miscellaneous and Conclusion

The author talks about (surprisingly) detailed ways to get back your time from shallow activities. From talking to your boss explicitly about the ratio of your shallow to deep work, to answering an email such that it does not generate follow-ups that will take more of your time, to simply filtering what emails to actually answer. These are some real life tips that can be embraced by many knowledge workers.

I think this was one of the best self help books that I’ve read (I’ve not read a lot of them, to be honest), just as useful as “How to win friends and influence people” was for building relationships. The author’s use of simple language, of logical arguments (that most of us think about, but never question or go a step further into researching), examples of strategies, real world case studies and how to practically apply them into our “busy” schedules are some of the reasons that make reading this book truly worthwhile. I would highly recommend it to all those who feel “busy” all day, but don’t get a lot done. Who feel the need to check emails, messengers, social networks every 30 minutes to not miss out on the important stuff. Who want to overcome their addiction to shallow irrelevant “news articles” and memes. I’ll leave you with this…

Ironically, jobs are actually easier to enjoy than free time, because like flow activities they have built-in goals, feedback rules, and challenges, all of which encourage one to become involved in one’s work, to concentrate and lose oneself in it. Free time, on the other hand, is unstructured, and requires much greater effort to be shaped into something that can be enjoyed.

Guide To Driving On Indian roads

I’m a newbie at driving. In fact, I didn’t know how to drive until November 2016, when my dad got us Zacky, a Tata Zest petrol sedan. In the last 6 months, I drove her around 7000 kms total, 2400 of which were in the last 10 days, during my post engineering vacation trip where we took Zacky to my native place, Karnataka.

So I returned home yesterday, after driving the last 740-ish km stretch from Karwar > Ankola > Hubballi > Belagavi > Kolhapur > Satara > Pune > Panvel and joyful it was as was the entire journey.

Yesterday, while driving, I thought of writing a mini guide/mythbuster on the practical aspects of driving on Indian roads, highways and mudways alike, from a rookie’s perspective and this is it. Needless to say, in case you have any suggestions or corrections, feel free to use the comments section below.

1. People will overtake you from left. And you do the same.

If you are learning how to drive from the Internet, chances are, you might be tempted to follow this overtake-only-from-right rule. 3 minutes on any Indian highway are enough to tell you otherwise. Heavy vehicles will hog the rightmost lanes leaving you with no choice but to overtake from the left. Rest assured, after a while, it feels normal.

2. Speedlimit is like the Unicorn

Everyone knows about it but no one actually believes in it. Hence even if you follow the speedlimit, people will come honking from behind. Make sure you don’t overspeed beyond what you can control and slow down appropriately during night/rains. Large vehicles/SUVs/tourist vehicles are usually not very considerate of other vehicles and their safety on the road (Stereotyping = probably. Personal observation = yes). Maintain safe distance and let them pass.

3. Horn is your best friend

Dogs, cows, donkeys, people with ear phones on, people chatting on phones, people who are too cool to look before crossing the roads, people who are drunk are just some categories of obstacles you’ll encounter on roads. Honking, while not peaceful, might just prevent a mishap.

4. The vehicle in front of you WILL cut into your lane

There’s no one in front. Just a pickup truck in the middle lane at some distance. No reason for it to switch lanes. You approach it from the right crusing at over 100kmph. Just 30 meters to go and it starts to slide into your lane. He doesn’t have a rear view mirror, so not even his fault, right? You hit the brakes hard and send everything in your car flying.

Don’t let that happen. Honk. Blink. Do whatever it takes but make sure the person you’re about to pass realizes you’re coming.

5. Heavy vehicle drivers are the best and the worst people on roads

You’ll be terrified by how rough these heavy vehicle drivers drive. A small touch by a bus is good enough to send you rolling down the ghat. Most don’t have proper indicators, tail lamps or even rear view mirrors. ST bus drivers rally on the roads. Patience? LOL.

Those are one half. The other half of these heavy vehicles are driven by some of the best drivers you’ll see. They indicate every time. They will let you pass if possible, or warn you when not. And the most important trait. They’re patient. They would not cut into your lane at random. They’re proper drivers who understand what it is like to be at the receiving end of road rage.

6. Low beams?

I read that one should use low beam when driving slow and high beam when fast and when there’s no one in front of you or in the opposite lane. You might know that as well. Do people actually do that? Yes, half of them do. But the other half don’t resulting in times when you’re totally blinded by oncoming traffic. Literally. Try to blink to get their attention. Some might heed. Others might not. While there’s not much you can do about it, go slow, keep an eye on the lane boundaries and vehicles in front and behind you, so that you don’t bump into anybody.

7. Red means stop. Orange means slow down. Green means look and go.

Just because the signal shows green does not mean you can close your eyes and pass. Look out for that late guru trying to sneak out, rickshaw and taxi walas for whom signals don’t apply, ST buses and simply ignorant pedestrians. Whatever happens, do the right thing here. The car 20 meters behind you might remind you 10 seconds before the light turns green that you should start crawling, by continuously honking. Don’t get intimidated by it, and of course, don’t do it yourself.

8. Allow pedestrians to cross

It is very easy to forget pedestrians when one is driving, not letting them pass over zebra crossings, dangerously cutting them in traffic etc. A little bump of your one plus tonne car is all it takes to seriously injure them. What’s more? To save a couple of seconds, you might actually cause a lot of harm to both people and machine, causing longer delay, unnecessary fights, even loss of life. Show patience to people on foot/bicycles.

Also, several villages and towns (and their people) are notorious for being lawless and getting violent if you are involved in a mishap regardless of wrong doer. Your best policy is to drive cautiously in rural places.

9. Be extra careful on empty/low traffic two way roads and blind corners

It is possible that a heavy vehicle just down the curve is merrily driving in between the road, overtaking another heavy vehicle or a joyous motorcyclist cornering at high speeds drifting in the wrong lane. Low traffic can retard your reaction time and it is very easy to misjudge the safe speed for a corner. A lot of these factors make blind corners an usual spot for unfortunate events. Have that on the back of your mind and slow down on unsuspecting blind corners.

10. Concrete vs Asphalt roads

Our highways are a mix of asphalt and concrete roads. The grip levels change a lot as you move from asphalt to concrete, so does the noise and your overall confidence in turns. Get used to of the concrete roads before going into a high speed corner as the tires are more likely to lose traction on concrete roads, especially in rains.

11. Check your tires and tire pressure before hitting the road

No matter what you drive and how many safety check boxes your ride ticks. In the end, it is how the rubber mates with the road that makes the most difference. Unsurprisingly, mishaps involving tire burst are mostly due to worn out or under or over inflated tires. Make sure you check the recommended pressure for your particular tires (on driver side door panel) and check the pressure of each tire. It hardly takes 5 minutes, but can be the difference between a safe ride home and a blowout in the middle of the road, possible loss of control. Not to mention the better fuel economy you get by running on recommended pressure figures. The thread depth is an important factor for safe grip levels in rainy driving conditions.

12. Most motorists are nice

Just another (arguable) subjective observation; most people on roads, just like you and me, are good people who simply want to get to their destination safely, without worries. Most are willing to help if they spot anybody in trouble. Most follow the traffic rules, drive safely and won’t even come to your notice. But it is for the few outlaws due to whom you have to assume everyone on the road is crazy. That way, you can keep yourself safe. Not only that, knowing that most people are good citizens, just like you, will make it easier for you to ask for help or even help someone in need on the roads.

13. Music is nice, but loud music can exhaust you faster and retard your reaction time

The title says it all. It is proven that loud music retards your reaction time, which is critical when dealing with an emergency. At 120kmph, a delay of 1 second in reaction time can mean traveling 100 extra feet down the road, which can be the difference between stopping at a safe distance from an emergency and becoming part of one. Also, the calmer and quieter the music, the longer you can stay fresh and continue driving, as opposed to taking frequent brakes every 50 kilometers or so due to exhaustion of your mental resources.

14. Finally, in midst of all this, don’t forget to enjoy the journey

While crossing the ghats, it was raining heavily in some places. Once I even had to slow down to almost crawling speed due to the heavy rains and water saturating on the sides of the road. Although it was a pretty tensed situation, I think I was pretty lucky to have witnessed that cloudburst there, which made all vehicles turn on their hazard lights and look like fireflies on the streets, surrounding mountains covered with thick clouds and cool breeze all around.

What I really want to say is, the roads will never be without surprises, but keep an open mind and you and your passengers will be greeted with the best vibes that mother nature has to offer. Safety first, but make sure not to miss out on the beautiful journey because of the few negatives. I have already fallen in love with the roads of India, and man! they’re addictive. Once you get the taste of long driving your beautiful ride through the various terrains this country has to offer, there’s no going back. Here’s our Zacky in all her glory.

That’s all for this little guide. Thank you for reading!

Book Review – Siddhartha By Hermann Hesse

A little late with May’s book review, but here it is. This month’s book was a little unconventional (for me), and the first of its kind that I’ve read. The book is called Siddhartha and it describes the spiritual quest of a young Brahmin boy named Siddhartha and his friend Govinda.


If you’re planning to read the novel to the fullest, stop reading here and pick that book up. The next section is my summary, for personal documentation purposes, and not recommended to the reader as it would spoil the flow for you.

The book starts with Siddhartha and Govinda leaving their homes and families to seek the knowledge of Self, living their lives as ‘Samanas’ and embracing asceticism. Both friends separate when Govinda wishes to join Buddha and his disciples as a monk, while Siddhartha differs and believes that true wisdom, unlike knowledge, cannot be communicated by one person to another. Thus, Siddhartha parts ways, crosses a river with the help of a Ferryman and reaches the town, where the author describes his life with ‘Kamala’ as an ordinary person, amidst wealth, pleasures of life and ‘Sansara’. He soon realizes that this is not what he would wanted, and leaves it all only to end by the side of the same river he had crossed earlier, on the verge of committing suicide.

But then, just as he wakes up from an enlightening dream, he meets his friend Govinda again, who is surprised to find Siddhartha in rich cloths and nice shoes. Siddhartha decides to approach the ferryman and work with him for he wanted to learn from the river. He lives a modest life with the ferryman, who is a good friend and an excellent listener. Later he meets Kamala again, this time with ‘Little Siddhartha’, his son. Kamala, who’s bitten by a poisonous snake, dies in the Vasudeva’s (ferryman’s) hut. Siddhartha has a tough time with his son, who finally leaves him and runs away in the town, the same way Siddhartha had run away from his father when he was young. Siddhartha realizes the cycle in life, the river communicates extensively with him the wisdom that he had been seeking. Finally he is at peace. He tells everything to Govinda, who after realizing his friend has attained what he had always looked for, decides to leave Siddhartha and disappears in the forest.

Years pass by and Siddhartha turns old. He meets Govinda one day, and they exchange their past stories. Govinda, who turned into a Buddha follower, is still searching, and Siddhartha tells him that Govinda would never find what he’s looking for as long as he’s searching for it with a goal in his mind, as opposed to finding that thing with an open mind. Govinda has a hard time understanding Siddhartha’s mind. He is asked by Siddhartha to kiss his forehead. Govinda, on doing so, learns what he was seeking all along. He then tearfully bows to Siddhartha, and leaves. Here the novel ends.

This was the first spiritual novel that I’ve read, and it had a lot of thought provoking text in it. The author does poetry in his way and it is a delight to read the chapters, visualizing the parts and ‘seeing’ everything through Siddhartha’s eyes. If you are, like me, not much into fiction, give this book a try. The emotions it generates, the quest, the simplicity in the stories yet the depth in the message is simply amazing. Totally recommended.

8/8th Engineer

Yesterday, it was my Parallel & Distributed Systems exam. The last of the 4 subjects for this semester, which itself was last of the 8 semester we have in an Engineering degree course. Which is to say that Engineering is finally over. I am pretty dense about most things outside of computers, but even for someone like me, realization of the fact that a very cheerful phase of my life has now come to an end, it was a bit difficult to take in.

I remember the first day of my engineering, the same way I remember the first day of my junior college. Both my junior college and degree college were far away from home (60kms each side), and I selected them purposely. I liked cities from a very tender age, and selecting a college in a city quenched that thirst for me. Cities are quite fascinating, especially due to the fact that I come from a sub-suburban town that closed its shops by 8 at night. On my first day, I was clueless, just like others. I didn’t know that in each semester we were going to have different subjects. Like most others, I had not one friend. I looked up my name on a board and went to the classroom it mentioned. I made my first friend in the Chemistry lab on the 11th floor, and that guy stayed my best friend throughout college, which is nice. Made quite a few friends in Engineering, as opposed to junior college, which is a huge improvement in my social skills.

Love for technology

I choose computer engineering (after realizing that computer science is not an option for the academically dull kids), and I got the college seat in the third and final round of admissions. If that wouldn’t have happened, I had planned for BSc, because I wanted to study Physics as well. During admissions, I knew computers was my first preference. I had already been into computers from 2-3 years then. Didn’t know how to write any code as such, but I did have a good idea of what I’m getting myself into, given my interests in Netsec from sometime then. I knew stuff back then, and I remember the cyber wars time. I wanted to be more than a guy who used exploits and php shells, I wanted to be the one writing them (Arjun, thank you for inspiring). I was so crazy about cybersec back then, that I managed to get promoted with grace marks in 11th standard.

One of the most interesting difference between junior college and engineering was that in junior college, people (except Kunal, who liked tech) around me thought I was crazy, because talking about webservers, exploits and sql injection was something that would turn me on. On the other hand, things were different in Engineering. I had a friend or two who used to understand what I’m up to, were equally fanatics about something in computers, and shared the same passion for programming and solving problems. Suddenly, I wasn’t weird. Thanks to landing in the right place, where I think I belonged.

I got into blogging just the day after my last HSC exam if I remember well. The original plan was to make money, but the end result was that it taught me a lot about tech in general. It taught me things related to web hosting, numerous CMSs that I used back then, I played with my first VPS around this time. And to match the OS on the VPS, I started using CentOS on my PC too. It was then I learnt how multiple sites get hosted from a single IP address. How SEO is done and how affiliate marketing hows. None of that actually made me any money, but the foundation it gave me was later used when I later got into web development. It is a great feeling when you’re writing PHP code and then suddenly you exclaim, “Oh, so this is how SQL injection actually works. Cool!”. Although nothing can beat the feeling of writing AJAX for the first time to retrieve data from a remote REST endpoint. I was so excited, I even called my mom to show it to her. “Arre waah, chaan! (Oh wow, nice)” is all she said. Never mind.

I got into competitive programming in my first year. We were taught C, and I and my friend had just discovered Hacker Earth back then through our seniors. Not much later, I realized that I can save myself a lot of efforts if I knew how to code a second language. Thus came Python. I did some competitive coding with it, but my interest quickly shifted to learning Django, which was this cool thing that looked like a CMS but wasn’t a CMS. People called it a “framework”. Now what on earth was that? And what is this MVC thing? Can’t we all stick to simpler things like writing SQL queries in PHP files and echoing HTML though them? Why need all this complexity.

But wrong I was all this time. Models had to be separated from views and then you can focus more on what mattered, and less on struggling with the structure of your own code. During my time with C and Python, I wrote a some comparison articles because it was fascinating to me how different both these technologies were.

Then I fell in love PHP, and then C++ which was when I tried getting back to competitive programming. I had given Debian Wheezy a try then. Soon I read about the launch of Jessie. I came across this meet-up announcement about Jessie’s launch party. I attended it, which was the first meet-up that I had attended. Although I went there purely for the Debian launch party and getting my hands on the ISO, the outcome was that I got to hear people talk about various other things, real web development being one of them, and it was amazing.

In 3rd year, we had web technologies as a subject. It was when I got to learn Javascript properly. I knew it from as long as I had used the Internet, but never really understood it, or the power it had. I learned it in depth, and found a new love. I used Js to write most of my projects, and I really owe a lot of my current skills to that little decision of not just learning Js, but understanding it under the hood.

Towards the second half of the 3rd year, I got involved with Project Lumos, another life changing experience for me. Then things got pretty busy, and final year came and went without much happening from a technological learnings point of view.

Travel

I traveled a lot more than what I was known for before engineering. I watched movies in theaters, went to good restaurants, had fun with nice people who actually cared about me. I even went on my first trip with friends out of state, which was in Uttarakhand. I have learned tonnes of social skills through some of these people around me, and during my time in Delhi, I learned how much do these social skills and people skills matter. In fact, your technical skills sometimes come second to these people skills. “In a way, life is what but the relationships you build along the way”, a person I respect a lot said once.

Misc

Apart from that, I got to speak a lot in front of people, in class, during Project Lumos meetings, in the committee that I was a part of, etc. Since I never spoke publicly, I had a fear of doing it. I got over it during engineering, which is a great thing. Expressing your thoughts in clear words in a skill very few actually have, and while I’m not there yet, I’ve made a start towards it. I learned to stay organized, use notes, reminders and other stuff. I have tried to actively help my friends and classmates with their stuff. Helping others have given me great deal of satisfaction, and while it may not translate to anything, it surely helped me get my own foundations and concepts right, which is a byproduct of teaching.

Most people and their opinion don’t matter. I realized that there’s a very little group of people around you whom you should never let down. Don’t waste time impressing the rest. I learnt I’m missing on some good experiences by always caring about what people might think. Once I let go of it, life was even more colorful.

A great deal of all of this people skills have come from the book by Dale Carnegie, How to win friends and influence people. A no BS book that I would totally recommend to each and every person reading this, irrespective of your field of work, given all of us share the same Human abstract class.

What I could’ve done better

Now that I know what mattered more than most other things, I think if I were to take up admission in engineering again, there are a few things I would do differently. I think a lot of unnecessary emphasis is given to academic excellence when actually, it was the least that mattered. I think I’ve spent a lot of time studying for exams when I could’ve studied to gain actual practical knowledge by building projects. I mean, reading from those question papers, studying answers from the point of view of scoring marks is time that went down the drain. Optimizing your time best to get the essence of the subject, some practical exposure as well as a score just enough to keep you going, that is what I would do the next time.

I would talk to more people, send more emails. I had always been hesitant to talk to people from startups and organizations that I loved. I felt I was under-qualified for most of the things people do in tech. Although, not properly qualified either, but if you just assume that and don’t reach out to people, you’ll never move to the next level. For starters, suppose you learnt Python this semester, and you are confident enough to work on a project. Start contacting people and ask them if you have a way to contribute to their project. That way, you can get a part time role over the semester vacation at a good place, and get to do things professionally.

Make open source contributions. If you don’t feel like working as an intern, contribute to open source. I’m amazed at how much I overestimated open source and thought that getting into it is too big a deal. No it isn’t. If you know what you’re doing, just pick up a tool that you use (say Chromium), look into their bug trackers and write a patch for a bug that you can understand and solve. Then compare it to the accepted patch. When I did it, I was surprised to find that the solution that I wrote (which I thought was ‘unprofessional, inefficient and too simple’) was exactly what the solution which was accepted was. The message here is, you’re not as stupid as you might think, and the people who build all the amazing stuff that you can’t live without a single day were not any smarter than you are. Know basic Javascript, Python or C++? Any one? Great, you can officially ‘author’ some part of the Mozilla Firefox web browser. Know how to write a language fluently? You can write documentation for them. It’s that easy.

Make connections. Connections are just people you know, whom you can call up and ask for a favor. Your friend is your hangouts connection. Similarly, get to know people in various walks of life, in different fields. It is a win win in most cases for you and your connection. Share with them any opportunity that you find useful, and they would do the same. Plus, it is almost always the case that they know more about something than you do, and can guide you on that. They can validate your skills both professionally and personally. Connections are also useful when you want to make new connections. Some of your connections would be a lot ahead of you in professional life. They might know more about most things than you. Have them as mentors. You’ll avoid some common mistakes and save time if you have a good mentor.

Eat healthy and workout regularly. I’ve realized it a little late, but you only have one body that you have to live with for the next 40, 50, 60 or 70 years. And it isn’t indestructible. There are some irreversible changes taking place while you’re sitting there reading this. Your spine takes a lot of beating when you sit, and if you’re a computer person who sits most of the day in front of his or her PC, then the spine cries. Make sure you have a right posture when working. I know people who use a Rs. 70,000 laptop but use a crappy chair as it ‘doesn’t matter’. It does, so let’s stop taking our bodies for granted. Eat less sugary food and workout regularly, if not daily. If nothing, go for a 5km walk everyday. You’ll feel much better when you come back to work. We programmers are very keen to watch log files, warning and error messages. But we often ignore the warning messages our body tries to give us, and by the time you encounter your first error, it is irreversible. Don’t let that happen.

Drink plenty of water. I know, very trivial. But surprising how many of my fellow engineers and programmers forget to drink water when they’re working on some interesting problem. Sure, work hard, but keep a water bottle close to you and have a sip every now and then. It will benefit in ways you can’t even imagine. Make it a habit. I have done it, and it really helps keep you hydrated and fresh.

Learn to judge people. Not everyone who might ask you for a favor might actually deserve it. During our projects, I have helped all kinds of people. Later when I used to think, not all of them were into learning how to do things. Most of them just wanted me to get their work done for them. People will befriend you when they see a merit in it, that’s just life. Don’t be ignorant of it. If you still choose to help, cheers!

Finally

I hope some of you will find something to learn from my experiences. I’ve made mistakes and I’ve learnt from some. There’s still a lot to learn, so many amazing people to meet and places to explore. One life, too short and too long the way you see it. I’ve been privileged and fortunate enough to have so many positive experiences during my time in engineering. As an engineer, I feel the learning phase of my life would never end, but this particular one, of formal education, has ended here, at least for now. Life would turn off the ‘easy’ level switch for me, and that’s scary enough. But at the same time, new opportunities, freedom to take major decisions and new responsibilities will become part of my life in this new phase. It should be pretty interesting.

So this little thread to the 18 years of education my parents gave me, the people I met and became friends with and to all the amazing experiences, learnings and setbacks, that molded me into the person I am today. Thank you for reading.

Experiences With Android

I began learning Android this semester for my final year project. Android and Java were technologies I never thought I would learn by myself. I always felt they were overcomplicated and for me that translated to boring. I was, of course, wrong as things started to become clear.

My friend Kunal really inspired me to take on Android. He guided me with basics of Java that I covered by reading the first 12 chapters of the book “Java The Complete Reference”. After that Kunal even went ahead to give me a hands on session on the basics of Android.

Now to be honest, I can write basic Android applications, but anything above that would require extensive Googling. Partly because once I knew I won’t need to learn anymore to complete the project, I stopped. But inspite of all that, there were a few great experiences that I wanted to share here about my short journey with Java and Android.

The most amazing thing I learned was that Java is a great language to learn object oriented programming concepts. Interface, abstract class, method overloading and overriding were just words for me before diving head first into Android. I understood the meaning, and I could even write you the classic sample Animal<->Dog,Cat example to demonstrate all of those, but I never actually saw their potential application in any of my projects. Get started with Android and in a day you’ll realize what those terms actually look like in practice and suddenly it all starts to make sense.

Another thing that I noticed in the Android ecosystem is that Android is far more stable than most of the other technologies that I deal with, or have dealt with. I remember my time with Angular 2. Issues used to pop up and the only thing that showed up when you Google your problems was a Github issue created 3 days ago with 17 comments saying “Same problem here”. It was horrible, and it intensifies when you’re using it to build something professionally for a third party, and not just a random side project. Android felt much more like C++, predictable, readily available resources on Q&A sites like StackOverflow, and a standardized way of doing things.

Lastly, a subjective realization. Android is a powerful tool in any developer’s toolkit. It is the midway between web and system, with the ease and straightforwardness of the web and the power and reach of system. It is fascinating to a naive code guy like me to grasp what all is possible in Android. The APIs make just about everything accessible to the developer, and I’m not even going to get started on the reach of Android. Look, imagine this. It’s like knowing how to hack Raspberry Pi with your kick-ass Python, but in this case, every damn person you know has a Pi, carries one around, and it is connected to the Internet all the time. Now that is the kind of power we’re talking about here.

In closing, if you’re like me who just does something for the sake of that momentary joy of learning something new, give Android a try. Apart from all the good stuff that I’ve mentioned above, it is just a great feeling to try something new, right? Thank you for reading.

Book Review – The Third Wave By Steve Case

So from the past month onwards, I and Abhishek had decided to read a (non technical) book every month and write a post about it at the end of the month. A good exercise to widen perspective and improve vocabulary.

So Steve Case is the then CEO of America Online, and a very successful entrepreneur. The book’s entire plot is based on dividing the Internet based industries into three major phases, or “waves”. There was the first wave, when people had started to realize the power of the Internet. In this wave, the task was to convince major players to take risk in the Internet to build infrastructure that would then be used to provide products and services to end users in a way unimaginable before. It was upon this infrastructure of hardware and software, of browsers and portals, or network providers and content providers, that the next wave of the Internet was to surf on.

The second wave was all about “Internet startups”. Companies that were Internet only. Some of the largest of them, like Uber and Airbnb, which disrupted their entire respective industry, didn’t own a single car or home, and companies like these became common. But just like the first wave, many industries started and only a few survived to see the light at the end. The second wave was about who came to the party first, and who perceived till the end. But, as one can tell, we’re on the flat region of the S curve of the second wave.

This is when the third wave comes into picture. A wave that is going to be much similar to the first than it will be to the second wav for a simple reason. The startups of the third wave would need partnerships with people and governments alike, to solve problems and build empires. Elon Musk is a great example of a third wave entrepreneur. More Musks will come into picture as we move more and more into the third wave. Author talks about the 3 P’s that would be critical for any third wave startup; Partnership, Policy and Perseverance.

The author talks about how, with the rise of third world startups, geographical concentration of companies in Silicon Valley would decrease with new entrepreneurial ecosystems budding where most economic and political benefits exist. He calls this “Rise of the rest”.

Finally the author talks a bit more about America’s leadership in the tech industry and how it is losing it’s grip as the leading nation in terms of tech innovation due to a number of reasons, and how to solve those problems on the government as well as organizational level.

Finally, I would highly recommend this book to anyone who’s interested in having a perspective on the future of the Internet industry. It comes from a person who has seen it all from the beginning, and everything in this book is a first hand experience and not those sugar coated motivational success stories that you can find on Youtube in about 15 seconds. The book has huge failures explained in ways that you find yourself in that time and see each decision in the making, and the rise and fall of the most valuable Internet company of it’s time.

Trek To Brahmatal (Uttarakhand)

Hello! It has been more than a month since I shared something here. Although there has not been much, I’d like to share my experiences of the trip I went on last month. It was one of those trips that I’d remember for a very long time.

Since our first trek in the Sayadri ranges in January 2016, I and my friends had this big wish to go on a Himalayan trek. Finally, in October last year, we decided that Bramhatal would be it. (Not embedding maps because it was too much effort. Also, heavy images ahead. May take some time to load. Patience!)

There were a few reasons for this. Firstly, it was an easy trek. The only real challenge was a bit of high altitude sickness, but it was marginal. Secondly, it was the same group that we went to Sandhan Valley with, so there was this trust factor. Thirdly, it was scheduled for January, hence there was no chance it would coincide with our term tests.

We started preparing for the trek from November, regularly running 5kms to increase our stamina. We also booked our train tickets, to and fro. Then the long wait began. It was my first trip out with friends and I was really excited. We literally spoke about it every single day in college, all 4 of us. We were scheduled to depart on 21st January to Delhi. The last week was the most difficult. I couldn’t sleep at night, for the thoughts of what was about to come kept me awake. I’m sure Ankit, Manasi and Jyotirmay felt the same. Last two days were reserved for shopping and packing. Not much though, since we were not going to bath for the next 10 days anyway!

Saturday 21st – The journey to Lohajung

Finally the day came, it was a Saturday. I took my 13kg backpack and left for Thane where all four of us met. We had to leave for Delhi that day. So we left for Hazrat Nizamuddin from Mumbai Central. The journey was a bit hectic, for our seats were separate and the train was crowded with unreserved passengers. But the views outside the train made up for that. Really enjoyed the transition from a comfortable 27 degree Celsius in Mumbai to a chillish 15 something in Delhi. We got down by 7 in the evening, and then by the Metro, we headed for the ISBT bus station, from where we were to board a bus for Kathgodam, Uttarakand. Had some Palak Paneer at the bus stand and boarded the bus. The bus journey was comfortable enough, but the cold wasn’t. By the time we reached Kathgodam at 6 in the morning, the temperature had already dropped below 10. The coldest I had ever experienced. I was shivering like I never did before. Talking was not possible because my facial muscles had just refused to coordinate.

Just 20 meters away from where the bus stopped, we met other guys from our trek. There was a jeep awaiting us, which would take us from Kathgodam to Lohajung (our base village), a little town in the Chamoli district of Uttarakhand, a ten hour drive through the ghats, terrifying and nauseating. Trust me when I say this, it was a very beautiful town. Look just about anywhere and you’d have a wallpaper like scenery, old houses, beautiful people and snow covered peaks in the background. And it was cold. I believe it was 6-7 degrees when we reached there. Walking barefoot on the floor wasn’t possible. The water would numb your hands if you dared to touch it, so washing face was out of question right away. We were welcomed with hot Pakodas and tea. The food there was surprisingly good. Great Dal, Rotis and Sabzi. Rice and a sweet dish at the end. So our trek leader briefed us about the next day. We had to start early in the morning to reach the Bekatal lake by afternoon. We were introduced to the kitchen staff who would carry all the heavy equipments on Donkeys (Kachhars) and make us good food throughout the trek. Also, we had a local guide, Ranjeet dada, who, in spite of being a Redhat Linux certified professional, preferred to be around the mountains rather than Linux boxes. A really cool guy who loved to talk and tell stories. He runs his own ISP in the Van village of Chamoli, and had quite a lot of knowledge about networking and *nix in general. We packed our stuff, and went to bed early.

Tuesday 24th – Trek to Bekatal

We started at 8 am, after having a good breakfast. It was through the town, walking on mud roads to the top. It was not difficult, but exhausting. We continued to walk for some 6 hours that day, taking short breaks every 5-10 minutes, occasionally taking long breaks. We had to ascend some 1000-1500 feet on that day, on a trail of some 5kms. We reached the camp by 2 and were given Rhododendron juice. It was too good, and addictive too. Drank some three glasses of it before I had to stop myself from refilling the fourth time. Then it was lunch and we rested in our tents for a while then. In the evening, we went to explore the Bekatal frozen lake nearby. Seeing a frozen lake is a magical experience. It was just like the one Bear Grylls features on his show ‘Man vs Wild’. It was awesome!

At night, we lit up a bonfire for some heat and had fun around it, all of us. We were served dinner around it (which we insisted since we didn’t want to go away from fire). The food was great and guess what, they made us dessert at 9,500 feet. It was fruit custard, and it was delicious. We chit chatted around the fire after dinner and at around 10, we were served ‘hot drinks’. No, it wasn’t alcohol, but Bournvita. It was delicious.

Wednesday 25th – Trek to Bramhatal

We started early again. Had a good shit (seriously, a challenge in the woods ;P), brushed my teeth and had breakfast. Left for Bramhatal. After an even more exhausting day, we reached Bramhatal. The routine was the same on reaching, juice, lunch, rest, tea and then we set out to explore Bramhatal which was some 15 minutes away from the camp. It was beautiful. The night was similar, with bonfire and good food. The next day was summit day.

Thursday 26th – Summit day

It was the Republic Day. We did our morning rituals and gathered near the India Hikes campers. We hoisted the Tricolor, sang the national anthem and took some photographs. We were some 25-30 people together, and it definitely was the most memorable Republic day mornings ever. We then started the walk to the summit. It was at 12,500 feet, and the thinness of air was evident. It was not the longest walk, but definitely the most tiring. We kept walking and at around 12, we reached the summit. It was the top of a mountain, snow covered, surrounded by grasslands on three sides and Himalayan ranges on the fourth. One can see Mt. Trisul (22,000 feet) and Nanda Gunti (19,000 feet) from the summit. It was a clear day and we made full use of it. We hoisted the tricolor again on the summit and took pictures.

The descend took some two hours, and we reached the camp by 3. The rest of the day was just usual stuff and the next day was back to basecamp, Lohajung. It would have not been any more interesting from here, if it wasn’t for the sudden snowfall that started when we were about to go to bed. The temperature dropped to 2 degrees and we were all dancing, when it began to snow. We ran into our tents and slept, assuming we were covered!

The Tricolor on the summit. Nanda Gunti on the left and Trisul on the right!

Friday 27th – Back to Lohajung

So that night, at around 1.30, the tent broke down. The weight of the snow on top of it was too much for it to handle, and it fell on our faces. The ice cold surface of the tent was touching my forehead and nose, but I only woke up at 5 am. My reflex was to call for help, believing that the tent has got buried under the snow. Thankfully it wasn’t exactly buried, but just broken. We spent the next two hours holding the tent with one hand and trying to sleep. It was terrifying!

Daylight made its way in, and we tried to open the tent to see the situation outside. It was seriously frightening, for the grasslands and plains that we saw a day ago had all vanished and replaced by dead white snow. It was snowing so heavily that it took me an additional 15 minutes to gather courage to move out of the tent to take a dump. That was the most daring shit I had ever taken; a foot of snow, chilly winds and -6 degrees. It was nature at its best and worst, simultaneously.

I spoke to our leader and casually told, ‘No way we’re going to descend in this weather, right?’. He said we have to, no options. We cannot survive here. My heart sank. He told us to get ready in 30 minutes and we did. Slowly, gathering courage, we started walking in that foot deep snow, following the footsteps of the person in front. Snow was getting collected on our shoulders and bags and it felt great, but also added weight and had to be shaken off. It was probably the bravest thing I had ever done, walking on the slopes with snow hitting my face on one side but maintaining the balance so that I don’t slip and go sliding all the way down a thousand feet. It was for real.

This went on and on for the next 7-8 hours, which were quite easily the toughest 8 hours of my life, slipping and falling multiple times and thinking ‘I don’t want to die here’ to myself. My shoes, socks and pants were all wet, and my hands had become numb due to the snow. Our faces had turned blue. Finally, we reached the base camp at about 4. I took a bath since I was feeling very, very dirty. It was a bad decision, because after that I was shivering so much that my mouth just lost any coordination that was left. It was all kha-kha-kha-khaana ki-ki-kither ha-ha-hai. It was fun. I slept for some time then. I woke up to a great non veg dinner, Gulab Jamuns and more Bournvita.

After dinner, the entire team had a good chat. We were given ‘High Altitude Trekkers’ badge for completing the trek, and ranked amongst ourselves who performed the best on the trek. Then it was story time by Ranjeet dada who shared some of his experiences and the lifestyle of the people in that area. Amazing.

Saturday 28th – Back to Kathgodam

The next morning, we had some Maggie and black tea, took some group pictures with the staff. They packed out bags on the top of a similar jeep and we set out for Kathgodam. It was better this time, since I enjoyed the scenery and didn’t feel nauseated. Just and hour before reaching, we learned that our train got canceled. We took the public transport buses, and started our journey back to Delhi. We reached Delhi at around 2 in the morning.

Sunday 29th – A day in Delhi

Knowing the reputation of Delhi, we decided to spend the night at Hazrat Nizamuddin railway station, so we took a cab from ISBT to Hazrat Nizamuddin and spent some time there, in the waiting room, which was already filled up to the brim. Here we got a chance to freshen up for the upcoming day, so we used it. At around 6 am, we kept our huge backpacks in the cloak rooms, taking the essentials with us, we started our Delhi expedition. We explored a lot of good places that day; Connaught Place, Guru Bangla Sahib, Raj Path, Jan Path, Rapid Metro (Gurgaon), JNU campus (just outside), Hauz Khas village, Chandni Chawk, Red Fort and then back to Hazrat Nizamuddin, in that order. We boarded the Deheradun express that night and reached Mumbai early morning on Tuesday.

Seriously, what a trip!