09 ottobre 2011

Il Touchpad del MacBook Pro

Qualche giorno fa stavo gustando un apertivo, quando all'improvviso la vaschetta con le olive si è rovesciata sul mio MacBook! Orrore!!! Buona parte del liquido delle olive (altamente salato e color verde) ha inondato il touchpad, e seppur sia immediatamente interventuo con un tovagliolo, parte di questo liquido è filtrato dalla parte frontale del touchpad...

Al momento non ci ho dato troppo peso, ma la mattina dopo utilizzando il Mac mi sono accorto che la pressione degli angoli del touchpad non sortisse più alcun effetto. Il touchpad era perfettamente utilizzabile per muovere il puntatore e usare il click "a tocco", ma facendo pressione sugli angoli, a parte il consueto "click" metallico, non arrivava nessun impulso al sistema operativo...

Ho provato a smontare il touchpad per verificare se si trattasse solo di un falso contatto ma purtroppo ho scoperto che le viti utilizzate dalla Apple per il touchpad sono le stesse utilizzate dalla Flotta Stellare per assemblare l'Enteprise, e quindi nel 2011 i cacciaviti per queste speciali viti non sono ancora stati inventati.

Ho contattato Apple per capire che costo potesse avere la sostituzione (non in garanzia) del touchpad: responso 120 Euro.

Scavando un po' su alcuni forum, ho trovato un tizio che in casi analoghi diceva che il problema era imputabile al liquido che, una volta penetrato e asciugato, formava una piccola patina isolante che impediva il contatto della lamella del touchpad.

La soluzione suggerita? Far penetrare dell'alcool puro, non quello denaturato che potrebbe lasciare a sua volta dei residui, ma proprio purissimo, dentro al touchpad in modo che questo sciolga la patina e non lasciando a sua volta residui ripristini il corretto funzionamento del dispotivo.

Mi sono quindi procurato una boccetta di Etanolo 96, che a quanto pare è alcool etilico puro al 96%, e ne ho versato un piccolo quantitativo sul touchpad (a Mac spento ovviamente) assicurandomi di farlo penetrare attraverso le fessure del touchpad. Dopo pochi minuti il Mac era completamente asciutto, ma per sicurezza l'ho fatto "riposare" tutta la notte.

La mattina dopo, ho acceso il Mac per verificare se ci fosse stato qualche miglioramento, e... il primo click non ha dato segni di vita, ma dal secondo in poi qualcosa ha cominciato a funzionare, ed entro pochi minuti i due tasti erano tornati "cliccabili" come una volta!!! Miracoli della chimica!

In sintesi:Se del liquido penetra nel touchpad e questo smette di funzionare, versateci dell'alcool puro (non quello denaturato) facilmente reperibile in farmacia, fate asciugare bene e il touchpad dovrebbe ripendere a funzionare.

17 agosto 2011

Hacking Vodafone MiFi 2352

Questa settimana in vacanza in un posto dove come di consueto non prende bene il 3G di Wind (ma anche Vodafone e Tim non sono da meno...) ho tirato fuori dal cassetto il router MiFi di Vodafone Italia (mod. 2352 prodotto da Novatel).

Il bello di questo prodotto (costato meno di 100 euro) è che potete metterci dentro una sim di qualunque operatore, e ottenere una minirete WiFi anche nel posto più sperduto del mondo... funziona perfino a batteria, quindi se siete dei fanatici come me, potete avere una rete WiFi persino in macchina...

Il router si collega sia in GPRS/EDGE (leeeeeentooo!) che in UMTS/HSUPA (a patto di essere sotto copertura 3G). Devo dire che fa il suo sporco lavoro in modo egregio.. nello stesso punto, e con favore di vento ottengo infatti i seguenti risultati:

iPhone 3 - Connessione solo Edge
Chiavetta Wind - Connessione UMTS a tratti solo impostando il blocco su questo tipo di connessione
Router MiFi 2352 - Connessione UMTS e fallback saltuari in Edge.

Inoltre grazie al WiFi posso posizionarlo in punti strategici e difficilmente raggiungibili con il mio iPhone o con il notebook e la chiavetta... risultati simili li ottenevo l'anno scorso usando un telefono UMTS Sony-Ericcson collegato in bluetooth, come se fosse un piccolo router esterno, ma l'affidabilità del segnale WiFi e in generale il funzionamento di questo router Vodafone lo rendono nettamente superiore.

Unica pecca di questo router è il fatto che si possano collegare al massimo 2 dispositivi WiFi contemporaneamente...

Ma ormai i dispositivi WiFi personali sono in numero cospicuo... io stesso giro con MacBook, iPhone e iPod... magari a volte ho anche l'iPad... e tutti questi "aggeggi" sono affamati di WiFi e rimangono connessi anche in stand-by... per evitare di trovare il PC "lockato" fuori a causa di iPod e iPhone perennemente connessi (limite di 2 dispositivi raggiunto...) da buon hacker ho provato a smanettare un po'...

Navigando su Internet ho scoperto che lo stesso dispositivo viene commercializzato in altre parti del mondo con un limite di 5 client WiFi... Il limite pare non aggirabile in quanto hard-coded nel firmware... Ma perchè in Italia siamo limitati a 2? Misteri di Vodafone Italia...

Navigando nei menù ho trovato nel pannello "sistema" l'opzione "backup". Tramite questa si può salvare la configurazione del router in un file XML, e successivamente ricarcarla... state pensando anche voi quello che penso io??

Ok.. scarichiamo la configurazione e analizziamola....

Uhm... c'è un tag <allowedclients>2</allowedclients>

Proviamo a cambiarlo in 5, e ricaricare la configurazione nel router...

