Ranvir Singh

Putting the Science back in Computer Science

Alpine Linux

Part 3: Installing Rust Lang on Alpine (With just LLVM Dependencies)

Setting up Rust Lang on Alpine is relatively straight-forward. You get the dependencies that includes clang and lld from the apk repositories and curl to download and install the Rust Toolchain. UPDATE: Since the introduction of rust-lld within the rust toolchain, we have the option to use rust-lld as the default linker and not install system’s default C compiler and Linker. This method is documented after section 4.

Alpine Linux

Part 2: Installing Go Lang on Alpine (Without GCC or LLVM Dependencies)

In my previous post I showed how you can build your own WSL distro from Alpine root image. If you followed along, and then proceded to use the resulting distro, you would have been very frusted….I apoligize. The first attempt at installing any real language like Go or Rust or NodeJS would have resulted in another explosion of packages. I chose Alpine thinking that since this is used so heavily to package apps into docker images, it really must have been silm and dependency free.

C Programming Language

Part 1: LLVM/Clang on Alpine

Setting up Clang was probably the most involved process in this series. Ironically, creating a C programming environment without any GNU utilities is a lot harder than setting up a plain Go Lang environment setup or even Rust. But that’s my goal here. To create an environment for C programming that doesn’t involve me having to rely on GNU utilities. I am using Alpine Linux which immediately eliminates the glibc dependency, the rest of the article will cover how to minimize other GNU dependencies.

Alpine Linux

Part 0: Installing Alpine on WSL 2

Recently, I got quite frustrated with the bloated WSL Distros that are shipped by Canonical and Debian Team. It comes preinstalled with Systemd, a horribly old version of Python and for some reason insists that vim depends on sound drivers and sound themes from freedesktop.org Having no intention of trusting Microsoft store again, I create my own WSL distro in 3 simple setups: Get the latest minirootfs for your architecture from Alpine Downloads Page.


Manage Multiple GitHub Accounts from a Single Shell

2020 is the Year of Structure for me. This means organizing, planning and filing things in a way that frees up my mind to be actually productive. It doesn’t have to be perfect, but it needs to be portable, and distraction free. After I completed my WSL 1 setup with a proper persistent SSH agent, I immediately ran into another limitation. GitHub accounts… One of the ways I segregate my life is by having different accounts for different purposes.

Cloud Computing

Web APIs and integrations

One of my frustrations with technology, and life in general, is how difficult it is to keep track of things. Recently, I decided to sign up for Netlify and build a simple static site for myself. Upon signing up, I realized that I can’t link my GitHub account with it because I had already signed up for the service earlier, and I don’t recollect when or why. No way to know when or where it was done, I signed up with an old email, and reset the password, and checked if it had my GitHub account linked.


Putting Science back in Computer Science

I created this website to write and think about mathematics, physics, computation and the interface between these three disciplines. I am an engineer by trade, but lately I am getting more and more worried about the direction towards which this Industry is heading. This is what I call “Computers for computer’s sake”. When you see a culture where computer programming is treated like an “Art” more than rigid Science, things are ripe for battle.

Cloud Computing

My Cloud Checklist

I have blogged about Cloud Technologies for over a year now. Everything from VMs to containers and storage stack to networking. Although my perception of applications running on the cloud is still immature and, more dangerously, incomplete. I believe its high time I make a checklist of things I desire for my applications and of my applications. I want the architecture to be simple enough that a new comer to the team can understand it as soon as humanely possible.

Cloud Computing

Why you may not want to go "Full-Cloud"

Over the last decade cloud computing has grown from a simple virtual machine to containers, object store and Functions. Developers and software architects have taken complete advantage of this shift. Rising tide has lifted quite a few boat. Anyone can sign up for AWS, GCE or Azure and host their service on thier super optimized cloud with low bills, reduced downtime and still lower latencies. But here I am, still insisting that the Industry is probably headed in a wrong direction.