IIllrreessttoo … · tutorial di ogni genere, ... materiale a [email protected]....

15
0 Open Source, Free Software e Programmazione Linux su una chiavetta USB Come installare un sistema Linux completo su una chiavetta USB da portare sempre con sé I I l l r r e e s s t t o o d d e e l l P P i i n n g g u u i i n n o o MeteoMachine Linux Prediciamo che tempo farà con Linux Tiny Core Linux Minidistro per rendere nuova linfa a computer datati o vecchio hardware non più usabile con le distro odierne

Transcript of IIllrreessttoo … · tutorial di ogni genere, ... materiale a [email protected]....

Page 1: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

0Open Source, Free Software e Programmazione

LLiinnuuxx ssuu uunnaacchhiiaavveettttaa UUSSBBCome installareun sistema Linuxcompleto su unachiavetta USB daportare semprecon sé

IIll rreessttooddeell PPiinngguuiinnoo

MMeetteeooMMaacchhiinneeLLiinnuuxxPrediciamo chetempo farà conLinux

TTiinnyy CCoorree LLiinnuuxxMini­distro perrendere nuovalinfa a computerdatati o vecchiohardware nonpiù usabile conle distro odierne

Page 2: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

EditorialeScrivere è sempre difficile. Lo è ancor di più se si tratta di un editoriale. E la fatica raddoppiaquando devi scrivere un editoriale per annunciare la nascita di un nuovo progetto, come in questocaso, in cui devo annunciare l'uscita del numero 0 de "Il resto del Pinguino".Che cos'è "Il resto del Pinguino"? E' una e­zine, una rivista in formato digitale dedicata al mondo delsoftware libero, o free software secondo la locuzione anglosassone voluta da Richard Stallman,della Free Software Foundation. Ma qual è il significato di software libero? Per software libero siintende un software di cui l'utente finale può godere al 100%: ha accesso ai sorgenti, può modificarlia proprio piacimento, può distribuirlo. La libertà più totale. E questa e­zine è dedicata proprio a talesoftware: una rivista libera, dedicata al software libero e realizzata con strumenti liberi.Ma da chi è scritta? Dalla comunità italiana dei programmatori Gambas. Gambas, per chi non loconoscesse, è un potente linguaggio di programmazione visuale basato sul BASIC con il quale èpossibile creare applicazioni con interfacce grafiche in pochi, semplici, gesti. La comunità italiana haun sito di riferimento, www.gambas­it.org. Da alcuni suoi membri è nata l'idea di questa e­zine, unprodotto che, speriamo, sia di vostro gradimento. Da parte nostra ci metteremo passione ededizione, cercando di sfornare un prodotto valido, ricco di contenuti interessanti e stimolanti,graficamente gradevole. Da parte vostra chiediamo solo il download per la lettura dell'e­zine. Seperò vi sentite all'altezza, potete anche collaborare alla sua stesura (d'altronde, è una e­zine libera,no?) inviando articoli sull'argomento che più vi piace, basta che siano scritti bene, inerenti al mondoopen­source (recensioni di programmi o siti utili ai programmatori di ogni linguaggio, guide varie,tutorial di ogni genere, prove su strada di distro più o meno conosciute, ecc...). Potete inviare ilmateriale a ilrestodelpinguino@gambas­it.org. Tutto il materiale sarà vagliato e quelloritenuto interessante pubblicato sulla e­zine.Infine una parola su "Pallinux", la mascotte che avete visto in copertina. Essa è disegnata dalnostro Fabio "Pixel" Colinelli e ci accompagnerà in questa avventura. Il suo nome significa "Ho ilpallino per Linux".Per ora è tutto. Vi lascio alla lettura di questo numero di apertura.Leonardo "leo72" Miliani

I l resto del Pinguino - N° 0 - Aprile 2010 2

REDAZIONEImpaginazione: Leonardo "Leo" Miliani ­ [email protected] articolisti: Francesco "Ceskho" Apuzzese ­ [email protected]: Fabio "Pixel" Colinelli ­ [email protected]

COLLABORAZIONISe volete pubblicare un articolo sulla rivista, inviate la vostra opera (preferibilmente in forma di pacchettocompresso) all'indirizzo ilrestodelpinguino@gambas­it.org in formato testuale o, eventualmente, in formatoODT (OpenOffice), con eventuali foto. Nota: l'invio del materiale non obbliga la redazione alla suapubblicazione. Sarà nostro insindacabile giudizio publicare o meno l'articolo ricevuto con eventuali taglidettate da motivi tipografici. Con l'invio del materiale l'autore dà tacito consenso all'utilizzo della sua opera aifini della pubblicazione. Si ricorda che saranno pubblicati solo gli articoli inerenti i temi trattati dalla rivista.

Page 3: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Sommario

5. Linux su una chiavetta USB ­ di Leonardo MilianiCome configurare una chiavetta USB per portare sempre con sé Linux

I l resto del Pinguino - N° 0 - Aprile 2010 3

LLiinnuuxx ssuu UUSSBB

8. La funzione Split di Gambas ­ di Pietro CataniaCome dividere una stringa utilizzando gli strumenti di Gambas10. MeteoMachine Linux ­ Francesco ApuzzesePiovono righe e righe di codice!

MMeetteeooMMaacchhiinneeLLiinnuuxx

55

1100

TTiinnyy CCoorree LLiinnuuxx

1122

12. Chi cerca trova ­ di Mr. XProva della mini­distro Tiny Core Linux14. Su che cosa e come programmare ­ di PicavbgIl computer come intelligente strumento di sussidio alle attività umane

Il resto del PinguinoN° 0 ­ Marzo 2010

14. La cattedrale ed il bazar ­ di Eric S. RaymondDue stili di sviluppo del software a confronto: il modello "cattedrale" e quello "bazar"

Page 4: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Mi sono sempre scontrato con un problemaapparentemente insormontabi le: instal lareLinux su una chiavetta USB!

Quanti di voi ci hanno provato? Tanti , penso…E quanti di voi hanno avuto problemi? Tanti lostesso, vero?.

Mi son sempre chiesto i l perché dei mieiinsuccessi durante i tentativi di instal lare levarie distribuzioni per chiave USB qual i DamnSmal l Linux e simi l i . Eppure seguivo leistruzioni al la lettera del le varie guide, articol iFAQ ecc… che consultavo! Ore ed ore ditentativi sempre fal l i ti ! Al la fine o la chiavettamanco veniva riconosciuta (caso piùfrequente) oppure veniva riconosciuta manon si avviava…. E poi ho scoperto i l perché:se seguivate le istruzioni al la lettera maavevate precedentemente formattato lachiavetta, al lora vi mancava un passofondamentale! La procedura che venivasempre i l lustrata non prendeva mai inconsiderazione la possibi l i tà che la chiavettafosse stata appunto formattata. Seguendoinvece i l metodo che vi i l lustrerò a breve,sono riuscito a instal lare Feather Linux, unadistribuzione derivata da Knoppix che sta in128 MB, su una chiavetta USB 2.0 da 2 GB.

Se siete passati anche voi per questiinsuccessi , a l lora i l mio consigl io è uno solo:attenzione al le istruzioni che riportano onl inetanti siti , sono incomplete.

