Codeigniter è un framework mvc scritto in php. Per certi versi è molto semplice da usare e molto veloce. L'ho utilizzato per un sito che prima avevo iniziato con cakephp ma poi a forza di scontrarmi con le rigidità di quest'ultimo ho deciso di riscrivere completamente basandomi su codeigniter.
Tra le varie funzioni che mi servivano c'e' quella di caricare dalla stessa form file di tipo immagine e file pdf. La classe File Uploading tra le varie opzioni di configurazione ha anche una proprietà "allowed_types", in prima scrittura credevo fosse sufficiente inserire la stringa: 'gif|jpg|png|zip|pdf|doc|docx|txt' per ottenere la possibilità di caricare file pdf in un campo e immagini nell'altro.
E invece no, Codeigniter continuava a caricare esclusivamente l'immagine, dopo vari tentativi per trovare il problema mi veniva in aito Google: mi trovavo di fronte ad un bug noto, la soluzione è scrivere i tipi di file non immagine per primi ovvero 'zip|pdf|doc|docx|txt|gif|jpg|png'.
"Nessun bambino si è mai intromesso nel partito repubblicano ed è sopravvissuto per raccontarlo" TB
martedì 22 dicembre 2009
martedì 15 dicembre 2009
Io odio il javascript
Cose da non fare mai: programmare la consegna di un lavoro di venerdì.
Da circa un mese lavoro sul sito catalogo fatto per un sistema legato alla raccolta punti.
Giovedì arriva la notizia che verrà presentato il successivo sabato mattina, rimangono quindi due giorni per portarlo ad uno stato presentabile, il lavoro è ad un buon punto quindi nessuna grande preoccupazione.
Il sito è spaccato in due parti, la sezione di presentazione e quella relativa alle regole e informazioni su un server, la parte relativa all'acquisto su un altro server. Due tecnologie completamente diverse.
Venerdì sera ultimi test tutto funziona. Nessuno pensa di controllare con Internet Explorer 8.
Sabato mattina ovviamente il sito viene fatto vedere e Internet Explorer 8 rende inutilizzabile la sezione del preventivo.
Ieri si comincia il debug.
Il link avviene tramite la chiamata di un javascript... sostituito il codice usando il selettore di jquery: non cambia nulla.
Ci sono due definizioni della stessa funzione, evidentemente una è stata dimenticata nelle varie release, eliminata: nessun cambiamento.
Provo con "strumenti di sviluppo" ottima funzione di IE8, nel debug IE8 si blocca spesso, ma eccolo il problema.
Una funzione si occupava di prendere dei valori copiarli in campi hidden e poi lanciava il submit del modulo, due campi hidden avevano i seguenti due id: idDS e idds. Firefox li trattava come due campi differenti mentre IE8 li considerava uguali andando a sovrascrivere i dati.
Io odio il javascript.
Da circa un mese lavoro sul sito catalogo fatto per un sistema legato alla raccolta punti.
Giovedì arriva la notizia che verrà presentato il successivo sabato mattina, rimangono quindi due giorni per portarlo ad uno stato presentabile, il lavoro è ad un buon punto quindi nessuna grande preoccupazione.
Il sito è spaccato in due parti, la sezione di presentazione e quella relativa alle regole e informazioni su un server, la parte relativa all'acquisto su un altro server. Due tecnologie completamente diverse.
Venerdì sera ultimi test tutto funziona. Nessuno pensa di controllare con Internet Explorer 8.
Sabato mattina ovviamente il sito viene fatto vedere e Internet Explorer 8 rende inutilizzabile la sezione del preventivo.
Ieri si comincia il debug.
Il link avviene tramite la chiamata di un javascript... sostituito il codice usando il selettore di jquery: non cambia nulla.
Ci sono due definizioni della stessa funzione, evidentemente una è stata dimenticata nelle varie release, eliminata: nessun cambiamento.
Provo con "strumenti di sviluppo" ottima funzione di IE8, nel debug IE8 si blocca spesso, ma eccolo il problema.
Una funzione si occupava di prendere dei valori copiarli in campi hidden e poi lanciava il submit del modulo, due campi hidden avevano i seguenti due id: idDS e idds. Firefox li trattava come due campi differenti mentre IE8 li considerava uguali andando a sovrascrivere i dati.
Io odio il javascript.
lunedì 26 ottobre 2009
Stranezze Asp.Net 3.5
Nella vecchia versione per avere disponibile una classe all'intero sito si poteva compilarla e copiarla dentro la cartella Bin, oppure creare un progetto nella stessa soluzione e poi collegare i due progetti mediante un riferimento e infine aggiungere il file con il sorgente della classe nella cartella App_Code.
La particolarità di questa cartella era di essere compilata runtime automaticamente mettendo a disposizione di tutte le pagine aspx le classi contenute.
Forte di questa esperienza ho creato una classe che facesse da pagina base per tutte le altre pagine del sito. Con visual studio 2008 la cosa non funziona così facilmente. E' necessario dire al compilatore che quello specifico file nella cartella App_Code deve essere compilato. La soluzione è semplice, tasto destro sul file sorgente, proprietà e infine scegliere nella build action l'opzione Compile.
La particolarità di questa cartella era di essere compilata runtime automaticamente mettendo a disposizione di tutte le pagine aspx le classi contenute.
Forte di questa esperienza ho creato una classe che facesse da pagina base per tutte le altre pagine del sito. Con visual studio 2008 la cosa non funziona così facilmente. E' necessario dire al compilatore che quello specifico file nella cartella App_Code deve essere compilato. La soluzione è semplice, tasto destro sul file sorgente, proprietà e infine scegliere nella build action l'opzione Compile.
A volte ritornano
Cambio di ufficio e cambio di tecnologia: dopo due mesi di lavoro su un progetto php + mysql + apache + linux si torna a lavorare con .Net.
Il nuovo progetto è un'applicazione legata al core business aziendale, l'ho pensata in ambiente web così che in futuro possa anche essere utilizzata in modo remoto. L'architettura è in questa prima fase basata su un data layer costruito con l'utilizzo di Linq to Sql, un business layer realizzato mediante una libreria di classi VB e infine un presentation layer con le pagine aspx, i controlli utente e una classe pagina base per gestire una serie di eventi comuni.
E' la prima release e non ho molto tempo voglio però in futuro disaccoppiare maggiormente le pagine aspx dal codice gestito dagli eventi.
L'applicazione è compilata sulla macchina .net 3.5 e utilizza una libreria javascript per la visualizzazione e la gestione degli eventi asincroni sul client. La libreria che ho scelto è ExtJs utilizzo anche un adapter lato server che si chiama ExtAspNet.
Il nuovo progetto è un'applicazione legata al core business aziendale, l'ho pensata in ambiente web così che in futuro possa anche essere utilizzata in modo remoto. L'architettura è in questa prima fase basata su un data layer costruito con l'utilizzo di Linq to Sql, un business layer realizzato mediante una libreria di classi VB e infine un presentation layer con le pagine aspx, i controlli utente e una classe pagina base per gestire una serie di eventi comuni.
E' la prima release e non ho molto tempo voglio però in futuro disaccoppiare maggiormente le pagine aspx dal codice gestito dagli eventi.
L'applicazione è compilata sulla macchina .net 3.5 e utilizza una libreria javascript per la visualizzazione e la gestione degli eventi asincroni sul client. La libreria che ho scelto è ExtJs utilizzo anche un adapter lato server che si chiama ExtAspNet.
lunedì 21 settembre 2009
La penso nello stesso modo
E questa volta appoggio la Santanche' e il suo programma politico: "Tutte le donne senza veli"
venerdì 18 settembre 2009
Quando si legge solo la quarta di copertina
Il ministro Zaina quello del dialetto veneto a scuola crede che "Memorie di Adriano" le abbia scritte veramente l'imperatore Adriano Leggi
Iscriviti a:
Post (Atom)