Uscire da Java

Standard

No, non sto pianificando di scappare da un’isola indonesiana ma da un linguaggio di programmazione. Java è facile da imparare, almeno così è stato per me rispetto al C, e su Java ho fondato il 99% di quel che so ora, compreso una buona carriera universitaria.

Ma quando parte un nuovo progetto, una startup, un qualcosa di innovativo, quasi mai si sceglie Java come linguaggio / piattaforma. Ci sono centinaia di concorrenti, tra i blasonati Python e Php lato server, passando per gli innovativi Scala, Ruby on Rails, Groovy, e poi per le tecnolgie lato client potremmo scrivere un’elenco sterminato tra html, css, javascript, jquery, e i vari framework a contorno. E poi ci sono i dispositivi mobile. Quante vite servono per imparare tutte queste cose?!

Qualcuno sarà tentato di dire “ma in base a quello che ti serve usi il linguaggio adeguato”, si però se uno conosce bene solo Java, userà Java. Quello che vorrei fare io invece è approcciare qualcos’altro, perchè mi sono un po’ stufato. Sto valutando l’idea di realizzare qualche altro progetto in qualche altra cosa. Ma quando lo trovo il tempo?

Se il futuro del Paese fosse legato ad Internet

Standard

Ogni volta che accendo la televisione sentiamo sempre di fabbriche che chiudono, posti di lavoro che si perdono, proteste, scioperi e manifestazioni. “Il lavoro, il lavoro!” Gridano i manifestanti, GIUSTAMENTE, ma ciò che chiedono ormai appartiene a un’altra epoca.

Il futuro dell’Italia non è nelle automobili. Un settore che richiede continui aiuti statali, in un momento storico in cui una auto costa decisamente troppo, disfarsi della vecchia costa altrettanto e soprattutto chiunque ha già un’auto, non capisco come si possa continuare a riporre tanta fiducia in questo settore. Andava bene 30-40 anni fa, in una Italia post bellica che produceva il bene del futuro. E ora?

La maggiore economia del mondo basa tutto il suo successo sull’altissima tecnologia. Le 4 maggiori compagnie americane, conosciute in tutto il mondo, sono Apple, IBM, Google e Microsoft. Senza i loro servizi probabilmente ora staremmo ancora vivendo di zappe e cavolfiori.

Le aziende americane nascono da subito come multinazionali, e se anche prima offrivano servizi legati all’hardware, oggi sono tutte orientate verso il Web. Internet (frase fatta) ti permette di vendere i tuoi servizi a tutto il mondo, già dal Giorno Zero della messa online… questo l’hanno capito bene tutti quelli che si sono inventati le “nuove professioni”, e paradossalmente non l’hanno capito i nostri padri (sfortuna vuole che ci governino loro).

Ora, noi abbiamo questo enorme gap tecnico con gli Stati Uniti e anzi da soli non potremmo mai competere con loro. Le tasse e la burocrazia schiaccerebbero ogni idea brillante, e poi vuoi metterti contro il vero limite dell’Italia? Ma voi lo sapete qual è il vero limite ? Internet mobile fa schifo! Se io dovessi fare un’app che basa tutto il suo business sull’idea che l’utente è sempre connesso, mi ritroverei a combattere col fatto che in alcune zone d’Italia non c’è manco la rete GSM! Con un segnale che casca non appena entriamo in un edificio. Che soldi voglio ricavarci da una linea così?

Dunque se vogliamo provare a seguire la strada tracciata dai grandi player del mercato, dobbiamo un pò scrollarci di dosso l’idea che lo stato deve aiutare le aziende perchè l’unico aiuto utile è di migliorare le infrastrutture, abbassare le tasse e metterci in condizione di essere competitivi COL MONDO INTERO. You can’t think local anymore.

E ora via per una nuova settimana di lavoro!

3 mesi di MacBook AIR

Standard

Ho ricevuto per email questa domanda:

