The Complexity We Choose

AI can help us write more software, but our real opportunity is to make software simpler to understand, verify, and own.

Optimizing Large Language Models A Look at Key Techniques

An introduction to key techniques for optimizing Large Language Models (LLMs), including Retrieval-Augmented Generation (RAG), Chaining Transformers, Prompt Engineering, and Transfer Learning and Fine-tuning.

Nginx Reverse Proxy for Amazon OpenSearch Kibana with Ansible

A guide on how to set up access to Amazon OpenSearch Service Kibana using an Nginx reverse proxy, provisioned with Ansible. This includes defining inventory, creating a main playbook, and configuring Nginx for basic proxying.

Exporting React Components to PDF

A guide on exporting React.js components to PDF using html2canvas to create canvas objects and pdfMake to generate the PDF document.

What Programming Language Pays the Most in Slovakia?

An analysis using web crawling and NLP techniques on Slovak job ads to determine the most in-demand and highest-paying programming languages in the local job market.

Serverless Architectures

An overview of Serverless Architectures, a modern approach to application design. This post covers what serverless is, its key characteristics, and a balanced look at its upsides and downsides.

What Are Smart Contracts?

An introduction to smart contracts, their history, how they work, and their execution on the Ethereum blockchain using Solidity and Web3.

Understanding Java Memory Leaks

This post delves into Java memory management, common types of OutOfMemoryError, and demonstrates how to create various memory leaks like byte, list, map key, and class leaks with practical examples.

Introduction to Java 8 Stream API

An overview of the Java 8 Stream API, covering its definition, core characteristics like pipelining and internal iteration, and the distinction between intermediate and terminal operations, alongside its benefits for collection processing.

JavaScript Promises - An Introduction

An introduction to JavaScript Promises, explaining their purpose in handling asynchronous operations, addressing callback hell, and demonstrating a basic implementation.

Java Profiling - Built-in Tools

An introduction to Java profiling, covering common performance issues and essential built-in JDK tools like jmap, jstack, jconsole, and VisualVM, along with mentions of specialized profilers.

Refactoring Conditional Logic with Polymorphism

This post explores refactoring complex conditional statements (like switch or if-else ladders) into a more maintainable and object-oriented polymorphic design, demonstrating how it enhances code readability and extensibility.

Java Generics: Understanding Type Erasure and Bridge Methods

An in-depth look at how Java implements generics through type erasure, including the steps involved, its compile-time nature, and the role of synthetic bridge methods in preserving polymorphism, illustrated with code examples.

Groovy Memoization with .memoize()

An explanation and example of Groovy's memoize() method for caching closure results to improve performance, particularly in computationally intensive or recursive scenarios.

Using Grails dataBind Outside a Controller

A quick tip demonstrating how to use the Grails `dataBind` command outside of a Grails controller, for instance, in a service layer.

Simple Remote Logger for Android

A guide to implementing a basic remote logger for Android applications, allowing logs to be sent from the device to a backend server for centralized monitoring.

Simplifying Android Context Access Globally

Learn how to store and access your Android application context globally using a static field in your custom Application class, reducing the need to pass it around.

A Custom Blocking Queue Implementation in Java

Explore a custom implementation of a blocking queue in Java, complete with worker threads and the 'poison pill' termination technique. This article demonstrates fundamental concurrency concepts and serves as a learning exercise compared to using Java's built-in `BlockingQueue`.

Java - Passing Arrays and Collections as Method Arguments

A guide on how to pass array instances directly to methods in Java, and a technique using anonymous inner classes with instance initialization for collections.

How to Create Threads in Java

Explore two common methods for creating new threads in Java: implementing the Runnable interface or extending the Thread class and overriding its run() method.

Book Recommendation: Refactoring

A recommendation for the book 'Refactoring: Improving the Design of Existing Code', highlighting its value for developers looking to enhance their coding skills.

Interviews with IT Pioneers: Ward Cunningham and Barbara Liskov

Insights from computing pioneers Ward Cunningham on Agile and knowledge sharing, and Barbara Liskov on the Liskov substitution principle and distributed systems, through their QCon interviews.

Effective Java - The Builder Pattern

Explore the Builder Pattern as an elegant solution for handling a large number of optional parameters in constructors, addressing limitations of telescopic constructors and JavaBeans.

Visitor Design Pattern

