Over the decades, Humans have proved to be pretty bad at producing bug-free software
What if we could have an always available companion that would help us to avoid bugs in our software before they reach production?
Building a crawler in #Rust [4/6]
Now that we have a fast concurrent crawler in Rust, it's time to actually parse the HTML and turn it into structured data (remember, this process is called scraping).
📖 https://kerkour.com/rust-crawler-scraping-and-parsing-html
I recently learned about the existence of the NPM ci command, so I wrote a short summary about the differences between NPM install and NPM ci
Is it time to rewrite everything in Rust?
#Rust is seen by many as the least bad #programming language but is still far from perfect.
So here is what I think it would take to make it the "perfect" language
Last week we saw which language's features we are going to use to implement our crawler in Rust, so today we start to actually implement it 👨💻
There is no one month without some popular dependencies found to be compromised or backdoored.
Let see how hackers get write access to software packages in practice 👉 https://kerkour.com/supply-chain-attacks-and-backdoored-dependencies
Scraping is the process of turning unstructured web data into structured data
Crawling is the process of running through a lot of interlinked data (web pages for example)
So let see how to create a crawler in #Rust
Scraping is the process of turning unstructured web data into structured data
Crawling is the process of running through a lot of interlinked data (web pages for example)
So let see how to create a crawler in #Rust
Some days I start thinking about if life is too short to fight #Rust's borrow checker 👉 https://kerkour.com/life-is-short-rust-borrow-checker
What do you think?
Concurrency issues are the fear of a lot of developers. Due to their unpredictable behavior, they are extremely hard to spot and debug.
Here is how Rust prevents concurrency issues in practice: https://kerkour.com/rust-fearless-concurrency
From lone wolves to teams of hackers, developers to analysts, the profile of attackers is highly diversified.
Here is a short summary of the different skills needed to carry offensive (cyber) operations: https://kerkour.com/profiles-cyberattacks
I sincerely believe that #Rust is a huge step forward in terms of software reliability and performance, which directly translate to $$ and time saved
But like all technologies, it has drawbacks that may not make it the best choice for your project. Today I want to explore what I think are bad use cases for Rust.
#Rust is designed by a committee, by choice.
If you ever have managed a project, you should smell the unfocused monstrosity from 100 KM away.
And yet, after many years, I've come to the conclusion that in Rust's case, it's a huge asset instead of a liability.
Turning a web browser extension into a botnet and exfiltrating sensitive data used for #cyberwar may be closer to reality than you think.
📖 https://kerkour.com/hacking-stories/puppet-master
#rust #rustlang #hacking #cybersecurity #100DaysOfCode #WebAssembly #wasm
I'll be honest, I never successfully learned #haskell, the holy grail of functional #programming languages
But, a language perfectly mixing imperative and functional programing now exists
You got it, we are talking about #Rust
👉 https://kerkour.com/rust-functional-programming
Job queues are a central piece of any web application but they come with a high operational cost
What if instead of adding another piece we could use something we already have?
I’m talking about our old friend #PostgreSQL
From my experience writing and digging into Rust codebases, lifetime annotations induce a cognitive load that distracts from getting the actual work done.
So here is my secret to write clean Rust code 🦀✨
👉 https://kerkour.com/blog/rust-avoid-lifetimes
For my French people, I highly recommend the @vousavezledroit 's YouTube channel :)
Let us not beat around the bush: Rust is not easy to learn. It took me nearly 1 year of full-time programming in #rust to become proficient, but it's absolutely worth it.
It requires a complete mental model switch 👉 https://kerkour.com/rust-mental-models
When 2 parties, let's say Alice and Bob, want to exchange messages over an insecure channel, they need to find a way to share a secret that can't be guessed by potential eavesdroppers
Here is how 👉 https://kerkour.com/end-to-end-encryption-key-exchange-cryptography-rust
#rust #crypto #cryptography #rustlang #100DaysOfCode #Programming #code
(Ab)using technology for fun & profit: Programming, Hacking & Entrepreneurship.
Author of http://kerkour.com/black-hat-rust
My weekly newsletter http://kerkour.com/subscribe