L'informatica ci piace perchè è l'unica materia in cui, regolarmente, gli studenti la sanno parecchio più lunga dei loro professori.

Mentre nel mondo vero la scienza dei computer è usata anche per fare il caffè, nelle aule dei nostri licei i professori, salvo preziose eccezioni, portano gli studenti a giocare con Excel, PowerPoint, o se proprio va bene qualche cadaverica riga di Basic o Pascal.

Chi ha paura allora di parlare dell'informatica vera, quella fatta di algoritmi, software libero, database, kernel, client, server, e sistemi numerici a potenze di 2? È vero che bisogna aspettare l'università per sapere come funziona un computer?

Noi, che alle superiori l'informatica la studiavamo da soli, sbattendo la testa su siti e libri incomprensibili, crediamo di no, e pensiamo che sia possibile cambiare le cose.

Per questo mettiamo liberamente a disposizione guide e articoli che spiegano quelle cose difficili dei calcolatori in modo chiaro, e comprensibile anche da chi di queste cose non ha mai sentito parlare.

RePNI non è un sito per piccoli geni, è solo un posto dove l'informatica viene trattata per come è: molto più semplice di quello che sembra :-)

Pagina principale

Pagina principale

Guida di PHP (base), Stringhe

Continuiamo il nostro discorso sulle variabili parlando di un altro tipo fondamentale del PHP. Il tipo stringa. Come di consueto, esiste una pagina del manuale PHP che descrive nel dettaglio gli argomenti che introdurremo in questo capitolo, e che è sempre bene tenere sotto mano e consultare in caso di dubbi.

In informatica, in generale, quando si parla di stringhe ci si riferisce genericamente a dei "pezzi" di testo qualsiasi, e in PHP una stringa è esattamente questo: una sequenza di caratteri, come quella che vediamo in questo esempio:

Vai all'articolo!

Guida di PHP (base), Variabili

Nel capitolo precedente abbiamo visto come stampare la data corrente in una pagina web. Vediamo ora un esempio molto simile, in cui però viene usata una variabile.

<html> <head> <title>Data e ora</title> <body> <?php date_default_timezone_set('Europe/Rome'); $dataDiOggi = date("d-m-Y"); echo "Ciao, oggi è il "; echo $dataDiOggi; ?> </body> </html>

Come vediamo, al posto di echo date("d-m-Y"); (che avevamo usato nel capitolo precedente), alla riga 12 troviamo echo $dataDiOggi;, ed è stata aggiunta la riga 9, contenente $dataDiOggi = date("d-m-Y");. Intuitivamente, $dataDiOggi è una variabile, e la sua funzione è quella di 'ospitare' il valore della funzione date() (riga 9), per poterlo riutilizzare più avanti (riga 12).

Vai all'articolo!

Macchine Virtuali: il PC che si accende con un clic

Gli informatici, e in particolare gli amministratori di sistema, parlano abbastanza spesso di virtualizzazione. In effetti come parola suona bene e fa molta scena, ma cosa vuol dire virtualizzare un sistema operativo? Cos'è una macchina virtuale, e a cosa serve?

In questo articolo cerchiamo di rispondere a queste domande, come al solito partendo da zero, spiegando la teoria, e concludendo con un esempio pratico.

Vai all'articolo!

Guida di PHP (base), Il primo programma

In questo capitolo vedremo come creare ed eseguire qualche semplice script PHP, per prendere confidenza con l'ambiente in cui lavoreremo nel corso della guida

PHP è un linguaggio un po' anomalo rispetto agli altri che siamo abituati a utilizzare (C, Java, Python, etc.). Infatti, quando programmiamo, ad esempio, in C siamo abituati a creare un file sorgente che contiene il nostro codice, compilare il codice, ed eseguire il programma risultante. Addirittura in Python spesso è sufficiente un doppio clic sul sul file sorgente. Tuttavia, nonostante siamo abituati ad eseguire script PHP tutti i giorni (basta aprire Wikipedia, Facebook, o questa stessa pagina: sono tutte realizzate in PHP), non è chiaro come vengano eseguiti questi script.

Vai all'articolo!

Introduzione alle Espressioni Regolari

Quello di espressione regolare è un concetto che è frequente trovare praticamente ovunque in informatica. E che per un certo periodo di tempo è molto irritante, perchè tutti ne parlano (e di solito ne parlano bene) e tu non hai la minima idea di cosa significhi.

In questo articolo vedremo cosa sono le espressioni regolari, a cosa servono e, brevemente, come si usano.

Vai all'articolo!

Guida di PHP (base), Introduzione

Ormai è praticamente impossibile navigare sul web senza incontrare delle pagine dinamiche. Diciamo che una pagina è dinamica quando cambia contenuto a seconda della situazione in cui viene visualizzata. Ad esempio, quando facciamo il log-in in un forum, probabilmente vediamo il nostro nome comparire da qualche parte nella pagina; o quando controlliamo la posta, i messaggi ovviamente cambiano a seconda di chi ci ha scritto ultimamente; spesso è addirittura possibile interagire con la pagina, inviando commenti su un blog, impostando lo "stato" su un social network, o inserendo qualcosa da cercare su Google.

