09 enero 2012

Renfe y las formas de (no) hacer las cosas

Hoy he entrado a renfe.es para echar mirar precios de unos billetes y nada más entrar lo primero que no me ha gustado es que cuando das a la compra de billetes te abre una nueva ventana reducida del navegador, sin botones, sin historial. Para mi es una falta grave de usabilidad pero la entrada no viene por esos derroteros.

Una vez dentro busco el billete de Madrid a Burgos, dos personas.


Perfecto, hay un billete por sólo 20,95€. Además es la recomendada. Tarifa "Turista Mesa". ¿Y qué es la tarifa Turista Mesa? fue lo primero que se me vino a la cabeza. Total, le doy y me sale la siguiente imagen:


Cada vez estaba entendiendo menos. Parece que al final no son 20,95€ sino 41,90€. Otro punto negativo para la usabilidad ¿para que te digo previamente cuántos vamos a viajar? Me pongo a buscar en Internet qué es la tarifa Turista Mesa y encuentro la solución en su propio blog. Básicamente asientos enfrentados dos a dos con una mesa en medio para un máximo de cuatro personas. Ahora, si os fijáis bien en los precios veréis por qué he empezado esta entrada: Da igual qué cantidad de billetes compres en esa tarifa, os van a cobrar siempre lo mismo independientemente de cuánta gente viaje. 83,80€. Da igual si viajas solo o acompañado con una, dos o tres personas. Siempre pagaréis 83,80€ con lo que al final compensa reservar siempre cuatro asientos aunque vayas solo, así no tendrás a nadie que te moleste en TU mesa.

¿Quién ha sido el lumbreras al que se le ha ocurrido esta tarifa? ¿cómo pueden poner de encargado de las tarifas a alguien que no ve a la primera esta atrocidad? ¿no sabe de números? Lo lógico sería hacer menos descuento para los grupos para que no sea atractivo el quedarte con la mesa para ti solo.

Con cabezas pensantes como esta ¿qué se puede esperar de la usabilidad de sus páginas? Fácil, buscamos en google y obviamos los resultados de la propia página...

P.D: Puse un comentario en el blog de Renfe, al principio aparecia, pero un par de horas después ya no está ¿por qué se mosquean si sólo les he expresado mi opinión sin faltar a nadie? ¿tendré razón?
P.D2: Acabo de entrar de nuevo y sí esta el comentario, sorry.
Leer la pencada completa...

24 abril 2011

iPhoneTracker app para PowerPC y MacOS X 10.5 Leopard


Hace unos días salió a la luz que el iPhone guardaba las localizaciones por las que ha estado su usuario cuando tiene activado el seguimiento bien por GPS o bien por triangulación de las antenas de telefonía para posteriormente enviarlas a Apple. A mi personalmente no me gusta este hecho aunque se ponga como excusa que sirve para mejorar el posicionamiento. Por una parte están guardando durante años los lugares por los que has pasado, y por otra envían información sin tu consentimiento expreso, llegando incluso a hacer uso de tu red 3G.

Para demostrar que esta información está ahí, y encima sin encriptar, se desarrolló una aplicación: iPhone Tracker. La aplicación es sencilla: busca en tus backups del iPhone que hace iTunes y te muestra en un mapa del mundo los puntos por los que has pasado. El único problema es que mi mac de diario es un iMac G5 (MacOS X 10.5 Leopard) y la aplicación la han compilado únicamente para macs con procesadores intel y sistema operativo MacOS X 10.6 Snow Leopard. No puedo probar dicha aplicación.
Como me picaba bastante la curiosidad me he bajado el código fuente y, a parte de ojearlo a ver cómo funciona, lo he compilado en binario universal y para Mac OS X 10.5 y posteriores. Aquí os dejo el ejecutable para el que tenga curiosidad.

Descarga iPhoneTracker 1.0u

Un saludo.

Leer la pencada completa...

23 mayo 2010

Cómo ejecutar en un dispositivo iPhone sin pagar el programa de desarrolladores iPhone

Editado: Parece que hay que tener el teléfono con jailbreak e Installous debe de estar instalado.

Os voy a contar un truco que he encontrado por ahí y que me ha sido de gran utilidad.
Si alguna vez has pensado en programar para iPhone OS, uno de los mejores ejemplos para empezar sería éste. Es sencillo, te asienta varios conceptos importantísimos y está muy bien explicado. En el transcurso del tutorial vas ejecutando el ejemplo y lo vas probando para ver la evolución de lo que es tu primer programa de muchos más por llegar, espero. Lo bonito sería, cuando lo terminas, ejecutarlo en tu flamante iPhone para poder llevártelo por ahí y fardar con tus amigos de que "eres programador iPhone"... si es que estás dispuesto a pagar 79€ (99$).
Aunque hay una forma de saltarse esta restricción...

