Skip Navigation
Jump
Il Framework laptop è ora ordinabile da Italia, Spagna, e Belgio
  • Interessante.

    Quasi ci stavo pensando, anche se il prezzo ovviamente è bello alto.

    Poi ho visto che nessuna tastiera ha PageUp, PageDown e compagnia su tasti dedicati, ma sono invece sulle frecce direzionali e vanno usati assieme al tasto Fn.

    Operazioni che dovrebbero essere accessibili con un solo dito hanno invece bisogno di entrambe le mani :/ Ho già fatto l'errore di comprare un Dell, che ha lo stesso difetto, e maledico la mia scelta ogni giorno.

    5
  • Jump
    Rust, Bot e Lemmy: Un piccolo esempio introduttorio!
  • l’account meglio su Codeberg / Gitea / Forgejo che sono 100% open rispetto a Gitlab o Github 😉

    Gitea e Forgejo non offrono un servizio però, solo un'applicazione (se sbaglio linka pure, sono interessato).

    Chiedere di mettere su e gestire un'infrastruttura del genere aperta al pubblico per condividere un programma mi sembra un po' esagerato. Per quanto sia divertente / soddisfacente / facile (opinione personale da uno che ha il suo server Gitea personale).

    2
  • Jump
    Rust, Bot e Lemmy: Un piccolo esempio introduttorio!
  • Devo esser sincero, inizialmente, leggendo la tua risposta, l’avevo intesa come un classico “io son meglio”, non volta ad apprendere, ragionare o migliorare la conoscenza di un neofita in Rust - modo in cui sembra trasparire tu mi consideri.

    Allora vuol dire che non sono riuscito a trasmettere il tono giocoso e spensierato che avrei voluto. Mi spiace.

    E forse ho frainteso il tuo messaggio originale in questo punto:

    Questo codice è un macello!

    Grazie, mi sono impegnato! Se hai notato bug, typo o cose insensate per favore commenta qui sotto!

    In questa tua replica sembri molto meno propenso a ricevere commenti di quanto avessi letto nel messaggio originale.

    0
  • Jump
    Rust, Bot e Lemmy: Un piccolo esempio introduttorio!
  • Questo codice è un macello! /s

    Lascerò a Clippy il compito di indicare tutti i problemi. Aggiungi #![deny(clippy::pedantic)] in cima ed esegui cargo clippy.

    Altri commenti in ordine sparso:

    È decisamente poco idiomatico, anche se immagino sia stato scritto così apposta, dato che è indirizzato a chi il linguaggio non lo conosce.

    Usare match per estrarre esplicitamente gli errori è il modo sbagliato di usare Rust. Quello giusto è usare l'operatore ?, che lo fa in modo implicito (o al massimo if let o let else). Non servono nemmeno anyhow o simili, le funzioni possono restituire Result<_, Box<dyn std::error::Error>>.

    Senza contare che match crea un nuovo scope e un nuovo livello di indentazione, il codice sembra la bandiera del Nepal.

    Per lo stesso motivo, usa std::fs::read_from_string invece di creare un file esplicitamente.

    Gli argomenti trng e trg della funzione pick_random suonano identici, ma a giudicare dal tipo sono ben diversi.

    Forse potremmo controllare response.status() e fare un bel match...

    Meglio usare Response::error_for_status. C'è quasi sempre un modo migliore di un match esplicito per gestire gli errori.

    Creare diversi moduli

    Prima di creare nuovi moduli penserei a creare nuove funzioni. main() fa decisamente troppe cose.

    Infine:

    Perché non su github?

    Al momento non ho un account che posso usare per queste cose, mi dispiace!

    Questa non è una buona scusa. Gli account su GitHub / Gitlab / SourceHut / BitBucket... non costano niente.

    Però tutto sommato è stata una buona idea, e il codice in sé non è poi così malvagio per un principiante (o per qualcuno che scrive per principianti). Magari riesci a fare incuriosire qualcuno.

    2