Eppure chi ha studiato l'HTML (vedi la sezione "Prerequisiti" qui sotto) sa che tutte queste cose non si possono fare con i semplici tag di questo linguaggio. E neanche con quelli difficili: infatti l'HTML ci permette di scrivere solo pagine statiche, ovvero che non cambiano mai di una virgola, ma anzi sono visualizzate sempre allo stesso modo, con lo stesso aspetto e con gli stessi contenuti.

Vai all'articolo!

Hacker Journal 49, aprile 2004

Era un po' di tempo che volevo scrivere qualcosa a proposito di Hacker Journal. Quando è uscito il primo numero di questa rivista, nel 2002, non si trovavano tante altre testate che parlassero di hacking in modo così esplicito. Un peccato, visto che ancora oggi relativamente poche persone hanno le idee chiare su cosa voglia dire essere hacker.

Per citare la definizione che si trovava su ogni numero di HJ, un hacker è una "Persona che si diverte ad esplorare i dettagli dei sistemi di programmazione e come espandere le loro capacità, a differenza di molti utenti, che preferiscono imparare solamente il minimo necessario". Che è parecchio diverso dalla definizione più gettonata di "criminale informatico" (che andrebbe correttamente chiamato cracker).

Vai all'articolo!

RePNI... Again!

Dopo più di un anno di silenzio, finalmente arriva un aggiornamento per il sito: nuovo layout a base di HTML5 e CSS3, CMS riscritto da zero, Database degli articoli rimesso a posto, commenti, likes e molto altro!

L'obbiettivo è quello di sempre, parlare di informatica in modo semplice e chiaro, ma senza rinunciare ad affrontare gli argomenti più seri, come la programmazione o l'uso di GNU/Linux. Ci piace l'idea che queste materie, che oggi sono insegnate quasi soltanto nelle università, e spesso allegramente ignorate nelle scuole superiori, possano essere alla portata anche di chi all'università non ci va, o ci deve ancora andare.

Vai all'articolo!

Introduzione a Linux: l'ABC del pinguino

Ormai se ne sente parlare spesso: questo Linux, che fino a poco tempo fa era "roba da smanettoni", oggi sta cominciando a conquistare un piccolo posto nella vita di tutti i giorni; persino dove la cultura informatica è a livelli di analfabetismo.

Certo, nell'immaginario comune questi termini sono ancora un po' confusi, ed è facile che chi proviene dal mondo Windows si trovi disorientato davanti ai concetti fondamentali del mondo Linux, come ad esempio distribuzione, kernel o GNU; spesso risulta persino difficile capire la differenza tra Linux ed Ubuntu.

Vai all'articolo!

Guida al Terminale (base)

Spesso chi usa il computer è portato a pensare che il sistema operativo coincida con lo sfondo, le icone, la barra applicazioni e tutti gli altri elementi che compaiono sullo schermo appena si accende il computer.

In realtà però questo non è del tutto vero: il SO è anzitutto un amministratore di risorse della macchina, l'unico programma del computer in grado di parlare con tutte le componenti hardware, facendole interagire tra loro (ad esempio trasferendo dei files dal disco alla memoria RAM, piuttosto che scegliendo il codice da fare eseguire alla CPU ecc...).

Vai all'articolo!

Guida di HTML (base)

Spesso capita che qualcuno si riferisca alla nostra epoca chiamandola l'era di Internet. In effetti le nostre giornate ormai scorrono di pari passo con le vicende della rete: ogni giorno visitiamo decine di siti, cerchiamo informazioni su Google, collaboriamo a Wikipedia, chi è iscritto a Facebook controlla il suo status e via dicendo.

Il bravo informatico sicuramente si sarà chiesto cosa ci sta dietro tutto questo: se non hai mai sentito parlare di HTML, CSS e compagni, e la tua domanda è "Come si costruisce un sito internet?" allora questa gida di HTML potrebbe essere un buon inizio.

Vai all'articolo!

Il primo programma in PHP

Ricordo ancora il giorno in cui decisi di imparare il PHP. Scrivere il primo programma fu semplice, sul web c'erano molti esempi, ma non avevo la minima idea di cosa volesse dire programmazione server-side, e le informazioni, più o meno confuse, trovate su Internet non mi aiutavano a dissipare un dubbio piuttosto importante: come faccio ad eseguire un programma PHP?

Un utente abituato a utilizzare i linguaggi di programmazione "classici" (C, Java, Pascal), quando si avvicina ad un nuovo linguaggio, probabilmente si aspetta di doversi procurare un compilatore o, al massimo, un interprete, che renda eseguibile il codice sorgente. In PHP non esiste niente di tutto questo.

Vai all'articolo!

Guida di C (base)

Chiunque abbia intenzione di dedicarsi veramente alla programmazione, di scrivere software efficiente, di imparare lo stesso mestiere dei programmatori professionisti, dovrà, prima o poi, cimentarsi nello studio del linguaggio C.

