Commenti & Opinioni


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


Non cercare di fare troppo il furbo...

Quando si dice "chi fa il furbo le becca"... O almeno, mia madre diceva cosi'. Ed io non le ho mai dato retta. Ma andiamo con ordine.

Come detto qualche giorno fa'. Mi sto' dilettando (si fa per dire) in un paio di bugfixes e miglioramento nel CMS. Ed uno dei cambiamenti che erano piu' richiesti e' quello della 'selezione della lingua'. E qui ci va una piccola parentesi.

A me mi (rafforzativo) girano le palle quando un qualche sito interdet cerca di essere TROPPO furbo e cerca di 'forzarmi' in una certa lingua che non e' quella che voglio io. Per esempio se io vado sul sito di un qualche produttore di 'roba' e quello comincia con "Ohhhh vedo che tu arrivi dall'olanda, allora di metto la lingua in olandese e ti rimando al sito del nostro distributore locale!".

NOCAZZO! Io non voglio andare dal sito del rivenditore locale e se sto cercando della documentazione o roba cosi' preferisco averla in inglese!

Se poi e' un sito di news e cose simili NON VOGLIO le news "locali" che quelle le ho gia' da me.

E qualche volta quello che succede e' che metto il sito nella lista nera perche' INSISTE a fare cose che io non voglio.

Quindi, quando cominciai a sviluppare il CMS pensai: che cosa faccio io di solito? Mi imposto la "lingua" del browser con le lingue che voglio vedere, in primis Inglese, in secundis Italiano, poi Olandese, klingoniano o salcazzo. Ergo: nel CMS misi la comodissima (secondo me) funzione per cui il CMS 'vede' quali lingue il tuo browser vuole e, se possibile, ti molla quella 'giusta'.

Che a me sembra logicissimo. Ma probabilmente anche quelli che sviluppano quei siti di cui dico sopra pensano la stessa cosa.

Ondepercuicio', quando qualcuno mi fece notare che questa cosa gli sta sulle balle assai tanto, io ci rimasi un po' male. A me sembrava un'idea tanto logica...

Ma vabbe', si vive per imparare (o qualcosa del genere).

Eccomi quindi qui a ravanare per aggiungere una funzione di 'impostazione' della lingua. Il che significa che: devo 'forzare' dei cookie. Cosa che a me non garba molto ma che ci vuoi fare? A meno di non cambiare TUTTA LA STRUTTURA DEL SITO per passare variabili a destra e sinistra...

E quindi per prima cosa vi beccate il disclaimer "questo sito usa cookie"... Si'. UN cookie. Uno solo.

E per prima cosa, ho cominciato ad installarmi il tutto in locale per sviluppare e fare dei test (anche per evitare la sindrome del "funziona sul mio laptop"...).

Ed ho scoperto che 'Swish', il motore di ricerca che avevo deciso di usare tempo addietro, non sembra essere piu' mantenuto da illo tempore. Al punto che non riesco a farlo funzionare in nessun modo. Ok, disattivo il motore di ricerca in locale, tanto non mi serve e non dovrebbe fare nessuna differenza sulla cosa. Vorra' dire che lo ri-attivo quando sposto il codice in produzione.

La modifica e' risultata meno incasinata del previsto, cosi' ho cominciato a fare qualche test, ed una delle prime cose che ho fatto e' stata aggiungere un annuncio nella home page. E quando l'ho fatto ed ho ricaricato la pagina, mi sono ritrovato con la pagina completamente incasinata! Echecazz???

Dato che i cambiamenti sono stati al 99% nel codice relativo alla visualizzazione delle pagine, e non nella modifica/creazione, ho pensato che fosse un problema nel modo come la pagina viene "costruita". Ma non ho cambiato niente nella cosa, ho cominciato a fare debugging e dopo un po' ho pensato "mmmm... forse e' qualche cosa nella configurazione del server che sto usando". Pensavo alla dimensione massima di Upload. Ma no, perche' la sovrascrivo nel CMS. Quindi?

Ho pensato a casini vari nella codifica del file (ISO-UTF-ANSI-ASCII etc.). Ho pensato a strani caratteri. Ho pensato un po' a tutto.

Dopo un po' di ravanamenti ho visto che facendo un restore del database tutto torna a posto. Quindi e' proprio quando la inserisco nel database che da' problemi. Il file di suo non ha niente che non va.

A questo punto ho provato a fare un diff tra i files modificati e quelli originali ed ho scoperto UNA linea particolare:

# remove junk
-$content=~s/
-//g;

