Programming Leftovers
-
Sean Goedecke ☛ Why are big tech companies so slow?
So why do big tech companies find it so much harder to build? It’s the scale of the app itself: not the number of traffic or users, but the number of features. As that number grows, it becomes more and more difficult to build and ship new features. The reason is straightforwardly mathematical. Each new feature potentially interacts with all the features before it. You have to check to make sure it doesn’t interfere with an existing feature, and if it does, you have make some kind of balancing change to keep both features working.
-
Greg Morris ☛ Micro Social: Threading
Despite possibly picking the wrong time to work on micro.blog related things, I’m determined to push on a work in public to create something worthwhile. Anyway, my first target was threading, it’s one of my biggest frustrations on micro.blog and sometimes makes conversations challenging to follow, so getting this correct and intuitive is important to me.
-
Sandy Maguire ☛ Read the Code, Not the Profile
I’m currently employed to work on a compiler. The performance has never been stellar, in that we were usually seeing about 5s to compile programs, even trivially small ones consisting of less than a hundred instructions. It was painful, but not that painful, since the test suite still finished in a minute or two. It was a good opportunity to get a coffee. I always assumed that the time penalties we were seeing were constant factors; perhaps it took a second or two to connect to Z3 or something like that.
But then we started unrolling loops, which turned trivially small programs into merely small programs, and our performance ballooned. Now we were looking at 45s for some of our tests! Uh oh! That’s no longer in the real of constant factors, and it was clear that something asymptotically was wrong.
-
Undeadly ☛ Game of Trees 0.108 released
Version 0.108 of Game of Trees has been released (and the port updated): [...]
-
Daniel Stenberg ☛ CVSS is dead to us
I am of course advocating strongly within the CNA ecosystem that we should be able to stop CISA from doing this, but I am just a small cog in a very large machine. A large machine that seems to love CVSS. I do not expect to have much success in this area anytime soon.
And no, I don’t think switching to CVSS 4.0 or updates to this system is ultimately going to help us. The problem is grounded in the fact that a single one-dimensional score is just too limited. Every user or distributor of the project should set scores for their different use cases. Maybe even different ones for different cases. Then it could perhaps work.
But I’m not in this game for any quick wins. I’m on the barricades for better (Open Source) security information, and to stop security misinformation. Ideally for the wider ecosystem, because I think we are far from alone in this situation.
The love of CVSS is strong and there is a lot of money involved based on and relying on this.
-
Thorsten Ball ☛ Judging Code
With that, we gain the ability to send HTTP requests, serialize & deserialize JSON, and to handle errors without cursing. We’re ready to write some code.
-
Sandor Dargo ☛ C++26: pack indexing
While packs are a useful feature, and since C++17 it’s so easy to use them in fold expressions, extracting a specific element of a pack is somewhat cumbersome.
You either have to rely on some standard functions not made for the purpose or use “awkward boolean expression crafting or recursive templates”. None of them is unbearable, but it might be error-prone or simply expensive regarding compile-time performance. Nevertheless, they are not the most readable solutions.
C++26 brings us pack indexing as a core language feature thanks to the proposal of Corentin Jabot and Pablo Halpern, P2662R3.
-
Facundo Olano ☛ Unit Testing Principles
I learned about the Unit Testing book through Saša Jurić’s Clarity talk. The entire talk was brilliant but the last 15 minutes especially, when he turned the discussion to testing, were eye-opening. Jurić attributed his style of testing units of behavior instead of units of code to Vladimir Khorikov’s Unit Testing book, so I decided to buy a copy.
-
TecMint ☛ Bun: A Faster JavaScript Runtime for GNU/Linux Users
.
Bun is a modern JavaScript runtime designed to simplify and accelerate the development of JavaScript and TypeScript applications.
-
The New Stack ☛ What’s in the New Node.js, and How Do You Install It?
Node.js is still one of the most popular runtimes for JavaScript.
-
Python
-
Vincent Lammens ☛ Showing page generation time in Django
When building applications, it can be handy to know how long it took to generate a page. We can see how long it took to load in the developer tools of our browser, but we can't see how long it actually took the server to generate. In django, we can add some middleware for this.
-