VERSION ACTUAL :

Inicio de sesión

Raulito el Friki

Raulito El Friki

COMENTARIOS

EN LINEA

Hay actualmente 0 usuarios conectados.

NUEVOS

  • pedronavia
  • Krkmo
  • miguel-angel
  • Jorge Albizures
  • juansan

Agregador de canales de noticias

¿Para que sirve ó funciona AirTM y que beneficios ofrece ?

E-ais - Jue, 08/24/2017 - 09:15
Al ingresar a www.AirTM.com con tu usuario  (si no estas registrado aun registrate  pinchando aqui ) vas a poder ver las 3 principales operaciones que puedes hacer Si aun no estas registrado puedes hacerlo aquí >>> AirTM aqui 1) DEPOSITAR: Esta es la opción donde puedes comprar o pasar tu $ para tenerlos en tu cuenta de AirTM, puedes pagarlos con Transferencias bancarias con moneda local , e-aisnoreply@blogger.com0

AirTM Dinero en la nube donde lo desee. Efectivo en su Mano cuando lo necesite

E-ais - Jue, 08/24/2017 - 07:53
Air TM Proyecto basado en el Internetfundado por  Ruben Galindo Steckel y Antonio Garcia, ambos de la ciudad de México,el cual funciona para el intermbio de divisas, ó exchanger desde la nube en casi todos los paises del mundo, incluso Venezuela, Argentina ,México..                                            Es decir puedes cambiar saldo de Bolivares a Dolares y este pasarlo a paypal. tienes e-aisnoreply@blogger.com0

Getting started with AWS Certificate Manager (and Route53)

Tony de la Fuente - Mar, 08/22/2017 - 06:36
…with your own domain not hosted in Amazon Route 53 and a wild card certificate. A main premise I follow when it comes to deploying or architecting any service in the cloud, whatever vendor I use, is full encryption between layers and intent to add elasticity on each service (adding them to what AWS calls […]

Servidor LAMP en Fedora 26

Blog 1 - Lun, 08/14/2017 - 14:30
Configurar un servidor LAMP en Fedora es una tarea bastante sencilla. A continuación describo cómo hacerlo. Instalamos el servidor web(apache httpd) la forma más sencilla(todos estos comandos como root) dnf groupinstall "Web Server" **si muestra algún error de versiones (workstation, nonproduct) usar: dnf groupinstall "Web Server" --skip-broken Después el servidor mariadb(mysql) dnf Vanhttp://www.blogger.com/profile/04797995971024335249noreply@blogger.com30

Error de JSON malformed al enviar datos a Zoho

Skatox - Lun, 08/14/2017 - 07:40

Zoho es una excelente herramienta en la nube para la administración de negocios. Posee una excelente API REST para realizar integración de datos entre sistemas. Hace unos días tuve problemas para subir información al API y me arrojaba el error JSON malformed.

Cómo solucionar el error de JSON malformed

La documentación no indica cual puede ser el problema y en que campo. Obviamente es un error de codificación de JSON pero al revisar mi código y los datos que estaba enviando, noté que el JSON estaba bien validado. Pero me di cuenta que Zoho pide enviar el JSON dentro del cuerpo de la petición en texto plano, no en formato JSON. Por ello, al codificar los campos en la cadena, el símbolo de ampersand ( & ) puede confundirse como el inicio de un parámetro GET. Así que es necesario codificarlo con su respectivo valor en HTML que es %26.

Así que para solucionar mi problema tuve simplemente que reemplazar el valor luego de ser codificado en JSON:

$jsonString = str_replace('&', '%26', json_encode($invoice));
$body = '&JSONString=' . $jsonString;

¡Listo! Ahora si podrás subir la data a Zoho.

La entrada Error de JSON malformed al enviar datos a Zoho aparece primero en El blog de Skatox.

Android Studio con Qualcomm y Mediatek

Innerzaurus - Sáb, 08/12/2017 - 09:21

Poco a poco los elementos del proyecto de verano empiezan a tomar forma. A la aplicación de la Raspberry Pi se le sumarán dos aplicaciones que funcionarán en Ubuntu Touch y en Android. En este artículo se verán los pasos para configurar el SDK de Android en Windows. No he descartado explicar los pasos en Ubuntu usando la máquina virtual que se creó en un artículo anterior. Simplemente, voy a explicar como se trabaja en los dos sistemas operativos. De esta forma se puede elegir el sistema operativo que es más práctico para programar la aplicación con Android. Como entorno se usará Android Studio ya que es el entorno oficial que usa Google.

Introducción

En InnerZaurus ya he publicado antes artículos similares. La diferencia es que esos artículos no tratan las últimas versiones de Android y de Windows. Por esa razón he aprovechado para actualizar la información. El entorno de desarrollo queda de la siguiente forma:

  • Windows 10 con la creators update.
  • Aquaris X5 Plus con Android Nougat (Qualcomm).
  • Aquaris M8 con Android Marshmallow (Mediatek).

Las explicaciones del artículo se aplican también a otros terminales que usen Android. Puede cambiar la instalación de los drivers pero el resto de elementos será igual. En cualquier caso, si tenéis alguna duda con los drivers, no dudéis en preguntarla en los comentarios.

Pasos previos

El primer paso es instalar el bundle de Android Studio. Un bundle es un instalador que incluye varias herramientas. Para el caso de Android, se incluye el kit de desarrollo de software (SDK), el entorno de programación (Android Studio) y otras herramientas auxiliares. Se puede descargar desde el siguiente enlace:

Mientras se descarga el SDK aprovecharemos para descargar también los drivers que permiten la depuración. Para el caso de bq, la forma más directa es entrando en la página de soporte y buscando el teléfono o la tableta que tenemos. En el caso de usar un dispositivo de otro fabricante, habrá un enlace similar en la Web del dispositivo.

Instalación de Android Studio

El instalador está en inglés pero es sencillo de usar. A continuación podréis ver todas las pantallas que componen el instalador.

Pantalla inicial del instalador de Android Studio

Pantalla inicial del instalador de Android Studio

Aceptamos los componentes que vienen por defecto.

Componentes del bundle

Componentes del bundle

Pulsamos en el botón Next para aceptar la licencia.

Licencia de Android Studio

Licencia de Android Studio

Si en el mismo equipo van a trabajar varios usuarios, conviene seleccionar otra ruta para el SDK de Android. Por defecto se instala en la carpeta del usuario.

Rutas de instalación

Rutas de instalación

Elegimos el nombre de la carpeta en el menú de inicio.

Carpeta en el menú de inicio

Carpeta en el menú de inicio

En este punto hay que esperar a que termine el instalador. Dependiendo de las características del ordenador puede tardar varios minutos.

Copia de los archivos

Copia de los archivos

La instalación ya ha finalizado y se puede empezar a trabajar con Android Studio.

Instalación finalizada

Instalación finalizada

Primer inicio del Android Studio

En el primer inicio se configuran tanto Android Studio como el SDK de Android. Cada versión de Android tiene una versión del SDK. Para empezar, conviene instalar la misma versión que usen los dispositivos que se van a usar. Si se ha usado previamente Android Studio, es posible importar la configuración. En caso contrario se deja seleccionada la opción por defecto.

Importación de la configuración de Android Studio

Importación de la configuración de Android Studio

Android Studio tiene también un asistente de inicio, parecido al que se ha usado en el instalador. Hay que pulsar en el botón Next.

Asistente de inicio de Android Studio

Asistente de inicio de Android Studio

En este paso se puede configurar en detalle el comportamiento de Android Studio. La opción seleccionada por defecto carga una configuración predeterminada. La otra opción da mayor flexibilidad en la configuración. Aquí podéis elegir la opción que más os interese. No afecta al desarrollo de aplicaciones.

Personalización de Android Studio

Personalización de Android Studio

El SDK lleva la última versión estable de Android. Más adelante se pueden descargar otras versiones.

Resumen del asistente

Resumen del asistente

El asistente ha finalizado.

Instalación de una versión concreta del SDK

En la pantalla inicial de Android Studio hay que pulsar en Configure y después en SDK Manager.

Pantalla inicial de Android Studio

Pantalla inicial de Android Studio

Aparecerá una nueva ventana con todas las versiones del SDK de Android. Marshmallow corresponde a la versión 23 del API.

APIs del SDK

APIs del SDK

Aceptamos la licencia y dejamos que se descargue y configure el SDK. Cuando finalice se puede cerrar la ventana pulsando en el botón Ok  Para ejecutar una aplicación en un teléfono o una tableta hay que cumplir varios criterios:

  • Activar las opciones de depuración en el dispositivo.
  • Instalar los drivers de ADB.
  • Aceptar la petición de conexión del ordenador.

Veremos a continuación cada apartado para la tableta Aquaris M8 y el teléfono X5 Plus.

Activación de la depuración

Dependiendo de la versión de Android, alguna pantalla puede cambiar ligeramente. Los pasos son los mismos con independencia de la versión de Android. Hay que entrar en la aplicación Ajustes y seleccionar el botón Información del tablet / Información del teléfono.

Ajustes del dispositivo

Ajustes del dispositivo

En la siguiente pantalla hay que seleccionar varias veces el Número de compilación. Aparecerá un contador indicando las pulsaciones que faltan para activar las opciones de desarrollo.

Activación de las opciones de desarrollo

Activación de las opciones de desarrollo

Volvemos a la pantalla anterior y saldrá una opción nueva.

Opciones de desarrollo activadas

Opciones de desarrollo activadas

Pulsamos en Opciones de desarrollo. Por último hay que seleccionar la opción Depuración por USB. Aparecerá una ventana para confirmar la activación.

Activación de la depuración por USB

Activación de la depuración por USB

Cuando esté todo configurado se mostrará en la barra superior el icono de esta versión de Android.

Indicador de depuración activa

Indicador de depuración activa

Instalar los drivers de ADB

Desconectamos el dispositivo del ordenador y abrimos el Administrador de dispositivos de Windows. Al conectar el dispositivo, tiene que aparecer en el árbol un nuevo dispositivo. Si tiene una señal de advertencia al lado del nombre, es necesario instalar los drivers de ADB. Como paso previo es recomendable desactivar el uso de drivers firmados ya que pueden bloquear la instalación del driver de ADB.

  • En el menú de Windows hay que buscar “Opciones de recuperación”.
  • Después hay que seleccionar Reiniciar ahora.
  • Aparecerá una pantalla azul.
    • Solucionar Problemas.
    • Configuración de inicio.
    • Reiniciar.
  • Después de reiniciar.
    • 7) Deshabilitar el uso obligatorio de controladores firmados.