?? che cappero e'? Ed io sono quasi convinto al 100% che non ho modificato niente di simile. Dopo un controllo sui sorgenti originali, ho scoperto che tale linea in origine era la seguente:

# remove junk
$content=~s/^M//g;

Che accidenti e'? Allora... ^M (CTRL-V-M) e' in realta' un "carattere speciale" che in VI (e solo in VI) rappresenta il ritorno a capo. E questa semplice linetta, serve a rimuovere i ritorni a capo "DOS-Style" dal file che viene uploadato nel CMS. E perche' lo rimuovo? Perche' pensavo di essere furbo nel farlo.

Solo che... per motivi che non sto qui a discutere, sto usando in questo periodo Code, l'editor per codice che Microsoft ha graziosamente rilasciato per Windows. E l'editor funziona benone... Ma non capisce '^M'. E non potrebbe capirlo dato che e' un carattere "speciale". Quindi l'editor fa' quello che puo' e traduce il carattere esattamente come e'... un ritorno a capo. Il che trasforma quella linea in (sostanzialmente) "rimuovi tutta la riga dopo il primo ritorno a capo"...

Ecco... Quando si cerca di "essere furbi"...

Comunque sia, ho corretto la cosa (per i curiosi, il modo "corretto" di fare una cosa del genere e' "s/\r\n/\n/g") ed adesso in alto, dovreste vedere un bel link che vi consente di scegliervi la lingua da usare nel sito.

Adesso devo vedere la seconda parte delle "migliorie": come trasformare le cose in modo che i vari utenti dotati di "screen-reader" siano piu' supportati. Questo mi sa che sara' molto piu' complicato. Anche perche', da come ho capito, se volessi farlo per davvero dovrei anche riscrivere buona parte del contenuto. E non ne ho nessuna voglia.

Vabbe', ritorno a lavorare. E buon anno.
 

Davide Bianchi
05/01/2021 12:22

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

6 messaggi this document does not accept new posts

Daniele Levi

Di Daniele Levi postato il 05/01/2021 13:39

Eureka, funziona! Ora però mi devo scaRRicare il nuovo source e riadattarlo per le mia "intranet".

Va bè, vorrà direi che so cosa farò domani, con buona pace di mia moglie).

Ciaoooooo

-- Daniele Levi

Messer Franz

Di Messer Franz postato il 05/01/2021 13:51

Ricorda che se il debugging è la procedura per eliminare i bug, il programmare è quella per inserirli... e se proprio tocchi qualcosa che ti incasina tutto e non capisci cosa, non preoccuparti, aggiungi altri errori a caso e poi proponilo al brancodipaguri, dicendo che è ok ma ha un paio di bug di poco conto da sistemare*, e vedi che te lo comprano subito. poi si vergogneranno di non saperlo mettere a posto e la cosa finirà nel dimenticatoio.

 

*che a me ha sempre suonato come "vendo questa ferrari testarossa a mille euro in contanti anticipati non restituibili perchè devo trasferirmi e là dove vado a stare non posso usarla, non è perchè ti sto truffando..."

-- Messer Franz

Messer Franz

Di Messer Franz postato il 05/01/2021 13:53

ps: dura 29 secondi. Vale la pena.

https://www.youtube.com/watch?v=HluANRwPyNo

 

(belli anche "if programming was an anime")

-- Messer Franz

Jack

Di Jack postato il 05/01/2021 18:39

Ciao Davide,

Posso consigliarti una ulteriore modificuccia piccola piccola?

I link En e It rimandano alla home page, ma potresti facilmente modificarli per cambiare lingua senza cambiare pagina, visto che gli script lato server già funzionano. Ad esempio:

h**ps://www.soft-land.org/cgi-bin/doc.pl?doc=commenti/284&mode=setpreferredlanguage&language=it

apre la pagina già forzata in italiano...

-- Jack

Davide Bianchi

@ Jack Di Davide Bianchi postato il 06/01/2021 06:29

Posso consigliarti una ulteriore modificuccia piccola piccola?

ecchemipareva! gli dai un'unghia e quelli subito chiedono la palla sinistra, un rene, il fegato e due fette di chiappa tagliate fine vicino all'osso...

-- Davide Bianchi

Emi-ska

Di Emi-ska postato il 07/01/2021 17:09

eh... quanti problemi mi ha causato il carattere ^M per rilasci su linux scritti con editor windows... non sai quante volte ho dovuto depurare i files da quel carattere speciale!! Avevo un piccolo scriptino fatto ad-hoc solo per quello.

Grande cone al solito e buon anno!!

 

Emi-ska

-- Emi-ska

6 messaggi this document does not accept new posts

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira