HN user

asabil

576 karma
Posts19
Comments74
View on HN

Sorry to disagree, but no, they are not dozens of different languages. The challenge with Arabic is that it has a rather large vocabulary, and different regions use slightly different vocabularies.

That being said, Darija, or rather North African Arabic is a messy mix of Arabic and Tamazight. Which can be difficult for Middle East Arabic speakers to understand.

For reference, I speak Darija and understand both classical and modern Arabic. It would take me a few days to adapt my speech to other regional variations of arabic.

`gen_server` is an abstraction over the a client sending a `request` that a server services to produce a `response` to be sent to the client.

The `gen_server` implementation takes care of things like timeouts, servers terminating before a response is produced as well as maintaining the server state.

You can read more here at [1], [2] and [3].

[1] https://learnyousomeerlang.com/clients-and-servers#callback-...

[2] https://www.erlang.org/doc/system/gen_server_concepts

[3] https://www.erlang.org/doc/apps/stdlib/gen_server.html

The most dangerous thing about Capitalism is imho its universal equivalence, its ability to make us covert everything into a monetary value.

In other words, it’s just like a programming language where everything can be implicitly converted to a given top type.

In the progress we certainly made over the last century or so, we certainly also lost other things whose value is not representable in our modern value system.

No global GC. Each erlang process does its own GC, and the GC only happens when the process runs out of space (ie. the heap and stack meet).

You can for example configure a process to have enough initial memory so as not to ever run into GC, this is especially useful if you have a process that does a specific task before terminating. Once terminated the entire process memory is reclaimed.

Vala is very much used among other things by Frida.

I have been involved with Vala in it’s early day and some hardcore GObject/C users never quite liked the C code that Vala generated although it was perfectly valid and exposed a very clean C header to interface with it.

I think that Vala is a really great tool for building applications that make use of Glib/GObject. For example Gtk applications, but also GStreamer and DBus applications.

I don’t have an example of fully non-cooperative cancellation available off the top of my head.

That would be Erlang.

UUID v7 2 years ago

The UUID spec update has not been finalized yet.

It would be quite unfortunate to end up with a UUID v7 in PostgreSQL that’s not quite the standardized one because the patch got merged too quickly.

EDIT: here is the IETF working group page https://datatracker.ietf.org/wg/uuidrev/about/

Their milestone seems to submit the final proposal by March.

Each RTP packet has a 32bit timestamp, and a 32 bit SSRC. Each "sender" in an RTP session must use the same SSRC, this is how synchronisation between audio and video streams from the same sender (lip-sync) is achieved.

The timestamps have a resolution defined by the clock rate communicated externally through a signalling channel.

This is really neat. I have been using `podman generate systemd` for a large number of deployments. This just makes it so much simpler.

For anyone wondering, the main difference between this and docker/docker-compose is that podman can run in a daemonless mode such as containers are running directly under systemd which makes them integrate into the existing systemd infrastructure and appear as any other normal service.

I am far from being an expert in the field, but I have seen property based tests used to verify complex stateful systems.

I remember more circa 2010 attending a presentation by the guys from QuviQ who mentioned that their solution was used by the automotive industry in Sweden to verify embedded systems.

An `iolist()` or `iodata()` structure is mainly designed for I/O.

The idea is rather simple but powerful.

Let's say you want to send `"Hello " + name`, where `name` is a string, over the network. Traditionally, in C, you would allocate a buffer that is large enough and copy the "Hello " literal into it and then copy the `name` string before calling `write(fd, buffer, length)`.

If you wanted to avoid allocating the buffer and doing the copy, you would make use of `writev(fd, iovec, count)`, and this is exactly what the `iolist()` structure allows for. The erlang runtime system (erts) makes use of efficient `writev` calls instead of having to allocate temporary buffers just to send data over the network (something Erlang is notoriously good at) when you make use of `iolists`.

I have to admit that I included Portugal without giving it much thought.

I was honestly mostly thinking about Spain and added Portugal assuming they would be the same from the perspective of identity. I stand corrected.

I find it hard to believe that there would be no cultural heritage after ~700 years.

What I think you want to say is that the "identity" of modern Spain and Portugal has been shaped and defined by its opposition to the moor/muslim/north-african identity.