Windows se iniciará de forma normal. Al apagar el equipo se vuelve a activar el uso de controladores firmados.

Aquaris M8 (Mediatek)

Hay que descomprimir el archivo de los drivers. Dentro aparecerán tres carpetas:

  • Drivers ADB
  • Drivers Hard Reset
  • M8 – Herramienta MTK Flash Tool

Dentro de la carpeta “Drivers ADB” hay un instalador. Lo ejecutamos y aparecerá la siguiente pantalla.

Error en el instalador de Mediatek

Error en el instalador de Mediatek

Para continuar es necesario hacer una pequeña modificación en el archivo C:\USB_Driver\ Install.bat. En la línea 15 hay que añadir el texto:

set osrecognized =1 && set PARAM =/S

Edición del instalador

Edición del instalador

Guardamos y ejecutamos el archivo . bat como Administrador (botón derecho, Ejecutar como Administrador).

Drivers de Mediatek instalados

Drivers de Mediatek instalados

El driver ya está instalado. Conectamos el dispositivo y nos aseguramos que tiene activada la conexión MTP.

Aquaris X5 Plus (Qualcomm)

En el caso de Qualcomm sólo tenemos un instalador. Lo ejecutamos con doble clic. Hay que pasar por todos los pasos del asistente pulsando el botón Siguiente. Cuando hace la instalación, es importante comprobar si aparece en la ventana el texto “Driver installation succefully”. Si aparece el texto quiere decir que el driver está bien instalado.

Aceptar la petición de conexión del ordenador

Como he comentado antes, aparte de activar las opciones de depuración hay que aceptar la firma digital del ordenador. Se puede hacer de varias formas pero la más sencilla es desde Android Studio. En el menú principal creamos un nuevo proyecto de ejemplo.

Nombre del proyecto

Nombre del proyecto

Dejamos los valores por defecto.

Dispositivos para los que se compila la aplicación

Dispositivos para los que se compila la aplicación

Esperamos a que Android Studio genere la configuración del proyecto.

Creación de la estructura del proyecto

Creación de la estructura del proyecto

Se pueden usar varias plantillas en la aplicación. Para hacerlo más sencillo usaremos la seleccionada.

Selección de la plantilla de la aplicación

Selección de la plantilla de la aplicación

Aquí dejamos también los parámetros por defecto.

Parámetros de la actividad

Parámetros de la actividad

Al finalizar el asistente se creará un proyecto con la plantilla que se ha seleccionado. Hay que pulsar en el botón Play (debajo del menú VCS).

Ejecución del proyecto

Ejecución del proyecto

Al pulsar el botón de Play se elige el destino de ejecución de la aplicación. Aparecerá una ventana en la que se puede elegir como destino un dispositivo real o uno virtual. En este punto tiene que aparecer el dispositivo con el mensaje que se muestra en la captura de pantalla.

Dispositivos detectados en Android Studio

Dispositivos detectados en Android Studio

En el dispositivo aparecerá una pantalla similar a la siguiente.

Firma en el dispositivo

Firma en el dispositivo

Al aceptar, cambiará la pantalla de Android Studio.

Dispositivo conectado en Android Studio

Dispositivo conectado en Android Studio

Pulsamos en el botón OK y se instalará la aplicación.

Aplicación de ejemplo en el Aquaris M8

Aplicación de ejemplo en el Aquaris M8

El resultado es el mismo en el teléfono con Nougat

Aplicación de ejemplo en el Aquaris X5 Plus

Aplicación de ejemplo en el Aquaris X5 Plus

 Conclusiones

A lo largo del artículo se ha visto la forma de instalar el bundle de Android Studio y los pasos que permiten depurar aplicaciones en un dispositivo real. Los pasos varían dependiendo del fabricante del SoC pero este punto no debería dar muchos problemas. Si alguno no puede instalar los drivers de ADB lo puede indicar en los comentarios y vemos la forma de solucionarlo. Hay que diferenciar entre los drivers de ADB y de Hard Reset. Cada uno se usa en una situación diferente y no son intercambiables. Se pueden instalar los drivers de Hard Reset pero Windows no los usará al activar ADB en el teléfono.

Más adelante publicaré un artículo equivalente usando la máquina virtual con Ubuntu Mate. Los pasos son similares pero cambia un poco la asociación de los drivers al dispositivo. En la siguiente entrega del proyecto se instalará el sistema operativo en la Raspberry Pi y se ejecutará una aplicación de ejemplo con la tarjeta Sensor Hat. Una vez estén los entornos de desarrollo de cada elemento funcionando, será el momento de empezar el proyecto.

La entrada Android Studio con Qualcomm y Mediatek se publicó primero en InnerZaurus.

Android Studio con Qualcomm y Mediatek

Mimecar - Sáb, 08/12/2017 - 09:21

Poco a poco los elementos del proyecto de verano empiezan a tomar forma. A la aplicación de la Raspberry Pi se le sumarán dos aplicaciones que funcionarán en Ubuntu Touch y en Android. En este artículo se verán los pasos para configurar el SDK de Android en Windows. No he descartado explicar los pasos en Ubuntu usando la máquina virtual que se creó en un artículo anterior. Simplemente, voy a explicar como se trabaja en los dos sistemas operativos. De esta forma se puede elegir el sistema operativo que es más práctico para programar la aplicación con Android. Como entorno se usará Android Studio ya que es el entorno oficial que usa Google.

Introducción

En InnerZaurus ya he publicado antes artículos similares. La diferencia es que esos artículos no tratan las últimas versiones de Android y de Windows. Por esa razón he aprovechado para actualizar la información. El entorno de desarrollo queda de la siguiente forma:

  • Windows 10 con la creators update.
  • Aquaris X5 Plus con Android Nougat (Qualcomm).
  • Aquaris M8 con Android Marshmallow (Mediatek).

Las explicaciones del artículo se aplican también a otros terminales que usen Android. Puede cambiar la instalación de los drivers pero el resto de elementos será igual. En cualquier caso, si tenéis alguna duda con los drivers, no dudéis en preguntarla en los comentarios.

Pasos previos

El primer paso es instalar el bundle de Android Studio. Un bundle es un instalador que incluye varias herramientas. Para el caso de Android, se incluye el kit de desarrollo de software (SDK), el entorno de programación (Android Studio) y otras herramientas auxiliares. Se puede descargar desde el siguiente enlace:

Mientras se descarga el SDK aprovecharemos para descargar también los drivers que permiten la depuración. Para el caso de bq, la forma más directa es entrando en la página de soporte y buscando el teléfono o la tableta que tenemos. En el caso de usar un dispositivo de otro fabricante, habrá un enlace similar en la Web del dispositivo.

Instalación de Android Studio

El instalador está en inglés pero es sencillo de usar. A continuación podréis ver todas las pantallas que componen el instalador.

Pantalla inicial del instalador de Android Studio

Pantalla inicial del instalador de Android Studio

Aceptamos los componentes que vienen por defecto.

Componentes del bundle

Componentes del bundle

Pulsamos en el botón Next para aceptar la licencia.

Licencia de Android Studio

Licencia de Android Studio

Si en el mismo equipo van a trabajar varios usuarios, conviene seleccionar otra ruta para el SDK de Android. Por defecto se instala en la carpeta del usuario.

Rutas de instalación

Rutas de instalación

Elegimos el nombre de la carpeta en el menú de inicio.

Carpeta en el menú de inicio

Carpeta en el menú de inicio

En este punto hay que esperar a que termine el instalador. Dependiendo de las características del ordenador puede tardar varios minutos.

Copia de los archivos

Copia de los archivos

La instalación ya ha finalizado y se puede empezar a trabajar con Android Studio.

Instalación finalizada

Instalación finalizada

Primer inicio del Android Studio

En el primer inicio se configuran tanto Android Studio como el SDK de Android. Cada versión de Android tiene una versión del SDK. Para empezar, conviene instalar la misma versión que usen los dispositivos que se van a usar. Si se ha usado previamente Android Studio, es posible importar la configuración. En caso contrario se deja seleccionada la opción por defecto.

Importación de la configuración de Android Studio

