questa non so quanto possa interessare alla platea del sitoz, non essendo, diciamolo, prettamente calciofila, anzi!
il tutto risale a poco meno di un annetto fa. ancora in possesso di un normalissimo cellulare con cui il massimo che potevo realizzare lato web era la lettura di alcuni feed, ho deciso di costruirmi un servizio personale di update delle giornate di campionato di serie A.
pochi requisti ma essenziali:

  •  url breve: meglio se è da digitare da una tastiera telefonica, vi assicuro
  • versione feed: il mio cellulare poteva leggere solo questo formato
  • versione testo: in vista di un futuro upgrade ad uno smartphone
  • pochi kb: meglio quando si ha una tariffa a consumo

dopo un anno di test rivolti solo al sottoscritto, devo dire che sono contento di come ho speso un paio d'ore! ed ecco il risultato (con ahimè, il mio milan in grande difficoltà):

ecco la versione plaint text:

come riesco ad aggiornarli automaticamente? diciamo che mi appoggio ad un servizio intercettandone i dati e riproponendoli in forma compatta. di più non posso dire ;)
ecco gli indirizzi del servizio per chi fosse interessato:

volete consultare i risultati, ad esempio, della seconda giornata?

http://sitoz.org/football?day=2

è tutto, buon tutto il calcio-minuto-per-minuto ;)

ps: tanti cellulari (soprattutto vecchi modelli) con lettore feed integrato hanno una cache paurosa, sembra che non aggiornino mai il contenuto. il mio funzionava così purtroppo. cancellando e ricreando la sorgente feed nel menù permetteva di ottenere i risultati aggiornati.

 

oggi finalmente va online il mio ultimo lavoro, il restyling del sito della mia amica fotografa chiara, http://www.chiaramirelli.com. più che un semplice restyling è stata una riscrittura da zero di tutto il sito, basato questa volta su html e javascript (jquery framework) più che su flash.

il vecchio sito era diventato enorme e ingestibile, avevamo (entrambi, io e chiara) il bisogno di ripartire da zero quattro anni dopo. troppi nuovi lavori di chiara, troppo difficile gestire un monolite scritto in actionscript2 quando ancora sviluppavo (anche) con tecnologia flash. quale miglior banco di prova per il mio giovanissimo framework need coffee on mondays con cui ho anche creato il nuovo sitoz nel settembre 2009?

features

la grafica richiama la prima versione ma con un tocco in più di eleganza (introdotto da chiara, mica da me, cosa credevate?): un bottone giorno/notte che permette di osservare le splendide fotografie sia su sfondo nero sia su sfondo bianco.

aggiunta una sezione video: sì, chiara si è data anche ai video, guardateli perché ne vale veramente la pena. naturalmente, per non gravare sull'archittettura, abbiamo utilizzato servizi di streaming video esterni al sito (youtube e vimeo).
il sistema di caching mi è costato non poca fatica, ma ho dovuto scrivere da zero intere librerie per la gestione dinamica di immagini, sia legata ai problemi di loading multipli di immagini, sia alla realizzazione di thumbnails idonee alla navigazione "per icone".
migliore struttura degli url in modo da essere facilmente indicizzati dai motori di ricerca.
la base dati è interamente composta da oggetti php che descrivono i modelli necessari, nessun database, sia per essere più scattanti sia per evitare di realizzare interfacce di amministrazione che probabilmente avrebbero portato via più tempo della realizzazione del sito.

sia io sia chiara siamo in attesa dei commenti di tutti i visitatori per segnalare eventuali malfunzionamenti (aaaaaaaaaaaaaah!) sia per sapere cosa pensate del lavoro, sempre ottimo, di chiara.

 

da quando ho reso pubblica la nuova versione del sitoz ho notato alcuni problemi dovuti allo spam. persone registrate con nomi assurdi del tipo "sdlkjefhjhgj", email abbastanza farlocche, attacchi compiuti postando centinaia di commenti di spam nel giro di trenta/quaranta minuti.

ieri nel tardo pomeriggio sono stato testimone in diretta di un attacco di alcuni (secondo me è uno solo) spammers nei miei confronti. hanno iniziato ad arrivare un centinaio di commenti nei post meno recenti, ma non solo, con parole inesistenti. ipotesi mia: è un bimbominkia (o bitchecker) che si crede un gran figo, peccato per lui che non riesca a superare un semplice login. peccato per lui che tanta, ma veramente tanta gente sia più furba di lui. addirittura io.

scoperto l'attacco ho incluso nella mia applicazione la libreria scritta da un tale alex per akismet, un servizio dai creatori di wordpress che permette tramite una chiamata REST di valutare se il commentatore sia uno spammer o meno in base all'ip, al contenuto, all'email. in meno di dieci minuti tutti i contenuti postati illegalmente dall'attaccante sono finiti sì nel database, ma flaggati come spam. davide 1 - spammer 0.