Ciao,

sono capitato per caso sul tuo blog ed ho visto che parlavi del Mac Air. Se ti posso disturbare un secondo, da programmatore e linuxaro quale mi pare di capire sei, ti volevo chiedere se il Mac Air vale la spesa o no. Mi serve un pc leggero da portare in giro e che possa usare per fare tutto. Tu sei contento della spesa sostenuta o secondo te è meglio rivolgersi ad altri ultrabook ?

ciao
Fabio

A questa domanda ho risposto in maniera assolutamente personale, ma siccome potrebbe essere utile anche per qualcun altro, eccola qui. Per la cronaca, ecco l’articolo in cui parlavo di quando ho comprato l’Air.

Ciao!

Sono un programmatore e nell’animo sono ancora linuxiano, e allora perché ho comprato un mac ? e soprattutto un macbook air?

A febbraio di quest’anno mi sono laureato e a aprile ho trovato lavoro. Il mio vecchio Dell, dopo 5 anni di onorato servizio, non riusciva neanche più a caricare youtube (…) senza bloccarsi. Contemporaneamente ho trovato un lavoro dignitoso che mi avrebbe potuto permettere di pagare il primo computer di tasca mia.

Nei due mesi in cui ero in cerca di lavoro, ho letto tantissime offerte per programmatori iOS. C’erano anche offerte Android, ma molte meno (perché essendo android libero, il mercato offre molti più programmatori android, e quindi poche offerte di lavoro libere). Invece il mondo dei programmatori iOS ha ancora margini di assunzione perché sono pochi quelli che possono imparare a programmare per questa piattaforma.

Alla fine ho dunque pensato che il mio prossimo computer  sarebbe dovuto essere un mac, per non pormi limiti casomai un giorno volessi imparare iOS, ma siccome potevo permettermi anche di pagarlo a rate, ho preso un AIR. Ho passato i tempi dell’università portandomi questo computer avanti e indietro, e un computer di 3 kg pesa molto. Mio padre invece già usava l’air per lavoro e diceva che quasi non lo sentiva.

Siccome viaggio molto per andare a lavoro, circa 45 minuti per arrivare a Napoli, pensavo di poterlo usare magari per studiare nell’autobus, per portare avanti alcuni progetti, etc. La verità è che dopo 8 ore di lavoro non hai nessuna voglia di tirarlo fuori, né di fare alcunché.  Insomma, avrei potuto prendere un macbook normale dato che comunque lo tengo sempre a casa. In effetti quelle 600 € di differenza ora mi avrebbero fatto comodo. Pazienza!

Dal punto di vista dello sviluppo software, la prima cosa che ho fatto sul macbook air è stata d installare Virtualbox con Ubuntu e Windows. Nella mia brevissima vita di programmatore ho imparato che su linux si devono fare delle cose, su windows altre, e su mac altre ancora. Quindi occorre averli tutt’e tre anche solo per fare dei test. Rimpiango delle cose di linux, ad esempio l’incredibile personalizzazione che avevo, gli automatismi raggiunti con la shell, etc. Ma siccome mac accetta quasi tutti i comandi unix, mi sto riscrivendo poco a poco tutte le utility che mi servivano (una su tutte, uno script per il backup).

Che dire, si impara tanto cambiando. Se puoi, fallo anche tu. Prova a compilare un programma e a farlo girare sui tre sistemi… un programma di media grandezza (che ha bisogno di variabili di sistema, di scrivere su disco, di creare un installer…) si declina in modo diverso. Saperli tutt’e tre è solo un vantaggio.

Che dire più? Aspettiamo windows 8 (sono curioso di provarlo), ma viva l’open source, viva la conoscenza.

Fammi sapere che farai!

Ciao!

 

Social Week #1

Standard

