Linked list in Python

Una linked list (nel nostro caso, una doubly linked list )è una struttura dati dove gli elementi sono ordinati linearmente e il loro ordine è dato dai puntatori presenti in ogni elemento della lista.

Di seguito mostrerò l’implementazione di una doubly linked list in Python, dove ogni elemento ha un puntatore all’elemento precedente e un puntatore all’elemento successivo.

Continua >

Comunicazione mediante WebSocket e Tomcat 7

Le WebSocket rappresentano una tecnologia che consente una comunicazione bidirezionale e full-duplex tra il client e il server.
In particolare, consente ad applicazioni browser-based di comunicare con un host remoto senza la necessità di aprire connessioni multiple utilizzando AJAX o IFrame, in combinazione con il long polling.

Lato client, le WebSocket sono implementate nella maggior parte dei browser di ultima generazione. La tabella riportata sul sito caniuse.com può essere d’aiuto.
Lato server, esistono diverse implementazioni di WebSocket. In questo articolo prenderemo in considerazione l’implementazione Java fornita da Apache Tomcat 7. Come indicato nella documentazione, l’API potrebbe essere soggetta a cambiamenti.

Continua >

Informazioni sulla memoria in Java

Ogni applicazione Java ha associata un istanza della classe Runtime che può essere utilizzata per vari motivi. Uno di questi è controllare lo stato della memoria.

I metodi che ci interessano sono tre:

public long freeMemory()
public long maxMemory()
public long totalMemory()

Continua >

Leggere da un Readable con la classe Scanner

Per un’introduzione sulla classe Scanner vedi: Java: la classe Scanner.

La classe Scanner consente di leggere dei token da diverse fonti (File, InputStream, String…). Può tuttavia capitare di dover leggere da una qualche struttura diversa. In questo caso ci viene in aiuto il costruttore:

Scanner(Readable source)

e la capacità di Scanner di avere come fonte un Readable

Continua >

La classe LineNumberReader di Java

La classe LineNumberReader rappresenta un buffer di caratteri con la peculiarità di tenere traccia del numero di riga. Una riga viene considerata terminata se viene incontrato un line feed (‘\n’), un carriage return (‘\r’) o un carriage return seguito immediatamente da un line feed.

Continua >

Mootools e la classe Events

La classe Events di Mootools consente di aggiungere ad una classe semplici quanto utili capacità di gestione degli eventi. Una classe che implementa Events può infatti aggiungere, rimuovere e scatenare degli eventi (fire).

Continua >

Java: Serializzare un oggetto in XML

L’API di Java (dalla versione 1.4) mette a disposizione la classe XMLEncoder per serializzare un oggetto (un JavaBean) e ottenerne una rappresentazione testuale , sotto forma di documento XML.
Dualmente, è possibile deserializzare un oggetto utilizzando la classe XMLDecoder.

Continua >

JQuery e la funzione parseXML

JQuery consente il parsing di una stringa XML, utilizzando le funzioni native del browser, in modo da trasformarla in un oggetto Document e renderla manipolabile.
Tale oggetto può essere inoltre wrappato all’interno di un oggetto JQuery in modo tale da poter utilizzare i metodi della libreria per trattarlo.
Il metodo in questione è jQuery.parseXML(data), e il parametro data è la stringa XML well-formed.

Continua >

Analizzatore lessicale per espressioni regolari

Un analizzatore lessicale è un fase fondamentale della compilazione/interpretazione. Il suo scopo è quello di accettare in ingresso uno stream di caratteri e produrre uno stream di token, dove ogni token è rappresentato dal testo e dal tipo.

Continua >

Java: Serializzazione e interfaccia Externalizable

In Java è possibile trasformare un oggetto in un serie di byte (serializzazione) marcando la classe da serializzare come Serializable. java.io.Serializable è un inferfaccia “segnaposto” che non contiene metodi. Le classi che implementano quest’interfaccia indicano la possibilità di essere serializzate/deserializzate.

Continua >