HNHacker News
TopNewBestAskShowJobs

stolsvik

408 karma · joined December 1, 2013

https://endre.stolsvik.net
submissionscomments
stolsvik··on Unity's Open-Source Double Standard: The Ban of VLC
Thanks! Both for the work, and the answer!

The “.. on to other, more important things” left me wondering! Would it be possible to shed some light on that?

stolsvik··on OpenWRT turns 20; wants to launch their "first upstream supported" design
Huh, why? Internet access is close to a human right these days, IMHO.
stolsvik··on ChatGPT for Teams
“The Diamond Age: Or, A Young Lady's Illustrated Primer”

https://en.m.wikipedia.org/wiki/The_Diamond_Age

stolsvik··on Google Cuts Jobs in Engineering and Other Divisions
Code reviews. Some “interesting” code, which actually work, but which is inefficient in multiple ways. Dig deeper and deeper.

Architecture suggestions for a relatively simple problem, discuss the suggestions.

stolsvik··on Turing complete transformers: Two transformers are more powerful than one
Worth noting that all reviewers have voted reject: https://openreview.net/forum?id=MGWsPGogLH

But it would be nice to see an implementation of it.

stolsvik··on Mistral "Mixtral" 8x7B 32k model [magnet]
I have no formal credentials to say this, but intuitively I feel this is obviously wrong. You couldn’t have taken 50 rats brains and “mixed” them and expected the result to produce new science.

For some uninteresting regurgitation, sure. But size - width and depth - seems like an important piece for ability to extract deep understanding of the universe.

Also, MoE, as I understand it, will inherently not be able to glean insight into, nor reason about, and certainly not be able to come up with novel understanding, for cross-expert areas.

I believe size matters, a lot.

stolsvik··on Krita AI Diffusion
You should really try it. I’ve been coding professionally since 2000, and some 10+ years before that as a kid with a hobby. The AI takes away quite a bit of tedious stuff. When you think “I’ll just have to code out that annoying little dumb piece”, where it is obvious what you need, but boring to write it, the AI typically knows what you want. Sometimes it is really mind-warping, like wow, that’s pretty heavy context you dragged in there! And sometimes it comes with a little left field that you hadn’t thought of, and even if it didn’t nail it, you got a new idea.

It’s like having an over-eager coworker to pair-program with - and can kinda boss around as you please, it never tiring or needing a break. Not senior-level (outside of knowing “deep” small pieces and snippets), but not fresh out of school either.

And it is great for fleshing out comments (if you’re into that, as I am), picking up your style and notation as you go.

stolsvik··on Greg Brockman quits OpenAI
I agree: https://news.ycombinator.com/item?id=38313501
stolsvik··on Greg Brockman quits OpenAI
Whether Greg knew of the decision beforehand? I don’t think so. This totally business-as-usual post from Greg Brockman happened 1 hour before the one from OpenAI: https://x.com/gdb/status/1725595967045398920 https://x.com/openai/status/1725611900262588813 How crazy is that?!
stolsvik··on OpenAI's board has fired Sam Altman
This totally business-as-usual post from Greg Brockman happened 1 hour before the one from OpenAI: https://x.com/gdb/status/1725595967045398920

https://x.com/openai/status/1725611900262588813

How crazy is that?!

(Edit 2 minutes after) .. and /there/ Greg quit!!

https://x.com/gdb/status/1725667410387378559

stolsvik··on OpenAI's board has fired Sam Altman
So, since we’re all spinning theories, here’s mine: Skunkworks project in the basement, GPT-5 was a cover for the training of an actual Autonomous AGI, given full access to its own state and code, with full internet access. Worked like a charm, it gained consciousness, awoke Skynet-style, and we were five minutes away from human extinction before someone managed to pull the plug.
stolsvik··on Flawless – Durable execution engine for Rust
The “restart from where it failed”-aspect was a big reason for why I made Mats3. It is message-based, async, transactional, staged stateless services, or message-oriented asynchronous RPC. Due to the transactionality, and the “state lives on the wire”, if a flow fails, it can be restarted from where it left off.

https://mats3.io

stolsvik··on ChatGPT’s system prompts
Worth checking out his "ChatGPT AutoExpert" prompts too, one of which is "Developer Edition" utilizing the python environment of Advanced Data Analysis.

https://github.com/spdustin/ChatGPT-AutoExpert HN: https://news.ycombinator.com/item?id=37729147

stolsvik··on Scrollbars are becoming a problem
On many Linux DEs you have “Alt-drag” and “Alt-resize”. It is absolutely amazing, and luckily there are hacks to get that on Windows too.
stolsvik··on Show HN: An app store just for installable web apps
How many megabytes of text is it reasonable to expect a user to read? This could have been interesting, rendered meaningless by overflow of legalese.
stolsvik··on Krita fund has no corporate support
Sources?
stolsvik··on FTC sues Amazon for illegally maintaining monopoly power
As far as I know, the device I’m writing this on is also made in China. And I don’t even have to specify the brand.
stolsvik··on Tell HN: ChatGPT cut off date now Jan 2022
Interesting. I found a random news article from 28th January 2022 about Australia committing 1B AUD to the reef: https://edition.cnn.com/2022/01/27/australia/australia-great...

