Skip to main content


90107381001310876439032117425523386285527369064955290152127497749962802572547619498228034614224174373888785932290535335802792711060672475883887094683542269956016098828012518360248528894800410694512031313946160169110306524425970765198849243195401705152172988051644198232153630160977209718291848454429628769625278676363957961530676189210110321852252064385407457271026719172983966355070994806498844797108773266015836167049954977047493534434218252818493160591608360040003853160312




Serata del 1 dicembre: il Fediverso


Visti gli argomenti di cronaca tecnologica delle ultime settimane :D per
la prossima serata del giovedì 1 dicembre pensavamo di proporre il tema
“il Fediverso” (ovvero i social network federati, ovvero ciò di cui fa
parte Mastodon).

Il piano è:

- 20:30 ritrovo alle 20:30 su meet.gl-como.it/GL-Como per
convenevoli e consueto cazzeggio
- 21:00 breve presentazione di cos'è il Fediverso
- 21:15 circa, scambio di esperienze, domande, risposte, consigli eccetera
eccetera.

Come l'altra volta, partecipando si autorizza la registrazione della
call, a partire dalle 21:00 e la sua eventuale pubblicazione.

reshared this



Serata del 17 ottobre: self-hosting git


Come ogni giovedì di recente, anche il 17 novembre ci troveremo online
per la consueta chiaccherata serale: questa volta però abbiamo un tema:
il self-hosting git, ovvero come non dipendere da github, gitlab e altri
big per pubblicare il proprio codice.

Il piano della serata è ritrovo alle 20:30 su
meet.gl-como.it/GL-Como , convenevoli e breve cazzeggio e alle
21:00 precise precise si entra nel vivo e ci si scambiano esperienze e
consigli riguardo all'argomento della serata.

Non è detto che se ne faccia niente, ma partecipando si autorizza la
registrazione della call e la sua eventuale pubblicazione nel caso in
cui esca qualcosa di potenzialmente interessante anche per altri.
(ovviamente la parte cazzeggio prima delle 21 è esclusa dalla
registrazione/pubblicazione)

reshared this



Gruppo Linux Como reshared this.


Uops, I forgot to post a picture of the @Gruppo Linux Como lake penguin

#screenPrint

no, it's not perfect, and I should practice a bit more, but the LUG t-shirts are close to becoming a *thing*.

reshared this


in reply to Elena ``of Valhalla''

Ah, dimenticavo.

Non so bene come/se/dove/quando pubblicarlo, ma per preparare il talk ho scritto un testo che non corrisponde esattamente a quanto detto, ma ci assomiglia abbastanza

git.trueelena.org/docs/talks/t…

Dato che le probabilità che io produca dei sottotitoli fatti bene per un mio talk sono estremamente basse, per varie ragioni, magari può essere utile a qualcuno.

(Se poi qualcuno ha voglia di sottotitolare il video originale come si deve, ha tutta la mia gratitudine.)

reshared this

in reply to Elena ``of Valhalla''

Domanda da pivello: come si fa per aggiungere i sottotitoli al video?
Ho provato a mettere del nastro adesivo di carta sul monitor, ma credo non funzioni così.
in reply to rag. Gustavino Bevilacqua

Ci sono dei programmi apposta (iirc quello che avevo usato anni fa è aegisub) con cui si può trascrivere quello che viene detto nel video e salvarlo associandolo al momento preciso in cui viene detto.

