On Nov 25, 2007 6:19 PM, enrico franchi <[EMAIL PROTECTED]> wrote: > Tuttavia l'ingegnere del software che è in me vede la soluzione in cui > usi i setEncoder e compagnia come più pragmatica e comoda da > programmare. Questo ammesso (e non concesso) che tu voglia avere > encoder e decoder 'pluggabili'. Per esempio per fare vedere che se > spari dentro il canale rumoroso una cosa compressa con huffman puro > (per dire) quello che esce è spazzatura (mi aspetto), se invece > reintroduci della ridondanza, ricostruisci il messaggio.
L'idea infatti è questa. Al momento io l'ho implementata utilizzando dei file YAML. Ho diversi file con diversi tipi di codifica con una struttura tipo: a: 000 b: 001 etc. In uno ho una codifica fissa a 8 bit, in un altro una codifica alla Huffman. Poi messo anche l'algoritmo di Huffman per codificare il messaggio con una codifica tutta sua, calcolata al momento etc. Quindi l'idea è di fare la scelta da un menu a tendina e poi il metodo "Codifica" di una qualche classe, utilizzando la codifica apposita sostituisce alle lettere i numeri. La stessa cosa dovrebbe avvenire per l'aggiunta della ridondanza. Potendo quindi scegliere fra la semplice aggiunta di un bit di parità o Hamming. Forse è questo che non mi fa apparire chiaro come definire gli oggetti. Cioè, non sono pensati per essere creati all'inizio con dei parametri prestabiliti, ma in base a quello che scelgo dai menu, fanno certe cose. > Attenzione, l'encoder potrebbe anche essere una funzione. Molto più pratico. > A questo punto se è un'istanza di una classe custom usi __call__ e hai > un oggetto function-like. Non so esattamente a cosa serva __call__ > Non mi piace vederla così. Per me un canale è un oggetto dove la roba > *passa*. Usare un concetto di 'setMessage' mi piace davvero poco. Un > canale non è una scatola: è un tubo. Io userei proprio read e write. > In primo luogo lo rendono un oggetto file like (il che non guasta), in > secondo luogo rendono bene l'idea. In che senso file like? In questo modo, va beh, quando premo il bottone "Invia" per inviare il messaggio, in realtà sarà il "canale" che se lo va a leggere. > Dentro il NoiseChannel avrai una lista che tiene i messaggi (gestita > come una coda). E poi resta da decidere se prendi il messaggio pulito > e lo sporchi quando lo tiri fuori dalla coda perchè te lo hanno > chiesto oppure se sporchi appena ti entra un messaggio, lo salvi in > coda sporco e lo tiri fuori (ovviamente così come è). Non mi serve una lista perché ho un solo messaggio per volta. E pensavo di passarlo direttamente al metodo che aggiunge rumore e che lo restituisce sporco. Carlo _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python