Con questa serie di Post voglio condividere, ogni settimana, le notizie più fiche della rete. In genere sono cose che ricondivido a mia volta sui social network. 

  • Quanti alieni ci sono nell’universo? - un po’ di calcoli matematici per capire se davvero potremmo trovarci davanti a una popolazione aliena che è capace di inventare la radio e di trasmetterci un segnale di vita… Molta fantascienza e qualche fanta-mah
  • Think twice before accepting a job counteroffer (in inglese) – se un datore di lavoro vi fa una contro proposta, è perché pensa a quanto può essere costoso sostituirvi. E ricorderà per sempre che avete provato a cambiare lavoro. Insomma, non risolverà i problemi per cui volevate andare via, né migliorerà il vostro rapporto.
  • Tutti i numeri del “concorsone” mondo della scuola in subbuglio – Un po’ credo che il mondo dell’insegnamento sia perfetto per me, un po’ credo che tutte queste lungaggini burocratiche sono solo una grande rottura di scatole. Ma se fanno un concorso e io posso parteciparvi, perchè non provarci?

E con questo mi fermo al 27/08/2012… peccato, c’erano articoli interessanti proprio il 26/08 ! Alla prossima settimana ;)

il social gaming targato Mangatar

Standard

Ci siamo! Ancora qualche ora e sul web non si parlerà che di Mangatar, il primo social game italiano basato su avatar virtuali in html5 (uff… è stata dura trovare una categoria in cui si era primi, senza andare su Wikipedia)!

Ho avuto la fortuna di provarlo in anteprima, anche perché sono loro amico e poi mi azzecco facilmente ai giochi on line. Non vi dico che la prima ora l’ho passata a trovare bug che mi si presentavano manco fossero banane in un film di Bud Spencer… ma i prodi Enrico e Raffaele ce l’hanno messa tutta e hanno risolto ogni mia lamentela, compresa quella di farmi giocare gratis per un bel po’ di futuro!


Dunque, cos’è Mangatar? Fin’ora era un motore di generazione di avatar virtuali. Si potevano creare degli avatar che esprimevano la tua personalità o il tuo stato d’animo, o realizzare degli avatar fighi tipo zorro, frankenstein, etc. Bello bellissimo, ma dopo 5 minuti eri già su un altro sito perch’è t’eri stufato.

Quelli di Mangatar invece avevano già previsto tutto dall’alba dei tempi: gli avatar generati (e votati dalla comunità) diventano delle carte da giocare contro altri utenti, sulla falsa riga dei giochi di carte dei primi anni 2000 (ricordate le carte di Yughi oh?).
Il gioco per ora partirà in maniera semplice semplice, permettendoti di sfidare gli amici e i non amici in un crescendo di battaglie. Dopo ogni sfida si vincono dei coins utili per potenizare i propri mangatar, e questi coins sono proporzionali al livello epico della sfida.

Il gioco verrà poi strutturato in alleanze, in modo tale che ci si potrà sfidare in gruppi e darsele di santa ragione, finchè non vi sarà un’alleanza che riuscirà a portare dei mangatar al massimo livello (io ho suggerito 150, ma poi decidono loro). L’alleanza che vince verrà ricordata in saecula saeculorum e per loro ci potrebbero anche essere ricchi gadget (questa è una mia idea, non prendetevela con me se vincendo non vi arriva niente! Ma siccome Mangatar distribuisce gadget in tutti i luoghi e in tutti i laghi…).
Tecnicamente, vi posso dire che il gioco essendo in html5 è compatibile anche con i telefonini. Ovviamente non si riesce a giocare granchè bene dato che il telefono è piccolo ma qualcosa sono comunque riuscito a farlo, ad esempio ho fatto partire uno scontro, ma il settore mobile è un’altro settore strategico per loro che sarà presto sviluppato. In breve, sul server di prova composto da 4 giocatori sono diventato il leader indiscusso e chiunque ha osato sfidarmi le ha prese di santa ragione.


