lunes, febrero 29, 2016

Apple corrige el error 53

Apple ha dado el paso correcto y ha corregido el Error 53 que se producía durante la actualización a iOS 9.2 y que dejaba inutilizables aquellos teléfonos donde la identificación entre el sensor de huella digital y el microprocesador no era correcta. Apple ha publicado una nueva versión de iOS 9.2.1 con dicho comportamiento corregido. Hay un documento técnico (HT205628) en la web de soporte de Apple explicando como instalar esta versión corregida del sistema.

Al igual que fui muy crítico con Apple por el comportamiento de la actualización, hay que felicitarle por la rapidez de reflejos que ha tenido para dar una solución al problema.

viernes, febrero 12, 2016

Notas sobre Maven(I)

Maven es un sistema de gestión de proyectos de software que nació con el objetivo de simplificar la construcción del proyecto Apache Turbine. A partir de ahí evoluciona hacia un sistema que permite la gestión de proyectos de software de manera estándar: construcción de entregables, gestión de pruebas y publicación de los mismos. Podría verse como un sistema de construcción como las autotools, cmake o ant al que se le añade una serie de mecanismos que permiten la construcción de proyectos Java de manera sencilla, uniforme, siguiendo las guías de buenas prácticas. Maven es lo bastante flexible para extender su funcionalidad a través de un sistema de plugins.

Para instalar Maven necesitamos tener el correspondiente Java JDK en el sistema. Nos bajamos la la versión compilada de Maven, descomprimirla en un directorio y modificar el PATH de nuestro sistema para que encuentre los binarios:

$ mkdir -p /usr/local/java
$ cd /usr/local/java
$ wget http://ftp.cixug.es/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ # Siempre conviene verificar la correcta huella digital
$ wget http://www.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz.asc
$ gpg --verify apache-maven-3.3.9-bin.tar.gz.asc
$ tar zxvf apache-maven-3.3.9-bin.tar.gz
$ ln -s apache-maven-3.3.9 maven
$ # Borrar los ficheros bajados
$ rm apache-maven-3.3.9-bin.tar.gz
$ rm apache-maven-3.3.9-bin.tar.gz.asc
$ # Añadir al PATH la ruta /usr/local/java/maven/bin

Si se ha instalado correctamente, podremos ejecutar mavem:

$mvn --version
Apache Maven 3.3.3 (NON-CANONICAL_2015-09-23T11:40:22_root; 2015-09-23T11:40:22+02:00)
Maven home: /usr/local/java/maven
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.3", arch: "x86_64", family: "mac"

Los proyectos en Maven se definen en un fichero XML , pom.xml. Este fichero es la unidad básica que utiliza Maven para definir un proyecto. Como puede leer en la introducción al pom, toda instalación de Maven tiene un pom por defecto, del cual heredan el resto de los poms que se definan a menos que nosotros lo cambiemos específicamente alguna de las propiedades de ese pom.xml raíz.

La manera más sencilla de empezar a utilizar Maven es a través de un ejemplo: Un sencillo programa que quede encapsulado en un JAR y que se pueda ejecutar fácilmente con java -jar package.jar. Puesto que Maven nos fuerza a tener cierta estructura en nuestros proyecto, lo primero que vamos a tener que definir es la la misma para nuestro paquete y el nombre de nuestro proyecto. Por ejemplo, voy a usar org.ctb.maven como el identificador de grupo y el ListIfaces como identificador de artfacto. Con esta idea, usamos la opción que tiene Maven de generar nuestra estructura de proyecto:

$ mvn archetype:generate -DgroupId=org.ctb.maven -DartifactId=ListIfaces -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Lo primero que hará Maven será bajarse aquellos artefactos (jars) que necesite para construir nuestro programa, creará el fichero pom.xml y la estructura de directorios que las guías de buenas prácticas aconsejan. Se podrá compilar la aplicación simplemente con:

cd ListIfaces
mvn install

De nuevo, veremos a Maven bajándose los diferentes plugins que necesita, y en el directorio target nos generará el fichero jar con nuestra clase compilada. Decir que todos estos elementos quedan cacheados en nuestro sistema para su posterior utilización. En el caso de MacOS X esta en el $HOME/.m2

El fichero pom.xml que nos ha generado automáticamente Maven es el siguiente:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.ctb.maven</groupId>
  <artifactId>ListIfaces</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ListIfaces</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

En este simple pom.xml nos pone sobre la pista de varios parámetros que debemos de tener en cuenta a la hora de realizar nuestro proyecto y que nos fuerza las convenciones de Maven

groupId
Este parámetro identifica a nuestro proyecto de manera única entre todos los proyectos. Lo ideal es que aprovechemos la estructura de nuestros propios paquetes para seleccionar el groupId correcto.
artifactId
Nos da el nombre del JAR (u otro entregable) sin la versión
version
La versión de nuestro entregable

lunes, febrero 08, 2016

Error 53