Importación de la configuración de Android Studio

Android Studio tiene también un asistente de inicio, parecido al que se ha usado en el instalador. Hay que pulsar en el botón Next.

Asistente de inicio de Android Studio

Asistente de inicio de Android Studio

En este paso se puede configurar en detalle el comportamiento de Android Studio. La opción seleccionada por defecto carga una configuración predeterminada. La otra opción da mayor flexibilidad en la configuración. Aquí podéis elegir la opción que más os interese. No afecta al desarrollo de aplicaciones.

Personalización de Android Studio

Personalización de Android Studio

El SDK lleva la última versión estable de Android. Más adelante se pueden descargar otras versiones.

Resumen del asistente

Resumen del asistente

El asistente ha finalizado.

Instalación de una versión concreta del SDK

En la pantalla inicial de Android Studio hay que pulsar en Configure y después en SDK Manager.

Pantalla inicial de Android Studio

Pantalla inicial de Android Studio

Aparecerá una nueva ventana con todas las versiones del SDK de Android. Marshmallow corresponde a la versión 23 del API.

APIs del SDK

APIs del SDK

Aceptamos la licencia y dejamos que se descargue y configure el SDK. Cuando finalice se puede cerrar la ventana pulsando en el botón Ok  Para ejecutar una aplicación en un teléfono o una tableta hay que cumplir varios criterios:

  • Activar las opciones de depuración en el dispositivo.
  • Instalar los drivers de ADB.
  • Aceptar la petición de conexión del ordenador.

Veremos a continuación cada apartado para la tableta Aquaris M8 y el teléfono X5 Plus.

Activación de la depuración

Dependiendo de la versión de Android, alguna pantalla puede cambiar ligeramente. Los pasos son los mismos con independencia de la versión de Android. Hay que entrar en la aplicación Ajustes y seleccionar el botón Información del tablet / Información del teléfono.

Ajustes del dispositivo

Ajustes del dispositivo

En la siguiente pantalla hay que seleccionar varias veces el Número de compilación. Aparecerá un contador indicando las pulsaciones que faltan para activar las opciones de desarrollo.

Activación de las opciones de desarrollo

Activación de las opciones de desarrollo

Volvemos a la pantalla anterior y saldrá una opción nueva.

Opciones de desarrollo activadas

Opciones de desarrollo activadas

Pulsamos en Opciones de desarrollo. Por último hay que seleccionar la opción Depuración por USB. Aparecerá una ventana para confirmar la activación.

Activación de la depuración por USB

Activación de la depuración por USB

Cuando esté todo configurado se mostrará en la barra superior el icono de esta versión de Android.

Indicador de depuración activa

Indicador de depuración activa

Instalar los drivers de ADB

Desconectamos el dispositivo del ordenador y abrimos el Administrador de dispositivos de Windows. Al conectar el dispositivo, tiene que aparecer en el árbol un nuevo dispositivo. Si tiene una señal de advertencia al lado del nombre, es necesario instalar los drivers de ADB. Como paso previo es recomendable desactivar el uso de drivers firmados ya que pueden bloquear la instalación del driver de ADB.

  • En el menú de Windows hay que buscar “Opciones de recuperación”.
  • Después hay que seleccionar Reiniciar ahora.
  • Aparecerá una pantalla azul.
    • Solucionar Problemas.
    • Configuración de inicio.
    • Reiniciar.
  • Después de reiniciar.
    • 7) Deshabilitar el uso obligatorio de controladores firmados.

Windows se iniciará de forma normal. Al apagar el equipo se vuelve a activar el uso de controladores firmados.

Aquaris M8 (Mediatek)

Hay que descomprimir el archivo de los drivers. Dentro aparecerán tres carpetas:

  • Drivers ADB
  • Drivers Hard Reset
  • M8 – Herramienta MTK Flash Tool

Dentro de la carpeta “Drivers ADB” hay un instalador. Lo ejecutamos y aparecerá la siguiente pantalla.

Error en el instalador de Mediatek

Error en el instalador de Mediatek

Para continuar es necesario hacer una pequeña modificación en el archivo C:\USB_Driver\ Install.bat. En la línea 15 hay que añadir el texto:

set osrecognized =1 && set PARAM =/S

Edición del instalador

Edición del instalador

Guardamos y ejecutamos el archivo . bat como Administrador (botón derecho, Ejecutar como Administrador).

Drivers de Mediatek instalados

Drivers de Mediatek instalados

El driver ya está instalado. Conectamos el dispositivo y nos aseguramos que tiene activada la conexión MTP.

Aquaris X5 Plus (Qualcomm)

En el caso de Qualcomm sólo tenemos un instalador. Lo ejecutamos con doble clic. Hay que pasar por todos los pasos del asistente pulsando el botón Siguiente. Cuando hace la instalación, es importante comprobar si aparece en la ventana el texto “Driver installation succefully”. Si aparece el texto quiere decir que el driver está bien instalado.

Aceptar la petición de conexión del ordenador

Como he comentado antes, aparte de activar las opciones de depuración hay que aceptar la firma digital del ordenador. Se puede hacer de varias formas pero la más sencilla es desde Android Studio. En el menú principal creamos un nuevo proyecto de ejemplo.

Nombre del proyecto

Nombre del proyecto

Dejamos los valores por defecto.

Dispositivos para los que se compila la aplicación

Dispositivos para los que se compila la aplicación

Esperamos a que Android Studio genere la configuración del proyecto.

Creación de la estructura del proyecto

Creación de la estructura del proyecto

Se pueden usar varias plantillas en la aplicación. Para hacerlo más sencillo usaremos la seleccionada.

Selección de la plantilla de la aplicación

Selección de la plantilla de la aplicación

Aquí dejamos también los parámetros por defecto.

Parámetros de la actividad

Parámetros de la actividad

Al finalizar el asistente se creará un proyecto con la plantilla que se ha seleccionado. Hay que pulsar en el botón Play (debajo del menú VCS).

Ejecución del proyecto

Ejecución del proyecto

Al pulsar el botón de Play se elige el destino de ejecución de la aplicación. Aparecerá una ventana en la que se puede elegir como destino un dispositivo real o uno virtual. En este punto tiene que aparecer el dispositivo con el mensaje que se muestra en la captura de pantalla.

Dispositivos detectados en Android Studio

Dispositivos detectados en Android Studio

En el dispositivo aparecerá una pantalla similar a la siguiente.

Firma en el dispositivo

Firma en el dispositivo

Al aceptar, cambiará la pantalla de Android Studio.

Dispositivo conectado en Android Studio

Dispositivo conectado en Android Studio

Pulsamos en el botón OK y se instalará la aplicación.

Aplicación de ejemplo en el Aquaris M8

Aplicación de ejemplo en el Aquaris M8

El resultado es el mismo en el teléfono con Nougat

Aplicación de ejemplo en el Aquaris X5 Plus

Aplicación de ejemplo en el Aquaris X5 Plus

 Conclusiones

A lo largo del artículo se ha visto la forma de instalar el bundle de Android Studio y los pasos que permiten depurar aplicaciones en un dispositivo real. Los pasos varían dependiendo del fabricante del SoC pero este punto no debería dar muchos problemas. Si alguno no puede instalar los drivers de ADB lo puede indicar en los comentarios y vemos la forma de solucionarlo. Hay que diferenciar entre los drivers de ADB y de Hard Reset. Cada uno se usa en una situación diferente y no son intercambiables. Se pueden instalar los drivers de Hard Reset pero Windows no los usará al activar ADB en el teléfono.

Más adelante publicaré un artículo equivalente usando la máquina virtual con Ubuntu Mate. Los pasos son similares pero cambia un poco la asociación de los drivers al dispositivo. En la siguiente entrega del proyecto se instalará el sistema operativo en la Raspberry Pi y se ejecutará una aplicación de ejemplo con la tarjeta Sensor Hat. Una vez estén los entornos de desarrollo de cada elemento funcionando, será el momento de empezar el proyecto.

La entrada Android Studio con Qualcomm y Mediatek se publicó primero en InnerZaurus.

Compra del material necesario para el proyecto de verano

Innerzaurus - Jue, 08/10/2017 - 05:13

Después de la introducción al proyecto de verano, el siguiente paso es conseguir el material necesario. En este artículo daré un listado del material necesario. No es una lista cerrada sino que se puede adaptar al material que tengamos. Por ejemplo, en el artículo usaré una Raspberry Pi 3 que ya incluye un módulo Bluetooth.  Esa tarjeta se puede sustituir por una Raspberry Pi 2 con un Bluetooth por USB  Lo mismo se aplica a los dispositivos con Ubuntu Touch / Android.  Se podría llegar a sustituir por el ordenador aunque estuviera un poco más limitado. El único elemento que no se puede sustituir es la tarjeta Sensor Hat. Si alguno no la puede conseguir puede comentarlo en el foro del proyecto de verano y se busca una alternativa. Lo importante es aprender con este proyecto.

Listado de material

Para seguir este proyecto hace falta un ordenador, una Raspberry Pi con su tarjeta de expansión y un dispositivo móvil. El material que se necesita es:

  • Placa Raspberry 3 Model B.
  • Tarjeta de expansión Sensor Hat.
  • Cargador.
  • Tarjeta SD para contener el sistema operativo.
  • Tornillos para unir la Raspberry Pi 3 y la tarjeta Sensor Hat (opcionales).

