Archivio per la Categoria “Informatica”

Da qualche settimana ho cambiato lavoro: ho lasciato la società di consulenza e adesso lavoro per un gruppo piuttosto grande, anche qui come sviluppatore.
I cambiamenti non sono stati solo esteriori, ma anche di contenuto. Infatti sono passato dallo sviluppo Java/Oracle a quello C#/SqlServer. “Oddio!” direte voi… beh, all’inizio lo dicevo anch’io.
Sto valutando le analogie e le differenze tra questi due mondi, cercando di riutilizzare al massimo l’esperienza che ho in Java nel nuovo ambiente. Ora, da utente e da contributore dell’Open Source, passare a M$ mi fa abbastanza impressione, ma considero il mio un lavoro che usa l’astrazione, quindi mi devo slegare dal pensiero del “basso” livello (linguaggi, compilatori, sistema operativo), e devo pensare al codice e a quanto bene sono capace di scriverlo, a come possa funzionare il programma che faccio, senza altro. Sì, questo potrebbe sembrare un esercizio di retorica o di teologia informatica…
Ora comincio con le considerazioni che sto facendo da quel poco che ho imparato nell’ambiente M$, spiegando un po’ l’effetto che mi fa.
Prima di tutto devo ribadire che lavoro per una grande azienda, quasi tutti gli utenti hanno client Windows, ci sono decinaia di server attivi, dall’AS/400 al Linux, da Sap con NetWeaver all’ultimo WS2003 con Sharepoint. C’è chi lavora in Cobol (ancora!), chi è espertissimo di VBA, c’è gente che fa in Excel robe che credevo impossibili (sul grado di affidabilità dei risultati non metterei la mano sul fuoco), c’è tanto lavoro in Java e altrettanto in C#.
Ora, quello che M$ permette, in virtù della sua posizione quasi monopolistica, è un altro grado di integrazione: condivisione dei dati, remote desktop, deploy delle applicazioni. Il lato negativo è che, come dice nonmiricordochi, “fai un programma a prova di stupidi e solo gli stupidi lo useranno”. Non siamo a questo punto, però il fatto che la programmazione per Window$ sia piuttosto semplice, corrisponde al fatto che i lavori non sempre sono eseguiti con rigore.
Faccio due esempi.
Comincio con la gestione delle eccezioni in C#: esiste ma non è obbligatoria. Cioè tu puoi eseguire un metodo che potenzialmente può generare un’eccezione e non prendertene carico. In Java è obbligatorio gestire l’eccezione, e l’errore di non farlo viene segnalato a compile-time. In C# puoi scrivere tutto il codice che vuoi senza usare mai try{} – catch(){}. È una cazzata! Un oggetto genera un’eccezione, non gestita, e si schianta tutto il programma. Ora questo modo di fare avvicina i “programmatori”, perchè è “facile” programmare così, ma il codice e il programma che ne esce è debole.
Secondo esempio: ASP.Net è la controparte web delle applicazioni Web, ed usa lo stesso paradigma degli eventi. Ogni pagina web è un “form” allo stesso modo che in un’applicazione client. E allo stesso modo risponde agli eventi, tipo button_click, che esistono sul client. Questo rende “facile” per un “programmatore” scrivere sia codice per client che per web, perchè sono praticamente identici. Ma in questo modo non c’è una chiara separazione del modello dalla presentazione e dal controller (ossia non c’è un paradigma MVC dietro) e lo “spaghetti code” imperversa. E inoltre la parte di presentazione, di default, è renderizzata con codice HTML 4.01, con un sacco di javascript auto-generato da visual studio. volendo si può costringere la pagina a usare codice XHTML 1.0, ma volendo usare XHTML 1.1 Strict, i controlli web non funzionano perchè sono fuori standard.
Il css non esiste. Questo perchè Visual Studio ti permette di definire le proprietà degli oggetti della pagina in modo “così semplice”, che scrive lui tutto lo stile per gli elementi in modalità “in-line”! Quindi se ti va di cambiare il colore delle pagine devi andare a modificarle tutte, invece di cambiare una riga nel css…
Insomma, l’approccio generale mi sembra questo: “guarda che bei bottoni colorati, clicca qui e là, è facilissimo programmare…” e il risultato è lo spaghetti-code.
In Java si può scrivere codice bruttissimo, ma un minimo di “metodo per fare le cose per bene” c’è, e questo in C# mi manca
ma io ormai sono in ballo, e cercherò di ballare meglio possibile… alla prossima (e via alla flame war!)

Tag:, , , , , , , ,

Comments 6 Commenti »

Ciao. in questo periodo non ho scritto niente, sono proprio fulminato.
Stamattina gironzolando per il web, ho dato un’occhiata alle statistiche di netcraft.com, il più autorevole sito di rilevamento del web. Si possono trovare gli uptime dei server, piuttosto che la versione del web server eccetera.
Beh, cercando le statistiche di davethewave.it ho trovato questa classifica dei siti più visitati.
La mia posizione è 4.960.717 EDIT: stamattina ero lì, stasera sono 4.995.964 perdo 35mila posizioni in una mezza giornata??? e secondo loro sto davanti a rossoalice! guardare per credere!
NETCRAFT oppure guardate QUI per le ultime modifiche!
sto dietro all’ambasciata di kabul, e davanti al sito di beathe use, quello che vende articoli pornis…
pensandoci su, però, adesso credo che netcraft non sia più tanto autorevole… =D

Tag:, ,

Comments 1 Commento »

