20/03/2006
Motori di Ricerca

Oggi voglio iniziare a parlare di motori di ricerca e per farlo ho pensato bene di introdurre l'argomento parlando di Google.
Tutti noi usiamo google quotidianamente ma forse pochi si sono chiesti come funziona.
Google è il risultato di anni di ricerca di Sergey Brin e Larry Page che presentarono questo progetto come argomento di tesi alla Università di Stanford in California. Fondamentalemente il motore di ricerca, attraverso dei crawler, naviga tra i vari link e immagazzina tutte le pagine HTML (e non) che incontra. Dalle pagine sono estratte le singole parole utilizzate poi come indice in fase di ricerca. Se un utente digita un parola è probabile che ci siano milioni di documenti che contengono quella parola, per cui va definita una priorità. Questa priorità viene detta page rank. In pratica, la priorità di una pagina è funzione della priorità delle pagine che la linkano e quelle da essa linkate. Quindi più una pagina è popolare più ha probabilità di comparire nelle prime posizioni.
Per nostra fortuna su Internet esiste ancora un documento dei due ricercatori sul funzionamento di Google. Leggetelo è un'ottima base di partenza.
L'algoritmo basato sulla popolarità, però, non fu un'idea dei due ricercatori, bensì' di Massimo Marchiori.
Furono gli stessi padri di Google a dirlo quando il loro lavoro fu lanciato nel 1998.
Da questo documento estraggo alcune sue affermazioni:
"Larry Page e Sergey Brin hanno preso l'idea iniziale di Hypersearch, hanno considerato la variante "popolare" che io avevo valutato come meno efficace e hanno effettuato in maniera elegante le giuste semplificazioni per renderla usabile su larga scala da un motore di ricerca veloce. E infatti mi hanno citato, correttamente, quando hanno lanciato Google nel 1998".
"I motori di ricerca del futuro dialogheranno con gli utenti guidandoli nei vari passi della ricerca. Le idee per fare un motore di terza generazione le ho da tempo, anche se al momento preferisco tenerle per me. Il problema sta soprattutto nelle risorse: per dimostrare la bonta' di un motore occorre poi farlo funzionare su scala mondiale, non basta pubblicare l'idea in un articolo. Per esempio, Hypersearch, a mio giudizio, e' superiore a Pagerank, eppure quasi nessuno lo conosce, per il semplice motivo che non c'e' un motore di ricerca che mostri la bonta' dell'idea su larga scala. Per competere con Google non bastano solo idee innovative, occorrono mezzi e risorse, e certamente, avendo un po' di risorse, sarebbe una sfida stimolante".
Attualmente Massimo Marchiori è ricercatore all'università di Venezia e lavora al MIT nel World Wide Web Consortium al fianco dell'inventore del web Tim Berners-Lee.
PS
Metto a disposizione le pagine del blog e del wiki di Open Community per chiunque voglia pubblicare articoli sui motori di ricerca oppure piccoli esempi relativi a Hypersearch (di cui sicuramente ci occuperemo in futuro).
10:35 Scritto in Vari | Link permanente | Commenti (1) | Manda | Tag: Informatica e telefonia
07/03/2006
Joomla

La scorsa settimana ho provato un Content Management System (CMS) molto interessante: Joomla.
Joomla è scritto in PHP e per installarlo basta apache http server con il modulo per php e MySQL. Con Joomla puoi creare facilmente il tuo portale con RSS Feed, News, Blog e molto altro ancora, senza scrivere una riga di codice.
Joomla ha un'architettura che consenta l'aggiunta di nuove funzionalità attraverso plugins. Tra i vari plugins quello che più mi ha incuriosito è VirtueMart, un carrello di shopping online veramente potente.
Joomla mette a disposizione anche numerosi templates, che aiutano a personalizzare il proprio portale.
Vi consiglio caldamente di provare questo prodotto, non ne resterete delusi.
Buon Divertimento.
PS
Qui trovate la lista di altri CMS.
00:05 Scritto in Recensioni | Link permanente | Commenti (2) | Manda | Tag: Informatica e telefonia
20/01/2006
Colombo. Un semplice browser web in Java.

