POESIA per iPad in attesa di approvazione

POESIA, la storica rivista mensile internazionale di cultura poetica diretta da Nicola Crocetti, in edicola da quasi venticinque anni e la più diffusa in Europa nel suo genere, presto sarà su iPad!

Oggi infatti ho inviato ad iTunes Connect per la revisione POESIA per iPad, frutto della collaborazione tra la Fondazione POESIA Onlus e il sottoscritto.

POESIA per iPad sarà disponibile come app gratuita, arricchita da un fantastico numero speciale, creato appositamente. Tutti i numeri dal 2006 ad oggi e quelli di prossima pubblicazione saranno acquistabili dall’app stessa ad un prezzo scontato del 40% rispetto alla versione cartacea!

Aggiornamento 21/9 ore 21.47
L’app è in revisione!

Posted in iOS | Tagged , , | Leave a comment

Fastweb, la cura del cliente…

Lunedì 25/7
Scopro sul sito di Fastweb che esiste una nuova offerta commerciale: Joy. Solo Internet, IP pubblico illimitato, 19 €/mese per un anno, poi 27 €/mese.
Perfetto! Esattamente quello che mi serve… Adesso pago 35 €/mese per Internet e telefonia (che non ho mai usato!); per l’IP pubblico, dovrei pagare 4 €/giorno (1.460 €/anno!!!).
Sono tra i fortunati che hanno la fibra.

Ore 17.01
Inizia la saga: chiamo il 192 193 e chiedo di poter cambiare piano. Risposta “E’ tecnicamente impossibile; l’unica cosa che può fare è disdire il contratto attuale e sottoscriverne uno nuovo”.
Incavolato, metto giù; che cavolo di risposta è? Inoltre, non voglio rischiare di stare giorni senza connessione.

Ore 17.13
Richiamo e chiedo se posso fare il contrario, ossia sottoscrivere il nuovo prima di cessare il vecchio: “Certo si può fare! Vada sul sito e sottoscriva il nuovo contratto.”

Eseguo. Primo problema: ho già un contratto attivo quindi non posso procedere. Seguo le indicazioni e compilo un form (che non dà feedback quando lo invii…), sarò ricontattato.

Martedì 26/7

Ore 9.00
Vengo effettivamente richiamato dal numero 02 89445 per la stipula telefonica; faccio nuovamente presente che la mia intenzione non è quella di sottoscrivere un nuovo contratto ma solo di cambiare piano ma mi ribadiscono che è impossibile.
Procedo. Ricevo la mail con il contratto precompilato, lo stampo, lo firmo e lo vado a spedire.

Ore 15.03
Mi squilla il telefono, numero 02 454001: Fastweb direzione commerciale. Mi chiedono “Ma lei mi conferma di volere una seconda linea?”… :-S sorrido e rispiego tutto per l’ennesima volta.
La signora, molto gentile, mi dice che non c’è alcun bisogno di disdire il vecchio contratto e farne uno nuovo con una nuova linea. Dopo alcuni controlli, mi dice che mi può abbassare la mia attuale tariffa; resta solo da verificare la questione IP pubblico.

Mi dice che si può assolutamente fare. Deve solo capire se mi devono dare un nuovo HAG o se addirittura va bene quello che ho! :-O
Il tecnico che deve dare la risposta non è reperibile… “Verifico io e la richiamo tra 10 minuti”.
Mi conferma altresì che non c’è alcun problema per la nuova sottoscrizione; l’annulleranno.

I 10 minuti diventano tre giorni…

Venerdì 29/7

Ore 14.23
Mi chiama il servizio “pre-attivazione” (sempre 02 454001), per chiedermi di fissare l’appuntamento… per l’installazione della nuova linea! Inizio a scaldarmi.
Chiedo lumi sulla telefonata di martedì… non ne sanno nulla. Spiego tutto. Sembra allora che debba parlare con il servizio “post-attivazione”… Il mio interlocutore mi assicura che spiegherà tutto lui e mi passerà la telefonata internamente.
Attesa. La telefonata viene passata. FW: “Mi dica?”, io “non le hanno già spiegato?”, FW “No, non so niente mi dica”. Rispiego tutto.

Dopo lunga chiacchierata, con la signora con cui parlo ripetiamo tutti i ragionamenti fatti martedì con la sua collega e misteriosamente interrotti. Conclusione: certo si può fare. Le dovremo però cambiare l’HAG, perché lei ha un XXX (sigla) e le dobbiamo mettere un YYY (altra sigla).
OK, un passo in più è stato fatto. Mi contatteranno per fissare l’appuntamento per il cambio dell’HAG; non occorre sottoscrivere il nuovo abbonamento e portare una nuova linea.

