Recent Posts (Ercan)


Spring Boot Strategy Pattern Example

Design patterns are one of the most valuable tools in a developer’s toolkit. They provide proven solutions to recurring design problems and help us write code that is maintainable, flexible, and easy to extend. One of the most practical patterns in everyday software development is the Strategy Pattern. In this article, we’ll look at how the Strategy Pattern can be applied in a real-world example using Spring Boot. We will build a simple REST API that takes a piece of text and returns its hash, depending on the algorithm selected by the client. The project is a minimal but effective demonstr..

Introducing Dual Licensing for ESZ Extensions

We are excited to announce that four of our OpenCart extensions — ESZCaptcha, ESZAntiBrute, ESZCrossSell, and ESZViewTrack — are now officially available under a dual license model (GPLv3 + Commercial) on GitHub. Why Dual Licensing? By adopting a dual license approach, we aim to offer the best of both worlds: GPLv3 License: Perfect for developers and open-source enthusiasts who want to use, study, and modify the extensions freely in compliance with GPLv3 terms. Commercial License: Designed for businesses and professional use cases where additional flexibility, legal assurance, an..

Advanced MySQL Query Techniques

Most developers interact with MySQL through familiar CRUD operations — simple SELECT, INSERT, and UPDATE statements. But MySQL 8 introduced a new set of powerful features that can handle advanced analytical use cases, hierarchical data, and complex aggregations directly within SQL. In this guide, we’ll explore practical, non-standard but extremely useful query patterns, all using plain MySQL 8+. Each section includes example tables, real-world use cases, and a short explanation of how and why the query works. 💡 Note: All queries in this article require MySQL 8.0 or higher (due to CTEs,..

Installing MySQL on MacOS

If you're developing locally on a Mac and prefer running MySQL natively instead of using Docker, this guide is for you. I personally run several personal projects on my MacBook and want my data to persist without relying on containers. Here’s how to install and secure MySQL using Homebrew, with architecture-specific instructions for Apple Silicon and Intel-based Macs. Step 1: Install MySQL brew install mysql By default, MySQL creates a root user without a password. For security reasons, I prefer setting a password manually. Step 2: Start MySQL Temporarily brew services ..

Installing PostgreSQL on MacOS

If you're working on personal projects and prefer running PostgreSQL directly on your Mac instead of using Docker, you're not alone. While containerization is great for many use cases, sometimes you just want your database to live natively on your machine — especially when you care about persistent data and minimal overhead. In this guide, I’ll walk you through installing PostgreSQL 18 using Homebrew on macOS, with separate instructions for Apple Silicon and Intel-based Macs. Step 1: Install PostgreSQL brew install postgresql@18 By default, Homebrew initializes a database clust..

Advanced Oracle SQL Query Examples

When working with Oracle databases, you often go beyond simple SELECT statements. Real-world data is hierarchical, analytical, and sometimes messy. In this article, we’ll explore powerful Oracle SQL techniques that solve complex data problems — using realistic examples and sample tables. We’ll cover partitions, hierarchies, analytics, and more. Each example includes setup scripts and queries you can run directly in your Oracle environment. Sample Schema Setup Let’s start by creating two simple but related tables: departments and employees. CREATE TABLE departments ( dept_id ..

PostgreSQL Advanced Query Examples

PostgreSQL is known for its standards compliance and performance — but what truly sets it apart is its depth. Beyond the typical SELECT, JOIN, and WHERE statements lies a powerful set of query features that can make your SQL far more expressive and efficient. In this article, we’ll explore advanced PostgreSQL queries that go beyond the basics — including recursive CTEs, partitioned tables, JSONB filtering, window functions, and more. Each example includes simple schema setup statements, so you can try them out directly in your environment. 1. Recursive CTE: Handling Parent–Child Relati..

ESZCaptcha v1.1 Released – Smarter Captchas, Better Control

We’re excited to announce the release of ESZCaptcha v1.1 — a smarter and more flexible version of our Captcha extension for OpenCart. This update empowers store owners to fine-tune Captcha challenges with even more control. You can now select one or more character sets to be used: uppercase letters, lowercase letters, and numbers — or any combination that fits your store's needs. Additionally, you can now enable an option to exclude similar-looking characters such as 0, O, 1, I, and l — minimizing user errors caused by visual confusion. 🔒 New in v1.1: Support for selecting one o..

ESZAntiBrute v1.1 Released – Now Protecting Password Reset Requests

We’re pleased to announce the release of ESZAntiBrute version 1.1! As one of the most effective brute force protection tools for OpenCart, ESZAntiBrute continues to evolve. With the new 1.1 update, we’re expanding the scope of protection beyond login pages — the extension now also limits repeated "Forgot Password" requests, a commonly overlooked attack vector. What’s New in v1.1: Protection added for "Forgot Password" forms on both customer and admin login pages. Individual IP-based limits for password reset requests, just like login attempts. All protections remain independent..

Introducing ESZCrossSell 1.0 - Boost Your OpenCart Sales with Smart Cross-Selling!

We are excited to announce the release of ESZCrossSell 1.0, our brand new cross-selling module designed exclusively for OpenCart users! ESZCrossSell intelligently analyzes previous customer orders and automatically recommends products that are frequently purchased together. With this powerful tool, you can effortlessly increase your average order value and provide a better shopping experience for your customers. In the commercial version, store owners have full control over the behavior of the module: Set the minimum number of combined purchases required for products to appear. C..

Showing 11 to 20 of 39 (4 Pages)