An explanation of the Visitor design pattern, demonstrating how to define new operations on objects without modifying their classes, using a Java example with vehicle fuel efficiency calculations.

Google App Engine Push Technology with Long Polling

An explanation of Google App Engine's push technology using long polling, detailing client-server communication channels, an example application, and code snippets for client-side JavaScript and server-side Java implementation.

Facade Pattern and Session Facade

An explanation of the Facade Pattern, a structural design pattern that simplifies complexity and decouples code, along with a detailed look at the Session Facade, which encapsulates client-server interactions.

Understanding ThreadLocal in Java

Explore the concept of ThreadLocal in Java, its unique scope, global access within a thread, and common use cases in web applications and as an alternative to object pools.

Java Reference Types - Strong, Weak, and Soft References

An overview of different reference types in Java, including strong, weak, and soft references, explaining their behavior with the garbage collector and common use cases like caching.

Command Pattern

An introduction to the Command pattern, including its definition, use cases, and an example demonstrating complete decoupling between sender and receiver.

Fetching RSS Feeds with the ROME Library in Java

A quick guide on how to use the ROME library in Java to easily fetch and parse RSS feeds, including a practical code example.

Douglas Crockford and JavaScript's Expanding Role

An exploration of Douglas Crockford's influence on the JavaScript community, the language's unexpected rise beyond browser confines, and his insights on functional programming and avoiding classical methodologies.

Koch Snowflake Animation with HTML5 Canvas

An exploration of the Koch snowflake fractal, demonstrating its recursive implementation through an animation using HTML5 Canvas and JavaScript.

Java Concurrency Strategies

Exploring various concurrent programming strategies in Java, including single-threaded, simple multi-threaded, thread pooling, and the Future and Callable mechanisms, along with a performance comparison.

ADF Faces Generator - Automating ADF View Creation

An alpha version of a JDeveloper extension that automatically generates the view part of an ADF Fusion Web Application from its model, including installation instructions and usage examples.

Grails Controller Unit Testing

This post details how to perform unit testing for controllers in Grails using ControllerUnitTestCase, including examples for mocking services.

Reflections on Clean Code and Professionalism

A reflection on the importance of clean code, inspired by 'Clean Code - A Handbook of Agile Software Craftsmanship', emphasizing clarity and professionalism in programming.

Groovy and Java - Closures and Dynamic Programming

This post explores key differences between Groovy and Java, focusing on Groovy's closures and its dynamic programming capabilities, with practical code examples.

Grails File Upload Example

A working snippet for uploading files in Grails, including controller logic and GSP form example.

Groovy: An Introduction to its Core Concepts

An introduction to the Groovy programming language, covering its core concepts, fundamental differences from Java, productivity features, operators, data types, collections, and regular expression support.

Why Learn Scheme? Understanding Functional Programming for JavaScript

An introduction to Scheme, highlighting its benefits for understanding JavaScript, its core functional programming concepts, and basic syntax with illustrative examples.

Java Design Patterns - Decorator (Wrapper)

An explanation of the Decorator design pattern in Java, including its definition, implementation examples, and a demonstration of how it adds functionality to objects dynamically.

Introducing the JDeveloper ADF View Controller Generator

An introduction to a JDeveloper plugin for generating Oracle ADF view controller projects from a model project, emphasizing its benefits for prototyping and customization over existing tools like Oracle HeadStart.

Developing an Android 2D Game - Hexxagon-like

A tutorial on developing a 2D Android game similar to Hexxagon, covering game rules, class design, UI, and animation using Java 2D interfaces.

Using XPath in Java

A guide to using XPath for XML document parsing and querying in Java, with practical code examples.

Simple Saxon XSLT Transformation Example using Java

A simple and descriptive example of performing Saxon XSLT transformations using Java, including a code snippet and setup instructions.

Speed up JDeveloper

Tips to improve JDeveloper performance, focusing on memory management, component binding, and page complexity.

PL/SQL Cursors - Implicit vs. Explicit

An introduction to PL/SQL cursors, differentiating between implicit and explicit cursors, their usage, and best practices with code examples.

MVC Concept

An in-depth look at the Model-View-Controller (MVC) architectural pattern, its core components, application in web development, particularly with JSP and Servlets, and a discussion on related frameworks.

Why jQuery and ADF Faces?

This post explores how to integrate the jQuery JavaScript library with Oracle ADF Faces applications, providing steps for including jQuery globally or on specific pages, and tips for locating ADF components.