Il router si riavvia automaticamente e.... bingo!!! Ora ho tre dispositivi WiFi connessi!!! :)

Ricapitolando... si salva la configurazione XML su disco.. si modifica il file XML portando il limite a 5, si ricarica nel router e ora il limite è di 5 dispositivi... Questo si vede sia nel pannello di riepilogo che dice "Dispositivi connessi x / 5", sia nel dettaglio del WiFi che mostra i Mac Address e i nomi di max 5 dispositivi.

Logica vorrebbe che mettendo un numero ancora più alto sia possibile connettere un numero superiore di dispositivi WiFi, ma secondo quanto letto su Internet, chi ha provato ad elevare il numero ha comunque riscontrato il blocco a 5. Io non ho ora a disposizione più di 3 dispositivi e quindi non posso fare il test... chi avesse modo lo faccia e mi scriva pure. Quando avrò occasione lo proverò anche io.

16 maggio 2009

Nuove frontiere dello SPAM!

Oggi mi è arrivato il solito messaggio di Spam camuffato da contatto Ebay... dico solito.. perchè ormai ne ricevo quasi 1 al giorno.

Di solito mi invita a cliccare su un link per ricevere un pagamento di 500 euro a fronte della vendita di un qualche oggetto preziosissimo, o simili, ma oggi era veramente spassoso:

---------------------------------------------

Ciao,

avete fatto shipp la bici???

gli pago i soldi sulla bici ed ora voglio la mia bici.

Attendo il vostro urgentemente rispondo.

se non rispondere me io lo segnaliate a ebay per la frode.

avete miei soldi ed ora voglio alla mia bici.

Attendo appena possibile i vostri respons.

