Blogs

Declutter Photos on Macos

Prelude With advent of fast and high-res camera mobile phones, comes the need to manage your cloud storage. Memories are just a few taps away residing in your pocket, though, stored somewhere on a cloud server (most likely at Google Photos or iCloud Photos). I have been a fanboy of Google products since childhood. And as I grow old, I am also becoming a fan of Apple products. But, the programmer within me loves everything FOSS(linux anyone?

Your Free And Personal VPN - Part 2

Prologue In previous blog, we launched a free-to-use cloud server (of course, in agreement with terms and conditions of oracle cloud). This server has enough compute power to act as a router for our home IoT devices. enough bandwidth quota to transfer continuous data between devices. In this blog, we will further enhance the connectivity of this server from external world, and proceed towards actually implementing a VPN server. There are many VPN technologies available, the simple choice we made is Wireguard VPN.

Your Free And Personal VPN - Part 1

These days, there are a lot of free as well as paid VPN services available. While the paid ones are reliable, free VPN often is limited by bandwidth and requires frequent configuration changes. But, what if I told you that building a VPN from ground up is no more a delicate job. I recently created a free VPN server for myself too. The goal was to connect my home devices (which are behind a Double NAT from ISP) to a VPN machine for remote access.

Gson vs Proto vs Chronicle Wire Race over 20MB Heap

Intro In my last article, I tested chronicle wire serialisation within gRPC backend. The idea was a requisite for an other idea of comparing serialising performance of protocol buffers wrt chronicle wire. This is the demo for the original idea. The performance of chronicle wire is expected better or at par to protocol buffer owing to lesser GC time they pose at scale. Let’s find out. I am also including gson as a third approach.

Integrating Chronincle Wire with GRPC backend

Intro Recently, I got introduced to chronicle wire as a high performance serialization library. While gRPC based concurrency/latency benefits had always been on top of my mind, I wanted to put theories to test. So, I married the two tasks together. Voila, the ask is to test for a custom grpc backend not utilizing protocol buffers serialization for transport, but chronicle wire. Setup As always, my old MBP 2016, no external cloud server setup.

Rust vs Java Concurrent Hashmap

Race 2: Concurrent Updates to a Mutexed Hashmap in Rust and Java Very often, we find ourselves using an in-memory cache implementation which spans across thread boundaries in an application. This experiment tries to evaluate a small implementation using hashmaps with “mutually exclusive” operations. Setup The host machine is running on Macbook Pro 2016 model with Intel i7 processor, 16GB RAM ( 8 threads ). There were no other demanding programs other than IDE/terminals needed.

Fibonacci Race between Rust And JVM Execution

Fibonacci in Rust and Java I was curious to compare the runtimes between java and rust. This benchmark exercise was done on my MBP 2016 model with not much care around running programs. Given that the two programs executed back to back, I doubt any OS level resources congestion would have made any difference to the results. Setup For my study purpose, I was trying to write fibonacci series program with rust.