Il progetto si chiama Colombo ed è un semplice browser web. Non vi aspettate di riuscire a vedere tutte le pagine su Internet, nel codice trovate alcune pagine HTML di esempio con cui il browser funziona bene.
Se volete potete estenderlo aggiungendo funzionalità come: bookmark, menù e altro ancora.
Qui potete scaricare il codice.
Buon Divertimento!!!
08:00 Scritto in Programmazione Java | Link permanente | Commenti (0) | Manda | Tag: Informatica e telefonia, navigatore web java, colombo, browser java
15/01/2006
Beethoven

In questo post ho iniziato a parlare di design patterns, in particolare di quelli GoF.
Voglio segnalarvi questo semplice programmino java che mostra l'utilizzo pratico di alcuni semplici patterns: MVC, Facade, Singleton e Factory Method.
Il programmino è una semplice command line che consente di suonare file MIDI. Potete estenderlo aggiungendo il supporto per nuovi formati (se lo fate, segnalatemelo).
Scaricate il codice, leggete la documentazione disponibile e buon divertimento.
13:00 Scritto in Programmazione Java | Link permanente | Commenti (0) | Manda | Tag: Informatica e telefonia, player audio java, player audio, programmare audio
12/01/2006
Gollumix. Un kernel scritto da zero.

Gollumix è un semplice sistema operativo che gira su piattaforma Intel 32 bit. Lo scopo del progetto è solamente didattico e potrebbe tornare utile agli studenti universitari e a chiunque si diletta nel kernel programming.
Ecco le features supportate:
- protected mode
- multi tasking
- floppy driver
- keyboard AT
- serial line RS-232
- TTY layer
- VGA text mode
- 4 console locali (quello che digiti viene stampato a video)
- 2 console seriali (si possono controllare linux box remote)
chiunque è libero di studiare, usare e modificare gollumix, ricordate però di pubblicare il vostro lavoro, magari mandandolo anche a me all'indirizzo koala.gnu AT tiscali.it.
Il solo codice senza una buona documentazione a volte non è sufficiente per una buona comprensione del problema. Per questo motivo ho realizzato una serie di tutorial step by step che trovate qui:
Linux Native Boot Loader (codice | tutorial)
Keyboard Driver (codice | tutorial)
System Calls (codice | tutorial)
Processes (part I) (codice | tutorial)
Serial Driver (codice | tutorial)
TTY Layer (codice | tutorial)
Floppy Driver (codice | tutorial)
per gli ultimi 4 argomenti il tutorial non è ancora disponibile, c'è solo il codice.
Sviluppi futuri:
- supporto buffer cache
- miglioramento di alcune strutture codice
- supporto EXT2
10:55 Scritto in Sistemi Operativi | Link permanente | Commenti (3) | Manda | Tag: Informatica e telefonia, kernel, sistemi operativi, step by step, tutorial
Benvenuto su Programmiamo

Questo blog è stato creato per condividere con altri le mie esperienze informatiche al fine di migliorare e incrementare le mie conoscenze e, se ci riesco, ad aiutare anche voi.
Non è la prima volta che cerco di creare un giornale di programmazione. Già tempo fa avevo creato il seguente sito con lo stesso obiettivo. Quell'esperienza si è poi rallentata a causa dei miei molti impegni e dalla difficoltà di aggiornare il sito.
L'esperienza del blog Il mio Diario mi ha fatto capire meglio come gestire un giornale di questo tipo, per cui eccomi di nuovo qui per un secondo tentativo.
Spero di ricevere i vostri feedback e creare un giornale che sia proprietà di tutti noi programmatori.
PS
Se avete Firefox come browser installate il news aggregator Habari Xenu (se non ne possedete un altro diverso) e aggiungete ad esso il link al mio flusso RSS (l'icona rossa sulla destra). Questo post in un altro mio blog di news vi spiegherà come fare. In questo modo, tutti i giorni, troverete un mio nuovo post sul vostro aggregator.
09:05 Scritto in Vari | Link permanente | Commenti (0) | Manda | Tag: Informatica e telefonia, programmiamo, java, programmazione

