Archive for February, 2007

Delay Tolerant Network [ebuild]

Tuesday, February 27th, 2007

Il mio primo ebuild (link) ha richiesto solo un paio d’ore; provo a descrivere quello che ho fatto.

  1. Ho sistemato l’header dell’ebuild
    [code]
    # ==========================================================================
    # ***************** Sigmalab Portage Overlay (02/26/07) *****************
    # ***************** For more info go to http://sigmalab.net *****************
    # ==========================================================================
    # Copyright 1999-2007 Gentoo Foundation
    # Distributed under the terms of the GNU General Public License v2
    # $Header: $inherit eutilsDESCRIPTION=”Disruption Tolerant Networking (DTN)”
    HOMEPAGE=”http://www.dtnrg.org”
    SRC_URI=”http://www.dtnrg.org/docs/code/${PN}_${PV}.tgz”LICENSE=”Apache-2.0″
    SLOT=”0″
    KEYWORDS=”~x86″
    [/code]
    Le varie Keyword sono ben descritte sulla documentazione di gentoo. Ricordare di mettere ~x86 se lo si vuole ridistribuire in quanto indica l’instabilità dell’ebuild
  2. La seconda parte è data dalle dipendenze e dalle possibili use flag:
    [code]
    IUSE=”oasys”
    DEPEND=”>=dev-lang/tcl-8.0.0
    >=sys-libs/db-4.2.52_p4-r2″
    [/code]
    Anche qui nulla di nuovo, in depend la sintassi è la stessa dei package del portage; nel mio caso ho anche specificato la versione esatta, ma potrebbe non essere necessario. Da notare invece che alcune dipendenze possono essere necessarie solo se una specifica flag è attiva in quel caso guardate questo esempio:
    [code]
    mysql? ( >=dev-db/mysql-3.23.49 )
    [/code]
  3. Passiamo ora alle variabili globali
    [code]
    INSTALLDIR=”/usr/local/bin/”
    S=${WORKDIR}/${PN}_${PV}
    [/code]
    Attenzione solo alcune variabili sono modificabili, altre sono readonly! (vedi qui)
  4. come compilare il pacchetto
    [code]
    src_compile() {
    cd ${S}
    ./configure -C –verbose || die “configure problem”
    emake || die “compile problem”
    }
    [/code]
    Questo codice è utile se usate gli autotools;
  5. e ora la parte difficile installare tutto secondo logica
    [code]
    src_install() {
    emake DESTDIR={D} install || die “install problem”# il demone
    dobin daemon/dtnd
    keepdir /etc/dtn
    insinto /etc/dtn
    doins daemon/dtn.conf dtn/dtn.conf# per salvare i bundles e i db
    keepdir /var/tmp/dtn
    keepdir /var/tmp/dtn/bundles
    keepdir /var/tmp/dtn/db# installo le librerie base
    keepdir /usr/include/dtn
    insinto /usr/include/dtn
    doins applib/*.h

    if use oasys ; then
    keepdir /usr/include/dtn/oasys
    insinto /usr/include/dtn/oasys
    doins oasys/*.h
    fi

    exeinto /usr/local/bin/

    doexe apps/dtnperf/dtnperf-client
    doexe apps/dtnperf/dtnperf-server
    doexe apps/dtnrecv/dtnrecv.1
    doexe apps/dtnsend/dtnsend.1

    for appsname in $(echo “dtnping dtntest dtncp dtncpd dtnmoteproxy dtntunnel dtnrecv dtnsend”);
    do
    doexe apps/$appsname/$appsname
    done

    dohtml doc/manual/*
    dodoc doc/*.txt

    }
    [/code]
    Complesso non è vero? Per comprendere i vari comandi nella bibliografia troverete i link a vari articoli che spiegano dettagliatamente ogni comando. Suggerisco di seguire questo ordine per i comandi : demoni, directory necessarie, librerie, compilati, documenti e manuali. In particolare vorrei far notare che il demone viene installato nella directory di default /usr/bin se avesso voluto cambiare la destinazione avrei dovuto ricorrere a into /usr/local/, tenendo presente che da li in poi i vari comandi do* avrebbero preso come root la nuova /usr/local, quindi occhio a quando lo fate. Altro problema lo avrei avuto se avessi voluto creare una cartella specifica per ragruppare i binari all’interno di /usr/local infatti se avessi creato una cartella al suo interno, quanto chiedo con il tab la completazione del testo avrei come risultato valido anche il nome della cartella.

  6. per finire
    [code]
    pkg_postinst() {
    einfo “”
    einfo “……..”
    einfo “”
    }
    [/code]
    potete comunicare all’utente le informazioni che ritenete necessarie. Oppure esegure comandi di fix dei permessi o cose simili.
  7. A chi ha buon occhio noterà che ancora non ho inserito nessun init.d e conf.d script. Spero di farlo quanto prima.

Per ottenere questo risultato ho consultato in particolare :

  • [bfentry id=1 small]
  • [bfentry id=2 small]
  • [bfentry id=3 small]
  • [bfentry id=4 small]

Steampunk Keyboard Modification

Monday, February 26th, 2007

Steampunk Keyboard Modification
Here’s another nice keyboard modification, Jules Verne style.

Proverbio per ingegneri

Sunday, February 18th, 2007

“Una persona intelligente risolve un problema.
Una persona saggia lo evita.
”

Albert Einstein

Php framework

Friday, February 16th, 2007

Il mondo del PHP è sempre in movimento ed ecco spuntare come funghi nuovi framework:

Non è finita qui, dandogli un’occhiata ho potuto incontrare AmfPhp un RPC toolkit per dialogare in remoto:

  • Flash and Flex with Remoting
  • JavaScript and Ajax with JSON
  • XML clients with XML-RPC

Very cool.

Stubbles

Friday, February 16th, 2007

Come al solito, gironzolando, ho recuperato il link a questo sito. Si propone come ulteriore framework da affiancarsi ai noti Zend Framework o PEAR, per estenderne le capacità in ambito Enterprise. Le features che vanta sono:

  • Extended Reflection API
  • Inversion of Control features
  • MVC architecture
  • Unified XML API (XMLSerializer)
  • JSON/AJAX support

Sicuramente features di tutto rispetto, in particolare il fatto che si propone di: “use of patterns and ports some features from the langauges commonly referred to “enterprise languages” to PHP“. Ad esempio nella Reflection l’uso delle Annotation è molto interessante, quanto inutile. Usare la reflection paga in alcuni casi ma ha costi in termini di efficenza.

OSSBlog + GrUSP = Zend Studio!

Friday, February 16th, 2007

Riporto la notizia direttamente come trovate su OSSBlog:

OSSBlog è orgogliosa di collaborare con il GrUSP realizzando un concorso per tutti i suoi lettori che di dilettano con PHP.

Chi realizzerà il miglior plugin opensource per uno dei principali CMS Open Source sarà premiato con una licenza di Zend Studio Standard (gentilmente offerta dalla stessa Zend) e con un anno di tesseramento gratuito al GrUSP.

I CMS che abbiamo scelto sono: WordPress, Drupal e Joomla.

Il regolamento del concorso è molto semplice:

  • può partecipare chiunque, soci e non dell’associazione
  • il plugin deve essere rilasciato con licenza compatibile con quelle definite da OSI
  • dovrà funzionare con PHP 5.2 ed è consigliato, ma non obbligatorio, scriverlo ad oggetti (compatibilmente al CMS)
  • non sono accettati plugin non compatibili con l’ultima versione del CMS scelto
  • il plugin deve essere realizzato da zero e non una riedizione di qualcosa di pre-esistente
  • dovrà contenere documentazione valida phpDoc, verrà usato lo stesso Zend Studio per compilare la documentazione
  • verrà eseguito con modalità strict di PHP, nessun warning o notice dovrà essere visualizzato
  • E’ accettato l’uso di librerie di terze parti a patto che queste ultime siano distribuite con una licenza Open Source
  • Il plugin non deve modificare file del CMS, ma ne deve sfruttare API e metodi standard per modificarne (se necessario) il comportamento
  • sono accettate minor release con bugfix se consegnate entro il termine ultimo della consegna
  • E’ consigliato l’uso di un repository SVN come quello offerto da Google Code o da Sourceforge

Il concorso partirà ufficialmente lunedì 19 febbraio ed il termine ultimo di consegna sarà il 16 aprile. Verrà annunciato il vincitore ed assegnata la licenza durante il phpDay, che si terrà il 18 Maggio a Verona.

Che aspettate quindi? Iniziate a “codare“! Aspettiamo le vostre iscrizioni su concorsi@ossblog.it

Prototype Cheat Sheet

Sunday, February 11th, 2007

Thanks to Snook, we have a nice cheat sheet for Prototype. Enjoy!

Infosecurity 2007

Sunday, February 11th, 2007

Anche quest’anno si è concluso l’Infosecurty 2007; non vi ho partecipato in mancanza di finanze e tempo. Nonostante questo girovagando nel mio blogroll ho trovato del materiale che può essere utile anche a posteriori.

Spero venga presto reso disponibile il video del talk di LastKnight, in caso aggiornerò il blogpost.

Il video lo potete trovare qui. (Very Nice)

Video from Web 1.0 to 2.0

Monday, February 5th, 2007

I find a very good video in this blog site, very cool;

New PC

Monday, February 5th, 2007

Si mi sono finalmente arrivati i nuovi componenti per il mio desktop. Cosa ho comprato?

  • CPU: Intel Dual Core 2 Duo E6600 @ 2.40GHz – 4Mb cache interna
  • Scheda Madre : Asus P5B Deluxe con chip intel P965 e Access Point 54Mbit b/g
  • 2 banchi ram DDRII da 512Mb – bus 667Mhz (in modalita Dual Channel)
  • Scheda Video: XFX Nvidia 7600GT – 256 Mb DDR3 16x pci express – 2 x DVI

La cosa più figa direi essere la scheda madre (di cui godete la foto qui sotto), non ho ancora avuto modo di testarla a dovere ma sotto linux il cambiamente si è notato, sotto windows molto meno (anzi per niente, a parte i giochi).

img1

Per una vera recensione potete leggere questa, secondo me molto completa. Per capire quanto veloce sia diventato il mio pc

Thu Aug 31 02:23:57 2006 >>> kde-base/kdelibs-3.5.2-r6
merge time: 4 hours, 56 minutes and 6 seconds.

Sun Feb 4 19:26:37 2007 >>> kde-base/kdelibs-3.5.5-r7
merge time: 22 minutes and 40 seconds.

che dire mostruosamente meglio 🙂 Senza contare che questo processore supporta la virtualizzazione in hardware non vedo l’ora di provarlo con xen.
NB: la scheda audio sembra supportata , ha solo il piccolo inconveniente che non va con il microfono…