Faccio anche un piccolo, necessario,preambolo. I l supporto USB pienamentefunzionante sotto Linux è roba di poco tempofa… prima le cose erano diverse (peggiori ) eduna periferica USB equivaleva a grattacapiperenni . Con l ' introduzione del Kernel 2 .4prima e del 2 .6 dopo, le cose sononotevolmente migl iorate. Adesso Linux trattale periferiche di massa USB a l ivel lo diWindows. Le istruzioni che riportano i variWiki , le FAQ e le documentazioni che trovateonl ine sono ormai obsolete, non aggiornate,con l ’obbl igo di rispettare alcuni punti chepotete oggigiorno anche saltare. Ecco i puntiche non necessitano più di rispetto:

1 . formattare la chiavetta con il filesystemFAT16;

2. utilizzare SysLinux 2. 1 1 per rendere lachiavetta avviabile.

Ma i l punto fondamentale che nessuna del leguide che ho trovato ha mai preso inconsiderazione è quel lo del la formattazione

del la chiavetta. Quanti di voi hanno provato aformattare la chiavetta con un fi lesystemLinux-friendly come ad esempio ext2, ext3,Reiser e compagnia bel la? Io sì, anche perchéquesta è già una piccola protezione perrendere i l leggibi le la chiavetta in caso dismarrimento ad un utente poco esperto, checonosce solo Windows (inserendola nel PC evedendo che non viene letta, sicuramente apochi viene in mente che questa siaformattata con qualcosa di diverso rispetto aifi lesystem gestibi l i da Windows: i piùpenseranno che sia difettosa). Se ancherimettete i l fi lesystem VFAT, non reinstal late

i l MBR (Master Boot Sector), i l settore cheviene letto dal BIOS al l ’atto di avviare lachiavetta. E così, nonostante abbiate seguitotutti i punti , d iffici lmente riuscirete ad avviareuna distribuzione Linux instal lata sul la vostrachiavetta USB…

Seguendo le istruzioni completedel l ’ instal lazione del l ’MBR sono inveceriuscito a far partire senza problemi FeatherLinux: qui a destra potete infatti vedere unoscreenshot di Feather Linux che gira sul mioPC, con i l logo del la distribuzione e le iconedel software preinstal lato.

Ecco i passaggi che ho seguito per ottenere i lpositivo risultato, precisando che ho lavoratosu una instal lazione di Ubuntu 7.10 anche seciò che leggerete vale per tutte le altredistribuzioni : basta instal lare i l softwarecitato con i l gestore di pacchetti del la propriadistribuzione (URPMI per Mandriva, YAST peropenSUSE, ecc…)

I l resto del Pinguino - N° 0 - Aprile 2010 4

Feather Linux è unadistribuzione Linux,derivata da Knoppix,studiata per girarecompletamente in l iveda CD o penna USB.Occupa meno di 128MB.

SysLinux è i l softwarefondamentale perrendere avviabi le lavostra chiavetta USB

OpenSourceLinux su una chiavetta USB

Come configurare una chiavetta USB per avere il Pinguino sempre con sé

Page 5: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

La prima cosa da fare in assoluto ècontrol lare se la propria scheda madre ècapace di effettuare i l boot da perifericheUSB (tipo chiavette, HD od altro): control latenel le impostazioni del BIOS, leggete i lmanuale del la scheda madre o visitate i l sitodel produttore. Se così non fosse, terminatela lettura ed andate a guardarvi un altroarticolo, che questo non fa più per voi .

Fatto questo doveroso control lo, bisognaprocurarsi una chiavetta USB da destinare aLinux: vista la modesta richiesta di spaziodel le distribuzioni appositamente svi luppate,ne basta anche una da 1 GB.

