aloso

@aloso@programming.dev

This profile is from a federated server and may be incomplete. Browse more on the original instance.

aloso,

Thanks!

Piping in a shell script should be doable, it just hasn’t been requested yet.

aloso,

It is well supported in all browsers and operating systems. At least VS Code and IntelliJ support it, and even some terminals.

aloso,

I don’t understand the “serde2” issue. Isn’t “someusername/serde” strictly worse than “serde2”?

GitHub being the only auth provider is something the maintainers wanted to fix, but didn’t have enough bandwidth to implement. I think they would welcome contributions!

aloso,

I can’t remember ever needing more than two question marks (??), and even that is very rare in my experience.

aloso, (edited )

If all you do in the Err(e) => … match arm is returning the error, then you absolutely should use the ? operator instead.

If the match arm also converts the error type into another error type, implement the From trait for the conversion, then you can use ? as well.

If you want to add more information to the error, you can use .map_err(…)?. Or, if you’re using the https://docs.rs/anyhow/latest/anyhow/trait.Context.html crate, .with_context(…)?.

aloso,

No it’s not, it is 100% a unit type (except it’s not really a type, since you can only use it as return type and nowhere else)

aloso, (edited )

It’s not possible to instantiate or assign, which is more like a never type than a unit

Actually, this is because void is not a type, it is just a keyword, a placeholder used instead of the return type when a function doesn’t return anything.

If it were a bottom type, that would mean that a method returning void must diverge, which is simply not true.

Also, if it were a bottom type, it would be possible to write an “unreachable” method


<span style="color:#323232;">void unreachable(void bottom) {
</span><span style="color:#323232;">    return bottom;
</span><span style="color:#323232;">}
</span>

Even though it couldn’t be called, it should be possible to define it, if void was a bottom type. But it is not, because void isn’t a bottom type, it’s no type at all.

aloso,
  • Svelte/Vue/React components need to be compiled
  • JavaScript should be minified if the project has a significant size
  • File names should have a content hash, so they can be cashed in the browser
  • Even with HTTP/2, there’s still a case to be made for bundling hundreds or thousands of JS modules into a single file for better performance
  • Bundlers give you a dev server with live reload and hot module replacement for great developer experience
  • Setting up Vite is really easy and requires minimal configuration (compared to Webpack, for example)

Let's talk about Zig

I have been reading about this new language for a while. It’s a C competitor, very slim language with very interesting choices, like supporting cross platform compilation out of the box, supports compiling C/C++ code (and can be used as a drop in replacement for C) to the point in can be used as replacement of ©make and...

aloso,

Easy interop with legacy code is how kotlin took off, so maybe it will work out?

Good interop was a requirement for widespread adoption, but not the reason why programmers want to use it. There’s also null safety, a much nicer syntax, custom DSLs, sealed classes, type inference, data classes, named and optional arguments, template strings, multi-line strings, computed properties, arbitrary-arity function types, delegation, custom operators, operator overloading, structural equality, destructuring, extension methods, inline functions and non-local control flow, reified types, …

Some of these features have since been added to Java.

aloso,

It gives you more type safety, because you use a ProxyᐸFooᐳ instead of just usize.

aloso,

Actually, it’s not a package repository (it doesn’t store crates), it’s “just” a website to display metadata from crates published on crates.io. It also shows certain information from docs.rs, GitHub, rustsec.org, etc, and has many useful features that the crates.io website lacks, including a pretty good full-text search.

aloso,

I’ve been using Manjaro with KDE for a few years now. It works smoothly, I never ran into any issues with it.

The pacman package manager is pretty nice, too, I found it faster and easier to use than apt-get, and the provided packages are always kept up-to-date. Updating the system (even installing a newer Linux kernel) is very simple and works reliably. So you always have the latest version of your apps, the kernel, and the DE.

In the rare occasion that a program is not available in the official repositories or the community-maintained AUR, you can also install snap or flatpak packages.

And since Manjaro is derived from Arch, you can use the Arch Wiki, which is very useful when you want to set up a database, use the android debug bridge, install another package manager, or do anything else less than trivial.

aloso,

Over the years people have developed an unbelievable number of coding languages. They all do pretty much the same job in pretty much the same way.

That’s one way to say that you don’t know a lot about programming languages.

Personally I have coded in Mercury Autocode, COBOL, FORTRAN, PL/1, LISP, Assembler, PERL, basic, C, C++ and JavaScript plus probably some others I have forgotten.

Sadly, there’s no functional language in this list except LISP.

JavaScript’s longevity is assured for one reason. Browsers only support JavaScript.

