NVIDIA offers free access to their powerful Nemotron models through their NVIDIA Build platform . In this post, I’ll walk you through how to get a free API key and configure it in VS Code to use models like nvidia/nemotron-3-ultra-550b-a55b directly in VS Code. Also you can choose any other model from here . Prerequisites VScode needs to be above 1.27 it needs to have customendpoint…
In the world of software engineering, we often obsess over the “Testing Pyramid.” We pour resources into unit tests, integration tests, and E2E suites. These are critical, they tell us that our features work as designed. But there’s a shadowy category of bugs that traditional tests often miss: the architectural “anti-patterns” and “API misuses” that don’t…
After setting up CUDA on my other laptop, I moved to a different(older) machine that doesn’t have an NVIDIA GPU. This one is an everyday laptop with integrated Intel graphics, but that doesn’t mean we have to settle for slow CPU-only performance. On this machine, I switched to the Vulkan backend for llama.cpp and the results were even more dramatic than I expected. Machine Hardware…
Setting up NVIDIA CUDA on Debian 13 (Trixie/Sid) to run Large Language Models (LLMs) can be a bit of a journey, especially if you’re transitioning from the default open-source drivers to the proprietary stack required for GPGPU workloads. Over the last few days, I’ve been working on getting llama.cpp to run with CUDA on my laptop to see how much of a difference it makes compared to…
Note: These are suggested optimizations I have not personally tried yet. I’m blogging them as I’m planning to test them throughout this week. OrbStack is highly optimized for macOS, using a proprietary, high-performance networking stack and a custom VirtioFS implementation with aggressive caching. Podman, while being open-source and standard-compliant, can be tuned to significantly…
I have been using Atlassian MCP with internal Confluence and Jira, and it has been wonderful. Finding internal information is often challenging and time-consuming. To be honest, searching through Jira or Confluence and locating the right information can be really difficult. Create Jira and Confluence API tokens from your internal site profile page. For example:…
Have you ever wondered exactly which files are being hammered by your Linux system in real-time? While tools like iotop or lsof are great, sometimes you want something more visual, custom, and lightweight. In this post, I’ll walk you through how I built a Real-time File I/O Heatmap using the power of eBPF for data collection and Java 25 for a modern Terminal UI (TUI). What is eBPF and Why…
Introduction Today I’m excited to announce the addition of Bun to our microservice framework benchmark suite . The results are nothing short of remarkable . Bun has proven to be one of the fastest runtimes in our entire test suite, competing directly with Rust frameworks! What is Bun? Bun is a modern JavaScript runtime built from scratch using Zig and JavaScriptCore (the engine that powers…
A minimal, runnable client–server example that fixes PKIX issues in OpenFeign with mutual TLS and adds application‑level identity/authorization via Spring Security X.509.
Introduction Test results for this benchmark run → Over the last two days, I’ve expanded our microservice framework benchmark suite to include two new contenders: Golang and Express.js . This addition allows us to compare performance across a broader spectrum of technologies, from compiled languages like Rust and Go to JVM-based frameworks and Node.js. New Additions Golang (Go 1.24.10) Go…
So I got my Mac Mini M4 from Amazon for £500 and started using it. I had so many problems with the shortcuts I normally use even Ctrl+A wasn’t working, I had to use Win+A, and many other shortcuts were different. One of the biggest problems was using the sound keys on the keyboard. On Linux they worked fine: sound up and down controlled the output volume. But on macOS it didn’t work. Very strange…
From Frustration to Breakthrough: Running macOS on KVM For years, I chased the dream of running macOS in a virtual machine . On Windows, I tried VMware and VirtualBox countless times with different tutorials and blogs. Each attempt ended in frustration: crashes, unsupported hardware, endless configuration rabbit holes. It felt like a goal always just out of reach. And finally I found…
Why I built Paint Whenever I wanted to make a very small edit on my Debian laptop, crop a screenshot, add a quick arrow, or block out a small area, the system only had GIMP for editing images. Powerful, but heavy and slow for tiny, frequent tasks. I wanted something nimble: quick to open, easy to use, and focused on the common one-off edits people do dozens of times a day.
Quick numbers (avg; smaller is faster) I (imperative nested) : 3.28 µs I2 (imperative freq-map): 1.93 µs F (streams grouping): 127.37 µs FP (parallel streams grouping): 599.28 µs Winner: I2 - imperative freq-map Note: These are sample numbers from the run below on my machine; yours will differ. I/F labels mirror the 2015 post for a simple visual compare. == 2015-style harness (I:/F: lines) ==…
When it comes to preparing documents for important applications like the UK’s ILR (Indefinite Leave to Remain), efficiency and ease of use are everything. Recently, I needed to create a PDF from my passport pictures, and after some trial and error, I found a workflow that saved me a ton of time and frustration - all thanks to a fantastic open-source tool called PDF Arranger . The Struggle with…
PostgreSQL 🐘 is a robust database, but its MVCC (Multi-Version Concurrency Control) design can sometimes lead to a subtle issue: table and index bloat . If left unchecked, bloat wastes storage, increases I/O, and can slow queries down. In this post, I’ll walk through: What bloat is and why it happens Different ways to measure it How to keep an eye on it without killing your database A few…
Modern servers are expected to push hundreds of gigabits per second while keeping latency low and CPU use manageable. Two kernel-level innovations- socket sharding and kernel TLS (kTLS) -help make that possible. When paired with NIC TLS offload , the gains are even bigger. Socket Sharding Traditionally, only one process could accept() connections from a TCP socket. With Linux 4.5 (2016) and…
A comprehensive guide to SSL certificate creation for PostgreSQL, covering everything from basic OpenSSL commands to enterprise-grade PKI practices used by major financial institutions and media companies.
A comprehensive guide to implementing Distinguished Name (DN) based certificate authentication in PostgreSQL using pg_ident.conf for flexible identity mapping when CN doesn't match the PostgreSQL username.
A comprehensive guide to implementing secure mTLS authentication for PostgreSQL with proper SAN configuration and hostname verification to prevent common SSL connection failures.
Why using client-side pagination for unknown data sizes in a React Spring Boot app can backfire - and how to fix it with proper server-side pagination.
1. pg_stat_statements Extension that tracks execution statistics for all SQL statements (execution count, total time, etc.). Here full docs 2. PostgreSQL Logging ( postgresql.conf ) Configure parameters like log_statement , log_duration , or log_min_duration_statement to log queries to a file. 3. auto_explain Automatically logs execution plans for slow queries , useful for performance tuning. 4.…
Client certificate authentication in PostgreSQL provides a secure, passwordless way to authenticate users. Instead of relying on passwords, clients present valid X.509 certificates to prove their identity. What to Configure Server-Side Requirements SSL certificates : Server certificate + client certificates PostgreSQL SSL settings : Enable SSL and configure certificate paths Authentication rules :…
PostgreSQL 18 Beta 1 - New Features and Breaking Changes Source : GitHub - PostgreSQL 18 Beta 1 New Features Overview PostgreSQL 18 introduces over 200 new features and changes. This document summarizes all significant new features, improvements, and breaking changes introduced in the Beta 1 release. Meaning these features can disappear too, this is just a beta. 1. Highlights of Major New Features…
My Journey with Junie: A Game-Changer for Developers Over the past three weeks, I’ve been extensively using JetBrains Junie, and I’m genuinely impressed with how it has transformed my development workflow. In this short period, I’ve successfully implemented three significant features with remarkable ease. Based on my experience, Junie offers capabilities that go well beyond what…
In July 2015 , I packed my bags and left Istanbul for a new chapter in Wrocław, Poland , to join Credit Suisse . It was a hot summer. I couldn’t afford a direct flight, so I flew to Berlin and took a bus to Wrocław. I was excited-and nervous. It was my first time living outside of Turkiye, and I was about to work for a bank I had never heard of before.
I have an old Huawei laptop that was originally running Windows 10. Then moved to 11 With only 8GB of memory, the system was painfully slow, just browsing internet quite frustrating. I initially considered switching to Linux Mate, but then decided to give Debian 12 a try. I used Debian between 2004 to 2015 so I know how good it is. I downloaded the minimal USB stick image of Debian 12 from here…
For years, I’ve been using Jekyll to power my blog at ozkanpakdil.github.io . It has served me well in production, but setting it up on Windows for local testing has always been a bit of a headache. Even with WSL, the process is sluggish, making experimentation and quick iterations more cumbersome than I’d like. Recently, I started thinking about creating a PostgreSQL benchmark center website, and…
Prologue: The Era of WebLogic and Apache Mod_WebLogic It was 2012. Turkcell, Turkey’s largest mobile operator, had 15 million subscribers, and the pressure was on. As part of the operations team for www.turkcell.com.tr , I managed a labyrinth of infrastructure: 10 strong linux servers which had Weblogic installed humming behind Apache mod_weblogic proxies, serving dynamic requests while Apache…
I am using Fail2Ban for around 12 years now, maybe more. It started back when ssh brute-forcing script kiddies were everywhere. Who are they? They are people or machines scanning all IPs on the internet, and if they find an open SSH port, they start doing brute force password attacks. They do this for MySQL, PostgreSQL, or basically any open port. If there is a possibility of username/password…
Today I needed to check which ports are open on a remote server to ensure that the services I need are running and accessible. Here are a few ways to check which ports are open on a remote server: Telnet Telnet is a command-line tool that can be used to check if a port is open on a remote server. You can use the following command to check if a port is open:
When building Spring Boot applications, handling concurrent API calls efficiently is crucial to ensure optimal performance and scalability. Here are a few approaches to manage concurrent read and write operations: Handling Concurrent Read API Calls Asynchronous Methods Using @Async at @Service annotation and enabling asynchronous processing can help handle multiple API calls concurrently. @Async…
Fine tuning and optimizing the fill factor in PostgreSQL can significantly impact the performance of your database. The fill factor is a parameter that determines the percentage of a data page to be filled with rows, leaving space for future updates to minimize page splits and improve performance on frequently updated tables. By adjusting the fill factor, you can optimize storage efficiency and…
Fillfactor in PostgreSQL is a parameter that sets the percentage of a data page to be filled with rows, leaving space for future updates to minimize page splits and improve performance on frequently updated tables. If you are having a table with a lot of updates, you can set the fillfactor to a lower value to leave space for future updates. The default fillfactor is 100, which means that the table…
“Load balancing” can be explained as maintaining any workload. For example if you have to serve 1000 breakfast in the morning you can divide the work among 2-3 or more caterers to lower the delivery/preparation time. In the computer world, same logic applies, if you want to deliver fast, you can divide the work, for example for a website we can have 5-10 webserver, this way website…
Spring boot is the most famous java framework, and I have been looking for a simple way to serve a java app on a hosting service(not dedicated which is very expensive not AWS/Azure which are too complicated), Most shared hosting does not support java apps, they support php or asp or perl here is the table for godaddy webhosting supported tech. I will explain how to deploy from dockerhub to Koyeb,…
I have this side project with me since 2007, it is an one file php website with sqlite db and some pictures and js and css. I am keeping it just to monitor sometime how are the things at php side. Anyway when I first build up this site I was using shared hosting, and in time I moved to dedicated server and today I decided to move to koyeb.com which is a nice cloud provider.
I wrote this arti warp server for running whois via TOR network, Arti is CLI tool which has arti_client library inside for connecting the network, my main target to dockerize this for easy deploy to koyeb.com I used docker init to create Dockerfile and others and changed the implementation little bit because of some special dependencies ARG RUST_VERSION = 1 .82.0 ARG APP_NAME = arti_whois FROM…
Here is a summary of JetBrains developer stats of 2024 . Java and Javascript are going down and Typescript and Rust are going up most used lang %61 javascript Unexpectedly WebAssembly is growing strong Most popular db is MySql and second PostgresSQL 🥳
PostgreSQL has query execution plans configured as extension, meaning they do not come out of the box we need to configure it, For on-prem or owning server you can check this link which tells how to configure it. Problem is there are so many steps. And it is confusing for AWS Aurora I wrote a small bash script Here just to make this work automatic. Here is powershell version SubnetGroupName -> AWS…
I was thinking on this question How does HashMap handle collisions internally? What changes were introduced in Java 8 for its implementation? and reading this blog says On a final note, from Java 8, the linked lists are dynamically replaced with balanced binary search trees in collision resolution after the number of collisions in a given bucket location exceed a certain threshold. Than I wonder…
FFM is the new API trying to replace JNI and jep is here It is basically calling functions outside of JVM or accessing memory not managed by JVM. I wanted to test can FFM beat regular Java API, below you can find a simple test doing math sin with FFM and with regular Math.sin import java.lang.foreign.FunctionDescriptor; import java.lang.foreign.Linker; import java.lang.foreign.MemorySegment;…
Whenever I search anything on the start menu it triggers an internet search at the back and brings some results and suggestions from web, I use browser to do internet things, when we start mixing that to regular windows programs that slows down the computer, and I do not like slow windows. Below you can find a way to disable that online search. @echo off :: Check if running as administrator net…
I have been using Google Programmable Search Engine on my blog, but I found that it doesn’t work quite as I expected. First, I tried Bing and DuckDuckGo as alternatives, but none of them performed as desired. DuckDuckGo’s API is nice, but it lacks a ‘site:’ filter, which prevented it from working as needed. Here are the steps to set up a Jekyll search system using Lunr.js for GitHub…
Graalvm is AOT compilation advanced JDK, I am following the project since 2019, Project’s first target was AOT now lately I start seeing more about multi language support. It supports Python, JS, Ruby, Wasm more details here And WASM is getting popular day by day, WASM is a new binary file for web. There are many cool examples of WASM Doom game in the browser with graalvm Postgres database…