Poi procuratevi la distribuzione che voleteinstal lare. Ne esistono diverse per chiavettaUSB: Damn Smal l Linux, Puppy Linux eFeather Linux sono le più famose. Ho sceltoproprio quest’ultima, Feather Linux,scaricabi le dal sito ufficia le(http: //featherl inux.berl ios.de/) in versione0.7.4 come pacchetto ZIP per l ’ instal lazionesu dispositivi USB perché è forse la piùadatta, del le 3 citate, al nostro scopo perfaci l i tà d’ instal lazione (viene infatti fornito unarchivio contenente i fi le già pronti per lacopia sul dispositivo USB) e per fornitura disoftware integrato. Feather Linux comprendeinfatti , nei suoi 128 MB (contro i 50 di DamnSmal l Linux ed i 90 di Puppy Linux) tuttol ’occorrente per i l lavoro di un utente medio:software di grafica, browser internet, gestoredi posta elettronica, lettore di fi lmati e fi lemusical i , programmi di chat, fogl i d i calcolo,editor di documenti , partizionatore per dischi ,masterizzazione (tramite console), ecc… i ltutto gestito con un minimal ista magradevole desktop grafico (Fluxbox).

Mentre scarichiamo i l fi le zippato del ladistribuzione, instal l iamo gl i a ltri toolnecessari al l ’operazione. Apriamo Synaptic(oppure apt-get se preferite la console) eselezioniamo i l pacchetto mtools: questopacchetto contiene degl i strumenti perscrivere su partizioni DOS/Windows ed ènecessario perché contiene i l programmamcopy, usato da SysLinux per copiare sul lachiave USB i l codice per avviare i l kernel diLinux. Visto che lo abbiamo nominato,selezioniamo anche SysLinux con Synaptic.

E qui veniamo al punto 2 del le indicazioni amio modo di vedere obsolete. Tutte le guide,infatti , suggeriscono di usare SysLinux inversione 2.11 (che si può scaricare da unqualunque mirror di www.kernel .org) mentretutte le distribuzioni più recenti hanno neiloro repository questo software in versione3.xx (su Ubuntu 7.10, al momento del lastesura del l ’articolo, è presente la versione3.36). Stando sempre al le guide, SysLinuxcon numero di versione superiore al la 2.11non supporta correttamente le partizioniFAT16, i l fi lesystem consigl iato per formattarela vostra chiavetta USB (i l punto 1 del leindicazioni obsolete). Io ho instal lato SysLinuxin versione 3.36 e formattato la mia chiavetta

come FAT32.

L’ultimo pacchetto che ci serve è mbr,necessario per reinstal lare l ’MBR in casoaveste precedentemente formattato lachiavetta. Fatto questo, possiamo iniziare alavorare.

Prima di tutto va scompattato l ’archivio del ladistribuzione in una cartel la a vostra scelta.Poi bisogna col legare la chiavetta USB esubito dopo aprire un terminale e digitare i lcomando dmesg, che riporta i messaggigenerati dal kernel , compresi i log del laconnessione del le periferiche. I l suo outputdovrebbe essere simi le a questo:

L’output che ci interessa è quel lo evidenziatoin rosso: sda1 .

Questo ci dice che la nostra chiavetta è statamontata come disco sda e che la partizioneusata è la 1. Ovviamente i l vostro outputpotrebbe essere diverso (sdb1, ad esempio):prendetene comunque nota, perché iprossimi comandi faranno riferimento aquesto dato. Se sbagl iate a trascriverlo o adinserirlo, potreste anche cancel larepermanentemente i dati di uno dei vostridischi fissi ! ! ! Se la vostra penna USB era giàusata, copiate tutti g l i eventual i dati in essacontenuta sul PC, perché tra pocoprovvederemo a cancel lare ogni suo bit…

Adesso va smontata la chiavetta: cl iccate coltasto destro sul la sua icona e poi scegl iete“Smonta volume” se lavorate da interfacciagrafica, altrimenti date da console i lcomando sudo umount /dev/sdXydove sdXysta per i l valore trovato tramite i l precedentecomando dmesg. Attenzione: non rimuovetefisicamente la chiavetta, smontatela soltanto.In questa maniera i l sistema non ne godràpiù esclusivo possesso né la altererà peroperazioni di lettura/scrittura, mentre voipotrete lavorarci con i tool che andremo trapoco ad richiamare da terminale.

I l passo successivo è la cancel lazione dei datidel la chiavetta. Se siete paranoici , poteteeffettuare una cancel lazione totale di tuttoquel lo che c'è sopra sempl icemente dando

I l resto del Pinguino - N° 0 - Aprile 2010 5

Prestate attenzionedurante laformattazione del lachiavetta USB: sesbagl iate ad indicare laperiferica, potrestecancel lare tutti i datidel vostro disco fisso!

Page 6: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

da terminale i l comando dd if=/dev/zeroof=/dev/sdX. L’operazione è lunga: inpratica, i l comando preleva dal la perifericavirtuale /dev/zero un flusso di zeri e l i scrivesul la penna USB. Per cancel lare la miachiavetta, che è di 2 GB di capacità, ci sonovoluti circa 15 minuti… Se non siete cosìparanoici (o se non avete così tempo adisposizione) potete l imitarvi a cancel lare i lprimo settore (nel primo settore di ognidispositivo sono riportate le tabel le del lepartizioni presenti ) con i l comando ddif=/dev/zero of=/dev/sdX bs=512count=1

Fatto questo, la vostra chiavetta USB noncontiene più traccia del le precedentipartizioni . Adesso possiamo procedere con lacreazione di una nuova partizione FAT32.Sempre da terminale date i l comando fdisk/dev/sda Si aprirà la console del programmadi partizionamento di Linux. Digitate i l tasto“p” seguito da Invio per avere la l ista del lepartizioni del la vostra chiavetta: non nedovreste visual izzare alcuna (infatti abbiamoappena cancel lato la tabel la del le partizioni) .Adesso premete i l tasto “n” ed Invio percreare una nuova partizione. Scegl iete“Primaria”, poi inserite come numeroidentificativo “1″ e poi premete 2 volte invioper accettare i valori di inizio e fine del lapartizione (espressi in numero di blocchi) peruti l izzare tutto lo spazio disponibi le. Fattoquesto, bisogna stabi l ire i l tipo di partizioneda usare. Come detto, ho scelto la FAT32contro i suggerimenti del le guide checonsigl iavano la FAT16. Diamo i l comandoapposito col tasto “t” seguito da Invio e poiimmettiamo come valore esadecimale deltipo di partizione i l carattere “b”. I l penultimopasso è impostare i l flag di boot su on per lapartizione appena creata, così che possaessere avviabi le dal BIOS. Premiamo “a”seguito da invio e poi inseriamo i l numerodel la partizione (se avete seguito questaguida, inserito “1″) . Adesso non ci resta chescrivere le modifiche sul la chiavetta USB (finoad ora non avete materialmente eseguitonessuna operazione): diamo i l comando “w”seguito da Invio. Solo ora, fdisk scriverà lemodifiche apportate al dispositivo.

Ora dobbiamo formattare la partizione, cosìda creare un fi lesystem uti l izzabi le. Per far ciòdiamo da terminale i l comando mkfs. vfat- F 32 /dev/sdXy dove indichiamo al sistemadi formattare la partizione y del disco sdX (viricordate l ’output del comando dmesg? Ecco,lo dovete usare qui . Attenti , però! Come hodetto potete sempre cancel lare i l vostro HDse sbagl iate! ) con fi lesystem FAT32 (l ’opzione-F 32: se non la date, vi formatta la partizionecome FAT16). Ora la chiave USB è vuota,partizionata e formattata. Bisogna riempirla,non trovate?

Al lora montiamola e poi provvediamo acopiare la distribuzione. Per montare lachiavetta avete 2 metodi : o fate tutto daterminale, creando una cartel la temporanea

(mkdir tempdir) e poi montando i ld ispositivo (sudo mount /dev/sdXytempdir) oppure potete sempl icementesfi lare la penna USB e ricol legarla: è un buontest per verificare che le operazioni dipartizionamento e formattazione sianoandate a buon fine, dato che se è vista emontata dal sistema al lora non si sonoverificati errori nel la procedura. Aprite lacartel la dove è stata montata e copiamocidentro tutto i l contenuto del fi le ZIP diFeather Linux.

Eccoci al l ’u ltimo passaggio da effettuareprima del la verifica pratica: copiare i l codiceper l ’avvio del la penna. Prima di tuttobisogna smontare la chiavetta (sudo umount/dev/sdXy da terminale oppure “Smontavolume” da GNOME) altrimenti non possiamoeffettuare l ’operazione. Poi da terminaledigitiamo syslinux - s /dev/sdXy perrendere avviabi le la nostra penna.

Se non avete mai formattato la vostrachiavetta al lora potete proseguire con lalettura, altrimenti dovete compierel ’operazione di ripristino del l ’MBR. Sempre daconsole, lanciate i l comando install- mbr - e1 /dev/sdX. Con questo comandoinstal l iamo l ’MBR sul dispositivo sdX (quel lodel la chiavetta USB come da output delcomando dmesg) ed abi l i tiamo al boot laprima partizione, che è anche l ’unicapresente sul la chiavetta dato che, se viricordate, abbiamo creato una sola partizionesul nostro dispositivo.

Fatto questo, possiamo riavviare i l sistemaperché l ’u ltima parte del la procedura va fattamodificando le impostazioni del BIOS del lascheda madre. Riavviamo i l sistema ma NONSCOLLEGHIAMO la chiavetta: bisogna che i lBIOS la veda al momento del riavvioaltrimenti non potete lanciare Feather Linux.Durante i l riavvio del la macchina, premendoCANC (nel la maggior parte dei casi è questotasto, altrimenti un altro segnalatocomunque dal la scheda madre sul loschermo) si entra nel menu di modifica del leimpostazioni del BIOS. Qui dobbiamocontrol lare l ’ordine del le periferiche dacontrol lare per l ’avvio di un sistemaoperativo, impostando come primodispositivo proprio la chiavetta USB. Leimpostazioni variano da produttore aproduttore, quindi ognuno dovrà control laresul manuale del la propria scheda madre.Salviamo le modifiche apportate ed usciamodal BIOS. I l computer si riavvierà e lancerà i lsistema operativo presente sul la chiavettaUSB, Feather Linux.

I l resto del Pinguino - N° 0 - Aprile 2010 6

Se intendete salvaredei dati sul la vostrachiavetta, al lora viconviene creare 2partizioni :

1) create unapartizione primaria connumero 1 e dimensionedi 256 MB (al ladomanda sul bloccofinale, digitate“+256M”), impostatelasu tipo FAT32 erendetela avviabi le;2) create una secondapartizione primaria connumero 2dimensionandola contutto lo spazio cheresta sul la chiavetta,poi impostatene i l tiposu Linux (valore “83″);3) scrivete le modifichesul la chiavetta, poiformattate la partizione1 come già detto;4) per formattare laseconda partizione ènecessario sfi lare ericonnettere lachiavetta affinché i lsistema veda anche laseconda partizione.Una volta riconnessa,smontatela e daterminale date i lcomando mke2fs/dev/sdX2.Formatterete così laseconda partizione delvostro dispositivo USB(sdX2) con ext2, unfi lesystem senzajournal ing. Questoperché per undispositivo rimovibi leun fi lesystem conjournal ing (ext3 oReiserFS) potrebberisultare insicuro:megl io affidarsi ad unfi lesystem di tipotradizionale, che scrivele modifiche nelmomento in cui lorichiedete voi .

