Category Archives: Software

Vala!

Bene il bootstrap è fatto: compilato il nuovo Vala (da svn) che è scritto in vala stesso ed è selfhosting da qualche mese con il valac 0.0.3 scritto in c, poi ho ricompilato di nuovo vala con l’ultimo valac scritto in vala! Ho fatto un piccolo test:

Vala

vala & gedit

Sembrerebbe perfetto….

Girovagando per la rete mi sono imbattuto nel progetto Vala.

Bello interessante, non vedo l’ora di farci un giro (che credo sarà comunque domani…) Mi meraviglia il fatto che se ne sia parlato poco e che anche cercando fra gli archivi usenet non ci siano molti thread al riguardo. Solo qualche piccolo annuncio su gnome-announce, ma nemmeno una risposta, nè un dibattito, un flamewar NADA…

Mi godo comunque la sintassi piacevole e familiare di questo nuovo, nativo e giovane linguaggio!

P.S.
Come tutte le cose create in questo mondo imperfetto e basate su una qualche forma di precompilazione, anche qui c’è qualche controindicazione.

Es.
C# bug del runtime mono -> tutti i programmi hanno dei paurosi memory leak -> sistemo la runtime -> distribuisco la nuova versione -> tutte le applicazioni ora funzionano a dovere.

Vala -> genera codice C senza un free nei distruttori dei vari oggetti di una libreria (es. GTK+) -> tutti i programmi hanno dei memory leak -> correggo il compilatore / preprocessore -> devo ricompilare e ridistribuire *tutti* i programmi precedentemente compilati con la versione buggata!!!

AGGIORNAMENTO. Non ho saputo resistere: fatto un pacchetto per Debian e scritto il mio primo programma in Vala… il codice GObject-C che genera è bello e molto umano!!!

Under attack (che palle)!

Il caro vecchio amico logwatch oggi mi ha riportato:

sshd:

Authentication Failures:

root (124.128.254.76): 235 Time(s)

unknown (124.128.254.76): 114 Time(s)

postgres (124.128.254.76): 3 Time(s)
daemon (124.128.254.76): 2 Time(s)
unknown (218.247.185.170): 1 Time(s)

Invalid Users:

Unknown Account: 115 Time(s)

Ma chi saranno mai? Ah degli amici dalla Cina! (e proprio da Pechino!)


Da MaxMind GeoIP City/ISP/Organization Edition Results

Hostname Country Code Country Name Region Region Name City Postal Code
124.128.254.76 CN China 22 Beijing Beijing
218.247.185.170 CN China 22 Beijing Beijing
Latitude Longitude ISP Organization
39.9289 116.3883 CNC Group Shandong province network CNC Group Shandong province network
39.9289 116.3883 China Internet Network Information Center BEIJING ZHEN-FEN-WEI-YE CO.LTD

Ciao ciao!

Festa della Madonna

Come l’8 dicembre scorso grazie ad un subdolo sbalzo di tensione mi sono ritrovato con il computer bloccato al boot. La mente è subito volata alle decine di migliaia di foto contenute nel hard disk, i sorgenti, quasi 10 anni di posta elettronica, musica… A differenza dell’8 dicembre ho imparato la lezione:

  1. Stare calmi
  2. Rimanere clami
  3. Calmarsi
  4. Distrarsi (io sono andato a pranzo)
  5. Parlare del piu’ e del meno per qualche ora
  6. Ritornare al computer
  7. Calmarsi
  8. Capire cosa è successo

A differenza dell’8 dicembre scorso dove io ero stato artefice del mio infimo destino (avevo spianato la tabella delle partizioni per installare win98 ed aggiornare il firmware del masterizzatore DVD), questa volta sono stato vittima della iella!

Lo sbalzo di tensione non poteva avvenire in un momento peggiore: stavo aggiornando il S.O. e ricompilando Anjuta, quindi il disco frullava a palla. Inoltre al riavvio Grub si fermava nel caricamento dello stage2 del bootloader: la tabella delle partizioni non era saltata….

