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. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. This week we released updates to HabitCat, our simple mobile app to develop and track new routines and habits.

    ...

    Read more
  13. 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
  14. Note This article is a part of a series of tutorials "Creating an Electron application with Svelte 3 and TypeScript". ...

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

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

    Read more
  17. 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
  18. An short explanation and a debugging session.

    ...

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

    A weird Apple ID picture, and thoughts on consistency.

    ...

    Read more
  20. 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
  21. 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
  22. HabitCat - The simple habit tracker
    Jul 16, 2020
    1 minute read
    #

    Update 20/07/2020

    ...

    Read more
  23. 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
  24. 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