Ore 18.18
Mi squilla il telefono, numero 02 454001… penso “ci siamo, finalmente”. E’ ancora il servizio pre-attivazione che mi chiede di fissare l’appuntamento per… l’installazione della nuova linea! Mi incazzo.
Chiedo alla signora che cosa diavolo stanno combinando; lei continua a scusarsi, continua a ripetermi che lei non sa cosa dirmi ma insiste nel voler fissare l’appuntamento per l’installazione della fibra, dicendo che l’ADSL non c’entra. ADSL?!? Quale ADSL?!? Io ho già la fibra!!! Mi dice che forse la richiesta del nuovo abbonamento è stata fatta per sbaglio da qualche suo collega.
Poveretta è nel pallone. Mi dice allora che chiuderà la pratica… La fermo e le chiedo che fine farà la mia richiesta: non lo sa. Si consulta con un collega e conclude che la cosa migliore che posso fare è chiamare il… 192 193!!!

Ore 18.37
Chiamo il 192 193… Il servizio è attivo fino alle 18.

Scrivo sul sito chiedendo di essere ricontattato immediatamente perché la mia pazienza ha un limite…

Ore 19.44
Finisco di scrivere e pubblico questo post. E attendo, perplesso. Molto perplesso…

AGGIORNAMENTO n. 1

Domenica 31/7

Ore 17.09
Ricevo una chiamata dal numero 02 454001; rispondo al secondo squillo e mi viene chiusa la chiamata in faccia!

Ore 17.11
Sono passati solo due minuti e, senza che mi sia arrivata alcuna ulteriore telefonata, ricevo un sms che dice che i tentativi di contatto non hanno avuto esito positivo.
Si è trattato di un errore, vero? Non sarà mica stato un tentativo maldestro per far sì che il sistema di ticketing archiviasse la pratica? Senza parole.

Se c’è qualche legale all’ascolto (e so che almeno uno c’è ;-) ), può iniziare a scaldare i polpastrelli… tra poco c’è da scrivere!

AGGIORNAMENTO n. 2

Lunedì 1/8

Ore 12.51
Ricevo una chiamata dal consueto 02 454001… questa volta riesco a parlare :-) e meno male! Parlo con Alessandro, gentilissimo, che ha letto tutto questo post e che finalmente mi conferma che procediamo con il cambio dell’HAG (ciò che mi darà accesso all’IP pubblico illimitato) e annulliamo la richiesta del nuovo contratto. Non solo: l’appuntamento con il tecnico è per oggi stesso alle ore 17!

Nulla può sulla tariffa ma mi farà contattare dal servizio commerciale.

Posto che la conclusione vera e propria sarà dopo l’installazione del nuovo HAG (per il cambio di tariffa nutro qualche speranza benché non fosse quello il mio obiettivo principale), mi chiedo:
non si poteva fare tutto alla prima telefonata, senza discutere inutilmente per una settimana?

Attendo l’installatore…

AGGIORNAMENTO n. 3

Lunedì 1/8

Ore 17.20
Il tecnico (molto disponibile, come, devo dire, sempre accade con i tecnici Fastweb…) è arrivato e ha sostituito il mio vecchio HAG…
Ho l’IP pubblico!

Ultimo problemino da risolvere è la possibilità di configurare il nuovo HAG, che di fatto è un router, dalla MyFastPage. Per non vedo ancora le “nuove” opzioni ma dal 192 193 Luigi (credo di aver parlato con tutti gli operatori ormai…) mi conferma che l’allineamento avverrà questa notte.

AGGIORNAMENTO n. 4

Martedì 2/8

Ore 9.36
La MyFastPage non si è aggiornata :-( Richiamo il 192 193: devo aspettare ancora. “L’aggiornamento avviene entro 48 ore”…

AGGIORNAMENTO n. 5

Martedì 2/8

Ore 15.00
La MyFastPage ora è aggiornata! Ci sono voluti 7 giorni, 22 ore e una decina di telefonate ma adesso funziona tutto.
E adesso… ore e ore a configurare NAT, port forwarding, DynDNS ecc. :-)

Posted in Fastweb | Tagged , , | 5 Comments

EatingOut 1.1.1

A minor update has been approved and it’s available for download.
Besides , , and , EatingOut now also speaks and !

Check it out!

