I'm a bit skeptical that a borrow checker in C++ can be as powerful as in rust, since C++ doesn't have lifetime annotations. Without lifetime annotations, you have to do a whole program analysis to get the equivalent checks which isn't even possible if you're e.g. loading dynamic libraries, and prohibitively slow otherwise. Without that you can only really do local analysis which is of course good but not that powerful.

Lifetime annotations in the type system is the right call, since it allows library authors to impose invariants related to ownership on their consumers. I doubt C++ will add it to their typesystem though.

[-] zygo_histo_morpheus@programming.dev 120 points 2 months ago* (last edited 2 months ago)

I'm surprised that no one seems to have brought up curl, which is maintained by Daniel Stenberg who is Just Some Guy™

Yeah the title of the post makes it sound much worse than what it seems to be in practice? Maybe I'm just naive

Looking at the example

Why does the generated bash look like that? Is this more safe somehow than a more straighforward bash if or does it just generate needlessly complicated bash?

Download a popular movie and keep your computer on for a while 🤷‍♂️

Although, seeding stuff that isn't popular is also important. I don't know what you're seeding but if no one is leeching maybe there aren't a whole lot of other people seeding either. When someone does leech, they might be very happy that you're there keeping that one torrent alive.

Dark UX is more like features that are intentionally misleading, enchitification is making your product worse in order to be able to make money of it.

Haskell. I think that more people being familliar with Haskell concepts would be good for programing culture and it would increase the odds of me being able to write Haskell professionally, which is something I enjoy a lot when writing hobby code at least. Having more access to tooling and a bigger eco system would be nice as well.

I'm not a 100% sure about my answer though. For one, I might grow to resent Haskell if I had to use it at work, and there's also a risk that it would be harder to do cool innovative stuff with the language when more big companies depend on it.

Another accessibility reason for tabs: when using a braille display, each space takes up one character cell, so indenting with four spaces eats up four cells. Indenting three times with four spaces each eats up 12 characters already. Tabs only take one character cell each, so three indents = three character cells used.

The fact that there (I assume?) isn't a braille oriented text editor that can handle space-based indentation in a smarter way is a bit depressing. Maybe the solution should be better tools based around accessibility rather than convincing everyone to switch to tabs, which is a project that will just never succeed.

[-] zygo_histo_morpheus@programming.dev 31 points 1 year ago* (last edited 1 year ago)

Is there any way mastodon stands out from other self hosted websites? Would the CSAM material be harder to distribute or easier to prosecute if they ran, say, a self-hosted bulletin board for it instead?

I think that there are many potential causes, but I would like to add monopolization to the list.

Usually, a bad release spelled the demise of a company, because release times were so long that competitors could take advantage of a bad software release.

People aren't going to switch from windows because they release something bad or buggy, in that case it would already be dead. Windows isn't technically a monopoly, but they have a lot of inertia and there are many programs that only run on windows that people depend on. There is perhaps a limit to how bad windows can be before people abandon it en masse, but they can get away with a lot. The tech world is full of different companies and programs that are in monopolistic-ish positions.

As a terminal fan, my main reasons for preferring them over a gui (for some tasks) are:

  1. It's faster to type than to navigate menus
  2. If I don't know where something is and can't guess it instantly, it's usually faster to search for it in a man page than randomly digging through gui menus
  3. You can combine commands with each other with pipes or $()
  4. You can search through your command history to find previous commands
  5. You can write scripts and aliases to automate common tasks
  6. The terminal requires less context switching. Typing ten commands is less mentally taxing than opening ten different guis

The barrier for entry is higher with terminals but unless you need visual feedback (e.g. because you're editing an image) it's easier and faster for both common and rare tasks.

A monad isn't "a thing", it's a common interface shared by several different types that have a common mathematical structure that happens to be useful for structuring programs around. I think that's why it's so confusing to people, other programming languages tend to not have as abstract abstractions front and center.

view more: next ›

zygo_histo_morpheus

joined 1 year ago