Archive for the ‘Virtual world’ Category
iCTF 2010
Posted in Virtual world, tagged hacking, iCTF, informatica on 04/12/2010| Leave a Comment »
Il passaggio a Linux
Posted in Virtual world, tagged informatica, linux on 02/12/2010| Leave a Comment »
(Nota: ripropongo qui un post che sto pubblicando su Slacky.eu, dato che è un ricordo di come sono passato da Windows a Linux…)
Io, ironia della sorte, ho scoperto Linux su Win Magazine! Lo compravo agli inizi del decennio quando facevo le superiori, ed in un numero avevano presentato una di quelle “distribuzioni” che si installavano sulle fat32 e si facevano girare da lì… e quello è stato l’inizio. Poi ho anche provato Knoppix, che ho scaricato di straforo dove trovavo una connessione decente (dato che a casa 56k) ad ogni uscita di una nuova versione.
Poi, estate 2003, ho installato Mandrake, con una tensione che si tagliava col coltello dato che l’ho messa in parallelo a Windows sul pc di casa, e se fosse andato a p… il ridimensionamento della partizione, sarei stato un po’ nella m…a. Ma per fortuna andò tutto bene!
Ma quella Mandrake è durata poco, sono passato quasi subito a Slackware 9, che per quanto mi riguarda rimane la migliore, su un p2 400 faceva boot da zero a KDE caricato in qualcosa come 30/40 secondi, prima di hal dbus ed i mille servizi che ora vengono lanciati all’avvio; ricordo che quando cambiai hardware sotto il naso dell’hard disk, passando da un p2 ad un p3, windows esplose ma linux resse perfettamente, dovetti solo ricompilare Alsa…
Knoppix l’ho poi usata il primo anno di università (2004), dato che era a sbattimento minimo, ma è durata un anno accademico: poi 6 mesi di Slack, ed infine Ubuntu (che dura dal gennaio 2006 ad oggi). And that’s all, folks! 🙂
Neverwinter Nights Platinum
Posted in Virtual world, tagged informatica, videogiochi on 25/11/2010| 2 Comments »
alex@alex-laptop:work$ du -sh giochi/nwn/ 11G giochi/nwn/
Tesi di laurea
Posted in Virtual world, tagged Erlang, informatica, Internet, laurea, università on 23/11/2010| Leave a Comment »
(Premessa: ieri ho consegnato la tesi, di conseguenza il lavoro è sostanzialmente finito, e l’appello di laurea è confermato per il 20 dicembre; è ora di rispondere ad un po’ di richieste che ho ricevuto sull’argomento del mio elaborato, premesso che per una descrizione dettagliata del lavoro e le relative conclusioni dovrete venire alla mia laurea o a scelta aspettare i giorni successivi, quando pubblicherò il PDF)
Il progetto che verrà presentato il 20 dicembre ha avuto origine da una ricerca più ampia riguardante sistemi in grado di adattarsi a runtime al contesto all’interno del quale si trovano ad operare, e possano perciò modificare il proprio funzionamento, i servizi offerti ad eventuali client o il modo in cui sfruttano servizi a loro offerti in base a modifiche dell’ambiente o delle condizioni di funzionamento proprie dei sistemi stessi considerati. Due sono stati i settori di questa ricerca su cui il lavoro si è concentrato: il primo riguarda gli stili architetturali in grado di supportare questo paradigma, mentre il secondo riguarda i linguaggi di programmazione più adatti per sviluppare programmi di questo tipo.
Per quanto riguarda i primi, la condizione è che riescano a garantire scalabilità e ad isolare quelle parti del software che effettivamente possano richiedere un aggiornamento; l’esempio primo di architettura è REST, che essendo alla base del Web di oggi è evidentemente in grado di supportare uno scenario dinamico come quello di Internet, mentre l’esempio che segue immediatamente è Computational REST, una sorta di evoluzione del primo sviluppata da alcuni ricercatori presso l’Università della California presso Irvine, il quale riprende alcuni concetti di codice mobile e li integra in un’infrastruttura costruita sul protocollo HTTP, per costruire un Web in cui l’attenzione non sia più sul contenuto ma sulla computazione: per semplificare molto (forse troppo), da un certo punto di vista potreste vedere questa visione come un AJAX “on steroids“: invece di avere semplice codice Javascript che si muove nella Rete, ci sarebbe codice vero, scritto in linguaggi di programmazione “reali” e veramente eseguito dalle macchine…
Per i linguaggi, invece, una disamina dei più promettenti è stata fatta nell’articolo scritto per il corso di “Argomenti avanzati di Ingegneria del Software“, e tra i migliori è emerso Erlang, un linguaggio di programmazione funzionale orientato alla concorrenza: esso supporta non solo la creazione e gestione di migliaia di processi leggeri, distribuiti dinamicamente sui core di una singola macchina o addirittura tra macchine di una rete, ma permette anche l’aggiornamento dinamico del codice: un applicativo può infatti subire l’aggiornamento di uno o più moduli “a caldo”, senza dover fermare il servizio e senza che le istanze del codice precedente l’aggiornamento vengano fermate o in qualche modo disabilitate.
L’idea della tesi è stata quindi di mettere insieme l’architettura CREST, in origine sviluppata in Scheme, ed Erlang, e verificare se l’utilizzo di un linguaggio di programmazione in grado di offrire numerose facilitazioni sia per la comunicazione tra processi che per l’aggiornamento dinamico del codice avrebbe ben supportato tale architettura. Per i dettagli e le conclusioni sia sul linguaggio che sull’architettura, non posso anticiparvi nulla: vi aspetto a dicembre!
P.S.: dopo l’appello di laurea seguirà un secondo post con le conclusioni ed un paio di riflessioni personali sullo sviluppo di Internet, se non doveste farcela ad essere presenti vedrò comunque di soddisfare la curiosità che questo post vi dovrebbe lasciare…
Dolphin in KDE SC 4.6
Posted in Virtual world, tagged informatica, KDE on 20/11/2010| 1 Comment »
Ne avevamo già avuto il sentore, ma oggi c’è l’annuncio ufficiale: Dolphin in KDE SC 4.6 conterrà un pannello per la navigazione faceted! (perdonatemi se uso il termine inglese, ma quello italiano è un discreto pacco…)
Insomma, finalmente (parte dei) frutti della mia estate 2009 passata a programmare arrivano in mainstream, per quanto purtroppo (e con grosso dispiacere) io non ci abbia più lavorato praticamente da questa primavera, ovvero dall’epoca del rilascio 0.3 di Sembrowser; giusto per ripercorrere brevemente la storia:
- partecipo alla Google Summer of Code 2009, lavorando su un’interfaccia di apertura e salvataggio file prettamente semantici per KDE; lì mi viene l’idea di utilizzare le faccette nel primo dei due, ispirato da un’annetto di lavoro su questi simpatici oggetti passato in ufficio Web del poli
- al meeting Nepomuk di ottobre dello stesso anno, decidiamo di provare a portare tale barra di filtraggio dei risultati in Dolphin; con un hack al volo faccio una proof of concept, ma è troppo tardi per inserire qualunque cosa in KDE 4.4 (e, peraltro, anche in 4.5), a causa del feature freeze già in atto e del poco tempo libero del maintainer di Dolphin
- tra la fine del 2009 ed i primi mesi del 2010, scrivo un browser per KDE da usare come cavia per provare tale pannello, e ricercare quindi le modalità migliori per mostrare il tutto; nel frattempo, la libreria per le query di Nepomuk evolve alla grande e diventa molto usabile ed estremamente comoda
- a partire dalla primavera, e soprattutto poi in estate (mentre noi siamo sotto esame, maledizione!), Sebastian Trueg ed altri ragazzi coinvolti nella Summer of Code 2010 migliorano la libreria per le faccette
- questo autunno si integra il tutto in Dolphin.
Insomma, questo potrebbe essere finalmente un buon passo avanti per avvicinare gli utenti a Nepomuk e mostrare loro l’utilità di questo progetto, in attesa che arrivi un lavoro integrato anche per le activity (ed a quel punto non ci saranno più scuse!).
Edit: ecco la pagina delle API per integrare il faceted browsing in qualunque applicazione KDE!
Rebar: un makefile per Erlang
Posted in Virtual world, tagged Erlang, informatica on 17/11/2010| Leave a Comment »
Se vi è capitato di creare progetti Erlang un minimo complessi, è molto probabile che abbiate usato un makefile, più o meno complesso, con cui compilare i sorgenti, creare la documentazione e magari funzionalità più complesse.
Ebbene, finalmente c’è uno strumento adatto a questo linguaggio e framework: Rebar. Si tratta di un progetto scritto naturalmente in Erlang, di fatto è uno script di circa 85k, il quale è in grado di eseguire le richieste più comuni, ovvero la compilazione, la generazione di documentazione, la pulizia del progetto ed il lancio dei test EUnit; è supportata anche la generazione di scheletri di applicazione, dato un file template che descriva cosa debba essere copiato.
In realtà, la funzionalità più utile è la possibilità di gestire le dipendenze: ciascuno dei comandi di cui sopra, infatti, controlla se esiste una sottocartella deps, e se esiste ciascuno dei progetti lì contenuti viene a sua volta compilato prima del progetto principale; unico vincolo: sia le dipendenze sia l’applicazione principale devono essere configurate utilizzando il behaviour application, ed in particolare la soluzione migliore rimane inserire nella directory sorgente un file del tipo:
{application, myapp,
[{description, "Myapp description"},
{vsn, "x.y"},
{modules, []},
{registered, []},
{mod, {myapp_app, []}},
{env, []},
{applications, [kernel, stdlib, crypto]}]}.
con la configurazione dei moduli vuota, e questa viene automaticamente riempita dai moduli effettivamente compilati e copiata nella directory binaria in fase di compilazione; naturalmente, non è sufficiente avere tale file, servono anche i sorgenti correttamente configurati per utilizzare il behaviour. Unico bug: se una delle dipendenze non è un’applicazione, il sistema restituisce errore, mentre io personalmente avrei preferito che si limitasse ad un warning, o comunque a compilare i sorgenti da src a ebin; nulla di grave, la maggior parte dei progetti Erlang presenti online sono anche applicazioni, ed anche voi se scrivete un progetto conviene che utilizziate la medesima modalità, che vi permette anche di gestire le release e l’aggiornamento (automatico).
La configurazione avviene tramite un file rebar.config, in cui si possono specificare le directory del progetto ed alcune opzioni minori, peraltro tutte documentate nella pagina linkata sopra.
Non viene distribuito ufficialmente con Erlang, ma è decisamente un ottimo strumento, quantomeno costruito appositamente per questo linguaggio, rispetto a makefile che è sicuramente flessibile ma richiede qualche linea di codice in più per supportare bene queste applicazioni.
Erlang R14B for Maverick
Posted in Virtual world, tagged Erlang, informatica, Ubuntu on 15/11/2010| Leave a Comment »
Un breve update al post precedente sull’argomento: ho aggiornato i pacchetti del PPA alla versione 14B di Erlang (dalla precedente 14A, un update minore dell’interprete e delle librerie), sempre con un backport da Debian, questa volta experimental; questo ha come principale conseguenza il fatto che i pacchetti potrebbero non essere stabili, per quanto dallo stato degli stessi nel sistema originale sembra che non siano emersi problemi al momento.
Naturalmente, continuerò a seguire il percorso dei pacchetti dall’altra parte, ed i backport da questa parte; vi rimando alle release notes per sapere i cambiamenti rispetto alla versione precedente, da un primo test in locale direi che le applicazioni principali non sembrano dare problemi.
Erlang R14A for Maverick
Posted in Virtual world, tagged Erlang, informatica, Ubuntu on 01/11/2010| 1 Comment »
Una breve nota: data la necessità (o meglio, il desiderio) per la demo della mia tesi di provare anche su Ubuntu Erlang R14, ovvero l’ultima release stabile che già uso su Debian testing, e dato che Maverick (e forse anche Narwhal) continua a proporre la versione 13, ho deciso di rendermi autonomo.
Nel mio PPA potete trovare i pacchetti della release R14A (risalente a giugno), in un backport diretto (vale a dire as is) dei pacchetti presenti in Squeeze; ho tentato l’installazione, e la mia demo funziona egregiamente, ma non ho testato null’altro, compresi i vari Wings3D ed altri programmi Erlang presenti nei repository; in sostanza, i miei pacchetti potrebbero non essere utili per voi e/o fare danni ai vostri sistemi, io non mi prendo alcuna responsabilità in merito.
Usateli perciò con attenzione, e soprattutto non provateli direttamente in produzione; se avete qualche osservazione o rilevate qualche problema, fatemi pure un fischio, tenendo presente che a) non sono il manutentore ufficiale e b) potrei non avere idea di come risolvere i vostri problemi 😀
OpenCL, Ati e LinuxPro
Posted in Virtual world, tagged GPU, informatica, linux on 25/10/2010| Leave a Comment »
L’ultimo LinuxPro tratta un argomento piuttosto interessante, ovvero le capacità di calcolo parallelo delle GPU moderne; è sempre stato un tema in cui io mi limitavo ad invidiare i possessori di una nVidia, ma giunto a metà articolo scopro che finalmente AMD ha rilasciato un tool degno di questo nome che supporti come si deve le schede video della Ati.
Armato perciò di howto e notebook ho dato sfogo alla mia HD 4500, e non potevo non riportare qui i risultati; come test, l’articolo (e quindi anch’io) usa aircrack e pyrit per sfondare una WPA (inesistente) facendo una ricerca in un file di chiavi, per la precisione 10 milioni; io personalmente ho calato la cifra ad 1 milione, dato che la CPU ha sfiorato i 96 gradi e temevo l’esplosione del bestio. In ogni caso, ecco i benchmark ed i risultati senza l’uso della scheda video:
Pyrit 0.3.0 (C) 2008-2010 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Running benchmark (1391.8 PMKs/s)... - Computed 1407.27 PMKs/s total. #1: 'CPU-Core (SSE2)': 673.6 PMKs/s (RTT 2.8) #2: 'CPU-Core (SSE2)': 675.7 PMKs/s (RTT 2.9) #3: 'Network-Clients': 0.0 PMKs/s (RTT 0.0)
Pyrit 0.3.0 (C) 2008-2010 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Parsing file '/usr/share/doc/aircrack-ng/examples/wpa.cap' (1/1)... 13 packets (13 802.11-packets), 1 APs Picked AccessPoint OMISSIS automatically... Tried 1000001 PMKs so far; 2826 PMKs per second. The password is 'biscotte'. real 12m23.770s user 24m19.370s sys 0m1.120s
E questo è invece l’output per la versione con GPU (che ricordo essere una Ati Mobility HD 4500, quindi niente di eccezionale), da tenere presente che il test di cracking in questo caso utilizza un solo core, dato che l’altro è impegnato a gestire il calcolo parallelo:
Pyrit 0.3.0 (C) 2008-2010 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Running benchmark (2039.9 PMKs/s)... / Computed 1946.38 PMKs/s total. #1: 'OpenCL-Device 'ATI RV710'': 1883.0 PMKs/s (RTT 2.7) #2: 'CPU-Core (SSE2)': 235.4 PMKs/s (RTT 3.1) #3: 'Network-Clients': 0.0 PMKs/s (RTT 0.0)
Pyrit 0.3.0 (C) 2008-2010 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Parsing file '/usr/share/doc/aircrack-ng/examples/wpa.cap' (1/1)... 13 packets (13 802.11-packets), 1 APs Picked AccessPoint OMISSIS automatically... Tried 1000001 PMKs so far; 4382 PMKs per second. The password is 'biscotte'. real 7m45.012s user 3m16.970s sys 7m34.050s
Interessante, no? Ora devo solo trovare qualcosa in cui applicare la faccenda (partendo dal presupposto che non sono interessato a craccare reti wireless, avendo la mia…).
Introduzione a KDE – Linux Day 2010
Posted in Virtual world, tagged informatica, KDE, LinuxDay on 23/10/2010| Leave a Comment »
Cliccando sull’immagine qui sopra, potrete scaricare la presentazione di introduzione a KDE che ho utilizzato questa mattina al LinuxDay 2010 (edizione presso Cinisello Balsamo).
Le slide contengono soprattutto screenshot di KDE 4.5, quindi non sono state la parte essenziale del talk stesso, tuttavia a qualcuno potrebbero comunque interessare.
Buona visione!