El Programa de Desarrollador iPhone de Apple no solo sirve para poder poner tus aplicaciones en la App Store, sino que también es necesario si quieres probar tus desarrollos en tu propio teléfono. Sinceramente es una cagada. Otro punto negativo para Apple (y ya van unos cuantos). Pero como decía en la entrada, buscando cómo solucionar este problema encontré un hilo donde una persona se curró una forma para poder ejecutar los desarrollos en el propio teléfono sin pasar por caja. Os cuento mi experiencia y los pasos para poder hacerlo también vosotros.
La configuración que he usado es XCode 3.2.2 con iPhone SDK 3.2, y el firmware de mi iPhone es un 3.1. Voy a explicarlo con el iPhone OS 3.1, si tenéis otra versión probad con la vuestra.

  1. Hacéis una copia de seguridad del fichero /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist.
    sudo cp -p /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist.bak

  2. Ahora lo editamos con vuestro editor favorito o con pico.
    sudo pico /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist

  3. Buscad y cambiad las claves DefaultProperties/CODE_SIGNING_REQUIRED y ENTITLEMENTS_REQUIRED y ponedlas a NO.
  4. Cread un fichero llamado gen_entitlements.py con el siguiente contenido (personalmente lo he salvado en /Developer/Applications/):
    #!/usr/bin/env python

    import sys
    import struct

    if len(sys.argv) != 3:
    print "Usage: %s appname dest_file.xcent" % sys.argv[0]
    sys.exit(-1)

    APPNAME = sys.argv[1]
    DEST = sys.argv[2]

    if not DEST.endswith('.xml') and not DEST.endswith('.xcent'):
    print "Dest must be .xml (for ldid) or .xcent (for codesign)"
    sys.exit(-1)

    entitlements = """
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>application-identifier</key>
    <string>%s</string>
    <key>get-task-allow</key>
    <true/>
    </dict>
    </plist>
    """ % APPNAME

    f = open(DEST,'w')
    if DEST.endswith('.xcent'):
    f.write("\xfa\xde\x71\x71")
    f.write(struct.pack('>L', len(entitlements) + 8))
    f.write(entitlements)
    f.close()


  5. Cambiad los permisos del fichero para que se pueda ejecutar:
    chmod +x gen_entitlements.py



  6. Una vez tengáis vuestro proyecto terminado, vais a "Project -> Edit Project Settings". En la pestaña "Build" buscáis "Code Signing Identity" y donde no suele poner nada lo seleccionáis y lo dejáis en "iPhone Developer" y bajo ésta seleccionais "Device - iPhone OS 3.1" o "Any iPhone OS Device" y ponéis "Don't Code Sign".
  7. Ahora vais a "Project -> New Build Phase -> New Run Script Build Phase" y copiamos el siguiente código (aseguraos de poner correctamente la ruta al fichero gen_entitlements.py, y de que coincida el Bundle Identifier):
    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/Applications/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
    codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
    fi


  8. Ahora debemos crearnos un certificado con el nombre que hemos dado a "Code Signing Identity" en el paso 6: "iPhone Developer". Para ello abrimos el programa de "Acceso a Llaveros" localizado en /Aplicaciones/Utilidades.
  9. Seleccionadmos "Acceso a Llaveros -> Asistente para Certificados -> Crear un Certificado..."
  10. Nombramos al certificado "iPhone Developer", con tipo de identidad "Raíz autofirmada" y tipo de certificado "Firma en código". Chequeamos "Permitir ignorar los valores por omisión". Le damos a continuar.
  11. Le damos un número de serie distinto de cualquier otro certificado y un periodo de validez. Continuar.
  12. Rellenamos los datos de correo electrónico, empresa, etc...
  13. Dejamos todo lo demás con las opciones por defecto hasta llegar al final. Con esto tenemos todo preparado para poder ejecutar nuestra aplicación en un dispositivo.
  14. Abrimos el organizador, en XCode "Window -> Organizer" y preparamos nuestro dispositivo para usarlo en nuestros desarrollos.
  15. Una vez configurado el iPhone vamos a compilar y ejecutar nuestro programa. Seleccionamos como destino de la ejecución "Device - 3.1|Debug" y le damos a "Build and Run". Después de unos segundos tendrá que aparecer nuestra aplicación en nuestro iPhone.


¡Suerte con vuestros desarrollos!

Leer la pencada completa...

09 abril 2010

Los iPhones marginados salen muy caros


