<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Philipp Hartenfeller Blog RSS Feed</title><description>Blog and Portfolio of software developer Philipp Hartenfeller</description><link>https://hartenfeller.dev</link><item><title>Run Oracle APEX 26.1 Locally</title><link>https://hartenfeller.dev/blog/run-apex-26-1-locally</link><guid isPermaLink="true">https://hartenfeller.dev/blog/run-apex-26-1-locally</guid><description>APEX 26.1 was finally released yesterday. Learn how to quickly set it up locally and test the new features with uc-local-apex-dev.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate></item><item><title>UC AI Chat Plug-In Beta
</title><link>https://hartenfeller.dev/blog/uc-ai-chat-plugin-beta</link><guid isPermaLink="true">https://hartenfeller.dev/blog/uc-ai-chat-plugin-beta</guid><description>Build APEX AI agents with UC AI thanks to the new chat plug-in</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Best Practices for LLM Tools or Function Calling for Oracle Developers
</title><link>https://hartenfeller.dev/blog/ai-tools-best-practice-oracle</link><guid isPermaLink="true">https://hartenfeller.dev/blog/ai-tools-best-practice-oracle</guid><description>APEX 26.1 brings native LLM function calling to PL/SQL. Here&apos;s how to design tools that the model actually uses correctly: scope, validation, and security.</description><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate></item><item><title>Mixing APEX Universal Theme Colors with the mix-color function
</title><link>https://hartenfeller.dev/blog/apex-mix-universal-theme-colors</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-mix-universal-theme-colors</guid><description>Lighten or darken APEX Universal Theme colors with the mix-color function to create custom colors for your APEX applications.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate></item><item><title>UC AI v26.1: Multi-Agent Systems, Prompt Profiles &amp; Responses API for PL/SQL
</title><link>https://hartenfeller.dev/blog/uc-ai-v26-1</link><guid isPermaLink="true">https://hartenfeller.dev/blog/uc-ai-v26-1</guid><description>UC AI v26.1 brings multi-agent systems, prompt profiles for reusable LLM configurations, and support for OpenAI&apos;s new Responses API.</description><pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Teaching AI coding assistants Oracle APEX
</title><link>https://hartenfeller.dev/blog/teaching-ai-coding-assistants-apex</link><guid isPermaLink="true">https://hartenfeller.dev/blog/teaching-ai-coding-assistants-apex</guid><description>How to utilize SKILL.md files to teach AI coding assistants like Claude Code about how to use Oracle APEX-specific concepts.</description><pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Upgrading uc-local-apex-dev from 23ai to 26ai without data loss
</title><link>https://hartenfeller.dev/blog/upgrade-to-26ai-for-uc-local-apex-dev</link><guid isPermaLink="true">https://hartenfeller.dev/blog/upgrade-to-26ai-for-uc-local-apex-dev</guid><description>uc-local-apex-dev lets you run Oracle APEX and Database 26ai locally with minimal setup. Upgrade from 23ai without data loss.</description><pubDate>Thu, 08 Jan 2026 00:00:00 GMT</pubDate></item><item><title>UC AI v25.7: Embeddings, xAI, OpenRouter and Toon
</title><link>https://hartenfeller.dev/blog/plsql-ai-sdk-uc-ai-25-7</link><guid isPermaLink="true">https://hartenfeller.dev/blog/plsql-ai-sdk-uc-ai-25-7</guid><description>The current UC AI release adds support for xAI (Grok) and OpenRouter (almost all models). Additionally, embedding is supported for all providers, you can use Toon, and override URLs for all providers.</description><pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate></item><item><title>This blog is now on Astro thanks to Antigravity!
</title><link>https://hartenfeller.dev/blog/blog-is-now-astro</link><guid isPermaLink="true">https://hartenfeller.dev/blog/blog-is-now-astro</guid><description>How I migrated my blog from a custom React setup to Astro, improving performance and maintainability.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Toon for Oracle: A Token-Efficient Data Format for LLMs
</title><link>https://hartenfeller.dev/blog/oracle-toon-implementation</link><guid isPermaLink="true">https://hartenfeller.dev/blog/oracle-toon-implementation</guid><description>Toon is a data representation format that is optimized for usage for LLMs. With UC AI&apos;s PL/SQL package, you can convert any JSON data to the Toon format.</description><pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Oracle APEX Reactive Markdown Plug-in #JoelKallmanDay
</title><link>https://hartenfeller.dev/blog/apex-reactive-markdown-plugin</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-reactive-markdown-plugin</guid><description>Display rich Markdown in Oracle APEX that reacts to changes of referenced page items.</description><pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Build Real AI Solutions with Oracle PL/SQL (No 23ai Required)</title><link>https://hartenfeller.dev/blog/real-ai-solutions-oracle-plsql</link><guid isPermaLink="true">https://hartenfeller.dev/blog/real-ai-solutions-oracle-plsql</guid><description>Learn how data engineers can leverage AI for Oracle automation using PL/SQL. Discover structured output, file analysis, reasoning, and tool calling with the open-source UC AI SDK.</description><pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate></item><item><title>How to Run Open GPT Models Locally and Integrate Them with Oracle APEX</title><link>https://hartenfeller.dev/blog/open-and-local-AI-models-in-oracle</link><guid isPermaLink="true">https://hartenfeller.dev/blog/open-and-local-AI-models-in-oracle</guid><description>How to integrate OpenAI&apos;s new open GPT models locally with Ollama and UC AI into an Oracle APEX app.</description><pubDate>Tue, 12 Aug 2025 00:00:00 GMT</pubDate></item><item><title>You should try having a local database with APEX</title><link>https://hartenfeller.dev/blog/you-should-have-local-apex</link><guid isPermaLink="true">https://hartenfeller.dev/blog/you-should-have-local-apex</guid><description>A local Oracle APEX environment eliminates friction through  safe experimentation, administrative access, and instant performance.</description><pubDate>Tue, 29 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Demystifying the SQLcl MCP Server
</title><link>https://hartenfeller.dev/blog/demystifying-sqlcl-mcp-server</link><guid isPermaLink="true">https://hartenfeller.dev/blog/demystifying-sqlcl-mcp-server</guid><description>A deep dive into Oracle&apos;s SQLcl MCP Server: understanding its capabilities, testing its tools, and examining the security implications for database access through AI.</description><pubDate>Thu, 17 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Easily query testdata with Oracle APEX and the power of SQL Macros
</title><link>https://hartenfeller.dev/blog/apex-testdata-and-sql-macros</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-testdata-and-sql-macros</guid><description>How to use the Oracle APEX Data Generator/Blueprints feature purely from SQL and how to make it convenient with SQL Macros.</description><pubDate>Thu, 22 May 2025 00:00:00 GMT</pubDate></item><item><title>Why I create presentations in HTML
</title><link>https://hartenfeller.dev/blog/presentations-in-html</link><guid isPermaLink="true">https://hartenfeller.dev/blog/presentations-in-html</guid><description>Since a year, I don&apos;t use PowerPoint anymore. I instead enjoy using HTML and CSS to create my slides with reveal.js.</description><pubDate>Mon, 24 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Putting Claude Code to the Test
</title><link>https://hartenfeller.dev/blog/testing-claude-code</link><guid isPermaLink="true">https://hartenfeller.dev/blog/testing-claude-code</guid><description>Unwanted changes, bugs, but a jump-start. My first experience with Claude Code.</description><pubDate>Thu, 27 Feb 2025 00:00:00 GMT</pubDate></item><item><title>SQLcl with JavaScript on macOS using GraalVM
</title><link>https://hartenfeller.dev/blog/sqlcl-js-graalvm-macos</link><guid isPermaLink="true">https://hartenfeller.dev/blog/sqlcl-js-graalvm-macos</guid><description>Getting JavaScript working in SQLcl in 2025 is not straightforward. Here is how I did it on macOS using GraalVM.</description><pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Year in review: 2024
</title><link>https://hartenfeller.dev/blog/year-2024-in-review</link><guid isPermaLink="true">https://hartenfeller.dev/blog/year-2024-in-review</guid><description>From changing jobs to international conferences to discovering 3D printing and more. My 2024 in review.</description><pubDate>Mon, 30 Dec 2024 00:00:00 GMT</pubDate></item><item><title>How to fix containerized Oracle 23ai Database not starting on Mac
</title><link>https://hartenfeller.dev/blog/containerized-oracle-db-wont-start</link><guid isPermaLink="true">https://hartenfeller.dev/blog/containerized-oracle-db-wont-start</guid><description>When trying out the Free Oracle 23ai Database Docker Image I always encountered the same issue. The database wouldn&apos;t start. Here is how I fixed it.</description><pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Alfred workflow to supercharge Oracle APEX development #JoelKallmanDay
</title><link>https://hartenfeller.dev/blog/apex-alfred-dev-workflow</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-alfred-dev-workflow</guid><description>Quickly access the APEX documentation, icons, CSS, and more from your spotlight search.</description><pubDate>Wed, 16 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Oracle APEX 24.1 Template Component Improvements
</title><link>https://hartenfeller.dev/blog/apex-24-1-template-component-improvements</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-24-1-template-component-improvements</guid><description>Find out what&apos;s behind the region-only type, Slots and selection support. Read about my first impression of APEX 24.1 in the end.</description><pubDate>Tue, 18 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Minimize all windows on Mac OS
</title><link>https://hartenfeller.dev/blog/mac-minimize-all-windows</link><guid isPermaLink="true">https://hartenfeller.dev/blog/mac-minimize-all-windows</guid><description>AppleScript to quickly minimize every window on my macOS. This is not hiding the windows, but minimizing them on the dock.</description><pubDate>Mon, 17 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Upgrading from Oracle 23c FREE to 23ai
</title><link>https://hartenfeller.dev/blog/upgrade-oracle-23c-to-23ai-docker</link><guid isPermaLink="true">https://hartenfeller.dev/blog/upgrade-oracle-23c-to-23ai-docker</guid><description>My upgrade journey from dockerized Oracle 23c FREE to 23ai</description><pubDate>Mon, 06 May 2024 00:00:00 GMT</pubDate></item><item><title>How to add global application search to your APEX app
</title><link>https://hartenfeller.dev/blog/apex-global-application-search</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-global-application-search</guid><description>Learn how to add a global search to your Oracle APEX app that searches through all your data and navigation entries.</description><pubDate>Mon, 15 Apr 2024 00:00:00 GMT</pubDate></item><item><title>How to contribute to an open-source Oracle APEX Plug-in
</title><link>https://hartenfeller.dev/blog/oracle-apex-contribute-open-source-plug-in</link><guid isPermaLink="true">https://hartenfeller.dev/blog/oracle-apex-contribute-open-source-plug-in</guid><description>Give back to the community by contributing to open-source Oracle APEX Plug-ins with Git and GitHub.</description><pubDate>Tue, 16 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2023 in Oracle - Day 7: Camel Cards
</title><link>https://hartenfeller.dev/blog/advent-of-code-oracle-2023-day7</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-oracle-2023-day7</guid><description>Advent of Code 2023 in Oracle SQL and PL/SQL. Day 7: Camel Cards.</description><pubDate>Thu, 07 Dec 2023 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2023 in Oracle - Day 1 and 2
</title><link>https://hartenfeller.dev/blog/advent-of-code-oracle-2023-day1-2</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-oracle-2023-day1-2</guid><description>Advent of Code 2023 in Oracle SQL and PL/SQL. Day 1 and 2.</description><pubDate>Sat, 02 Dec 2023 00:00:00 GMT</pubDate></item><item><title>Oracle APEX 23.2 Workflows: A First Look
</title><link>https://hartenfeller.dev/blog/apex-23-2-workflows-first-look</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-23-2-workflows-first-look</guid><description>A preview version of Oracle APEX 23.2 just got released on apex.oracle.com. Let&apos;s take a look at the new workflow feature.</description><pubDate>Wed, 18 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Oracle APEX Template Components with Web Components #JoelKallmanDay
</title><link>https://hartenfeller.dev/blog/apex-template-component-web-comp</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-template-component-web-comp</guid><description>Web Components make it easy to create custom JavaScript-heavy components and integrate well into Oracle APEX.</description><pubDate>Wed, 11 Oct 2023 00:00:00 GMT</pubDate></item><item><title>View Transitions in Oracle APEX
</title><link>https://hartenfeller.dev/blog/apex-view-transitions</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-view-transitions</guid><description>View Transitions allow you to animate page transitions. This makes the UI more polished and engaging.</description><pubDate>Sat, 02 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Mastering Web Components: A Comprehensive Step-by-Step Guide</title><link>https://hartenfeller.dev/blog/web-components-step-by-step</link><guid isPermaLink="true">https://hartenfeller.dev/blog/web-components-step-by-step</guid><description>Learn step-by-step how Web Components work and how to use them. Including HTML templates, custom elements, shadow DOM, attributes, properties, and slots.</description><pubDate>Thu, 10 Aug 2023 00:00:00 GMT</pubDate></item><item><title>APEX Template Component Competition is live now
</title><link>https://hartenfeller.dev/blog/apex-template-component-competition-live</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-template-component-competition-live</guid><description>Share your Template Components with the community and win great prizes.</description><pubDate>Tue, 01 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Reusable, and Translatable: Oracle APEX Text Messages
</title><link>https://hartenfeller.dev/blog/oracle-apex-text-messages</link><guid isPermaLink="true">https://hartenfeller.dev/blog/oracle-apex-text-messages</guid><description>APEX Text Messages is a powerful feature to organize reusable and translatable text fragments. You can use them in PL/SQL, JavaScript, and Substitution Strings.</description><pubDate>Thu, 06 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Oracle APEX AG-Grid Plug-In 0.3 (beta)
</title><link>https://hartenfeller.dev/blog/apex-ag-grid-plugin-v0.3</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-ag-grid-plugin-v0.3</guid><description>I released the third beta release of the AG-Grid plug-in for Oracle APEX. Find out what&apos;s new and how to get it.</description><pubDate>Tue, 25 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Creating an Offline-Ready SvelteKit Application Using SQLite (Part 2): Messaging and Client Tables
</title><link>https://hartenfeller.dev/blog/sveltekit-offline-sqlite-2</link><guid isPermaLink="true">https://hartenfeller.dev/blog/sveltekit-offline-sqlite-2</guid><description>In this series, we develop an offline-capable SvelteKit application utilizing SQLite as a client-side storage solution. In this part, we optimize the communication between the main thread and the Web Worker and create the client data tables.</description><pubDate>Thu, 20 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Introduction to Template Components in Oracle APEX 23.1
</title><link>https://hartenfeller.dev/blog/oracle-apex-template-components-introduction</link><guid isPermaLink="true">https://hartenfeller.dev/blog/oracle-apex-template-components-introduction</guid><description>The most exciting feature in APEX 23.1 for me is Template Components. Find out what they are and how to use them.</description><pubDate>Tue, 18 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Creating an Offline-Ready SvelteKit Application Using SQLite (Part 1): Setting up the Database
</title><link>https://hartenfeller.dev/blog/sveltekit-offline-sqlite-1</link><guid isPermaLink="true">https://hartenfeller.dev/blog/sveltekit-offline-sqlite-1</guid><description>In this series, we develop an offline-capable SvelteKit application utilizing SQLite as a client-side storage solution. In this part, we explore how to set up the database effectively.</description><pubDate>Sun, 09 Apr 2023 00:00:00 GMT</pubDate></item><item><title>SvelteKit with SQLite: Uploading, Storing and Retrieving Images
</title><link>https://hartenfeller.dev/blog/sveltekit-image-upload-store</link><guid isPermaLink="true">https://hartenfeller.dev/blog/sveltekit-image-upload-store</guid><description>In this post, we will learn how to upload, store and retrieve images in a SvelteKit application with SQLite.</description><pubDate>Fri, 03 Mar 2023 00:00:00 GMT</pubDate></item><item><title>DIY Authentication and Authorization in SvelteKit 1 with SQLite
</title><link>https://hartenfeller.dev/blog/sveltekit-diy-authentication-authorization</link><guid isPermaLink="true">https://hartenfeller.dev/blog/sveltekit-diy-authentication-authorization</guid><description>In this post, we look into how we can build our own Authentication and Authorization solution for SvelteKit. We will store and hash user credentials, create sessions with Cookies, and make the session info available to the app through hooks and locals.</description><pubDate>Wed, 08 Feb 2023 00:00:00 GMT</pubDate></item><item><title>SvelteKit 1 with SQLite: Displaying, Changing and Searching Data
</title><link>https://hartenfeller.dev/blog/sveltekit-with-sqlite</link><guid isPermaLink="true">https://hartenfeller.dev/blog/sveltekit-with-sqlite</guid><description>SvelteKit and SQLite are a great combo as they are both lightweight and easy to use, making it simple to build high-performance, data-driven web applications.</description><pubDate>Mon, 30 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2022 in Oracle - Day 10
</title><link>https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-10</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-10</guid><description>My solution for the tenth day of the Advent of Code 2022 challenge &quot;Cathode-Ray Tube&quot; with Oracle. We simulate a CPU and a Pixel-Screen in pure SQL!</description><pubDate>Sat, 10 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2022 in Oracle - Day 7
</title><link>https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-7</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-7</guid><description>My solution for the seventh day of the Advent of Code 2022 challenge &quot;No Space Left On Device&quot; with Oracle. Today with a tree (not for christmas)...</description><pubDate>Wed, 07 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2022 in Oracle - Day 5
</title><link>https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-5</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-5</guid><description>My solution for the fifth day of the Advent of Code 2022 challenge &quot;Supply Stacks&quot; with Oracle. Its starting to get complex...</description><pubDate>Mon, 05 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2022 in Oracle - Day 3
</title><link>https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-3</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-3</guid><description>My solution for the third day of the Advent of Code 2022 challenge &quot;Rucksack Reorganization&quot; with Oracle. Its starting to get complex...</description><pubDate>Sat, 03 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2022 in Oracle - Day 2
</title><link>https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-2</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-2</guid><description>My solution for the second day of the Advent of Code 2022 challenge &quot;Rock Paper Scissors&quot; with Oracle. This time in pure SQL.</description><pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Advent of Code 2022 in Oracle - Day 1
</title><link>https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-1</link><guid isPermaLink="true">https://hartenfeller.dev/blog/advent-of-code-in-oracle-day-1</guid><description>My solution for the first day of Advent of Code 2022 challenge &quot;Calorie Counting&quot; with Oracle.</description><pubDate>Thu, 01 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Oracle APEX anchored inline popups for data input
</title><link>https://hartenfeller.dev/blog/apex-anchored-inline-popups</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-anchored-inline-popups</guid><description>How to create anchored popups in Oracle APEX that are positioned close to the button that triggers it. They offer a nice UX for quick data input.</description><pubDate>Fri, 18 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Oracle APEX AG-Grid Plug-In 0.2 (beta)
</title><link>https://hartenfeller.dev/blog/apex-ag-grid-plugin-v0.2</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-ag-grid-plugin-v0.2</guid><description>Second beta release of the AG-Grid plug-in for Oracle APEX. Find out what&apos;s new and how to get it.</description><pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Ode to APEX_T_VARCHAR2 #JoelKallmanDay
</title><link>https://hartenfeller.dev/blog/ode-to-apex-t-varchar2</link><guid isPermaLink="true">https://hartenfeller.dev/blog/ode-to-apex-t-varchar2</guid><description>APEX_T_VARCHAR2 is a database type that comes with an Oracle APEX installation. I use it quite frequently and think that with it you can write better code.</description><pubDate>Tue, 11 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Alfred workflow to quickly navigate Visual Studio Code workspaces
</title><link>https://hartenfeller.dev/blog/alfred-vscode-workflow</link><guid isPermaLink="true">https://hartenfeller.dev/blog/alfred-vscode-workflow</guid><description>I created a workflow to open VSCode workspaces for the macOS search tool Alfred quickly. It supports local and remote repositories.</description><pubDate>Sat, 25 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Dynamic click handling with APEX actions in 22.1
</title><link>https://hartenfeller.dev/blog/apex-actions-links-22-1</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-actions-links-22-1</guid><description>APEX 22.1 changed a lot to the actions interface and added a new method with which we can call them easily from links.</description><pubDate>Wed, 01 Jun 2022 00:00:00 GMT</pubDate></item><item><title>How to use Map in Oracle PL/SQL
</title><link>https://hartenfeller.dev/blog/maps-oracle-plsql</link><guid isPermaLink="true">https://hartenfeller.dev/blog/maps-oracle-plsql</guid><description>Maps (not cartography but the data store) are a powerful tool for storing and accessing data in memory. In Oracle PL/SQL they are available too under the name Associative Arrays.</description><pubDate>Mon, 25 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Upgrade tolerant way of setting the path to Oracle SQLcl with Homebrew
</title><link>https://hartenfeller.dev/blog/sqlcl-homebrew-macos</link><guid isPermaLink="true">https://hartenfeller.dev/blog/sqlcl-homebrew-macos</guid><description>With two lines in your zsh config file, Oracle SQLcl will still work after an upgrade with Homebrew.</description><pubDate>Mon, 20 Dec 2021 00:00:00 GMT</pubDate></item><item><title>GitHub Actions Plugin for Cronicle
</title><link>https://hartenfeller.dev/blog/github-actions-cronicle</link><guid isPermaLink="true">https://hartenfeller.dev/blog/github-actions-cronicle</guid><description>I created a GitHub Actions Plugin for calling jobs on your Cronicle server.</description><pubDate>Thu, 30 Sep 2021 00:00:00 GMT</pubDate></item><item><title>How to make a website reachable over IPv6 on Linux
</title><link>https://hartenfeller.dev/blog/make-website-ipv6-ready</link><guid isPermaLink="true">https://hartenfeller.dev/blog/make-website-ipv6-ready</guid><description>I made made my website IPv6 ready on Linux in a few simple steps.</description><pubDate>Mon, 23 Aug 2021 00:00:00 GMT</pubDate></item><item><title>Selfhost Plausible with a preexisting PostgreSQL Database
</title><link>https://hartenfeller.dev/blog/selfhosted-plausible-existing-postgres</link><guid isPermaLink="true">https://hartenfeller.dev/blog/selfhosted-plausible-existing-postgres</guid><description>Out of the box self-hosting plausible expects you to create a new separate Postgres database. Here is my journey to make it work with a preexisting one.</description><pubDate>Thu, 29 Jul 2021 00:00:00 GMT</pubDate></item><item><title>The cost of HTTPS connections - improve site speed by self hosting fonts
</title><link>https://hartenfeller.dev/blog/selfhosting-fonts-performance</link><guid isPermaLink="true">https://hartenfeller.dev/blog/selfhosting-fonts-performance</guid><description>The loading speed of my site improved dramatically in unideal conditions by not loading fonts from Google Fonts but self hosting them instead.</description><pubDate>Tue, 01 Jun 2021 00:00:00 GMT</pubDate></item><item><title>The APEX Slideover Plug-In
</title><link>https://hartenfeller.dev/blog/apex-slideover-plugin</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-slideover-plugin</guid><description>I made an Oracle APEX Plug-In that allows creating Slideover regions which slide in content from the side when opened.</description><pubDate>Thu, 13 May 2021 00:00:00 GMT</pubDate></item><item><title>APEX Security: only hiding buttons is not secure
</title><link>https://hartenfeller.dev/blog/apex-security-hiding-buttons</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-security-hiding-buttons</guid><description>Don&apos;t just hide Buttons when only some privileged users should be able to execute processes in Oracle APEX. With some JS you can still trigger them. Additionally use the read-only functionality where possible.</description><pubDate>Mon, 22 Mar 2021 00:00:00 GMT</pubDate></item><item><title>How to change the default tap highlight color for Chrome mobile</title><link>https://hartenfeller.dev/blog/chrome-mobile-highlight-color</link><guid isPermaLink="true">https://hartenfeller.dev/blog/chrome-mobile-highlight-color</guid><description>Chrome on mobile has a default accessibility feature that automatically shows a blue overlay when a touchscreen user taps on a clickable element. This post shows how to change the color or disable it completely.</description><pubDate>Wed, 17 Feb 2021 00:00:00 GMT</pubDate></item><item><title>APEX 20.2: improve Dropzone UX with CSS
</title><link>https://hartenfeller.dev/blog/apex-dropzone-ux</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-dropzone-ux</guid><description>Great News: APEX 20.2 is finally out and adds a Dropzone component. For me, it does not look as intuitive as the Plug-In did, so I tried to improve the UX of it with a few lines of CSS.</description><pubDate>Thu, 29 Oct 2020 00:00:00 GMT</pubDate></item><item><title>APEX Security: Why Sequential Primary Keys Can Be A Risk
</title><link>https://hartenfeller.dev/blog/apex-security-sequences-risk</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-security-sequences-risk</guid><description>If you use sequences to generate primary key values make sure you use the checksum feature of APEX. Otherwise, users can easily discover data they should not be able to see by raising or lowering the numeric ID in the URL.</description><pubDate>Thu, 30 Jul 2020 00:00:00 GMT</pubDate></item><item><title>10 semantic HTML tags to better structure your website</title><link>https://hartenfeller.dev/blog/underused-semantic-html-tags</link><guid isPermaLink="true">https://hartenfeller.dev/blog/underused-semantic-html-tags</guid><description>HTML 5 added a set of new HTML tags known as &quot;semantic&quot; tags to better structure websites. You should use them to avoid sinking in chaos with many levels of nested divs. They also have the benefit to make your website more accessible.</description><pubDate>Mon, 15 Jun 2020 00:00:00 GMT</pubDate></item><item><title>APEX: Highlight important values in tables with chips
</title><link>https://hartenfeller.dev/blog/apex-highlight-values-chips</link><guid isPermaLink="true">https://hartenfeller.dev/blog/apex-highlight-values-chips</guid><description>Tables make it hard to give hierarchy to data. To underline the importance of certain values in a table you can use chips that highlight the values with colors.</description><pubDate>Mon, 08 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Oracle: Generate DML scripts for images / blobs
</title><link>https://hartenfeller.dev/blog/oracle-dml-script-images-blob-values</link><guid isPermaLink="true">https://hartenfeller.dev/blog/oracle-dml-script-images-blob-values</guid><description>I want to share a little script I wrote which generates a DML scripts for blob values like images. The output script can be used in your schema install script with your other master data.</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item></channel></rss>