I think that’s still closed, just poorly done in a way that isn’t very accessible.
I think that’s still closed, just poorly done in a way that isn’t very accessible.
That’s what burned in means.
I added an extra line break, but it already looked fine in the default webview and in Jerboa. Normally lists don’t need line breaks around them.
For anyone who wants to know the difference between these terms:
It makes sense that if you’re designing a language, you’d like the language you made and would want to use it. It’s fine for compilers like that to exist, and even be the main one used, but ideally it shouldn’t be the only compiler.
But there are technically ways to bootstrap a language without writing it in another language (other than a small core in assembly or something). You could design a tiny compiler that only handles a small subset of your language, then write a better compiler using only the features available in that subset. You can do this for several layers of compilers until you have the full language.
That’s already how it is now, we just don’t usually think of it that way. You can’t compile rust unless you already have a rust compiler. The current version was compiled in a previous version, which was compiled in a previous version, going through a chain of older versions and other languages. Anything along that chain could’ve theoretically had an influence on the current compiler.
It’s not about the code itself being more trustworthy. The point is that when you bootstrap, you don’t have to blindly trust any of the binaries, since it’s source code the whole way down. Someone could bootstrap rustc like this, compare it to the binaries that already exist, and ideally they would be identical.
A lot of this bootstrapping stuff comes back to the ‘trusting trust’ attack. You could write a compiler that adds some malicious code to programs it compiles. But the thing is, it could also insert it’s own malicious code when compiling a compiler. So you look at your code, and the code of your compiler, and everything looks fine, but the exploit is still there. Someone wrote an example in rust.
Theoretically there could also be bugs that propagate this way. So to fully trust your code is doing what you think it is, you’d need a chain of compilers back to hand coded assembly.
Yeah, I wrote the wrong language. I tend to lump those together in my head as ‘big multi-paradigm languages I haven’t bothered to learn yet.’
You can technically do it, but it’s a convoluted path. The article talks about it. Basically to bootstrap that way you need to go through a lot of versions of rust, compile rust 0.7 in ocaml, compile ocaml in scheme, and compile scheme in C using gcc. For gcc you need to compile a chain of versions back to when it was written in C instead of C++, plus the whole TinyCC bootstrapping path.
edit: had listed scala instead of ocaml
The main thing is that TinyCC has already been bootstrapped.
Check out this page on bootstrappable.org. Basically they start with a 200 something byte binary (hex0) that can act as an assembler, then using a bunch of layers of tools and compilers you can bootstrap a whole system. I think they use stage0 to build M2-Planet, use that to build GNU Mes, and use that to build TinyCC.
So a project like this fits neatly into that bootstrapping path. It could be done other ways, but starting from a fairly complete C compiler makes it a lot easier than building an entire path from scratch.
If you’re looking for more sources for your site, Wikimedia Commons has a page with lists of sources for freely licensed media, sorted by content type. The photography list in particular is really long, and sorted into categories.
Cladistically dolphins are a type of toothed whale. They’re more closely related to species like sperm whales than toothed whales and baleen whales are to each other.
There’s still tons of people who will judge you for having children without getting married. A lot of religious groups still consider it a moral failure. And even if it was completely accepted now, it still became an insult in the first place because of that stigma, and you’d still be using it within that historical context. You can’t reclaim a slur by continuing to use it as an insult and ignoring where it comes from.
As an example, I’ve seen pretty many people use slurs for Romani people as a term for getting scammed or cheated. Usually they didn’t know the origin of the term, and didn’t mean any harm by it. They had heard it being used and assumed it was just another word. But you don’t just accept the definition these people have in their heads as an alternate definition, disconnected from the original. It has the meaning it does based on bigoted stereotypes, and by using it they’re still spreading that, even if they aren’t hateful themselves.
It usually implies it’s weird in an old-fasioned way though.
Hacker’s Keyboard hasn’t had a real release in about 5 years, so it can be slightly buggy.
Unexpected Keyboard is pretty good. It’s got the complete keyboard layout available including stuff like Control and Function keys, so I think it’s an acceptable replacement. It uses swipes to type other keys, which I’m not sure if I prefer, but it works well enough. I set the swipe distance higher because I would accidentally swipe from time to time.
If you check “I’m an advanced user” in the settings, then hit the “More” button in the dropdown a few times it’ll show the more advanced interface that lets you choose which third party domains to allow. It doesn’t work quite the same since it blocks both content and scripts per site, but I find it good enough for my usage.
edit: You can technically block just scripts per 3rd party site, but it involves manually editing the content type for your rules in the settings. It’s not part of the main interface, so I never bother using it.
UBlock Origin will block content within Firefox, and do a better job at it than AdAway. AdAway tries to block ads on the whole phone, including embeded ads in a lot of apps. But unless you root your phone, you can’t run AdAway and a VPN at the same time.
There’s a lot on PeerTube. You can search on sepiasearch.org and filter the results by license. fedi.video has a bunch of uploaded PD/CC videos.
GoToSocial is designed for small / single user instances. There’s more with similar goals like snac, seppo, pub, ktistec, tapir, shuttlecraft, activities.next, and microblog.pub, but I haven’t really looked into them so I’m not sure on the status of each. There’s a nice list of activitypub software at delightful fediverse apps if you want to look at more options.
There’s nothing quite perfect, so I still use ddg the most often. They do pull in most of their results from bing, but they also have their own crawler and use a bunch of other search engines as sources. At least they only send the search query to microsoft, so it’s better for privacy than searching directly on google or bing.
SearXNG is an open source meta search engine that compiles results from other search engines.
Marginalia and Clew are a couple of open source search engines that focus on only indexing smaller, independent, or non-commercial sites.
A lot of sites have their own search engines built in, so I’ll often search directly on sites like Wikipedia or Lemmy.
There’s a good overview of various search engines in this blog post.
I think they switched to usually using bing results last year. Their support site mentions they use both backends. I’d guess which one you get depends on which API is cheaper for each country.