Blogs
Android

Stamattina mi sono ritagliato un paio d'ore per provare l'applicazione della settimana, ovvero Android.
Mi sono dunque scaricato l'sdk per linux. Google segnala che l'sdk funziona solo per architetture i386 quindi mi sono un pelo spaventato, ma alla fine ho visto che gira bene anche sulla mia Ubuntu Gutsy x86_64.
Quello che ho voluto provare è scrivere il classico HelloWorld senza usare eclipse.
Android infatti viene rilasciato anche con un comodo plugin per eclipse che vi guida dalla scrittura al deploy sull'emulatore.
Io non uso eclipse, come sempre il buon vi e la bash bastano e avanzano. Anzi permettono di capire meglio come funziona il tutto.
Una volta scaricato e scompattato l'sdk, nella directory tools/ si trovano un po' di programmi da lanciare da riga di comando.
Il primo da usare è uno script python che crea la struttura delle directory e lo stub della classe che conterrà il codice scritto:
$ ./activityCreator.py --out HelloGtrev it.gtrev.android.hello.HelloGtrevAdesso andiamo ad editare la classe generata:
$ cd HelloGtrev/src/it/gtrev/android/hello/
$ gvim HelloGtrev.javaLa classe inialmente si presenta così:
package it.gtrev.android.hello;
import android.app.Activity;
import android.os.Bundle;
public class HelloGtrev extends Activity
{
/** Called with the activity is first created. */
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main);
}
}Adesso è molto semplice aggiungere il nostro codice:
package it.gtrev.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloGtrev extends Activity
{
/** Called with the activity is first created. */
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
// il codice per visualizzare il nostro hello world
TextView tv = new TextView(this);
tv.setText("Ciao Mondo! (anche dall'Italia)");
setContentView(tv);
}
}A questo punto dobbiamo compilare la classe. Per fare questo è sufficiente usare ant e il comodo build.xml creato per noi dallo script python. Ant creerà nella directory bin/ un file chiamato HelloGtrev.apk. Questo file contiene l'applicazione.
Per provarlo ci affidiamo all'emulatore contenuto sempre nella directory tools:
$ ./emulator &
Il comando precedente lancia l'emulatore (vi apparirà un telefonino che assomiglia tanto ad un treo); ora non ci resta che copiare l'applicazione con il comando adb presente sempre nella directory tools:
$ ./adb install HelloGtrev/bin/HelloGtrev.apk

Il risultato lo vedete qua sopra.
- gtrev's blog
- 6 comments
- Read more
- 1291 reads
North East code monkey

"Sua Maestà, la gente vuole un post!"
"E dateje na briosc!"
Siccome non voglio fare la fine di Maria Antonietta eccovi qui un bel post.
Non vi tedio con le pare dovute al superlavoro, vi linko subito l'evento della settimana ovvero il concerto dei decomplicatio al Bikers pub di Salgareda il prossimo sabato.
Io e Manu ci saremo e faremo il tifo per Petterson, gUIDO e Chiara. Se volete venire gUIDO ha detto che offre la birra a tutti (beh quasi...)
Tra poco aprirò una nuova sezione dedicata alla nostra futura casetta. Lì raccoglierò le peripezie di un ottuso programmatore alle prese con un mondo inesplorato e ricco di insidie: l'edilizia.
Eppoi la programmazione ottusa: esiste un video di una mia presentazione fatta al jug che il buono Lucio ha pubblicato su google.
Se siete interessati al meccanismo di validazione di Spring e Parancoe (o se volete vedermi in tutta la mia bellezza lol) punta il vostro browser a questo indirizzo.
Vorrei fare tante altre cose per i miei amici del Jug, ma questo è un periodaccio, spero da Gennaio di riuscire a ritagliarmi qualche oretta.
- gtrev's blog
- 15 comments
- Read more
- 1232 reads
Sagra di Sovernigo 2007

