31/01/2006
Gollumix. Step 1 della Gestione dei processi

Riprendiamo il nostro tutorial sul kernel Gollumix pubblicando nel wiki di questo blog lo step 1 della gestione dei processi.
In questo step parleremo di Task State Segment (TSS), Local Descriptor Table (LDT), Global Descriptor Table (GDT), stati di un processo e tabella dei processi..
Buona lettura!!!
23:20 Scritto in Sistemi Operativi | Link permanente | Commenti (0) | Manda | Tag: Programmazione
29/01/2006
Open Book

Di volta in volta aggiornerò questo post con gli open book disponibili in rete. Se volete potete segnalarmi i vostri open book preferiti.
Sistemi Operativi
Linux device drivers 3th edition (kernel 2.6), il libro sui device driver Linux scritto da Alessandro Rubini e Jonathan Corbet è arrivata alla terza edizione che è dedicata completamente al kernel 2.6.
Programmazione C++
Thinking in C++ vol. 1, primo volume del libro di programmazione C++.
Thinking in C++ vol. 2, secondo volume del libro di programmazione C++.
Programmzione Java
Thinking in Java, libro di programmazione Java.
Game Programming
Killer Game Programming, questo libro insegna a scrivere videogame 3D con Java3D.
22:50 Scritto in Vari | Link permanente | Commenti (2) | Manda | Tag: Programmazione, open book, programmazione
25/01/2006
Design Patterns applicati

In questo post vi ho parlato di un tutorial su un videogame 3D dedicato al calcio. Nei precedenti post, però, abbiamo parlato anche di design patterns GoF. In questo post volevo mostrarvi un esempio pratico di applicazioni dei patterns ad un ipotetico gioco di calcio. Potreste utilizzare questa guida per migliorare il codice pubblicato nel tutorial creando la vostra versione. Certo ci sarebbe da migliorare anche la grafica ma questo può avvenire gradualmente.
Qui di seguito trovate i links alla guida.
- Parte I-II;
- Parte III-IV.
21:05 Scritto in Design Patterns | Link permanente | Commenti (0) | Manda | Tag: Programmazione
22/01/2006
Bazaar. Un negozio online gratuito.

Oggi voglio presentarvi un mio piccolo progetto open source che, spero possa tornare utile a tutte le persone che desiderano aprire un negozio online e anche alle persone più tecniche che desiderano apprendere come scrivere una web application.
Il progetto si chiama Bazaar ed è un semplice negozio con carrello online basato su JSPCart.
Con questo strumento potete aprire anche voi un semplice negozio online in modo assolutamente gratuito. Quello di cui avete bisogno è un PC (che funzionerà da server) e una connessione ADSL con ip pubblico (tipo Libero, ad esempio).
Sul PC dovete installare il database server MySQL, il web container Tomcat e il codice di Bazaar come descritto in questa pagina.
La documentazione non è ancora completa, ma su questo blog segnalerò di volta in volta i vari update.
Partendo da JSPCart ho fatto alcune modifiche che mi hanno portato allo stato attuale del codice (bazaar-pre4.war).
Qui potete vedere una semplice demo. La grafica non è molto accattivante ma penso che migliorerà a breve. Tutte le funzionalità, però, sono disponibili. Ovviamente nella demo sarà visibile solo la parte customer e non la parte di amministrazione, se lo scaricate, però, potete vederle entrambi.
Qui potete vedere un esempio di negozio con prodotti veri (lo sto mettendo su per un mio parente), mancano solo i prezzi.
Sto realizzando una nuova versione in cui ho aggiunto la funzionalità di ricerca stile google utilizzando apache lucene. Spero di pubblicare presto i sorgenti.
Mi piacerebbe aggiungere molte funzionalità come:
- pubblicazione automatica dei prodotti su Froogle, Ebay, etc;
- miglioramento del codice con codifica che rispetti di più i principi di design patterns;
- completa integrazione con struts;
- supporto paypal (già implementato ma commentato per ora) e carte di credito;
- creazione di servizio di hosting con creazione automatica di negozi e pubblicazione gratuita di inserzioni;
Ovviamente faccio queste cose principalmente per passione e per motivi didattici, se vi va di contribuire non abbiate timore a farvi avanti.
Grazie
PS
ultimamente sto avendo problemi con il router, se non riuscite a collegarvi riprovate più volte.
12:40 Scritto in Programmazione J2EE | Link permanente | Commenti (0) | Manda | Tag: Programmazione, negozio online gratuito, crea negozio, bazaar, free shopping cart
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
19/01/2006
Java 3D Soccer

