27/02/2006

Ricerche Google-like con Apache Lucene


In questo post vorrei parlarvi di uno dei problemi classici nelle applicazioni di shopping online: ricerca di prodotti in stile google.

Generalmente, per affrontare questa categoria di problemi si utilizzano search text engine scritti ad hoc o da terze parti. Uno dei search text engine più famosi per J2EE è Apache Lucene. Anche quando l'applicazione si appoggia già ad un database, è sempre sconsigliabile utilizzare questi per tematiche di search text.

Per rendere più chiaro l'uso di Apache Lucene ho scritto il seguente articolo che descrive l'uso di questo tool nel nostro prodotto Bazaar. Il codice di Bazaar con questa nuova feature non è stato ancora rilasciato, quindi consideratelo un'anteprima.

21/02/2006

Patterns for Concurrent & Network Object

Oggi voglio presentarvi una diversa categoria di Patterns pubblicati nel famoso libro Pattern-Oriented Software Architecture: Patterns for Concurrent and Network Objects di Douglas C. Shmidt.

In quel libro vengono discussi classici problemi in ambienti distribuiti e la loro soluzione attraverso specifici patterns.

Questi patterns vengono divise in 4 categorie: cuncurrency, event, initialization, e synchronization patterns.

Vediamo ora in dettaglio ciascun pattern. In futuro avremo modo di analizzare questi patterns in maggior dettaglio cercando di capire anche eventuali utilizzi in applicazioni pratiche.

Concurrency Patterns

Thread per Session
Thread Pool
Thread Specific Storage
Leader/Followers
Half Sync/Half Async
Active Object
Monitor Object

Event Patterns

Reactor
Proactor
AsynchronousCompletion Token

Initialization Patterns

Acceptor/Connector
Service Configurator
Object Lifetime Manager

Synchronization Patterns

Double Checked Locking
Thread Safe Interface
Scoped Locking
Strategized Locking

Miscellaneous

External Polymorphism
Wrapper Facade

16/02/2006

Trouts of War. Un semplice videogame in C++.

A partire da questo post, iniziamo un nuovo progetto per la scrittura di un semplice videogame bidimensionale. Il videogame si chiama Trouts of War ed è un videogame arcade sparatutto scritto in C++ con l'ausilio della libreria SDL (disponibile sia per Linux che per Windows).

Sul Wiki di Programmiamo trovate il tutorial con la descrizione del primo passo: creazione di una finestra SDL.
Fonte: Linux Pro e Linux Format 

14/02/2006

Reti Neurali


In questo post voglio elencarvi alcuni link utili per iniziare a capire cosa sono le reti neurali e in quali occasioni si utilizzano. Esistono categorie di problemi per cui non è possibile utilizzare il classico approccio deterministico che, generalmente, utilizziamo nella programmazione classica, come ad esempio il riconoscimento voce, applicazioni OCR e molto altro ancora.

Per risolvere queste categorie di problemi si ricorre ad approcci alternativi, come ad esempio le reti neurali.

Qui trovate una guida introduttiva alle reti neurali con esempi in C.

Andando su quest'altro link trovate un'implementazione Java di una rete neurale con una documentazione introduttiva.

Una volta ampliata la vostra esperienza con le reti neurali potete pensare di utilizzare, per le vostre applicazioni, un framework più professionale come Joone.

In futuro su questo blog presenterò di sicuro qualche applicazione che vi aiuterà a capire meglio l'uso di questa tecnologia. Se qualcuno di voi ha già esperienze in questo settore e vuole condividere le sue conoscenze con noi è il benvenuto.

Nel frattempo vi auguro ... Buon divertimento!!!

PS
se trovate un framework, un articolo o esempi sulle reti neurali degni di nota, non esitate a segnalarle.

13/02/2006

Transazioni JDBC


Oggi voglio proporvi un articolo scritto da me questo fine settimana sulla gestione delle transazioni in un'applicazione web.

