• Changes, or what did we do last month?

    This second installment explores how to effectively represent changes in projects, highlighting what has changed in a given period of time. To do so, we will use differential approaches to two fundamental project management tools: Work Breakdown Structures and GANTT charts. You can create these charts in the Sundial project…

  • Visualizing project health at a glance with Sunburst diagrams

    Every Project Manager knows the frustration of trying to answer a simple question: “How is the project really doing?” The answer usually involves opening multiple tools, cross-referencing spreadsheets, and mentally stitching together information scattered across GANTT charts, status reports, and backlog trackers. By the time you’ve assembled the picture, the…

  • Vintage CPU collection

    Collecting vintage CPUs, such as the venerable 486, Pentium, and Athlon processors, is a fascinating journey through the history of computing. These iconic chips represent significant milestones in the evolution of personal computing power. The 386, released in the mid-1980s, marked a significant shift towards 32-bit computing and paved the…

  • Updating PiHole on Raspberry PI

    Pi-hole is a popular open-source network-level ad blocker that can be installed on a Raspberry Pi. It blocks advertisements on all devices connected to the network, making browsing faster and more pleasant. As with any software, it is important to keep Pi-hole up to date to ensure it continues to…

  • Clearing the NuGet cache

    NuGet is the package manager used by .NET to download, restore, and manage package dependencies. Most of the time it works quietly in the background: you add a package, restore the project, and NuGet downloads what is needed. However, NuGet also stores packages and metadata locally. This is good for…

  • High-quality Bluetooth audio connection in Android

    Bluetooth is a popular wireless communication technology that allows users to connect their devices and stream audio wirelessly. While Bluetooth has come a long way in recent years, some users may still experience issues with the quality of the audio playback, especially when streaming high-quality audio. In this blog post,…

  • Parametric equalization of Sennheiser HD650

    Introduction The Sennheiser HD650 headphones are a popular choice among audiophiles for their neutral sound signature and high-quality build. However, like any other headphones, the sound signature can be improved by using an equalizer. In this blog post, we will discuss how to use parametric equalization to improve the sound…

  • PriorityQueue in .NET 6: a practical guide

    .NET 6 added a long-missing collection to the base class library: PriorityQueue<TElement, TPriority>. A priority queue is useful when you do not want to process items in the order they were inserted, but in the order of their priority. Typical examples include job scheduling, pathfinding, graph algorithms, simulations, message processing,…

  • Custom comparer of a SortedSet in C#

    SortedSet in .NET manages ordered, unique elements using a custom comparer that defines both sorting order and element uniqueness. A common pitfall occurs when two different instances with the same value are treated as duplicates. To avoid this, a tie-breaker is needed, ensuring both order and distinctness among elements.