-->

Photostream

Tag Cloud

Categories

Social Links

Archives

Statistics

RSS Feed - IT


RSS Feed - EN

Archive for the ‘Technology’ Category

Disassebling my Nokia N80

Cellulare andato, schermo bianco dopo 3 anni di eccellente funzionamento. Il video seguente spiega minuziosamente (in maniera anche esagerata direi, indicando persino l’ordine in cui le viti devono essere rimosse..) come smontare il Nokia N80 fino all’ultimo componente. Con un pizzico di fortuna quindi si tratterebbe “semplicemente” di individuare il guasto e provare a ripararlo, ammesso che risulti possibile. Trattandosi di uno slide phone, nel mio caso, il principale indagato era il connettore flessibile del display. E’ stato quindi sufficiente rimpiazzarlo con uno nuovo, pagato appena 3 euro, e il telefonino e’ subito tornato in vita.

Non potevo di certo abbandonare il mio buon vecchio Nokia cosi’ com’era, esanime e ormai privo di qualsiasi garanzia.. Intervento direi ottimamente riuscito! :)

Browser fingerprint

A quanto pare anche i browser lascerebbero una qualche forma di impronta durante la navigazione, pagina dopo pagina, e quella seminata dalla mia volpe risulterebbe unica tra tutte quelle finora analizzate dal sito Panopticlick..

Your browser fingerprint appears to be unique among the 741,598 tested so far.

Currently, we estimate that your browser has a fingerprint that conveys at least 19.5 bits of identifying information.

Effettivamente con tutta la complessita’ che i browser odierni possono raggiungere con l’integrazione di plugins vari e l’abilitazione di funzionalita’ particolari, scelte ovviamente legate alle preferenze degli utenti, ogni client finisce per assumere un aspetto pressocche’ unico agli occhi dei server rendendosi identificabile e/o tracciabile nella navigazione, a discapito di ogni protezione della privacy..

Qualcuno di voi e’ riuscito ad ottenere un’impronta non univoca?

Bisognerebbe comunque verificare quanto significativi e attendibili siano tali risultati.

Top 25 most dangerous programming errors

Sul sito ufficiale della Common Weakness Enumeration (CWE) e’ possibile consultare liberamente un community-developed dictionary di software weakness types. A seguire la lista aggiornata al 2010 dei 25 errori di programmazione ritenuti piu’ “pericolosi”, un utile riferimento per qualunque sviluppatore.

The 2010 CWE/SANS Top 25 Most Dangerous Programming Errors is a list of the most widespread and critical programming errors that can lead to serious software vulnerabilities. They are often easy to find, and easy to exploit. They are dangerous because they will frequently allow attackers to completely take over the software, steal data, or prevent the software from working at all [...]

Rank Score ID Name
[1] 346 CWE-79 Failure to Preserve Web Page Structure (‘Cross-site Scripting’)
[2] 330 CWE-89 Improper Sanitization of Special Elements used in an SQL Command (‘SQL Injection’)
[3] 273 CWE-120 Buffer Copy without Checking Size of Input (‘Classic Buffer Overflow’)
[4] 261 CWE-352 Cross-Site Request Forgery (CSRF)
[5] 219 CWE-285 Improper Access Control (Authorization)
[6] 202 CWE-807 Reliance on Untrusted Inputs in a Security Decision
[7] 197 CWE-22 Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’)
[8] 194 CWE-434 Unrestricted Upload of File with Dangerous Type
[9] 188 CWE-78 Improper Sanitization of Special Elements used in an OS Command (‘OS Command Injection’)
[10] 188 CWE-311 Missing Encryption of Sensitive Data
[11] 176 CWE-798 Use of Hard-coded Credentials
[12] 158 CWE-805 Buffer Access with Incorrect Length Value
[13] 157 CWE-98 Improper Control of Filename for Include/Require Statement in PHP Program (‘PHP File Inclusion’)
[14] 156 CWE-129 Improper Validation of Array Index
[15] 155 CWE-754 Improper Check for Unusual or Exceptional Conditions
[16] 154 CWE-209 Information Exposure Through an Error Message
[17] 154 CWE-190 Integer Overflow or Wraparound
[18] 153 CWE-131 Incorrect Calculation of Buffer Size
[19] 147 CWE-306 Missing Authentication for Critical Function
[20] 146 CWE-494 Download of Code Without Integrity Check
[21] 145 CWE-732 Incorrect Permission Assignment for Critical Resource
[22] 145 CWE-770 Allocation of Resources Without Limits or Throttling
[23] 142 CWE-601 URL Redirection to Untrusted Site (‘Open Redirect’)
[24] 141 CWE-327 Use of a Broken or Risky Cryptographic Algorithm
[25] 138 CWE-362 Race Condition

