Tux Machines

Programming Leftovers

Posted by Roy Schestowitz on Jan 07, 2023

=> OpenMandriva Introduces "ROME" 23.01: A New Rolling Release Edition | Security Leftovers

Why Principle Of Least Privilege Is Bad

=> ↺ Why Principle Of Least Privilege Is Bad

Let's apply this principle where it makes sense. Where the risk and severity of an incident is really high. Let's back off when it comes to employee productivity and happiness.
Attacks on production servers is really costly for businesses.
Employee churn is really costly for businesses.
Keep both of those in mind before considering introducing principle of least privilege.

Find the next number in the sequence

=> ↺ Find the next number in the sequence

Given a sequence of n real numbers f(x1), f(x2), f(x3), ... , f(xn), there is always a mathematical procedure to find the next number f(x n+1) of the sequence. The resulting solution may not appear to be satisfying to students, but it is mathematically logical.

Parallel streaming in Haskell: Part 1 - Fast, efficient, and fun!

=> ↺ Parallel streaming in Haskell: Part 1 - Fast, efficient, and fun!

Over the last 2 years, we moved our inherently sequential data processing engine, written in Haskell, to a parallel version. Running the parallel version of our system barely increases CPU time, while the wall time (time from start to end) is significantly reduced.
This post explains how we parallelized our system without incurring any significant overhead costs, allowing us to linearly speed-up our workloads with the number of cores available (up to a plateau, see plot below). We had the following requirements for our design: [...]

‘Consciousness’ in Robots Was Once Taboo. Now It’s the Last Word.

=> ↺ ‘Consciousness’ in Robots Was Once Taboo. Now It’s the Last Word.

This kind of intelligence, if possible to create, would be flexible and fast. It would be as good in a tight situation as humans — better, even. And as machine learning grew more powerful, this goal seemed to become realizable. Dr. Lipson earned tenure, and his reputation as a creative and ambitious engineer grew. So, over the past couple of years, he began to articulate his fundamental motivation for doing all this work. He began to say the c-word out loud: He wants to create conscious robots.

Chunking strings in Elixir: how difficult can it be?

=> ↺ Chunking strings in Elixir: how difficult can it be?

This week I finished my contract for Seamly1, where I spent 7 months developing a SaaS messaging platform for customer service in Elixir. The project was incredibly interesting, so in our last conversation I asked if they would mind me sharing a “war story” with the world. They gladly agreed, so here goes an account of my dealings with unicode, performance tuning and Rust-based NIFs. Enjoy!

Microfeatures I'd like to see in more languages • Buttondown

=> ↺ Microfeatures I'd like to see in more languages • Buttondown

There are roughly three classes of language features: Features that the language is effectively designed around, such that you can’t add it after the fact...

Performance of WebAssembly runtimes in 2023

=> ↺ Performance of WebAssembly runtimes in 2023

Using libsodium in a web browser has been possible since 2013, thanks to the excellent Emscripten project.
Since then, WebAssembly was introduced. A more efficient way to run code not originally written in JavaScript in a web browser.
And libsodium added first-class support for WebAssembly in 2017. On web browsers supporting it, and in allowed contexts allowing it, that gave a nice speed boost. Like JavaScript, the same code could seamlessly run on multiple platforms.
Also like JavaScript, applications started to use WebAssembly server-side. Still like JavaScript, and ignoring bugs in runtime implementations, it doesn’t allow untrusted code to read or write memory outside of a sandbox. That alone makes it a compelling choice for application plug-ins, function-as-a-service services, smart contracts and more.
In 2019, support for a new WebAssembly target (wasm32-wasi) was added to libsodium, making it possible to use the library outside web browsers, even without a JavaScript engine.
As of today, multiple runtimes support wasm32-wasi, but on the same platform, the same code can run with very different performance across runtimes.
Benchmarking abilities for wasm32-wasi were thus added to libsodium.
This benchmark proved to be more representative of real-world performance than micro-benchmarks. Sure, libsodium is a crypto library. But the diversity of the primitives being measured exercises the vast majority of optimizations implemented (or not) by WebAssembly runtimes/compilers/JITs, and this benchmark turns out to be a good representative of real-world applications.
Since its introduction, the libsodium benchmark has been widely used by runtimes to improve their optimization pipelines, by researchers to measure the impact of experiments on WebAssembly, and by users to pick the best runtimes for their workload.
But it’s been a while since results were published here. Meanwhile, runtimes have improved, so an update was overdue.

Parallelizing C++ using Execution Policies | Azeem Bande-Ali | Engineering Manager

=> ↺ Parallelizing C++ using Execution Policies | Azeem Bande-Ali | Engineering Manager

C++17 support for Execution Policies for "algorithms" provides a powerful tool to parallelize your code.

You Want Modules, Not Microservices

=> ↺ You Want Modules, Not Microservices

Dissecting why everybody keeps talking about microservices.

=> gemini.tuxmachines.org

Proxy Information
Original URL
gemini://gemini.tuxmachines.org/n/2023/01/07/Programming_Leftovers.1.gmi
Status Code
Success (20)
Meta
text/gemini;lang=en-GB
Capsule Response Time
141.496129 milliseconds
Gemini-to-HTML Time
2.254561 milliseconds

This content has been proxied by September (3851b).