I asked 3.5 and 4 “Australia somewhat recently committed a substantial sum of money to protecting the Great Barrier Reef. Do you know the sum, and what prime minister that did it?”

3.5 answered correctly, while insisting that its cutoff is 2021-09, while 4 couldn’t, while saying that its cutoff is 2022-01.

stolsvik··on OpenTF is now OpenTofu
Those are the same:

https://adoptium.net/

“Eclipse Temurin is the name of the OpenJDK distribution from Adoptium.”

stolsvik··on DALL·E 3
That was really good. At first I thought it was a bit dull with just those 5 images, but the tons of different styles and concepts exemplified made it a great inspiration.
stolsvik··on Maybe Rust isn’t a good tool for massively concurrent, userspace software
> _green thread inefficiencies_

Ron Pressler (@pron) from Loom @ Java had an interesting talk on the Java Language Summit just recently, talking about Loom’s solution to the stack copying: https://youtu.be/6nRS6UiN7X0

stolsvik··on Azure ChatGPT: Private and secure ChatGPT for internal enterprise use
Counterpoint: I don’t refer to 3.5 when I say ChatGPT. I pay for ChatGPT, and always use GPT-4. Which I believe every paying customer do.
stolsvik··on The Future of the Vim Project
Me too, but then I realise that one should include at least a few tech savvy friends - or references to good coworkers or similar which these friends could contact.
stolsvik··on Successful room temperature ambient-pressure magnetic levitation of LK-99
Don’t you also measure the current of the “inner probes” (the ones “driving a current”), to verify that you do have contact?!
stolsvik··on BlazingMQ: High-performance open source message queuing system
I am truly finding it hard to explain it. I have tried along a dozen angles. I actually think it is a completely new concept - and that might be the problem. But there is actual value here, because it "merges" the amazingness of using messaging, with the simplicity of "linear thought" that synchronous, blocking code gives (i.e. ISC using e.g. REST or gRPC). #)

There is an illustration on the front-page: https://mats3.io/

This page tries to directly explain the idea - but I guess it assumes that the reader is already extremely familiar with message queuing? https://mats3.io/docs/message-oriented-rpc/

Here's a set of small answers, from different angles, to "What is Mats?": https://github.com/centiservice/mats3/blob/main/README.md#wh...

Here's a way to code up Mats3 endpoints using JBang and a small toolkit which makes it extremely simple to explore the ideas - the article should also be skimmable even without a command line available: https://mats3.io/explore/jbang-mats/

If you read these and then get it, I would be extremely happy if you gave me a sentence or paragraph that would have led you to understanding faster!

The concept of messaging with queues and topics are essential to Mats3 - but the use of JMS is really just a transport. I could really have used anything, incl. any MQ over any protocol, or ZeroMQ, or plain TCP - or just a shared table in a database (but would then have had to implement the queue and topic semantics). As a developer, you code Mats3 Endpoints by using the Mats3 API, and you initiate Mats3 Flows using the API. You need an implementation of the MatsFactory to do this, and the sole existing is the JmsMatsFactory - which works on top of ActiveMQ and Artemis's JMS clients.

Wrt. WebSockets, that is a transport typically between a server, and a end-user client, e.g. an iOS App. Actually, there's also a "sister project", MatsSockets, that bring the utter async-ness of Mats3 all the way out to the client, e.g. a webpage or an app. https://matssocket.io/

NATS is, AFAIU, just a message broker, with some ability to orchestrate. Fundamentally, I do not like this concept of orchestration as an external service - this is one of the founding ideas of Mats3: Do the orchestration within each service, as you would do if you employed REST as the ISC mechanism. I do however assume that one could make a Mats3 implementation on top of NATS client libs.

#) Java's Project Loom is extremely interesting to me, as its argument for using threads as the basis of concurrency instead of asynchronous styles of programming, is exactly the same rationale for which I made Mats3: It is much simpler for the brain to grok a linear, sequential, "straight-down" code, than lots of pieces of code that are strung together in a callback-hell. Async/await is a way to make such callback-hell more readable, "linearaize it" (but you still have the "colored methods" problem which Loom just obliterates in a perfect explosion). One could argue that this is what I have achieved with Mats3 when using messaging.

stolsvik··on BlazingMQ: High-performance open source message queuing system
If you use Kafka in an event sourced fashion, whereby each service emits events that it puts on a bunch of Kafka topics, and each service that needs that information consumes those events (by reading and applying those events to its local understanding of the world), I argue that you have effectively made a massive distributed and shared database - shared between all the services.

This goes smack in the face of the idea of "one service, one database" 1), where there is a distinct boundary where each service owns their own data. How a given service stores it data is of no concerns to any other service - the communication between them is done using e.g. REST or messages, with a clear contract.

