entbit. by Niklas Metje Software engineering enthusiast from Cologne, Germany. Writing about DevOps, Cloud, Deno, Software Engineering, books and everything else that interests me. https://niklasmtj.de/ AI as a Sparring Partner: Manage Blog Post Marketing 2025-02-21T00:00:00Z https://niklasmtj.de/blog/ai-as-blog-post-marketing-partner/ <p>Over the last few days I have been building a tool that suggests possible titles, meta descriptions, a LinkedIn post and a newsletter issue based on my blog post files in Markdown. Personally, I want to focus on writing good blog posts that reflect my thoughts or work. As the content is more important to me than the 'marketing' around it, be it the LinkedIn post or the 'perfect' description of the article, I have considered using the tool to have this suggested by an AI model. My blog post is always used as the foundation, which is always attached to the prompt.</p> <p>As a result, I get suggestions from the AI which, in the best case (which is rare), I like straight away. In most cases, these are initial drafts, which I then modify as necessary to make them more suitable for my particular formulation. (Even if I prompt the AI to write them in the style of the blog post) - I like these suggestions as food for thought to add points to my post if applicable.</p> <p>I see the AI in this case as a sparring partner to get the best solution for the task at hand. As a result, I don't spend as much time on the title, LinkedIn post, etc. as I do on the blog post itself. I tend to focus more on the quality of the blog post as the tool's suggestions are based on that.</p> <p>It's similar with newsletters. I try to write it without improvement tools (DeepL Write or similar), but rather in the style I think it should be. The AI suggestions help me to find a rough structure for the newsletter on the topic.</p> <p>I think this little app shows how we can use AI to 'simplify' our lives and I can focus on topics that are more interesting to me than writing the 'perfect LinkedIn post'. The quality of the content on my own website is more important to me personally than that on external platforms. In this case, AI helps me rather than replacing me completely.</p> <p>I am currently using the Gemini 2.0 experimental model as a model for the tool - as it is free to use. However, I would like to test and compare Claude's results soon.</p> <p>Update: I forgot to add an screenshot of the tool in action. Here it is:</p> <p><img src="https://niklasmtj.de/screenshot.png" alt="Screenshot of the tool in action"></p> <p>Thanks for reading!</p> <p>Niklas</p> Effortless Internationalization in JavaScript with the Intl API 2025-02-07T00:00:00Z https://niklasmtj.de/blog/i18n-with-javascripts-intl-api/ <p>When creating apps and websites, we often need to display data in different languages. Be it currencies, speeds, times or dates. Sorting words in different languages or dynamically setting the singular and plural forms of a word are also such use cases. For this there is the <code>Intl</code> API in JavaScript, which in my opinion still gets far too little attention.</p> <p>In the past, I have written custom functions or used libraries to do the above in different languages.</p> <p>So let's take a look at some of the functions of the <code>Intl</code> API and try to understand why it can make our lives easier.</p> The End of Date Libraries? Exploring JavaScript's Built-in Temporal API 2025-01-05T00:00:00Z https://niklasmtj.de/blog/end-of-date-libraries-temporal-api/ <p>Working with date objects in Javascript can be quite a pain. That is why I usually use a library like <code>date-fns</code> for comparing, adding hours to my dates or working with dates and times in general.</p> <p>The <a href="https://tc39.es/">TC39</a>, which is the group of people who develop the definition of JavaScript, is working on the Temporal API. You can check out the proposal and documentation <a href="https://tc39.es/proposal-temporal/docs/">here</a>.</p> <p>With this, we no longer need date libraries, because the API itself is a breeze to work with.</p> Setting up PGlite in Deno 2024-09-06T00:00:00Z https://niklasmtj.de/blog/setting-up-pglite-in-deno/ <p>I recently tried <a href="https://pglite.dev/">PGlite</a> because I saw it trending on Hacker News. The idea is cool, having a built-in <a href="https://www.postgresql.org/">Postgres</a> database that can even run in the client's browser brings a lot of possibilities. Seeing WASM (Web Assembly) get more use cases is also exciting to see.</p> Using Environment Variables in Datadog Agent Configuration 2024-09-05T00:00:00Z https://niklasmtj.de/blog/use-environment-variables-in-datadog-agent-config/ <p>Hey there, 👋</p> <p>I needed to set up a Datadog agent to check remote Postgres instances as a regular container. All the documentation I found was about injecting secrets like passwords or hostnames via Kubernetes secrets. This seemed to be the only way to do it besides using Docker Swarm secrets. Since I had to set up a container definition for AWS ECS Fargate, neither of these options were available. So I wanted to see if I could use &quot;regular&quot; environment variables from which the agent could pull the secrets on startup.</p> Enhancing Web Accessibility: Or why I changed my website's font 2024-08-31T00:00:00Z https://niklasmtj.de/blog/enhancing-web-accessibility-with-atkinson-hyperlegible-font/ <p>As someone with visual impairment in one eye, I understand firsthand the challenges of navigating websites with less-than-perfect vision. That's why I recently made a significant change to my website: I switched to the Atkinson Hyperlegible Font.</p> Use the `gofumpt` formatter in Zed as Golang default formatter 2024-08-21T00:00:00Z https://niklasmtj.de/blog/use-gofumpt-formatter-in-zed-as-golang-default/ <p>I've been working more with Golang for a while now, so I set up my Zed editor to use <code>gofumpt</code> instead of <code>gofmt</code> as my default formatter.</p> Automa(tic|g)ally registering ECS task in your AWS Application Load Balancer 2024-07-26T00:00:00Z https://niklasmtj.de/blog/automate-ecs-task-registration-in-alb/ <p>Hey there, 👋! I needed to set up automatic registration of ECS tasks of a service in our load balancer. The previous setups were done by colleagues, but now I had the chance to do it myself. Since we're setting up everything via <a href="https://www.terraform.io/">Terraform</a> as Infrastructure as Code, the example below will be written in <code>hcl</code>, the format that Terraform uses to set up resources.</p> Discover Hidden Space: Understanding Docker Storage Usage with `docker system df` 2024-07-25T00:00:00Z https://niklasmtj.de/blog/understand-docker-storage/ <p>Hey there, 🐳</p> <p>Remember when you first started using Docker and thought you had it all figured out? Well, I've been in the Docker game for quite a while now, and I'm still stumbling upon new tricks. Today, I want to share a nifty little command that blew my mind - <code>docker system df</code>.</p> <p>Ever wondered how much space Docker is taking up on your machine? This command might be your new best friend. Let me show you what I mean:</p> Giving Users Some Privacy Back with E-Mail Aliases: A Personal Take 2024-07-08T00:00:00Z https://niklasmtj.de/blog/give-users-privacy-back-email-aliases/ <p>I've been thinking a lot about email privacy lately. It seems like every website wants our email addresses these days, especially for newsletters. Don't get me wrong, I love a good newsletter, but with all the data breaches and spam out there, I can't help but feel a bit uneasy every time I type in my email address.</p> <p>That's when I stumbled upon the idea of email aliases. It's not a new concept, but it's one that I think deserves more attention.</p>