Categoria ‘Sviluppo’
Con l’ultimo rilascio di Prototype, Andrew e Christophe hanno velocizzato e migliorato la funzione ‘doppio dollaro’ ($$ utility), la quale permette di selezionare un elemento specificando il selettore (praticamente tutti i selettori supportati dalle specifiche CSS3).
L’utilità di questa funzione va ben oltre la popolare $, che può essere utile ma, in fin dei conti, non svolge nessuna operazione degna di nota. L’utility ‘doppio dollaro’ ($$) invece permette davvero di selezionare qualsiasi tipo di elemento, fornendo ottimi strumenti per filtrare gli elementi nel DOM.
Vediamo alcuni esempi ripresi dal sito ufficiale:
1 2 3 4 5
| $$('div'); // -> Tutti i DIV del documento. Stessa cosa di document.getElementsByTagName('div')!
$$('#contents'); // -> Uguale a $('contents'), ma ritorna sempre un array.
$$('li.faux'); // -> Tutti fli elementi LI con class 'faux'
$$('#contents a[rel]'); // -> Tutti i TAG A (links) al di sotto di un elemento con ID "contents" e con un attributo rel
$$('a[href="#"]'); // -> Tutti i TAG A (links) con un'attributo href con valore "#" (eyeew!) |
Il punto di forza, tuttavia, risiede nella possibilità di escludere alcuni elementi in favore di altri, ad esempio:
1
| $$('a:not([rel~=nofollow])'); // -> Tutti i TAG A (links), esclusi quelli che contengono un attributo rel impostato a "nofollow" |
Ancora più interessante è:
1
| $$('a[href^=#]:not([href=#])') |
Questo, in pratica, trova tutti i TAG A con l’attributo href che inizia con ‘#’ ma non prende in considerazione quelli che sono uguali a ‘#’ solamente. In altre parole vengono ignorati i links che non puntato ad un valido ID!
Questa eccezionale caratteristica del ($$) ha ispirato Tobie Langel per creazione di un semplicissimo script (disarmante) in grado di aggiungere un simpatico effetto di scroll quando all’interno di una stessa pagina HTML ci si sposta per Anchors, con la tecnica – appunto – href=”#”.
Per un Demo clicca qui.
Continua...
Papervision3D è un motore 3D estremamente performante per Adobe Flash 8 e 9. Le sue caratteristiche sono davvero impressionanti. Grazie all’estrema velocità di esecuzione di Flash sono stati possibili effetti di texture mapping davvero notevoli. Dal Blog ufficiale è possibile vedere le demo davvero eccezionali. Inoltre è disponibile un Videogame da provare.
Continua...
As3 Crypto Framework 1.1 è una libreria scritta in ActionScript 3 che permette di applicare i più comuni algoritmi di crittaggio, come:
- Public Key Encryption: RSA (partial. encryption only.)
- Secret Key Encryption: AES, DES, 3DES, BlowFish, XTEA, RC4
- Confidentiality Modes: ECB, CBC, CFB, CFB8, OFB, CTR
- Hashing Algorithms: MD5, SHA-1, SHA-224, SHA-256
- Paddings available: PKCS#5, PKCS#1
- Other Useful Stuff: HMAC, Random
La libreria mette a disposizione tutta una serie di classi per poter applicare gli algoritmi di crittaggio. Viene data in licenza BSD, visto che parte del sorgente proviene da codici Java, C e Javascript. Sul sito si possono trovare ulteriori informazioni, i sorgenti e i binari.
Continua...
Una questione trascurata nell’ambito del Web2.0 è la protezione del codice sorgente. In un ottica Open Source, dove il Web2.0 trova nella beta la sua massima espressione, condividere e far partecipare la comunità lascia sicuramente in secondo piano questioni legate alla protezione del codice sorgente. Ricordiamo, infatti, che gli script Javascript vengono scaricati all’interno del browser dal Web Server, come file testuali, quindi totalmente visibili all’utente finale.
Mentre il codice Server è protetto per definizione (è impossibile accedere al codice di una pagina PHP tramite il protocollo HTTP del browser, salvo i rari casi di malfuzionamento del Web Server), il codice client potrebbe essere soggetto ad un Reverse Engineering.
Esiste tuttavia una semplice protezione ideata, ai suoi esordi, per dimuire la dimensioni degli script Javascript; oggi diventati veri e propri framework in alcuni casi.
Esistono infatti applicativi e siti Web che permettono di comprimere (crunch) il codice Javascript, ma non solo. Questa caratteristica, in modalità diversa, può essere applicata anche al codice HTML e ai fogli di stile CSS. Il codice Javascript, in particolare, oltre ad essere compresso può essere nascosto, ottenendo così una protezione del codice (a vista) tale da rendere più articolata la procedura di Reverse Engineering.
Le differenze tra HTML, CSS e Javascript sono importanti e sostanziali. Mentre la compressione di pagine HTML e fogli di stile può solo agire sull’eliminazione di caratteri inutili o superflui, come ‘a capo’, ‘spazi doppi’, ecc…, Javascript è un linguaggio di programmazione che può quindi eseguire uno speciale codice per decomprimere se stesso.
JavascriptCompressor.com è un servizio gratuito, utilizzabile online, che permette di comprime un codice sorgente Javascript. Le opzioni lo rendono estremamente versatile, garantendo al contempo l’oscuramento del codice.
Esempio, codice di partenza:
1 2 3
| function MyFunction() {
alert("Hello World");
} |
Codice con compressione semplice:
1
| function MyFunction(){alert("Hello World")} |
Encoding normale:
1
| eval(function(p,a,c,k,e,d){while(c--)if(k[c])p=p.replace(new RegExp('\\b'+c+'\\b','g'),k[c]);return p}('4 3(){2("1 0")}',5,5,'World|Hello|alert|MyFunction|function'.split('|'))) |
Ovviamente questo è un esempio, con codici piccoli comprimere non ha davvero molto senso, si rischi di peggiorare le cose e basta (a meno che non siate interessati esclusivamente all’oscuramento del codice a vista).
MemTronic Cruncher Compressor è anch’esso un servizio online (come il precedente funzionano anche in modalità offline) parzialmente gratuito, nel senso che alcune funzioni sono disponibili solo nella versione a pagamento (come la funzione Obfuscade). Rispetto al precedende servizio dovrebbe offrire maggiori prestazioni e sicurezza nel crittaggio del codice. Io li uso indistintamente, a seconda dei casi.
Peterbe.com non permette di comprimere Javascript (salvo che elimando spazi e ‘a capo’), ma propone un compressor per HTML, CSS e XHTML. Io, ad esempio, lo uso per comprimere i fogli di stili.
A meno di usare algoritmi particolari di crunching, che tuttavia appesantirebbero l’elaborazione dei dati, è sempre possibile eseguire un Reverse Engineering del codice, anche quello compresso. O presto o tardi, infatti, il codice originale deve essere inviato all’interprete del browser, il quale lo riconosce (per ora) solo in chiaro. In un futuro, con nuove versioni dei browser, questo impedimento potrebbe essere superato. Sarebbe infatti vantaggioso se venisse implementata, all’interno dei browser, una qualche tecnologia in grado di accettare codice Javascript pre-compilato, in binario per intenderci (caso mai crittato). In questo modo si abbatterebbero i tempi di download degli script, consentendo una naturale protezione dal Reverse Engineering e, non ultimo, maggior performance a livello di esecuzione degli script.
Continua...
Visto che siamo in tema di nostalgia, ecco un simpatico emulatore dello storico microprocessore del 6502; montato negli anni ’80 in console e computer come l’Apple, Nintendo NS e il Commodore 64 (che poi passo al 6510, …). Questo simpatico gioiellino è scritto interamente in Javascript, funzionante in pratica su tutti i browser (da Safari a Opera), con il solo difetto di essere leggermente lento. Tuttavia vale la pena provarlo. Sul sito (http://www.6502asm.com/) trovate alcuni simpatici esempi, lenti ma curiosi.
Continua...
Xopus è un editor XML (HTML) in WYSIWYG mode funzionante all’interno del browser. L’avevo già notato qualche tempo fa, grazie ad un articolo uscito su Ajaxian. Ne parlo ora in quanto rimane un’interessante proposta nel panorama web2.0/editor. È un’esperienza interessante! Xopus è sviluppato davvero bene (con supporto italiano), con un’ottima implementazione del menu contestuale, anche se ancora non pienamente cross-browser; alla attuale release 3.1 è supportato solo Microsoft Internet Explorer (versione 6 e 7) tuttavia gli sviluppatori hanno promesso quanto prima una versione compatibile almeno con Firefox (il 1 febbraio è stata rilasciata in alpha la versione 3.1.1 compatibile in Firefox 2.0+).
Come già discusso altrove, la questione della compatibilità (il cross browser) attraverso i browser, rallenta e penalizza lo sviluppo di strumenti che, anche non ricorrendo a tecnologie particolari come Applet Java o Adobe Flash, potrebbero portare un notevole contributo alla Comunità! Conttibuto impedito – alla fine – dalle inutili lotte interne degli attuali produttori di browser: IE, Firefox, Opera, Mozilla, Safari, … !
Visionando i demo si intravede anche qualcosa in più del semplice editor HTML, per dirla in parola povere. Xopus propone infatti sia la struttura classica dell’editor, sia funzioni avanzate sullo stile di Microsoft Word. È possibile, infatti, inserire all’interno della pagina veri e propri oggetti intelligenti che rispondono a determinate caratteristiche, rendendo Xopus un caso particolare.
Come indicato sul sito:
Xopus is a good solution for any business that has a back-end content management system and a front-end publishing-system and therefore two systems which use the same information. To structure that information, to make both ends meet, is therefore a must.
Poete guardate il video dimostrativo che introduce le avanzate caratteristiche di editing. Inoltre potete provare direttamente una demo.
Continua...
È disponibile online la versione Alpha 2 di Firefox 3.0, nome in codice Gran Paradiso. Tra le novità annunciate (la versione definitiva è attesa per fine 2007) troviamo la possibilità di utilizzare il browser in modalità off-line. Tutto questo ricorda Adobe Apollo che, nonostante non si presenti come browser, ne evoca i tratti essenziali.
Continua...
A Sunnyvale, California, Yahoo riunisce al Silicon Valley WebBuilder Mike Shaver di Mozilla, Chris Wilson del team Microsoft di IE e Hoon Lie di Opera, per confrontarsi sull’attuale state dell’eterna guerra tra i browser.
Da sottolineare sono le parole di Mike Shaver di Mozilla:
Don’t look to the W3C for the future
E le critiche alla mancata presenza di Apple:
They refused to send someone saying that “we are busy writing software”.
Che, tra l’altro, dista 10 miglia da dove si è tenuto l’incontro!
Continua...
Ho recuperato il mio blocchetto del Commodore 64 per verificare il porting dell’emultatore FC64 proposto quache Post fa! Purtroppo alcune funzionalità della tastiera non sono proprio riuscito a farle funzionare, quindi non ho potuto provare e inserire alcuni listati interessanti (vecchi ricordi nostalgici). Se ricordate, il Commodore 64 aveva combinazioni speciali usate durante la scrittura del codice BASIC, come il simbolo della R in negativo (reverse) o il cuoricino, sempre in negativo, per pulire lo schermo.
Continua...
Abbiamo parlato spesso dell’uso delle Web Application (del Web2.0) e di come il mercato del software si stia spostando online per applicazioni normalmente installate sulla nostra macchina. Ultimo importante segnale quello di Adobe (vedi Net Software) che vuole rilasciare – o sta iniziando a rilasciare – una serie di software in modalità online.
Oggi vi propongo uno strumento davvero eccezionale, Weebly, che si propone di realizzare un sito direttamente online, con tanto di dominio (tuoweb.weebly.com) e strumenti per l’editing davvero interessanti. Vedi video demo qui sotto.
L’idea, ovviamente, non è nuova, ma l’approccio di Weebly mostra in modo evidente perchè a breve avere Adobe Photoshop online sarà davvero un passo avanti. Oltre alla semplicità d’uso questo servizio offre strumenti di editing interessanti, come lettori RSS, inserimento di Mappe Google, inserimento di Video (da varie fonti) e altro. L’uso di Ajax e DHTML (Dynamic HTML) è davvero per sfruttato, il che rende il lavoro di editing davvero semplice e alla portata di tutti.
Il punto interessante, a mio avviso, è che quando si inserisce un’immagine è possibile attivare un piccolo editor per effetuare operazioni varie come Crop - ritaglio - e Resize – ridimensionamento.
We just rolled out a couple of new features: You can now Edit, Crop, Resize, Enhance and Adjust your pictures in the new integrated Snipshot image editor, we’ll present a warning (but allow you to continue) if you are using an unsupported browser, we released some small updates to the themes, and a couple other small changes & fixes.
Il nodo fondamentale risiede qui. A breve strumenti come Weebly potranno avvalersi di editor di immagini come Adobe Photoshop, il che renderà l’attività di Web Design Online al pari dell’editing tradizionale.
Ovviamente questa è sola una parte di quello che potrebbe accadere; editor Video, Audio e Testo avanzati sono i prossimi ad entrare prepotentemente online!
Continua...
Ultimi Commenti
Giovambattista Fazioli: @Nik: Sono contento! In bocca al lupo dunque!!
Nik: Lunedì ho l’esame di informatica su java, grazie mi sei stato utilissimo, il libro che ho era poco chiaro...
Marco: Ti ringrazio moltissimo, mi hai illuminato
ho risolto impostando [cc_objc] //OptionViewController.m -...
Giovambattista Fazioli: @Marco: Ti consiglio un approccio credo più corretto. Se hai eseguito il subclass del tab...
luigi: molto chiaro e semplice devo ammettere che anche scrivendo da un pà difficilmente uso delegati creati da...