Si tratta di un tutorial step by step di un videogame di calcio 3d scritto in Java con l'ausilio di Java 3D.
I programmatori hanno accuratamente documentato il lavoro, settimana dopo settimana, mostrato i progressi, i problemi affrontati e le soluzioni.
Non sarà sicuramente FIFA Soccer, ma per un programmatore è già un buon inizio.
Un suggerimento per migliorare questo programmino è quello, ad esempio, di caricare i vari personaggi e oggetti da file 3D Studio (o altri formati), invece di realizzarli programmaticamente.
Buon Divertimento!!!
08:00 Scritto in Programmazione Java | Link permanente | Commenti (0) | Manda | Tag: Programmazione
18/01/2006
Core J2EE Patterns

Un'applicazione J2EE può essere composta anche solo dal web container, con la business logic implementata in semplici classi Java e la persistenza gestita attraverso il pattern DAO.
L'applicazione J2EE è, generalmente, composta da 3 layer: presentation, business e integration.
Per ciascuno dei 3 layers ci sono dei patterns che ci consentono di risolvere numerosi problemi comuni.
Qui riporto un elenco dei Core J2EE Patterns organizzati per layers.
Presentation Layer
Business Layer
Integration Layer
Qui trovate un esempio di applicazione J2EE (PetStore) che utilizza questi patterns.
08:00 Scritto in Design Patterns | Link permanente | Commenti (0) | Manda | Tag: Programmazione, core j2ee patterns, java, j2ee, j2ee patterns
17/01/2006
Gollumix. Step 0 della Gestione dei Processi.
Riprendiamo il nostro tutorial sul kernel Gollumix pubblicando nel wiki di questo blog lo step 0 della gestione dei processi.
In questo step implementeremo un semplice memory manager che gestisce, per ora, solo la memoria fisica allocando e liberando pagine di memoria.
Buona lettura!!!
01:20 Scritto in Sistemi Operativi | Link permanente | Commenti (0) | Manda | Tag: Programmazione, gestione processi, kernel programming, gollumix
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
14/01/2006
Tutorial Programmazione

Tutorial C
Tutorial C++
Tutorial Java
Tutorial Design Patterns
Tutorial Grafica 3D
Advanced OpenGL Texture Mapping
Gollumix.Un kernel scritto da zero
Tutorial Internet
Algoritmi e Strutture Dati
Data Structures and Algorithms with Object Oriented Patterns in C++
Dictionary of Algorithm and Data Structures
Segnalatemi i vostri tutorial preferiti, provvederò ad aggiungerli a questo post.
10:50 Scritto in Vari | Link permanente | Commenti (0) | Manda | Tag: Programmazione, programmazione, java, c, c++, tutorial
13/01/2006
Design Patterns - GOF

Programmo da molti anni e uno dei problemi tipici dei programmatori, soprattutto quelli inesperti è l'attitudine a reinventare la ruota.
In molte applicazioni, i problemi da affrontare sono più o meno gli stessi: persistenza, transazioni, threading, e molto altro.
Quello che i programmatori inesperti spesso fanno è quello di reinventare soluzioni nuove a problemi noti.
Così come in architettura e ingegneria esistono soluzione a problemi noti, lo stesso vale per la programmazione.
Per questa ragione nascono i design patterns. Essi sono soluzioni noti a problemi noti. Il mio modo di programmare è enormemente cambiato dopo la lettura di questo libro, che presenta un set di patterns individuati dalla Gang of Four (Gof).
Questi patterns si possono raggruppare in 3 categorie: strutturali, comportamentali e creazionali.
Ecco a voi un'infarinatura dei patterns presentati in questo libro. Vi consiglio di studiarli attentamente se volete diventare veri professionisti del software.
Patterns Creazionali
Patterns Strutturali
Patterns Comportamentali
12:28 Scritto in Design Patterns | Link permanente | Commenti (0) | Manda | Tag: Programmazione, design patterns, singleton, facade, software design, factory method
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

