Technologique
729 subscribers
143 photos
3 videos
42 files
905 links
Deeply involved developers about various aspects, tendencies & conceptions of programming technologies, FLOSS, Linux, security, cloud infrastructures & DevOps practices, distributed systems, data warehousing & analysis, DL/ML, web3, etc.
Author: @andrcmdr
Download Telegram
The former Rust team lead and Rust's main core developer Niko Matsakis was employed by Amazon, but will continue working on Rust

https://smallcultfollowing.com/babysteps/blog/2020/12/30/the-more-things-change/

There are a lot more to come in 2021 to the Rust Foundation!

#Rust
The process of creation and formation of Rust Foundation is finally done!

https://foundation.rust-lang.org/posts/2021-02-08-hello-world/

#Rust
One step to more wide application of Rust in aerospace sphere!
Obviously, there're a lot more things should be done to use Rust even more widely, espesially for embedded systems. For example, fault tolerance to run-time memory allocation exceptions in stdlib collections, dealing with infallible methods (panic on allocation failure in operations with collections), error handling, and process recovering, after alloc errors, not yet fully supported in Rust stdlib's collections API (see this issue: containers should provide some way to not panic on failed allocations · Issue #29802 · rust-lang/rust · GitHub)
But the Genie is already out of the bottle!
More things to come and that's will be huge!

https://github.com/CIUDSE

#Rust
Rust release 1.59.0

https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html

Be aware that incremental compilation now off by default and should be enabled explicitly via set RUSTC_FORCE_INCREMENTAL=1 environment variable.

What's new:

Cargo and rustc now support stripping when the binary is linked, this can be enabled in Cargo.toml.

In generic types default values for const generics can be specified now.

Inline assembly in unsafe blocks via asm! macro.

#Rust
Have you remember (or am I just oldie here) the story behind Firefox versus Iceweasel in Debian Linux distro? And how many years it was take for resolution of that situation for community?

Looks like Mozilla lawyers in Rust Foundation made the same for Rust name, logo and branding. They successfully thrown shit on a fan again.

This is bad for community, open source and projects, which are based on Rust language and bad for wide spreading and mass adoption of Rust language.

It's time to make a fork of Rust language compiler, consolidate community efforts on it and name it TRUST with Ferris logo. =) This way it will conform with FLOSS spirit.

(And looks like I should now unstick my favourite violet Rust logo from my old Thinkpad laptop.)

https://youtu.be/gutR_LNoZw0

#Rust
#RustLang
eBPF: Unlocking the Kernel

Documentary about the development process of #eBPF subsystem for #Linux by the Linux kernel hackers all over the world - the executor (#VM and #JIT compiler) of extended #BPF bytecode to run system programs safely in a kernel space and use Linux kernel API and system calls (including #POSIX).

This simplified the development of programs integrated with the Linux kernel in a better way, so cloud native landscape with cloud infrastructure development has been changed forever!

https://youtu.be/Wb_vD3XZYOA

BTW, #Rust compiler has a eBPF backend, already proved for production grade programming and compilation, and has a bunch of good frameworks for developing for the Linux kernel using eBPF VM host functions interfaces.

#Rust
#RustLang
#Linux
Uncontrolled type conversions and forced type coercion can be dangerous, affect your codebase and make high financial harm to your product, even if you're using memory secure programming language like Rust!

https://lapitsky.com/how-to-get-paid-800k-for-a-clippy-warning/

(Enable all Clippy warnings in your CI and locally! It can saves you from harm!)

#Rust
#WASM
And here are another articles by the author from this series with more deep takes and better reasoning in comparison apples to apples, i.e. Rust and C++:

https://lucisqr.substack.com/p/quants-use-rust-devs-use-c

https://lucisqr.substack.com/p/move-semantics-and-low-latency-programming

https://lucisqr.substack.com/p/the-c-technique-that-slashes-rusts

Overall, I prefer to use move semantics by default, with explicit ownership transfer, with explicit copies and cloning, with immutability and locality for everything by default, with lifetimes (for region based memory management, with exclusive RCs, rather than GCed memory) tied to local scopes, to ownership transfers and to borrowing by reference (either one mutable or many immutable) - all of this prevents of easy creation of whole class of issues and vulnerabilities related to operations with allocated memory, as dangling pointers, use after free, undefined behavior for dangling pointers and use after free, memory leaks (mostly, but not always, due to logical possible issues in code), shared mutable states and data races, especially in concurrent and multi-threaded code (search for fearless concurrency with Rust), and, what's mostly important, all of this in compile time, with strongly typed safety guarantees.

And many other modern programming things too - functional approach (first class functions, Fn, FnOnce, FnMut traits), Ord and Eq traits for ordering and equality checks for data types, iterators, generators and streams, pattern matching, futures and channels for asynchronous code with deferred computations, trait based ad-hoc polymorphism (with compile-time monomorphization) and generics (with even higher kinded types!), dyn traits for dynamic dispatching, as an exception, rather than the rule, and this fair as well for unsafe local blocks (which gives only reasonable type system relaxation, for only five options, needed for more deep systems development and optimizations, mainly raw pointers dereferencing , all options listed here https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html, but unsafe mode inside particular local blocks not turns off borrow and ownership checker inside of unsafe blocks! only one owner allowed, with ownership transfer, with same rules for borrowing via references and for scope/ownership/borrowing based lifetimes!), and many many more wonderful things!

#Rust
#CPP
Expansion of Rust language application in aerospace sphere.

Rust already widely applied for hard real-time systems - DAW (digital audio workstation), HFT (high frequency trading), industrial system, but also for automotive and aerospace vehicle systems, like autopilots, space orientation and telemetry. In such systems a stable latency and reaction time should be provided, which means every operation should take only exact amount of time.

And now the new hard real-time subsystem (with more wide abilities than Linux RT patch-set) for Linux, RROS, which working along with Linux kernel, is used for running real-time software for on-board systems on the new recently launched China satellite.

'Cause Rust gives a system access level to work with the hardware, same as C language provides, but also powerful yet simple abstractions and smart-pointers, as C++ language provides.

https://bupt-os.github.io/website/news/2023_12_9/satellite_launch/

https://github.com/BUPT-OS/RROS

https://github.com/BUPT-OS/RROS/tree/main/rust

Other post on this topic in my blog in Telegram:

https://teleg.eu/technologique/1540

https://teleg.eu/technologique/1512

https://teleg.eu/technologique/1524

#Rust
#Linux
#RTOS
#aerospace
#automotive
Async functions and impl Trait in return position in traits.

Asynchronous functions and impl Trait (type which implements that particular trait) in return position for traits are finally stabilized and delivered in Rust stable branch! 🥳🎉🎊🍾

https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html

#Rust
#RustLang
That's the real thing guys! A better code editor, faster and even more responsive than Sublime Text, better than VSCode. Best for #Rust developers. Moreover, it's written in Rust! Check it out! I was pretty skeptical, but it turns out to worth tried out something new, revisiting my tools for daily routines working on code and change something for the better comfort, productivity, and a better developer experience!

https://github.com/zed-industries/zed

https://zed.dev

BTW: Zed is made by the creator and developers from the Atom team. They know how to deliver best developer experience.
And all that responsiveness are delivered by new UI framework, which built like a game engine, to utilize hardware video acceleration for UI rendering to the fullest!
And when you have more responsive interaction with UI - the work became more joyful! =)

PS: Yep, I'm still using VSCode+RLS/Rust-Analyzer as my daily driver for production development, Sublime Text for quickly edit small files or large files with regexps and multiple cursors (power cursors plugin - still missing point in vim/nvim, although same is reachable with macroses) and vim/nvim/tmux for work with remote servers with restricted environment through ssh.
Best Bluetooth Speaker Sound Quality