Ayer nada más llegar a casa lo primero que hice fue leerme la secuencia de sucesos de la presentación del nuevo sistema operativo para iPhone: la 4.0.
La verdad es que gracias a la dura competencia que están teniendo parece que Apple está siendo menos Apple con el mundo de los dispositivos móviles viéndose obligado a incluir características y funcionalidades que, sin lugar a dudas, no incluirían o por lo menos no tan "pronto". Sólo así se podría explicar las diferencias tan abismales entre la versión actual 3.1.3 y la presentada.

Estas diferencias beneficiarán a los desarrolladores principalmente y, como consecuencia, al usuario final. O al menos si no tienes un iPhone de primera generación como es mi caso. Me explico:

El iPhoneOS 4.0 es compatible, según esta página, a partir del iPod Touch de segunda generación hacia adelante, y con el iPhone 3G hacia adelante, dejando a las primeras generaciones injustamente marginadas. La razón de que digo que es injusto es porque tanto el iPhone de primera generación como el iPhone 3G tienen exactamente el mismo hardware (ver la wikipedia para comprobarlo) a excepción del 3G en sí y de las funciones GPS, lo cual no debería ser un problema para poder ejecutar la nueva versión en uno sí y en otro no (lo mismo pasó con la posibilidad de ver el porcentaje de batería entre 3GS y los demás). ¿Por qué han decidido privarnos de un avance tan importante? Me temo que es para vender más teléfonos, estas son las cosas que odio de Apple.

La imposibilidad de actualizarse a la nueva versión hará que nuestros teléfonos se queden estancados para siempre en junio del 2010 (fecha prevista de lanzamiento de la nueva versión). Ya no podremos instalar nuevo software que se desarrolle a no ser que se tenga en cuenta la retrocompatibilidad. Como he dicho antes, los cambios más importantes de esta nueva versión es a nivel de programación, de APIs, con lo que todo desarrollo que use al menos una de todas estas funcionalidades hará que sea imposible que la instalemos en una versión 3.X.

Aquí no queda la cosa, esta decisión puede conllevar incluso pérdida de dinero. ¿Esto por qué? Sencillo si Apple no ha tenido en cuenta lo siguiente: ¿Qué pasaría si tenemos instalada una aplicación de pago, por ejemplo la magnífica MobileRSS, y en una actualización se les ocurre a los desarrolladores incluir el uso de alguna nueva API de iPhoneOS 4.0? puede que iTunes nos baje la nueva versión, borre la vieja y a la hora de sincronizar nuestro móvil nos salga un bonito mensaje de incompatibilidad ¿cómo volveremos a la versión anterior? Recordemos que no todo el mundo tiene copias de seguridad o el Time Machine activado... y aun teniéndolo puede pasar no tengas instalada actualmente la aplicación en cuestión y te de por reinstalar seis meses después con la incompatibilidad reseñada a ver quien es el guapo que recupera una versión válida.

Los sistemas tienen que avanzar sin mirar atrás en exceso el lastre que supondría los dispositivos viejos y menos capaces, y más en cuestión de sistemas operativos para teléfonos móviles. Pero lo que no veo justo es que dos teléfonos con el mismo hardware clave uno pueda ejecutar el nuevo sistema operativo y el otro no. Eso es lo que me enfada. Y me enervo cuando esa decisión puede conllevar pérdida de dinero, ahí atacan donde más duele.

Puede que la alternativa sea Android pero tengo que descartarlo por el gran crecimiento que tiene en cuanto funcionalidades. Pasa como con el iPhone pero más descarado y criticable. Algo que a priori debería ser motivo de alegría termina siendo una tomadura de pelo por parte, no de Google de forma directa, sino por los fabricantes de teléfonos. Los que se compraron una Magic hace escasamente un año casi seguro no podrán instalar la versión 2.0 hacia adelante por falta de memoria. Tristísimo.

Sólo espero que los chicos del dev-team se den prisa y consigan, si quieren y pueden, alguna forma de que se pueda ejecutar el nuevo SO en mi viejo y querido iPhone.

El tema de la pseudo-multitarea es para escribir una entrada a parte.

Leer la pencada completa...

02 marzo 2010

El AppleTV y sus problemas de sobrecalentamiento

Hace unas semanas que empecé a ver puntitos blancos aleatorios por la televisión cuando llevo un rato viendo alguna peli en el AppleTV, llegando incluso a pasar de simples puntos blancos a distorsiones en la propia película como si de una débil transmisión analógica se tratase. Pensé que podría ser problema de mi tele marca Supratech, o incluso de que el cable sea muy sensible al ruido exterior, ya que al haber costado 4€ puede que no sea muy bueno.
Navegando un poco buscando posibles causas a mi problema descubro para mi decepción que el problema puede ser debido por la tarjeta gráfica integrada, la Nvidia G73, ya que se ha informado de que tiene problemas. Otra causa, la más comentada, es que el problema viene debido al sobrecalentamiento al que llega el AppleTV, sobre todo cuando se reproducen películas. Me inclino más a ésto último.