Poi il file che viene generato è un file di testo in un formato apposta, che si può caricare in vlc o simili (anzi, se ha lo stesso nome del file, salvo l'estensione, vlc lo carica automaticamente.

Non so se peertube permetta di caricare file di sottotitoli, devo ancora guardarci.

So che esiste anche una piattaforma online per farlo in modo collaborativo, ma credo che ci voglia del setup, avevo visto che avevano provato a farlo per i video di una debconf, qualche anno fa.

Il grosso del lavoro però è trascrivere e allineare al minuto giusto, che di solito richiede tanto tempo in più rispetto alla durata del video.

in reply to rag. Gustavino Bevilacqua

puoi creare dei file di testo in uno dei formati supportati da VLC, e chiamare il file con lo stesso nome (senza estensione) del video. VLC lo trova da solo.

se invece vuoi conoscere com’e fatto il formato del file, puoi prenderti dei sottotitoli qualunque (magari da opensubtitles.org) e dedurlo.

il problema non è tanto scrivere a manina un file di testo, quanto shiftare i time offset a manina! ci sono dei sw per la creazione dei sottotitoli:

linuxlinks.com/subtitleeditors…

@valhalla

in reply to :manjaro: Anon

o forse la domanda era: come “incidere” i sottotitoli direttamente sulla traccia video?@valhalla
in reply to :manjaro: Anon

Secondo me sarebbe la soluzione migliore, così si avrebbe un file singolo distribuibile.
in reply to rag. Gustavino Bevilacqua

Come dice @Sabrina Web , diventa problematico quando i sottotitoli da distribuire sono in più di una lingua, e tenendo il file a parte si da la possibilità di non avere i sottotitoli a chi li trova una distrazione.

Oltre al fatto che se uno vuole può leggersi il file dei sottotitoli come transcript, evitando di doversi guardare tutto il video.

E che il file separato potrebbe essere indicizzato per delle ricerche, il disegno dei sottotitoli integrato nel video no.

in reply to Elena ``of Valhalla''

Forse l'unico problema può essere con i cosiddetti "smart tv" (che proprio smart non sono) che accettano un numero ridotto di formati video via USB e non credo leggano sottotitoli (devo provarci col mio), cosa che ti costringe a portarti dietro anche un laptop.

Sarebbe bello non avere l'uno *O* l'altro metodo, ma l'uno *E* l'altro.

Un po' di sbattimento in più per chi fa il video, ma neppure più di tanto, e si fanno felici molti più utenti.

in reply to rag. Gustavino Bevilacqua

Per fare una prova con la smart tv, un modo facile per procurarsi un video con sottotitoli è youtube-dl con l'opzione --all-subs

Certo che se è un minimo minimo smart, la possibilità di caricare sottotitoli me la aspetterei come funzionalità base



Serata Lesana - un gestore di collezioni


È online la presentazione del progetto Lesana e derivati tenuta durante la serata di giovedì 16 scorso.

I video sono pubblicati sul canale GL-Como su peertube.uno @glcomo@peertube.uno, che è possibile seguire con un account sul fediverso (Friendica, Mastodon, etc)

Lesana - un gestore di collezioni - parte 1


Immagine/foto

Lesana - un gestore di collezioni - parte 2


Immagine/foto

I link:


gl-como.it/v2015/serata-lesana…



Serata su lesana, software di gestione di inventari


Giovedì 16 settembre il GL-Como torna a fare serate a tema: stavolta l'argomento è lesana, un programma per gestire inventari di collezioni, come libri, musica, componenti di elettronica, abbastanza versatile da poter essere usato ad esempio per un issue tracker personale.

lesana è un programma da riga di comando ed una libreria python, e ne esistono già un'interfaccia grafica scritta in GTK e un visualizzatore web.

Saranno presenti gli autori di lesana e delle interfacce grafiche.

L'appuntamento è per giovedì 16 settembre 2021 alle 21:00 all'indirizzo

live.gl-como.it/view.html#GL-C…

dove saranno disponibili lo streaming e una chat per interagire con i relatori.

Maggiori informazioni su lesana si trovano sul sito del progetto:

https://lesana.trueelena.org/


gl-como.it/v2015/serata-lesana…



Sep 16
Serata su lesana, software di gestione di inventari
Thu 9:00 PM - 11:00 PM https://live.gl-como.it/view.html#GL-Como
Gruppo Linux Como

Giovedì 16 settembre il GL-Como torna a fare serate a tema: stavolta
l'argomento è lesana, un programma per gestire inventari di collezioni,
come libri, musica, componenti di elettronica, abbastanza versatile da
poter essere usato ad esempio per un issue tracker personale.

lesana è un programma da riga di comando ed una libreria python, e ne
esistono già un'interfaccia grafica scritta in GTK e un visualizzatore
web.

Saranno presenti gli autori di lesana e delle interfacce grafiche.

L'appuntamento è per giovedì 16 settembre 2021 alle 21:00 all'indirizzo
live.gl-como.it/view.html#GL-C…
dove saranno disponibili lo streaming e una chat per interagire con i
relatori.

Maggiori informazioni su lesana si trovano sul sito del progetto
lesana.trueelena.org/

reshared this

attend



Opencast Alpha n.51


Immagine/foto

La puntata numero 51, con una parvenza di regolarità, dedicata all'imminente release di Debian Bullseye

Scarica:Ogg/Vorbis-Mp3

I links

I link di Opencast li trovate anche sulla Linkopedia

Abbiamo registrato con Mumble, ognuno a casa propria.

Immagine/foto


gl-como.it/v2015/opencast-alph…



Installare un server minetest da usare con gli amici


Dopo mesi di lockdown in cui si sono incontrati gli amici solo tramite videoconferenza (ovviamente sul proprio server jitsi), viene voglia di interagire di più, e cosa c'è di meglio che farlo in una comoda sala da té costruita su dei pioppi, o sul fondo di una miniera scavando ferro, oro, diamanti e MESE?
Immagine/foto
MESE? sì, sto parlando del minerale originale del mondo di Minetest, un gioco libero della stessa famiglia del proprietario Minecraft, in cui si interagisce in vari modi con un mondo composto da cubi di materiale vario.

Uno dei punti di forza di minetest è la varietà di mod disponibili (e la facilità con cui se ne possono scrivere di personalizzati, usando il linguaggio lua), per cui l'esperienza di gioco può essere resa molto diversa a seconda dei gusti dei partecipanti: un server può offrire uno spazio per costruire strutture, un'altro un mondo pieno di pericoli da esplorare ed un'altro ancora può dare spazio a giocatori che vogliono combattere tra di loro o contro mostri.

In questo articolo ci concentreremo soprattutto sulla prima opzione, ma dando indicazioni su cosa modificare se si preferiscono le altre due (o varie combinazioni).

Installazione


Partiamo come al solito da un'installazione di debian su una macchina che possa essere raggiunta da internet (la solita vps, o un SBC in casa con un router opportunamente configurato); ad aprile 2021 possiamo scegliere se usare buster (l'attuale stable) più buster-backports oppure bullseye, la prossima stable di imminente rilascio.