Update 2007-10-20 12:42:00: attenzione, l'incontro è spostato a domenica 21 alle ore 20:30
Come mi ha ricordato il buon gUIDO, anche quest'anno si celebra il grande evento mediatico che prende il nome di Sagra di Sovernigo (nota ai più col nome di sagreta).
Come certo avrete capito, in questo periodo mi sto dibattendo nel guano lavorativo.
Quindi il vostro supporto morale (comprensivo di ombretta) sarebbe di molto gradito.
Ricordo che la sagreta è famosa per il mix infernale catagne + torboin che mette in crisi il vostro stomaco e vi fa provare nuovi sistemi di propulsione, chiedete a Mariano se non credete a me!
L'appuntamento per tutti è dunque a sabato 20 Ottobre a Sovernigo di Paese ore 20:30 (come quando eravamo alle medie).
Accorrette numerosi e agguerriti!
- gtrev's blog
- 12 comments
- 1521 reads
Pranzo di pesce nel caorlotto
Questo post è ad uso e consumo di Manuela che non può leggere la posta e quindi non sa qual è il menu del pranzo di pesce di domenica prossima:
Antipasto:
Folpetti
Canoce
Cozze
Vongole
Primi:
Farfalle con coda di rospo e olive
Gnocchetti al gransoporro
Sgroppino
Secondi:
Misto mare con polenta
Grigliata mista ai ferri della casa
Contorni:
Patate
Insalata mista
Dolce sorpresa
Altro:
Vino, acqua, caffè e correzzioni comprese.
Ringrazio anticipatamente era77 per la splendida organizzazione, che non esiterei a definire Filini ;)
- gtrev's blog
- 5 comments
- 1415 reads
Arriva gutsy
Manca poco ormai al
- gtrev's blog
- 14 comments
- 1175 reads
Parancoe: i controller
Scrivo qui un breve tutorial su come definire un controller per Parancoe. A breve una versione in inglese sul sito del progetto (Lucio te lo prometto ;) )
Update 2007-10-02 12:55:00: If you want the English version of this tutorial follow this link
Definizione
Per definire un controller in Parancoe i passi da compiere sono due:
- scrivere la classe del controller
- definire in parancoe-servlet qual è il package nel quale il controller si trova.
Supponiamo di dover creare un controller che gestisca le chiamate alle url del tipo "/admin/*.html". Definiamo la classe AdminController in questo modo:
package org.parancoe.basicWebApp.controllers;
public abstract class AdminController extends BaseMultiActionController {
...
}BaseMultiActionController è una classe di Parancoe che estende MultiActionController aggiungendo utilità per il logging e la gestione degli errori.
Una volta definito il controller, per agganciarlo al corretto url è sufficiente mettere l'annotazione @UrlMapping("mia_url") in questo modo:
package org.parancoe.basicWebApp.controllers;
@UrlMapping("/admin/*.html")
public abstract class AdminController extends BaseMultiActionController {
...
}Autodiscovery
A questo punto è sufficiente inserire la seguente riga nel file parancoe-servlet.xml:
<define-controllers
basePackage="org.parancoe.basicWebApp.controllers"
parent="abstractController" />Parancoe si occuperà di andare ad analizzare i controller definiti in basePackage e a caricarli nel contesto di Spring. Inoltre registrerà il mapping definito dall'annotazione.
Le annotazioni
Le annotazioni che si possono utilizzare per definire il mapping sono tre:
- @UrlMapping: riceve una stringa che contiene la definizione di un'url;
- @MultiUrlMapping: premette di definire più mapping per lo stesso controller
- @DefaultUrlMapping: questa annotazione non prevede alcun parametro e serve ad indicare a Parancoe di usare il metodo di default per la definizione del mapping.
Per quanto riguarda l'ultima annotazione, il metodo di default definisce il mapping a partire dal nome del controller: così AdminController mapperà su /admin/*.html, mentre MioFantasticoController su /mio/fantastico/*.html.
(e adesso forse è più chiaro a cosa servisse il metodo uncamelize che avevo descritto qualche tempo fa).
Alcune note finali
E' ancora possibile definire i propri controller all'interno del file parancoe-servlet.xml.
Si deve però avere l'accortezza di usare come id il nome completamente qualificato del controller, così da sovrascrivere la definizione costruita dall'autodiscovery.
Happy parancoing!
- gtrev's blog
- Aggiungi un commento
- Read more
- 1088 reads
Free Burma
<!--
Anche io oggi indosso una maglietta rossa.
Help the People of Burma (Birmania) — Post this Meme on Your Blog!
Note: This is a new kind of online protest that uses blogs to spread a petition globally. To participate, just add your blog by following the instructions in this blog post.
This not an issue of partisan politics, this is an issue of basic human rights and democracy. Please help to prevent a human tragedy in Burma by adding your blog and asking others to do the same.
By passing this meme on through the blogosphere hopefully we can generate more awareness and avert a serious tragedy. As concerned world-citizens this something we bloggers can do to help.
How to participate:
1. Copy this entire post to your blog, including this special number: 1081081081234
2. After a few days, you can search Google for the number 1081081081234 to find all blogs that are participating in this protest and petition. Note: Google indexes blogs at different rates, so it could take longer for your blog to show up in the results.
THE SITUATION IN BURMA AND WHY IT MATTERS TO ALL OF US
There is no press freedom in Burma and the government has started turning off the Internet and other means of communication, so it is difficult to get news out. Individuals on the ground have been sending their day-by-day reports to the BBC, and they are heartbreaking. I encourage you to read these accounts to see for yourself what is really going on in Burma. Please include this link in your own blog post.
The situation in Burma is increasingly dangerous. Hundreds of thousands of unarmed peaceful protesters, including monks and nuns, are risking their lives to march for democracy against an unpopular but well-armed military dictatorship that will stop at nothing to continue its repressive rule. While the generals in power and their families are literally dripping in gold and diamonds, the people of Burma are impoverished, deprived of basic human rights, cut off from the rest of the world, and increasingly under threat of violence.
This week the people of Burma have risen up collectively in the largest public demonstrations against the ruling Junta in decades. It’s an amazing show of bravery, decency, and democracy in action. But although these protests are peaceful, the military rulers are starting to crack down with violence. Already there have been at least several reported deaths, and hundreds of critical injuries from soldiers beating unarmed civilians to the point of death.
The actual fatalities and injuries are probably far worse, but the only news we have is coming from individuals who are sneaking reports past the authorities. Unfortunately it looks like a large-scale blood-bath may ensue — and the victims will be mostly women, children, the elderly and unarmed monks and nuns.
Contrary to what the Burmese, Chinese and Russian governments have stated, this is not merely a local internal political issue, it is an issue of global importance and it affects the global community. As concerned citizens, we cannot allow any government anywhere in the world to use its military to attack and kill peacefully demonstrating, unarmed citizens.
In this modern day and age violence against unarmed civilians is unacceptable and if it is allowed to happen, without serious consequences for the perpetrators, it creates a precedent for it to happen again somewhere else. If we want a more peaceful world, it is up to each of us to make a personal stand on these fundamental issues whenever they arise.
Please join me in calling on the Burmese government to negotiate peacefully with its citizens, and on China to intervene to prevent further violence. And please help to raise awareness of the developing situation in Burma so that hopefully we can avert a large-scale human disaster there.
- gtrev's blog
- 2 comments
- 1657 reads





9 weeks 1 giorno ago
9 weeks 2 days ago
9 weeks 2 days ago
9 weeks 3 days ago
13 weeks 6 days ago
19 weeks 1 giorno ago
19 weeks 1 giorno ago
19 weeks 1 giorno ago
21 weeks 22 hours ago
21 weeks 1 giorno ago