Posts

Hugo and Jupyter Notebooks

Monday, Apr 30, 2018 | 2 min read
Categories: Developer,
Tags: Hugo, Web Development,
Hugo is a static site generator. It takes a bunch of markdown files and renders them to HTML. It is fast and simple. Jupyter Notebooks are an interactive front-end for python (with support for other languages too). They execute code, display its output, and render markdown all in a browser window. The notebooks are a neat compilation of formatted code and text generated as HTML. I use Hugo for my site.

Escaping Echochambers

Friday, Oct 20, 2017 | 11 min read
Categories: Machine Learning,
Tags: Machine Learning, Principal Component Analysis, Visualization,
The echochamber effect is a worrisome issue in social media. It risks isolating users in exclusive groups as they repeatedly subscribe to content that reinforces their biases. To keep users engaged, websites expose users to content similar to their history. You will get recommendations for movies you may like, or peoply you may befriend, or communities you may join - all based on some measure of similarity with your profile.

Trials and Tribulations of Maintaining a Hugo Blog

Saturday, Sep 30, 2017 | 4 min read
Categories: Developer,
Tags: Hugo, Web Development, Powershell,
As of the writing of this post, I maintain this site using my very own theme created in hugo. Hugo is a static site generator. It takes a bunch of plain text, applies a theme, and renders it as HTML. This is opposed to applications like Wordpress that assemble a page each time its served, to put it simply. This compute once, use many times approach saves on processing time and makes a site more portable.

Algorithms: Balancing

Monday, Feb 6, 2017 | 5 min read
Categories: Engineering,
Tags: Algorithms, Graphs,
Balancing in algorithms refers to minimizing the complexity of an algorithm by making sure that its constituent parts share the load efficiently. It is not a technique for solving problems. Instead it helps us understand how an existing solution may be optimized. The theory of balancing Say there is a problem of size \(n\). The problem is such that it can be broken down into a sequence of smaller problems. There are many ways the problem can be broken down:

Optimizing static sites with hugo

Monday, Feb 6, 2017 | 3 min read
Categories: Developer, Meta,
Tags: Javascript, Hugo, Web Development,
According to httparchive the average size of a web page in 2016 was around 2.5MB. Now this may not seem a lot in this age where the internet is the primary media delivery platform - but it is worth noting that most web pages serve text as their primary content. Looking at the report sheds light on what constitutes an average web page: The HTML content takes up around 50-60kB. Images, understandably, make up the biggest chunk with ~1.

Is cold the new hot?

Tuesday, Jan 31, 2017 | 4 min read
Categories: Physics,
Tags: Thermodynamics, Quantum Mechanics,
Note: This article was originally published on astroibrahim on April 17, 2013. Yes. A few days back, a friend shared an article with me. It talked of how scientists had managed to achieve temperatures below absolute zero. Does it mean that temperature has to be redefined? Has our understanding of thermodynamics been flawed for the past hundred years. No, it turns out. It is all a matter of semantics. Absolute Zero.

Gravitational Slingshots

Tuesday, Jan 31, 2017 | 3 min read
Categories: Physics,
Tags: Gravity, Classical Mechanics,
Note: This article was originally published on astroibrahim on Apr 10, 2013. I always wondered why doesn’t the sun slow space probes down when they are leaving the Earth for outer planets. Isn’t there a risk that the probe might change its trajectory and fall into the sun? There is. You see, the more distant the space probe gets from the Sun, the more potential energy it gains. However, energy must be conserved at all costs.

Testing code with sensitive data

Tuesday, Sep 6, 2016 | 1 min read
Categories: Developer,
Tags: Git, Powershell, Testing,

I recently renewed work on my first ever github project. Over the course of a whole year when that project was dormant, I’d learned some new tricks. I now try to focus on writing tests for my projects. It is immensely convenient when I add features here  and there and need to check the whole code for errors.

A case study in choosing algorithms

Sunday, Aug 14, 2016 | 3 min read
Categories: Engineering, Physics,
Tags: Algorithms,

This past year, I have been crunching data from dark matter simulations. Data size can get pretty large when it comes to scientific computing. As I write this post, I have a script running on 3.8 TB (that’s right – 3,700 gigabytes) of cosmic particles. At these levels one starts thinking about parallelizing computations. And therein lay my dilemma and a soon to be learned lesson.

Markov Chains – Random Text Generation

Friday, Apr 29, 2016 | 3 min read
Categories: Machine Learning,
Tags: C++, Hpc, Markov,

This semester I am taking a course in High Performance Computing where I get to work with multi-core systems like computing clusters and graphics cards. For my final project I decided to develop a random text generator and see if I could speed it up.

A popular method of generating random text (that is grammatically correct) is using Markov chains.

Starting Android Development

Saturday, Mar 5, 2016 | 2 min read
Categories: Personal,
Tags: Android, Mobile-Dev,

I have always been fascinated with mobile app development. Over the last couple of years in college, I made a few attempts to get started with Android applications. I watched tutorial series, reading blogs, attending introductory workshops. Nope. Nothing seemed to stick. What was wrong?

Developing with C/C++ on console

Saturday, Jan 30, 2016 | 1 min read
Categories: Developer,
Tags: Bash, C/C++, Linux,