Installing Oracle Instant Client on Ubuntu 24.04

New system, old problems. Getting Oracle Instant Client to work was a trouble 10 years ago and it’s not different today 🤣 There are two ways to install it on Ubuntu/Debian. First is “recommended”, but boring. Second is “crazy”, but have some benefits. As I’m doing it mostly in Docker images, that’s how I will present it. First, check for up to date versions  external link and links on Oracle’s official site....

2024-04-17 · 4 min · timor
[Hugo](https://gohugo.io)

Automatically setting 'lastmod' in Hugo pages with Git modification date

Following my recent SEO issues , I’m actively exploring ways to bolster my website’s ranking. One aspect I’m keen to address is expediting Search Engine indexing for pages that have been altered or updated. This is precisely the purpose of Sitemaps, a feature fully supported by Hugo1. However, there’s a limitation in how Hugo handles this by default. It sets the lastmod parameter to either the page’s creation time or the last build time....

2024-03-24 · 2 min · timor
[Photo by Harrison Haines](https://www.pexels.com/photo/rusty-ships-on-rippling-water-6292339/)

How old are Official Docker images? 2024 Edition

Around 3 years ago I’ve checked the age of various base images available on Docker Hub. Curiosity recently got the better of me, prompting another investigation into the current state of affairs. Since then, there have been significant changes: CentOS 8 has reached its end of life  external link , prompting a shift to CentOS 8 Stream  external link , which is also nearing its demise 🤣 OpenJDK images have been deprecated  external link and no longer receiving updates....

2024-03-24 · 2 min · timor
[Zed](https://zed.dev)

Zed Code Editor as an Atom reincarnation

I was a big fan of the Atom1 code editor, so when it was discontinued and replaced by M$’s VS Code2, I was both sad and dissapointed. While I can admit that VS Code is a solid editor, my personal preference always leaned towards Atom. However, over time, Atom started to feel sluggish. I collected numerous plugins over the years and it began to weigh heavily on performance, not just during startup but also during regular usage....

2024-03-19 · 2 min · timor
[Generated by AI](https://www.bing.com/images/create/a-nice-logo-for-a-blog-post-about-file-system-in-c/1-65ef5d10460f428181c3ff8bcc359936?id=goqww%2bR2QLJoCYN4XjxV2w%3d%3d&view=detailv2&idpp=genimg&idpclose=1&thId=OIG2.yF78KU7PXi.xzuZrKVJa&FORM=SYDBIC)

Best practices for writing Dockerfiles - Follow "Filesystem Hierarchy Standard"

When it comes to building Docker images, adhering to the “Filesystem Hierarchy Standard”12 can greatly enhance the organization and maintainability of your containers. Unfortunately, it’s not uncommon to encounter Docker images where files are haphazardly scattered across directories, leading to confusion and unnecessary complications. Let’s delve into some best practices to ensure your Dockerfiles follow the FHS guidelines, thus avoiding common pitfalls and streamlining your container development process. Below you can find the most important directories, from the perspective of Docker images....

2024-03-11 · 3 min · timor
[Ko-fi](https://more.ko-fi.com/brand-assets)

Monetize your blog with Ko-fi shortcodes for Hugo sites

Introduction Being the owner of this blog, I often find joy in revisiting past endeavors that may no longer be part of my daily work. From fine-tuning website performance to delving into the intricacies of SEO, I relish the opportunity to explore various aspects of digital craftsmanship. One aspect that particularly piques my interest is finding creative ways to monetize my blog without resorting to intrusive advertisements. As a steadfast supporter of Open Source principles, I value the ability for people to express their appreciation through voluntary contributions or tips, on their own terms....

2024-03-08 · 3 min · timor
[Photo by Pixabay](https://www.pexels.com/photo/orange-and-white-seashell-on-white-surface-33234/)

The power of extensive command history in Bash and Zsh

I rely heavily on shell usage. For over 15 years, I was a devoted user of Bash until I discovered Zsh and made the switch. One thing that remained constant throughout my transition was my configuration to maintain an extensive commands history. This setup is replicated across all my systems. When you spend a lot of time coding, you often find yourself repeating commands or running variations of them. Remembering all these commands can be challenging, but with resources like Google and ChatGPT, it’s not always necessary....

2024-03-05 · 3 min · timor
[Cloudflare Pages](https://pages.cloudflare.com) and [Hugo](https://gohugo.io)

Optimizing Hugo static site redirects with Cloudflare Pages

I used to utilize GitHub Pages to serve static content for my blog. I secured it behind Cloudflare to employ a custom domain and automate HTTPS certificate management. Additionally, I utilized a few Page Rules to implement redirects: From www.* to non-www, From HTTP to HTTPS, And for some SEO renaming. Unfortunately, in the Free plan from Cloudflare, you are limited to: 3 Page Rules (with simple glob matching), 10 Transformation Rules (no regex rules), 10 Redirect Rules (no regex)....

2024-03-04 · 3 min · timor
[Photo by Miguel Á. Padriñán](https://www.pexels.com/photo/close-up-shot-of-keys-on-a-red-surface-2882652/)

SEO kicks my stats

Towards the end of the year, I received a notification reminding me to renew the domain for my blog. The domain in question was timor.site. This was the first invoice I had received from GoDaddy since they acquired Uniregistry, and to my dismay, it was significantly more expensive than what I had been accustomed to paying. With the year drawing to a close, I was reluctant to invest too much time or money into the renewal process....

2024-03-03 · 2 min · timor
[Renovate Bot](https://github.com/renovatebot/renovate)

Automatic updates of Docker images with Renovate Bot

I’ve been writing recently about best practices for patching and deprecating Docker images , but today I want to show how to automate a huge part of this process. You might already hear about Dependabot1, it’s a Github’s way to notify developers about security vulnerabilities in their projects. Renovate2 is similar tool3, but doesn’t require Github. For my professional work I use Bitbucket, so Renovate feels more universal as can be used anywhere....

2024-03-01 · 4 min · timor