Posted on 1 Comment

Running + Cycling = Fun + Routine

Today I completed 23 days of consecutive morning workouts. 23 days… my gosh! It was once believed that the magic number of days after which doing something daily became a routine was 21. I am 2 over. However, recent studies have shown that 21 is a little too less. The actual magic number is 66.

At any rate, I think 23 days is sufficient to make one feel great about a regular morning ‘routine’. I wake up between 4-5 am each morning, do work related to whatever side project or experiment I’m working on, and at 7 am I hit the road.

I’ve been running regularly since 4 months now. But until the end of March, it was not more than 3-4 days a week, sometimes even less. I wanted to be more regular in order to fight and reduce my stupid belly fat. Then one day–almost suddenly–I decided to alternate my morning workouts between running and cycling. It was an experiment to see if a day of hard exercise (running) followed by a day of relatively less stressful exercise (cycling) would help me get into a habit. And of course, I wanted to use that cycle of mine lying around unused since long. Guess what, it worked!

I’d been doing 3 kilometer runs before my new routine. Mixing in 10+ kms of cycling helped me very soon amp it up to 5 kms. Now, I consistently do 5 km running and 13+ km cycling sessions. That’s around 35-40 mins of daily workouts. Amazing, isn’t it? Yesterday, I broke my time record for 5 km run and today I broke my total distance record for cycling. Screenshots below.

I use Nike+ Run Club app for tracking my runs and UnderArmor’s MapMyRide app for cycling. And since I have plenty of ‘free’ time while working out, I listen to a podcast or an audiobook. After having finished The Stories of Mahabharata podcast, currently I am listening to the audiobook The Power of Habit. I am 35% through it, but how much I miss the Mahabharata podcast! Sudipta Bhawmik’s storytelling skills are really something. I’ll soon be doing a blog post on briefing all characters of the famous epic tale as have been covered in the ongoing podcast till now.

Posted on Leave a comment

Picture of a blackhole

Being a physics enthusiast, I was perhaps as dumbfounded as you were when I saw the first-ever image of a blackhole in today’s newspaper. I’ve always been fascinated by blackholes: their mind-bending complexity and the various sci-fi theories weaved around them over the years. So it’s obvious that capturing the ‘un-see-able’ felt weird. Like really weird. And what a name of the system of telescopes that captured this image–Event Horizon! I think the following video does a pretty good job in explaining how to interpret the image. It’s intriguing to note that the video was released before the image was actually made public.

Featured image credit: Wired

Posted on Leave a comment

My first cron job

That’s right. Believe it or not. I created my first cron job TODAY! This is what it looks like:

0 4 * * * cd /var/www/mysite/ && node gmailscripts/watch.js my-email-id@gmail.com

It’s a very simple job that calls a Node.js script to renew a watch I have on one of my Gmail accounts. at exactly 4:00am daily. Now, what is a watch or why I am watching my mailbox are beyond the scope of this little blog post. Basically, I have a nifty little Node.js API that I use as a webhook to get notification updates from Gmail whenever a new mail arrives. It then checks if the new mail has a specific subject and from address, which when true instructs the API to call a custom parser to scan the contents of the new mail and return me important bits of information that I then save in a database. Geeky? Perhaps it is. I plan to do a separate blog post on how you can do the same (not setting up cron, but watching Gmail mailboxes for new mail programmatically).

Back to cron again: it’s not that I didn’t know the concept of automated jobs before (in Linux or otherwise), I guess I never really needed to create a scheduled job before. Creating the job was not as much fun as reading the correct way to do it. I followed this Digital Ocean community tutorial, which is now 6 years old but stays relevant today.

On this topic, in my professional life I’ve literally seen people learning about this ‘cool’ tool and then misusing it for all sorts of software development things that can be (and should be) done using some form of publish-subscribe or message queue design pattern.

Posted on 1 Comment

Linear Algebra

Linear Algebra notation and examples

Such is the impact of linear algebra in the world of computer science that today it’s impossible (for all practical reasons) to stay away from the topic. Computer graphics, machine learning and, even, quantum computing all model their data using the same language–you guessed it–linear algebra.

When we were taught this seemingly obscure topic at high school, it was hard to imagine then that it would come back haunting with such force. What then felt like “why read what I’d probably never-ever use again in life?” now feels like “why the hell did I not revisit this a couple of years back?”. The article 5 Reasons to Learn Linear Algebra for Machine Learning makes a great (but cautionary) case for why you should too start learning the subject right away!

I have been a machine learning practitioner since more than a year now, but never did I learn LA deep enough to be able to interpret the results of certain deep technical research papers on ML. So, it’s good that I pretty much have to learn this subject now because of my current research work on quantum computing, something you just cannot get a hang of without knowing the various data notations which unsurprisingly are some form of LA notations.

Now, how do you actually learn the thing enough to get deeper into ML or QC or whatever you are working on that requires linear algebra? Good question. The short answer is — do NOT buy a book and spend months. The shorter answer is — check this YouTube course Essence of Linear Algera by 3Blue1Brown. Other cool learning resources exist on the subject, such as Khan Academy, but I highlighted the one by 3Blue1Brown just because that’s the one I’m learning from. And it’s LEGENDARILY awesome because of it’s purely visual explanations (which, btw, are animations created using–you guessed it again–linear algebra!).

Featured image courtesy Khan Academy

Posted on Leave a comment

Presenting My “Brand” New Site

It’s out. Live. My new website is finally ready for prime time.

A couple of months back, I set out to redefine my online identity. Looking at the websites of some of the coolest developers online, I felt low. Kinda left-out. For a software developer, their website is a key ingredient of their ‘brand.’ My brand was an oldish blog with a home page cluttered with unorganized posts. Don’t get me wrong. I am an organizing freak. My WordPress blog was in pretty good shape before. But it did not represent my brand. It just looked like a random collection of blog posts by a guy who does not care too much about keeping it up-to-date. So, I changed all that.

I am happy that I was finally able to find time in my busy schedule to complete all changes I had planned to make. These were:

  • A static home page that briefly talks about me, and acts as a doorway to the rest of the website.
  • Better organized blog posts. I’ve successfully reduced the number of categories to just 8 (from 55!).
  • An about me page that is the frankest and the most open description of myself.
  • Dedicated pages for things I am proud of — books I’ve written (I’m an author, yay) and tweets I’ve blabbered.
  • A new, simple, uncluttered theme.
  • A focus on what I am and love the most — computers & software.

So far I’ve received rave reviews for my new revamped website. Though I should probably disclose that I had only two reviewers: my sister and my wife.

Talk to you in the next one.