Incorrect, browsers also support WebAssembly, which allows many languages (including C, C++, Rust, zig, Go, and many more) to run in the browser. And even without WebAssembly, languages can be transpiled to JavaScript, so you don’t need to code in JavaScript to run your code in the browser. Languages that can be transpiled to JavaScript include TypeScript, CoffeeScript, Reason, Elm, PureScript, Dart, Kotlin, Scala, Nim, …

However JavaScript has a flaw.

Not just one. Every programming language is flawed. Some languages have no type safety, some have no memory safety, some have no thread safety (or no multithreading to begin with), some are too slow for certain applications, some have an incomprehensible or verbose syntax, most support only one (sometimes two) paradigms (functional / imperative / object-oriented / logical), some have no proper module system, or no control over mutability, or visibility, or memory allocation, or side effects… some lack ergonomic error handling, or cooperative multitasking facilities such as coroutines, or generators, or macros, or reflexion…

If you don’t appreciate the vast design space that is programming languages, of course you won’t understand why there are so many of them.

The creator of Pixelfed announced an upcoming encrypted messenger for the fediverse that will work across the fediverse (mastodon.social)

It will be open source, end to end encrypted using Signal’s double ratchet encryption protocol, and he plans to make it easy for fediverse platforms to integrate it. The beta will release later this month....

aloso,

“secure” is relative. They may not be e2e encrypted, but they are still encrypted via TLS, like any HTTPS traffic. It’s the same encryption used for online banking. If you care about your instance admin being able to read your messages, you should use Signal or a Matrix client though.

But remember that only a few years ago, almost nobody used e2e encryption, and it wasn’t much of an issue.

aloso, (edited )

The name “pull request” is actually more accurate, because you ask the upstream repository to git pull the changes from the downstream repo.

aloso, (edited )

Whenever possible, it’s recommended to work in a common Git repository and use branching strategies to manage your work. However, if you do not have write access for the repository you want to contribute to, you can create a fork.

A fork is a personal copy of the repository and all its branches, which you create in a namespace of your choice. Make changes in your own fork and submit them through a merge request to the repository you don’t have access to.

docs.gitlab.com/ee/user/…/forking_workflow.html

How is this different from GitHub?

Just to make sure there’s no misunderstanding: When I want to contribute to a project I’m not involved in, like inkscape, I’m not allowed to create a branch in their repo, so I have to fork it, which creates a copy of the repo, and sets the original repo as a remote.

Note that git is a distributed VCS that doesn’t distinguish between servers and clients. Forking and cloning are the same operation from a technical perspective, except when you git clone, the copy ends up on your local machine, and when you press the “fork” button, the copy is on a GitHub/GitLab server.

aloso,

I started another, even bigger flag at (960, 830). Feel free to help!

P.S. I also started an ace flag, a non-binary flag, with more to come :)

aloso,

Even if this was true in 2013, when this article was written, the more accurate answer today would be “it depends”.

In Rust, there are multi-threaded async executors implementing M:N threading (e.g. tokio), where M asynchronous tasks are mapped to N operating system threads. So when you await, the rest of the function may very well run in a different OS thread.

Swift also has async/await, and like tokio it uses multiple threads to run concurrent tasks in parallel (therefore using multiple OS threads).

Scala’s equivalent to asynchronous tasks are Promises, which can also run in parallel, as I understand it.

Kotlin doesn’t have async/await, but it has a similar concept, coroutines, which are basically a superset of asynchronous tasks. While Kotlin’s coroutines are single-threaded by default, there is a multi-threaded implementation, enabling truly parallel coroutines.

Go also uses coroutines (which it calls “goroutines”), which can use multiple threads.

C++ will soon get coroutines as well, which support multithreading to run coroutines in parallel.

aloso,

My Fairphone is 4 years old, it has been dropped on the floor (even hard surfaces like rocks and asphalt) countless times. It still works and looks like new. It has a protective cover that covers the edges, but not the screen or the back. It still survived all these years without a scratch.

aloso,

It is so frustrating when a conspiracy narrative is mixed with valid criticism, which ultimately only taints the criticism by association with the “conspiracy.”

aloso,

To be funny, a joke requires a grain of truth. Absurdity alone doesn’t make a good joke.

aloso,

The majority of aircraft pilot fatalities occur in crashes of privately owned planes and helicopters rather than on regularly scheduled commercial jet aircraft.

ishn.com/…/112748-top-25-most-dangerous-jobs-in-t…

By the way, most deaths aren’t reported on the news.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • khanakhh
  • mdbf
  • magazineikmin
  • modclub
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • Durango
  • tacticalgear
  • JUstTest
  • ngwrru68w68
  • everett
  • normalnudes
  • cubers
  • tester
  • thenastyranch
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • megavids
  • anitta
  • Leos
  • lostlight
  • All magazines