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

The WordPress Conundrum or How Medium Won the Blogging Race

Featured image credit https://themegrill.com/blog/medium-vs-wordpress

So apparently Medium has redefined the blogging ecosystem. It’s like every fourth blog post I come across is on Medium. Have all serious bloggers moved away from WordPress to Medium?

Has WordPress–once bloggers’ paradise–not kept pace with the changing blogging landscape? Don’t get me wrong. I adore WordPress, which also powers this very website.

I think one of the key reasons for WP falling out of favor of serious bloggers lies in the way it is used today. Because of its huge plugins and themes ecosystem, people are using it as a general-purpose CMS rather than using it as a standalone blogging engine. Individuals, startups and enterprises are building beautiful websites on top of WordPress. In fact, in the last couple of years whenever I decided to change my blog’s theme I ended up being thrown at me (by Google search results) ‘top’ WP themes that were all startupy and enterprisey. Just what happened to the bloggy themes? Seems like theme designers no longer care about blog-focused themes; they create what people demand.

I have high hopes that the upcoming v5 of WordPress will be revolutionary and will bring back fun to blogging.

Posted on Leave a comment

Ionic Studio looks exciting (I hope it will be free)

The Ionic team has just dropped a bomb in my inbox. The bomb even has a name – Ionic Studio. Still in preview, Studio is Ionic’s official integrated development environment (IDE). I believe they have done a fantastic job by concentrating on the thing that’s their defining feature — UI Components. Of course, things like managing plugins, resources and all from GUI make life easy. But by making it easier to create beautiful interfaces they have done something really good.

Those with some experience with building Ionic apps already know about Ionic Creator. But they also know that the tool is screaming to be updated since long, and is not entirely bug-free. Something like Ionic Studio will really make it easy to create apps quickly.

I like the clean looks it sports. It seems to have been built on the proven and trusty VS Code / Electron platform. Perhaps you have other ideas about its base?

Posted on Leave a comment

Fascinated by opinionated frameworks

Prettier - The Opinionated Code Formatter

Reading the Rails Doctrine the first time was refreshing. I have gone through it half a dozen times post that. After writing a production-grade project based on Ruby on Rails, something got awoken in me — a fascination for opinionated frameworks. Rails is not the only opinionated framework; there are perhaps a hundred others out there. It’s one of the best and most respected for sure.

An opinionated framework is one that, rather than letting a developer pick her or his choice of building blocks (libraries, components, structure, etc.), cockily comes with a pre-selected building blocks and dictates what to use and how. One may love them or hate them, but they definitely reduce development time exponentially. That’s, at least, true for me.

Today I chanced upon Prettier – an opinionated code formatter with lots of assumptions and only a few customization options, the sort of thing I’d love. It’d be nice to have a powerful tool by my side that could take care of the arduous task of keeping my code nicely formatted all the time, even when it might be at the cost of my own style of coding. I am mostly willing to sacrifice coding style for speed.

I’ll try using it extensively in a personal project. If I have something bad to report, you’ll see another blog post here. If not, it’ll be for the good of Prettier 😉