• 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…

  • 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…

  • 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.

  • Easily upload videos of security cameras to YouTube

    Home security cameras have become increasingly popular in recent years, with many homeowners opting to install cameras to keep their homes and families safe. One of the benefits of these cameras is that they can capture footage of potential intruders or other suspicious activity around the home. In this blog…