Installiamo quindi il server minetest ed altri strumenti utili:
# apt install -t buster-backports minetest-server minetestmapper

e poi la selezione di mod che vogliamo usare, ad esempio:
# apt install -t buster-backports \
minetest-mod-basic-materials minetest-mod-craftguide \
minetest-mod-homedecor minetest-mod-unifieddyes \
minetest-mod-moreblocks minetest-mod-moreores

Quindi passiamo a configurare il nostro server modificando il file/etc/minetest/minetest.conf: di sicuro vogliamo modificare nome (server_name), descrizione (server_description) e volendo il messaggio mostrato al collegamento (motd), e possiamo scegliere se vogliamo annunciare il server sull'elenco comune dove chiunque possa giocarci (per iniziare, o comunque se si vuole giocare solo con i propri amici, conviene lasciare server_announce = false) e se impostare una password comune per poter entrare nel server (default_password).

Decidiamo poi, nello stesso file, che tipo di esperienza di gioco vogliamo avere, impostando creative_mode (true per far sì che i giocatori abbiano a disposizione tutti i materiali senza doverli andare a cercare, false per la modalità classica in cui li si deve trovare e scavare), enable_damage (utile se si vuole rendere pericolosa l'esplorazione o si vuole fare combattimento) edenable_pvp (per il combattimento tra giocatori).

Inoltre in default_privs impostiamo che privilegi devono avere di default i giocatori: il minimo consueto è interact, shout, ma in un mondo incentrato sulla costruzione più che sull'esplorazione può essere utile aggiungere anche fly, fast, home. La wiki di minetest documenta i privilegi a disposizione.

Infine, impostiamo il nome di un giocatore che avrà i privilegi di admin, nella variabile name.

A questo punto passiamo nella directory del mondo,/var/games/minetest-server/.minetest/worlds/world/ e configuriamo quali mod vogliamo abilitare in world.mt; può essere necessario fare un po' di prove, dato che le dipendenze non vengono abilitate automaticamente, ma ad esempio questa è una combinazione funzionante con i mod installati prima:
load_mod_unifieddyes = true
load_mod_moreores = true
load_mod_moreblocks = true
load_mod_plasmascreen = false
load_mod_lavalamp = false
load_mod_building_blocks = false
load_mod_homedecor_3d_extras = false
load_mod_lrfurn = false
load_mod_homedecor = true
load_mod_inbox = false
load_mod_basic_materials = true
load_mod_itemframes = false
load_mod_computer = false
load_mod_craftguide = true
load_mod_currency = true
load_mod_fake_fire = false
load_mod_homedecor_i18n = true

Infine, riavviare minetest-server per applicare le modifiche:
# service minetest-server restart

Primi passi nel mondo


A questo punto, sul proprio pc, installare il gioco minetest (in debian il pacchetto minetest e collegarsi al server usando il nome utente che si è selezionato come admin, ricordandosi di cambiare la password (con il comando /setpassword) appena entrati.

Dopo aver esplorato un po' si può scegliere un posto da cui partire con la costruzione: lo si può impostare come propria “casa” usando il comando /sethome, ma può anche valere la pena di impostarlo come punto di partenza per tutti i giocatori: premere F5 per abilitare la modalità di debug e scoprire le coordinate in cui ci si trova, quindi tornare sul server, modificare static_spawnpoint in/etc/minetest/minetest.conf e riavviare nuovamente il server.

Ulteriori comandi utili sono documentati sulla wiki di minetest.

Ulteriori migliorie


Mappa del mondo


Il comando /usr/games/minetestmapper può essere usato per generare una mappa generale di tutto quanto è mai stato esplorato; può essere una buona idea aggiungere a crontab una riga come:
05 8,16,0 * * * /usr/games/minetestmapper -i /var/games/minetest-server/.minetest/worlds/world/ -o /var/www/minetest/world_map.png --drawscale

per rigenerare la mappa ogni 8 ore, lasciandola in una directory dove può essere servita da un eventuale server web presente sulla macchina.

“backup”


Per avere una forma minimale di backup, possiamo sfruttare git: creiamo un repository nella directory del mondo:
# cd /var/games/minetest-server/.minetest/worlds/world/
# git init

e poi impostiamo a crontab un commit automatico quotidiano:
14 4 * * * cd /var/games/minetest-server/.minetest/worlds/world/ ; git add . ; git commit -m 'daily commit'

Da un altro computer facciamo poi un clone di questo repository, e mantenendo aggiornato quel clone potremo recuperare il mondo in caso di catastrofi.

Come proseguire


A questo punto si è pronti per passare la password del server ai propri amici ed iniziare a giocare, il che probabilmente vuol dire che non si avrà più tempo per ulteriori configurazioni :)

Se invece si riesce a mantenere l'autocontrollo, queste sono alcune idee di migliorie su cui si può lavorare.

Ulteriori mod


I mod disponibili per minetest-sono estremamente numerosi e vari: la maggior parte viene pubblicata sul forum di minetest, ma una buona selezione di mod scelti per la loro qualità e affidabili può essere ottenuta cercando i mod che sono stati pacchettizzati per debian con il comando:
$ apt search minetest-mod

l'elenco è troppo lungo per parlarne in questo articolo, ma una buona idea può essere quella di installarli localmente sul proprio pc, provarli su un mondo single player e installare sul server ciò che si è trovato particolarmente interessante.

In alternativa, se tra i propri amici ci sono dei giocatori di minetest, di sicuro avranno un elenco di mod che trovano interessanti da suggerire.

Più mondi sullo stesso server


Il pacchetto debian di minetest-server è predisposto per poter gestire più mondi: per farlo basta creare una nuova configurazione in/etc/minetest/<nome>.conf e far partire il server con systemctl start minetest-server@pvp.service; sarà necessario usare una porta diversa, e ulteriori dettagli si possono trovare nel file/usr/share/doc/minetest-server/README.Debian installato dal pacchetto del server.

Backend più adatti a server affollati


Il backend di default di minetest è sqlite3, che non è in grado di scalare e supportare server con molti utenti: se si pensa di averne bisogno sono disponibili ulteriori backend come redis o postgresql, la cui configurazione è spiegata sempre sulla wiki di minetest.

Ovviamente, in questo caso non sarà più possibile usare git per effettuare un backup del mondo, ma sarà necessario avere una strategia di backup più tradizionale.

Conclusione


Qui avrebbe dovuto esserci una conclusione, ma chi doveva scriverla era impegnato a giocare…
Immagine/foto


gl-como.it/v2015/minetest/



Opencast Alpha n.50


Immagine/foto

La puntata numero 50, la puntata d'oro!

Non pensavate che ci saremmo arivati? Nemmeno noi, e invece eccoci qui!

Una puntata dedicata al giovane mondo di linux sugli smartphone: parleremo di pinephone, cosa funziona, cosa ancora non funziona, le nostre esperienze.

Scarica:Ogg/Vorbis-Mp3

I links

Abbiamo registrato con Mumble, ognuno a casa propria.

Immagine/foto


gl-como.it/v2015/opencast-alph…







Grazie ai grandi avanzamenti tecnologici, da oggi la linkopedia del GL-Como è comodamente ordinata in ordine di inserimento decrescente, ovvero i link inseriti più di recenti sono i primi della lista.

linkopedia.gl-como.it/



Ciao a tutti.

segnalo l'esistenza del neonato gruppo @softwarelibero group ai gruppi dei due LUG che frequento, che immagino possano esserci degli interessati.

Ci sono già delle linee guida su cosa si vuole che venga postato? Immagino solo post in italiano.

@Gruppo Linux Como @LIFO

Reply Guy reshared this.



Controllo vocale delle luci di casa


Avendo in casa una lampada "smart" della serie Trådfri di IKEA a fare poco di "smart", un computer con linux, ed essendo capitato sul sito di voice2json.org mi son detto: perchè non fare due più due più due?

Ed ecco il risultato! (cinque... oh no.)

Step 1: controllare le luci


Cominciamo col poter controllare le luci da riga di comando.

Cosa serve:

Salviamo lo script in una cartella appropriata, p.e. ~/tradfri/ e lo rendiamo eseguibile.

Da console lo eseguiamo una prima volta per fargli creare il file di configurazione vuoto: ~/tradfri/tradfri.rc.

Editiamo il file di configurazione e inseriamo l'ip e il codice del gateway. Possiamo anche inserire un nome utente a scelta, o lasciare che lo script ne generi uno a caso.

Eseguiamo ancora lo script per fare login. Teoricamente dovrebbe salvare in automatico la chiave di sessione nel file di configurazione, ma non funziona. La chiave viene stampata a terminale e dovremmo copiarla nel file di configurazione a mano.

Ora possiamo verificare che funzioni:

$ ~/tradfri/tradfri info

per avere informazioni sul gateway

$ ~/tradfri/tradfri devicelist

per avere un elenco degli id dei devices collegati al gateway

$ ~/tradfri/tradfri deviceinfo <id>

per avere i dettagli di ogni device. Cerchiamo quello che corrisponde alla lampadina. Nel mio caso è il device con id 65538

Proviamo ad accendere e spegnere la lampadina:

$ ~/tradfri/tradfri light <id> on
$ ~/tradfri/tradfri light <id> off

Se tutto funziona ora dovremmo poter controllare la lampadina.

Impostiamo un alias, un nome, per la lampadina. Diciamo che è la lampadina del salotto. La chiameremo quindi "salotto".

Per impostare l'alias creiamo il file ~/tradfri/aliases.rc e ci scriviamo dentro:

salotto=<id>

sostituendo l'id con quello della nostra lampadina. p.e:

salotto=65538

Ora possiamo controllare la lampadina riferendoci al suo nome:

$ ~/tradfri/tradfri light salotto on
$ ~/tradfri/tradfri light salotto off

Step 2: controllo vocale


serve:

  • lo stesso computer dello step 1
  • microfono e (opzionalmente) casse
  • aplay
  • python
  • pazienza

Installiamo voice2json seguendo la guida qui: voice2json.org/install.html

è disponibile un pacchetto debian che non ho provato, ma la compilazione da sorgente non è complicata.

Il profilo in italiano da scaricare è qui github.com/synesthesiam/it_poc…

Possiamo seguire la guida di voice2json per vedere che funzioni.

Ho trovato che nel profilo in italiano il frasario (il contenuto del file senteces.ini) non funziona benissimo, in particolare la parola "lampada" non viene riconosciuta. Si puo' sostituirla con la parola "luce" e rilanciare il training per avere risultati migliori.

Una volta che voice2json funziona, possiamo mettere assieme i pezzi.

Innanzitutto modifichiamo il file senteces.ini per adeguarsi alle nostre esigenze. Cambiamo il contenuto in:


[ChangeLightState]light_state = (accendi | spegni){state}
light_name = (soggiorno | garage){name}

<light_state> [la] luce (in|del) <light_name>

Il nuovo file imposta quindi un solo "intent" (ChangeLightState) e definisce il nome delle lampade con una sola parola.

Perchè l'accrocchio funzioni, i nomi delle lampade in questo file devono corrispondere ad almeno un alias del file ~/tradfri/aliases.rc.

Seguendo questa guida abbiamo definito l'alias soggiorno e quindi potremmo dire "accendi la luce del soggiorno" o "spegni la luce in soggiorno".

Scarichiamo lo script listen.sh, lo salviamo in ~/tradfri/ e lo rendiamo eseguibile.

Lo apriamo con un editor di testo per modificare i primi due percorsi:

  • il percorso all'eseguibile di voice2json
  • il percorso allo script tradfri

Ci servono anche tre file di suoni, che troviamo qui che vanno salvati in ~/tradfri/sounds/

nota: vi sarete accorti che arriva tutto da un repo git. Per fare più in fretta, possiamo clonare il repo https://git.sr.ht/~fabrixxm/tradfri-voice e scaricare così lo script, i suoni e il file senteces.ini da copiare nel profilo.


E lo eseguiamo.

Lo script resterà in attesa della frase di attivazione ("Hey, Mycroft"), stampando a terminale "Waiting for wake word...".
Quando riconosce la frase di attivazione, esegue un suono di notifica e resta in ascolto del comando (p.e. "accendi la luce del soggiorno").
Terminato l'ascolto del comando, emette un nuovo suono di notifica e tenta di riconosce ed eseguire il comando.
Se l'operazione va a buon fine vedremo accendersi la luce del soggiorno!
Altrimenti un nuovo suono di notifica che segnala un errore viene emesso.
Il ciclo poi si ripete e lo script si rimette in attesa della frase di attivazione.

Link e riferimenti


nota: questo post non è sponsorizzato in nessuna maniera da IKEA, la quale è proprietaria del marchio "Trådfri"

gl-como.it/v2015/controllo-voc…



Il quarto video della serie "sales pitch di linguaggi di programmazione", che tratta Haskell, è online

peertube.uno/videos/watch/play…



Tra 20 minuti, ore 21:00 "Sales Pitch Linguaggi di programmazione" 2!

live.gl-como.it/view.html#gl-c…

Si parla di haskell e rust




Annuncio: "Sales Pitch" Linguaggi di programmazione #2


Domani sera, giovedì 9 luglio alle ore 21, tornano le “sales pitch” dei linguaggi di programmazione: presentazioni brevi nelle quali si cerca di invogliare ad imparare un linguaggio di programmazione.

Il target sono persone con nozioni di programmazione: né completi principianti né sviluppatori esperti.

Questa puntata tratteremo di haskell e rust.

Per partecipare, collegatevi alla pagina di streaming del GL-Como, dalla quale si può interagire con la serata tramite la chat integrata.

live.gl-como.it/view.html#gl-c…


gl-como.it/v2015/annuncio-sale…




Jul 2
Gelato col GL-Como
Thu 9:00 PM
Gruppo Linux Como

Primo ritrovo di persona dopo il lockdown, sempre rispettando il distanziamento sociale!

Nel corso della serata, mentre ci pappiamo il cono, si vagherà per il centro a caccia di cassette della posta con lo scopo di mapparne posizione e dettagli su OpenStreetmap.

Diego Roversi attends.



Jun 30
OpenCast Live #1
Tue 9:00 PM - 9:30 PM https://live.gl-como.it/view.html#gl-opencast
Gruppo Linux Como

Image/Photo

Seguite in diretta e partecipate via chat!

Si parla di Linux, open source, software libero e tecnologia in generale, sempre senza prendersi troppo sul serio.



OpenCast Live puntata numero 1!


Cartello OpenCast Live

Dopo la puntata pilota del mese scorso, OpenCast Live parte a regime, cercando di mantenere una cadenza mensile, l'ultimo martedì del mese.

Grazie alla moderna tecnologia, martedì 30 giugno a partire dalle 21:00si potrà seguire in diretta e partecipare via chat!

Si parla di Linux, open source, software libero e tecnologia in generale, sempre senza prendersi troppo sul serio.

Venite a trovarci!

live.gl-como.it/view.html#gl-o…


gl-como.it/v2015/opencast-live…



"Sales Pitch" Linguaggi di programmazione #1


Sono online i video della prima serata a tema "Sales Pitch" linguaggi di programmazione

Si tratta di una serie di presentazioni brevi nelle quali si cerca di invogliare ad imparare un linguaggio di programmazione. Il target sono persone con nozioni di programmazione: né completi principianti né sviluppatori esperti. Non ci sono particolari vincoli sui linguaggi presentati, basta che possano chiamarsi “linguaggio di programmazione”

Le prime tre presentazioni trattano awk, python e corewars

Vai alla playlist


gl-como.it/v2015/sales-pitch-l…



Questa sera durante la settimanale riunione virtuale del GL-Como si terrà la serata “sales pitch” per linguaggi di programmazione: una serie di presentazioni
brevi nel quale cercare di convincere ad imparare un linguaggio di programmazione.

Il target sono persone con nozioni di programmazione: né completi
principianti né sviluppatori esperti.

Si parlerà di awk e di python.

Le presentazioni saranno in diretta all'indirizzo live.gl-como.it/view.html#gl-c… , con la possibilità di interagire via chat.

Appuntamento a partire dalle ore 21:00





Collapse OS is an attempt to implement a simple OS that can run on anything computer-ish in case civilisation collapses

collapseos.org/

Originally in assembler, the people around it discovered and then adopted Forth

collapseos.org/forth.html

The discussion around this topic is interesting

github.com/hsoft/collapseos/is…

@Gruppo Linux Como






New leaflets available to explain how Tails (The Amnesic Incognito Live System) works.

They are available in in English, French, Italian, Portuguese, and Spanish:
tails.boum.org/contribute/how/…

You can print them out, to distribute them where ever you believe fits.

Thanks to @dileodile for making it, and thanks to @[url=https://chaos.social/users/anhdres]anhdres[/url] for the illustrations.

(Tails protects you against surveillance, censorship, advertising, and viruses with a full digital security toolbox to allow secret communication)
Immagine/foto
Immagine/foto

@Gruppo Linux Como





Torna OpenCast, questa volta Live!


Cartello OpenCast Live

Dopo anni di silenzio torna OpenCast in versione video e live!

Grazie alla moderna tecnologia, martedì 26 maggio a partire dalle 21:00si potrà seguire in diretta e partecipare via chat!

Si parla di inux, open source, software libero e tecnologia in generale, sempre senza prendersi troppo sul serio.

Venite a trovarci!

live.gl-como.it/view.html#gl-o…


gl-como.it/v2015/opencast-live…



May 26
OpenCast Live
Tue 9:00 PM - 10:00 PM https://live.gl-como.it/view.html#gl-opencast
Gruppo Linux Como

Image/Photo

Torna OpenCast in versione Live!

Martedì 26 maggio a partire dalle 21:00 saremo live all'indirizzo live.gl-como.it/view.html#gl-o… , con la possibilità di interagire via chat!

Opencast è il podcast del GL-Como che tratta di open source, software libero e tecnologia in generale.

Fabrix.xm reshared this.



Installare Jitsi


Nell'ultimo articolo abbiamo visto come installare un server per fare dirette video per fare dirette uno a molti con feedback tramite chat testuale.

In gruppi più piccoli però è più comodo e immediato fare videochiamate in cui tutti possano intervenire con audiovideo: per fare questo usando software libero possiamo usare jitsi meet, una piattaforma che fa uso dello standard WebRTC.

In questo modo, chi vuole partecipare alla videochiamata non deve fare altro che collegarsi al server con un qualsiasi browser moderno e creare una stanza o unirsi ad una stanza esistente, senza bisogno di nessun tipo di registrazione.

Se questo modello di videochiamata interessa, ma si è pigri, si può andare su iorestoacasa.work/ e sfruttare le istanze jitsi messe a disposizione da volontari per il periodo di emergenza. Dato però che non siamo pigri, possiamo continuare a leggere questo articolo per vedere come installare una propria istanza.

Installazione


Requisiti


L'installazione di jitsi dovrà avvenire su un server con buona disponibilità di banda; per videochiamate tra piccoli gruppi (~10 persone) può bastare un qualsiasi VPS economico, mentre se si pensa di offrire un servizio pubblico conviene rispettare i requisiti indicati suiorestoacasa.work/voglio-contr… .

Server web, certificati, ecc.


Innanzitutto, è necessario installare un server web a scelta tra apache e nginx: noi abbiamo scelto nginx (per poterlo usare anche come server di streaming, seguendo l'articolo di Fabrixxm).

Usare il proprio metodo preferito per ottenere dei certificati ssl; jitsi si aspetta di trovarli nei file /etc/ssl/jitsi.example.org.key per la chiave e /etc/ssl/jitsi.example.org.crt per il certificato pubblico (completo di certificato intermedio).

Controllare poi che /etc/hosts abbia il FQDN configurato su localhost e aggiungerci una voce Dev-VideoConf-Jitsi per prevenire dei problemi di connessione SCTP:
127.0.1.1 jitsi.example.org jitsi
127.0.0.1 localhost Dev-VideoConf-Jitsi
::1 localhost ip6-localhost ip6-loopback

Jitsi


Purtroppo jitsi non è disponibile in Debian, ma gli sviluppatori forniscono un repository con dei pacchetti .deb aggiornati: aggiungere tale repository in /etc/apt/sources.list.d/jitsi.list:
deb download.jitsi.org stable/

e abilitare la relativa chiave di firma:
# wget -qO - download.jitsi.org/jitsi-key.g… | apt-key add

Aggiornare apt ed installare jitsi:
# apt update
# apt install jitsi-meet

Verranno poste le seguenti domande:
The hostname of the current installation:rispondere con l'FQDN della macchina <server>.<dominio>SSL certificate for the Jitsi Meet instancerispondere “I want to use my own certificate”Full local server path to the SSL key file:rispondere /etc/ssl/jitsi.example.org.keyFull local server path to the SSL certificate file:rispondere /etc/ssl/jitsi.example.org.crt
(attenzione, per questi ultimi due abbiamo avuto problemi nell'usare valori diversi dal default e abbiamo preferito copiare i file nella posizione attesa piuttosto che cercare di risolverli.)

Se il server che si sta usando usa nat (come fanno alcuni fornitori di VPS per fornire indirizzi pubblici riassegnabili a macchine diverse), aggiungere le seguenti righe a/etc/jitsi/videobridge/sip-communicator.properties:
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<iplocale>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<ip pubblico>

(ad esempio <ip locale> sarà qualcosa come 192.168.42.23)

E riavviare il servizio videobridge2:
# service videobridge2 restart

Conclusioni


Il nostro server è pronto, a questo punto basta aprirejitsi.example.org/v2015/feeds/… con un qualunque browser con supporto webrtc, creare una stanza, passare l'indirizzo ai propri amici e parlare a piacere.

Non è però tutto qui: in articoli successivi vedremo come usare jitsi come fonte per streaming o registrazioni, per avere uno strumento semplice per organizzare conferenze da remoto o realizzare progetti creativi.


gl-como.it/v2015/installare_ji…



Dirette video con NGINX e OBS Studio


In questi giorni di reclusione forzata, si fa affidamento a internet per portare avanti le nostre vite: telelavoro, videoconferenze, scuola online.

In questo piccolo articolo, vediamo come configurare un nostro server per fare dirette online, in alternativa a Youtube, Facebook, etc etc.

Cosa serve

  • un server, magari una VPS, con una buona disponibilità di banda
  • conoscenze base di linux, bash, ssh, e cose così
  • colla vinilica
  • forbici con la punta arrotondata

Protocolli e software


Il protocollo più usato per le dirette video è RTMP

Per funzionare, una sorgente invia un flusso di dati a un server che si occupa di rigirare il flusso ai vari client che lo richiedono.

Questo è il motivo per cui serve avere banda disponibile. Una diretta con 10 spettatori occuperà 10 x banda necessaria per il video in uscita più quella in ingresso per la sorgente.

È possibile far funzionare il server su un RaspberryPI a casa? Puo' essere, ma non potrete avere molti spettatori, a seconda della vostra connessione a internet.

Come sorgente useremo OBS Studio, come server NGINX, che è più conosciuto come server web, ma esiste un modulo che supporta rtmp.

Come client potremmo usare VLC, o altri player che supportano RTMP, ma vogliamo che la diretta sia visibile da una pagina web.

Fortunatamente NGINX supporta anche HLS, un protocollo di stream video basato su http, che permette di visualizzare la diretta in un browser, grazie a librerie javascript come video.js.

NGINX lo faremo girare su un server con Debian 10 "buster".

In questo articolo presumiamo che non ci sia già un server web in esecuzione (tipo Apache o altri)

Installiamo e configuriamo il server


installiamo nginx e il modulo rtmp

# apt install nginx libnginx-mod-rtmp

Il modulo rtmp ha una sua configurazione da mettere nel file /etc/nginx.conf. Per facilitarci la vita, creaiamo una cartella che conterrà la configurazione per rtmp

# mkdir -p /etc/nginx/rtmp.d

e nel file /etc/nginx.conf aggiungiamo

rtmp {
include /etc/nginx/rtmp.d/*;
}

Aggiungiamo la configurazione di rtmp. NGINX si occuperà di creare i segmenti video e la playlist m3u8 necessari per il protocollo HLS, dobbiamo dirgli dove. Glieli faremo salvare in /tmp/hls.

Creiamo il file /etc/nginx/rtmp.d/hls

server {
listen 1935;
ping 30s;
notify_method get;

application live {
live on;

# sample HLS
hls on;
hls_path /tmp/hls;
hls_sync 100ms;
hls_fragment 3;
hls_playlist_length 60;
allow play all;
}
}

NGINX sarà in ascolto per lo stream rtmp sulla porta 1935, la porta di default del protocollo.

Ora configuriamo la parte web.

Sostituiamo il contenuto del file /etc/nginx/sites-available/default con:

server {
listen 80;
listen [::]:80;
server_name ilmioserver.it;

root /var/www/html;

location / {
index index.html;
}

location /hls {
# Disable cache
add_header Cache-Control no-cache;

# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';

# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}

types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}

root /tmp;
}

# rtmp stat
location /stats {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}

# rtmp control
location /control {
rtmp_control all;
}
}

Con questo file configuriamo:

  • la radice del nostro web server, da dove verrà servita la pagina agli spettatori, che sarà salvata in /var/www/html
  • il percorso (/hls) da cui saranno serviti i file video, presi da /tmp/hls. È lo stesso percorso impostato nella configurazione della parte rtmp.
  • due percorsi di 'supporto', compresa una pagina di statistiche sugli stream.

Verifichiamo che la configurazione non contenga errori di sintassi:

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ottimo. Ricarichiamo la configurazione.

# systemctl reload nginx

La pagina di visualizzazione


Creiamo il file /var/www/html/index.html

<!DOCTYPE html>
<html lang="en">
<head>
<link href="https://vjs.zencdn.net/7.1/video-js.min.css" rel="stylesheet">
<script src="https://vjs.zencdn.net/7.1/video.min.js"></script>
</head>
<body>
<video id="player" class="video-js vjs-default-skin" controls >
<source src="/hls/mystream.m3u8" type="application/x-mpegURL" />
</video>

<script>
var options, video;

options = {
autoplay: true,
muted: true
};

video = videojs('player', options);
</script>

</body>
</html>

notiamo l'indirizzo della sorgente video: src="/hls/mystream.m3u8": mystreamsarà l'identificativo della diretta da utilizzare nella configurazione di OBS.

Per finire, aggiungiamo il foglio di stile per le statistiche. Usiamo quello di esempio installato col pacchetto:

# gunzip /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl.gz -c > /var/www/html/stat.xsl

le statistiche saranno raggiungibili su http://miodominio.it/stats.

In onda


Installiamo OBS Studio.

Al primo avvio, eseguiamo la configurazione guidata.

Scegliamo 'Ottimizza per le dirette'

Segliamo una risoluzione e un framerate (FPS). Io ho scelto 1280x720 a 30 FPS.

Ora configuriamo il servizio di streaming. Scegliamo "Personalizzato...".

Come server inseriamo rtmp://miodominio.it/live/

Come 'Codice delle dirette' mettiamo mystream. Nota: è lo stesso nome utilizzato per la sorgente video nella pagina html, mystream.m3u8

Viene eseguito un test che ottimizza le impostazioni.

A questo punto aggiungiamo delle fonti in OBS e pigiamo su "Avvia la diretta". Vi rimando alla documentazione di OBS per la cofigurazione di scene e fonti.

La diretta sarà visibile con un browser su http://miodominio.it/ o con un lettore video, come VLC, aprendo l'indirizzo http://miodominio.it/hls/mystream.m3u8

Interattività


Questo sistema permette di avere una diretta video "uno a molti" tipo televisione. Ma questo è internet, è interattivo! Vogliamo poter ricevere domande e commenti dai nostri spettatori mentre siamo in diretta.

I servizi proprietari di streaming mettono a disposizione una chat a corredo del video. È una buona idea, facciamolo anche noi!

Ovviamente non ci metteremo a scrivere un sistema di chat, ma useremo uno dei più usati e storici sistemi su internet: IRC.

In particolare, inseriremo un client IRC web nella pagina, configurato per collegarsi a un canale predefinito. Da qui gli utenti potranno interagire tra loro e con noi (che terremo un client IRC aperto durante la diretta).

Utiliziamo KiwiIRC come client IRC web. La documentazione ci dice che il formato dell'url per indicare il canale da utilizzare è https://kiwiirc.com/nextclient/#irc://irc.freenode.net/#<nome del canale>. (ci colleghiamo alla rete irc di freenode)

Aggiungiamo quindi il seguente pezzo di codice html nella pagina index.html, appena sotto il tag </video>

<iframe width="100%" height="600"
src="https://kiwiirc.com/nextclient/#irc://irc.freenode.net/#ilmiocanale"></iframe>

(ricordiamoci di mettere il nome del canale corretto)

Conclusioni


Abbiamo creato da zero un semplice servizio di streaming live interattivo.

Da qui è possibile modificare il sistema per supportare più live in contemporanea: basta creare una pagina con il corretto nome dello stream come sorgente video e il corretto canale irc per la chat.

Una nota sulla sicurezza: il server RTMP è in ascolto su internet senza alcun sistema di autenticazione. Chiunque puo' avviare uno stream.

Una soluzione puo' essere mettere il server RTMP in ascolto solo su localhost, modificando il file /etc/nginx/rtmp.d/hls

server {
listen localhost:1935;
[...]

e utilizzare un tunnel ssh per collegarsi:

$ ssh -L 1935:localhost:1935 utente@miodominio.it

In questo caso, OBS dovrà collegarsi a rtmp://localhost/live

Esistono altre possibilità per autenticare la connessione RTMP, ma le indagheremo in un prossimo articolo.


gl-como.it/v2015/diretta-video…

Paolo Pedaletti reshared this.

This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.