En principio no hace falta comprar la caja de la Raspberry Pi 3. Queda más protegida pero en ese caso es complicado utilizar tarjetas de expansión.

Matriz RGB de la tarjeta Sensor Hat

Matriz RGB de la tarjeta Sensor Hat

Tiendas para comprar el material

El material se puede comprar en varias tiendas. En muchos casos se pueden comprar packs de inicio con la Raspberry Pi 3 y todos los elementos necesarios para poder empezar a trabajar. De momento pongo sólo el precio de los packs ya que viene todo lo necesario. Si ya tenéis alguno de los elementos podéis preguntarme y pongo las referencias de los productos sueltos.

Amazon
  • Pack (72,98 €):
    • Placa Raspberry 3 Model B.
    • Caja Oficial en Negro/Gris.
    • Cargador Oficial Negro.
    • Tarjeta SD de 8GB con Noobs preinstalado.
  • Sensor Hat (43,94 €).
  • Tornillos para unir las dos tarjetas.
  • Gastos de envío: Amazon Prime 0 €.
RS
  • Pack (61,41 €):
    • Placa Raspberry 3 Model B (código RS 896-8660).
    • Fuente de alimentación USB oficial para Raspberry Pi (código RS 909-8135).
    • Cable HDMI oficial para Raspberry Pi (código RS 111-1030).
    • Caja Oficial en Negro/Gris (código RS 908-4215).
    • Tarjeta SD de 8GB con Noobs preinstalado.
  • Sensor Hat (27,60 €).
  • Tornillos para unir las dos tarjetas (3,60€).
  • Gastos de envío: 5 € (pedidos inferiores a 90 €).
Kubii
  • Pack (69,90 €):
    • Placa Raspberry 3 Model B.
    • Caja Oficial en Negro/Gris.
    • Tarjeta SD de 16GB con Noobs preinstalado
    • Cargador oficial.
  • Sensor Hat (no la tienen).
  • Tornillos para unir las dos tarjetas.
  • Gastos de envío: 8,95 €

Los elementos tachados quiere decir que no los tienen como producto asociado a la Raspberry Pi 3.

¿Dónde comprar?

Personalmente el mejor sitio para comprar el pack es RS por varios factores. El primero es que venden a particulares. Los precios son más económicos y tienen en su catálogo otras tarjetas de expansión y accesorios. El pago es por adelantado y suelen tardar 48h en enviar los productos si están en stock.

Otra opción, aunque es más cara, es Amazon. El precio aumenta pero la entrega también es en 24 / 48h. En Kubii no he comprado por lo que no sé como trabajan. Los plazos de entrega ya se van a una semana.

Se puede hacer un pedido conjunto y después enviar a cada uno los productos por mensajería. Tenéis de plazo hasta el miércoles 16 de agosto. Ya lo comentáis en el foro.

Conclusiones

Tenéis hasta el miércoles 16 para apuntaros a una compra junta. Esa noche lanzaré el pedido a RS. En principio compraré un pack (y alguna cosilla más) pero puedo comprar más y luego ajustar los pagos con cada uno.

En la siguiente entrega ya empezará la instalación de Raspbian y la conexión de la tarjeta Sensor Hat. El proceso de instalación de Noobs / Raspbian es muy similar. Sólo cambia la imagen que se usa y un par de detalles. No es mala idea tener una tarjeta SD un poco más grande. La tarjeta que viene en los packs es pequeña.

Más información

La entrada Compra del material necesario para el proyecto de verano se publicó primero en InnerZaurus.

Compra del material necesario para el proyecto de verano

Mimecar - Jue, 08/10/2017 - 05:13

Después de la introducción al proyecto de verano, el siguiente paso es conseguir el material necesario. En este artículo daré un listado del material necesario. No es una lista cerrada sino que se puede adaptar al material que tengamos. Por ejemplo, en el artículo usaré una Raspberry Pi 3 que ya incluye un módulo Bluetooth.  Esa tarjeta se puede sustituir por una Raspberry Pi 2 con un Bluetooth por USB  Lo mismo se aplica a los dispositivos con Ubuntu Touch / Android.  Se podría llegar a sustituir por el ordenador aunque estuviera un poco más limitado. El único elemento que no se puede sustituir es la tarjeta Sensor Hat. Si alguno no la puede conseguir puede comentarlo en el foro del proyecto de verano y se busca una alternativa. Lo importante es aprender con este proyecto.

Listado de material

Para seguir este proyecto hace falta un ordenador, una Raspberry Pi con su tarjeta de expansión y un dispositivo móvil. El material que se necesita es:

  • Placa Raspberry 3 Model B.
  • Tarjeta de expansión Sensor Hat.
  • Cargador.
  • Tarjeta SD para contener el sistema operativo.
  • Tornillos para unir la Raspberry Pi 3 y la tarjeta Sensor Hat (opcionales).

En principio no hace falta comprar la caja de la Raspberry Pi 3. Queda más protegida pero en ese caso es complicado utilizar tarjetas de expansión.

Matriz RGB de la tarjeta Sensor Hat

Matriz RGB de la tarjeta Sensor Hat

Tiendas para comprar el material

El material se puede comprar en varias tiendas. En muchos casos se pueden comprar packs de inicio con la Raspberry Pi 3 y todos los elementos necesarios para poder empezar a trabajar. De momento pongo sólo el precio de los packs ya que viene todo lo necesario. Si ya tenéis alguno de los elementos podéis preguntarme y pongo las referencias de los productos sueltos.

Amazon
  • Pack (72,98 €):
    • Placa Raspberry 3 Model B.
    • Caja Oficial en Negro/Gris.
    • Cargador Oficial Negro.
    • Tarjeta SD de 8GB con Noobs preinstalado.
  • Sensor Hat (43,94 €).
  • Tornillos para unir las dos tarjetas.
  • Gastos de envío: Amazon Prime 0 €.
RS
  • Pack (61,41 €):
    • Placa Raspberry 3 Model B (código RS 896-8660).
    • Fuente de alimentación USB oficial para Raspberry Pi (código RS 909-8135).
    • Cable HDMI oficial para Raspberry Pi (código RS 111-1030).
    • Caja Oficial en Negro/Gris (código RS 908-4215).
    • Tarjeta SD de 8GB con Noobs preinstalado.
  • Sensor Hat (27,60 €).
  • Tornillos para unir las dos tarjetas (3,60€).
  • Gastos de envío: 5 € (pedidos inferiores a 90 €).
Kubii
  • Pack (69,90 €):
    • Placa Raspberry 3 Model B.
    • Caja Oficial en Negro/Gris.
    • Tarjeta SD de 16GB con Noobs preinstalado
    • Cargador oficial.
  • Sensor Hat (no la tienen).
  • Tornillos para unir las dos tarjetas.
  • Gastos de envío: 8,95 €

Los elementos tachados quiere decir que no los tienen como producto asociado a la Raspberry Pi 3.

¿Dónde comprar?

Personalmente el mejor sitio para comprar el pack es RS por varios factores. El primero es que venden a particulares. Los precios son más económicos y tienen en su catálogo otras tarjetas de expansión y accesorios. El pago es por adelantado y suelen tardar 48h en enviar los productos si están en stock.

Otra opción, aunque es más cara, es Amazon. El precio aumenta pero la entrega también es en 24 / 48h. En Kubii no he comprado por lo que no sé como trabajan. Los plazos de entrega ya se van a una semana.

Se puede hacer un pedido conjunto y después enviar a cada uno los productos por mensajería. Tenéis de plazo hasta el miércoles 16 de agosto. Ya lo comentáis en el foro.

Conclusiones

Tenéis hasta el miércoles 16 para apuntaros a una compra junta. Esa noche lanzaré el pedido a RS. En principio compraré un pack (y alguna cosilla más) pero puedo comprar más y luego ajustar los pagos con cada uno.

En la siguiente entrega ya empezará la instalación de Raspbian y la conexión de la tarjeta Sensor Hat. El proceso de instalación de Noobs / Raspbian es muy similar. Sólo cambia la imagen que se usa y un par de detalles. No es mala idea tener una tarjeta SD un poco más grande. La tarjeta que viene en los packs es pequeña.

Más información

La entrada Compra del material necesario para el proyecto de verano se publicó primero en InnerZaurus.

Usar una máquina virtual como entorno de desarrollo integrado

Innerzaurus - Mar, 08/08/2017 - 08:05

Para programar una aplicación hace falta un ordenador con un sistema operativo y varias herramientas de desarrollo. Este entorno de desarrollo es relativamente sencillo de preparar. El problema puede aparecer si se trabaja en un equipo y cada programador tiene un entorno diferente. Las herramientas pueden ser las mismas pero con versiones ligeramente diferentes. Ésto en principio no es un problema pero puede suponerlo si hay cambios en esas versiones que afectan al código desarrollado.

Hay dos formas de afrontar este problema. La primera es usando todo el equipo las mismas versiones de las herramientas de desarrollo. Si se trabaja en varios proyectos al mismo tiempo con diferentes versiones de las librerías puede ser un poco complicado. La otra forma consiste en usar una máquina virtual que contenga todas las herramientas de desarrollo y sea la misma para todo el equipo.

Elección de la distribución

