Nobody can be surprised. I don't even use discord and know of the stuff you can buy to make you seem cooler. People will buy anything to feel superior to others.
Meanwhile: vim and Emacs users, constantly installing and configuring plugins to emulate a fraction of the power of IDEs, go "just use vim/Emacs".
Did they resolve their issue with that other company? I can't remember what was going on but the owner of automattic was pissed about them not contributing back or something? Did something change?
Anything built on top of atproto I tend to distrust. Doesn't it all hinge upon the makers of bluesky hosting their central node for it to work?
EDIT: It does work. My (GNU) libc spits out version info when executed as an executable.
How does that work? There must be something above ld.so
, maybe the OS? Because looking at the ELF header, ld.so
is a shared library "Type: DYN (Shared object file)"
$ readelf -hl ld.so
ELF Header:
Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - GNU
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x1d780
Start of program headers: 64 (bytes into file)
Start of section headers: 256264 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 11
Size of section headers: 64 (bytes)
Number of section headers: 23
Section header string table index: 22
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000db8 0x0000000000000db8 R 0x1000
LOAD 0x0000000000001000 0x0000000000001000 0x0000000000001000
0x0000000000029435 0x0000000000029435 R E 0x1000
LOAD 0x000000000002b000 0x000000000002b000 0x000000000002b000
0x000000000000a8c0 0x000000000000a8c0 R 0x1000
LOAD 0x00000000000362e0 0x00000000000362e0 0x00000000000362e0
0x0000000000002e24 0x0000000000003000 RW 0x1000
DYNAMIC 0x0000000000037e80 0x0000000000037e80 0x0000000000037e80
0x0000000000000180 0x0000000000000180 RW 0x8
NOTE 0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
0x0000000000000040 0x0000000000000040 R 0x8
NOTE 0x00000000000002e8 0x00000000000002e8 0x00000000000002e8
0x0000000000000024 0x0000000000000024 R 0x4
GNU_PROPERTY 0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
0x0000000000000040 0x0000000000000040 R 0x8
GNU_EH_FRAME 0x0000000000031718 0x0000000000031718 0x0000000000031718
0x00000000000009b4 0x00000000000009b4 R 0x4
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RW 0x10
GNU_RELRO 0x00000000000362e0 0x00000000000362e0 0x00000000000362e0
0x0000000000001d20 0x0000000000001d20 R 0x1
The program headers don't have interpreter information either. Compare that to ls
"Type: EXEC (Executable file)".
$ readelf -hl ls
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x40b6e0
Start of program headers: 64 (bytes into file)
Start of section headers: 1473672 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 14
Size of section headers: 64 (bytes)
Number of section headers: 32
Section header string table index: 31
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
PHDR 0x0000000000000040 0x0000000000400040 0x0000000000400040
0x0000000000000310 0x0000000000000310 R 0x8
INTERP 0x00000000000003b4 0x00000000004003b4 0x00000000004003b4
0x0000000000000053 0x0000000000000053 R 0x1
LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000
0x0000000000007570 0x0000000000007570 R 0x1000
LOAD 0x0000000000008000 0x0000000000408000 0x0000000000408000
0x00000000000decb1 0x00000000000decb1 R E 0x1000
LOAD 0x00000000000e7000 0x00000000004e7000 0x00000000004e7000
0x00000000000553a0 0x00000000000553a0 R 0x1000
LOAD 0x000000000013c9c8 0x000000000053d9c8 0x000000000053d9c8
0x000000000000d01c 0x0000000000024748 RW 0x1000
DYNAMIC 0x0000000000148080 0x0000000000549080 0x0000000000549080
0x0000000000000250 0x0000000000000250 RW 0x8
NOTE 0x0000000000000350 0x0000000000400350 0x0000000000400350
0x0000000000000040 0x0000000000000040 R 0x8
NOTE 0x0000000000000390 0x0000000000400390 0x0000000000400390
0x0000000000000024 0x0000000000000024 R 0x4
NOTE 0x000000000013c380 0x000000000053c380 0x000000000053c380
0x0000000000000020 0x0000000000000020 R 0x4
GNU_PROPERTY 0x0000000000000350 0x0000000000400350 0x0000000000400350
0x0000000000000040 0x0000000000000040 R 0x8
GNU_EH_FRAME 0x0000000000126318 0x0000000000526318 0x0000000000526318
0x0000000000002eb4 0x0000000000002eb4 R 0x4
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RW 0x10
GNU_RELRO 0x000000000013c9c8 0x000000000053d9c8 0x000000000053d9c8
0x000000000000c638 0x000000000000c638 R 0x1
It feels like somewhere in the flow there is the same thing that's happening in python just more hidden. Python seems to expose it because a file can be a library and an executable at the same time.
Can someone explain to me how to compile a C library with "main" and a program with main? How does executing a program actually work? It has an executable flag, but what actually happens in the OS when it encounters a file with an executable file? How does it know to execute "main"? Is it possible to have a library that can be called and also executed like a program?
Why? "Because everybody else does" is the most common excuse. Microsoft could be physically rawdogging people's fathers and it wouldn't matter. Belong to the "in" crowd is what matters for most people. Can't forget "idgaf" either.
You could be the most hard-left, anti-capitalist, anarchist person on the planet and still host your project on Github. In fact there are such people on Github.
Until an alternative becomes popular, early adopters of forgejo, sourcehut, radicle, and others have to proselytise their platforms. Things just don't change otherwise.
They weren't already? The amount of money they shuffle around and the megalomaniacal ideas they have that are just dreams of complete control (their own towns, cities, islands, with their own currency and so on), this cannot be surprising. I'm honestly surprised it wasn't already what they were doing.
Awesome, we're going towards a future where, just like cars, all code will look the same and do nothing really new. Maybe it will make opensource more interesting as it will be the true place for innovation and new code that isn't just copy-pasted from yet another LLM.
If you click the link, you'll see that Rust projects are no exception in their use of MIT. Do you believe other programming language communities also just care about spreading?
Where are you applying? Is it only locally for in office or hybrid jobs? I said "fuck it" and applied worldwide: Japan, Singapore, Portugal, Switzerland, Australia, Thailand, Canada, South Africa, Fiji, etc. You'd be surprised how many are actually willing to provide a work visa for candidates.
Also, if you're willing to move or just work remotely, there are many more options. I was open to seeing a different place and so far that's been to my advantage.
Relocateme, ethicaljobs, jobsforgood, ratracerebellion, 4daywork(week), offerzen (post your profile and let employers find you), remote dot com, and other sites all make this kind of stuff possible.
Anti Commercial-AI license