#Klooienmetcomputers

Bacon

Arnout van Kempen over rommelen in een digitale wereld.

De vorige keer hebben we nano vervangen door vim en daarbij vim zo ingesteld dat het een aantal hulpmiddelen geeft om beter met Rust te werken. Daar doen we vandaag nog een optie bij: bacon. Dit is een programmaatje dat parallel aan de editor meekijkt met je code en desgewenst foutmeldingen, warnings en aanwijzingen kan weergeven voor je code. Als je bijvoorbeeld op een Raspberry Pi werkt vanuit de GUI, dan kan je bacon starten in een terminal-venster en je vim in een ander venster. Je werkt zoals je gewend bent, maar intussen heb je in je andere venster de hulp van bacon. Je zal zien dat het min of meer dezelfde informatie geeft als de rust-compiler, maar overzichtelijker en zonder dat je daadwerkelijk moet compileren.

Eerst gaan we bacon installeren. Dat doe je vanuit de broncode op github, zodat het ook werkt op een Mac, of via Windows (wel even uitzoeken hoe dat precies werkt!). In de terminal geef je het commando

cargo install —locked bacon

(dat zijn twee streepjes voor locked!). Er wordt nu een hele reeks modules geladen en gecompileerd. Heb geduld, met name de laatste duurt gevoelsmatig bizar lang. Maar anders dan je wellicht denkt, is je computer niet vastgelopen. Gewoon, geduld.

Vanaf nu kan je bacon gebruiken, simpelweg door het te starten in een directory waarin je met cargo new je project hebt gemaakt. Dat is dus de directory met je projectnaam waarin src/main.rs staat. Als je wilt weten hoe het gaat, druk je in dat venster op t voor een beperkt overzicht, en op c voor een uitgebreid overzicht. Let wel op, bacon leest de code die op schijf staat. Dus in vim wel eerst even opslaan met :w voor je bacon aan het werk zet.

En als je nu denkt: "Ja, maar, ik weet nog niet eens hoe vim precies werkt?", dan heb je gelijk. Zelfstudie!

Heb je meer computers, dan kan je ook nog opteren voor een scherm waarmee je je werk doet, en een ander scherm voor je hulpmiddelen. Zo heb ik een Pi 4B die gekoppeld is aan mijn iPad en een Pi 400 met een eigen scherm en toetsenbord voor ondersteunende diensten. Om aan de slag te gaan doe ik het volgende:

  1. Blink op de iPad
  2. mosh pi4b in Blink.
  3. cd ~/prg/rust/project-van-de-dag
  4. vim src/main.rs
  5. Op de Pi 400 intussen:
  6. <dubbelklikken op ChatGPT> om ChatGPT te starten in een Chromium-window
  7. <klik op GitHub en op RustHandbook in Chromium>
  8. <klik op terminal>
  9. ssh pi4b in de terminal
  10. cd ~/prg/rust/project-van-de-dag
  11. bacon

Hiermee heb ik op mijn iPad vim open staan om code te schrijven. En intussen op het grote scherm van de Pi 400 alle hulpmiddelen die ik er graag bij hou.

Wie mee wil doen met #klooienmetcomputers kan dat doen via GitHub. Maak een account op github.com en zoek naar Abmvk/kmc. Het account Abmvk volgen kan ook. Lezers zijn vrij te gebruiken wat ze willen en om zelf zaken toe te voegen of aan te passen, vragen te stellen of commentaar te leveren.

Arnout van Kempen di CCO CISA is directeur compliance & risk bij aaff, de fusieorganisatie van Alfa en ABAB. Hij schrijft op persoonlijke titel.

Gerelateerd

4 reacties

Ron Heinen

Als aanvulling op de vorige reacties over Rust en een zero-trust strategie kun je op

https://www.okta.com/uk/state-of-zero-trust/

een onderzoek vinden.

De financiële sector loopt voorop in de omarming van Zero Trust, 71% van de ondervraagde financiële organisaties heeft op dit moment al een Zero Trust-aanpak gedefinieerd.

Voor softwarebedrijven is dit 68%, en publieke- en zorgorganisaties volgen met respectievelijk 58% en 47%.

Rust is daarbij de meest geschikte programmeertaal om een zero-trust strategie in te voeren.

Ron Heinen

@Arnout van Kempen 24 januari 2024

Rust heeft verschillende unieke kenmerken die het onderscheiden van andere programmeertalen, bijvoorbeeld:

1. Efficiënte abstractie

Rust stelt je in staat om abstr1acties in je code te gebruiken zonder prestaties op te offeren .

2. Duidelijke foutmeldingen

Rust biedt duidelijke en informatieve foutmeldingen .

3. Automatische type-inferentie

Rust kan automatisch het datatype van een expressie bepalen .

4. Slimme verplaatsingssemantiek

De verplaatsingssemantiek van Rust draagt efficiënt gegevens over tussen variabelen, waardoor kostbare kopieën worden vermeden .

5. Threadveiligheid

Het ownership-systeem van Rust zorgt ervoor dat threads niet tegelijkertijd toegang kunnen krijgen tot hetzelfde geheugen .

6. Veelzijdige patroonmatching

De patroonmatching-func1tie van Rust geeft je meer controle over de programmastroom .

7. Betrouwbare geheugenveiligheid

Het ownership-concept van
Rust garandeert geheugenveiligheid .

8. Compatibiliteit met C

Rust kan gemakkelijk communiceren met C-API’s .

9. Gecontroleerde geheugentoewijzing

Het handmatige geheugenbeheer van Rust stelt ontwikkelaars in staat om expliciete co1ntrole te hebben over geheugentoewijzing en deallocatie

Zoals ook eerder door me uitgelegd, Rust is een manier om een zero-trust strategie vanaf de bodem in te voeren.

Arnout van Kempen

@Ron, dat is inderdaad opmerkelijk. Rust is best een lastige taal om te leren, en niet iedereen zal een grote codebase in C klaar hebben staan, maar inderdaad, het is geen toeval dat nogal wat cruciale systemen van C worden overgezet naar Rust. Een beweging die we met C++ bijvoorbeeld nooit gezien hebben.

Ron Heinen

Dank.

De kritische delen van vele grote software systemen zijn of worden omgezet naar Rust. De code is door bijvoorbeeld het ownership principe

https://www.accountant.nl/achtergrond/2024/1/ownership/

van variabelen veiliger dan de huidige implementaties in bijvoorbeeld C.

Een manier om deze veiligheids checks te gebruiken in Rust voor je eigen bestaande code is om:

1. Je eigen code te laten vertalen naar Rust door een AI-Systeem;

2. Deze Rust code te compileren;

3. De fouten en waarschuwingen welke de Rust compiler geeft gebruiken om de Rust code te wijzigen zodat je een veiliger executable hebt.

Voor de kritische delen van ICT systemen van Apple (bijvoorbeeld Swift), Microsoft (bijvoorbeeld Windows), Google (bijvoorbeeld Android) en Amazon (bijvoorbeeld S3 en EC2) wordt Rust gebruikt.

Dat zoveel grote ICT-Systemen Rust gebruiken geeft ook vertrouwen in de toekomstige ontwikkeling en ondersteuning van de taal Rust.

Reageren op een artikel kan tot drie maanden na plaatsing. Reageren op dit artikel is daarom niet meer mogelijk.

Aanmelden nieuwsbrief

Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.