Rust meetup

Ciao a tutti,

sono appena arrivato nel Mittelab!

Ho iniziato da poco un progetto sulla piattaforma Meetup.com per creare un gruppetto di studio sul linguaggio Rust (www.rust-lang.org).

Mittelab (grazie @g5pw!) ci ha gentilmente ospitati per gli ultimi due appuntamenti e finche’ il gruppo e’ molto piccolo sembra la sistemazione logistica che mette tutti d’accordo.

Meetup.com come piattaforma per tenersi in contatto non e’ il massimo, quindi eccomi anche sul vostro forum :slight_smile: . L’idea e’ di provare a dare visibilita’ a questo piccolo progetto con lo scopo di imparare insieme il linguaggio, le API della standard library e il modo idiomatico di scrivere in Rust.

A dicembre sono praticamente morto (casini vari) ma a gennaio ho in programma di risorgere come la fenice e riprendere gli appuntamenti.

A presto!

2 Mi Piace

Alcune indicazioni sugli strumenti e le risorse che utilizziamo:

1 Mi Piace

Ciao a tutti e grazie a @jman per il post :slight_smile:

Quando facciamo il prossimo meetup? Direi di mantenere il modello del mercoledì :blush: Possiamo farlo direttamente in sede!

  • Mercoledì 10/1 (dopodomani)
  • Mercoledì 17/1
  • Mercoledì 24/1
  • Mercoledì 31/1

0 votanti

PS: ho fatto un paio di ulteriori prove con Jitsi, e devo dire che non va male! non so perché a noi non ha funzionato bene… boh :thinking:

Ciao! Scusate il silenzio stampa (casini vari); a me tornerebbe meglio la prox settimana.

Se qui va bene a tutti merc 17/01, fra un paio di gg apro anche il RSVP su meetup, proviamo a trainare qualche nuovo member che si e’ unito di recente.

1 Mi Piace

Ho visto che a Berlino, nell’edificio della Mozilla Foundation (ripeto edificio della MOZILLA FOUNDATION) :slight_smile: fanno meetup bisettimanali su Rust.

Consigliano due progetti su cui cominciare ad affilarsi le unghie con Rust:

In uno dei prossimi meetup potremmo prenderci un bug e provare a schiacciarlo :slight_smile:

1 Mi Piace

Beh, effettivamente fa il suo effetto :stuck_out_tongue:

Si, perché no! Tra l’altro sono anche progetti “utili” quindi ritorna qualcosa alla community. :+1:

Perché, se ti riferisci alla volta in cui ero io ad avere problemi, usavo Firefox! La nuova versione sembra avere ancora qualche problema di gioventù…in seguito l’abbiamo provato io e @Telespalla con browser Chromium-based e andava benissimo :wink:

Presto il nostro piccolo Meetup sara’ sul sito ufficiale: mi ha risposto Alex Crichton in persona!! :star_struck:

Poi, per aggiungere gli appuntamenti che facciamo, ho chiesto accesso in scrittura a questo calendario

1 Mi Piace

Woooo bel lavoro! complimenti! :muscle:

Ieri sera si discuteva con @jman che potremmo pensare di fare i meetup durante il weekend, ad esempio sabato pomeriggio, per essere più rilassati, e così @michelezamuner riesce a mangarsi il panino :stuck_out_tongue: Che ne pensate?

  • Si, buona idea, per me sarebbe meglio sabato
  • Si, buona idea, per me sarebbe meglio domenica
  • No, meglio la sera

0 votanti

Si, facciamo una prova. Che ne dite sabato 27/01 oppure 03/02?

Sul tema degli unittest, ho dato un’occhiata piu’ approfondita alla documentazione.

In sostanza avevamo capito al 90% la cosa:

  • Tu scrivi una libreria e metti tutto in src/lib.rs
  • In src/lib.rs aggiungi il modulo per i test (mod tests, completamente separato)
  • Se scrivi un’applicazione in Rust, (con un src/main.rs e non src/lib.rs) secondo loro non hai bisogno test di integrazione, perche’ li hai gia’ fatti nel codice della tua libreria.

Capisco la logica di questo approccio, mi sembra un po’ strana.

