Speech Recognition For Speech to Text Using JavaScript

By |2018-12-27T10:04:33+00:00December 26th, 2018|blog|

I've been playing with Speech Recognition technologies for a long time now. But I never really liked it that people had to download and install an application on their computer to use my application. And then Google Chrome created an implementation for the Web Speech API. And it works great. To see a working demo [...]

How To Convert a JavaScript Object To A Query String

By |2018-12-17T22:25:03+00:00December 17th, 2018|gist|

Let's say you have a lot of query parameters you need to add to an Ajax request. For code maintainability, it's much cleaner to create a large JavaScript object, use string interpolation for the URL, and then adding a function that converts the JavaScript object to a query string. This is what it might look [...]

How to programatically extract YouTube captions as plain text

By |2018-08-14T17:30:17+00:00August 14th, 2018|gist|

YouTube automatically creates subtitles for a lot of videos that are uploaded to YouTube. So instead of paying to have your videos transcribed, you can upload your video to YouTube, and programatically download the subtitles. But it took me a while to figure out how to get those subtitles programatically. I started with youtube-dl, but [...]

How to safely store credentials in GitHub

By |2018-04-03T18:58:39+00:00April 3rd, 2018|blog|

It is actually pretty convenient to have credentials and keys stored in the same repository as your codebase. Of course this is unsafe, as anyone (if you're using public repos) can use those credentials to access your infrastructure (databases, servers, 3rd party APIs). So firstly if your code is not for public use, a private [...]

How to add a subdomain to an existing certificate using certbot

By |2018-02-28T06:07:20+00:00February 28th, 2018|blog|

You're probably reading this because you already have a Let's Encrypt certificate issued using certbot for a domain, and now want to add-on subdomains. If you want to create a new certificate, have a look at the end of this article. In my case I already had a certificate which covered golightlyplus.com www.golightlyplus.com I have [...]

How to automatically and permanently delete unwanted emails

By |2018-01-23T10:31:04+00:00January 23rd, 2018|blog|

Gmail provides the option to filter unwanted emails to your Bin. Click here for the instructions on how to do that. The emails though only get automatically permanently deleted after 30 days. So if you are trying to block someone from emailing you, and you have weak moments and end up checking the trash, you [...]

How to setup a Node.js server on DigitalOcean

By |2018-01-11T03:26:06+00:00January 10th, 2018|blog|

Once your droplet is created and you've ssh'd in, it's time to set some things up.. I start off by installing nvm. You can find the command for the install script here. At the time of writing, I used curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash I needed to exit my terminal, and then ssh back in. [...]

How to setup Nginx for WordPress on DigitalOcean

By |2018-06-05T19:25:28+00:00January 4th, 2018|blog|

I decided to switch from Apache to Nginx. I have a couple of WordPress sites on a DigitalOcean droplet, so I needed to reconfigure them to be used with Nginx. I basically followed this guide which was great for most of it, but I was still not getting the sites loading properly (404 errors, forbidden). [...]