En la máquina virtual se puede instalar cualquier distribución de GNU/Linux. La elección entre una distribución u otra depende de las necesidades que se tengan. Por ejemplo, si la aplicación a programar se va a ejecutar en un servidor con Ubuntu conviene usar esa distribución. Aunque se puede usar otra distribución sin demasiados problemas, si que es cierto que el desarrollo se simplifica si los entornos de desarrollo y producción son el mismo.

Para este artículo he elegido como distribución Ubuntu Mate 16.04. Las razones son varias:

  • Está basada en la última versión LTS de Ubuntu.
  • El SDK de Ubuntu Touch tiene un PPA preparado para Ubuntu 16.04
  • Se puede configurar Mate para que haga el renderizado del escritorio por software. En la máquina virtual hay problemas con las aplicaciones que usan OpenGL.
Instalación del entorno de desarrollo

De la misma forma que se elige una distribución, se puede elegir la herramienta de virtualización  En mi caso he elegido VirtualBox porque la he usado durante más tiempo. Otra opción es emplear VMware. Con independencia de la herramientas que se use, conviene que sea multiplataforma. De esa forma se puede trabajar con independencia del sistema operativo del ordenador host.

En VirtualBox hay que crear una máquina virtual que tenga una configuración similar a la mostrada a continuación. De forma resumida interesa un disco duro de 25 GB con el espacio preasignado y tanta memoria RAM como sea posible.

Configuración de VirtualBox

Configuración de VirtualBox

Una vez se ha iniciado la máquina virtual hay que seguir el asistente de instalación.

Inicio de Ubuntu Mate

Inicio de Ubuntu Mate

Al marcar las dos casillas se instalan las actualizaciones y se habilitan los repositorios que tienen software privativo.

Actualizaciones y software de terceros

Actualizaciones y software de terceros

En el siguiente paso se configuran las particiones del disco duro. Si el disco tiene datos aparecerán las opciones que se muestran en la captura de pantalla.

Particiones del disco duro

Particiones del disco duro

 

Confirmación de las particiones

Confirmación de las particiones

Después de configurar las particiones empezará la instalación de Ubuntu Mate. Mientras se realiza la instalación hay que configurar algunas opciones del entorno como son la localización, el idioma o los datos del usuario.

Localización del usuario

Localización del usuario

 

Disposición del teclado

Disposición del teclado

Configuración del usuario

Configuración del usuario

Después de un par de minutos el instalador finalizará y nos pedirá reiniciar el equipo.

Instalación finalizada

Instalación finalizada

Ya se puede empezar a trabajar con Ubuntu Mate.

Primer inicio

Primer inicio 

Instalación de las Guest Addition

Tanto VirtualBox como VMware tienen un paquete de utilidades que mejora la integración entre el host y la máquina virtual. Por esta razón el siguiente paso es instalar dicho paquete de utilidades. Antes de instalar las Guest Addition en VirtualBox hay que instalar las dependencias. Para el caso de Ubuntu los paquetes son build-essential y dkms.

Instalación de las Guest Addition (1)

Instalación de las Guest Addition (1)

Después hay que seleccionar en el menú de VirtualBox la opción Dispositivos/ Insertar imagen de CD de las <<Guest Addtion >>. Aparecerá un dispositivo nuevo en el escritorio. Hay que abrirlo para que se ejecute el instalador. Esperamos a que se compilen los módulos y después reiniciamos la máquina virtual.

Instalación de las Guest Addition (2)

Instalación de las Guest Addition (2)

Personalización de Mate

Una de las ventajas que tiene Mate es que se puede personalizar para adaptarlo a nuestros gustos. Si queremos trabajar con el estilo de Unity, sólo hay que ejecutar la aplicación (instalada de serie) Mate Tweak y configurarlo. La primera captura corresponde a la configuración por defecto mientras que la segunda en la configuración con Unity.

Configuración de Mate Tweak

Configuración de Mate Tweak

Configuración de Munity

Configuración de Mutiny

Instalación de las herramientas de desarrollo

Una vez se tiene la distribución instalada en la máquina virtual, el siguiente paso es instalar las herramientas de desarrollo. En mi caso voy a utilizar la máquina virtual para programar aplicaciones para Ubuntu Touch usando QML y JavaScript. Los comandos serían (podéis verlos en detalle en el siguiente enlace):

# Actualización del sistema sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade # Instalación del repositorio del SDK sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt-get update && sudo apt-get install ubuntu-sdk # Asignación del usuario al grupo lxd sudo usermod -a -G lxd usuario

Para lanzar el SDK de Ubuntu Touch hay que cerrar la sesión. Nota importante: no hay que lanzar ahora el comando o será necesario borrar la configuración del entorno de desarrollo para continuar. Lo hago a modo de ejemplo para que se vea el problema que aparecerá. Al lanzar el entorno (ubuntu-sdk-ide) se llega a la siguiente pantalla. La parte centra corresponde al editor y con la pantalla negra puede ser un poco complicado usarlo.

Error de OpenGL en QtCreator

Error de OpenGL en QtCreator

Configuraciones especiales

Como he comentado antes, las aplicaciones que usan OpenGL pueden dar problemas al usarlas en la máquina virtual. Un ejemplo se observa en el editor Atom  El editor se puede instalar como paquete Snap o descargando el archivo . deb de la Web del proyecto. Al ejecutar la aplicación, aparecerá una pantalla vacía.

Error de Atom al usar OpenGL

Error de Atom al usar OpenGL

Para que se pueda usar la aplicación es necesario deshabilitar el uso de OpenGL. Hay que ejecutar en una consola el comando.

atom --disable-gpu

El problema se solucionará aunque se pierde la aceleración que usa el editor.

Atom sin usar OpenGL

Atom sin usar OpenGL

Para poder trabajar con el IDE de Ubuntu Touch hay que hacer una cosa similar. Se tiene que lanzar el entorno con el comando:

ubuntu-sdk-ide -noload Welcome

Tiene que aparecer el asistente de inicio en el que se configura el SDK de Ubuntu. Si no aparece habéis ejecutado el IDE sin leer la advertencia. No es un problema grande. Hay que ir a la carpeta ~/. config/ y borrar la carpeta QtProject. Después se tiene que lanzar el IDE con el comando que he puesto antes.

QtCreator sin OpenGL

QtCreator sin OpenGL

Para hacer el cambio permanente hay que finalizar el asistente. Después en el menú Help /About Plugins hay que desmarcar el Plugin ‘Welcome’. Con este cambio ya se puede lanzar de forma normal el SDK.

Desactivar el plugin Welcome en QtCreator

Desactivar el plugin Welcome en QtCreator

Conclusiones
En el artículo se ha instalado Ubuntu Mate 16.04 en una máquina virtual y dos aplicaciones destinadas al desarrollo: el SDK de Ubuntu Touch y el editor Atom. Ambas aplicaciones usan OpenGL y no funcionan directamente en la máquina virtual. Sólo hay que hacer unos pequeños cambios para trabajar sin problemas. Hay otra forma de evitar este problema y consiste en deshabilitar la aceleración 3D de la máquina virtual. Este cambio afecta a todo el sistema y dependiendo del entorno que se use, puede ser más o menos viable.
Una vez se han configurado todas las aplicaciones de la máquina virtual es posible guardar su estado (snapshot). De esta forma se puede restaurar el estado con independencia de como esté la máquina virtual. Por ejemplo, se instala una versión más reciente de una librería y en el proceso se rompe parte del sistema. Para solucionar el problema sólo hay que volver al último snapshot y el sistema estará como si no hubiera pasado nada. A efectos de tiempo de trabajo ésto puede suponer un par de horas en restaurar el entorno de desarrollo.

La entrada Usar una máquina virtual como entorno de desarrollo integrado se publicó primero en InnerZaurus.

Usar una máquina virtual como entorno de desarrollo integrado

Mimecar - Mar, 08/08/2017 - 08:05

Para programar una aplicación hace falta un ordenador con un sistema operativo y varias herramientas de desarrollo. Este entorno de desarrollo es relativamente sencillo de preparar. El problema puede aparecer si se trabaja en un equipo y cada programador tiene un entorno diferente. Las herramientas pueden ser las mismas pero con versiones ligeramente diferentes. Ésto en principio no es un problema pero puede suponerlo si hay cambios en esas versiones que afectan al código desarrollado.

Hay dos formas de afrontar este problema. La primera es usando todo el equipo las mismas versiones de las herramientas de desarrollo. Si se trabaja en varios proyectos al mismo tiempo con diferentes versiones de las librerías puede ser un poco complicado. La otra forma consiste en usar una máquina virtual que contenga todas las herramientas de desarrollo y sea la misma para todo el equipo.

Elección de la distribución

En la máquina virtual se puede instalar cualquier distribución de GNU/Linux. La elección entre una distribución u otra depende de las necesidades que se tengan. Por ejemplo, si la aplicación a programar se va a ejecutar en un servidor con Ubuntu conviene usar esa distribución. Aunque se puede usar otra distribución sin demasiados problemas, si que es cierto que el desarrollo se simplifica si los entornos de desarrollo y producción son el mismo.

Para este artículo he elegido como distribución Ubuntu Mate 16.04. Las razones son varias:

  • Está basada en la última versión LTS de Ubuntu.
  • El SDK de Ubuntu Touch tiene un PPA preparado para Ubuntu 16.04
  • Se puede configurar Mate para que haga el renderizado del escritorio por software. En la máquina virtual hay problemas con las aplicaciones que usan OpenGL.
