Quel geniaccio di Paul Tyma, creatore di Mailinator e Talkinator, è famoso tra i programmatori per le sue tecniche di ottimizzazione. Questa volta è riuscito a mettere Talkinator in un mini-computer da 5 Watt:
Paul ha usato un plug computer GlobalScale grande come due pacchetti di sigarette, attaccato alla presa vicino al comodino (fantastico :-). Sembra il Vape per le zanzare, ma ha 512 Mb di RAM, CPU da 1.2 Ghz e Ubuntu 9.04. Qui i dettagli e gli immancabili benchmark.
LATO INFORMATICO Committenti impazienti, requisiti confusi e in eterno cambiamento, riunioni perdi-tempo, consulenti incompetenti... la Ballata del Programmatore narra da tempo la drammatica situazione :-). Nel caso non bastasse, ecco un toccante video che documenta la stressante vita degli sviluppatori...
LATO WEB MARKETING Il video fa parte della (riuscita) strategia di viral marketing "Hug a Developer" per promuovere l'applicazione di project management DevShop.
LATO UMANO :-) Favolosi i cartelli "Passo metà del tempo a fare riunioni su come aumentare la produttività. (invece di lavorare...)" e "Ogni giorno il mio capo cambia idea su quello che dobbiamo fare". In realtà non importa essere sviluppatori, se siete in un qualsiasi progetto o team (purtroppo) vi riconoscerete...
Chi fa un sito Web dovrebbe testarlo su diversi browser, variando risoluzione dello schermo, colori, sistema operativo, JavaScript e così via. E pochi hanno tempo/voglia/mezzi per farlo.
Per fortuna ci sono dei siti dedicati: il mitico Browsershots genera gli screenshot di un sito su tutte le combinazioni di browser/sistema operativo/risoluzione/JavaScript/Java/Flash:
Unico difetto: non permette di variare la dimensione dei caratteri. Sembra una sciocchezza, ma - almeno in Windows - i font di sistema a 120dpi sballano molti layout. Non è come aumentare la grandezza dei font in Firefox o IE: i font del sistema operativo impattano anche su finestre, margini, ecc. Con gli schermi 16:9 e le alte risoluzioni, ci sono sempre più utenti che li ingrandiscono per riuscire a leggere qualcosa :-). Io sono tra questi e vedo molti siti che non sono compatibli. Piccolo esempio: guardate cosa succede su IE6+ ai famosi box stondati di RoundedCrnr (e a tutti i siti che li usano):
Dato che sono spesso fuori sede, ho progettato e implementato la piattaforma di QualeTeatro in modo che fosse facilmente amministrabile ovunque mi trovassi. Da interfaccia Web e soprattutto da... telefonino, in modo da sfruttare i tempi morti, magari in treno o in fila di attesa. Adesso poi che ho l'S730 (la qwerty a scomparsa è eccezionale!) ho veramente tutto a portata di mano!
Via cellulare posso approvare/editare contenuti in real-time, controllare lo stato del server, tarare il caching, forzare l'invio di alert e l'aggiornamento delle classifiche... Sotto sotto sono sempre un geek :-)
Molti siti permettono all'utente di personalizzare le pagine inserendo delle foto personali.
Tecnicamente, la gestione delle immagini e dell'upload richiede diverse operazioni:
- visualizzare la percentuale di avanzamento durante l'upload (utile per file grandi)
- controllare la dimensione ed eventualmente ridimensionare
- convertire il formato sul server, generare thumbnail, ecc.
Su Internet si trovano molti code snippet AJAX/ASP.NET, ma spesso bisogna perdere troppo tempo per trovare il codice, rivederlo (perchè non fate copia e incolla selvaggio, vero? ;-), integrarlo con altre routine scaricate, ecc.
Ebbene, in QualeTeatro mi sono affidato ad un completo e potente controllo ASP.NET: I-Load di RadActive. Con qualche click gestisce i problemi di cui sopra, e in più ha la funzione che ho sempre desiderato e non ho mai trovato: un editor client-side con anteprima e possibilità di ridimensionare, zoomare e tagliare l'immagine prima dell'upload. Fantastico!
Vi invito a dare un'occhiata alla demo online: tutti quelli a cui ho segnalato il controllo sono rimasti piacevolmente impressionati. Unico difetto è la mancanza del supporto per la localizzazione dell'interfaccia, ma dovrebbe arrivare tra qualche settimana.
Last but not least - dal sito (ben fatto) in inglese non è subito chiaro, ma RadActive è una software house italiana: un motivo in più per scegliere il controllo :-)
Superata la fase sperimentale, dal 1° ottobre QualeTeatro.com è ufficialmente in "beta pubblica"!
Non esisteva un sito con tutti gli spettacoli teatrali (anche quelli negli eventi locali o nelle piccole città), così - semplicemente - l'ho fatto :-)
L'idea mi è venuta il 22 gennaio 2007; il 18 giugno era online la versione "alfa", che abbiamo poi perfezionato durante l'estate. Google ci ha mandato un po' di traffico e qualcuno ha linkato il sito, ma fino ad oggi non ne avevo ancora parlato: adesso che le funzioni di base ci sono e stanno iniziando le stagioni teatrali 2007/08, possiamo veramente partire!
[dalla presentazione del sito]
"...puoi sapere tutto quello che sta succedendo (o succedera') intorno a te: trovi gli spettacoli, i giudizi e commenti degli utenti, le programmazioni dei teatri italiani. Anche su cellulare e Google Mappe. E non e' finita: quante volte ti sei perso uno spettacolo perche' nessuno ti aveva avvisato? Grazie al servizio Alert, puoi ricevere comodamente una email quando ci sono novita' sugli spettacoli della tua zona o del tuo attore preferito: Scopri le funzionalità di QualeTeatro"
QualeTeatro è una grande opportunità:
- per gli Utenti: una mappa unica, completa e semplice da usare. Chi ama il teatro ha gli spettacoli a portata di click.
- per Teatri, Scuole, Compagnie e organizzatori: con QualeTeatro uno spettacolo è visibile subito in tutta Italia. I visitatori non cercano foto, storie o recensioni (ci sono gli altri siti ben fatti), ma cercano gli spettacoli che possono vedere prossimamente: non è forse il momento migliore per farsi notare? Il pubblico occasionale non è mai stato così raggiungibile.
In puro stile Web 2.0, tutti possono inserire gratuitamente uno spettacolo: uno spettacolo in una piccola frazione può essere visibile come una prima alla Scala.
Troppe persone non vanno a teatro solo perchè non sono informate. Grazie alle nuove tecnologie ci auguriamo di contribuire alla promozione del Teatro italiano e di avvicinare sempre più persone - a partire dai giovani - a questa appassionante realta'.
Il sito è in beta e i dati sono parziali, quindi passaparola! Chi vuole contribuire alla nostra avventura potrebbe ad esempio:
-
segnalare QualeTeatro ad amici o conoscenti che vanno o fanno teatro
-
linkare il sito dai blog/forum
-
inserire qualche spettacolo della propria città
E ovviamente mandarci il suo feedback: critiche e suggerimenti sono essenziali per offrire un servizio sempre migliore.
Da oggi in poi parlerò spesso del "dietro le quinte" e dei problemi (tecnici e non) che si affrontano in questo genere di impresa: dedicato a chi vuole fare (o fa) Web 2.0.
Veltroni sostiene che la Sicurezza dei cittadini è una delle sifde globali del Centrosinistra. Chissà se da oggi si preoccuperà anche della Sicurezza dei... server del Centrosinistra (!)
Qualcuno lo aveva segnalato da tempo e la voce si è sparsa. Incredibile ma vero, i siti di DS & co. presentavano una grave falla di sicurezza che li rendeva facili prede per attacchi informatici. Battute a parte (ovviamente i partiti non si occupano di questi aspetti e si affidano a società informatiche esterne), vediamo cosa è successo.
Ieri sera, Emanuele mi passa un link che punta a LaNuovaStagione.it, il sito del comitato Walter Veltroni per il Partito Democratico.
Lo apro e, INCREDIBILE, vedo il Web.config del sito! Per i non addetti al settore, diciamo che è come se la FIA rendesse inavvertitamente visibili i segreti della Ferrari (è solo per capire, so che è assurdo... ;-)
Il Web.config di un sito ASP.NET contiene alcune impostazioni di configurazione, tra cui spesso la stringa di connessione al database e le password degli amministratori. Grazie a queste informazioni un malintenzionato può assumere il controllo completo del sito, modificare e cancellare informazioni e dati sensibili. In effetti non avevo mai visto un Web.config sprotetto su un sito professionale.
Ho rapidamente constatato che molti siti presentavano lo stesso problema:
- lanuovastagione.it
- dsonline.it
- festaunita.it
- saperidemocratici.it
- italiafrica.it
- veltroniperlitalia.it
- diregiovani.it
Dopo aver scartato l'idea di fare il defacing di dsonline.it con una foto adatta alla situazione (a vedere questo filmato, un hacker lo farebbe subito... :-), ho immediatamente informato i tecnici, che hanno poi risolto il problema.
Come è stato possibile aprire una così grave falla di sicurezza nei server?
Il Web.config non è accessibile direttamente (/web.config), come per default in tutti i siti ASP.NET. Però era possibile arrivarci da una pagina proxy (che chiameremo mostra.aspx), che da querystring accettava un virtual path e trasferiva il controllo alla pagina specificata. Quindi con /mostra.aspx?url=/web.config i controlli di sicurezza erano aggirati: ASP.NET concedeva l'accesso a mostra.aspx, pagina pubblica, ma caricava e restituiva il file protetto web.config.
Inutile dire che quando in un sito ci sono pagine proxy, è essenziale assicurarsi che accedano solo ad altre pagine autorizzate. Di solito sono ammesse solo pagine nella directory o in una sotto-directory fisica dove risiede la pagina proxy e non sono amessi i parent path, ovvero gli indirizzi che contengono ".." per risalire nella gerarchia delle directory. Ognuno faccia come vuole, ma in ogni caso i file .config non dovrebbero mai essere accessibili...
Rimando al post di Raffaele per le considerazioni tecniche sugli errori commessi sul sito. Consiglio anche il post di Alessio.
Chi volesse approfondire l'argomento sicurezza in ASP.NET può iniziare con Creazione di pagine e controlli ASP.NET protetti
Il successo di una piattaforma (sistema operativo o servizio remoto/Web) è decisamente legato alle possibilità di essere personalizzata e programmata con facilità. Si innesca un circolo virtuoso che favorisce la diffusione della stessa: l'interfaccia di programmazione è facilmente accessibile -> il programmatore la usa e crea programmi/estensioni utili/indispensabili -> l'utente si procura/usa la piattaforma solo per avere quel programma/estensione -> la piattaforma si diffonde e incentiva altri programmatori a svilupparci.
Il Visual Basic, che fino a 10 anni fa era il linguaggio più utilizzato sul pianeta, ha avuto un impatto decisivo sulla diffusione di Windows. Oggi Microsoft non fa nemmeno più pagare le versioni base (ma piuttosto complete) dei tool di sviluppo, per arginare la diffusione dei pacchetti open source/gratuiti (Java, PHP, MySQL...).
Negli ultimi anni le quote di mercato sui client hanno iniziato a ridursi per Windows, con l'avanzamento di Linux e Tiger/Leopard. Guardando la home di Microsoft.com si intuisce che l'intenzione è di intervenire (di nuovo) sulla leva dei programmatori: la pagina iniziale di solito è dedicata a tecnologie di massa (Vista, Office, XBox), oggi è dedicata ai tecnici, con una pubblicità (immagine in alto) veramente d'effetto.
E' possibile prevedere come andrà a finire un'asta di eBay? Sembra impossibile, ma la risposta è sì.
Ecco un articolo che spiega come fare. Le tecniche "magiche" di data mining che stanno dietro sono le stesse usate da Amazon per suggerirci i libri preferiti oppure da Visa per isolare e bloccare i movimenti truffaldini sulle carte di credito.
Chi vende su eBay troverà anche qualche consiglio su come modificare/ottimizzare le aste per guadagnare di più: se si conosce il comportamento dei partecipanti, lo si può anche sfruttare ;-)
Dato che Google non supporta ASP.NET per AdSense for Mobile, ho deciso di rimediare :-). ASP.NET offre un buon framework per le applicazioni mobile, ed è un peccato non poter utilizzare il nuovo strumento di AdSense.
Quindi ho implementato una classe C# che permette di utilizzare AdSense per Cellulari da ASP.NET (C# e Visual Basic .NET). Chi fosse interessato può scaricare liberamente la piccola libreria: l'articolo a corredo è in inglese, per renderlo disponibile anche ai programmatori stranieri.