Practical Vim Commands for Real Developers

If you’re comfortable with basic Vim commands and want to take your skills to the next level, this guide will help you unlock some of the best tools Vim has to offer. Whether you’re programming, editing files, or working on large projects, these commands will make your workflow lightning-fast. In this post, we’ll cover six main categories of commands: file navigation, searching, grepping, editing, and autocomplete, all using vanilla Vim—no custom configuration required....

September 28, 2024

Developing a Bot to Automate Web Activity on a XenForo-Based Forum

As a software engineer, automation is a natural extension of problem-solving when dealing with repetitive tasks. And in general, if you ever give me any task that involves a hint of repetition, you can expect me to automate it. Automating something complex to save time is both pleasing and rewarding. Recently, I worked on a project to automate interactions with a XenForo-based forum, saving myself countless hours of manual work. While I won’t disclose the specifics of the forum, the project involved fetching posts, extracting URLs, and automating interactions such as “liking” posts via HTTP POST requests....

September 22, 2024

Advanced REST and HTTP: Status Codes, Headers, and Best Practices for Scalable RESTful APIs

When it comes to building and consuming REST APIs, many developers stop at the basics: GET, POST, PUT, DELETE, and a few status codes like 200 or 404. But REST is much more nuanced than that. Understanding REST deeply means mastering the underlying HTTP protocol, knowing how to design APIs that scale, and ensuring security and performance are top-notch. 1. Advanced HTTP: More than POST & GET Many developers think of REST APIs simply as CRUD (change, read, update, delete) operations accessed via HTTP....

September 17, 2024

Refactoring and Mavenizing a Java Bruteforcing Library

Today, I’m taking on a small yet significant project: cleaning up and improving one of my older repositories on GitHub. It’s a Java bruteforcer I coded about three years ago. I documented the whole process on YouTube. There, you can see me execute all the steps described below. Of course it can’t compete with popular bruteforcers such as hashcat, the password recovery tool that ships with Kali Linux. But it works well anyways....

September 14, 2024

Apache Kafka Introduction: Concepts and Terminology

In today’s world of distributed systems, data moves fast, and applications need to handle huge volumes of data in real time. Whether you’re building microservices, integrating external systems, or managing streaming data, ensuring smooth communication between data producers and consumers is crucial. This is where Apache Kafka comes in—a powerful event streaming platform that enables scalable and decoupled data exchange. A Beginner’s Guide to Apache Kafka: Event Streaming Made Easy I’m Daniel Hirsch, a software engineer based in Germany, and in this post, I’ll share insights from my exploration of Apache Kafka, helping you understand its core concepts and how it solves common problems in modern software architectures....

September 13, 2024

Reverse Engineering and Coding a Keygen for a Java Crackme

I recently downloaded a Java Crackme .jar and looked at what I, as a mortal Java developer, can do with it. A few years ago, I spent a few days working on reverse engineering and the associated tools such as Ghidra. I can also highly recommend the book Hacking: The Art of Exploitation which should immediately ignite a spark in anyone interested. For me, as someone inexperienced in C, even the introduction to the assembly language was tough going....

September 11, 2024

Wie es geht: Java Crackme Dekompilieren und Keygen Programmieren

Ich habe mir mal eine Java Crackme .jar heruntergeladen und geschaut was ich als sterblicher Java Entwickler so damit anfangen kann. Vor einigen Jahren habe ich mich mal ein paar Tage lang mit Reverse Engineering und den dazugehörigen Tools wie Ghidra beschäftigt. Auch sehr empfehlen kann ich das Buch Hacking: The Art of Exploitation welches bei jedem Interessierten sofort einen Funken zünden sollte. Für mich als C Unerfahrenen war selbst die Einleitung zur Assembly-Sprache schon harte Kost....

September 10, 2024

Hosting Static Content on GitHub Pages

Over the last 10 years, I published at least 20 different websites. Some of them went viral and reached tens of thousands of daily visitors. But most of them went under the radar. For small websites, I had a shared hosting plan. I paid 10$ for unlimited domains on a shared host. Performance was meh. But I had no complaints from the visitors I had. A couple of websites I moved to a dedicated cloud hosting provider, which provides me a powerful server to run wordpress on....

September 8, 2024

Vim Ctags Cheat Sheet

There are dozens of good vim cheat sheets online. Why do another one? This one is a cheat sheet tailored to my workflow for generating ctags. Let’s have a look. Generate ctags like this (replace js with whatever language files you want to ignore, if any. I don’t code javascript, but my projects contain tons of js files, so I exclude them): ctags -R -f ~/.ctags --exclude='*.js' <path-to-project> If your project contains a language that is not supported by ctags, but is related to another familiar language, you can use langmap....

September 7, 2024

Hugo Cheat Sheet

Here’s a list of useful hugo commands I regularly use. # Build your hugo project hugo # Create a new content file hugo new <path> # For example: hugo new posts/hugo-cheat-sheet.md # Run the hugo development server hugo server Remember to set draft = false for content to be displayed.

September 7, 2024