And Java eventually became red

Sapevo dell’acquisizione di Sun Microsystems da parte di Oracle ma sicuramente non mi aspettavo un rebranding cosi’ spinto, ecco infatti come si presenta ora il sito http://java.sun.com/ ..

Persino l’indirizzo http://www.sun.com/ sembra ormai redirigere su http://www.oracle.com/ ..

Con la speranza che almeno Duke sopravviva a tutto questo (e che magari le certificazioni che abbiamo conseguito non finiscano per “estinguersi”), mi auguro che tale operazione di business non si dimostri deleteria per una delle tecnologie oggetto dell’acquisto, ossia l’intera piattaforma legata al linguaggio Java, linguaggio che ha segnato la storia della programmazione object-oriented e dei linguaggi di terza generazione.

Google Buzz vs Twitter

Un po’ per caso mi sono immediamente trovato a utilizzare il nuovo servizio “social” sviluppato da Big G che prende il nome di Google Buzz. Riporto qui le mie prime impressioni (a caldo) facendo un rapido confronto con Twitter, con cui credo si possa dire che condivida l’idea di base (ma forse solo quella). Non parlero’ di FriendFeed (con il quale condivide qualcosa di piu’) ma soltanto perche’ non ne sono un utilizzatore (“finale”, aggiungerebbe qualcuno..), tanto meno di Facebook o altri social.

Come in Twitter i concetti di fondo sono molto semplici:

  • ci sono persone che ti seguono (“followers”) e altre che segui (“following”)
  • si condividono brevi messaggi (si “twitta”)

A differenza di Twitter:

  • non esiste un limite ai caratteri da digitare (140 in T.)
  • il servizio e’ integrato nella posta elettronica (T. e’ integrabile attraverso le sue APIs) *
  • i messaggi sono editabili anche successivamente alla sottomissione
  • si possono postare messaggi privati
  • si possono inserire immagini da computer o picasaweb (con T. occorre far uso di servizi aggiuntivi come TwitPic)
  • si possono condividere video e visualizzarli direttamente all’interno del messaggio
  • si puo’ esprimere un gradimento attraverso il pulsante like/unlike
  • si possono nascondere conversazioni attraverso l’opzione mute/unmute
  • si possono continuare conversazioni in chat (GTalk) e via mail

Google Buzz non fa che confermare la strategia di Google: ingrandire quanto piu possibile il network di utenti e il tempo che essi trascorrono sui vari servizi offerti. Google Buzz offrirebbe infatti nuove informazioni da analizzare a partire dai comportamenti e dalle preferenze degli utenti. Quello che forse molti si chiederanno e’ se Google Buzz riuscira’ mai ad acquisire il giusto consenso e se verra’ mai adoperato come un “vero” social network. In effetti non sara’ semplice inserirsi in un mercato gia’ dominato da numerosi competitors, anche se con Gmail, devo riconoscerlo, le cose sono andate piuttosto bene.

* UPDATE – Disponibili anche le APIs per integrare Google Buzz.

Social data taxonomy

