Javascript: Ereditarietà basata su delega (Eredità prototipale)
Dopo la traduzione dell’illuminante divertissement sull’ereditarietà classica in Javascript. Douglas Crockford arriva a commentare il suo stesso articolo (a distanza di qualche anno) affermando che l’ereditarietà prototipale è di gran lunga più potente ed espressiva di quella basata su classi e che più si conosce Javascript e meno si utilizza ed apprezza quest’ultima. Ragione per cui ho deciso di tradurre anche il pezzo di Crockford che tratta l’ereditarietà prototipale. Ho invertito la posizione delle date rispetto alla versione originale mettendole all’inizio del parte di testo a loro associato, piuttosto che alla fine, perché la cosa mi lasciava un pò perplesso. Si tratta solamente di gusti personali, però.
Buona Lettura
Golf programming: Sono Pazzi Questi Romani
E’ passato un mese dall’ultimo contest di golf programming. E’ arrivato il momendo di ricominciare a consumare, il meno possibile, le nostre tastiere per risolvere quello del mese di novembre.
Le Regole
Si tratta delle solite regole, in ossequio al contesto le ho riportare con il copia e incolla
:
- Scrivere un programma, il più breve possibile, che risolva il problema enunciato prima e riportato meglio qui sotto;
- per ogni linguaggio utilizzato è considerato vincitore il programma scritto usando meno caratteri;
- l’efficienza dell’algoritmo non è un fattore fondamentale ma il programma deve terminare senza errori;
- si può optare, se più concisa, per una funzione, piuttosto che un programma intero;
- ovviamente non di vince niente se non la soddisfazione di aver accettato una sfida ed averla vinta.
L’algoritmo
Il programma da scrivere questa volta riguarda i numeri romani. Quelli che compaiono nelle prefazioni dei libri, per intenderci. O in qualche versione di latino o su centinaia di monumenti.
Questa volta bisogna scrivere un programma che conti, uno per riga, fino a 3999. Partiremo da 1 per arrivare fino a 3999 perché non è possibile, con i caratteri ascii, usare i caratteri romani per esprimere numeri più grandi di 4000. Non mi resta che lasciarvi al vostro compito con un link ad un file di riferimento con tutti la sequenza di numeri da replicare ed aspettare le vostre soluzioni.
La mia, al solito, tra circa una settimana tra i commenti.
100
Scrivo queste note da poco più di 500 giorni ed approfitto del centesimo post per fare qualche considerazione su questa esperienza. Non pensavo di riuscire a tenere una media di un post a settimana ma, a quanto pare, se la matematica non mi da ragione la statistica sembra farlo più volentieri.
Ereditarietà classica in Javascript
E’ arrivato il momento di tradurre inheritance di Douglas Crockford. Si tratta del testo che più mi ha affascinato tra quelli che sono presenti sul suo sito. Mostra con semplicità le potenzialità del paradigma prototipale che sta alla base di Javascript. Se polimorfismo non fosse un termine troppo carico di significati in questo ambito lo userei.
Un appunto alla nota conclusiva aggiunta al pezzo da Crockford stesso, la trovate in fondo alla traduzione nel riquadro dal bordo nero. Sono daccordo solo parzialmente con l’autore quando scrive che i suoi tentativi di introdurre i pattern propri dei paradigmi dell’ereditarietà classica possono essere stati un errore. A parte la dimostrazione che Javascript può supportarli, non dobbiamo dimenticare che la stragrande maggioranza parte dei programmatori che si accingono ad utilizzare Javascript non lo acquisiscono come primo linguaggio e quindi hanno un’eredità di conoscenze che è una bella zavorra da portarsi dietro. Avere qualcosa di familiare a cui aggrapparsi mentre si svecchiano le proprie tecniche e si comincia a pensare in a Javascript way non può essere che un aiuto.
Ed ora non mi resta che augurarvi buona lettura
Libri da scaricare: Manuale Sun Solaris per il sistemista junior
Non di solo Linux vive il sistemista, ed è giusto occuparsi anche di quelli che sono costretti a muovere i primi passi della loro vita da sistemisti cominciando da Solaris (non che si tratti di una costrizione particolarmente dura da sopportare
). Chi proviene dal mondo linux, ad esempio me, può trovarsi spaesato nel muovere i primi passi su una piattaforma che, specie con openSolaris, sebbene familiare come interfaccia, è costruita su un motore diverso da quello che siamo abituati a mettere a punto.
La mia frustrazione iniziale è stata mitigata proprio dal manuale che sto recensendo in questo pezzo. Qualche tempo fa feci richiesta di un opensolaris starter kit a Sun, all’epoca si trattava semplicemente di un cd live che poteva anche essere installato su una macchina fisica, e dopo qualche mese, avevo addirittura dimenticato di averlo richiesto, arrivò una bustina contenente il cd con il sistema operativo.
Leggi il seguito di questo post »
Golf Programming: Paroliamo
L’ultima prova della serie anagrammi si è rivelata particolarmente semplice. Complichiamola appena un pò modificando l’algoritmo in modo da costringerci a modificare l’approccio al problema.
Le Regole
Le regole del contest:
- Scrivere un programma, il più breve possibile, che risolva il problema enunciato prima e riportato meglio qui sotto;
- per ogni linguaggio utilizzato è considerato vincitore il programma scritto usando meno caratteri;
- l’efficienza dell’algoritmo non è un fattore fondamentale ma il programma deve terminare senza errori;
- si può optare, se più concisa, per una funzione, piuttosto che un programma intero;
- ovviamente non di vince niente se non la soddisfazione di aver accettato una sfida ed averla vinta.
L’algoritmo
Anche la funzione di questo mese, come quella del mese scorso, prende in input due stringhe ma restituisce/stampa vero se con le lettere che compongono il primo parametro è possibile comporre il secondo. A differenza del programma sugli anagrammi, non è necessario utilizzare tutte le lettere della prima parola per comporre la seconda.
Ad esempio, con la parola MANAGER è possibile (e quindi la funzione deve restituire vero) comporre, tra le altre, le parole RANA, RAME, GARA o GRANE.
L’ordine dei parametri è importante. Con la parola MANAGER non è possibile costruire GERMANIA, mentre è vero il contrario.
La parola OSTE, poi, non può essere usata per comporre TESTO, le lettere ci sono tutte ma manca una T. Di conseguenza la funzione dovrebbe restituire falso.
Al solito posterò la mia soluzione come commento alla fine della settimana entrante, per dare il tempo a chi vuole partecipare di scatenare la propria fantasia.
Antipattern: cicli mimetici
Rientro in carreggiata dopo circa un mese a causa di vicissitudini familiari che mi hanno distratto da questo blog, per segnalare un avvistamento particolare.
Stavo controllando del codice avuto in “eredità” quando me lo sono trovato davanti. Sulle prime non l’avevo riconosciuto ed ho dovuto rileggerlo più volte per convincermi che non stavo prendendo un abbaglio.
Sapevo della sua esistenza per averne sentito parlare diverse volte, anche se credevo che fossero solamente teorie e che mai ne avrei incontrato un esemplare allo stato brado.
Leggi il seguito di questo post »
Golf Programming: Anagrammi
Rientriamo dopo le ferie con un’altra sfida classica, giusto per toglierci di dosso eventuale ruggine. Al solito riporto le regole per chi cominciasse adesso a seguire questa pseudo rubrica.
Le Regole
Ormai le regole dovrebbero essere familiari, le riporto per scrupolo:
- Scrivere un programma, il più breve possibile, che risolva il problema enunciato prima e riportato meglio qui sotto;
- per ogni linguaggio utilizzato è considerato vincitore il programma scritto usando meno caratteri;
- l’efficienza dell’algoritmo non è un fattore fondamentale ma il programma deve terminare senza errori;
- si può optare, se più concisa, per una funzione, piuttosto che un programma intero;
- ovviamente non di vince niente se non la soddisfazione di aver accettato una sfida ed averla vinta.
L’algoritmo
La funzione di questo mese prende in input due stringhe e stampa vero se una delle due è anagramma dell’altra o falso in caso contrario (ovviamente sono consentite anche, per i linguaggi che lo permettono, 0 ed 1 o 0 e ~0).
Al solito posterò la mia soluzione come commento alla fine della settimana entrante, per dare il tempo a chi vuole partecipare di scatenare la propria fantasia.
Javascript: Il piccolo programmatore Javascript
Una traduzione “di servizio” che completa, nel senso che traduce uno dei link che si incontrano, il primo a voler essere pignoli, nella traduzione precedente.
Il tutto in attesa di arrivare alla traduzione di un pezzo sull’ereditarietà in javascript che è una piccola perla di rara concisione e chiarezza (ovviamente a mio parere).
Al solito i commenti sono aperti d in attesa di suggerimenti e correzioni.
Buona lettura
Libri da scaricare: Creative Commons – Manuale operativo
Diciamocelo: il diritto d’autore ha fatto il suo tempo ed ha bisogno di essere rimodernato. Questo è quanto devono essersi detti i promotori della Creative Common Corporation quando hanno cominciato a gettare le basi di un gruppo di licenze modulari che stanno prendendo sempre più piede.
Il libro che segnalo oggi è una guida, veloce e piacevole da leggere anche per i non addetti ai lavori, su come usare al meglio le licenze CC per adattarle ai propri bisogni.Una segnalazione che non è mai troppo tempestiva vista l’argomento che affronta.
Simone Aliprandi, l’autore, non è nuovo a libri di questo genere e l’esperienza che ha accumulato nel divulgare questo tipo di informazioni si sente.


