Jahed Ahmed

FrontierNav Weekly: 30th March 2020

Updates on FrontierNav for the week commencing 30th March 2020

Read more...

Using iptables and ipset to whitelist Cloudflare

One of the major advantages of using Cloudflare is its DNS-level proxy which acts as a shield between clients and your server. However, that doesn't mean no one can go directly to your server. The internet is a public network and everyone has access to everything. All they need is your IP address which is easily guessed.

Read more...

Dealing with Global Hooks in [email protected]

I have a plugin called webpack-html-meta (WHM) that uses html-webpack-plugin (HWP) to inject <meta /> assets (icons, manifests, etc.) generated using favicons. HWP released a new major version (v4) which changed how other plugins hooks into its pipeline. So I decided to update WHM to match before it falls behind.

Read more...

Fixed RSS Post URLs

I noticed my RSS feeds for jahed.dev contained incorrect links to posts, so I fixed those. I only found out while doing my monthly log analysis to see which pages are the most trafficed. I guess that's more reason to keep doing that.

Read more...

FrontierNav Weekly: 23rd March 2020

Updates on FrontierNav for the week commencing 23rd March 2020

Read more...

Quod Libet, the Perfect Music Player

One of my pet peeves when it comes to software are Music Players.

Music tastes are entirely subjective, yet the vast majority of Music Players are heavily opinionated in how we consume music. They put Albums and Artists as the main breakdowns with the option to manually create playlists. Most are bloated with other features like Lyrics, Wikipedia entries and everything else unrelated to playing music. Their interfaces are rigid and inconsistent. It's all just an extremely restricted environment, a far cry from the massive variety of music that's out there to listen to.

Read more...

Acknowledging The Fragmented Web

There's been a lot of talk about what the World Wide Web is and isn't. I'm not going into the history of all of it, but I'll share my opinions on the problem and a possible solution.

For clarity, I'll be using 'Web' to mean a collection of related websites and 'World Wide Web' as a collection of all public websites.

Read more...

FrontierNav Weekly: 9th March 2020

Updates on FrontierNav for the week commencing 9th March 2020

Read more...

Setting Up CORS for Firebase Storage

Firebase Storage needs CORS permissions set up if you ever want to use XHR or Fetch APIs in the browser to request files from it. However, this isn't easily available via Firebase's web interface. Instead, configuration needs to be done via the Google Cloud SDK and gsutil.

Read more...

Test Your Babel Configuration

Having maintained a client-heavy web application for the last few years, there's one dependency that has routinely broken builds during my weekly dependency upgrades: Babel.

That's not really a surprise. Babel is complicated, you can go through its source code to see that. There are so many permutations of different configurations that it's pretty much impossible to test everything.

What makes this worse is that Babel is a development tool. My tests rely on it to work to even run! So, what can I do? Well, the part that determines Babel's behaviour is my configuration, so I can at least test that.

Read more...