Interessante questo post di Bruce Schneier in cui il noto security technologist offre una personale classificazione tassonomica (incentrata sul “livello di fiducia”) delle varie informazioni gestite negli odierni social networks. Un valido punto di vista non solo per gli utenti ma anche per gli stessi amministratori. Internet puo’ in alcuni casi diventare incontrollabile e creare situazioni poco piacevoli, per cui sarebbe sempre bene conoscere con chiarezza COSA di noi resta nella rete e IN CHE MODO tali informazioni vengono gestite ed eventualmente rese disponibili.

  1. Service data. Sono le informazioni che devi fornire per registrarti e accedere al network (es. il tuo nome legale, la tua eta’, in alcuni casi anche il numero della carta di credito).
  2. Disclosed data. In questa categoria rientra tutto cio’ che viene da te inserito nelle pagine che gestisci di persona (blog, foto, messaggi, commenti, ..).
  3. Entrusted data. Quanto inserisci nelle pagine altrui. In pratica le stesse informazioni di cui prima a differenza delle quali pero’ non sei tu ad averne il controllo (qualcun altro le gestisce).
  4. Incidental data. Sono le informazioni che gli altri inseriscono su di te. Ancora una volta simili ai disclosed data ma questa volta 1) non ne possiedi il controllo e 2) non sei tu ad inserirle.
  5. Behavioral data. Tutto cio’ che viene raccolto sulle tue abitudini e le azioni che compi nel network.

Mechanical Poetry offre qui una diversa classificazione focalizzata invece sulla destinazione dei dati.

Creating virtual worlds

[ Fonte: XKCD ]

Rebuilding the role of the Information Engineer

Nel settore ICT italiano come ben si sa esistono fin troppe anomalie e a farne le spese sono soprattutto gli “addetti ai lavori”. Ricordo che commentai tempo fa sul blog di Francesco proprio in merito ad un post su partita IVA e stranezze varie facendo trapelare il desiderio di voler un giorno tornare in patria e trovai subito la risposta di chi purtroppo, proprio in balia di tali “stranezze”, non poteva che manifestare un desiderio diametralmente opposto al mio.

Proprio in merito a tali argomenti mi premeva citare l’iniziativa portata avanti dall’A3I, Associazione Italiana Ingegneri dell’Informazione, obiettivo della quale sarebbe una regolamentazione del settore attraverso una chiara proposta di legge intesa a ridefinire il ruolo dell’ingegnere dell’informazione (inglobando in tale figura tutte le categorie dell’ICT). Ad avvalorare le tesi esposte una “galleria dei disastri” che fa certamente riflettere. Come molti altri ingegneri ho rinunciato all’iscrizione all’ordine avendo considerato tale possibilita’ come un semplice spreco di denaro, visti appunto gli scarsi benefici legati ad una carente regolamentazione. Ed e’ forse proprio per questo motivo che tale associazione intende finalmente muoversi.

I numerosi esempi di fallimento sono una prova di un sistema che non funziona, forse troppo martoriato dalla pressione fiscale o da una classe dirigente poco concentrata sui risultati e sulla qualita’ degli stessi ma sempre bravissima, anzi geniale, nel far sempre quadrare i conti personali. Il nostro Paese e’ purtroppo carente di figure tecniche altamente qualificate ma ricco di ingegneri “low cost”, povero di investimenti nelle infrastrutture tecnologiche (sono ancora costretto ad allacciarmi ad Internet con il vecchio doppino) e soprattutto nel campo della ricerca e dell’innovazione. Quando potremo mai risollevare la testa?

L’associazione ha bisogno di numeri per portare avanti gli obiettivi prefissati, una maggiore consapevolezza interna al settore infatti non puo’ che aiutare. Invito gli interessati a dare almeno uno sguardo al sito dell’associazione.

L’Ingegnere dell’Informazione

L’Ingegnere dell’Informazione è il professionista iscritto al settore dell’Ingegneria dell’Informazione dell’Ordine degli Ingegneri, ovvero al III settore dell’Ordine, anche conosciuto come settore ICT, dall’acronimo inglese che sta per Information and Communication Technology, ovvero il settore dei sistemi informatici, delle reti di telecomunicazione, ma non solo; è un settore pervasivo, strategico e trasversale a tutte le altre attività, costituisce il sistema nervoso del sistema Paese.