In questa guida affrontiamo le basi della programmazione in C. Non è richiesta nessuna conoscenza in particolare per iniziare, solo un po' di voglia e buona volontà :-)

Vai all'articolo!

Linguaggi di programmazione

Con questo articolo intendo descrivere brevemente le caratteristiche principali di alcuni linguaggi di programmazione in modo da fornirne, senza inutili pretese di completezza, una panoramica sintetica e schematica.

Il BASIC fu uno dei primi linguaggi creati, ed uno dei pochi ad essere ancora massicciamente utilizzato ad oltre 40 anni dalla sua comparsa. Un po' per la sua semplicità, un po' per l'affetto che lo lega alla comunità informatica, è un dato di fatto che la maggior parte dei programmatori inizi a scrivere codice buttando giù qualche riga di BASIC.

Vai all'articolo!

Astronomia [Scienze] [5ª]

L'astronomia è la scienza che si occupa di studiare la posizione e prevedere i movimenti dei corpi celesti.

La Terra è un pianeta del Sistema Solare e dista (mediamente) 150.000.000 Km dal Sole. Il suo diametro è di circa 12.750 Km (molto piccolo rispetto alla media degli altri pianeti) ed attorno ad essa si muove un satellite: la Luna.

Vai all'articolo!

La Terra, pianeta instabile [Scienze] [5ª]

Gli obiettivi di questo capitolo sono:

esaminare i fenomeni che manifestano l'instabilità del Pianeta Terra (fenomeni vulcanici e sismici) analizzare le informazioni ottenibili dallo studio dei suddetti fenomeni, verificando che essi sono collegati con processi complessi comprendere una teoria in grado di spiegarne le cause: la teoria della tettonica a zolle

Il vulcanesimo è una delle manifestazioni più spettacolari ed evidenti del processo attraverso cui i magmi generano le rocce magmatiche.

Vai all'articolo!

Teoria dell'evoluzione [Scienze] [5ª]

In questo capitolo verrà spiegato:

il concetto di evoluzione come si è arrivati a formulare la teoria dell'evoluzione perchè la teoria dell'evoluzione è ritenuta valida quali sono gli effetti dell'evoluzione, sia a livello delle singole specie che dell'intero insieme degli esseri viventi come si sono evoluti i primi organismi viventi

L'evoluzione è il processo naturale di sviluppo del fenotipo (espressione diretta del genotipo) degli esseri viventi. Attraverso i meccanismi evolutivi i frammenti di RNA che miliardi di anni fa si formarono sulla terra hanno formato nel corso del tempo l'odierno numero di specie, che, ad oggi, supera il milione.

Vai all'articolo!

Organizzare il backup

Prima o poi capita a tutti di dover cambiare sistema operativo e dover quindi salvare tutti i vecchi dati (documenti e musica, ma anche posta, password ecc...) in modo da poterli recuperare dopo la formattazione.

Molti utenti hanno sperimentato la spiacevole sensazione di essersi ricordati troppo tardi che tra tutta la robaccia eliminata con la formattazione c'era anche tutta la posta di Thunderbird, piuttosto che le chiavi PGP con cui ho crittato tutti i miei documenti riservati, o magari i files di salvataggio di Unreal Tournament o quant'altro di prezioso possa essere, nella fretta, sfuggito alla nostra memoria...

Vai all'articolo!

Programmare i computers

Gli antenati dei moderni computers erano macchine progettate e costruite per svolgere ciascuna un unico compito: una macchina per risolvere una specifica equazione, una per generare una certa serie di numeri e via dicendo; sono famose le macchine che il matematico americano Derrick Norman Lehmer costruì negli inizi del '900 (assieme a suo figlio Derrik Henry), utilizzando pignoni e catene di bicicletta [cfr. Marcus Du Sautoy, "L'enigma dei numeri primi"; pag. 360].

Fu in una fabbrica di stoffe che venne in mente di dare delle istruzioni ad una stessa macchina attraverso schede perforate per farle svolgere più compiti; in questo caso, a seconda della scheda inserita, la macchina tesseva un motivo diverso; era possibile svolgere più compiti con la stessa macchina: quello in un certo senso fu il primo programma per computer della storia.

Vai all'articolo!

Sistemi operativi

Tutti sanno grossomodo com'è fatto un computer: c'è un'unità di calcolo, il processore, che si occupa di eseguire delle operazioni matematiche ricevendo ed inviando i dati i dati alla memoria volatile, la RAM. Ci sono poi il disco fisso, per conservare questi dati in modo permanente e la scheda video, che genera immagini da mandare ad uno schermo; ed infine tutte le periferiche per scambiare dati col mondo esterno: tastiera, mouse, scanner, microfono, ecc.. per ricevere (input) e monitor, casse, stampante, ecc. per inviare all'esterno (output).

Certo che da qui a finestre, barre degli strumenti, sfondi, chat, Unreal Tournament e compagni ne passa parecchio...

Vai all'articolo!