Dalla regia mi dicono che ci sono ancora piccoli dettagli tecnici da risolvere (integrazione con paypal), dunque dovremo aspettare massimo un giorno… Io sto già a rota!

Vi aspetto su mangatar per darcele di santa ragione!

p.s. Cari autori e utenti di mangatar, io mo’ esco, se ho commesso qualche errore o imprecisione nell’articolo (che esprime i miei punti di vista), scrivete nei commenti eventuali correzioni … Grazie! 

Risparmiare batteria su Android con Llama

Standard

E’ tornato il Galaxy Nexus dall’assistenza! Festeggiamo il lieto evento con una piccola mini-guida sulla configurazione di Llama, un programma che permette di eseguire azioni al verificarsi di alcune condizioni. Questa app l’ho sperimentata su Android 4 e su Android 2.3, quindi suppongo che dovrebbe andare bene ad una lunga lista di telefonini.

Cosa faremo per ottimizzare la batteria del nostro telefono, e per migliorare un po’ l’usabilità del telefono stesso:

  • quando ci troviamo a casa, attiva automaticamente wifi e bluetooth (ho un impianto stereo bluetooth e uso il telefono per ascoltare la musica). Qui l’ottimizzazione della  batteria entra in gioco perchè il wifi consuma molta meno energia del 3G/2G. Ovviamente, uscendo dalla zona Casa, disattiva queste impostazioni. 
  • Se si è fuori casa, dopo 7 minuti che il display è spento, stacca internet 3G/2G. Quando il display si accende, attiva subito internet cellulare. In questo caso stiamo dicendo al telefono che quando non guardiamo il telefono per un lungo periodo di tempo questo deve disconnettersi da internet, per poi riaccendere subito la connessione se lo attiviamo.
  • Piccola chicca finale: se il telefono è in chiamata, attiva il bluetooth, e se non lo è, staccalo se non connesso. Questa regola l’ho impostata perchè ho un vivavoce bluetooth in  macchina e se ricevo una telefonata il vivavoce si collega automaticamente. In questo modo non attivo il bluetooth a mano e non devo disabilitarlo una volta sceso (ci pensa Llama).

Llama nasce come un programma che cambia la suoneria quando ci troviamo a casa o al lavoro, e per capire  dove ci si trova non utilizza il GPS (che consuma tanta batteria) ma controlla a quali antenne telefoniche siamo connessi. Iniziamo proprio da qui: apriamo la scheda “Zone” e teniamo premuto su “casa“, selezionando poi “inizia addestramento zona“. Ovviamente fatelo quando siete a casa, così da poter impostare facilmente tutte le  varie antenne che il telefono contatta quando siete lì.

Adesso spostiamoci in “Eventi”. Per semplicità vi consiglio di eliminare, tenendo sempre premuto, gli eventi che sono già presenti in questa lista. Quando sarete abbastanza bravi, potrete configurarli di nuovo come vorrete voi.

Creiamo il primo evento descritto in precedenza:

  • clicchiamo sul + in basso a destra. Si aprirà la scheda “Llama – nuovo evento”. Selezionate  “Event name and group”. Dategli come  nuovo nome “Entrando a casa” e come gruppo “casa“. Premete sul tasto “Aggiungi condizione”  e selezionate “Entra/In Zona” e selezionate “Casa“. Ora premete “Aggiungi Azione” e selezionate “Wifi” e poi “Wifi attivo (per almeno 5 minuti)“. Premete ancora sul tasto “Aggiungi Azione“, selezionate “Bluetooth” e poi “Bluetooth Attivo (per almeno 5 minuti)“. Fatto :) potete  premere il pulsante indietro.
  • Adesso creiamo l’evento contrario che si attiva quando usciamo dalla zona casa. Creiamo un nuovo  evento cliccando sul + in basso a destra. Diamogli il nome “Uscendo  da casa” e come gruppo “casa“. Premiamo il tasto “Advanced” e selezioniamo “Delay Event“, impostiamo “Delay Minutes” a 10 minuti,  e poi selezioniamo “Cancel delay if false“. Queste ultime impostazioni servono perchè può capitare che il telefono veda per un istante un’antenna che non ha mai visto prima e si disconnetta da tutto, per evitarlo gli diciamo di disconnettersi dopo 10 minuti che non vede più le antenne di casa nostra. A questo punto selezionate “Aggiungi condizione” e selezionate “Esci da zona” e poi “casa“, aggiungete le azioni “Bluetooth” e poi “Bluetooth non attivo (se non collegato)“. Per la wireless, aggiungete l’azione “Wifi” e poi “Wifi non attivo (se non collegato)”.

