Techempower Framework Benchmark Round 21
The result for Techempower framework benchmark round 21 is out, as usual the most important benchmark is the update and multi query benchmark:The top rankers are Rust, JS (cheating), Java, C++, C#,...
View ArticleGetting started with InfluxDB
Today we're gonna learn about InfluxDB, a time series database that already been a standard for open source metric storage, a part of TICK stack (telegraf -- a metric collector like...
View ArticleMap to Struct and Struct to Map Golang Benchmark 2022 Edition
Sometimes we want to convert from map to struct or struct to map (dictionary in other language), or even struct to struct. There's some library that can help us doing this, for example structs,...
View ArticleCockroachDB Benchmark on Different Disk Types
Today we're going to benchmark CockroachDB one of database that I use this year to create embedded application. I use CockroachDB because I don't want to use SqLite or any other embedded database that...
View ArticleLua Tutorial, Example, Cheatsheet
Lua is one of the most popular embeddable language (other than Javascript that already embedded in browser), there's a lot of products that embed lua as it's scripting language (probably because the...
View ArticleHow to use DNS SDK in Golang
So we're gonna try to manipulate DNS records using go SDK (not REST API directly). I went through first 2 page of google search results, and companies that providing SDK for Go were:IBM...
View ArticleGeoSearch Database Benchmark
So today we're gonna benchmark database that can store latitude-longitude (GPS coordinate), the benchmark spec is unbatched INSERT 100K records of (id, lat, long) tuple, search 200K times (or until...
View ArticleDockerfile vs Nixpacks vs ko
Dockerfile is quite simple, first we need to pick the base image for build phase (only if you want to build inside docker, if you already have CI/CD that build it outside, you just need to copy the...
View ArticleSimple Websocket Echo Benchmark
Today we're gonna benchmark nodejs/bin+uwebsocket with golang+nbio. The code is here, both taken from their own example. The benchmark plan is create 10k client/connection, send both text/binary string...
View ArticleKEDA Kubernetes Event-Driven Autoscaling
Autoscaling mostly useless, if the number of host/nodes/hypervisor is limited, eg. we only have N number of nodes, and we tried to autoscale the services inside of it, so by default we already waste a...
View ArticleUsing Vault with Go
So today we're gonna use vault to make the configuration of an application to be in-memory, this would make debugging harder (since it's in memory, not on disk), but a bit more secure (if got hacked,...
View ArticleFree VPN on Linux
Usually I use extension in firefox or chrome, like UrbanVPN, but now I know that Cloudflare provides free VPN, I have problem where my ISP always block DNS queries, where my work mostly heavy on Web,...
View ArticleChisel: Ngrok local-tunnel Alternative
So today we're gonna learn a tool called chisel, from the same creator of overseer that I usually use to graceful restart production service.What chisel can do? It can forward traffic from private...
View ArticleNATS: at-most once Queue / simpler networking
As you might already know in the past article, I'm a huge fan of NATS, NATS is one of the fastest one at-most-once delivery non-persistent message broker. Unlike rabbitmq/lavinmq/kafka/redpanda, NATS...
View ArticleBenchmarking docker-volume vs mount-fs vs tmpfs
So today we're gonna benchmark between docker-volume (bind to docker-managed volume), bind/mount-fs (binding to host filesystem), and tmpfs. Which one can be the fastest? here's the docker...
View ArticlemTLS using Golang Fiber
In this demo we're going to create mTLS using Go and Fiber. To create certificates that can be used for mutual authentication, what you need to have is just an OpenSSL program (or simplecert, or mkcert...
View ArticleInstall Ruby 2.7 on Ubuntu 22.04
So I have a past project from 2014 that still running until now (5 independent services: 3 written in Golang - 2 read-only service, 2 write-only service written in Ruby, 1 PostgreSQL, 1 Redis, ~45GB...
View ArticleBenchmarking LLM models
Today we're gonna try to use ollama to generate some code, it quite easy you just need to install it using curl like this, and install some model:curl https://ollama.ai/install.sh | sh# these models...
View ArticleOLLAMA with AMD GPU (ROCm)
Today we're gonna test ollama (just like previous article) with AMD GPU, to do this you'll need to run docker, for example using this docker compose file:version: "3.7"services: ollama:...
View ArticleWriting UDF for Clickhouse using Golang
Today we're going to create an UDF (User-defined Function) in Golang that can be run inside Clickhouse query, this function will parse uuid v1 and return timestamp of it since Clickhouse doesn't have...
View ArticleDump/export Cassandra/BigQuery tables and import to Clickhouse
Today we're gonna dump Cassandra table and put it to Clickhouse. Cassandra is columnar database but use as OLTP since it have really good distributed capability (customizable replication factor,...
View ArticleClickhouse in Kubernetes / Minikube using Bitnami Helm Charts
Normally for my projects I use docker-compose + normal bind persistence directory to avoid data loss for database (and keep it fast and simple to maintain), because it's simpler to upgrade version than...
View ArticleBackup and Restore Cassandra Database for Development
Last time we're dumping from Cassandra and restore it to Clickhouse for proper analytics. To do that we need cqlsh and cassandradumppip install -U cqlshpip install cassandra-driver# list all...
View ArticleHow to use Google Pub/Sub Locally with Golang
As much as I didn't like Google PubSub (because of it's inefficiency), especially compared to normal database that forced to use as queue (eg. Tarantool can do 200k events/s, Clickhouse can do 900k...
View ArticleInstall Deepseek R1 on Linux
How to install ollama with deepseek R1 (that will also install ROCm if you are using AMD GPU).curl -fsSL https://ollama.com/install.sh | shsudo chown -R ollama /usr/share/ollama # just in case#...
View Article