Programming

A digital wallet for business cards - Kart Business Project

Predictions for the Future of Programming Future in 2030

Free OCR Software created by Abanoub Hanna - Software Developer

Building Your Personal AI-Powered Go Development Stack: Ollama, OpenCode & Local LLM Magic

Building Your Personal AI-Powered Go Development Stack: Ollama, OpenCode & Local LLM Magic

In today’s era of local-first AI development, there’s been a remarkable transformation in how we write code. Instead of relying entirely on cloud-based AI assistants, many developers are …

Mastering Go Web Development with Gemma 4, Ollama, and OpenCode on macOS

Mastering Go Web Development with Gemma 4, Ollama, and OpenCode on macOS

In the rapidly evolving landscape of AI-assisted development, choosing the right local models and tools can be the difference between a workflow that feels like a chore and one that feels like a …

The Ultimate Storage Hack: How to Save Terabytes by Converting Your Media Library to AV1

The Ultimate Storage Hack: How to Save Terabytes by Converting Your Media Library to AV1

We have all been there. You go to download a new game, export a project, or back up your phone, only to see the dreaded notification: Storage Almost Full. Before you run out and buy another expensive …

Arabic vs. English: Which Language Uses Less Digital Storage Space?

Arabic vs. English: Which Language Uses Less Digital Storage Space?

When building a multilingual website or database, we often focus on translation accuracy, design layouts, and cultural nuances. However, there is a hidden technical factor that many developers and …

What I actually installed on Ubuntu 26.04 LTS

What I actually installed on Ubuntu 26.04 LTS

I talked previously about what I do after installing Ubuntu as a SWE . Here is what I actually did after the installation of the new Ubuntu 26.04 LTS. As you might know from the previous post, I am a …

Gitea's Container Registry Just Got More Reliable: Fixing Data Races in Concurrent Blob Uploads (PR #36524 + Backport #36526)

Gitea's Container Registry Just Got More Reliable: Fixing Data Races in Concurrent Blob Uploads (PR #36524 + Backport #36526)

TL;DR When you build multiple Docker/OCI images that share the same base layers (super common with BuildKit), Gitea’s container registry used to hit intermittent failures — 400 Bad Request errors, …

Securing Gitea Repository Templates: A Deep Dive into PR #36734 & #36746

Securing Gitea Repository Templates: A Deep Dive into PR #36734 & #36746

Fixing path traversal vulnerabilities with safe file handling 🔗 TL;DR (for the hurried reader) Problem: Gitea’s repository template system (.gitea/template) could be tricked by symlinks into …

Fixing a Sneaky Security Bug in Gitea: Users Could No Longer Change Someone Else’s Primary Email

Fixing a Sneaky Security Bug in Gitea: Users Could No Longer Change Someone Else’s Primary Email

How two quick pull requests ( #36586 + #36607 ) closed an authorization hole in the account settings 🔗 TL;DR A logged-in user could tamper with a form and change another user’s primary email address. …

Gitea Just Got More Secure: Fixing OAuth2 Authorization Code Expiry and Reuse

Gitea Just Got More Secure: Fixing OAuth2 Authorization Code Expiry and Reuse

TL;DR (for skimmers) 🔗 Problem: Gitea’s OAuth2 “authorization codes” never expired and could be reused in race conditions → potential security risk. Fix: Two tiny, targeted pull requests now enforce …

Linux 7.0: The Latest Kernel Upgrade That’s All About Smart, Steady Progress

Linux 7.0: The Latest Kernel Upgrade That’s All About Smart, Steady Progress

Released April 12, 2026 – Just two days ago! Linux kernel 7.0 is here, and it’s exactly what fans love about Linux: no massive revolution, just a ton of smart, practical upgrades that make everyday …