Hi all!

I’m moving away from medium. For several reasons, but this article covers most of what I dislike about Medium: https://www.cdevn.com/why-medium-actually-sucks/. I strongly encourage you to too.

My new website is at: https://www.avoggu.com/

It’s been a blast being here, but it’s time to go. See you over there.

Hi all!

I’m moving away from medium. This article covers most of what I dislike about Medium: https://www.cdevn.com/why-medium-actually-sucks/

The staging area for my new website is currently at: blog.aravindvoggu.in

If you follow me on medium, and would like to keep in touch, please send me your email address at https://blog.aravindvoggu.in/contact/

Thanks! :D


This is an update to my old article UiKit with VueJS. Since then, Vue cli 3 has been released and it makes things much simpler than before.

Originally published at: https://www.avoggu.com/posts/uikit-with-vuejs-vue-cli-3/

Install cli 3.0

Note: This section is for vue-cli 3 setup. If you’re already familiar with it, feel free to skip to the Add UiKit section. You should be able to use Uikit just fine regardless of the steps in this section.

If you have been using vue-cli 2.0 , go ahead and uninstall it. After that, let’s install vue-cli 3.0 .

Install Vue CLI 3.0

npm install -g @vue/cli
# OR
yarn global…

I’ve moved away from medium, find the latest version at: https://www.avoggu.com/posts/an-efficient-algorithm-for-hamming-(74)-decoding-matlab-implementation/

Buckle up. We’re gonna investigate the Hamming (7, 4) codes, and efficiently implement them in Matlab / Octave.

Image taken from: http://www.riorges.fr/riorges-au-quotidien/votre-cadre-de-vie/la-fibre-optique

When data is transmitted over a channel, errors are often introduced due to noise, and what not. To account for the losses, redundant data is added the actual data and transmitted. This data can be used to detect, and correct errors up to an extent. This is known an Channel Coding, and Hamming codes are an example.

Hamming (7, 4) codes encode 4 bits of data into 7 bit blocks. The…

In this blog post, we setup Akurath, a fork of CodeBox on a Linux VPS and proxy it to port 80 via Nginx. Then we setup authentication and SSL/HTTPS to secure the workspace.

During my search for the perfect cloud IDE, I stumbled across cloud9 and Eclipse Che (and subsequently Codenvy).

But both of these run on Docker, meaning most linux commands would not be available from the terminal in the IDE. I didn’t want to switch between SSH session and IDE to lookup manuals for system calls.

The search continued.. till I found CodeBox. But CodeBox, while being awesome…

The previous post about VPN allowed a super simple setup, but was still limited to TCP. Here’s how to secure your internet with OpenVPN.

SSH into your server

If you don’t have one, use my referral code for $10 (Two months) in Digital Ocean and create a droplet. The 5$ per month option is good enough. Choose Ubuntu and your nearest data center. In my case, it is Bengaluru.

Open up your terminal and ssh into your server.

Syntax: ssh user@ip . You’ll be prompted for password unless you’ve setup ssh keys. (If you did, I already like you :)

Note: An update to this article which uses Vue CLI 3.0 is here: https://aravindvoggu.in/uikit-with-vuejs-vue-cli-3-db811e43c46b. I recommend that article over this. September 29 2018.


When I got started with VueJS, I wanted to use UIKit in my project, but I had no idea how. Since there are no instructions online on how to do this, I figured I’d make one.

What’s not very obvious is, you have to install less-loader and css-loader or you’ll be greeted with a very long error message; some thing like this

Whether it’s for a family photo album, a computer program, or a Fortune 500 company’s business-critical systems, data storage is a must-have for nearly everyone. Computer-memory took many forms before evolving into it’s current state, let’s take a look at how things started off.

Magnetic tapes came first. Fritz Pfleumer, a German engineer, patented magnetic tape in 1928 and used them to record sounds. 4 years later, G. Taushek, an Austrian innovator, invented the Magnetic Drum and based his invention off a discovery credited to Fritz Pfleumer.

Drum memory contained a large metal cylinder coated on the outside with a…

Google’s Page-speed Module is an excellent tool to optimise and speedup your website, but unfortunately, Nginx`s non-dynamic nature means you have to recompile Nginx from source if you’d like load another module into Nginx.

While several guides exist for the same, including Google`s own guide, they just failed to work with the configuration available in DO droplet. So, here is my script for automating the process. More on the script later.

First things first. You should backup your config files even if you didn’t modify anything and are using it out of the box, we’ll use them later.

Take a…


The server side:

  • Create an ubuntu droplet (even the smallest one will do)
  • Install Python on it sudo apt install python
  • done!

The client side:

  • Install sshuttle with pip pip install sshuttle
  • Tunnel your tcp traffic via ssh sshuttle --dns -r username@sshserver 0/0, just the way you SSH into your server, enter you local password and then remote password and you're done!


building on it:

  • Create a limited user on the server adduser vpnusr
  • Use the following gist to automate password entry
set timeout 20
# set cmd [lrange $argv 2 end]
# set password [lindex $argv 1]
# set password_local [lindex $argv 0]
password="<server password>"

Aravind Voggu

designer + developer from Bangalore.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store