news
Programming Leftovers
-
Burkhard Stubert ☛ Extracting Microservices from a Modular Monolith
When developing the operator terminals for their machines, OEMs must reinvent the wheel over and again. Each OEM implements home-grown solutions for standard features like OTA updates, user authentication, factory installation, machine gateways and IoT gateways. None of these features belong to the OEM’s core business. OEMs could save a lot of time and money, if they could buy these features as ready-made solutions from third-party vendors.
Microservices could be these ready-made solutions. They have technology-agnostic interfaces, which the terminal application would call to perform standard jobs like OTA updates and user authentication. Microservices are independently deployable and run in their own process (see the Definition of Microservices for more details). Third-party vendors can build the microservices once for many OEMs to use on their devices.
-
Artyom Bologov ☛ Some Things Have To Be Ugly
Some things are just ugly and you have to live with it. Or even make some things ugly deliberately—to highlight the complexity behind the code.
-
Buttondown LLC ☛ Solving a "Layton Puzzle" with Prolog
I have a lot in the works for the this month's Logic for Programmers release. Among other things, I'm completely rewriting the chapter on Logic Programming Languages.
I originally showcased the paradigm with puzzle solvers, like eight queens or four-coloring. Lots of other demos do this too! It takes creativity and insight for humans to solve them, so a program doing it feels magical. But I'm trying to write a book about practical techniques and I want everything I talk about to be useful. So in v0.9 I'll be replacing these examples with a couple of new programs that might get people thinking that Prolog could help them in their day-to-day work.
-
Rlang ☛ Code collaboration in NEST
Moving forward at J&J, we are transitioning towards adopting R as our preferred analytical tool, and we were thrilled with the capabilities within the NEST framework ( {rtables} , {tern} and {teal} ) designed by Roche.
As of today, we are building our new internal standard table shells using the open source packages from this NEST framework.
-
Rlang ☛ Extending the Theta forecasting method to GLMs and attention
In the new version (v0.18.0) of the ahead package, I have extended the forecast::thetaf function to support Generalized Linear Models (GLMs) and added an attention mechanism.
Attention is widely used in current neural networks (because they tend to forget; blame it on the gradients 🙂 ) to focus on specific parts of the input data when making predictions.
-
Daniel Holden ☛ Debug Drawing Text using Lines
I thought it would probably be possible to draw text using just line rendering, figuring I could build a basic look-up table that mapped character codes to a series of line segments. I'm certain this isn't a new idea, but surprisingly I couldn't find much after some digging around online.
-
DataGeeek ☛ Ensembles of Models – DataGeeek
The BIST Technology index seems to have reached the upper band despite the ongoing political crisis in Turkey. But could it be continued?
-
Tom's Hardware ☛ Git turns 20 as we celebrate decades of open-source software distribution
Although Linus Torvalds is often credited with the creation of Git, he hasn't been heavily involved in the project since June of 2005. For the last 20 years, Junio Hamano has held the reins and helped Git maintain its relevance, with regular updates and maintenance. In fact, the most recent update, 2.49, debuted just last month.
-
Julia Programming Language ☛ This Month in Julia World
A monthly newsletter, mostly on julia internals, digestible for casual observers. A biased, incomplete, editorialized list of what I found interesting this month, with contributions from the community.
-
Chris ☛ Parser Combinators Beat Regexes
Someone online was solving Advent of Code problems, and had a question about last years’ day 3. They had a working solution using regular expressions (regexes) on String values, but they wanted to use ByteString values instead for performance reasons. They were surprised, however, that there seems to be a lack of community cohesion around regex libraries in Haskell.
There’s a reason for that. We generally don’t use regexes in Haskell. We use parser combinators instead, because they are almost always better. In other languages, it would be considered overkill to write a full parser when a simple regex can do the same thing. In Haskell, writing a parser is no big deal. We just do it and move on with our lives.
-
[Old] Jack Franklin ☛ Writing good comments: the why, not the how
All code can eventually be understood; code is ultimately instructions to the computer to do something. Code can be confusing but it can't lie, given enough time any developer can step through code and work out exactly what it does. But it's much harder to work out why it does that. Give your colleagues (or future you, in six months time) the context behind why the code does what it does and you'll be much better for it.
-
Rust
-
Rust Blog ☛ The Rust Programming Language Blog: March Project Goals Update
The Rust project is currently working towards a slate of 40 project goals, with 3 of them designated as Flagship Goals. This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated tracking issue on the rust-project-goals repository.
-