El AppleTV únicamente tiene un ventilador en el procesador pero ninguno para introducir o sacar aire del exterior como podéis ver en la siguiente imagen.

pincha en la imagen para no dejarte los ojos

Este hecho hace que alcance temperaturas cercanas a los 45ºC reproduciendo alguna película, manteniendo una temperatura media de unos 40ºC.

Si ya tenéis un AppleTV la única solución posible si no quieres ver dichos puntos es tener bien ventilado nuestro querido cacharro, comprar unos ventiladores con base especiales para portátiles, con el consiguiente ruido que genera, o conseguir un disipador industrial del tamaño del AppleTV y dejarlo descansando encima de él.

Y si aún no lo tenéis pero queréis compraros uno yo esperaría a ver si modifican el diseño para solucionar este, a mi ver, grave problema.

Actualización: Después de que mi AppleTV pasara unas merecidas vacaciones en el salón encima de un reproductor DVD metálico, parece ser que disipaba bastante calor y ha vuelto a verse bien.
Leer la pencada completa...

17 febrero 2010

Contraseña errónea de Flickr en iPhoto 09


Hace tiempo hice limpia de permisos a aplicaciones en Flickr, y en esa limpieza debí de revocar el permiso para iPhoto. No fue hasta ayer que lo descubrí.

Los carnavales de Badajoz son de los mejores que tenemos en España, aunque son poco conocidos. Recomiendo a todo el mundo que vaya. Nos lo pasamos genial y, como en toda fiesta que se precie, hicimos algunas fotos.
Anoche por fin me decidí a descargar las fotos al iMac. Etiqueté las caras. Geoposicioné todo. Me preparé para subir algunas de ellas a Flickr... ¡Error de contraseña! No hay problema, te vas a preferencias de iPhoto y... ¿dónde narices están las opciones de Flickr, Facebook, etc...? No hay.

Navegando un poco por Internet descubrí la solución y la comparto con vosotros ahora:
Tenéis que abrir el programa "Llavero" (creo que se llama así en castellano) que está bajo Aplicaciones/Utilidades. Buscáis en todas las claves una que se llame "iphoto.apple.com" y la borráis. Volvéis a iPhoto e intentáis subir de nuevo a Flickr y os volverá a pedir que configuréis la cuenta. Sencillo a la par que lioso.

Espero que os sirva.
Leer la pencada completa...

28 enero 2010

iPad, ¿en casa o en la oficina?

Leyendo las impresiones de los geniales Diego Calleja y Ángel Jiménez de Luis, coincido en que el verdadero éxito (o fracaso) que Apple puede conseguir con su iPad es su software, no su hardware, al igual que hicieron con el iPhone. No será tecnología punta. No tendrá el mejor hardware. Pero tiene el mejor software y eso es innegable aunque se intente. Sigue leyendo...


El iPad es un dispositivo ante todo enfocado en su movilidad como han recalcado en su presentación. Es para usarlo en el lugar que menos te lo esperas, ver tus películas, ver tus fotos, escuchar tu música. En definitiva: un centro multimedia para toda la familia. Ya podemos tirar los reproductores DVD para el coche, los discos duros multimedia, esa microcadena que afea tu salón, ese marco digital que tanto te costó y se ve como la luneta de mi coche esta mañana al ocurrírseme darle al limpia (en un segundo se congeló el agua y tuve que parar para no pegarme un piño). En el iPad tenemos un centro multimedia que funciona. Pero si lo han enfocado a un centro multimedia... ¿qué pinta el Pages, Keynote o Numbers en todo esto?

A parte de iWork, otra cosa que me llama la atención es el teclado que se le puede enganchar. ¿Por qué hacer un teclado y una suite ofimática para un centro multimedia? ¿por qué decir que cualquier proyector funciona con su nuevo aparato? Está claro, o por lo menos a mi me lo parece, que el otro enfoque que le quieren dar es para usarlo en la oficina. Quieren que sea la herramienta perfecta para el jefe de equipo que se dedica a crear hojas de cálculo, documentos y presentaciones. Entrar elegantemente a una reunión con un cacharro de esos y manejarlo con los dedos no tiene precio.

¿Dónde tendrá más éxito? ¿en el mercado doméstico o en el empresarial?


Leer la pencada completa...