HNHacker News
TopNewBestAskShowJobs

unwind

12,395 karma · joined March 23, 2009

Bearded hacker from Sweden. Learned M68k assembly on the Amiga in the late 80s. Compiling C on a 7 MHz CPU was slow. Working as a contracting software developer since almost 10 years, enjoying visiting various parts of the software world.

I hang out a lot on Stack Overflow: http://stackoverflow.com/users/28169/unwind, mainly answering questions about C. I love C.

submissionscomments
unwind··on VST3 audio plugin format is now MIT
As a complete audio outsider, my observations are:

1. Great news! VSTs seem to fill an important role in the audio-processing software world, and having them more open must be a good thing.

2. From the things they mention, the SDK seems way larger than I had imagined, but that is normal for (software) things, I guess. "This API also enables the scheduling of tasks on the main thread from any other thread." was not easy to unpack nor see the use of in what was (to me) an audio-generation-centered API.

3. The actual post seems to be somewhat mangled, I see both proper inline links and what looks like naked Markdown links, and also bolded words that also have double asterisks around them. Much confusing.

unwind··on 42,600 ton ship to break the world record for the deepest drill at 7 miles
That science.org article at least manages to show an image of the ship, the OP covered the only (!) image with the headline, and then every time in the article when you thought an image was coming, it was ads.

Anyway, I know absolutely nothing about being on the bridge of such a ship, but can't help to think that it looks/feels "wrong" for a mariner not to be able to see the sky ahead, since there is a helicopter pad jutting out over the bridge. Oh well, I guess they can go to the side.

unwind··on Drawing Text Isn't Simple: Benchmarking Console vs. Graphical Rendering
Agree, it was kind of comical that a web page complaining about text rendering performance uses some kind of design that a) only has relevant content on ~half the screen and b) causes me to have to wait every time I move the scroll wheel. :|
unwind··on What went down at WCSB 89.3FM: Cleveland State's axed student radio station
I think that if you want to get your point across since you're upset about what seems to be (from a very long distance away from pretty much everything mentioned in the piece) some kind of corporate/university deal, you should try to get to it faster. The point, that is.
unwind··on Peanut allergies have plummeted in children
The brown paper bag [1] was not connected to the peanut allergy, it was mentioned as an example of another thing that only (to OP) seems to happen/be a thing in the US.

[1]: https://www.uclahealth.org/news/article/breathing-into-a-pap...

unwind··on Subway station study reveals fungal communities
Fungi in the subway is a thing in Stockholm's subway too, discovered in one station in back 2016 [1].

[1]: https://en.wikipedia.org/wiki/Kungstr%C3%A4dg%C3%A5rden_metr...

unwind··on Debugging Humidity: Lessons from deploying software in the physical world
Obi-Wan, is that you? :)
unwind··on Three ways formally verified code can go wrong in practice
This was very nice, well-written and good-looking (to me) content. Thanks!

There was some meta-bug with encoding which almost is like an internal joke but I don't think it's intentional. The Haskell code examples have:

    inc :: Int -> Int
several times, and that `&gt;` entity should very likely just be a `<` in the source code.
unwind··on IKEA Catalogs 1951-2021
It's not super hard to back up (using the "bread crumbs" on the page you linked), to "Dressers & chests of drawers", pop down the "Series" input selector, and pick STORKLINTA. That gets you [1] which I hope shows all the dressers of that name.

[1]: https://www.ikea.com/us/en/cat/chests-of-drawers-10451/?filt...

unwind··on Software essays that shaped me
Seems to be a reference to "The Croods" [1], a 2013 animated movie in which Nicholas Cage (!) voices the caveman Grug.

[1]: https://en.wikipedia.org/wiki/The_Croods

unwind··on Defer: Resource cleanup in C with GCCs magic
That feels like a "citation needed", since that would be very clear violation of the C spec and thus a rather serious bug in the standard library for that platform.
unwind··on Intel's original 64bit extensions for x86
Me, too. Flagged.
unwind··on How I block all 26M of your curl requests
I got exactly this far:

    uint8_t *data = (void *)(long)ctx->data;
before I stopped reading. I had to go look up the struct xdp_md [1], it is declared like this:

    struct xdp_md {
        __u32 data;
        __u32 data_end;
        __u32 data_meta;
        /* ... further fields elided ... */
    };
So clearly the `data` member is already an integer. The sane way to cast it would be to cast to the actual desired destination type, rather than first to some other random integer and then to a `void` pointer.

Like so:

    uint8_t * const data = (uint8_t *) ctx->data;
I added the `const` since the pointer value is not supposed to change, since we got it from the incoming structure. Note that that `const` does not mean we can't write to `data` if we feel like it, it means the base pointer itself can't change, we can't "re-point" the pointer. This is often a nice property, of course.

[1]: https://elixir.bootlin.com/linux/v6.17/source/include/uapi/l...

unwind··on Design of the SCHEME-78 Lisp-based microprocessor (1980)
Meta: This could use a "(1980)" tag in the title. The "-78" is a hint, of course.
unwind··on European Union Public Licence (EUPL)
It is not a bad association, the GPL is of course fantastic.

I was expecting it to be a software license, but it was (to me) confusing and thus annoying that it wasn't made more clear from the beginning of the text. The entire first section did not specify that it was talking about software, and I think that is important context and should be stated very early.

unwind··on European Union Public Licence (EUPL)
It took them the entire first section to not mention that it is a _software license_.

In the context of EU regulating stuff, "a license" (at least to me) is not automatically assumed to be with regards to software distribution rights. I get that the naming makes it look similar to the (L)GPL and so on, but that could just be marketing and/or someone trying to associate with known things.

The first paragraph after the main title would have been better if it had a second sentence:

    What is the EUPL?

    EUPL is an acronym for "European Union Public Licence". It is a software distribution license.