Ma cosa fanno gli Ingegneri del III settore? Quali sono i loro compiti?

L’art. 46 del DPR n. 328/01 specifica che i compiti degli ingegneri del III settore, alias settore dell’ingegneria dell’informazione, sono: la pianificazione, la progettazione, lo sviluppo, la direzione lavori, la stima, il collaudo e la gestione di impianti e sistemi elettronici, di automazione e di generazione, trasmissione ed elaborazione delle informazioni. [ ... ]

Memory leak in Firefox 3.5.5?!

Non so ancora se parlare di memory leak o semplicemente di malfunzionamento nel processo di deallocazione della memoria, fatto sta che qualcosa non andava nella gestione della memoria del mio browser. Qualche giorno fa infatti mi ero ritrovato con il pc in palla mentre navigavo su non piu’ di due siti contemporaneamente. Controllando il task manager avevo notato come Firefox (versione 3.5.5) avesse allocato qualcosa come 700MB di memoria e, avendo numerose altre applicazioni aperte e “solo” 2GB di RAM, il paging di Windows si trovava a dover lavorare di continuo rendendo il pc quasi inutilizzabile.

Ieri, dopo un’intera giornata di lavoro, ho provato a rimuovere di proposito tutti i tab di navigazione (lasciando la classica pagina bianca di default) e a ricontrollare di nuovo l’uso della memoria. Risultato? La memoria recuperata durante la chiusura era veramente poca, quella allocata continuava ad attestarsi sui 200 MB circa ..

taskmgr

I miei sospetti sono infine ricaduti su di un plugin che avevo installato di recente, Tree Style Tab, di cui Enoela aveva parlato qui e che avevo trovato particolarmente utile. Effettivamente una volta disattivato tale plugin tutto e’ tornato alla normalita’. Davvero un peccato non poter organizzare gerarchicamente i tab, provero’ magari con una versione piu’ aggiornata.. Qualcuno ha mai avuto un problema simile con questo plugin o si tratta soltanto di un caso sporadico?

Java updates from London

La conferenza e’ stata nel complesso molto interessante, riporto qui alcune impressioni ..

Getting more from your existing Java applications
Simon Ritter – Java Evangelist, Sun Microsystems

Questa parte era principalmente incentrata sul tuning della JVM soprattutto in riferimento a cio’ che spesso rappresenta il collo di bottiglia di numerose applicazioni Java-based, ovvero il garbage collection (GC). Non tutti gli sviluppatori sanno che esistono centinaia di parametri, alcuni dei quali legati a particolari implementazioni proprietarie (IBM, Oracle, BEA e altre), attraverso i quali e’ possibile modificare profondamente il comportamento e le prestazioni della JVM. I seguenti principi, definiti simpaticamente come il “GC Nirvana” delle JVMs, rappresentano i principali obiettivi di ottimizzazione da considerare (compatibili solo a due a due):

  • low GC overhead
  • low GC pause times
  • good space efficiency

E’ inoltre apparso chiaro sin dall’inizio come i meccanismi di GC siano aggiornati e migliorati di continuo anche all’interno di una stessa release, e questo attraverso le varie versioni di update rilasciate da Sun. E’ sempre bene quindi, nei limiti delle possibilita’ di progetto, installare l’ultimo update disponibile.

Java for Business. Getting the best (out of Sun) for your Java applications
Owen Stuart – Java Sustaining, Critical Situation Manager, Europe, Middle East and Africa

Questa parte era per me di poco interesse. Compito dello speaker era di spiegare il tipo di supporto offerto ai clienti.

A look at Java SE embedded and real-time Java
Helen Cullen, Andy Gilbert – Systems Engineers, OEM Software Sales

