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.
22:40 Scritto in Programmazione J2EE | Link permanente | Commenti (4) | Segnala | Tag: Programmazione, search text engine, apache lucene, ricerca google-like
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
01:05 Scritto in Design Patterns | Link permanente | Commenti (0) | Segnala | Tag: Programmazione, patterns schmidt, network patterns
16/02/2006
Trouts of War. Un semplice videogame in C++.

Sul Wiki di Programmiamo trovate il tutorial con la descrizione del primo passo: creazione di una finestra SDL.
Fonte: Linux Pro e Linux Format
00:00 Scritto in Game Programming | Link permanente | Commenti (0) | Segnala | Tag: Programmazione
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.
19:40 Scritto in Intelligenza Artificiale | Link permanente | Commenti (2) | Segnala | Tag: Programmazione, reti neurali, reti neurali java, neural networks
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.
11:30 Scritto in Programmazione J2EE | Link permanente | Commenti (0) | Segnala | Tag: Programmazione, transazioni jdbc, jdbc, gestione transazioni
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.
00:10 Scritto in Vari | Link permanente | Commenti (0) | Segnala | Tag: Programmazione, wiki programmiamo
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.
00:45 Scritto in Programmazione HTML | Link permanente | Commenti (0) | Segnala | Tag: Programmazione, pagamento paypal, html paypal
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
J2EE Programming
The Server Side
11:10 Scritto in Vari | Link permanente | Commenti (3) | Segnala | Tag: Programmazione, siti programmazione, link programmazione