Fatto! Bel casino eh? Una volta capita la logica di queste azioni, le personalizzerete come meglio credete. Andiamo ad impostare la vera Battery Saver:

  • Creiamo un nuovo evento selezionando il+ in basso a destra. Chiamiamolo “schermo acceso” e scriviamo nel nome del gruppo “display“. Ora Aggiungiamo la condizione “Screen on/off”  e poi “screen on“. Aggiungiamo le azioni  “Dati cellulare” e poi “dati cellulare attivo“.
  • Creiamo l’evento contrario sempre cliccando sul +, chiamiamolo “schermo spento” e scriviamo nel nome gruppo “display“. Aggiungiamo la condizione “screen on/off” e poi “screen off“. Aggiungiamo le azioni “Dati cellulare ” e poi “dati cellulare disattivo“. Ma non è finita qui: clicchiamo su Advanced e selezioniamo “Delay Event“, “Delay minutes” e impostiamolo  a 7 minuti,  e  poi “cancel delayed if false“.

Anche questa è andata! L’ultima regola ora dovreste essere abbastanza bravi da impostarla da sola, anzi vi sfido: chi di voi me la scrive nei commenti?

Saluti a tutti! God save the batteries!

Samsung Galaxy Nexus: spegnimento dopo lo standby

Aside

Da  quando ho comprato il Samsung Galaxy Nexus non ho avuto nessun rimpianto. Un telefono che vale i soldi spesi, che spesso ha sostituito il computer per le operazioni più complesse, che mi ha fatto vedere film, siti, mi ha fatto chattare con amici e fidanzata, e col quale sto imparando i rudimenti della programmazione Android.

2-3 giorni fa, tuttavia, ho collegato il telefono a una presa usb difettosa che avevo in macchina. La mia intenzione era quella di ricaricare il telefono che era a batteria 0, ma non ci sono riuscito e quando sono tornato a casa l’ho immediatamente collegato ad un caricabatterie di casa.

Sicuro di averlo acceso, mi sono messo a lavorare al pc come al solito. Dopo un paio d’ore mi telefona la mia ragazza a casa dicendo che sono irragiungibile: vado a controllare ed in effetti il telefono era spento. Lo riaccendo, faccio un po’ di prove, e scopro questo orribile difetto.

Il telefono in pratica si spegne (o blocca) quando va in stand-by, ossia quando il display si oscura. La cosa tuttavia non accade sempre, ossia il display deve essere spento un minuto prima che il telefono si blocchi. Ovviamente l’unica cosa che è possibile fare è di premere a fondo il pulsante di accensione, e questo attiva la procedura di accensione normale.

Una soluzione a questo problema non ce l’ho. Ho impostato la luminosità del display a 10 minuti (il massimo) per non perdermi i messaggi. Periodicamente riaccendo il telefono per controllare di non aver perso chiamate o messaggi.

Per ora sospetto che sia la batteria, infatti domani andrò in giro a vedere se qualche negoziante mi fa fare un test con un’altra batteria di riserva che nel caso la ricompro. So che mi spetterebbe di diritto la sostituzione, ma  inviarla al centro di assistenza mi costerebbe uguale (stando ai prezzi di ebay).