Posted in iOS | Tagged , , | Leave a comment

EatingOut 1.1 available

Version 1.1 of EatingOut has been approved.

  • automatic selection now works on user-defined keywords and searches in first name, last name, company name, and note fields (see screenshot below);
  • the app now asks for confirmation before making a phone call;
  • after calling a restaurant, the app re-activates automatically;
  • fixed a bug that sometimes caused the app to crash when tapping on days off;
  • added Portuguese translation.
EatingOut 1.1 - new automatic selection

EatingOut 1.1 - new automatic selection

Posted in iOS | Tagged , , | Leave a comment

First week: 600+ downloads!

In the first week, EatingOut was downloaded 638 times. Not bad at all!

I’m working to fix a small bug and to add a couple of new features:

  1. after calling a restaurant, the app will re-activate automatically
  2. the automatic selection will work on user-defined keywords and will search in all the relevant fields (first name, last name, company name, notes)

With the precious support from a group of friends, I’m also working on Portuguese, French, Spanish, and German translations.

Thanks for feedbacks and appreciation messages to everybody!

Posted in iOS | Tagged , , | Leave a comment

EatingOut is available!

Last night (here in Italy, at least) the iTunes Store Team reviewed and approved my first app, EatingOut. Check it out, it’s free!

The status changed from Wating for Review to In Review at 2.02 AM, to Processing for App Store at 2.28 AM, to Ready for Sale at 2.33 AM.

Posted in iOS | Tagged , , | Leave a comment

EatingOut iPhone app waiting to be reviewed

EatingOut

Two days ago I finally submitted EatingOut, my first iPhone app, to iTunes Connect for approval! I am really anxious to get some feedback by the App Review Team.

It uses the “Current Location” trick described in my previous post.

Posted in iOS | Tagged , , | Leave a comment

Localized “Current Location” string for iPhone apps

I’m writing an app that has a “get directions from here to the selected address” function at some point.

When the user invokes that function, the app creates a “Google Map” URL and opens the official Maps app with the user current location as source and the selected address as destination.

In situations like this, you have two options to determine the current location of the user:

  1. use the CoreLocation framework;
  2. use the string “Current Location” as the source address.

The first option requires you to code all the CoreLocation related stuff and requires the user to accept being geolocated by the app; the second option is much simpler to implement, because it’s Maps that takes care of everything concerning the geolocation.
Besides code writing considerations, remember also that continuous use of GPS in your app consumes a lot of battery power.

Why would anybody use the first option, then? Unfortunately, the “Current Location” trick works only if the user’s iPhone is set to use English or British English (see this question on Stack Overflow).
Every language that can be set on the iPhone has its own localized version of this string (in Italian is “Posizione attuale”).

Please note also that simply translating “Current Location” doesn’t necessarily do: you must match the exact string that Apple chose for the localization in use.
So even if you speak all the 34 currently supported languages :-) , you can’t be sure that your translations will properly work everywhere…

With some patience and some sniffing into the iPhone firmware, I managed to discover the exact translation of “Current Location” in all the languages supported by the iPhone (and Maps thus) and I wrote the helper class LocalizedCurrentLocation that can provide your app with the correct localized version of “Current Location”.

The class is very simple and has only one class method:

+ (NSString *)currentLocationStringForCurrentLanguage;

To get the localized string you simply call:

[LocalizedCurrentLocation currentLocationStringForCurrentLanguage]

Usage example:

NSString *destinationAddress = [NSString stringWithFormat:@"%@+%@+%@",
    [address street],
    [address city],
    [address country]];

NSString *sourceAddress = [LocalizedCurrentLocation currentLocationStringForCurrentLanguage];

NSString *url = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%@&daddr=%@",
    [sourceAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
    [destinationAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

Of course this trick is not guaranteed to work forever; it doesn’t use any particular “forbidden” piece of code, but it relies on the assumption that everything is as is now.
I tested the class with a couple of languages and everything seems to work seamlessly; I don’t have time/patience to test all the 34 languages so let me know if you find any issues.

You can download the class here: LocalizedCurrentLocation.zip

EDIT: You can now download the class from GitHub: https://github.com/Sjors/currentLocationStringForCurrentLanguage (Thank you Sjors!)

EDIT: Please read the comment by Alexey below, if you plan to use the Russian language!

EDIT: Thanks to Brad, the class is available for MonoTouch as well: https://github.com/ytn3rd/CurrentLocationStringForCurrentLanguage.

Posted in iOS | Tagged , , | 21 Comments