Instalación del entorno de desarrollo

De la misma forma que se elige una distribución, se puede elegir la herramienta de virtualización  En mi caso he elegido VirtualBox porque la he usado durante más tiempo. Otra opción es emplear VMware. Con independencia de la herramientas que se use, conviene que sea multiplataforma. De esa forma se puede trabajar con independencia del sistema operativo del ordenador host.

En VirtualBox hay que crear una máquina virtual que tenga una configuración similar a la mostrada a continuación. De forma resumida interesa un disco duro de 25 GB con el espacio preasignado y tanta memoria RAM como sea posible.

Configuración de VirtualBox

Configuración de VirtualBox

Una vez se ha iniciado la máquina virtual hay que seguir el asistente de instalación.

Inicio de Ubuntu Mate

Inicio de Ubuntu Mate

Al marcar las dos casillas se instalan las actualizaciones y se habilitan los repositorios que tienen software privativo.

Actualizaciones y software de terceros

Actualizaciones y software de terceros

En el siguiente paso se configuran las particiones del disco duro. Si el disco tiene datos aparecerán las opciones que se muestran en la captura de pantalla.

Particiones del disco duro

Particiones del disco duro

 

Confirmación de las particiones

Confirmación de las particiones

Después de configurar las particiones empezará la instalación de Ubuntu Mate. Mientras se realiza la instalación hay que configurar algunas opciones del entorno como son la localización, el idioma o los datos del usuario.

Localización del usuario

Localización del usuario

 

Disposición del teclado

Disposición del teclado

Configuración del usuario

Configuración del usuario

Después de un par de minutos el instalador finalizará y nos pedirá reiniciar el equipo.

Instalación finalizada

Instalación finalizada

Ya se puede empezar a trabajar con Ubuntu Mate.

Primer inicio

Primer inicio 

Instalación de las Guest Addition

Tanto VirtualBox como VMware tienen un paquete de utilidades que mejora la integración entre el host y la máquina virtual. Por esta razón el siguiente paso es instalar dicho paquete de utilidades. Antes de instalar las Guest Addition en VirtualBox hay que instalar las dependencias. Para el caso de Ubuntu los paquetes son build-essential y dkms.

Instalación de las Guest Addition (1)

Instalación de las Guest Addition (1)

Después hay que seleccionar en el menú de VirtualBox la opción Dispositivos/ Insertar imagen de CD de las <<Guest Addtion >>. Aparecerá un dispositivo nuevo en el escritorio. Hay que abrirlo para que se ejecute el instalador. Esperamos a que se compilen los módulos y después reiniciamos la máquina virtual.

Instalación de las Guest Addition (2)

Instalación de las Guest Addition (2)

Personalización de Mate

Una de las ventajas que tiene Mate es que se puede personalizar para adaptarlo a nuestros gustos. Si queremos trabajar con el estilo de Unity, sólo hay que ejecutar la aplicación (instalada de serie) Mate Tweak y configurarlo. La primera captura corresponde a la configuración por defecto mientras que la segunda en la configuración con Unity.

Configuración de Mate Tweak

Configuración de Mate Tweak

Configuración de Munity

Configuración de Mutiny

Instalación de las herramientas de desarrollo

Una vez se tiene la distribución instalada en la máquina virtual, el siguiente paso es instalar las herramientas de desarrollo. En mi caso voy a utilizar la máquina virtual para programar aplicaciones para Ubuntu Touch usando QML y JavaScript. Los comandos serían (podéis verlos en detalle en el siguiente enlace):

# Actualización del sistema sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade # Instalación del repositorio del SDK sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt-get update && sudo apt-get install ubuntu-sdk # Asignación del usuario al grupo lxd sudo usermod -a -G lxd usuario

Para lanzar el SDK de Ubuntu Touch hay que cerrar la sesión. Nota importante: no hay que lanzar ahora el comando o será necesario borrar la configuración del entorno de desarrollo para continuar. Lo hago a modo de ejemplo para que se vea el problema que aparecerá. Al lanzar el entorno (ubuntu-sdk-ide) se llega a la siguiente pantalla. La parte centra corresponde al editor y con la pantalla negra puede ser un poco complicado usarlo.

Error de OpenGL en QtCreator

Error de OpenGL en QtCreator

Configuraciones especiales

Como he comentado antes, las aplicaciones que usan OpenGL pueden dar problemas al usarlas en la máquina virtual. Un ejemplo se observa en el editor Atom  El editor se puede instalar como paquete Snap o descargando el archivo . deb de la Web del proyecto. Al ejecutar la aplicación, aparecerá una pantalla vacía.

Error de Atom al usar OpenGL

Error de Atom al usar OpenGL

Para que se pueda usar la aplicación es necesario deshabilitar el uso de OpenGL. Hay que ejecutar en una consola el comando.

atom --disable-gpu

El problema se solucionará aunque se pierde la aceleración que usa el editor.

Atom sin usar OpenGL

Atom sin usar OpenGL

Para poder trabajar con el IDE de Ubuntu Touch hay que hacer una cosa similar. Se tiene que lanzar el entorno con el comando:

ubuntu-sdk-ide -noload Welcome

Tiene que aparecer el asistente de inicio en el que se configura el SDK de Ubuntu. Si no aparece habéis ejecutado el IDE sin leer la advertencia. No es un problema grande. Hay que ir a la carpeta ~/. config/ y borrar la carpeta QtProject. Después se tiene que lanzar el IDE con el comando que he puesto antes.

QtCreator sin OpenGL

QtCreator sin OpenGL

Para hacer el cambio permanente hay que finalizar el asistente. Después en el menú Help /About Plugins hay que desmarcar el Plugin ‘Welcome’. Con este cambio ya se puede lanzar de forma normal el SDK.

Desactivar el plugin Welcome en QtCreator

Desactivar el plugin Welcome en QtCreator

Conclusiones
En el artículo se ha instalado Ubuntu Mate 16.04 en una máquina virtual y dos aplicaciones destinadas al desarrollo: el SDK de Ubuntu Touch y el editor Atom. Ambas aplicaciones usan OpenGL y no funcionan directamente en la máquina virtual. Sólo hay que hacer unos pequeños cambios para trabajar sin problemas. Hay otra forma de evitar este problema y consiste en deshabilitar la aceleración 3D de la máquina virtual. Este cambio afecta a todo el sistema y dependiendo del entorno que se use, puede ser más o menos viable.
Una vez se han configurado todas las aplicaciones de la máquina virtual es posible guardar su estado (snapshot). De esta forma se puede restaurar el estado con independencia de como esté la máquina virtual. Por ejemplo, se instala una versión más reciente de una librería y en el proceso se rompe parte del sistema. Para solucionar el problema sólo hay que volver al último snapshot y el sistema estará como si no hubiera pasado nada. A efectos de tiempo de trabajo ésto puede suponer un par de horas en restaurar el entorno de desarrollo.

La entrada Usar una máquina virtual como entorno de desarrollo integrado se publicó primero en InnerZaurus.

Ha fallecido Landon Clay, fundador del Instituto Clay de Matemáticas

Gaussianos - Mar, 08/08/2017 - 05:00

Landon Clay, el fundador del Instituto Clay de Matemáticas, falleció el pasado 29 de julio. Con su fallecimiento, las matemáticas actuales pierden a una persona que ha apoyado enormemente el desarrollo y el avance las matemáticas a nivel mundial.

Landon Clay con Maryam Mirzakhani

Landon Thomas Clay, nacido en el año 1926, no tuvo formación académica de matemáticas. Se licenció en Inglés en Harvard. Su relación con las matemáticas, por tanto, no venía directamente de su formación, sino de su idea de que las matemáticas eran, además de bellas, muy importantes para nuestras vidas. Por ello, quiso aportar su granito de arena y contribuir así al desarrollo del conocimiento humano.

Landon T. CLayEllo le llevó a fundar el Instituto Clay de Matemáticas, conocido mundialmente por plantear los famosísimos siete problemas del milenio. Mucho se ha escrito en internet sobre ellos (y sobre el premio de un millón de dólares para quien sea capaz de resolver alguno de los mismos), por lo que simplemente los voy a citar (enlazando lo que escribí hace más de diez años sobre el único que se ha resuelto hasta ahora, la conjetura de Poincaré):

  • P vs NP
  • La conjetura de Hodge
  • La conjetura de Poincaré
  • La hipótesis de Riemann
  • Existencia de Yang-Mills y del salto de masa
  • Las ecuaciones de Navier-Stokes
  • La conjetura de Birch y Swinnerton-Dyer

Fallece, por tanto, uno de los mayores benefactores de las matemáticas mundiales, tanto en lo que se refiere al tema económico como a lo que se refiere al apoyo a esta ciencia por su belleza y su importancia para todos nosotros. Una gran pérdida para las matemáticas. Esperemos que todos sigamos disfrutando de su legado.

Me enteré de la noticia por esta nota en The Aperiodical. Podéis encontrar más información en los siguientes enlaces:

La imagen principal, donde Landon Clay aparece con Maryam mirzakhani (primera mujer Medalla Fields fallecida el pasado 15 de julio), la he tomado de aquí. La segunda, en la que aparece solo Landon Clay, la he tomado de aquí.

Ha fallecido Landon Clay, fundador del Instituto Clay de Matemáticas

