Introducing the Rust 101 series and how to install Rust.

Rust 101 is a series of videos explaining how to write programs in Rust.

How to install Rust: https://rustup.rs/
Slides: http://artificialworlds.net/presentations/rust-101/0-intro
Exercises: https://101-rs.tweede.golf/0-install/mod.html

Follow the “Exercises” link to find the other tools you might want to install to follow along.

The course materials for this series are developed by tweede golf. You can find more information at https://github.com/tweedegolf/101-rs and you can sponsor the work at https://github.com/sponsors/tweedegolf . They are released under the Creative Commons Attribution Share Alike 4.0 International license.

This series of videos is copyright 2023 Andy Balaam and the tweede golf contributors and is released under the Creative Commons Attribution Share Alike 4.0 International license.

Duration: 9min 44sec


This project is on-going, is hosted on PeerTube, and we aren’t too far behind, so I thought it might be of interest.
Playlist so far: https://diode.zone/w/p/xesbWmNanEHNBfJCZFQRUm

  • freamon@endlesstalk.orgOP
    link
    fedilink
    English
    arrow-up
    3
    ·
    10 months ago

    Subscribing to his channel from Lemmy never even occurred to me (?!)

    Now is as good a time as any though to investigate Lemmy/PeerTube interactions:

    The search that lemmy will do:
    curl --header 'accept: application/activity+json' https://diode.zone/.well-known/webfinger?resource=acct:andybalaam_lectures@diode.zone | jq .
    The ‘activity+json’ links section reveals that the url is https://diode.zone/video-channels/andybalaam_lectures

    ‘Click’ on that:
    curl --header 'accept: application/activity+json' https://diode.zone/video-channels/andybalaam_lectures | jq .
    Interesting parts:
    ‘type’ is Group, which is what lemmy uses for communities
    there’s no ‘moderators’ link, so that’ll be empty on the community page
    ‘outbox’ is at https://diode.zone/video-channels/andybalaam_lectures/outbox which lemmy should be able to use to fetch the recent videos. It doesn’t work because community outboxes on Lemmy just list the last 20 posts directly, whereas PeerTube (and Mastodon) redirect you to a ‘outbox?page=1’ url.
    ‘playlists’ is at https://diode.zone/video-channels/andybalaam_lectures/playlists, which is what we want really (the Rust 101 playlist)
    These are of type Playlist though, which Lemmy doesn’t know what to do with.

    Following the ‘playlist’ link:
    –> https://diode.zone/video-channels/andybalaam_lectures/playlists?page=1 (posts 1 to 10)
    –> https://diode.zone/video-channels/andybalaam_lectures/playlists?page=2 (post 11)

    Bash script to get the URLs

    #!/bin/bash
    
    curl --silent --header 'accept: application/activity+json' "https://diode.zone/video-playlists/fcec1b54-0908-452e-9d35-84c9627c3b50?page=1" > /tmp/page1.json
    curl --silent --header 'accept: application/activity+json' "https://diode.zone/video-playlists/fcec1b54-0908-452e-9d35-84c9627c3b50?page=2" > /tmp/page2.json
    
    for i in {0..9}
    do
        item=$(jq -r ".orderedItems[$i]" /tmp/page1.json)
        url=$(curl --silent --header 'accept: application/activity+json' "$item" | jq -r .url)
        sleep 1.1s
        echo $url
    done
    
    item=$(jq -r ".orderedItems[0]" /tmp/page2.json)
    url=$(curl --silent --header 'accept: application/activity+json' "$item" | jq -r .url)
    echo $url
    

    gives us:

    https://diode.zone/videos/watch/f8e9baa2-9f19-4061-91f4-2d35fada767e                  
    https://diode.zone/videos/watch/6b08bb1f-b3ef-40d4-addf-cf45e1da1a7a                  
    https://diode.zone/videos/watch/020c07e6-f124-4b3e-8270-cc2d21bf9c67               
    https://diode.zone/videos/watch/9766d1f1-6018-48ec-ad67-e971758f8a3a                 
    https://diode.zone/videos/watch/567552a8-34df-4a00-b598-c92d903329fb               
    https://diode.zone/videos/watch/8be50e04-2cd1-4e2d-8f27-61dc1dc51170             
    https://diode.zone/videos/watch/90e5627c-caa8-47a7-b7b6-74bb79a26977             
    https://diode.zone/videos/watch/a1604d25-d0b0-4e2c-baf4-3a2b193708e0             
    https://diode.zone/videos/watch/a752daf8-60c2-46d7-a36f-7d7fcda9a0a5           
    https://diode.zone/videos/watch/659f9b07-11c7-4f52-9e8e-becce02e40fe           
    https://diode.zone/videos/watch/03735b5f-8ace-411c-998e-7c4a58a11914           
    

    I used endlesstalk.org’s Search to bring most of these through, before getting bored and using the API. e.g.:

    curl --request GET \
         --url 'https://endlesstalk.org/api/v3/resolve_object?q=https://diode.zone/videos/watch/03735b5f-8ace-411c-998e-7c4a58a11914' \
         --header 'accept: application/json' \
         --header 'authorization: Bearer $MY_JWT_TOKIN'
    

    So the bash script could easily be modified to resolve everything as well.