Leonardo " leo72" Mi l iani

Page 7: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Al l ' interno del la struttura Gambas si possonoincontrare diverse tipologie di trattamentodei dati che arrivano al programma. Detti dati( input), possono arrivare da diversi ingressicome la tastiera, un CD o DVD, una pendrive,una sorgente del mondo WEB, un floppy-disk.L' input proveniente dal la tastiera scatenaeventi logici che vengono gestiti a l l ' internodei rispettivi control l i , mentre gl i a ltri tipi diinput, pur potendo produrre particolari eventinei confronti del SO, sono ordinariamenterichiesti dal lo stesso programma.

Qualunque sia la provenienza, ogni input èaffidato al l ' interpretazione, al lamanipolazione ed a produrre un output datrasferire ad un nuovo supporto fisico, comeuna finestra del monitor, un destinatario web,un CD o DVD, una pendrive, un floppy-disk,attraverso una serie di istruzioni incapsulatedentro le classi di Gambas.

É durante la fase di interpretazione emanipolazione che intervengono tutta unaserie di istruzioni , da quel le elementari aquel le più complesse. Queste ultimeracchiudono al loro interno più istruzionielementari e pertanto costituiscono vere eproprie funzioni . Fa parte di questo gruppo lafunzione Split:

StringArray = Split ( String AS String[ , Separators AS String , Escape ASString , IgnoreVoid AS Boolean ] )

dove

StringArray è l 'array dove verrà caricata ognisingola sottostringa

String è la stringa contenente i l dato inizia le

Separators è i l carattere speciale che separale varie sottostringhe

Escape è un carattere speciale che annul la lafunzione spl it quando un carattere separatoreè compreso fra due escape. Se i caratteriescape sono due, al lora i l primo identifica i lcarattere escape di sinistra, mentre i lsecondo identifica i l carattere escape didestra

IgnoreVoid i l suo uso permette diabbandonare eventual i sottostringhe vuote

L'uti l i tà del la funzione Spl it si avverte quandooccorre trattare un insieme di datidisomogenei da riconoscere e riorganizzare aseconda di uno o più elementi distintivi .Riporto qui di seguito un esempio espl icativoche permette di capire un articolato uso del la

funzione Spl it.

Supponiamo di avere come input un fi le. txtavente record di lunghezza e contenutodiversi ; dobbiamo ri levare solamente alcunidei record presenti . I l fi le. txt è così formato:

I l resto del Pinguino - N° 0 - Aprile 2010 7

La funzione Splitdivide i l contenuto diuna stringa

GambasLa funzione "split"

Impariamo ad usare la funzione "split" per dividere una stringa

Savonarola ' Partite' ( ' Codice1' sempreverde, ' lampada'sempreverde regolare nullo, ' rivisitare' sempreverde,primario ( ' Codice1' , ' lampada' , ' rivisitare' ) ) ;

Savonarola ' Presto' ( ' Codice2' sempreverde, ' Data1'sempreverde, ' orario' sempreverde, ' Stato' crt( 1) regolarenullo, primario ( ' Codice2' , ' Data1' , ' orario' ) ) ;

Savonarola ' riepilogando' ( ' Data2' sempreverde,' Codice3' sempreverde, ' Monitor' crt( 1) regolare nullo,' imperioso' fluido regolare nullo, ' beneficiario' crt( 1)regolare nullo, primario ( ' Data2' ) ) ;

Savonarola ' ripresa motivi' ( ' Data4' sempreverde,' Stallo' crt( 1) , ' Entrata' sempreverde regolare nullo,' TotUscg' sempreverde regolare nullo, ' riportato'sempreverde regolare nullo, primario ( ' Data4' ) ) ;

Savonarola ' Apertura' ( ' Data5' sempreverde primario ) ;

Savonarola ' Componenti' ( ' progressivo' sempreverde,' NomeCompFam' variabile( 20) regolare nullo, primario (' progressivo' ) ) ;

inserimento " Componenti" VALUES( 1, ' Famiglia' ) ;

inserimento " Componenti" VALUES( 2, ' Piero' ) ;

inserimento " Componenti" VALUES( 3, ' Giuseppe' ) ;

inserimento " Componenti" VALUES( 4, ' Giacomo' ) ;

Savonarola ' Causali' ( ' descrizione' variabile( 100) ,' Data5' sempreverde ) ;

inserimento " Causali" VALUES( ' Vitto' , 20090601) ;

inserimento " Causali" VALUES( ' bar' , 20090525) ;

inserimento " Causali" VALUES( ' fotografie per tesseramia' , 20125499) ;

Savonarola ' Pianoforte' ( ' Numero' primario, ' Voce'variabile( 50) regolare nullo, ' Contrario' crt( 1) regolarenullo, ' Datauso' sempreverde regolare nullo ) ;

inserimento " Pianoforte"VALUES( 10100000, ' CASA' , ' N' , nullo) ;

inserimento " Pianoforte"VALUES( 10100100, ' Emollienti' , ' N' , nullo) ;

inserimento " Pianoforte" VALUES( 10100102, ' Pensionegallo' , ' N' , nullo) ;

inserimento" Pianoforte " VALUES( 10100600, ' Riscossaavantitutta' , ' S' , nullo) ;

inserimento " Pianoforte"VALUES( 10100700, ' Vittoria' , ' N' , nullo) ;

Page 8: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Di tutte le righe sopraelencate, dobbiamoestrarre solamente le righe contenenti laparola “Pianoforte”. Eseguiamo prima i lcaricamento e subito dopo operiamo la

distribuzione dei record che ci interessanodentro un array. Per fare ciò eseguiamo leseguenti istruzioni :

I l resto del Pinguino - N° 0 - Aprile 2010 8

Ora le sottostringhe sono direttamenteidentificabi l i , però i l nostro lavoro non èancora finito; occorre ancora estrarre le righecontenenti la parola “Pianoforte” eredistribuirne i l contenuto in un nuovo array

per ben identificare ulteriori sottostringhe dacui è composta ciascuna riga nel l 'array$RgFl, d i partenza.

Per cui , si avrà:

La funzione agisce solo sul la parte piùsignificativa di ciascuna riga di $RgFl , che sitrova nel la sua estrema destra e cioè:

( 10100000, ' CASA' , ' N' , nullo)

( 10100100, ' Emollienti' , ' N' , nullo)

( 10100102, ' Pensione gallo' , ' N' , nullo)

( 10100600, ' Riscossaavantitutta' , ' S' , nullo)

( 10100700, ' Vittoria' , ' N' , nullo)