Gaussianos - Mar, 08/08/2017 - 05:00

Landon Clay, el fundador del Instituto Clay de Matemáticas, falleció el pasado 29 de julio. Con su fallecimiento, las matemáticas actuales pierden a una persona que ha apoyado enormemente el desarrollo y el avance las matemáticas a nivel mundial.

Landon Clay con Maryam Mirzakhani

Landon Thomas Clay, nacido en el año 1926, no tuvo formación académica de matemáticas. Se licenció en Inglés en Harvard. Su relación con las matemáticas, por tanto, no venía directamente de su formación, sino de su idea de que las matemáticas eran, además de bellas, muy importantes para nuestras vidas. Por ello, quiso aportar su granito de arena y contribuir así al desarrollo del conocimiento humano.

Landon T. CLayEllo le llevó a fundar el Instituto Clay de Matemáticas, conocido mundialmente por plantear los famosísimos siete problemas del milenio. Mucho se ha escrito en internet sobre ellos (y sobre el premio de un millón de dólares para quien sea capaz de resolver alguno de los mismos), por lo que simplemente los voy a citar (enlazando lo que escribí hace más de diez años sobre el único que se ha resuelto hasta ahora, la conjetura de Poincaré):

  • P vs NP
  • La conjetura de Hodge
  • La conjetura de Poincaré
  • La hipótesis de Riemann
  • Existencia de Yang-Mills y del salto de masa
  • Las ecuaciones de Navier-Stokes
  • La conjetura de Birch y Swinnerton-Dyer

Fallece, por tanto, uno de los mayores benefactores de las matemáticas mundiales, tanto en lo que se refiere al tema económico como a lo que se refiere al apoyo a esta ciencia por su belleza y su importancia para todos nosotros. Una gran pérdida para las matemáticas. Esperemos que todos sigamos disfrutando de su legado.

Me enteré de la noticia por esta nota en The Aperiodical. Podéis encontrar más información en los siguientes enlaces:

La imagen principal, donde Landon Clay aparece con Maryam mirzakhani (primera mujer Medalla Fields fallecida el pasado 15 de julio), la he tomado de aquí. La segunda, en la que aparece solo Landon Clay, la he tomado de aquí.

Carga los productos de una orden en WooCommerce

Skatox - Dom, 08/06/2017 - 07:42

WooCommerce es una excelente solución para crear tu propia tienda en línea. Al ser un plugin de WordPress permite aprovechar todo lo disponible para esta tecnología. Cada nueva versión incluye mejoras significantes pero sacrificando muchas veces compatibilidad hacia atrás. Hace unos meses salió la versión 3.0 que introdujo varias mejoras y cambios en el SDK. Uno de mis plugines estuvo funcionando mal con los productos variables, pues la forma de obtener los productos de una orden habían cambiado. A continuación te explico como carga los productos de una orden.

Carga de productos de una orden

El problema es que en WooCoommerce existen varios tipos de productos: simple, variable, virtual, etc. Cada uno de ellos es definido en su propia clase, entonces cuando cargas una orden en WooCommerce desde el SDK solo tienes acceso al ID. Luego poder detectar con ese ID el tipo de producto y cargar su respectivo objeto puede ser tedioso.

El primer paso es obtener los objetos que representan los productos de la orden. No se debe confundir con el producto como tal, pues estos tienen un precio y atributos únicos para la orden.  Luego de cargar estos productos, si procedemos a cargar la instancia de su respectiva clase que nos dará toda la información.

WooCommerce nos ofrece la función get_product() que dando un ID, se carga automáticamente el producto como un objeto de su respectiva clase. Permitiendo acceder y manipular la data de muchas formas.

$order = wc_get_order( $order_id );
$line_items = $original_order->get_items();

foreach ( $line_items as $item_id => $item ) {
  $wc_product = $item->get_product();
  ....
}

Y listo, ya con esto puedes obtener un objeto que representa al producto de un orden.

La entrada Carga los productos de una orden en WooCommerce aparece primero en El blog de Skatox.

Proyecto de verano con la Raspberry Pi

Innerzaurus - Sáb, 08/05/2017 - 07:17

A lo largo del mes de agosto voy a desarrollar un proyecto en el que intervienen la Raspberry Pi y dos plataformas móviles (Ubuntu Touch y Android). El objetivo al final del mes es tener una Raspberry Pi con su Sensor Hat acoplada que se comunique con las dos plataformas móviles. Con esta prueba de concepto se podrán desarrollar aplicaciones más avanzadas (siempre que haya interés). No hace falta tener conocimientos mínimos. Los conceptos nuevos se explicarán paso a paso. Si en algún momento hay dudas podéis consultarlas en el foro de InnerZaurus.

Desarrollo del proyecto

La Raspberry Pi es una tarjeta de bajo coste que puede utilizar una versión adaptada de GNU/Linux. A esta tarjeta se le pueden añadir nuevas funciones usando tarjetas de expansión que se conectan directamente. No es necesario tener conocimientos de electrónica ni soldar componentes. Sólo es necesario tener el material así como un ordenador para hacer la programación.

Raspberry Pi 3

Raspberry Pi 3

Hay varias versiones de la Raspberry Pi. En el proyecto se usará la versión 3. Esta versión tiene entre otras cosas, conexión Wifi y conexión Bluetooth. Para comunicar la tarjeta y los dispositivos móviles se usará la conexión Bluetooth. De esta forma también se puede utilizar un ordenador como elemento que recibe la información.

Sobre esta base se usará la tarjeta de expansión Sensor Hat. La tarjeta incorpora varios sensores y una matriz de diodos LED RGB de 8×8. En una primera fase se usará la matriz para mostrar la información de los sensores y en una segunda fase para mostrar información que provenga de los dispositivos móviles.

Matriz RGB de la tarjeta Sensor Hat

Matriz RGB de la tarjeta Sensor Hat

Dispositivos móviles

Una vez esté preparado un sistema mínimo en la Raspberry Pi ya empezará la segunda fase y consistirá en conectarla con Ubuntu Touch y Android. Desde los dispositivos móviles se podrá leer la información de los sensores. De la misma forma se podrá usar la matriz de diodos LED para mostrar información del dispositivo móvil como por ejemplo, notificaciones.

La aplicación se programará en QML / JS para Ubuntu Touch y Java en el caso de Android. Recordad que el proyecto es una prueba de concepto y las aplicaciones que se verán serán sencillas. También puede servir para que los interesados empiecen con la programación enfocada a estas plataformas.

M10 corriendo Ubuntu Touch

M10 corriendo Ubuntu Touch

Conclusiones

Con esto finaliza esta introducción al proyecto. La idea que tengo es sacar una entrada por semana de forma que se puedan seguir bien. El código fuente estará en GitHub y la documentación en InnerZaurus. Podéis preguntar lo que no quede claro en los comentarios o en el foro de InnerZaurus.

La lista de entregas es la siguiente:

Más información

La entrada Proyecto de verano con la Raspberry Pi se publicó primero en InnerZaurus.

Proyecto de verano con la Raspberry Pi

Mimecar - Sáb, 08/05/2017 - 07:17

A lo largo del mes de agosto voy a desarrollar un proyecto en el que intervienen la Raspberry Pi y dos plataformas móviles (Ubuntu Touch y Android). El objetivo al final del mes es tener una Raspberry Pi con su Sensor Hat acoplada que se comunique con las dos plataformas móviles. Con esta prueba de concepto se podrán desarrollar aplicaciones más avanzadas (siempre que haya interés). No hace falta tener conocimientos mínimos. Los conceptos nuevos se explicarán paso a paso. Si en algún momento hay dudas podéis consultarlas en el foro de InnerZaurus.

Desarrollo del proyecto

La Raspberry Pi es una tarjeta de bajo coste que puede utilizar una versión adaptada de GNU/Linux. A esta tarjeta se le pueden añadir nuevas funciones usando tarjetas de expansión que se conectan directamente. No es necesario tener conocimientos de electrónica ni soldar componentes. Sólo es necesario tener el material así como un ordenador para hacer la programación.

Raspberry Pi 3

Raspberry Pi 3

Hay varias versiones de la Raspberry Pi. En el proyecto se usará la versión 3. Esta versión tiene entre otras cosas, conexión Wifi y conexión Bluetooth. Para comunicar la tarjeta y los dispositivos móviles se usará la conexión Bluetooth. De esta forma también se puede utilizar un ordenador como elemento que recibe la información.

Sobre esta base se usará la tarjeta de expansión Sensor Hat. La tarjeta incorpora varios sensores y una matriz de diodos LED RGB de 8×8. En una primera fase se usará la matriz para mostrar la información de los sensores y en una segunda fase para mostrar información que provenga de los dispositivos móviles.

Matriz RGB de la tarjeta Sensor Hat

Matriz RGB de la tarjeta Sensor Hat

Dispositivos móviles

Una vez esté preparado un sistema mínimo en la Raspberry Pi ya empezará la segunda fase y consistirá en conectarla con Ubuntu Touch y Android. Desde los dispositivos móviles se podrá leer la información de los sensores. De la misma forma se podrá usar la matriz de diodos LED para mostrar información del dispositivo móvil como por ejemplo, notificaciones.

La aplicación se programará en QML / JS para Ubuntu Touch y Java en el caso de Android. Recordad que el proyecto es una prueba de concepto y las aplicaciones que se verán serán sencillas. También puede servir para que los interesados empiecen con la programación enfocada a estas plataformas.