That would (to me) have made it so much more clear, and avoided having to build up confusion while reading until the purpose was revealed.
unwind··on DE25-Nano FPGA Development and Education Board with ARM HPS and 2GB RAM
It's mildly interesting for being the "sequel" to the DE-10 Nano board that has powered the widely appreciated emulation platform MiSTer [1] for number of years. Here [2] is a comment by someone on the MiSTer project.

But of course submitting stuff that's only on preorder (at ~$250 for non-academics, btw) is not super-helpful, agreed.

[1]: https://misterfpga.org/

[2]: https://www.retrorgb.com/de-10-nano-successor.html

unwind··on US airlines are pushing to remove protections for passengers and add more fees
Data point: it worked for me, also in the EU.
unwind··on Processing Strings 109x Faster Than Nvidia on H100
I'm not (at the moment) a potential user of this, but I just wanted to say that it was a fantastic page with a really good presentation of the project and its capabilities.

One micro-question on the editing: why are numbers written with an apostrophe (') as the thousands-separator [1]? I know that is used for this purpose in Switzerland and that many programming languages support it. It just seemed very strange for English text, where typically comma (,) would be used, of course.

[1]: https://en.wikipedia.org/wiki/Decimal_separator#Digit_groupi...

[2]: https://en.wikipedia.org/wiki/Apostrophe#Miscellaneous_uses_...

unwind··on A vibrator helped me debug a motorcycle brake light system
Not all microcontrollers[1]} have FIFOs for stuff like this, but perhaps you meant implementing it in software as a regular queue or something.

Anyway, even easier since the OP seems to be dealing a lot with the time between samples, would be to just make sure that at least 2.5 ms have passed before reading the sensor again. Right?

[1] Not sure if older blog posts detail the hardware, I do remember reading about this product on here before.

unwind··on Themis (European Reusable Rocket) is assembled on launch pad
Yes, on August 20: https://lkab.com/en/press/kiruna-church-has-found-a-new-home....
unwind··on Is a movie prop the ultimate laptop bag?
This passes Betteridge's law [1] just fine, since I guess the answer from those of us who actually have to carry the laptop any distance is a big "no". A backpack or messenger back is way more comfortable, right?

[1]: https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headline...

unwind··on You did this with an AI and you do not understand what you're doing here
Yeah, I know.

It's just confusing for us poor Swedes since "ö" in Swedish is a separate letter with its own pronunciation, and not a somehow-modified "o". Always takes an extra couple of seconds to remember how "Motörhead" is supposed to be said. :)

unwind··on You did this with an AI and you do not understand what you're doing here
TIL that some people spell cooperate with an "ö".

As a Swedish native it really breaks my reading of an English word, but apparently it's supposed to indicate that you should pronounce each "o" separately. Language is fun.

unwind··on You did this with an AI and you do not understand what you're doing here
Uh that sounds awesome, but if humanity worked like that then things like actual spam e-mail and "robo-calls" would not exist, right? But they do, and they have done for a while. Sorry for maybe sounding cynical, but I have a really hard time believing in your prognosis.
unwind··on Download responsibly
Meta: the title could be clearer, e.g. "Download OSM Data Responsibly" would have helped me figure out the context faster as someone not familiar with the domain name shown.
unwind··on Ultrasonic Chef's Knife
It stops the board from sliding.
unwind··on Elements of C Style (1994)
This is of course quite old, although C is older so it's not too bad.

I really like the ones in the "Purity" section, and also appreciate the name, I sometimes struggle to express those ideas. To me it's a lot about using the language as if you knew it, not from some strange position of fear that you sometimes see.

My pet peeve in the context is comparing boolean values with boolean literals, i.e.

    const bool success = do_something();
    if (success == true)
    {
    }
which is just horrible in my opinion since the result of an expression like `a == b` is in itself a boolean[*], so it just goes around and around, then! But nobody pretends that is true, since that would lead to

    if ((success == true) == true)
which never happens, so for some reason in people's heads there is some significant difference between that and the first case ... which I find offensive. Always just write

    if (success)
for the win.

Also, since nobody actually uses `const` as much as possible, using the explicit comparison also opens your code to the fantastic typo of:

    bool success = do_something();
    if (success = true)  // Oops!
    {
    }
[*] In C it's more like "an int-type value equal to 0 or 1", I know, but logically that is a boolean in quite many ways.

Edit: markup asterisk failure.

unwind··on Ton Roosendaal to step down as Blender chairman and CEO
Fantastic, what a run he had! Ton is obviously an epic leader who also happens to be a great guy!

I had the absolute fortune to work in a bigger project in which the Blender Foundation was a partner back in the early 2000s, and got to meet him on many occasions. We rotated our project-wide meetings, and held one in Amsterdam when the Blender Conference was up, and I got absolutely hooked on both Amsterdam and the Blender community.

I kept going to the Conference many times thereafter, even though I was never neither a developer or a user of Blender. It's just such a fantastic community, it was great to just hang out and soak up some happy vibes, and of course seeing and hearing Ton's voice (both literally and in the abstract as a leader) throughout it all.

To this day our kitchen wall has a huge photo poster from Amsterdam front and center, and both kids have heard so many stories of what a great town that is. :)

unwind··on GNU Midnight Commander
Wow, massive ego boost, thanks a lot!

I thought I had released the GTK 3.x version, but I guess not, then. It might have been that there was something I just couldn't get to behave right, gentoo is somewhat picky about its UI and tries to make it do the right thing in ways that GTK sometimes isn't ready for.

Today I guess the target would be GTK 4.x, I tried to align with the latest main version back when I was maintaining it more.

Oh and 2016 makes sense, had my first kid in 2015 ... :|

← PreviousPage 4 of 34Next →