Snul

Beh… alla fine non ne potevo più di gnet, scrivere i bindings per vala è veramente, come dire, poco gratificante ed e’ una libreria praticamente non mantenuta da anni.

Avendo bisogno di implementare un client Tcp dalle funzionalita’ veramente minime per Tuntun, mi son messo giù e l’ho fatto direttamente in vala interfacciandomi solo con le funzioni del s.o (BSD sockets).

Il risultato non è il massimo, ma alla fine raggiunge lo scopo e funziona, quindi ho pensato che potrebbe essere utile anche a qualche altra anima informatica se non altro come esempio di come (non!) programmare in vala.

Ecco quindi Snul una semplice libreria da utilizzare con il copia & incolla. (Sì lo so la paginetta è scritta in inglese, che dici? Ah è maccheronico? Beh sono apprezzati aiuti e commenti al riguardo…)

P.s.

Perchè snul? Oltre al simple network utility library penso che si addica ancor meglio questa definizione… rimanendo comunque in attesa di una persona dai modi migliori: GIO.

Tuntun: una scusa per cambiare i propri strumenti di lavoro

Diversi cambiamenti nella mia vita da programmatore “hobbista” tutti scaturiti dalla malsana idea di riscrivere ovpnClient in vala.

Prima difficoltà: non esistono i binding per gnet e gnet stessa sembra una libreria destinata all’oblio.

Seconda difficoltà: anjuta, seppur un bel IDE è ancora un po’ immaturo e per me è arrivato il momento di fare una scelta con la quale convivere per un po’ di tempo (intanto continuero’ a tenerlo sott’occhio).

E per non farmi mancare nulla perche’ non cambiare anche il ben amato svn con il più indicato (in questo caso) git?

Bene 2 settimane di test, ritest, letture di manuali tutorial ed howto.
Inoltre ho mosso qualche timido passo nella comunità #vala nonostante il mio inglese non sia certamente fra i migliori.

Il risultato?

GNet: primi binding per vala e qualche patch inviata a Juerg per vapigen (di sicuro ho scritto del pessimo codice, ma ho individuato almeno quello che manca in vapigen per gestire librerie cosi’ “difficili” come gnet)

Editor o meglio IDE: emacs. Per configurarlo ho penato un po’ soprattutto per i caratteri e l’indentazione, ma inizio ad ambientarmi e mi piace (qui c’è il mio .emacs).

GIT: ho solo scalfito la superficie, ma per ora clono, tengo traccia delle modifiche nel repository svn di vala, riapplico le mie patch riesco a far diff e quant’altro senza troppe difficoltà e sinceramente, anche se git presenta alcuni lati oscuri, non mi è sembrato troppo complicato e soprattutto mi ha agevolato non poco nel mantere il mio “patchset” personale da applicare a vapigen.

Tornando al titolo del post: tuntun sarà una lenta riscrittura di ovpnClient in Vala, con qualche “minima” miglioria e nulla di piu’.

Perche’ lo sto facendo? Beh per divertimento, per avere una scusa per stravolgere il mio modo di programmare con linux, piu’ semplicemente per riprendere un po’ di confidenza con Vala dato che ne sono cambiate di cose ed inoltre perchè io sono il primo e forse unico utente di ovpnClient e vorrei avere qualche cosa di piu’ maneggevole da modificare.

P.S.
Non ho intenzione di installare network manager solo per gestire qualche (una) vpn su questo povero P-IV 1.4GHz, che già di cose ne fa troppe.

ovpnClient 0.0.2 (alpha)

Da qualche tempo ho ripreso lo sviluppo di ovpnClient e dopo qualche colpo di mola una limatella qua e là, un aggiusto qui, un taglietto lì, posso considerare questa versione features complete…

Ovviamente da bravo masochista ragazzo quale sono, ho riscritto tutto il programma apportando non pochi cambiamenti rispetto al giocattolo precedente:

  • La comunicazione con il server avviene tramite l’interfaccia OpenVPN Management Interface (niente piu’ spawn di processi, pipe ed inutili richieste di password)
  • E’ possibile gestire piu’ connessioni OpenVPN
  • Il cambiamento di stato di una connessione è visualizzato tramite libnotify
  • E’ disponibile una rudimentale finestra di log, con la possibilità di inviare stringhe di comando al server OpenVPN
  • Il tutto scritto secondo le regole ferree della programmazione ai g-oggetti… (non è vero in questo campo sono un neofita!)

Prima di rilasciare il ovpnClient al pubblico ludibrio devo sistemare un po’ i sorgenti (per ora veramente impresentabili) ed assicurarmi che il make check non dia errore. Ed ora ecco com’è la nuova creatura.

Connessione avvenuta
Connessione!

Modifica delle proprietà di connessione
Proprietà

Visualizzazione log e finestra dei comandi
Log