Dopo l 'esecuzione del la funzione Spl it i lnostro array finale “$RgRecDB” è cosìcomposto:

- - 1° elemento( 10100000' CASA'' N'nullo)- - 2° elemento( 10100100' Emollienti'' N'nullo)- - 3° elemento( 10100102' Pensione gallo'

' N'nullo)- - 4° elemento( 10100600' Riscossa avantitutta'' S'nullo)- - 5° elemento( 10100700' Vittoria'' N'nullo)

Esso però contiene ancora caratteri nonsignificativi che la funzione spl it non hapotuto togl iere. Bisogna perciò affidare tale

compito ad una funzione diversa, chei l lustrerò ampiamernte nel prossimo numero.

Pietro Antonino "Picavbg" Catania

Spesso non importareinventare la ruota.Basta usare gl istrumenti messi adisposizione dall inguaggio stesso: Spl itè una di quel le funzioniche passa insecond'ordine ma chespesso si rivelano diuna uti l i tà unica.

L'AUTORE: PietroAntonino CataniaSin da bambino hoavuto attrazione per lemacchine calcolatrici epoi , più grandicel lo, perl ' informatica.Diplomato inRagioneria ho potutodopo alcuni anniaffacciarmi nel mondodel lavoro comebancario e l ì, a l la primaoccasione, hopartecipato ad un testattitudinale diinformatica che hosuperato e da quelmomento, ottenuta laqual ifica diprogrammatore, hopotuto rappottarmi perquasi tutta la vitalavorativa con gl ielaboratori elettronici ecoi computer.

Page 9: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Quante volte siete stati davanti a l la TV inattesa che la pubbl icità finisse per poterviaccertare del le condizioni meteo del lasettimana? Quante volte avete organizzatopic-nic fidandovi dei satel l i ti del l 'Aeronauticama poi vi siete bagnati imprecando versoApol lo? E poi , d ite la verità, quante volte nonsapevate se pioveva o ci sarebbe stato i l solesolo perché i l d isegnino del la nuvola in TV ègrande quanto tutto i l sud Ital ia? Finalmented'ora in poi potrete organizzaretranqui l lamente le vostre scampagnate infamigl ia perché avrete un pinguinometeorologo. Ebbene sì, avete capito. . . . fate i lgesto del l 'ombrel lo al la TV e continuate aleggere.

COS'E'

Meteomachine Linux nasce dal l ' incontro del lepassioni di tre persone che hanno unito idee,conoscenze e volontà per creare un softwarequasi unico nel suo genere. Si parla di unampio progetto, scritto in Gambas solo perambienti GNU/Linux, che comprendenumerosi tool che permettono di monitorare,archiviare e gestire i dati meteorologici del lapropria stazione. I l suo uso è molto sempl icema tale sempl icità non deve essere confusacon la povertà di funzioni . Attualmente i lprogramma, ri lasciato con l icenza GNU GPL3,è al la versione 1.6.8 e presenta le seguenticaratteristiche:

- archiviazione di dati (temperatura,pressione, precipitazionei , vento, umidità,stato del cielo) in locale mediante databaseSQLite, calcol i (medie e total i ) e confrontidegl i stessi ;

- visual izzazione precisa e dettagl iata digrafici esportabi l i dei dati archiviati ;

- importazione dei dati da fogl i d i calcolo;

- conversione di unità di misura uti l i ;

- previsione approssimativa del l 'andamentodel tempo per le prossime 12/24 ore;

- visual izzazione di immagini satel l i taristatiche e dinamiche;

- visual izzazione di carte meteorologiche,divise per tipi e Paesi , in modo statico oanimato;

- gestione di un database remoto dacondividere.

Queste sono solo alcune del le potenzial i tà diquesto programma che potrebbe piacere edessere uti le anche a chi vuole solo imparare

qualcosa in più sul l 'argomento o chi già loconosce ma vuole approfondirlo. Tra i varimenu, infatti , è possibi le incontrare del le vociche permettono la visual izzazione diinformazioni a titolo educativo in modo daintegrare un ambiente didattico al l ' internodel la struttura gestionale. Questo permette diraggiungere un alto l ivel lo di completezzache rende MeteoMachine Linux un softwareadatto anche per scuole ed hobbysti .

L'INTERFACCIA

Fin dal primo avvio l ' interfaccia risultasempl ice e immediatamente comprensibi le. I lmenu è stato studiato per raccogl iere le vocicon criterio logico. La toolbar aiuterà l 'utentea svolgere le più importanti operazioni conpochi e sempl ici cl ick.

I form sono sempl ici ed intuitivi e permettonodi eseguire personal izzazioni in ogni aspettouti le del programma. Si va dal l ' impostazionedel proprio Paese al le unità di misura con lequal i si vogl iono salvare i propri valori .

Sarà possibi le, inoltre, decidere sevisual izzare al l 'avvio una sempl ice immaginesatel l i tare nel form principale.

I form uti l i a l l 'archiviazione dei datipermettono non solo di inserirne di nuovi maanche di modificare i vecchi o sempl icementedi visual izzarl i per poter avere sempre adisposizione i dati . Gl i strumenti per laconversione vanno dal la temperatura con igradi Centigradi/Fahrenheit al le precipitazioniin mi l l imetri/inch, passando per la pressionee la velocità del vento.

I l resto del Pinguino - N° 0 - Aprile 2010 9

Programmatori :

Ripamonti "stef"Stefano

Fea "fsurfing" Sergio

Apruzzese "Ceskho"Francesco.

OpenSourceMeteoMachine Linux

Piovono righe e righe di codice!

Per visual izzare le altrefunzional ità visita i l sitodel progettowww. altabrienza. org/meteomachine

Page 10: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Le immagini satel l i tari possono godere,rispetto al l 'u ltima versione, di un' interfacciapienamente rivisitata e di un codicecompletamente riscritto. La nuova graficapermette una gestione del le voci molto piùcomoda e una loro catalogazione sempl ice eprecisa.

Tra le immagini posiamo distinguere quel le:

* semplici: immagini statiche scattate dal lepiù importanti agenzie del mondo tra cuifigura anche la NASA;

* animate: immagini in formato GIF cheraccolgono la situzione di un Paese in diversefasi del la giornata e la mostrano tramitesempl ice animazione;

* carte meteorologiche statiche:visual izzano una sempl ice carta in base almomento del la giornata;

* carte meteorologiche animate:visual izzano una raccolta di immagini , pertutta la giornata, che può essere stoppata,fermata, riavvolta e visual izzata quante voltesi vuole.

È stata introdotta, inoltre, la possibi l i tà divisual izzare la situazione del proprio Paesemediante l 'uti l izzo di Google Maps integratonel proprio browser di default.

La sezione didattica si presenta come unaraccolta di form riguardanti lo studio e laconstatazione pratica di alcuni argomentiimportanti . È possibi le, ad esempio, studiaregl i effetti del vento in base al la sua velocitàgrazie al la scala di Beaufort oppure visionareuna probabi le previsione del tempo grazie aidati di cui si d ispone

Come si è visto i l programma non pecca certodi mancanza di possibi l i tà e si è ancora alavoro per portare novità quanto primapossibi le. Nel futuro la speranza è di poterinterfacciare direttamente le stazionimeteorologiche tramite la porta USB così dapermettere la lettura ed archiviazioneautomatica dei dati . Questo sicuramenterenderà MeteoMachine Linux i l migl iorsoftware del genere che si possa trovare sulmercato del l 'opensource.