Sorprendente vedere insieme l’intera gamma di dispositivi embedded Java compatibili. Tra questi in particolare risalto il socket PC, nello specifico un’implementazione su sistema Linux/Java.  Ribadita inoltre la differenza tra la versione Micro Edition e quella Embedded (spesso confuse), la prima una versione molto ridotta destinata a dispositivi con capacita’ di memoria inferiori ai 32 MB (ormai davvero pochi), la seconda invece del tutto compatibile con la versione standard meno i pacchetti ritenuti opzionali (es. CORBA) e alcune risorse non strettamente necessarie (es. javadocs) rimossi quindi dal packaging. Molto interessante la parte relativa al Real-Time, sul quale argomento mi trovavo ancora un po’ scettico. Con Java si puo’ adesso implementare senza alcuna difficolta’ una sorta di soft real-time e, in maniera certamente piu’ complessa, un piu’ rigido hard real-time. I risultati sono significativi, come dimostra il seguente video:

New Stuff – Java Enterprise Edition 6 and GlassFish 3
Steve Elliott – Technology Evangelist, Sun Microsystems UK

Ottima l’introduzione all’argomento attraverso un rapido escursus sull’evoluzione subita nel corso degli anni dalla versione enterprise (J2EE o JEE). Sin dalla sua nascita l’intento e’ sempre stato quello di regolamentare il mercato in riferimento alle nuove tecnologie di volta in volta introdotte per migliorare lo sviluppo enterprise. Cosi’ e’ accaduto in passato con l’introduzione delle specifiche JPA ed EJB 3.0 (in risposta al successo di Hibernate), cosi’ accade ora con il nuovo JEE 6 il quale si “impadronisce” del meccanismo dell’inversion of control (tipico del framework Spring) oltre ovviamente ad altre interessanti novita’. Niente male anche l’application server GlassFish, di cui sinceramente conoscevo ben poco, presentato da Sun come implementazione di riferimento delle neo-rilasciate specifiche JEE. All’apparenza un ottimo prodotto, certamente da provare, disponibile anche in versione bundle per Eclipse.

More New Stuff – Java Standard Edition 7 and JavaFX
Simon Ritter – Java Evangelist Sun Microsystems
Simon Cook – Software Architect Sun Microsystems UK

Non molto chiaro in che modo Sun stia procedendo con lo sviluppo del nuovo JDK 7 (sebbene Simon Ritter abbia tentato di far chiarezza) nonostante numerosi JSR siano ancora in fase di approvazione. A seguire la lista completa di quanto e’ stato finora proposto (ad esempio date un occhio al progetto Coin):

vm Compressed 64-bit object pointers
Garbage-First GC (G1)
JSR 292: VM support for non-Java languages (InvokeDynamic)
lang JSR 308: Annotations on Java types
JSR TBD: Small language enhancements (Project Coin)
JSR 294: Language and VM support for modular programming
core Modularization (Project Jigsaw)
Upgrade class-loader architecture
Method to close a URLClassLoader
Unicode 5.1
Concurrency and collections updates (jsr166y)
JSR 203: More new I/O APIs for the Java platform (NIO.2)
SCTP (Stream Control Transmission Protocol)
SDP (Sockets Direct Protocol)
Elliptic-curve cryptography (ECC)
client XRender pipeline for Java 2D
Forward-port 6u10 deployment features
Create new platform APIs for 6u10 graphics features
Nimbus look-and-feel for Swing
Swing updates
web Update the XML stack

E per concludere questo lungo percorso uno sguardo a qualcosa di piu’ stylish dedicato al front-end, Java FX. In questo campo Adobe sembra ormai avere un netto vantaggio grazie a Flash, tuttavia Java FX possiede dalla sua una carta importante, ovvero la piena integrazione con il vasto mondo della tecnologia Java. Staremo a vedere se tale carta risultera’ vincente. Per conoscerne di piu’ potete dare un’occhiata ad alcuni screencasts oppure provare subito qualcosa di FX visitando una galleria di esempi.