Hi all, I wrote this post in english because I think a lot of people will look at it.
Dreamhost is a very good web hosting company, that support Ruby On Rails application through Apache FastCGI module.
I choosed Dreamhost because the good reviews I see everywere, and I’m pretty happy to have it done. They offer a LOT of disk space, terabytes of monthly bandwidth, unlimited databases and unlimited subdomains, ssh login, svn repository, all that you will need. Truly!
So I wanted to deploy two Rails application I’m working on, in two subdomains, using the “automagic” Capistrano way of deploying.
When I setup Capistrano for the first time, it was version 1.X and I found all the info I need on Dreamhost Wiki and Rails manual, and it worked like a charm.
But the new application I wrote has been “capified” with Capistrano 2.0 (current release) and some little difference in configuration has getting me mad… Because of this I’m writing this little document, for helping other people and even for helping my memory :D
So give this guide a look, I think it is very interesting!
It comprehends ssh password free login, svn repository, capistrano and ruby on rails!
And if you want to signup an account to Dreamhost now you can get a 50% discount by entering this DREAMHOST PROMO CODE: DVWV50

Tag:

Comments 2 Commenti »

ciao a tutti! ho una novità: l’altra settimana ho comperato un iMac 24″, vecchio modello, non il nuovo che aveva uno schermo impossibile da usare.
dopo il lavoraccio di importare nel nuovo iMac documenti/video/musica sparsi sui tre hd e sui due sistemi operativi del precedente pc, adesso ho un computer fantastico.
sono pure riuscito a fare pulizia della scrivania, e di ciò mia moglie è contenta. e in parte anch’io.
come diceva qualcuno, “la differenza tra un uomo e un bambino sta nel prezzo dei giocattoli che si comprano…”

Tag:, , , , ,

Comments Nessun Commento »

allora, fate conto che bisogna tenere sincronizzati due sistemi di database. Uno basato su Sap e l’altro Oracle. Il primo è il “master” e il secondo è il “client”. Il master pubblica, tramite un web service SOAP, una tabella piuttosto importante, in pratica la lista di utenti dei sistemi. Ho scritto un bel programmino java che ogni quattro ore va ad invocare il web service, legge la tabella e la importa nel database client. Tutto sembra funzionare per bene.
Qualche settimana fa, hanno aggiunto agli attributi degli utenti un campo “DataCessazione”, che significa che l’utente da un certo momento in poi non è più attivo.
Ancora tutto bene.
Adesso, lato “master”, hanno ben pensato che, se un utente non è più attivo, si può anche riutilizzare la sua chiave primaria per un altro nuovo utente !!! che teschioni!
Quindi adesso sul “master” ci sono una cinquantina di utenti “nuovi” che hanno chiavi primarie di utenti “vecchi”. Io sul “client” mi rifiuto di “riutilizzare” così gli utenti vecchi, perchè sennò tutti i dati storici mi si impapocchiano.
Ecco come due sistemi sincronizzati sono di fatto desincronizzati. Almeno finchè i furboni cambieranno idea sul riciclo… “dopo il vetro, le lattine e la plastica, è ora di riciclare le chiavi primarie!!!”

Tag:

Comments Nessun Commento »

“…ci vuole un pennello grande!” diceva quel tale…
ma oggi ne ho sentita una ancora meglio: il mio collega R. sta lavorando su un form di un’applicazione. inserisce un bottone “Esegui”. passa il suo capufficio C., guarda il form e dice:

Quel bottone, fallo più grande. Così sembrerà che faccia pià roba…

e uno poi dice che non ci sono più gli sviluppatori di una volta… =)

Tag:, , ,

Comments Nessun Commento »

ma stavolta è una cosa grossa: il numero della BBBBestia!
[Vulvia mode ON]Lo sapevate? sui tutti codici a barre europei, c’è scritto il numero 666. non l’avete visto? ah, perchè è scritto in binario… ah, non starete mica pensando che il Satanasso non capisce il binario, vero? Sapevàtelo, su Rieducational Channel![Vulvia Mode OFF]
Insomma, i codici a barre hanno tre barre (appunto) di controllo, all’inizio, a metà e alla fine. servono per delimitare la lettura, ovviamente. la sequenza di controllo è | | (Barra-Spazio-Barra): se Barra=1 e Spazio=0 sta cosa si legge 101 che in base 2 vale 6.
[EDIT]:e bon che sono un informatico… 101, come mi segnala un utente e non la mia mente bacata, in binario è 5, non 6! in realtà leggono BarraBarraSpazio->110->6
Ora, visto che ce ne sono tre di sequenze di controllo, si può leggere addirittura 101 101 101 [EDIT] come sopra 110 110 110
. aiuto! orrore! raccapriccio! è il numero 6 6 6!!! anzi no, perchè il numero 101101101, se proprio vogliamo, in decimale è 365 [EDIT]438. bon. a parte l’evidenze stronzata, un consigliere svizzero sta facendo una denuncia penale per vietare l’uso dei codici a barre siffatti perchè

“in particolare, [il numero] offende o può offendere la sensibilità religiosa di cattolici, evangelici-riformati, ortodossi e dei fedeli di tutte le altre confessioni cristiane minori.”

cosa ne penso io: ma andate a cagare…[EDIT] e quasi quasi ci vado anch’io che non so fare i conti…

Tag:,

Comments 4 Commenti »

che cos’è un numero? a chi appartiene? cosa ci puoi fare? protezione anticopia? di cosa?
liberiamo i numeri!
spread the code

Tag:, , , , , ,

Comments Nessun Commento »