A couple of days ago, Blazor WebAssembly 3.2.0 Preview 1 was released (announcement). I'm personally excited about this release
because it's the first Blazor release that contains native support for client-side websockets!
Previously, if you wanted to use websockets, you either had to write your own wrapper, or use a larger library like
SignalR that did the wrapping for you. However, if you just wanted to use the normal System.Net.WebSockets.ClientWebSocket class that's built into .NET, you could not.
The Mono/WASM project has actually supported ClientWebSocket for about a year (PR 12615). However, some recent changes in Blazor allowed the Blazor project to be able …continue.
At my work at Jetabroad I do a lot of integration with third-party webservices (like everyone these days).
The webservices, especially the test endpoints, are of variable stability and responsiveness.
The responsiveness issue can be maddening when you're trying to iterate quickly. I prefer doing
the bulk of my development via unit tests or integration tests to isolate myself as much as possible.
However, I still ultimately find myself developing directly against these third-party services from
time to time.
I built Catchy to help solve this pain. When you start it, you provide a whitelist of domains to
intercept. Catchy will examine your outbound REST or SOAP …continue.
Lately I've been playing around with Datomic, a database invented by Rich Hickey, the creator of Clojure.
Datomic feels like a natural extension of Clojure's immutable, persistent datastructures. From Datomic's architecture documentation:
A Datomic database stores a collection of facts. The facts in a database are immutable; once stored, they do not change. However, old facts can be superseded by new facts over time. The state of the database is a value defined by the set of facts in effect at a given moment in time.
The Problem with Asynchronicity
When we use Promises, our code structure is flattened, and our error handling …continue.
I've found that most Clojure web application articles out there cover the Ring and Compojure APIs pretty well, but stop short of the data access layer, leaving that up to you. This article will attempt to remedy that, with a focus on relational databases.
In this post we'll create a simple REST API for a todo list web application. We'll use Compojure to create a REST API, Lobos to create and manage our database tables, and Korma to query a PostgreSQL database.