Intro to Ktor: The server-side stack
My previous article introduced Ktor and some of its basic features for building web applications. Now, we’ll expand the example application developed in that article by adding persistent data and HTMX, which will provide more interactive views. Th...
Where big piles of mud come from
I’ve worked on some big piles of mud over the years. You know, those sprawling applications made up of millions of lines of code, written by countless developers over the course of a decade or two, most of them long forgotten and utterly unknown to...
Why you should use Docker and OCI containers
A book published in 1981, called Nailing Jelly to a Tree, describes software as “nebulous and difficult to get a firm grip on.” That was true in 1981, and it is no less true four decades later. Software, whether it is an application you bought or ...
Angular team unveils strategy for 2025
The 2025 strategy document for Google’s Angular web development framework calls for enhancing the developer experience with capabilities such as zoneless change detection and signal-based forms, and making developer adoption of new features easier ...
.NET and .NET Framework January 2025 servicing releases updates
Welcome to our combined .NET servicing updates for January 2025. Let’s get into the latest release of .NET & .NET Framework, here is a quick overview of what’s new in these releases: Security Improvements .NET updates .NET Framework updates Securit...
The journey towards a knowledge graph for generative AI
How does the journey to a knowledge graph start with unstructured data—such as text, images, and other media? The evolution of web search engines offers an instructive example, showing how knowledge can be extracted from unstructured sources and ref...
The cloud cost wake-up call I predicted
For years, I’ve cautioned organizations about the hidden downsides of cloud computing. Ironically, I’m “Dave the cloud guy” who warns enterprises about the cloud. The benefits of the cloud’s agility, scalability, and innovation can quickly b...
Yes, you should use AI coding assistants—but not like that
If you’re exhausted by the constantly changing AI landscape, you’re not alone. In a thoughtful post, Microsoft Research brainiac Victor Dibia captures the “particular kind of fatigue that comes from trying to match the unprecedented pace of AI a...
The devops certifications tech companies want
Devops continues to expand in development environments everywhere from small startups to the largest global enterprises. The worldwide devops market, including products and services, was expected to increase from $10.56 billion in 2023 to $12.8 billio...
Open source trends for 2025 and beyond
Over the past decades, open source software (OSS) has transformed from being merely a cheaper option into the superior choice for enterprise infrastructure. Now it often provides higher quality, stronger security, better privacy, unparalleled extensib...
Yes, you should use coding assistants—but not like that
If you’re exhausted by the constantly changing AI landscape, you’re not alone. In a thoughtful post, Microsoft Research brainiac Victor Dibia captures the “particular kind of fatigue that comes from trying to match the unprecedented pace of AI a...
Oracle refuses to yield JavaScript trademark, Deno Land says
JavaScript runtime provider Deno Land’s efforts to get Oracle to yield the trademark for JavaScript have hit a snag, with Oracle refusing to voluntarily withdraw the trademark, Deno Land said. A Deno Land post on X on January 7 provided an update ab...
Why JavaScript’s still on top in 2025
Welcome to a new year of programming and the brand new monthly list of JavaScript stories just for developers! Among the highlights of this new year: Svelte and SvelteKit have seen a slew of incremental improvements, Astro.js 5.0 just hit, and the Nex...
Ephemeral environments in cloud-native development
An emerging trend in cloud computing is using ephemeral environments for development and testing. Ephemeral environments are temporary, isolated spaces created for specific projects. They allow developers to swiftly spin up an environment, conduct tes...
Rust 1.84 introduces strict provenance APIs
Rust 1.84 has been released, bringing strict provenance APIs that can be used in lieu of integer-pointer casts, making the code both easier for developers to reason about and easier for the compiler to analyze, the Rust team said. Announced January 9,...
Researchers build a bridge from C to Rust and memory safety
Memory errors such as out-of-bounds reads and writes and use-after-free bugs have plagued applications for decades, causing problems ranging from minor execution glitches to global security nightmares. The infamous WannaCry, Slammer, and Heartbleed ex...
How to use the new Lock object in C# 13
The C# programming language has provided support for thread synchronization using the lock keyword since its earliest versions. By using a lock statement, you ensure that only one thread can execute the body of the statement at a time. Any other threa...