Il nostro client Meetup e’ un’applicazione mista: un binario ma con la parte di “libreria” (che pero’ non e’ in src/lib.rs). Dovremmo rifattorare il codice creando un src/lib.rs e ci mettiamo il codice della libreria, oppure un src/lib.rs vuoto che importa gli moduli (come aveva provato @michelezamuner).

Questo src/lib.rs e’ un entrypoint necessario per un progettodi tipo libreria, mi sembra che non si scappa.

In questo post ci sono spiegate alcune cose di base, anche sull’organizzazione dei file in un progetto:

Una cosa che ho notato e’ che l’stdout/stderr delle print viene gettato via se il test ha successo, mentre vengono visualizzate se il testa fallisce, ad es.:

$ cargo test test_sum
...
running 1 test
test meetup_client::tests::test_sum ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out
$ cargo test test_sum
...
running 1 test
test meetup_client::tests::test_sum ... FAILED

failures:

---- meetup_client::tests::test_sum stdout ----
	Print this debugging, pretty please
thread 'meetup_client::tests::test_sum' panicked at 'assertion failed: `(left == right)`
  left: `4`,
 right: `3`', src/meetup_client.rs:80:8
....

ok per me sab 03/02, apro il RSVP su meetup.com

E Carino l’evento di padova (mi sono registrato), grazie!

@g5pw @michelezamuner recap del meetup di oggi

  • Utilizzo dell’operatore ?
  • Come costruirsi una enum per fare il catch-and-rethrow-my-own-exception
  • Refactor del client meetup splittando la libreria (che ha un suo nuovo repo) dal client che implementera’ suddetta libreria
  • Integration tests
  • Utilizzo degli impl e traits per implementare una classe astratta del client HTTP e poter avere due implementazioni: una reale (che si connette al backend di Meetup) e una come mock da essere utilizzata negli integration tests

Oggi estremamente produttivo, ho cominciato a capire diverse cose! Il fatto che voi siate proficient su C/C++ mi e’ di grande aiuto perche’ afferrate piu’ velocemente alcuni concetti di Rust coi quali fatico di piu’ a familizarizzare! Grazie mille per l’aiuto.

1 Mi Piace

Ho creato una pagina sul Wiki con un journal per tenere un po’ di diario:
https://wiki.mittelab.org/eventi/2018/rustmeetupjournal

E’ uno strumento utile il post-mortem, mi aiuta a fissare meglio in testa le cose. Vediamo se avro’ la costanza di tenerlo aggiornato :slight_smile:

1 Mi Piace

Benissimo, tutto molto chiaro!

Ti ho aperto una piccola PR di qualche typo (credo). Oppure sono robe che non ho capito bene

p.s. per questo tipo di documentazione tornerebbe piu’ comodo il Wiki di github o github.io?

Un po’ di spam off-topic, c’è il libro Programming Rust e molti altri su humble bundle.

Riguardo i libri di programmazione, crescendo di expertise, ho maturato sentimenti contrastanti.

All’inizio erano uno strumento insostituibile (specie quando S.O. non c’era) e leggevo le parti che mi interessavano. Piu’ avanti negli anni ho preferito un approccio piu’ trial-and-error perche’ mi sembrava piu’ rapido l’apprendimento, ad es. i ns. pimi meetup su Rust erano una guerra contro il compiler :slight_smile:

Voi che opinione avete in merito?

Speaking of which, ho appena perso una $undisclosed_amount_of_time per via di una peculiarita' di Rust. Secondo voi questo snippet cosa stampa?

.
.
.
.
.

Risposta sbagliata : -)

(se vi e’ sembrato di vedere angeli cadere dal cielo in fiamme, non fateci caso, ero io)

E’ uscito Rust 1.2.4! Finalmente hanno messo nel canale stable una versione di preview del linter (rustfmt). Adesso non occorre piu’ compilarsi Rust unstable per averlo! \o/

Mi piace e approvo questo ciclo di release ogni 6 settimane. Tengono viva l’attenzione della comunita’.

ref: https://blog.rust-lang.org/2018/02/15/Rust-1.24.html

1 Mi Piace

@michelezamuner @g5pw mi sarebbe piaciuto fare il meetup il sabato dell’hack weekend del Mittelab ma quel fine settimana non ci sono :frowning:

Se volete, fate pure voi senza di me. A un caso posso aprire l’RSVP su Meetup e pubblichiamo la cosa (su FB e sul calendario community Rust).