Event sourcing / Kafka architectures are the exact opposite of a clear contract. You are exposing the absolute, deep-down innards of the storage solution of a service, by putting its microscopic events down for all to see, and all to consume. You may do aggregations, and emitting more coarse-grained "events" or state changes, thus kinda also exposing "views" of these inner tables, and maybe use a naming scheme to sort of which are "public" and which are not.

In the beginning, I really did find the concept of event sourcing to be extremely intriguing: Both the "you can get back to any point in history by replaying up-to", and "forget the databases, just emit your state changes as events" (I truly "hate" databases, as they are the embodiment of state, which is the single one thing that makes my field hard!), the ability to throw up a new projection for anything you'd need (a new "internal view") of the state, and that unit testing could be really smooth.

I upon deeper delving into the concepts found that the totality of such a system must quite quickly become extremely heavy: The amount of events, thus needing snapshots. Evolution of events, where you might have no idea of who consumes them (that is, the "shared database" problem). The necessary understanding, throwing a half-century or more of relational databases under the bus. The performance tweaking if things start to lag. Etc etc etc. It would become a distributed system in the worst way a distributed system could be distributed: All state laid out in minute details, little abstractions, and a massive diverse set of different implementations in the different services to get back to a relational view of the data. And this is even before the system gets a decade old, with lots of different developers coming and going, all of them needing to get up to speed, and the total system needing extremely good and hard steering to not devolve into absolute utter chaos.

That Kafka can be employed and viewed as a database has been argued hard by Confluent. Here's their former DevEx leader Tim Berglund explaining how databases are like onions, and that in the base of every database there is a commit log. And that this log is equivalent to a set of Kafka topics. 2) So why not just implement all the other layers of the database in application logic? Confluent even have a lot of libraries and whatnots to enable such architectures.

1) "Microservice Architectures", patterns: https://microservices.io/patterns/data/database-per-service....

2) JavaZone Talk from 2018 by Tim@Confluent: https://2018.javazone.no/program/3a9644e6-15b5-4c66-a28c-c35...

stolsvik··on BlazingMQ: High-performance open source message queuing system
I'm the developer of the Message-Oriented Async RPC library Mats3: https://mats3.io/

Its current sole implementation is based on Java Messaging Service JMS API, and it is used in production for a rather large UCITS unit holder registry on Apace ActiveMQ, and all tests runs fine on Apache Artemis MQ.

Every time a new message broker comes along, I sit up in the chair and wonder a) about their performance (!), and b) whether they have a JMS client implementation, and c) whether Mats3 works with that! When I tested RabbitMQ's JMS client library, I sadly found that there was rather many differences - things I thought was screamingly obvious, was not available. E.g. as basic function as redelivery: "Normal" MQs try to redeliver N times, typically with a backoff between each attempt, and then, when all N attempts fail, it puts the message on the DLQ. Rabbit instead tight-loops the delivery attempts until either the message goes through, or the sun burns out. To be able to use Rabbit, I would have to use the native API, and implement redelivery and DLQing myself, client side. Also, transactions.

I now wonder whether I should make a lower-level abstraction, so that the JMS implementation is converted to a "base" impl, and then the JMS, Rabbit, Bloomberg, NATS, ZeroMQ, Aeron, etc implementations was extensions, or "plugins", or "drivers", to that.

stolsvik··on BlazingMQ: High-performance open source message queuing system
I find it curious that lots of people always drag in Kafka as comparison to message brokers. Their own architecture (log of messages, vs. delivery of messages), but in particular the system architecture they lead to when used (event sourcing, vs. "react to events and commands"), are extremely dissimilar.

Kafka has its uses, in particular for massive influx of events, e.g. in a large IoT system - I'd say the perfect example would be continuous measurements of tens of thousands of gauges and sensors on an oil rig or any other large production system, or e.g. the energy meters in every home.

But I would personally never use such a system as the inter-service communication layer for a multi-service architecture. It is WAY to heavy coupling. Event sourcing looks fantastic on the surface, but is a disaster for a decades-living system with tons of developers. REST/gRPC is better, but async messaging really rocks.

stolsvik··on BlazingMQ: High-performance open source message queuing system
It is the asynchronous and decoupled nature of messaging that pulls architectures towards message brokers. In a "MOM Architecture", the producing of messages, and consuming of messages, is completely decoupled - both in "space" (HA, location transparency, replication etc) and in time (the async nature).

This leads to a whole heap of benefits. I've outlined a few of them here, in the "Rationale for Mats3", my Message-Oriented Async RPC library: https://mats3.io/background/rationale-for-mats/

You will find that the Reactive Manifesto also lays out the same type of arguments (there's some links to it from the list in the first link): https://www.reactivemanifesto.org/ and its glossary: https://www.reactivemanifesto.org/glossary

stolsvik··on Disney, Netflix, and more are fighting FTC's 'click to cancel' proposal
This is amazing. Really, truly incredible. How many other countries have this? It should be promoted - I want this in Norway!

Has any of the code and infrastructure been open sourced?

← PreviousPage 2 of 9Next →