Ringrazi il `s!

---------------------------------------------------------------

Messaggio veramente degno della buonanima Mario Magnotta!

Ci ho anche messo un po' per capire che "shipp della bici" voleva dire spedizione della bici (da to ship, inglese)!

Salut il 's! :-)

20 marzo 2009

Il pezzo mancante

Giornata fruttuosa oggi... sono andato a buttare una fotocopiatrice all'isola ecologia dell'Ama (la società di raccolta e smaltimento dei rifiuti di Roma). L'addetto mi ha indirizzato verso il "Container H", nome inquietante che descrive il cassone di metallo dove vanno depositati i rifiuti tecnologici... "ma NON i Monitor! Quelli vanno nelle gabbie D e F!!!"... ma torniamo al "Container H", parcheggio l'auto a pochi metri, con l'aiuto di un amico scarico la fotocopiatrice e la infilo nel lato aperto del cassone... butto l'occhio sul cumulo di rottami elettronici, e vedo che si tratta di PC più o meno vecchi.

Poi dopo pochi secondi la mia attenzione si concentra su una sorta di tastiera che si trova proprio in fondo al cassone, in cima a una catasta di PC. E' una tastiera "strana", un pò più spessa del normale, e a guardala bene ha anche dei connettori sul retro... più d'uno...

Tastiera? Connettori sul retro?

Rapidamente nella mia mente passano una serie di immagini che raffigurano una larga serie di macchine Commodore 8-bit e 16-bit... Commodore 64 New? No... troppo largo... Commodore 128? No troppo poco profondo... e mentre penso questo, comincio a mettere i piedi sulle cataste di PC e a farmi avanti sui mucchi di tecnologia obsoleta...

Raggiungo quasi il lato opposto del cassone rischiando più volte di essere inghiottito dai cavi e fatto a fette dai case aperti e "non a norma CEE"... alla fine mi sporgo e lo afferro, il tempo di uscire e mi accorgo che cosa ho tra le mani: un Amiga 1200!!!! Sporco, con il connettore del monitor ancora attaccato con due viti, il cui cavo è stato tranciato di netto da qualcuno che aveva fretta, ma apparentemente integro!

Mi mancava proprio un Amiga 1200... che bella giornata!

29 gennaio 2009

Facciamo qualche numero

E' passato oltre un mese dal rilascio del CodiceFiscale++ per iPhone su AppStore.

Facciamo qualche numero...

Nel mese di dicembre (si consideri che l'applicazione è stata pubblicata solo il 12 dicembre 2008) dall'Italia l'App è stata scaricata ben 14.285 volte.

Nel mese di Gennaio, siamo saliti a 15.216 download.

Questo vuol dire che 29.501 utenti italiani hanno scaricato una applicazione semi-inutile per la generazione del Codice Fiscale. OK, è gratuita.

Ma quanti iPhone ci sono in Italia? Ovviamente questo è un mistero... si sa solo (ma sarà vero?) che nei primi giorni di vendita ne furono venduti 30.000.

12 dicembre 2008

CodiceFiscale++ disponibile su AppStore!

Annuncio ufficialmente la disponibilità su AppStore dell'ennesima applicazione per il calcolo del Codice Fiscale!!! Download GRATIS.

Quando ho iniziato a svilupparlo, non ce n'era neanche una... quando l'ho finita (dopo 2 mesi) ce n'era una a pagamento, ora che finalmente la Apple si è degnata di pubblicare la mia applicazione, ce ne sono altre 3! Una gratis e due a 79 centesimi.

Scarica con iTunes

Fuzionalità:
- Calcolo del codice fiscale
- Verifica del codice fiscale
- Verifica della Partita Iva

Accetto commenti, bad review, suggerimenti, etc...

24 novembre 2008

Farenga Vs Apple 1-0

Dopo appena due mesi e mezzo dall'inizio dello sviluppo, ho finalmente terminato la mia prima applicazione per iPhone.

Ovviamente non ho lavorato per oltre 70gg quotidianamente sull'applicativo, ma solo alcuni fine settimana.

Facendo una stima su come ho distributo il tempo impiegato, si può fare una interessante considerazione:

Tempo impiegato per capire come funziona l'SDK: 60%
Tempo di sviluppo effettivo dell'applicativo: 10%
Tempo impiegato per riuscire a sottoporre l'applicazione alla Apple: 30%

Passi il 60% di tempo destinato a imparare a governare l'SDK.... dopotutto era un ambiente completamente nuovo per me.

Ma quello che non concepisco è aver dedicato il 30% del mio tempo per riuscire nell'intento di mandare l'applicazione alla Apple per la loro revisione... Il meccanisimo di firma digitale, configurazione delle release di distribuzione, compilazione, packaging e upload è assolutamente complicato e soggetto a molteplici errori.

I forum sono pieni di gente che ha prodotto qualcosa e non riesce a mandarlo alla Apple.

Devo proprio dire che rispetto agli ambienti user-friendly di Microsoft (Visual Studio in primis) il fatto che per sviluppare, Apple ti metta a disposizione dei tool che devono essere configurati a mano tramite strumenti che ricordano l'editor di registro di windows, mi lascia quantomeno perplesso... in parte mi ricorda i gloriosi tempi dell'Amiga, quando per far funzionare la connessione ad Internet si passavano simpatiche ore a smanettare con oscure impostazioni dell'AmiTCP...

Ma siamo nel 2008!!! E Apple è famose per essere user-friendly (ah, è vero, io non sono un user, sono uno sporco developer...)

Comunque, la prima battaglia è vinta. Apple non è riuscita ad impedirmi di inviargli l'applicazione per l'approvazione. Ora vediamo se me la rigettano, il che sarebbe divertente!


Di che applicazione si tratta? Ah quasi mi dimenticavo, di un semplicissimo e banale software per il calcolo e la verifica del Codice Fiscale, per il quale ho optato per una distribuzione gratuita. Dopotutto è stata solo una "palestra" per impratichirmi con l'ambiente di sviluppo iPhone...

A breve mi dedicherò a qualcosa di più significativo...

21 novembre 2008

Sono su punto-informatico.it!


Incredibile! La settimana stava scivolando via tranquilla, quando ho buttato un'occhio su punto-informatico.it e invece di trovarmi le solite flames verso SIAE, il p2p etc, mi imbatto in un interessante articolo intitolato "Videogiochi in italia, una storia Industriale".

Lo scorro con un po' di scetticismo, riscontrando però che si tratta di una sintetica ma fedele ricostruzione di ciò che effettivamente è accaduto in Italia, e alla fine... una bella sorpresa.. Insieme al caro Mario Savoia (che fine hai fatto?) mi trovo citato come "cervello in fuga" per la Team 17. In realtà non mi sono mai mosso da Roma, ma comunque con il buon Martyn Brown ho avuto a che fare per oltre 2 anni.

Non male la settimana dopo tutto!

31 ottobre 2008

Google Street View a Roma!

Ho appena scoperto che finalmente Street View è attivo anche a Roma!

Per chi non avesse presente il servizio, si tratta della possibilità di "navigare" attraverso la mappa della città, utilizzando Google Maps (maps.google.it), con prospettiva stradale. In pratica sono migliaia di foto scattate da speciali veicoli, che una volta collegate tra loro danno effettivamente l'impressione di andare in giro per la città.

Mi sono subito fatto un giro nella mia zona, e ho trovato un bel BUGGONE!

Non solo a un certo punto la foto sembra presa dopo un attacco di un Kamikaze, la via non più quella, e anche i link per andare avanti sono impallati.

Guardate le foto che seguono, e provate a cercare "Via Proba Petronia - Roma" su google maps... attivate la modalità StreetView e navigate lungo la strada...




UPDATE delle 00:25

Mi sa che questa volta Google l'ha fatta fuori del vaso! In pochi secondi ho trovato un'altro macroscopico errore... Per un pezzo di Via della Balduina (angolo via Friggeri) sono state usate le immagini di Viale Medaglie D'Oro (parte a Nord di via Marziale)...

21 ottobre 2008

Disastro Nokia...


C'era una volta un telefono aziendale fornito da Vodafone... si trattava di un meraviglioso e fiammante Nokia E65.

Questo telefono era prodigioso... Wi-Fi... UMTS... fotocamera da 2 Megapixel... display ad alta risoluzione... software di lettura degli SMS... suite Vodafone Office... e tanto altro ancora.

Fu così che il protagonista di questa storia, nel mese di Maggio, regalò il suo ottimo Nokia 6630 e cominciò ad utilizzarlo appieno.

Ma dopo le prime settimane di entusiasmante utilizzo, alcuni suoi interlocutori continuavano a ripetergli: "Non ti allontanare dal telefono quando parli!".

Successe una volta... poi due volte... poi tre volte... fino a quanto chi lo chiamava pensava che il protagonista se ne andasse a spasso per la stanza lasciando il telefono poggiato sulla scrivania.

Questo però non accadeva se veniva inserito il viva-voce oppure usato un auricolare.

Addirittura si scoprì che quando qualcuno lo sentiva lontano, inserendo e disinserendo rapidamente il vivavoce, tutto tornava normale.

Pertanto dopo alcune settimane, il nostro eroe giunse ad una "scientifica" conclusione: è il firmware da aggiornare!

E fu così che non senza peripezie riuscì ad aggiornare il firmware del suo E65 e... tutto sembrava risolto! Hurrà! Hurrà!

L'emozione però durò lo spazio di una lunga telefonata di lavoro... "Ma ti sei allontanato dal telefono??? Ti sento lontanissimo!"

Fu così che in un tiepido Giugno il telefono fu portato all'assistenza suggerita da Vodafone, in quanto se di firmware non si trattava, era certamente un banale guasto elettronico.

I giorni passarono, poi le settimane, ed ecco che a metà Luglio, dopo appena 45gg di attesa il telefono fu restituito... Evviva! Urlava il nostro eroe, il difetto è sparito, finalmente posso sfruttare al meglio questo gioiello della tecnologia.

Ma dopo pochi giorni, una brutta telefonata interruppe l'idillio... "Pronto? Pronto? Hai messo il telefono nel lavandino?"

Il misterioso difetto era riapparso, e a nulla era servito che l'assistenza aggiornasse il firmware già aggiornato e dichiarasse una presunta riparazione meccanica...

Triste ma determinato, il protagonista riportò il telefono in assistenza... ma eravamo ormai verso la fine di un caldo Luglio... "Non penserà che glie lo ridiamo prima di Settembre, eh?" disse un burbero riparatore.

E così l'estate trascorse senza che il nostro eroe potesse aver a disposizione il suo fido E65. Fu anche costretto a comprare un'altro telefono UMTS, per potersi collegare ad Internet nelle calde giornate d'Agosto... ma a settembre ci sarebbe stata la rivincita, finalmente avrebbe goduto appieno del suo E65!

Fu così che a fine Settembre finalmente il telefono era di nuovo riparato. E questa volta risultava chiaramente dal rapporto dei tecnici la sostituzione del microfono.

"Finalmente il malefico microfono difettoso è stato sostituito! Nulla potrà più impedirmi di utilizzare questo stupendo Nokia E65!"

Ma dopo pochi giorni un interlocutore occasionale spense ogni speranza... "Pronto? Pronto? Ti sento lontano!!!"

Preso dallo sconforto il nostro eroe decise di contattare l'assistenza Nokia, il mitico Nokia Care, il difensore dei deboli, che sconfigge i cattivi!

"Si, capiamo il suo problema, ma se il telefono non è in assistenza non possiamo fare nulla. Faccia una cosa, lo riporti in assistenza e poi ci chiami dopo 10 giorni, così proviamo ad intervenire"

Fialmente qualcuno aveva preso in mano la questione, e la soluzione sarebbe stata solo questione di giorni...

Il telefono fu riportato in assistenza, e i giorni contati avidamente... "Pronto, assistenza Nokia? 10 giorni fa ho portato un telefono in riparazione, e mi avevate detto di chiamarvi per vedere cosa si poteva fare..." - "Si, mi detti pure il codice imei del suo telefono...."

...qualche minuto e una marea di cifre dopo...

"Beh, guardi, questo telefono è già stato riparato, quindi per stavolta non possiamo più intervenire. Il telefono è in uscita e le sarà restituito presto... sicuramente funzionerà dal momento che le hanno cambiato il microfono, ma se non dovesse funzionare, lo riporti in assistenza e ci richiami dopo 6 giorni... Arrivederci!"

(continua?)

11 settembre 2008

Il mio primo iPod

Finalmente è tra le mie mani... no, non un iPhone... ma un iPod Touch! I miei cari amici, sapientemente organizzati da mia moglie, per il mio compleanno mi hanno omaggiato di un bellissimo iPod Touch da 8Gb! E questo mi consente finalmente di cominciare a fare qualche test di applicazione direttamente su un dispositivo VERO, e non solo sull'emulatore.

In realtà anche io avevo ipotizzato di comprare un iPod Touch anzichè un iPhone per i primi tempi. Dopotutto le differenze sono veramente minimali... la connessione a Internet è garantita dal Wi-Fi, e le funzioni ci sono tutte a parte la parte telefonica, il GPS e il Bluetooth. Quindi a meno che non si voglia sviluppare qualcosa strettamente legato al mondo della telefonia, o un'applicazione che sfrutti il posizionamento, questo gingillo è più che adeguato, e soprattutto costa circa la metà di un iPhone.



Togliamoci però un paio di sassolini dalla scarpa, che Apple mi ha infilato quasi di nascosto:

Primo: ad appena 3 giorni di distanza è uscito il nuovo modello di iPod Touch! Che allo stesso prezzo ha il doppio della memoria (16Gb), i controlli volume e lo speaker esterno! Vabbè non è colpa loro... però mi rode non poco

Secondo: l'iPod Touch mi è arrivato con dentro il firmware 1.5 e, si badi bene, è stato acquistato direttamente sul sito Apple! Questo vuol dire che mi hanno mandato un dispositivo nuovo con un firmware vecchio di qualche mese, ma soprattutto... chicca delle chicche... HO DOVUTO PAGARE per aggiornarlo!!!

Quest'ultimo punto è particolarmente antipatico, non tanto per il prezzo, appena 7.99, ma per il principio. A qualche Apple fan-boy che mi ha già detto "è così non ti devi meravigliare" vorrei rispondere: ma se oggi comprate un MAC e ci trovate dentro Mac OSX Tiger invece di Leopard, sareste d'accordo a pagare l'upgrade???

Mi pare una politica assurda...e poi ci si lamenta degli altri.

Senza considerare che con il firmware 1.5 non è possibile acquistare o scaricare applicazioni dall'AppStore, ma Apple non si preoccupa minimamente di avvisarti.. semplicemente quando si seleziona un'applicazione, e si fa click per vedere i dettagli, la pagina appare bianca... Ci ho messo non poco a capire che il motivo era il firmware non aggiornato.. considerando anche che non ho trovato un modo semplice per capire la versione direttamente dall'iPod.
Un messaggio "Aggiorna il firmware per accedere all'AppStore" era troppo faticoso?"

Alla fine dopo aver aggiornato il firmware, ho provato a scaricare qualche applicazione gratuita direttamente dall'iPod... scarico la prima, l'avvio, e si chiude da sola... ne scarico un'altra, ci clicco... e pochi istanti dopo si chiude. Provo con una terza... stessa cosa... ???

Per farla breve dopo una rapida ricerca sui forum scopro che si tratta di un "bug noto", e che "talvolta" succede... alcuni dicono che è colpa del fatto di aver installato troppa roba (a me lo faceva alla prima installazione!) altri dicono di rebootare l'iPod tenendo premuto a lungo il tasto di accensione... Alla fine ho trovato la soluzione, grazie ad un'altro forum... sincronizzare l'iPod con iTunes.

Anche questo è un mistero che mi sa di grosso bug. E non mi si dica che è "normale" dover sincronizzare dopo un acquisto, perchè ora scarico quello che voglio direttamente dall'iPod e funziona correttamente senza sincronizzare...

08 agosto 2008

Iphone Mania

L'iphone mania mi ha contagiato... non è però la stessa mania che colpisce tutti coloro che stanno spendendo cifre da capogiro per accaparrarsi uno di questi gingilli, ma bensì la mania da sviluppo!!!



Ho letto un po' di articoli, e fatto qualche ragionamento... Si dice che lo sviluppatore che ha realizzato il cruciverba per iPhone (si, avete letto bene, un banale stupido C R U C I V E R B A) venda sull'AppStore copie del suo software per $1400 a settimana!!!

A questo punto, dal momento che lavoro già su una miriade di piattaforme (Windows, .Net, Java EE, Java ME, Palm OS...) che mi costa sviluppare anche per iPhone?

Bisogna considerare che Apple l'ha pensata bene per favorire gli sviluppatori...

Pensate infatti se dovete sviluppare un'applicazione per un comune cellulare: che ambiente? Java ME o Symbian... ma poi su che terminale vi concentrate? Ce ne sono una miriade di modelli.. alcuni con MIDP 2, altri con MIDP 1.x, poi c'è il casino dei display (largo, grande, piccolo, a milioni di colori, con 65.536 colori...) per non parlare delle librerie custom dei vari SDK (Nokia... Motorola...).

Alla fine scegliete una famiglia di modelli a cui dedicarvi (es. Nokia Series 60), e poi? Come lo vendete il vostro prodotto? Provate a chiamare la Tim o la Vodafone... vabbè chiamate uno di quelli che vendono le applicazioni con i numeri 899... insomma un delirio...

Invece con iPhone, c'è una sola piattaforma e un solo terminale. Vi registrate al programma sviluppatori per iPhone, pagate i vostri bei $99, e appena avete qualche applicazione decente pronta, la vendete sull'AppStore di Apple. Considerate che la Apple vi gira il 70% di royalty! Quindi se vendete una applicazione a $5 ne incassate $3,5!

Non c'è pirateria (almeno per il momento), c'è poca roba free, se vendete a prezzi onesti sull'Appstore è probabile che qualcosa di buono ne uscirà...

Unico problema... c'è bisogno di un Mac per sviluppare!!! E pure Intel (quindi niente Mac di seconda mano).

Vabbè io comunque mi sono inventato qualcosa per sviluppare sul mio fido PC (vedi la foto in alto), poi per buildare la release rimedierò un Mac Intel...

Buone vacanze, e spero di presentare presto la mia prima demo di applicazione iPhone!

P.S.
Per chi l'avesse pensato, l'iPhone NON ME LO SONO MICA COMPRATO!. Intanto vediamo se scende un po'... Per sviluppare ora non mi serve!

22 luglio 2008

Nuovo Iphone, nuovo Spot!

Non desidero acquistare il nuovo Iphone 3G più di quanto non desiderassi il vecchio Iphone 2G. Purtroppo ha una mancanza per me fondamentale... e non sto parlando degli MMS, della videochiamate, etc. etc... ma del bluetooth!!!

Lo so.. Iphone 3G ha il bluetooth, ma è possibile usarlo solo con l'auricolare... io ho bisogno anche di usarlo come modem, e per copiare file sul PC senza cavi o altro...

In conclusione caro Steve, aggiungi il Bluetooth, magari abbassa un poco il prezzo, e potrei prenderlo anche io.

Se poi si potesse fare a meno di quello s****o di ITunes... Vabbè adesso chiedo troppo.

Comunque... nell'attesa beccatevi questo nuovo Spot!

20 giugno 2008

Webservice, Axis e altre complicazioni...

Come credo di aver giù detto in un precedente post ultimamente la mia vita professionale sta ruotando sempre più intorno ai Web Service.

Sono stato chiamato da un cliente per integrare Lotus Notes con SAP... indovinate come? Ma ovvio, tramite un Web Service!

Lotus Notes è in grado di utilizzare con facilità Java, quindi utilizzando il framework Axis2 sono riuscito a farlo parlare con un Web Service esposto da SAP abbastanza facilmente.

Per prima cosa va preso il WSDL relativo al Web Service che si vuole invocare, e lo si passa all'applicativo java "wsdl2java" che è incluso con Axis2.

Una cosa del tipo: >wsdl2java -uri webservice.wsdl.

Fato questo si ottengono due belle classi java da includere nel proprio progetto (utilizzo Eclipse) con tutti i metodi del web service pronti per essere invocati come se stessimo "parlando" con una normale classe in locale.

Nel mio caso il web service si chiama MT_Test_Sincrono, e prende in input una string di esempio e la rimanda indietro con un prefisso.

Ecco un pezzetto di codice di esempio:

import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.transport.http.*;

//Qui vanno messi anche gli import per le classi create dal wsdl2java

public class prova {

public static void main(String[] args) throws Exception{

System.out.println("Prima di invocare");

//Crea la richiesta (oggetto request)
MT_Test_Sincrono_req req = new MT_Test_Sincrono_req();

//Crea il parametro
DT_Test_Sincrono param = new DT_Test_Sincrono();
param.setInput("prova");

//Aggiunge il parametro alla richiesta
req.setMT_Test_Sincrono_req(param);

//Istanza il servizio
MI_Test_SincronoServiceStub servizio = new MI_Test_SincronoServiceStub();

//Ottiene l'oggetto option dal servizio
ServiceClient serviceclient = servizio._getServiceClient();
Options options = serviceclient.getOptions();

//Crea un oggetto authenticator nel quale mette username e password
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
auth.setUsername("prova1");
auth.setPassword("prova2");

//Aggiunge alle opzioni la proprietà "authenticate"
//e l'oggetto auhtenticator appena creato
options.setProperty(HTTPConstants.AUTHENTICATE,auth);

//invoca il metodo del webservice
MT_Test_Sincrono_res res;
res = servizio.MI_Test_Sincrono(req);

DT_Test_Sincrono_res res2 = res.getMT_Test_Sincrono_res();

System.out.println(res2.getOutput());
}
}

Incredibilmente la cosa più complicata è stato capire come accedere al web service quando questo richiede una autenticazione con login e password.

In ambiente .net non avevo avuto alcun problema a fare la cosa analoga e una rapida ricerca su google mi aveva dato subito una marea di esempi.

In Java invece la cosa era apparentemente più complicata, in quanto non si trovava documentazione chiara in proposito. Per chi ne avesse bisogno questa è la procedura:

1. Ottenere un riferimento all'oggetto option del servizio
ServiceClient serviceclient = servizio._getServiceClient();
Options options = serviceclient.getOptions();

2. Creare un oggetto authenticator
HttpTransportProperties.Authenticator
auth = new HttpTransportProperties.Authenticator();

3. Inserire la login e password nelle apposite proprietà dell'authenticator
auth.setUsername("prova1");
auth.setPassword("prova2");

4. Aggiungiamo come property alle option, l'oggetto authenticator
options.setProperty(HTTPConstants.AUTHENTICATE,auth);

et voilà... il web service sarà autenticato!

12 aprile 2008

Che belli gli articoli scritti da chi non capisce nulla di informatica

La Repubblica ha colpito ancora... in un giorno di tregua "politica" dovuta alle imminenti elezioni (domani), La Repubblica se ne esce in home page con un articolo sul milionesimo virus firmato da Vittorio Zucconi.

http://www.repubblica.it/2008/04/sezioni/scienza_e_tecnologia/virus-milione/virus-milione/virus-milione.html

L'articolo scorre via abbastanza tranquillo... la sagra dell'ovvio... ma tutto sommato senza infamia e senza lode... poi però all'ultimo paragrafo decidono di non smentirsi!

----- REPUBBLICA.IT ----
La pigrizia della Microsoft, semi monopolista dei sistemi operativi, spalancò le vecchie versioni del suo Ms-Dos e poi di Windows all'irruzione di hackers, di programmatori fuori ordinanza, che si sono sempre divertiti, sovente per odio all'impero di Bill Gates, a trovare i buchi che la casa lasciava nel proprio software. Altre case minoritarie sul mercato furono costrette a essere più agili, come la Apple di Steve Jobs, e ad abbandonare i vecchi e vulnerabili sistemi operativi basando la nuova generazione di McIntosh su Unix, un linguaggio incomparabilmente più robusto e resistente. Anche queste nuove creature chiamate computer stanno imparando a vivere con le loro malattie, come noi umani, sperando che un nuovo virus non aggredisca il programma di scrittura e non ci it%#r "gf;? trw bzgh! "*^yk system error!. Reboot.
--------------------------

A parte i programmatori fuori ordinanza... che non si capisce bene cosa siano, la vera chicca è il McIntosh... scritto come un hamburger della famosa catena, e il fatto che Unix sia definito un linguaggio!!! Mi sa che queste cose le scrivono con un sistema operativo denominato Basic...

13 marzo 2008

Web Service in Java

Ultimamente mi sono dovuto occupare ripetutamente di Web Service.

Ho sviluppato client e server Web Service in .Net (C# e VB.NET), Java, ASP e Visual Basic 6.

Mi manca fare un client Web Service in Assembler 68000 e le ho veramente viste tutte!

Il lavoro più complesso ha riguardato la realizzazione di un Web Service in .Net che doveva essere consumato da SAP. "Il bello" di SAP è che decide lui come invocare il tuo web service. Tu puoi anche fare un WSDL, ma lui non se lo fila e ti passa un messaggio XML-SOAP costruito come vuole lui.

Alla fine è il server che deve adattarsi al client! Alla faccia degli standard.

Oggi ho completato un client Java che deve invocare un Web Service in .Net, e devo dire che superate le solite complicazioni di Java per compilare correttamente quello che serve, poi è veramente una passeggiata.

Ecco un brevissimo tutorial che ho preparato:

-------------------------------------------------------
Per invocare i metodi di un Web Service è necessario disporre del pacchetto Apache Axis (1.4).
Per un corretto funzionamento i jar che si trovano nella directory axis/lib devono essere inclusi nel classpath.

Una volta installato Axis, sarà necessario utilizzare la sua classe WSDL2Java per generare le classi Java che consentiranno ad un applicativo di invocare i metodi del web service come se si trattasse di una classe locale.

Al WSDL2Java deve essere passato l'indirizzo del wsdl del web service che si desidera utilizzare.

Es:
java org.apache.axis.wsdl.WSDL2Java http://127.0.0.1:8080/test/TestWs?wsdl

WSDL2Java genererà un apposito package che deve essere incluso nel progetto.
Il progetto deve far riferimento anche ai jar di Axis che si trovano nella cartelle axis/bin

Ad esempio io ho utilizzato il WSDL di un webservice denominato TestWS, il cui namespace è "http://dhanago.test.com/".

Il WSDL2Java mi ha creato un package com.test.dhanago che tramite Axis invocherà i metodi del web service in modo del tutto trasparente

Per stabilire la connessione bastano due semplici istruzioni:

com.test.dhanago.TestWsServiceLocator loc = new com.test.dhanago.TestWsServiceLocator();
com.test.dhanago.TestWs port = loc.getTestWsPort();

Una volta connesso, è possibile invocare singolarmente i diversi metodi che vengono esposti dall'oggetto port.

res = port.HelloWorld("Mario");

15 febbraio 2008

La macchina del tempo

Oggi ho preso la mia macchina del tempo personale, e sono andato a Via di Porta Cavalleggeri 65 a Roma... Ho anche scattato un paio di fotografie per voi comuni mortali che non avete questa possibilità!
L'ultimo negozio Commodore a Roma... o in Italia?




27 gennaio 2008

A proposito dei Mac che sarebbero User Friendly...

Dopo aver rimediato dall'ufficio un PowerMac G4 che andava in dismissione, ho deciso di dedicarci il fine settimana per provare a "giocarci un po' a casa". Più che altro vorrei farci partire OSX per giocherellarci un po'.

La macchina in questione ha due dischi IDE interni, su uno dei quali è installato MacOs 9.2.2, e un masterizzatore DVD IDE (non Apple). Utilizzandola con il system 9 non da alcun problema.

Per prima cosa inserisco il CD di installazione di Tiger, preso da un PowerMac G5, appare l'icona, lancio "installazione di Mac OS X" e primo problema... mi dice che non riesce a selezionare il Cd come disco di boot. Poco male, apro pannello di controllo, menù di avvio e seleziono a mano il disco di boot. Riavvio, e il CD di installazione parte senza problemi.

Ah.. scoperta.. i dischi di installazione del PowerMac G5 non vanno bene per l'installazione sul G4. Sicuramente è un limite al fatto che quei dischi vengono venduti in Bundle. OK, rimedio 4 CD della versione retail e provo con quelli.

Riparte OS 9, lancio il setup dal CD retail, e ottengo di nuovo l'errore che non riesce a selezionare il CD come disco di boot. Riapro il pannello di controllo, disco di avvio... e qui un nuovo problema: l'icona del CD di installazione è in grigio e non selezionabile. Al suo interno è indicata la presenza del System 10, ma non c'è verso di selezionarla come disco di boot.

Riavvio la macchina tenendo premuto C, per forzare il boot da Cd-Rom, ma nulla...

Riavvio la macchina tenendo premuto Option... Per chi non lo sapesse il Mac mostra una lista dei dischi di avvio disponibili e lo fa scegliere (come accadeva con gli Amiga 3.0 riavviando con i due tasti del mouse premuti) ma il CD non è nella lista dei dispositivi bootabili.

Mi viene il dubbio che il Mac abbia un firmware non aggiornato... e in effetti è così! Scarico l'ultima versione (G4 Firmware Update 4.2.8), leggo la procedura di installazione che prevede di tenere premuto un tastino vicino al reset fino a sentire uno strano Boing... vabbè lo faccio, firmware installato.

La situazione però non cambia... da quel disco non si boota... Mi viene il dubbio che il disco sia rovinato, lo metto in un PowerMac G5 (con OSX) e li però mi dice che è perfettamente bootabile. Nel menù di avvio l'icona non è in grigio.. è selezionabile. Questo ovviamente vale anche per il disco di setup del G5 (quello che sul G4 vede come bootabile ma che poi mi dice che non fa per lui).

Ummm... OK, provo con le cattive maniere... apro il G4 e scollego i due dischi IDE. Lo riaccendo e ora appare "la vecchia" icona del folder alternata da un punto interrogativo... OK, inserisco il CD di Tiger Retailel... e... Parte!!!

OK! Ora il setup è partito.. avanti.. avanti.. ops.. non ci sono dischi su cui installare (dopotutto gli IDE li ho dovuti scollegare)! Ok, poco male prendo un disco Firewire da 70Gb che non utilizzavo e lo collego al G4, il Setup Lo vede e mi consente di installare.

Mi dice che avrà bisogno di tutti e 4 i CD e di tenerli a portata... ok, non c'è problema... comincia a installare e dopo diversi minuti l'installazione sembra completata. E' arrivato all'ultimo Step e mi dice che è tutto OK e di riavviare. Che strano... non mi ha chiesto nessun CD oltre al primo... Forse me li chiederà dopo il reboot.. OK, rebooto...e ripare il CD!

Come il CD? Vuole rifare l'installazione da zero??? Vabbè, forse il boot da CD ha priorità sul Firewire... rebooto e tolgo il CD... Icona del Folder con il punto interrogativo...

Ummm... ma non aveva installato?

Stacco e riattacco il disco firewire... lo spengo e lo riaccendo... poi alla fine trovo la sequenza giusta: Scollegare il disco FW, spegnerlo, accenderlo e collegarlo acceso al G4... BINGO! Appare la schermata grigia del boot di OSX... gira un po' la rotellina... "Divieto di sosta". Ossia OSX ha un problema :-(

Il system non parte... ci deve essere qualche problema.... Provo di nuovo tutta la sequenza varie volte... compresa l'installazione, ma alla fine arrivo sempre a quel punto.

Ultimo tentativo disperato... apro il disco FW, tolgo il disco IDE, e lo collego direttamente al Mac internamente, lancio il CD, installo sul disco interno IDE e alla fine? Nemmeno boota....


Ricapitolando
1) Il CD Retail di Tiger non boota se ci sono dischi IDE collegati (partono loro), neanche premendo C e non è selezionabile come disco di avvio, è in grigio (Ma che significa???)
2) Il CD G5 di Tiger boota, ma ovviamente non mi fa installare
3) Una volta installato sul disco FW parte il boot ma si blocca subito
4) Una volta installato sul disco IDE interno non boota neanche

Dipo questa divertente esperienza (alla faccia della facilità di utilizzo), ho rimediato un'altro disco di installazione di Tiger (questa volta su DVD), ma la musica non cambia...

Chicca finale... dopo aver aggiornato il firmware, l'interfaccia ethernet del mac mi da problemi... non si collega più all'hub da 1Gbit, ma solo solo a quello da 100Mbit...

Anche questo è stranissimo... non si accende più la luce dell'hub, come se fosse rotta, la porta (e infatti pensavo fosse così), ma attaccandola ad un hub da 100, funziona benissimo. Per chi non lo sapesse, la porta ethernet di questo mac è (era?) a 1Gbit...

08 dicembre 2007

25 anni di Commodore 64

Ebbene si, sono trascorsi già 25 anni...

Questa mattina ricevo un invito del Computer History Museum di Mountain View (California) che ho visitato alcuni anni fa...

"Last Chance to Register: 25th Anniversary of the Commodore 64 -> December 10, 2007"

Interverranno:

Adam Chowaniec Chairman of the Board, Liquid Computing, Inc.
(Ex VP of Technology at Commodore and Developer of Amiga)
E chi è? :-)

William Lowe Chief Executive Officer and President, NEPS
(Ex President of the Entry Systems Division at IBM)
E la IBM che c'azzecca??

Jack Tramiel Founder and CEO, Commodore International
(Ex President and CEO of Atari Corp.)
Mitico... ma è ancora vivo o portano la mummia?

Steve Wozniak Co-Founder, Apple Computer
Pure la Apple... tutti a baciare i piedi a mamma Commodore adesso?

Temo comunque che il sottoscritto non potrà partecipare... non è proprio banale organizzare una trasferta a San Francisco in 2gg... Magari per il 50enario mi organizzo in tempo.

Girando un po' sul web le celebrazioni non mancano.

Repubblica.it posta il solito articolo scritto da un incompetente (non me ne voglia il giornalista, anche io sarei un incompetente se scrivessi... chessò.. di Calcio o di Moda):
Link all'Articolo
In 50 righe riescono a dire che il Commodore 64 aveva 64 chilobytes di potenza (senza K!), lo chiamano "console" (Haaargh!!!), che i suoi concorrenti erano il PET e il Vic-20 (Atari e Spectrum li lasciamo a casa va..), che il Commodore 128 fu un successone (eeeeee...). Tralascio qualche altra (dis)informazione. Ma i geni che scrivono questi pezzi dove li trovano?
Per fortuna la CNN ha scritto un articolo un po' più accurato:
Link all'Articolo

01 dicembre 2007

Google Maps API

Questa settimana ho dovuto lavorare ad un progetto che comprendeva un motore di ricerca di ristoranti nel mondo.

Il cliente mi aveva espressamene richiesto l'uso di Google Maps, e quindi mi sono messo a studiarlo.

Come sempre il time-to-market era abbastanza stretto... 3 giorni per fare tutto: Analisi, sviluppo, test....

Ho piacevolemente scoperto che utilizzando le Api di Google, con poche righe di Javascript è facile far apparire una mappa, scegliere il livello di zoom, centrarla su una zona specifica, e impostare dei marker in determinate locazioni. Non male!

Il problema più grosso è dato dal fatto che sia la centratura, ma soprattutto i marker, vanno indicati mediante coodinate, ossia latitudine e longitudine.

Esiste un oggetto chiamato geocoder, che consente di ottenere le coordinate a partire da un'indirizzo scritto in testo (es. Via Savoia 84, 00198 Roma) ma per stessa ammissione di Google è abbastanza lento (qualche frazione di secondo) e soprattutto pesante da elaborare sul server di Google, tanto che limitano 5.000 interrogazioni al giorno per ogni sito.

L'idea è stata quindi quella di scrivere un software che partisse da un database di indirizzi e interrogasse ciclicamente Geocoder in modo da ottenere tutte le coordinate. Per farlo funzionare correttamente ho dovuto utilizzare ASP e Javascript, in una sorta di applicazione web automatica: l'asp costruiva la pagina contenente il javascript, e quest'ultimo si interfacciava con le Api di Google per ottenere le coordinate. Queste venivano passate tramite GET ad una pagina che si occupava di salvare i dati in un DB, e avanti così per 3.000 indirizzi.

L'elaborazione complessiva ha impiegato qualche ora, con qualche interruzione dovute a caratteri "strani" nei nomi dei ristoranti, ma alla fine ho ottenuto quello che volevo: una lista di coordinate pronte da sfruttare.

A quel punto il più era fatto, è bastato scrivere un piccolo motore di ricerca che consentisse di ricercare Paese, città e ristorante per aggiornare di conseguenza la mappa. Niente male!

Volete vedere il risultato? ristoranti.asp