Turned off Google Play Services and Google Play Store since the purchase of a new smartphone & set up F-Droid. Everything just works with much less storage space used (for some reason most proprietary apps from Play store usually come together with ~200 MB of bloatware). I tried to flash a custom ROM, as Sony provides instructions for that, but the build is failing, and I don’t want to sacrifice the proprietary Sony image-enhancing algorithms. So I’m just sticking with the Google Android but no Play Services option.
There was an attempt to make LibreSignal fork without Google’s ‘Play’ services, and Signal chief suspended the project telling it’s a violation to use Signal backend with unofficial Signal forks. https://github.com/LibreSignal/LibreSignal That’s a shame, really. Even Telegram with its closed-source backend allows people to use it with unofficial clients. There is another fork of Signal, Session. But I haven’t heard anything about it for a while. So I suggest to consider for some alternative to Signal. Matrix gang rise up.
IMO, what is good for open-source web solutions, is that, if someone doesn’t like the vanilla frontend, one can write a new community-based frontend as a web, desktop or mobile solution, like Whalebird. It greatly expands user’s choice and it is a good selling point but goes unnoticed.
Regarding new features, it is a matter of the communitations’ protocols (ActivityPub, etc.) New features should comply with the specification and not introduce platform-specific ‘spin-offs’ as they would threaten the maintainability of the protocol and interoperability between platforms and in the long way ruin the whole fediverse. However, I have not read the specification of ActivityPub and what it can do. Maybe I have to try it first because it looks very promising.
Interesting. DDG has been my primary preference since I boycott Google (search, Gmail, Play & Play Services) in 2020. I know SearX, I use it sometimes for research, but I want to get sure how metasearch works. I struggle to find information whether it ‘crawls’ and caches all the information from search engines, such as Google, Bing, DDG, Qwant, etc., on its server, or does it just pass your search query to these search engines and sums it up, like StartPage. But if DDG is just another nonfree metasearch, as you say, then it does not matter.
There is const char*
that should be added to list.
As far as I remember, Win32 API (C-compatible C++) used to add more complexity: wchar_t*
, LPSTR
, LPCSTR
, LPWSTR
, LPCWSTR
, LPTSTR
, LPCTSTR
as they preferred 16-bit strings over UTF-8. These were supposed to be independent safe ANSI/Unicode string wrappers. Sick.
A bit more generic answer not fixed to Rust.
Python is an interpreted language, C# is compiled to intermediate language which is executed by runtime (.NET or Mono). In contrast, Rust is compiled directly to machine code and therefore it is more complicated language (although it’s fun). I would recommend you to start learning C++ or even C first because much is needed to be understood about how your code is translated to the machine code, how memory works, e.g. what is a pointer, what is static allocation, what is dynamic allocation, why dynamically allocated pointers should be freed after use. In Python and C#, all the memory is managed by the Garbage Collector (GC), whereas in C/C++, the user should free memory manually. Moreover, Rust takes a lot of design from C/C++, such as automated placement of destructors (C for primitives, C++ for objects), fat pointers (a safer way to use C-style pointers), etc. And keep in mind that Rust is not a fully object-oriented language (i.e. objects cannot inherit objects but can inherit ‘traits’, or ‘interfaces’ in C#). To sum up, in your place, I would install Dev-C++ or some other IDE and start learning down from the lowest level, and only when I’ve understood C and C++ well, then I would jump to Rust.
Free C resources: https://notabug.org/koz.ross/awesome-c#learning-reference-and-tutorials
Free C++ resources: https://github.com/fffaraz/awesome-cpp#videos
Standard library reference: https:/cplusplus.com and https://en.cppreference.com/
For practice, try to solve some problems from competitive programming archives: https://open.kattis.com/ or https://codeforces.com/problemset They accept all languages.
TL;DR Begin with C++ first, learn about memory, then start with Rust, your learning curve will go much smoother.