M10 corriendo Ubuntu Touch

M10 corriendo Ubuntu Touch

Conclusiones

Con esto finaliza esta introducción al proyecto. La idea que tengo es sacar una entrada por semana de forma que se puedan seguir bien. El código fuente estará en GitHub y la documentación en InnerZaurus. Podéis preguntar lo que no quede claro en los comentarios o en el foro de InnerZaurus.

La lista de entregas es la siguiente:

Más información

La entrada Proyecto de verano con la Raspberry Pi se publicó primero en InnerZaurus.

Puntos primitivos (y un EXTRA)

Gaussianos - Vie, 08/04/2017 - 05:00

El problema de esta semana es el último problema de la pasada Olimpiada Internacional de Matemáticas, celebrada en Río de Janeiro el pasado mes de julio. Ahí va:

Un par ordenado (x,y) de enteros es un punto primitivo si el máximo común divisor de x e y es 1.

Dado un conjunto finito S de puntos primitivos, demostrar que existen un entero positivo n y enteros a_0,a_1, \ldots, a_n tales que, para cada (x,y) \in S, se cumple que:

a_ox^n+a_1x^{n-1}y+a_2x^{n-2}y^2+ \ldots +a_{n-1}xy^{n-1}+a_ny^n=1

A por él.

Extra:

El otro día compartí en la página de Facebook de Gaussianos un post en el que hablan sobre los entresijos de la Olimpiada Internacional de Matemáticas. Os recomiendo que le echéis un vistazo, es interesante: Más detalles de la Olimpiada Internacional de Matemáticas.

Puntos primitivos (y un EXTRA)

Gaussianos - Vie, 08/04/2017 - 05:00

El problema de esta semana es el último problema de la pasada Olimpiada Internacional de Matemáticas, celebrada en Río de Janeiro el pasado mes de julio. Ahí va:

Un par ordenado (x,y) de enteros es un punto primitivo si el máximo común divisor de x e y es 1.

Dado un conjunto finito S de puntos primitivos, demostrar que existen un entero positivo n y enteros a_0,a_1, \ldots, a_n tales que, para cada (x,y) \in S, se cumple que:

a_ox^n+a_1x^{n-1}y+a_2x^{n-2}y^2+ \ldots +a_{n-1}xy^{n-1}+a_ny^n=1

A por él.

Extra:

El otro día compartí en la página de Facebook de Gaussianos un post en el que hablan sobre los entresijos de la Olimpiada Internacional de Matemáticas. Os recomiendo que le echéis un vistazo, es interesante: Más detalles de la Olimpiada Internacional de Matemáticas.

La raíz de un entero (no cuadrado) es irracional

Gaussianos - Jue, 08/03/2017 - 11:30

En Gaussianos hemos visto ya unas cuantas demostraciones de la irracionalidad de algunos números reales. Entre ellas, podemos destacar la irracionalidad de Pi (y II) y la irracionalidad de e (y II), pero posiblemente sea la irracionalidad de raíz de 2 la que más se ha visto por aquí.

Sobre ella podéis encontrar varios artículos en el blog. Os dejo algunos enlaces:

y uno más general sobre la irracionalidad de \sqrt[n]{2}:

Hoy vamos a ver una demostración elemental (en el sentido de los conocimientos que utiliza) de que \sqrt{m} es irracional, siempre que m no sea un cuadrado perfecto. Vamos con ella:

Teorema: Si m no es un cuadrado perfecto, entonces \sqrt{m} es un número irracional.

Demostración:

Como m no es un cuadrado perfecto, entonces \sqrt{m} no es un número entero, por lo que sea racional (no entero) o irracional. Esto significa que podemos encontrar un número entero n tal que \sqrt{m} se encuentra entre n y n+1:

n < \sqrt{m} < n+1

Lo que vamos a demostrar es que a=\sqrt{m}-n es irracional (lo que, sabiendo que n es un número entero, implicaría que \sqrt{m} también es irracional).

Supongamos que a no es irracional. Por su propia definición, se tiene que 0 < a < 1, por lo que, si no es irracional, será de la forma

a=\cfrac{p}{q}

siendo 0 < p < q. Podemos asumir sin ningún problema que q es lo más pequeño posible. Si tomamos la fracción inversa y operamos un poco obtenemos lo siguiente:

\cfrac{q}{p}=\cfrac{1}{a}=\cfrac{1}{\sqrt{m}-n}=

Multiplicamos ahora numerador y denominador por el conjugado del denominador actual, \sqrt{m}+n, y seguimos operando:

=\cfrac{\sqrt{m}+n}{\sqrt{m}+n} \cdot \cfrac{1}{\sqrt{m}-n}=\cfrac{\sqrt{m}+n}{m-n^2}=\cfrac{a+2n}{m-n^2}

Hemos llegado a la siguiente igualdad:

\cfrac{q}{p}=\cfrac{a+2n}{m-n^2}

Ahora despejamos a:

a=\cfrac{q \cdot (m-n^2)}{p}-2n=\cfrac{q \cdot (m-n^2)-2np}{p}=\cfrac{k}{p}

Acabamos de obtener que a se puede expresar mediante una fracción cuyo denominador, p, es más pequeño que el denominador anterior, q (por definición, p era menor que q). Pero eso es imposible, ya que habíamos supuesto que q era el menor denominador posible.

Esta contradicción proviene del hecho de suponer que a=\sqrt{m}-n es un número racional. En consecuencia, a es irracional, lo que implica que \sqrt{m} también es un número irracional.

Creo que es la primera demostración de este hecho que publico en Gaussianos, salvo las cuestiones sobre ello que se hayan tratado en los comentarios de alguna entrada. Si encontráis algo sobre ello en alguna entrada o comentario de este blog os agradecería que nos lo comunicarais en los comentarios.

Demostración de Harley Flanders a partir de una demostración de Theodor Estermann. Vía Fermat’s Library.

imagen tomada de aquí.

La raíz de un entero (no cuadrado) es irracional

Gaussianos - Jue, 08/03/2017 - 11:30

En Gaussianos hemos visto ya unas cuantas demostraciones de la irracionalidad de algunos números reales. Entre ellas, podemos destacar la irracionalidad de Pi (y II) y la irracionalidad de e (y II), pero posiblemente sea la irracionalidad de raíz de 2 la que más se ha visto por aquí.

Sobre ella podéis encontrar varios artículos en el blog. Os dejo algunos enlaces:

y uno más general sobre la irracionalidad de \sqrt[n]{2}:

Hoy vamos a ver una demostración elemental (en el sentido de los conocimientos que utiliza) de que \sqrt{m} es irracional, siempre que m no sea un cuadrado perfecto. Vamos con ella:

Teorema: Si m no es un cuadrado perfecto, entonces \sqrt{m} es un número irracional.

Demostración:

Como m no es un cuadrado perfecto, entonces \sqrt{m} no es un número entero, por lo que sea racional (no entero) o irracional. Esto significa que podemos encontrar un número entero n tal que \sqrt{m} se encuentra entre n y n+1:

n < \sqrt{m} < n+1

Lo que vamos a demostrar es que a=\sqrt{m}-n es irracional (lo que, sabiendo que n es un número entero, implicaría que \sqrt{m} también es irracional).

Supongamos que a no es irracional. Por su propia definición, se tiene que 0 < a < 1, por lo que, si no es irracional, será de la forma

a=\cfrac{p}{q}

siendo 0 < p < q. Podemos asumir sin ningún problema que q es lo más pequeño posible. Si tomamos la fracción inversa y operamos un poco obtenemos lo siguiente:

\cfrac{q}{p}=\cfrac{1}{a}=\cfrac{1}{\sqrt{m}-n}=

Multiplicamos ahora numerador y denominador por el conjugado del denominador actual, \sqrt{m}+n, y seguimos operando:

=\cfrac{\sqrt{m}+n}{\sqrt{m}+n} \cdot \cfrac{1}{\sqrt{m}-n}=\cfrac{\sqrt{m}+n}{m-n^2}=\cfrac{a+2n}{m-n^2}

Hemos llegado a la siguiente igualdad:

\cfrac{q}{p}=\cfrac{a+2n}{m-n^2}

Ahora despejamos a:

a=\cfrac{q \cdot (m-n^2)}{p}-2n=\cfrac{q \cdot (m-n^2)-2np}{p}=\cfrac{k}{p}

Acabamos de obtener que a se puede expresar mediante una fracción cuyo denominador, p, es más pequeño que el denominador anterior, q (por definición, p era menor que q). Pero eso es imposible, ya que habíamos supuesto que q era el menor denominador posible.

Esta contradicción proviene del hecho de suponer que a=\sqrt{m}-n es un número racional. En consecuencia, a es irracional, lo que implica que \sqrt{m} también es un número irracional.

Creo que es la primera demostración de este hecho que publico en Gaussianos, salvo las cuestiones sobre ello que se hayan tratado en los comentarios de alguna entrada. Si encontráis algo sobre ello en alguna entrada o comentario de este blog os agradecería que nos lo comunicarais en los comentarios.

Demostración de Harley Flanders a partir de una demostración de Theodor Estermann. Vía Fermat’s Library.

imagen tomada de aquí.

Páginas

Suscribirse a Fedora-es sindicador