Hace unos días empecé a leer rumores sobre la última actualización de Apple iOS - 9.2 - la cual bloqueaba aquellos teléfonos iPhone 6 y 6 plus que habían sido modificados por servicios no oficiales. Comocencé a buscar información y llegué a un Error 53’ fury mounts as Apple software update threatens to kill your iPhone 6 un artículo de The Guardian donde narran la historia.

En los dispositivos Apple iPhone ,en el botón home se encuentra el sensor de huella digital y toda la circuitería necesaria para comunicar los datos con un coprocesador llamado Secure Enclave encargado de almacenar la información de la huella que ha captado el sensor y de las operaciones de criptográficas necesarias (puede leerse sobre el tema en iOS Security). Parece ser que ciertos elementos hardware de los últimos iPhone están emparejados de manera única con el microprocesador A7 que utilizan estos teléfonos.

La última actualización de iOS, al menos en los modelos 6 y 6 Plus, comprueba el emparejamiento entre los diferentes componentes hardware, en especial el Touch-ID. Si dicha comprobación falla - por ejemplo: reparar el iPhone en una tienda no oficial - , la actualización simplemente deja el iPhone inservible, convertido en un bonito y caro ladrillo.

La respuesta oficial de Apple, como por ejemplo puede leerse en Apple habla del Error 53: es para proteger nuestra información, es un mecanismo para proteger nuestra información: Si alguien no autorizado cambia el botón - o se cambia en un servicio no autorizado - , te expones a que te roben el contenido seguro. Entonces, nada mejora que bloquear el móvil y dejarlo inservible. Supongo haber desactivado el Touch ID no habría bastado no entraba en los planes de Apple.

Varias preguntas respecto a este mecanismo:

  • ¿No bastaba con deshabilitar el Touch ID si se detecta una reparación de este tipo?
  • De verdad alguien piensan que en los servicios técnicos de Apple, llegado el momento, ¿no te pueden robar la información?
  • No estaremos, como ya pasó en el caso del sector del automóvil estableciendo barreras de entrada para que no se hagan reparaciones fuera de los canales oficiales?

Hablamos de teléfonos móviles que en España cuestan de 700 euros para arriba. Al menos, si lo vas a convertir en un ladrillo con una actualización software, lo mínimo que podría decir la actualización de Apple es que puede ocurrir.

He tenido tres iPhones, un 3G, un 4 y un 5s. Tengo bastante claro, que salvo cambio de políticas, el próximo dispositivo será un Android, probablemente un Samsumg A5. A fin de cuentas, tanto el 4 como el 5s empezaron a fallar por el mismo sitio , el botón home y tampoco estoy dispuesto a pagar el equivalente a un Samsumg de gama media por repararlo (en UK, reparar el botón home viene a costar unas 236 Libras, un teléfono que cuando salió a la venta costaba una 550 libras). Y no será porque no le he sacado provecho a estos móviles, pero ya la relación coste / beneficio empieza a no compensar.

jueves, febrero 04, 2016

MAFO y el supervisor perdido

Esta tarde estaba leyendo algunos tweets de los asistentes al diálogo Economistas, políticos y otros animales que se estaba celebrando en la Fundación Rafael del Pino con el ex-gobernador del Banco de España, Mariano Fernández Ordóñez y John Müller, uno de los pesos pesados durante mucho tiempo de El Mundo y actualmente en El Español como protagonistas. Aunque no lo he seguido por streaming, me interesaba saber que se estaba comentando, ya que Fernández Ordóñez era el responsable de supervisar todo el sistema financierio español entre el año 2006 y 2012, periodo en el que se llegó al pico de la burbuja inmobiliaria, se aprobaron las fusiones de Cajas de Ahorro, se autorizaron la emisión de preferentes o se permitió la salida a bolsa de Bankia.

Una de las preguntas que le realizó Müller a Fernández Ordóñez y su respuesta se pueden encontrar en este tweet

-Fue correcto sacar #Bankia a bolsa?, dice @cultrun
-No te contesto, responde MAFO
-Pues me he quedado sin preguntas, lamenta @cultrun

No hay más preguntas, es más probablemente sea la única pregunta que habría que haberle hecho a Fernández Ordóñez. En esta crisis económica de la que apenas estamos asomando la cabeza, siempre me he planteado como el Banco de España, con el acceso que tiene a toda la información del sistema financiero no fue capaz de dectectar los más que evidentes síntomas que avisaban sobre los problemas de la economía española, especialmente en la banca pública - cajas de ahorro -. Como el supervisor, bajo la dirección de Fernández Ordoñez permitió la creación de Bankia. Es más, ha tenido que escribir un libro, en el cual, por todos los comentarios que he leído sobre el mismo, parece olvidar que él era uno de los principales protagonistas del sistema financiero español durante los años de la burbuja. Es mucho más cómodo culpar al de enfrente.

Muchos han decido mirar para otro lado sobre el papel del Banco de España en esos años y especialmente el papel de su gobernador.