# Iqbal´s DLQ ## Topics - [Java](java.html.md): Practical Java guides on GraalVM Native Image, Spring Boot 3, AWS Lambda, LangChain4j, PGO, and Datadog—step-by-step tutorials with code, Helm, and Terraform. - [AI CLI — Building a Production Newsletter Engine with Java, Spring Boot & LangChain4j](ai-cli-building-a-production-newsletter-engine-with-langchain4j.html.md): A deep dive into AI CLI, a Java terminal application built with Spring Boot, PicoCLI, and LangChain4j that turns prompt files into fully automated newsletters. Covers architecture, multi-stage pipelines, agentic workflows, RAG, tool calling, production lessons, and zero-cost testing. - [Simple OpenAI Whisper Java Client](simple-openai-whisper-java-client.html.md): Build a press-to-stop Micronaut CLI that records audio, sends it to OpenAI Whisper, and drops the transcript on your clipboard. - [Easy RAG - Using Embeddings in LangChain4j to improve LLM responses](easy-rag-using-embeddings-in-langchain4j-to-improve-llm-responses.html.md): Learn how to enhance LLM responses for WriterSide `.topic` file generation using LangChain4j embeddings. This guide covers embedding CSV data containing article summaries to provide context, improving the index structure. - [Building a Java Lexer for the Monkey Programming Language](lexer-monkey-language.html.md): Learn how to build a Java lexer for the Monkey programming language. This guide covers tokenization, using the Java Spliterator API, and provides implementation details with code examples. - [JBang Meets Spring Boot & LangChain4j: A Powerhouse for Java Scripting and AI Pipelines](jbang-meets-spring-boot-langchain4j-a-powerhouse-for-java-scripting-and-ai-pipelines.html.md): Explore how to use Java for scripting with JBang, Spring Boot, and LangChain4j to build AI-powered pipelines for refining Markdown files. Learn about setting up JBang, integrating Spring Boot, and leveraging AI for technical documentation improvements. - [Profile Guided Optimization](profile-guided-optimization.html.md): This article explains how to use Profile Guided Optimization (PGO) with GraalVM Enterprise Edition to optimize native image builds. It covers setting up the environment, collecting runtime data, and using the profile to build an optimized native image. - [Tracing in native image - Datadog](traces-in-native-image-via-datadog.html.md): This article provides a guide on restoring observability via Datadog traces in a Spring Boot native image, detailing the setup and build process required to enable Datadog's agent instrumentation. - [Road to Native Image (Spring Boot 3+)](road-to-native-image-spring-boot-3.html.md): Migrate your Spring Boot 3+ application to GraalVM Native Image using this detailed guide. It covers setup, AOT processing, handling common runtime issues, and optimizing builds for native deployment. - [Native Image (Spring Boot 3+) - Paketo Buildpacks Route](road-to-native-image-spring-boot-3-packeto.html.md): This guide walks through migrating a Spring Boot application to GraalVM Native Image using Paketo Buildpacks, covering dependency upgrades, native support enablement, AOT processing, and debugging techniques to address runtime issues. - [Build a native AWS Lambda with Java (GraalVM + AWS Lambda + Micronaut 4 - SQS Queue Trigger)](graalvm-aws-lambda-complete-example.html.md): Build a native AWS Lambda with Java using GraalVM, Micronaut 4, and SQS Queue Trigger. This guide covers project generation, SQS adaptation, native build setup with Docker, and deployment to AWS. - [GraalVM with AWS Lambda - Starter](graalvm-lambda.html.md): Learn how to deploy a native Java Lambda function on AWS using GraalVM. This guide covers creating a custom runtime, compiling a GraalVM Native Image, and packaging the function for Lambda using Docker and Gradle. - [Ollama on Google Colab with Free GPU](ollama-on-google-colab.html.md) - [AWS](aws.html.md): AWS how-tos: Lambda packaging with SAM build images and EC2 remote execution with SSM Run Command. - [Packaging Python AWS Lambda Functions Locally with AWS SAM Build Images](aws-lambda-python-runtime-with-dependencies.html.md): This guide explains how to package Python AWS Lambda functions locally with all dependencies using AWS SAM build images, ensuring runtime compatibility for libraries that include C extensions. - [AWS SSM - Run Script On Remote EC2](aws-ssm-run-script-on-remote-ec2.html.md): This article explains how to use AWS Systems Manager (SSM) Run Command to execute a script on a remote EC2 instance, providing a shell command example. - [OCI](oci.html.md): OCI Kubernetes (OKE) how‑tos: free‑tier Ampere A1 clusters, Terraform and Helm deploys, cert‑manager/Let’s Encrypt via ClusterIssuer, Datadog, n8n, and automated CI/CD. - [GitLab Runner With Caching - OCI Object Storage](gitlab-runner-with-caching-oci-object-storage.html.md): This guide shows how to set up a GitLab Runner on an OCI OKE cluster using OCI Object Storage as an S3-compatible caching layer, covering S3 credential generation, IAM policy and bucket creation with Terraform, and deploying the runner via Helm and Terraform. - [N8N - Simple Stateful Deployment](n8n-simple-stateful-deployment.html.md): Shows how to convert an ephemeral n8n Kubernetes deployment to a stateful setup by creating a low-cost OCI Block Volume StorageClass and enabling persistence in the 8gears Helm chart. - [Automating SSL Certificates in Kubernetes with Let’s Encrypt and ClusterIssuer Helm Charts](automating-ssl-certificates-in-kubernetes-with-let-s-encrypt-and-clusterissuer-helm-charts.html.md): Automate SSL certificates in Kubernetes by installing cert-manager and a ClusterIssuer with Terraform, then deploying an HTTPS Hello World application that obtains certificates from Let’s Encrypt. - [Deploy n8n on K8s with 8gears chart](deploy-n8n-on-k8s-with-8gears-chart.html.md): This article demonstrates how to deploy a stateless n8n instance on an OCI Kubernetes cluster using the 8gears Helm chart and Terraform, covering namespace, secret, ingress, and runtime configuration. - [K8s on Oracle Cloud III - Dual Terraform configuration - Infra and App deployments](opting-for-dual-state-in-terraform-oci-oke.html.md): This article explains how to set up Kubernetes on Oracle Cloud using two separate Terraform configurations—one for the OKE cluster infrastructure and another for in-cluster application deployments such as Datadog—along with project structure, key Terraform files, and source code links. - [K8S on Oracle Cloud II - Single OpenTofu Config for Cluster and Datadog Observability](k8s-on-oracle-cloud-datadog.html.md): This guide shows how to provision an Oracle Cloud Kubernetes cluster and install Datadog observability in a single OpenTofu workflow, using OCI CLI for kubeconfig generation and dual OpenTofu applies managed by simple shell scripts. - [K8S on Oracle Cloud - I](k8s-on-oracle-cloud.html.md): This guide walks through creating an Oracle Kubernetes Engine (OKE) cluster on Oracle Cloud’s free-tier Ampere A1 Flex resources, generating an OpenTofu-compatible Terraform config via Resource Manager stacks, and deploying the infrastructure with `tofu` commands. - [Misc](tools.html.md): Dev tools and tips: Git, Maven, Spring Boot, Terraform, Redis, SQLite, OkHttp3, IntelliJ setup, WSL, Pipedream, Writerside blogging, automation scripts, and troubleshooting guides. - [Redis - Delete Multiple Keys by Pattern Using Lua Script](redis-delete-keys-by-pattern-lua-script.html.md): Learn how to delete multiple keys in Redis that match a specific pattern using a Lua script. This guide provides a step-by-step explanation of the script and its usage. - [Get your public IP](get-your-public-ip-from-opendns.html.md): Learn how to find your public IPv4 and IPv6 addresses using `dig` commands with OpenDNS and Google DNS resolvers. - [Terraform - conditional on properties](terraform-conditional-on-properties.html.md): This article explains how to implement conditional logic for properties in Terraform using dynamic blocks and how to validate variable inputs to simulate enums. - [Python scripting (cheatsheet)](snyk-repo.html.md): This article serves as a Python scripting cheatsheet, focusing on environment isolation using Conda. It guides users through creating, activating, and managing Conda environments for scripting tasks. - [Open Browser from WSL](open-browser-from-wsl.html.md): This article explains how to create a 'start' command alias in WSL (Ubuntu) using PowerShell, enabling users to open files like HTML reports directly in their Windows browser. - [AUX Folder and Git](aux-folder-and-git.html.md): This article discusses the issue of using the reserved folder name 'aux' in a Git repository on Windows and provides a solution to bypass the NTFS restriction. - [File Diff with SQLite Shell](file-diff-with-sqlite-shell.html.md): This article shows how to use the SQLite shell for file differencing. It details performing an A-B set operation to find unique lines in an input file compared to a success file, aiding in tasks like reprocessing failed queries. - [OkHttp3 Scripting](okhttp3-scripting.html.md): Learn how to use OkHttp3 for scripting in Java, including batch processing of HTTP calls and best practices for handling large-scale operations. This guide includes code snippets and tips for optimizing performance. - [Spring Boot - Cacheable Toggle](spring-boot-cacheable-toggle.html.md): Learn how to implement a property-based toggle to control caching behavior in Spring Boot applications using the `@Cacheable` annotation and a YAML configuration. - [Pipedream - Simulate Timeout](pipedream.html.md): Learn how to simulate a timeout in a Pipedream workflow using JavaScript. This guide provides a code snippet demonstrating a 30-second delay using the `setTimeout` function. - [Git](git.html.md): This article provides a quick reference for common Git commands related to managing tags, such as listing and deleting tags that have already been pushed. - [Writerside](writerside.html.md): This article describes setting up a blog using Writerside, deploying it via Netlify, and outlines steps for a future automated pipeline including secret scanning and Algolia search integration. - [Decompile jar](decompile-entire-jar.html.md): Learn how to decompile JAR files using the Vineflower decompiler with a command-line example. - [Maven Commands](maven-comands.html.md): Explore essential Maven commands for building, testing, and formatting projects. Includes detailed instructions for clean installs, test reports, dependency trees, and skipping Sonar/Snyk integrations. - [Shell on Windows](shell-on-windows.html.md): This article explains how to set up and use oh-my-zsh with Git's SDK on Windows, including a detailed .zshrc configuration and shell setup instructions. - [IntelliJ with Git for Windows SDK](intellij-default-terminal-git-for-windows-sdk.html.md): Learn how to configure IntelliJ's default terminal to use the Git for Windows SDK. This guide provides the necessary command and an explanation of its options for a seamless development environment. - [Documents](documents.html.md) - [Semantle Privacy Policy](semantle-privacy-policy.html.md) - [Breakpoints](breakpoint.html.md): A personal breakpoint page where I share moments beyond code—like my bib wall from 10Ks, half-marathons, and runs that mean something to me. - [About](about.html.md): About Iqbal Aissaoui—a senior backend engineer with an extensive background in Java, and a cross-functional mindset shaped by experience in DevOps, microservices, and occasional frontend work. - [Newsletter Assets](newsletter-assets.html.md): Internal note explaining the origin of the cow GIF hotlinked by the monthly dancing-cows newsletter.