bits 0x53 - Week 28~35, 2024

I’m back. But I’ll reduce the update frequency from weekly to …. multi-weekly.

# reads: on generative AIs

Mapping the Impact of Share Alike/Copyleft Licensing on Machine Learning and Generative AI - Kacper Szkalej, Martin Senftleben

This report maps the impact of ShareAlike (SA) obligations and copyleft licensing on machine learning, AI training, and AI-generated content. It contributes to an understanding of how ShareAlike and copyleft licensing conditions impact the development of AI models, the supply of AI systems and the use of AI output.

https://openfuture.eu/wp-content/uploads/2024/06/Share-Alike-and-ML-Report-FINAL.pdf

# reads: The Lost Art of Structure Packing - Eric S. Raymond

  • self alignment:

    each type except char has an alignment requirement; chars can start on any byte address, but 2-byte shorts must start on an even address, 4-byte ints or floats must start on an address divisible by 4, and 8-byte longs or doubles must start on an address divisible by 8. Signed or unsigned makes no difference.

  • ANSI C provides an offsetof() macro which can be used to read out structure member offsets (but is it ANSI only?)

… fuck me…: http://www.catb.org/esr/structure-packing/

# I need to learn about the DWARF debugging format

The headache: I maintain a software that uses a rather old (I mean >= 3 years behind mainline release) of libdwarf and it uses APIs that have been marked “planned obsolescence, use alternative xyz” for years. Well, you guessed it, we didn’t care. And boom, the upstream just removed the old APIs and the project fails to compile.

Now I need to replace the old APIs, but the new ones are not drop-in replacements. So I need to compare old and new documentations to make sure the software is functionally consistent. And… docs of the old APIs are brutally nuked and their official documentation site doesn’t provide historical versions. I have to filter the whole git log to pin down the APIs changes and their docs. Thankfully the upstream is doing a good job in keeping all the changelogs and writing conventional commit messages.

bonus: the upstream dev dropping obsolete APIs: upstream devs dropping api

[alt text]

This is a meme picture made from the movie The Hitchhiker’s Guide to the Galaxy. A Vogon dubbed “library developer” intimidates Arthur dubbed “downstream developer” with “dropping obsolete APIs” and says: There’s no point in acting surprised about it. All the obsolescence plans and warnings have been on display in your build messages for 50 of your Earth years, so you’ve had plenty of time to lodge any formal complaint and it’s far too late to start making a fuss about it now. … What do you mean you’ve never care about the warnings? Oh, for heaven’s sake, mankind, it’s only two lines of messages, you know. I’m sorry, but if you can’t be bothered to take an interest in upstream affairs, that’s your own lookout. Energize the git commit.

# reads: misc

# window manager pipe dream

I once rant about manual tilling window manager. The biggest issue is the convoluted layers of layouts.

What are there and why I use them:

  • the tilling window manager splits the screen: that’s the fundamental of my graphic environment.
  • the tmux splits the terminal: mostly I use it to multiplex a remote SSH sesison when I work on a server. Less frequently I use it to “stash” some local workspace.
  • vim splits its editor window

Here is what I want: use tmux to manage everything: one single level of control for all the splits…. I may develop on the idea in the future. One “wild” idea is to turn tmux into a wayland window manager.

# software

the translate shell. Really nice commandline translation tool (most importantly I can pipe strings to it).

stardict and its cli version [sdcv] (https://dushistov.github.io/sdcv/). There are some dictionaries available in the AUR. The wikitionary is very nice. I’m using this wrapper script

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/usr/bin/sh
# some dicts have leftover html tags/encodings, we strip them with sed.

SDCV_PAGER='less --quit-if-one-screen -RX' \
sdcv -n --utf8-output --color "$@" 2>&1 | \
    sed -e 's/&lt;/</g'     | \
    sed -e 's/&gt;/>/g'     | \
    sed -e 's/&quot;/"/g'   | \
    sed -e 's/<\/p>/\n/g'   | \
    sed -e 's/<ol>/\n/g'    | \
    sed -e 's/<li>/-> /g'   | \
    sed -e 's/<\/li>/\n/g'  | \
    sed -e 's/<[^>]*>//g'   | \
    fold --width=$(tput cols) | \
    less --quit-if-one-screen -RX
[+] click to leave a comment [+]
the comment system on this blog works via email. The button
below will generate a mailto: link based on this page's url 
and invoke your email client - please edit the comment there!

[optional] even better, encrypt the email with my public key

- don't modify the subject field
- specify a nickname, otherwise your comment will be shown as   
  anonymous
- your email address will not be disclosed
- you agree that the comment is to be made public.
- to take down a comment, send the request via email.

        
>> SEND COMMENT <<
[BITS] - the weekly archive -
bits 0x54 - Week 35~?, 2024 (WIP)
bits 0x53 - Week 28~35, 2024
bits 0x52 - Week 17~27, 2024 [VOID]
bits 0x51 - Calender Week 17, 2024
bits 0x50 - Calender Week 16, 2024
bits 0x49 - Calender Week 15, 2024
bits 0x48 - Calender Week 14, 2024
bits 0x47 - Calender Week 13, 2024
bits 0x46 - Calender Week 12, 2024
bits 0x45 - Calender Week 11, 2024
bits 0x44 - Calender Week 10, 2024
bits 0x43 - Calender Week 09, 2024 [VOID]
bits 0x42 - Calender Week 08, 2024 [VA]
bits 0x41 - Calender Week 07, 2024 [VOID]
bits 0x40 - Calender Week 06, 2024 [VOID]
bits 0x39 - Calender Week 05, 2024
bits 0x38 - Calender Week 04, 2024
bits 0x37 - Calender Week 03, 2024
bits 0x36 - Calender Week 02, 2024 [VA]
bits 0x35 - Calender Week 01, 2024
bits 0x34 - Calender Week 52, 2023
bits 0x33 - Calender Week 51, 2023
bits 0x32 - Calender Week 50, 2023 [VOID]
bits 0x31 - Calender Week 49, 2023
bits 0x30 - Calender Week 48, 2023
bits 0x2f - Calender Week 47, 2023
bits 0x2e - Calender Week 46, 2023
bits 0x2d - Calender Week 45, 2023
bits 0x2c - Calender Week 44, 2023
bits 0x2b - Calender Week 43, 2023
bits 0x2a - Calender Week 42, 2023