I just disabled this today and life is so much better. Thanks! Everything works so much better now.
There are a lot of other helpful replies in this thread, so I won’t add much, but I did find this reference, which you could read if you have a lot of free time. But I particularly liked reading this summary:
- _start calls the libc __libc_start_main;
- __libc_start_main calls the executable __libc_csu_init (statically-linked part of the libc);
- __libc_csu_init calls the executable constructors (and other initialisatios);
- __libc_start_main calls the executable main();
- __libc_start_main calls the executable exit().
Reserving main
is definitely more hacky. Try compiling multiple objects with main
defined into a single binary - it won’t go well. This can make a lot of testing libraries rather convoluted, since some want to write their own main
while others want you to write it because require all kinds of macros or whatever.
On the other hand, if __name__ == "__main__"
very gracefully supports having multiple entrypoints in a single module as well as derivative libraries.
Is it? I really don’t think so. What can you propose that’s better? I think if __name__ == __main__
works perfectly fine and can’t really think of anything that would be better.
And you don’t have to use it either if you don’t want to anyway, so no, I don’t think it’s that much of a hack. Especially when the comic compares C as an example, which makes no sense to me whatsoever.
Can you put some milk on the algorithm please?
You’re right, but I think the main reason companies like it is because it’s easier to get rid of contractors than full-time employees.
Vim when I can, and when I can’t, Neovim with plugins (LazyVim). Both are fast. I have had troubles with Neovim and configuration, and it does some things that really annoy me (like autoclosing parentheses - it just messes up everything). Honestly, the only feature that I really need is Go To Definition.
But vim - I absolutely love it. I started using it nearly 20 years ago and it still does everything one could want if you’re willing to learn the keymaps and commands. Macros, ci)
, block indentation and so on. It’s even great for editing XML. If the codebases I’m working on these days weren’t so large and complicated, I would still be using it with very little configuration in my .vimrc
.
I’ve never had the chance to use a functional language in my work, but I have tried to use principles like these.
Once I had a particularly badly written Python codebase. It had all kinds of duplicated logic and data all over the place. I was asked to add an algorithm to it. So I just found the point where my algorithm had to go, figured out what input data I needed and what output data I had to return, and then wrote all the algorithm’s logic in one clean, side effect-free module. All the complicated processing and logic was performed internally without side effects, and it did not have to interact at all with the larger codebase as a whole. It made understanding what I had to do much easier and relieved the burden of having to know what was going on outside.
These are the things functional languages teach you to do: to define boundaries, and do sane things inside those boundaries. Everything else that’s going on outside is someone else’s problem.
I’m not saying that functional programming is the only way you can learn something like this, but what made it click for me is understanding how Haskell provides the IO monad, but recommends that you keep that functionality at as high of a level as possible while keeping the lower level internals pure and functional.
but I no longer believe that it is possible to build a competitive federated messenger at all.
The fact that we have a telephone system that works with separate providers contradicts this sentiment. If I want to pick up the phone and talk to my cousin’s puppy in New Zealand, I can do that without creating an account on his provider’s service.
I don’t understand why we’ve forgotten this as a society. Yes, it was difficult to upgrade the phone systems over the past century, but it’s worth it in my opinion. I really wish we’d start seeing government regulation that says “you should be able to talk to someone on a service without having to create an account on said service.” I thought the DMA would do this, but sadly, Whatsapp still requires an account to talk to people using that service. Very disappointing.
This has always been the whole point behind the Trojan Horse that is systemd. Now that Poettering/Red Hat control the entire userspace across virtually all distros, he/they can use it as a vehicle to force all of them to adopt whatever bullshit he thinks of next.
This is what the Linux ecosystem gave away when they tossed their simple init system to adopt the admittedly convenient solution that is systemd. But in reality, the best solution was always to drop init
, and instead replace it with an alternative that was still simple to replace if the need should arise. But now that everyone is stuck on systemd, they’re all at the mercy of Poettering’s Next Stupid Idea.
Convenience comes at a price. systemd is the Google Chrome of Linux userspace. Get out while you can.
Indeed, Reddit was a great example of this. All of the stupid things they tried to pull off in the past few years (selling user data, turning off the API, insulting their users, VPN blocking, to name a few) would have not worked when they were a growing website. Now that they have so many low quality users, they can do that successfully because they know that said users are too dumb to realize how they’re being abused. Even larger websites like Twitter and Facebook operate this way.
The takeaway here is: don’t focus on having many users, focus on having good users. All relationships are a two-way street, and if you’re on the side of the street with too many people, you don’t have any personal leverage on your own. It’s in your best interests to get out of that relationship.
In some countries, there are already.
In others, it will be up to courts to decide whether this is illegally firing staff. That said, good luck getting equal legal representation to these trillion-dollar companies.
So yes, basically, it’s legal.
But part of the appeal of Linux is the fact that you can repurpose existing computers running other OSes to run Linux instead. This is a great way to lower the barrier to entry for Linux, because it’s easy to test it on a Live USB or a dual boot. It’s much harder to do this on phones because they have locked bootloaders.
Another problem is that phones are not productivity devices - they’re consumption devices. Maybe this is just my personal bias, but I don’t think people will be as passionate about liberating their phones because they’re inherently less useful than computers. Convenient, yes, but useful? Not as much.
That said, I would love to be proven wrong. I would definitely consider a Linux phone if they become more popular/useful, but I can’t really justify spending hundreds of euros/dollars on something for which I don’t see any particular use.
Great to see, but are there punitive damages too, or even charges for interest? Because if not, then they’ll just keep trying to pull stunts like this off again and again.
(My guess is that there isn’t because it involes a deal with Ireland, but I would love to be proven wrong.)
The biggest theft in history, even.
Why is nobody talking about this?? Oh yeah, because it’s okay when our planetary overlords do it. Let’s imprison some more homeless people for stealing bread instead!
That looks like a really nice policy. But my question then becomes, what happens if the company sells out someday? What if they get bought out by a larger company, or a private equity firm? Did they take funding, and if so, how much leverage do the funders have to influence them to make money and cut out programs like this?
It’s great to see companies trying to break that trend and I highly commend them for it! But we have already seen this pattern a million times before and it always ends due to something similar to this.
I agree, I don’t think they have any limit. Look at how invasive platforms like Facebook are, and yet they’re still massively popular. Mobile operating systems are several times worse than Windows is for privacy and data harvesting, and people clearly don’t care at all. They’ll even happily consent to ever more levels of it - there’s no evidence to suggest that they’ll ever stop.
One of the biggest “mistakes” Microsoft made was not realizing how lucrative data collection could be. Back in the quaint old days of early PC computing, spyware was actually considered a bad thing. When Google came along, that philosophy was flipped on its head. Over the past 15 years, Microsoft has seeing what these spyware vendors are doing and salivating because they know that they are still the kings of computing - they still have total control the PC market and there’s a good chance that it’s not really going anywhere because most people hate change - even though Linux is starting to make inroads in quite a few places.
It would not be surprising if, in a few years, a Windows OS looks like a Google search page, or a cable television channel.
Not necessarily! I always run ln -s '/usr/bin/$EDITOR' $(which $EDITOR)
after a fresh install, so I have a valid executable on the path called $EDITOR
.
Of course, then I have to make sure to add export EDITOR=\$EDITOR
to my .bashrc
. (Obviously.)
And this is why I’m perfectly happy with Lemmy being the size that it is. There certainly are trade-offs - I wish niche communities were bigger - but is it worth bringing in all the other crap that comes in, like all the shit you see on Twitter? No, in my opinion.
100% agree. But I like posting articles like these because it brings me back to how I learned programming, and Linux specifically - namely by reading a bunch of articles from similar link aggregators and sharing sites.
My hope is that sharing articles like these is a form of planting the seeds for another cycle for people to learn the way that I did.