Altri effetti collaterali notati:

  • Premere contemporaneamente Vol+, Vol- e Power mi dovrebbe portare nel menù per scegliere se ripristinare le impostazioni originali del telefono. A me invece quella schermata compare solo finchè ho almeno un tasto premuto, non appena le lascio uno la schermata scompare e il telefono si spegne, rendendomi impossibile accedere ai sottomenù.
  • Il caricamento del telefono via USB sembra bloccare il telefono, infatti quando lo ricarico non riesco ad  accenderlo nè vedo l’immagine del caricamento in corso.
  • Nel menù Impostazioni – Batteria, anche se la batteria è al 90 %, il sistema dice “quasi scarica”.

Oggi, per un paio d’ore, il telefono sembrava funzionare correttamente quando ho impostato il face unlock come modalità di sblocco. Dopo un po’ questo escamotage non ha funzionato più.

Ne sapete qualcosa? Idee? Cosa mi conviene fare? In giro ho letto di tutto, compreso persone che hanno problemi lievemente diversi dal mio. In particolare vorrei sapere se fosse possibile resettare la batteria in qualche modo…

Voip e Fax incompatibili?

Aside

Salve belli!

Di questi tempi ho dovuto fare manutenzione in ufficio perchè un fax non ha più voluto saperne di funzionare. In quell’ufficio abbiamo una linea VOIP ma utilizziamo un router Fritz!Box (ne avrete sentito parlare…) quindi abbiamo una sorta di compatibilità con i telefoni “analogici”.

Il Voip permette di risparmiare un sacco di soldi ma utilizza la connessione a internet per tutte le telefonate, e a seconda della qualità della vostra linea ADSL, può risultare in un ingombro più o meno vasto della banda. Tutta via con le linee ADSL moderne il problema non si pone (la banda è tanta!) e in un ufficio non si consuma banda per scaricare musica, “almeno spero”.

Inoltre il Voip è migliorato molto, tant’è che si usano algoritmi di compressione della voce capaci di ridurre i dati trasferiti fino a pochi kB al secondo.. In pratica adesso è utilizzabile anche sulle reti cellulari (se non le bloccassero deliberatamente…)

Il problema è che questi algoritmi di compressione sono ottimizzati per la voce (attenzione: il link porta ad una azienda che produce soluzioni fax, quindi cercheranno di vendervi il loro software)  e ciò che viene ricevuto non è ciò che abbiamo mandato, ma qualcosa di comprensibile all’orecchio umano. Diverso è il discorso per i fax, che utilizzano una trasmissione simil-digitale su una linea analogica (quanta nostalgia per quei trilli con il vecchio modem 56k… erano gli albori di internet…)

L’algoritmo di compressione del Voip danneggia gravemente i segnali scambiati dai fax, impedendo che l’invio o la ricezione vadano a buon fine. Vi sono un paio di alternative a tutto questo:

  • usare una linea fissa esterna (e non voip)
  • settare il proprio router per non usare algoritmi di compressioni “invadenti” – questo minimizza la possibilità di errore, ma il problema si può sempre presentare.
  • Usare standard poco conosciuti o configurazioni particolari.
Stavo per comprare un nuovo fax (pensando che fosse rotto) quando ho trovato su internet tutto quello che vi ho scritto in questa pagina. La prima opzione rende di fatto inutile l’abbonamento voip, quindi cercherò di evitarla finchè possibile. La seconda è quella che proverò da domani, sperando di non sentire troppe lamentele dalle ragazze dell’ufficio. La terza via è quella che nel prossimo futuro cercherò di applicare grazie al mio Fritz!Box (che ha un’impostazione molto nascosta sui fax in voip – cosa succederà attivandola?)
Un saluto dal vostro tecnico di fiducia :)
P.s. se a distanza di qualche tempo non scrivo come ho risolto il problema e siete curiosi, chiedete nei commenti che rispondo.