non mi basta, non voglio che comunque il mio database si appesantisca o le operazioni di accesso degli altri utenti (legittimi, loro) rallentino perché un sedicenne deficiente possa provare i suoi giochini. in poco meno di un'oretta ho sviluppato una libreria apposita per il mio framework per creare un'immagine cosiddetta captcha, sì, quelle fastidiose con le righe e le lettere distorte con cui ti cavi gli occhi cercando di capire cosa possa rappresentare: "un 5?", "una ESSE?". naturalmente il codice da inserire è solo per gli ospiti che vogliano postare il commento, non per gli iscritti e loggati. questo controllo è stato aggiunto anche in fase di registrazione. davide 2 - spammer 0.


captcha image @ sitoz.org

se notate dei problemi (impossibilità di scrivere, attacchi ulteriori, etc...) fatemelo sapere quanto prima! certo che bisogna essere proprio dei bei falliti per definirsi spammer...

risorse utili:
http://akismet.com/
http://www.achingbrain.net/stuff/php/akismet
http://www.stopforumspam.com/ (spammers alla berlina, "forum banlist")

 

benvenuti nella nuova versione del sitoz.org! molte cose sono cambiate a parte la nuova grafica. partiamo dal principio: in quest'ultimo anno ho fatto passi da gigante in php5, scoprendo la potenza dei frameworks e di soluzioni database mai veramente approfondite in precedenza. potevo esimermi dal reinventare la ruota ancora una volta privando il mondo dell'ennesimo framework in php? ovviamente no, così è nato il progetto need coffee on mondays (e non solo i lunedì, ahimè)!

tutta la struttura del nuovo sitoz è basata su un framework model-view-controller (mvc per gli amici nerd) scritto da zero in php5 + database mysql5, anche se il layer di astrazione che ho introdotto dovrebbe permettere l'utilizzo di ogni tipo di database  supportato da php, ma non ne ho avuto ancora la riprova. finalmente un codice pulito, facile da mantenere, riutilizzabile. futuri impegni lavorativi mi hanno costretto ad un rilascio affrettato dopo solo pochi mesi di lavoro nei ritagli di tempo. dire che sia una versione beta è fare un complimento, io propenderei per una alpha se non addirittura unstable... a questo punto solo con l'uso riuscirò a capire eventuali problematiche e a risolverle nel tempo, di test ne ho fatti proprio pochi.

le sezioni non variano granché dalla versione precedente. esistono sempre il mio blog e il forum per le nostre serate e quant'altro. ho inserito una barra di ricerca che nella mia idea di usabilità (ci ho pensato a lungo, che credete!!) integra e completa lo scarno menù di navigazione, potendo così rinunciare all'onnipresente sidebar.
la nuova homepage è un aggregatore delle ultime attività del sitoz: blog, commenti, tags e forum (quest'ultimo solo da loggati).
la sezione people elenca tutti gli iscritti di sempre al sitoz, ma senza profili dettagliati, quelli non mi interessano, vi conosco abbastanza bene ormai. però potete inserire un vostro avatar se gradite :)
novità a cui tengo molto sono i feed RSS per (quasi) ogni sezione del sito, anche quelle sotto login (forum). d'ora in avanti sarà possibile tenervi aggiornati senza dover navigare fino a qui, magari anche col cellulare per sapere se la serata allo giunion è stata organizzata e chi ci sarà!

ho cercato di strizzare l'occhio sia all'aspetto grafico sia alla comodità d'uso, sperando di aver ben coniugato due aspetti che a volte (anche troppo spesso) sono in contrasto nello sviluppo di una piattaforma web. a parte l'impianto grafico di mia creatività devo ringraziare alcuni progetti open source che mi sono stati estremamente d'aiuto:

in rapida sequenza senza gerarchia altre migliorie/novità apportate per le quali non è necessario spendere troppe parole:

  • url compatti e brevi, senza titoli lunghi e difficili da ricordare, qui basta un id!
  • url parlanti (ad esempio quelli delle ricerche)
  • introduzione dei tags nei post (wow, già introdotti nel 2009? sigh...)
  • ricerche coerenti finalmente,
  • ho cercato di seguire due principi di sviluppo: less is more e keep it simple stupid (kiss)
  • elementi grafici ricorsivi e facilmente distinguibili
  • usabilità (eliminazione della sidebar a favore di una struttura verticale della pagina)
  • url redirect corretto dopo il login
  • estrema coerenza tra i link interni alla stessa pagina

ah, già! da adesso solo io posso scrivere nel blog, ho detto! >:) nella fase di import nella nuova struttura di database ho deciso di escludere i vecchi topic del forum (io naturalmente ho copie di backup di tutto), partiamo leggeri! ho ri-detto!

ps: ovviamente e credenziali di accesso restano le stesse di prima per i vari account.

pps: ho sistemato l'odioso baco dell'ora sbagliata!