jQuery and Animation

This tutorial covers jQuery animation methods, from basic show/hide effects to complex custom animations using the animate() method, including practical examples and code snippets.

jQuery Plugin Development Guidelines

This article provides a simple guide for writing jQuery plugins, covering best practices such as naming conventions, handling the $ alias, complex parameter lists, and wrapper methods.

XSLT Tutorial - Transforming XML to HTML

An introduction to XSLT for XML document transformation, covering core concepts, functional programming influences, and a practical example of transforming weather XML into HTML.

Recursion in XSLT

A guide to using recursion in XSLT for XML document processing, covering templates, XPath, and an example of transforming F1 season data.

Implementing AJAX with jQuery's load() Method

A comprehensive guide to AJAX, comparing plain JavaScript with jQuery, and demonstrating how to use jQuery's powerful load() method for dynamic content updates. Includes cross-browser XMLHttpRequest handling, jQuery load() examples, and best practices for GET vs. POST requests.

Java Collections - Converting to Arrays

This post explains how to convert Java Collections to typed arrays using the Collection.toArray(T[] a) method, avoiding explicit casting.

Tracking SQL Queries in ADF Applications

Learn how to track and monitor SQL queries executed by View Objects in ADF applications by overriding the executeQueryForCollection method and extracting parameter values.

Niklaus Wirth on Programming Languages and Verification

Exploring Niklaus Wirth's profound insights on programming languages, the hardware-software gap, program verification, and his critiques of modern software development practices.

Design Patterns - Creational: Factory Method and Abstract Factory

An introduction to creational design patterns, focusing on the Factory Method and Abstract Factory patterns, with Java examples and a comparison of their usage.

Spring Framework Essentials - Wiring and Instantiating Java POJO Beans

An introduction to the core concepts of the Spring framework, focusing on how to wire and instantiate Java POJO (Plain Old Java Object) beans using XML configuration, demonstrated with a practical Employee-Department system example.

Dynamically Changing SQL WHERE Clause in ADF View Objects

This post describes how to dynamically modify the SQL WHERE clause in an ADF View Object by overriding the `buildWhereClause` method, which is particularly useful for optimizing queries without creating new database indexes.

Custom View Object with Oracle Ref Cursor in ADF

This post demonstrates how to create a custom read-only view object in Oracle ADF JDeveloper, leveraging an Oracle REF CURSOR as an alternative data source. It covers initial JDeveloper setup, database package creation, and customizing the View Object implementation class.

XPath - Navigating and Querying XML Documents

An introduction to XPath, explaining how to navigate and query XML documents using path expressions, predicates, and relative node selections.

Object-Oriented Design Patterns in Java - Template Method

An introduction to the Template Method design pattern in Java, illustrating its use for controlling algorithm flow with abstract superclasses and concrete subclasses, including an example for JSON and XML object creation.

Object-Oriented Design Patterns in Java - Template Method

An introduction to the Template Method design pattern in Java, illustrating its use for controlling algorithm flow with abstract superclasses and concrete subclasses, including an example for JSON and XML object creation.

Strategy Pattern in Java

A comparison of the Strategy pattern with the Template Method pattern in Java, showing differences and providing a code example.

Custom Events in jQuery - A Powerful Technique

Learn how to create and use custom events in jQuery to simulate the observer pattern and build dynamic web applications.

Using PL/SQL Collections to Optimize Data Retrieval

Learn how to use PL/SQL collections to combine master and detail tables in a single SELECT statement, reducing database round trips and improving performance.

JavaScript Closures - A Deep Dive

Understanding closures in JavaScript, a powerful concept for handling asynchronous callbacks.

JavaScript Concepts - Callbacks and Function Context

A deep dive into JavaScript callbacks and function context, exploring how `this` works and how to manage function contexts using `call()`

Storing Collections in Database Columns

Demonstrates how to store collections in database columns using Oracle's VARRAY.

JavaScript Functions - A Deep Dive

Exploring the deeper concepts of JavaScript functions, including their object nature and first-class status.

JavaScript Concepts - Objects

An introduction to objects in JavaScript, including object creation, properties, JSON notation, and the window object.

PL/SQL Collections A Comprehensive Guide

A detailed explanation of associative arrays, nested tables, and VARRAYs in PL/SQL, including examples and best practices.