Boot dal DVD di installazione di Sarge, ALT-F3… la console… mount in readonly di ide blah blah blah part1…, l’hard disk frulla, frulla frulla…. ok… chroot /mnt… fsck.reiserfs… mi aspettavo un bel frullato di file ed errori, invece tutto ok….

fsck.reiserfs part3… quella con i dati… la tensione sale… mi metto a suonare durante l’attesa… tutto ok!

Ma allora perche’ grub non parte? grub-install –recheck /dev/ blah blah blah /part1…. failed stage2 loader corrupted…. grub-install /dev/ blah blah blah… embedded 18 sectors…. un recheck… ora tutto ok!

reboot… linux riparte come se non fosse successo nulla…

perSbaglio invece se l’è cavata con un check a mano di hdb, mentre il raid software su cui è installato il s.o. ed il sito web non ha perso un colpo… l’unica cosa è che sono dovuto andare in soffitta per eseguire il check dato che debian si era fermata alla classica richiesta del press ctrl-d o dammi la password di root. E se il sever fosse stato a centinaia di chilometri da me?

Tutto è bene quel che finisce bene…

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

Ritorno al futuro!

Questa sera cercando qualche dritta su come scrivere l’ennesimo lexical analyzer mi sono imbattuto in questo post che parlando di compilatori fa un accenno sull’architettura VAX.

From: “John Fredrickson”
Newsgroups: comp.compilers
Date: 7 Jun 2006 23:18:28 -0400
Organization: Compilers Central
References: 06-06-009
Keywords: history, architecture
Posted-Date: 07 Jun 2006 23:18:28 EDT

Peter,
I don’t know much about the internals of the VAX compilers other than they were all optimizing compilers that subscribed to the same calling standard, enforced by the VMS operating system and the one linker. That’s why you could develop multiple modules of a software system in multiple languages (VAX-BASIC, VAX-FOTRAN, VAX-COBOL, etc) and link the object modules together into a single EXE file.
The VAX hardware and VMS Operating System were designed together and were a beautiful system. Digital Equipment Corporation (DEC) did a good job transitioning to Alpha and OpenVMS.

La parte interessante

they were all optimizing compilers that subscribed to the same calling standard

seguita da

That’s why you could develop multiple modules of a software system in multiple languages (VAX-BASIC, VAX-FOTRAN, VAX-COBOL, etc)

Oggi suona familiare se si pensa a DotNet!

…e perchè Windows non ce l’ha?

L’ultima cosa in ordine cronologico della quale sento una grande mancanza in windows è il metodo ssh:/// disponibile in Gnome!

Una vera manna per chi, come me ha una serie di macchine da amministrare:

  • posso sfogliare le cartelle con nautilus
  • aprire i file di configurazione con gedit

Inizialmente sembra simile ad una condivisione di windows o NFS, in realtà la situazione è ben diversa:

  • un solo servizio da installare openssh che del resto è d’obbligo in un server soprattutto se remoto!
  • firewall friendly!
  • nessuna condivisione pre-definita per cartella, il filesystem è a mia completa disposizione come se fossi “loggato” localmente
  • i dati viaggiano in rete criptati, è quindi sicuro aprire anche files “sensibili”
  • possibilità di eseguire l’autenticazione tramite certificati di protezione (e non nomi utenti e password da ricordare)
Nautilus SSH

Comodo, molto comodo!

GoVPN!

Finalmente dopo qualche tentativo, make distcheck è stato eseguito con successo:

....

make[2]: Leaving directory `/home/andrea/Documenti/src/anjuta/govpn/govpn-0.1/_build'
rm -f config.status config.cache config.log configure.lineno configure.status.lineno
rm -f Makefile
make[1]: Leaving directory `/home/andrea/Documenti/src/anjuta/govpn/govpn-0.1/_build'
{ test ! -d govpn-0.1 || { find govpn-0.1 -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr govpn-0.1; }; }
===========================================
govpn-0.1 archives ready for distribution:
govpn-0.1.tar.gz
===========================================

Sono quindi molto orgoglioso di annunciare l'uscita di GoVPN! E mi raccomando andateci piano è la prima applet che scrivo ed è la prima volta che mi cimento con auto... beep. Oops sono stato censurato....