Free Enterprise Languages and Future-Proof Tech Choices
In 2021, Oracle decided to monetise Java by changing its licensing policy after JDK 17. Previously, businesses had to pay for updates and support, but with JDK 17, Oracle introduced…
Running DeepSeek R1 on Your Local Machine Offline: A Step-by-Step Guide
Over the past few months even weeks, DeepSeek has emerged as an unexpected guest in the AI market. It literally redefined the AI industry and cost trillions of dollars loss…
Concourse – A Modern CI/CD Tool
Concourse is a CI/CD tool created by a team at a company called Pivotal. Pivotal is a company known for building tools for software development. The Pivotal team wanted to…
Advanced C# Tips: Use Conditional Attribute for Debugging Code
In C#, it’s common to sprinkle your code with debugging information—like console logs that help you track down bugs. However, when you’re ready to release your application to the world,…
Advanced C# Tips: Optimize Recursive Functions With Tail Recursion
Recursive functions are a staple in many programmers’ toolkits. They allow us to solve complex problems by having a function call itself with a different set of parameters until a…
Advanced C# Tips: Beware of Micro-Optimizing at the Cost of Code Clarity
Micro-optimizing refers to making small modifications to code in an attempt to improve performance, often at the expense of making the code harder to read, understand, and maintain. While it’s…
Advanced C# Tips: Leverage Span for Safe Memory Access
Span<T> in C# is an innovative feature that revolutionizes how developers work with contiguous memory regions, like arrays or memory blocks. The Span is introduced in C# 7.2 and it…
Bedrock of Software – Part 4: Operating Systems Written in C
In the previous posts, we explored how C laid the groundwork for modern programming languages and shaped the software landscape. We’ve looked at C’s influence on languages and traced its…
Advanced C# Tips: Prefer for Loop Over foreach with Arrays
In C#, when you want to go through all the items in an array one by one, you can use either a for loop or a foreach loop. Both will…