Non mi resta che augurarvi una bel lagiornata, di sole o di pioggia che sia. . . ora losaprete prima!

I l resto del Pinguino - N° 0 - Aprile 2010 10

Francesco "Ceskho" Apuzzese

Page 11: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

OpenSourceChi cerca trova

Prova della minidistro Tiny Core LinuxOre 1 0.00 - Marco mi telefona, è un po'abbattuto, il suo vecchio PC lo haabbandonato, e il consiglio che gli avevo dato(quello di passare a Linux) non è andato abuon segno.

Non ha bisogno di grandi utilità ma almenovuole potersi collegarsi ad internet.

Cerca conforto e ascoltandolo penso a quanticome lui si sono trovati nella stessasituazione.

"Ecco, finalmente ho deciso: passo a Linux."

Quante volte abbiamo esclamato questafrase e contenti e fel ici ci siamo messi al laricerca di cosa fare? Finalmenteabbandoniamo Windows. Scarichiamo lanostra bel la ISO e procediamoal l ' instal lazione. Ma quanti di voi una voltache hanno cercato di instal lare senza risultatouna distro sono tornati indietro e hannoreinstal lato Windows?

Linux?? Un sistema operativo per smanettonio per hacker. Neanche riesco ad instal larlofigurati cosa succede dopo in futuro quandoavrò un problema. No no, scusatemi hosbagl iato: torno a Windows.