Sappiamo che Sun fornisce le specifiche JTA per la gestione delle transazioni, ad ogni modo, a volte può essere sufficiente, per i propri bisogni, un'implementazione JDBC fatta in casa.

Nel wiki di programmiamo trovate l'articolo in questione. Leggetelo e fatemi sapere la vostra opinione ed eventuali suggerimenti per migliorarlo.

Chi vuole può divertirsi ad integrare questo codice in Bazaar, l'idea è quella di sostituire l'implementazione di JSPCart con uno strato DAO fatto come si deve.

In settiamana cercherò di pubblicare un articolo su come si dovrebbe implementare uno strato DAO per la nostra applicazione di online shopping.

09/02/2006

Wiki di Programmiamo



Ho aperto un nuovo wiki in sostituzione di quello che usavo prima, che non mi consentiva di proteggere le modifiche dei documenti con password.

Il wiki contiene degli annunci google che non sono miei, li impone il sito che fa hosting.

Viceversa, ho aggiunto gli annunci google a questo blog. Se in futuro pubblicherò un articolo che ritenete interessante, potete ricambiare cliccando su uno degli annunci. Un piccolo contributo per aiutarmi a gestire questo blog.

Questo è il nuovo link del wiki.

08/02/2006

Paypal nel nostro sito di ecommerce

Durante il lavoro del progetto Bazaar mi sono posto la domanda: quali forme di pagamento devo adottare nel progetto?

Attualmente l'ordine viene semplicemente registrato e il pagamento avviene solo in contrassegno, però, future soluzioni potrebbero essere:

- pagamento con carta di credito (in un futuro post parleremo di Banca Sella);
- pagamento con paypal.


In questo post voglio parlare del secondo sistema. Paypal è una società di Ebay per il pagamento tramite email tra gli iscritti. In pratica funziona così.

Ti registri e fornisci a Paypal la tua carta di credito, da quel momento in poi puoi pagare qualsiasi altro utente Paypal tramite un' email.

In teoria fornire il numero di carta di credito a Paypal dovrebbe essere più sicuro che fornirlo a un sito di ecommerce qualsiasi Quindi Paypal funge da garante.

Sul sito di Paypal ci sono alcuni strumenti utili da aggiungere al proprio sito per l'ecommerce: carrello e il bottone paga adesso.

Visto che Bazaar possiede già un carrello, analizzeremo il sistema di pagamento paga adesso. Calcolato il totale della spesa si potrà fornire un bottone all'utente che gli consenta di pagare quella cifra attraverso Paypal.

Ecco i passi per creare un bottone Paga Adesso.

1. Registrarsi su PayPal.
2. Loggarsi
3. Andare su questo link.
4. Inserire i seguenti valori

Nome oggetto/servizio
ID numero dell'oggetto
Prezzo
Valuta
Paese
Si selezioni l'immagine del bottone che si desidera

Qui trovate il codice generato. Potete evitare i passi 3 e 4 sopra e usare direttamente questo codice sostituendo la parte in grassetto con i valori desiderati. Se, invece, si desidera crittografare la richiesta, allora dovete creare da voi anche i passi 3 e 4.

Se vi interessa potete modificare Bazaar per introdurre questa forma di pagamento.

06/02/2006

Migliori siti di programmazione

Dopo la raccolta di tutorials e di Open Books, penso che possa tornare utile un post dove raccogliere i migliori siti di programmazione organizzati per argomento.

Ecco l'elenco che nel tempo terrò aggiornato anche in base alle vostre segnalazioni. Per ora non sono molti, ma prevedo che il loro numero aumenterà a breve.

Design Patterns

Patterns & Software: essential concept & terminology
Patterns for Java & Distributed Computing

Programmazione

Programmazione.it (Richiede una registrazione gratuita)
Thefreecountry.com
Programmers Heaven
DevArticles
Programming Tutorials
Code Project

Game Programming

ToyMaker
GameMaker
GameDev.Net
2D Game Tutorials

Crittografia

Chiper By Ritter

J2EE Programming
The Server Side

Tutti gli articoli