Homepage | 2006-02 »

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

Questo post lo dedico agli open book, cioè quei libri che si possono acquistare normalmente come qualsiasi altro libro ma che sono disponibili anche online gratuitamente.

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.

Vi segnalo un altro piccolo progetto Java che spero piacerà ai principianti Java perchè, oltre a parlare di programmazione Java e Swing, parla anche di alcuni patterns come MVC, Singleton e Facade.

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

 

Oggi voglio segnalarvi un link di programmazione Java 3D molto interessante e divertente.

 

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

Oggi parliamo di un'altra categoria di patterns: Core J2EE Patterns. Molti dei patterns che presenterò in questo post sono un'estensione dei patterns fondamentali Gof. La figura in questa pagina, mostra la struttura interna di un'ipotetica appliazione J2EE. Essa è composta da un web container e un ejb container. Il secondo viene utilizzato per la gestione della persistenza (ejb entity bean) e business logic (ejb session bean).

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

Interception Filter

Front Controller

View Helper

Composite View

Service to Worker

Dispatcher View

Business Layer

Business Delegate

Value Object

Session Facade

Composite Entity

Value Object Assembler

Value List Handler

Service Locator

Integration Layer

Data Access Object

Service Activator

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

In questo post raccoglierò tutorial dei diversi linguaggi di programmazione ad uso e consumo di tutti noi. Il post verrà aggiornato di tanto in tanto e linkato nella barra laterale a destra.

Tutorial C

C Programming

Tutorial C++

C++ Annotations

Tutorial Java

Sun Java Tutorial

Brewing Java

Corso Java

Tutorial Design Patterns

Design Patterns GoF

Design Patterns Tutorial

JUG Torino Tutorial

Ugo Landini Tutorial

Catalogo dei Design Patterns

Core J2EE Patterns

Thinking in Patterns

Tutorial Grafica 3D

Basic OpenGL Tutorial

Advanced OpenGL Texture Mapping

OpenGL for Game Programming

Tutorial Kernel Programming

Gollumix.Un kernel scritto da zero

Tutorial Internet

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

Abstract Factory

Builder

Factory Method

Prototype

Singleton

Patterns Strutturali

Adapter

Bridge

Composite

Decorator

Facade

Flyweight

Proxy

Iterator

Patterns Comportamentali

Chain of Responsability

Command

Interpreter

Mediator

Memento

Observer

State

Strategy

Template Method

Visitor

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


medium_programmare.jpg


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