Questo è la situazione tipica in cui unnewbie (persona inesperta che mostral ' intenzione di migl iorarsi ) a l le prime difficoltàgetta la spugna. Tanti sono i fattorideterminanti che possono impedire lamancata riuscita di una instal lazione Linuxanche se ai più esperti possa sembrarescontato, a volte per un neofita non è cosi .

Ma per risolvere questo inconveniente eccoche la comunità che uti l izza e che ha creatol 'opensource si mobi l i ta creando sempre piusempl ificazioni per avvicinare piu o menotutti a questa stupenda realtà.

Lo scenario è sempl ice: Marco (newbie) delmondo Linux, con personal computer datato(Pentium con 300 MB di ram, scheda video da2 MB) che sfortunatamente non si accendepiù. Si iscrive ad un forum e finalmente sidecide a fare i l grande passo. Passare aLinux.

Ha appena scaricato una distro di cui hasentito molto parlare. . . ma, ecco nascere leprime difficoltà. Schermo nero, lettore CD nonfunzionante, la distro non parte, i l PC siblocca. Marco molto deluso.

Ma caro Marco, è vero che sei un newbie masai che ci sono tante alternative e che Linux

non è soltanto i l CD che tu hai masterizzatocon tanto amore? Non tutte le distro vannobene per tutti i computer. Anche se Marco hasentito parlare bene di Ubuntu (per esempio),perché è particolarmente carinograficamente, Marco non sa che deve anchefare i conti con i l suo personal computer. Edecco che arriva l 'a iuto da parte del lacomunità

Esistono tante distro leggere che fanno sì cheanche i computer datati resuscitino. Sì,perché la forza di Linux è anche quel la diabbattere quel la convinzione che dopo dueanni i l PC è diventato obsoleto einuti l izzabi le.

Tra le tante in circolazione, vi segnalo l 'uscitadel la nuova Tiny Core Linux 2.9 (4 marzo2010). Distro minimale che si è presa loscettro di distribuzione dal le dimensioniultraridotte. I l programmatore nonché padreRobert Shingledecker, dopo averabbandonato i l progetto Damn Smal l Linux(altra distro minimale Linux), ha voluto

sfidarsi con questa mini ma accattivantedistribuzione: 10 MB, basata sul kernel Linux2.6 e con interfaccia grafica minimale.Ambiente shel l Busybox (che racchiude varistrumenti Unix) e ambiente desktop basatosu Tinyx.

La velocità di boot è impressionante, comedichiara lo stesso Shingledecker: questoperché viene usato i l sistema di copiatura delcore nel la RAM, che offre dei tempi diaccesso al le risorse molto veloci .

I l resto del Pinguino - N° 0 - Aprile 2010 11

Per info:http: //tinycorel inux.com/

Lista programmi:http: //distro. ibibl io.org/pub/l inux/distributions/tinycorel inux/tce.html

changelog:http: //tinycorel inux.com/forum/index.php?topic=5193.0

Page 12: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

L'AUTORE: Gaetano LoNigroSono un segretariod'albergo con lapassione perl ' informatica. Lavoroal l 'estero comereceptionist/nightauditor. Mi piacescrivere e fare piccol ilavoretti graficiuti l izzando solosoftware opensource.Mi piace stare acontatto con lepersone e amo tenermiinformato su tuttoquel lo che succede nelmondo.

- Possibi l i tà di instal lazione programmi darepository TCE

- Migl ioramento del caricamento dei fi le inlocale

- Librerie aggiornate,

- Udev 151 aggiornato

- l ibstdc++ 6.0.9 aggiornato

- gl ibc 2.9 supportano ora i486

- migl ioramenti in wbar, appbrowser,appsaudit, tc-config.

Queste solo alcune caratteristiche di TinyCore.

Abbastanza faci le l ' instal lazione da CD-l ive ei l riconoscimento del l 'hardware non presentagrosse difficoltà. Non ci sono programmipreinstal lati , appunto per mantenere unsistema snel lo e veloce al l 'avvio. Tuttavia èpossibi le instal lare i l tutto successivamente.Di default presenta una schermata davverominimale con una barra sti le Cairo in cui sivisual izzeranno: i l terminale, i l pannel lo dicontrol lo e i l menù appl icazioni .

"Menù appl icazioni" consente una rapidainstal lazione di tantissimi programmi;cl iccando su "AppBrowser" si apre un elencodei programmi più usati sul la nostra sinistrache ci porta ad una instal lazione sempl ice eabbastanza veloce del programma scelto. Inquesto caso potete vedere sul la barra i lbrowser Firefox instal lato. Infatti , una voltascaricati i software voluti , Tiny Core sipreoccupa di mettere direttamente l ' iconasul la barra in modo da avere unavisual izzazione immediata del programmmascelto.

Cl iccando sul Pannel lo possiamo visual izzareun menù da cui si possono fare le operazionipiu svariate, dal cambiare l 'ora al la possibi l i tàdi montare gl i hard disk o al cambio dei coloriper quanto riguarda i l desktop. Io ho messo i lverde e poi ho cambiato con un blu conPidgin di default.

Da notare che non si parla di una distrocompleta sotto tutti i punti di vista ma la suacaratteristica principale è appunto la velocitàdi esecuzione e la possibi l i tà di avere undesktop minimo con accesso a internet,adatta a chi vuole dare nuova vita a PC,notebook e netbook obsoleti .

Una pecca potrebbe essere i l fatto di nonavere una comunità in ital iano con un forumdedicato, ma non si trovano problemi con lacomunità internazionale.

L'a lternativa a Windows esiste nonabbattiamoci al le prime difficoltà. ConWindows un PC è da buttare dopo qualcheanno, con Linux bisogna solo cercare la distroadatta.

Perché, al la fine dei conti , chi cerca trova.

E Marco è fel ice.

I l resto del Pinguino - N° 0 - Aprile 2010 12

Gaetano "tangoku7" Lo Nigro

Page 13: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Programmazione

I l resto del Pinguino - N° 0 - Aprile 2010 13

L'AUTORE: PietroAntonino CataniaSin da bambino hoavuto attrazione per lemacchine calcolatrici epoi , più grandicel lo, perl ' informatica.Diplomato inRagioneria ho potutodopo alcuni anniaffacciarmi nel mondodel lavoro comebancario e l ì, a l la primaoccasione, hopartecipato ad un testattitudinale diinformatica che hosuperato e da quelmomento, ottenuta laqual ifica diprogrammatore, hopotuto rappottarmi perquasi tutta la vitalavorativa con gl ielaboratori elettronici ecoi computer.

Su che cosa e come realizzare un programmaIl computer come intelligente strumento di sussidio alle attività umane

Oggi , i l nostro quotidiano è quasi totalmenteimmerso nel la tecnologia (dico quasi , perlasciare ancora un briciolo di indipendenzaumana dal la continua sottomissione aldiffusissimo uso di mezzi e macchine che ciaiutano a svolgere le nostre azioni , anche lepiù comuni) . Eppure raggiungere l 'attualel ivel lo di progredita combinazione framacchinario e uomo-utente non è stato unpercorso faci le. Fermiamoci un attimo ecerchiamo di ricordare quel lo che abbiamofatto oggi , da quando ci siamo svegl iati dalsonno del la notte. Probabi lmente, ancoraprima di uscire da casa abbiamo dato unasbirciatina ai messaggi ricevuti sul telefonino,poi abbiamo preso l 'automobi le, nostra fedelecampagna di trasporto, e ci siamo recati dalgiornalaio per comprare i l nostro giornalequotidiano preferito, abbiamo fatto colazioneal bar e subito ci siamo recati a l nostro postodi lavoro; nel frattempo abbiamo finito i ldentifricio e, a sera, siamo entrati in farmaciaper acquistarne un altro. Fatta la spesa,rincasato, in attesa, di poter chattare, dopo lacena, con gl i amici del la comunità chefrequentiamo in Internet. Quel le elencatesono tutte attività che svolgiamonormalmente ogni giorno, ma se riflettiamoun pò su quanta tecnologia ci ha investito intutto quel lo che abbiamo fatto, possiamorenderci conto di quanto i l rapporto fratecnologia ed umanità ormai sia nettamentesbi lanciato, perchè i l piatto più pesante èquel lo del la tecnologia.

Infatti , la prima cosa che abbiamo fatto nel lagiornata è stata quel la di accendere i ltelefonino per interrogare eventual i messaggiarrivati ; ebbene già con questo passoabbiamo uti l izzato i l software residente neltelefonino tramite la pressione dei tastinecessari per arrivare al l 'esplosione deimessaggi pervenuti ; quel software haacceduto al le cel le di memoria dove risiedonoi messaggi e ce l i ha mostrati nel piccol issimomonitor del telefonino.

Poi abbiamo acceso l 'automobi le, e giàal l 'accensione è stato attivato i l programmadi control lo di sicurezza del l 'auto che cercal 'accoppiamento col codice contenuto nel lachiave di accensione. Se poi l 'automobi le èfornita di navigatore satel l i tare, i l nostropercorso è stato via via displeiato sulmonitorino del navigatore, tramite i lprogramma di lettura satel l i tare del lapercorrenza, con la nostra posizione sempresotto control lo. Dal giornalaio abbiamo

acquistato i l g iornale preferito. I l g iornalaionon ha fatto lo scontrino, ma ha smanettatosul suo PC per chiedere al magazzinierevirtuale (altro programma) di scaricare lamerce che ci ha venduto.

Al bar abbiamo consumato i l primo degl i 8caffè del la giornata, accompagnandolo conuna brioscina vuota: sì, vuota perchè cosìabbiamo potuto i l luderci di non ingrassare.Dopo la consumazione, al la cassa, abbiamoconquistato lo scontrino fiscale, senzapensare che nel registratore di cassa risiedeun programma che ha memorizzato la nostraconsumazione per i fini fiscal i e forse ancheper i l lavoro del consulente contabi le del bar;e fin quando non vengono raccolti i dati sul lecalorie immesse nel nostro corpo, possiamoconsiderarci ancora fortunati per i l briciolo dil ibertà di cui possiamo ancor oggi disporre.

Dopo la nostra pesante giornata nel lapostazione di lavoro, magari sempre davantiad un PC, al la presa continua con programmidi tutti i tipi , finalmente abbia preso la via delritorno verso la nostra dolce casa e, stradafacendo, ci siamo fermati in farmacia percomprare i l nostro dentifricio, ma siccome nelfrattempo siamo stati presi da un certo maldi testa, abbiamo pensato di comprare ancheun antinfiammatorio. Così i l farmacista, alquale abbiamo dato la nostra tesserasanitaria per la detrazione fiscale, ci hafornito uno scontrino che riporta oltre altotale da pagare la citazione del la parte dispesa che potrà essere portata in detrazionenel la prossima dichiarazione di reddito.

Anche qui un programma ha svolto inmaniera impeccabi le i l suo lavororiconoscendo i l farmaco dal dentifricio, chepur essendo i l risultato di una formulachimica medicamentosa, è escluso dal ladetrazione fiscale annua. Finalmente a casa;è l ì che dopo la cena e l 'antinfiammatorio,non pensiamo più al mal di testa perchèvogl iamo riposarci con la chat nel nostro PC,da intrattenere in Internet, con gl i amici del lanostra comunità preferita. Insomma. . .programmi ed ancora programmi.

Ma cosa sono questi programmi? Come si faa pensare ad un programma? E come sireal izza un programma? Forse è megl iofermarci qui per ora, per riprendere i l nostropercorso nel mondo del la programmazione laprossima volta.

Pietro Antonino "Picavbg" Catania

(Fine 1a parte)

Page 14: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

OpenSource

I l resto del Pinguino - N° 0 - Aprile 2010 14

L'autore, Eric StevenRaymond, è uninformaticostatunitense nato nel1957. E' lo svi luppatoredel softwarefetchmail , è l 'attualemanutentore delJargon File (megl ionoto come "I l nuovodizionario degl ihacker") e l 'autore delGlider, i l simboloidentificativo degl ihacker. E' una figuraprominente delpanorama hackerinternazionale e nel1997 ha pubbl icatoun'anal isi su due sti l id ifferenti di svi luppodel software l ibero. I lsaggio, intitolato "Lacattedrale e il

bazaar" , ègeneralmenteconsiderato i lmanifesto delmovimento opensource.

I l resto del Pinguino

pubbl icherà i l saggio adispense per motivi dilunghezza del lo stesso.

I l saggio è l iberamenteconsultabi le suWikiSource al l ' indirizzo:http: //it. wikisource. org/wiki/La_cattedrale_e_il_bazaar

La cattedrale ed il bazarDue stili di sviluppo del software a confronto: il modello "cattedrale" e quello "bazar"

Quella che segue è la mia analisi di unprogetto open source di successo, fetchmail,deliberatamente utilizzato come testspecifico per la verifica di alcunesorprendenti teorie sullo sviluppo delsoftware suggerite dalla storia di Linux. Lemie argomentazioni su tali teorie mettono aconfronto due diversi stili di sviluppo, ilmodello “cattedrale” in voga in gran parte delmondo commerciale, opposto al modello“bazaar” del mondo Linux. Da qui passo poi adimostrare come tali modelli derivino dapremesse divergenti sulla natura dell'attivitàdi debugging del software. Arrivo quindi astabilire la validità dell'esperienza di Linuxriguardo l'affermazione “Con molti occhipuntati addosso, ogni bug diventa unabazzecola”, per suggerire analogie produttivecon altri sistemi di agenti indipendenti ingrado di auto-correggersi, concludendo infinecon una serie di riflessioni sulle implicazionidi queste analisi per il futuro del software.Eric. S. Raymond (1997)

1. La cattedrale e i l bazar

Linux è sovversivo. Chi avrebbe potutopensare appena cinque anni fa che unsistema operativo di l ivel lo mondiale sarebbeemerso come per magia dal lavoro part-timedi diverse migl ia ia di hacker e svi luppatorisparsi sul l ' intero pianeta, col legati tra lorosolo grazie ai tenui cavi di Internet?

Certamente non i l sottoscritto. Quando Linuxfece la sua comparsa nel mio raggio d'azioneal l ' in izio del 1993, mi ero occupato del losvi luppo di Unix e di software open sourceper dieci anni . Ero stato uno dei primicol laboratori a l progetto GNU a metà anni'80. Avevo distribuito su Internet un buonnumero di software open source, real izzandoda solo o in col laborazione con altri parecchiprogrammi (nethack, Emacs VC e GUD, xl ife,etc. ) ancor'oggi ampiamente uti l izzati .Pensavo di sapere come bisognasse fare.

Linux stravolse gran parte di quel checredevo di sapere. Per anni avevo predicato i lvangelo Unix degl i strumenti agi l i , deiprototipi immediati e del la programmazioneevolutiva. Ma ero anche convinto cheesistesse un punto critico di complessità al disopra del quale si rendesse necessario unapproccio central izzato e a priori . Credevoche i l software più importante (sistemioperativi e strumenti davvero ingombranti

come Emacs) andasse real izzato come lecattedral i , attentamente lavorato a mano dasingol i geni o piccole bande di maghi chelavoravano in splendido isolamento, senzache alcuna versione beta vedesse la luceprima del momento giusto.

Rimasi non poco sorpreso dal lo sti le disvi luppo proprio di Linus Torvalds – diffonderele release presto e spesso, delegare ad altritutto i l possibi le, essere aperti fino al lapromiscuità. Nessuna cattedrale da costruirein si lenzio e reverenza. Piuttosto, la comunitàLinux assomigl iava a un grande econfusionario bazaar, pul lu lante di progetti eapprocci tra loro diversi (efficacementesimbol izzati dai siti contenenti l 'archivio diLinux dove apparivano material i prodotti dachiunque). Un bazaar dal quale soltanto unaserie di miracol i avrebbe potuto far emergereun sistema stabi le e coerente.

I l fatto che questo sti le bazaar sembrassefunzionare, e anche piuttosto bene, mi colpìcome uno shock. Mentre imparavo aprenderne le misure, lavoravo sodo nonsoltanto sui singol i progetti , ma anchecercando di comprendere come mai i l mondoLinux non soltanto non cadesse preda del laconfusione più totale, ma al contrarioandasse rafforzandosi sempre più a unavelocità a malapena immaginabi le per quanticostruivano cattedral i .

Fu verso la metà del 1996 che mi parved'essere sul punto di capirne i l perché. I ldestino mi offrì l 'occasione propizia permettere al la prova la mia teoria, sotto formadi un progetto open source del quale decisi d ioccuparmi usando coscientemente lo sti lebazaar. Ci provai , e i l successo ottenuto fupiuttosto significativo.

Nel la parte restante di questo saggio,racconto la storia di quel progetto, usandolaper proporre alcuni aforismi sul l 'efficaciadel lo svi luppo open source. Non che l i abbiaimparati tutti dal mondo Linux, ma vedremocome le modal ità offerte da quest'ultimosiano del tutto pecul iari . Se non hointerpretato male, questi aforismi cia iuteranno a comprendere con esattezzacos'è che rende la comunità Linux unasorgente così copiosa di buon software – eaiuteranno tutti noi a divenire più produttivi .

(Continua)

Page 15: IIllrreessttoo … · tutorial di ogni genere, ... materiale a ilrestodelpinguino@gambasit.org. Tutto il materiale sarà vagliato e quello ritenuto interessante pubblicato sulla ezine.

Tu sei libero:

I l resto del Pinguino - N° 0 - Aprile 2010 15

Attribuzione­Non commerciale­Condividi allo stesso modo 2.5 Italia

di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire erecitare quest'opera

di modificare quest'opera

Alle seguenti condizioni:Attribuzione — Devi attribuire la paternità dell'opera nei modi indicati dall'autore o da chi ti hadato l'opera in licenza e in modo tale da non suggerire che essi avallino te o il modo in cui tu usil'opera.Non commerciale — Non puoi usare quest'opera per fini commerciali.

Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se la usi per crearne un'altra,puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa.

Prendendo atto che:* Rinuncia — E' possibile rinunciare a qualunque delle condizioni sopra descritte se ottieni l'autorizzazione dal detentoredei diritti.* Pubblico Dominio — Nel caso in cui l'opera o qualunque delle sue componenti siano nel pubblico dominio secondo lalegge vigente, tale condizione non è in alcun modo modificata dalla licenza.* Altri Diritti — La licenza non ha effetto in nessun modo sui seguenti diritti:

o Le eccezioni, libere utilizzazioni e le altre utilizzazioni consentite dalla legge sul diritto d'autore;o I diritti morali dell'autore;o Diritti che altre persone possono avere sia sull'opera stessa che su come l'opera viene utilizzata, come il diritto

all'immagine o alla tutela dei dati personali.* Nota — Ogni volta che usi o distribuisci quest'opera, devi farlo secondo i termini di questa licenza, che va comunicatacon chiarezza.La copia completa della licenza è reperibile a questo indirizzo:http://creativecommons.org/licenses/by­nc­sa/2.5/it/legalcode

"Il resto del Pinguino" è la rivista digitale ufficiale di Gambas­it.org,la comunità italiana dei programmatori Gambas.Pubblicazione aperiodicaTutti i testi e le immagini contenuti in questa rivista sono rilasciati sotto la licenza Creative Commons Attribuzione ­Non commerciale ­ Condividi allo stesso modo 2.5 (vedi sotto). Ciò significa che siete liberi di adattare, copiare,distribuire ed inviare gli articoli solo alle seguenti condizioni: la paternità dell'opera deve essere attribuita in qualsiasimodo (con almeno un nome, un'e­mail o un URL) all'autore originale e al nome di questa rivista digitale ("Il resto delPinguino") e all'URL www.gambas­it.org (ma non si possono attribuire il o gli articoli in alcun modo che lasci intendereche gli autori e la rivista abbiano esplicitamente autorizzato voi o l'uso che fate dell'opera). Se alterate, trasformate, oaggiungete informazioni all'opera, dovete distribuire il lavoro risultante con la stessa licenza o una simile o compatibile.