Articles are single-page pieces. They have a clear scope and subject of discussion and try to go to the point.

They are different from series which are multi-part pieces exploring a topic in-depth. More akin to an adventure, they do not hesitatet to take many detours.

  1. Designing my own software license: EPSL v1.0
    May 15, 2023
    5 minutes read
    #

    The world of software development often revolves around open source and free software licenses, known for their transparency and relative simplicity. However, what happens when we pivot towards proprietary software licenses? The terrain becomes a bit more challenging, with a multitude of complexities that need thoughtful consideration.

    Read more
  2. If you're using .Net and Visual Studio you likely know how important it is to keep your code organized and structured using namespaces. But when you're working on a large project with multiple components, keeping track of all those namespaces can be a challenge. That's where a solution-wide namespace prefix comes in.

    Read more
  3. Welcome to another programming adventure! Today, we're going to explore the fascinating world of Windows keyboard layouts. Surprisingly, a Windows keyboard layout is essentially a compiled C++ program. So, let's embark on this journey and learn something new together.

    Read more
  4. As a software engineer, I enjoy tweaking my workflow and discovering tools that make programming more engaging and enjoyable. Recently, I stumbled upon the potential of Chat AI in my development process, particularly when working with structured languages and frameworks. In this post, I want to share my personal experiences and insights on how AI-driven development tools, like ChatGPT, have influenced my approach to projects.

    Read more
  5. One common challenge faced by WPF developers is maintaining consistent spacing between controls in their applications. Luckily, there's an elegant solution that's not widely documented: using a Style inside a Resources section of a container control.

    In this blog post, we'll show you how to apply consistent spacing between WPF controls using this technique. This is particularly useful when you want to avoid setting the margin for each control individually.

    Read more
  6. Software engineering, a discussion with GPT-4
    Mar 20, 2023
    2 minutes read
    #

    As a software engineer, I've been contemplating the impact of artificial intelligence (AI) on my profession. While AI has the potential to revolutionize our field, it also raises concerns about job security and the evolving nature of software development. To better understand these issues, I decided to have a conversation with OpenAI's GPT-4 language model. In this blog post, I'll share key insights and ideas from our discussion as we explored the future of software engineering together.

    Read more
  7. A new website for 2022
    Feb 17, 2022
    31 minutes read
    #

    Hello reader, happy new year 2022 (yes I'm more one month and a half late)! It has been a while since I last published something.

    Read more
  8. Rotate a XAML element using UWP Toolkit 7
    Apr 12, 2021
    3 minutes read
    #

    Alternative title: "Fix 'Microsoft Learn' examples for 2021".

    I am following Microsoft simple introduction to building Windows 10 native applications (see their Windows Learn course). Unfortunately everything is always changing fast (and breaking everything) in the software world and their first XAML example does not build anymore.

    After spending a few hours to fix my build I understand enough of the problem to write this short article.

    Read more
  9. Use .env files with your Svelte project
    Nov 11, 2020
    les than 1 minute read
    #

    I recently learned a nice way to manage your .env files in your Svelte projects. If you're using Rollup as your bundling tool, which is likely to be the case, you can use the node module dotenv to automatically inject the content of a .env file into your web page.

    Read more
  10. The "TRUMP SCREAMING" game
    Nov 09, 2020
    1 minute read
    #

    Last Friday evening I was following and discussing the 2020 US elections, while I got a really dumb idea: is there a logic behind Trump's use of ALL CAPS when tweeting? And if yes, can people guess correctly what is actually in ALL CAPS when given a lowercase version?

    ...

    Read more
  11. A simple Rollup plugin to copy files to the build directory
    Nov 08, 2020
    les than 1 minute read
    #

    A friend asked me today what is a simple way to copy files from a directory (in their case, extract some images from a node module) to the build directory, using Rollup.

    Read more
  12. Local Svelte development with SSL/TLS support
    Nov 03, 2020
    8 minutes read
    #

    When working on web projects it is often useful and recommended to enable SSL for your development environment. For example if your project works with cookies, it is likely that the server sets the Secure attribute, ensuring that they only sent to the server over HTTPS. But even without cookies it's a good idea to try to minimize differences between your development and production environments. Fortunately, using Docker that can be done done easily in just a few steps.

    ...

    Read more
  13. When I start to use a programming language I always have the following questions:

    • How do I build/run my program?
    • How do I run tests?
    • How do I install dependencies?
    • How do I integrate all of this in my text editor?

    Some languages such as Go come with simple answers to these questions: go build ./..., go test ./..., go get <my module>, install the official Go extension for your editor. Done. But of course in the case of C++, things are ... different 🙃.

    Read more
  14. Hide scores on HackerNews
    Sep 26, 2020
    1 minute read
    #

    A few days ago I re-published on the Chrome Web Store a small browser extension "HackerNews No Pressure". You can find the store listing here.

    ...

    Read more
  15. A few days ago we released a new version of HabitCat (v1.9.1) taking in account feedbacks we received from our users:

    • 🌗 Switch between light and dark mode (also known as "night mode")! HabitCat now supports dynamic color schemes, depending on the mode set on your phone the app will automatically select the appropriate scheme.

    • 📆 We received multiple times the feedback that users want to set past data, for example from other applications, and have more control over the starting date of a habit. We agree that's a very good feature, so that's now possible! When creating a habit the start date will default to today, but you can change it to a date in the past then manually fill the data you already have.

    Read more
  16. When reading Svelte 3 documentation of the {#each} keyword, it isn't clear how to correctly handle the case where the variable we want to iterate on is null or undefined.

    A common use case is listing the result of an object of type Promise<MyItem[]>. We could imagine for example that this promise represents the result of an HTTP request. We would first initialized the promise to null as a way to communicate that we didn't fetch any result yet.

    Read more
  17. HabitCat is now on ProductHunt
    Aug 21, 2020
    1 minute read
    #

    About a month ago we released HabitCat, a simple mobile application to track and develop new habits. We are now learning how to market it, something neither me nor my partner have any experience doing! So far we got a few downloads without doing any form of advertising (other than creating a Twitter account), though that's of course really limited and is mostly from our friends, family, and acquaintance.

    ...

    Read more
  18. My custom powershell profile
    Aug 15, 2020
    6 minutes read
    #

    Since I switched to Windows last year I'm using Microsoft's Powershell as my main shell environment (on my personal laptop). At first I didn't really look into Powershell's feature until around half a year ago when I found the motivation to work on a nicer prompt and spent some time migrating my ZSH profile to Powershell. I ended up creating a different profile that suits my needs, and that I had lot of fun building.

    ...

    Read more
  19. This week we released updates to HabitCat, our simple mobile app to develop and track new routines and habits.

    ...

    Read more
  20. How to inspect a running scene in Godot
    Aug 08, 2020
    1 minute read
    #

    I'm currently learning to use the game engine and editor Godot, and I just realized today that you can see and inspect the complete scene tree of a running Godot project.

    ...

    Read more
  21. Note This article is a part of a series of tutorials "Creating an Electron application with Svelte 3 and TypeScript". ...

    Read more
  22. Note This article is a part of a series of tutorials "Creating an Electron application with Svelte 3 and TypeScript". ...

    Read more
  23. Note This article is a part of a series of tutorials "Creating an Electron application with Svelte 3 and TypeScript". ...

    Read more
  24. Disk Info available on the Mac App Store
    Jul 26, 2020
    3 minutes read
    #

    TL;DR

    I have again an active Apple Developer Membership, thus Disk Info is back on the Mac App Store.

    Sources: https://github.com/dgellow/DiskInfo

    Read more
  25. An short explanation and a debugging session.

    ...

    Read more
  26. The consistency curse
    Jul 21, 2020
    5 minutes read
    #

    A weird Apple ID picture, and thoughts on consistency.

    ...

    Read more
  27. HabitCat released on iOS
    Jul 20, 2020
    1 minute read
    #

    Small update to follow-up the official HabitCat public release. The app is now also available on iOS, worldwide and for free 😁.

    ...

    Read more
  28. Arctic Code Vault Contributor
    Jul 17, 2020
    les than 1 minute read
    #

    I had a very cool surprise today while checking my GitHub profile. Some projects I contributed to have been selected to included to be part of the Arctic Code Vault project, and I am officially an Arctic Code Vault Contributor!

    ...

    Read more
  29. HabitCat - The simple habit tracker
    Jul 16, 2020
    1 minute read
    #

    Update 20/07/2020

    ...

    Read more
  30. Learning Blender by creating donuts
    Jun 18, 2020
    1 minute read
    #

    A few days ago Youtube's algorithm had a small surprise for me. I had decided to do a simple logo in 3D using Blender for a side project, and somehow the suggestion algorithm picked that fact and decided to list videos of people documenting their progress creatin 3D content. Such as this really cool progress report from Hendy August:

    ...

    Read more
  31. Initial post
    Mar 03, 2019
    les than 1 minute read
    #

    I decided to organize my thoughts, ideas, and projects a bit, they are currently spread around GitHub, BitBucket, GitLab, and multiple computers and (physical) notebooks. As part of this move I'm creating this website and blog that will be available at a domain I control: sam.elborai.me.

    Read more