TIL: May 2024

Monthly rubric about the curious things I have learnt / discovered

Golang stdlib can't unmarshal the whole JSON from the stream

I believe that stdlib should dictate the standards of high-quality, efficient software development. Generally, I don't expect much from Go, but recently I came across unmarshalling of a large JSON blob. Apparently, there is no way to deserialise from the stream – the only single method json.Unmarshal exists – it reads from a byte[]. Indeed, that would occupy about 2x the original size in memory for the structure, where less than the size of the JSON input could be used.

Obviously, there is a stream json.Decoder that allows processing of the input stream io.Reader, but it's essentially semi-manual processing.

No surprise at the very stereotypical answers from the Golang community: "you don't need it":
reddit response

Someone prohibited the use of JSON for that – tell your company that the project can't be implemented because a Golang developer shouldn't want to stream-parse the response efficiently.
don't use json, quit you job instead


Impersonate Web3 EVM wallet

That's a life-saver. Regardless of how comfy I feel about Foundry tools or ethers.js, nothing will replace proper user experience – especially while researching other accounts. impersonator.xyz allows spoofing of a wallet address via the WalletConnect protocol. Highly recommended for DeFi degens, analysts and builders.

TIL: Feb 2025

Personal programming language complexity grading

I was reflecting about what language is easier to use for the production grade apps and MVP. Certainly, the real grading depend on the context, type and maturity of the service being developed and dozens of other factors. Not trying to simplify things - the table below is just a subjective estimate of the complexity of producing code in two radically different development workflows: AI-driven, and ruX(human)-driven.

Language Human-driven AI-driven
Kotlin 1 10
Typescript 3 1
Rust 10 5
Bash 20 1
JavaScript 40 2
Python 50 1

Read more

TIL: Jun 2025

Replit is great

Despite them being jerks about incorrectly issued invoices, the platform is just amazing. It's never been this easy for the average Joe to build something custom from scratch.

Read more

TIL: Dec 2024

Setting up Transparent TCP Proxifier (aka VPN) in Linux Can't Be Easier

Just wow, you never stop learning about Linux. You can wrap all TCP traffic transparently via an SSH channel just like that:

  1. Install proxychains-ng (alternatives include torsocks or tsocks).
  2. Set up a background persistent connection to the jump box:
    ssh -D 1080 -N -f -o ServerAliveInterval=30 user@jump.box
  3. Create a proxychains configuration file in ~/.proxychains/proxychains.conf:
    strict_chain
    proxy_dns
    tcp_read_time_out 15000
    tcp_connect_time_out 8000
    [ProxyList]
    socks5 127.0.0.1 1080

Done. Seriously.

Read more

TIL: Oct 2024

Classy Ubuntu's snap

Snaps were invented to break down the system and annoy users make software easy to upgrade, mitigate dependency hell, and add some sort of placebo security layer.

github comment explaining that snap isn't supported

This comment in the geth repo highlights one of the reasons why I hate Ubuntu Snap and why I switched from Ubuntu to Pop!OS and never looked back. Unfortunately, I'm still using Ubuntu at work, and these Snap issues persist, though to a lesser degree.

Read more

TIL: Apr 2024

I'm starting a new regular monthly postly theme - TIL ${MONTH}. Although I've mostly disappeared from the social networks I still have a strong urge to share some curous discovery throughout the month.

Google Workspace admin can restore data removed by user

Google Workspace admin can restore data removed by user

It was switched on by default, I guess it won't be very suprising that admin has these level of intervention but still, huh.

Read more

Wrapping Up 2023

It's been a long time since I shared something from my personal life, and generally, not much has been written on the blog in the last few years. Changes in lifestyle, health, and priorities have had a significant impact on how I process things and what I want to share.

Health

The health state is worrying me more than before, which is gradually worsening.

Read more

Project: PhrasesHub introduction

Even when one thinks in English, it doesn't guarantee fluency or that one will sound like a native speaker. To me, one of the most expressive ways to communicate is through the use of phrases and idioms, as they convey rich meanings in just a few words, somewhat acting as memes.

Since I got quite fed up with crypto, I decided to jump on the hype train and try to make use of democratized AI, particularly locally deployed LLMs and StableDiffusion.

Much like how I missed the Ethereum "smart contract" revolution, I soon realized I was late to the AI party. But I suppose it's all relative; for some, Kotlin is still a new language, and for others, crypto is synonymous with drugs and money laundering.

Introducing My New Project: PhrasesHub.com

Read more

Solidity is NOT JavaScript

As blockchains are expanding their influence, it's quite evident for an ordinary developer that Solidity has almost nothing to do with JavaScript.

I'm very particular about compile-time checks and runtime safety when it comes to writing software, and it becomes apparent if you read my other posts. In 2018, when I first came across Ethereum, also known as the 'world computer,' I knew nothing about the technologies behind it except that I'd need to use Solidity for this computer. The Solidity language website v2.2.0 stated, "Solidity is a high-level language whose syntax is similar to that of JavaScript, and it is designed to compile to code for the Ethereum Virtual Machine."

The reference to JavaScript alarmed me. How come someone use a potentially risky language like JavaScript to manage money? I know it mentioned only the syntax, but the reference was strong enough to discourage further exploration in that area, given at that time it didn't look something worth attention.

Read more