domingo, 26 de junio de 2016

Raspberry Pi 3: Primer contacto


Llevo bastante tiempo observando las placas Raspberry Pi, y hace un par de semanas me surgió una oportunidad para poder utilizar una de ellas y convertirla en un centro multimedia.

Para este proyecto utilicé la última versión: Raspberry Pi 3, que ya tiene integrado tanto WIFI como BLUETOOTH.

Compré todo a través de Amazon:

  • Un pack casi completo con la placa, fuente de alimentación, caja, tarjeta sd,... Podéis verlo en el siguiente enlace.
  • Unos disipadores. Es lo único que le falta al pack anterior. También lo tenéis aquí.

Me llegó todo en el plazo previsto y en perfecto estado. Y aprovechando la ocasión hemos hecho un vídeo con el unboxing:



Aquí tenéis todos los componentes:


La caja es una auténtica maravilla, se desarma totalmente, la placa encaja perfectamente y tiene todos los detalles muy cuidados. Los pequeños tacos de goma que incluye para las "patas" están muy bien pensados.





Antes de comenzar, le pegamos los disipadores a la placa. El método es bastante sencillo, como si fueran pegatinas. Los disipadores que pedí no eran para este modelo, y nos sobró uno.



Después conectamos la placa a la televisión a través del HDMI, a nuestro router por el cable de red, a un teclado y por último a la toma de red, que enchufamos.


Y después de unos segundos en pantalla teníamos una lista de sistemas operativos para instalar en nuestra plaquita. Teniamos Raspbian, LibreELEC e incluso Windows 10.



Nosotros seleccionamos LibreELEC.


Y empezó la instalación.


En menos de cinco minutos ya teníamos el sistema instalado.


Reiniciamos y ya teníamos por defecto un sistema operativo que lo único que tiene es KODI. ¿Qué más se le puede pedir a un centro multimedia?

En la SD de Amazon, venia preinstalado NOOBS (https://www.raspberrypi.org/downloads/noobs/), gracias a esto aparecen los sistemas operativos disponibles para instalar. 

Una vez verificado su funcionamiento, apagamos la placa, desconectamos todos los cables y empezamos a montarla dentro de su caja.





La verdad es que más simple imposible.



Como punto fuerte comentaros que gracias a la tecnología HDMI CEC, podéis controlarla con el mando a distancia de la televisión. Lo que hace que sea una elección magnifíca.


jueves, 2 de junio de 2016

Salvapantallas en C#

Aunque este artículo debería ser de Rebeca (la experta en .Net del grupo), lo estoy escribiendo yo. En mis inicios (ese año 2000) pasé unos años programando en Visual Basic 5 y 6, y años después hice un par de cursos en C#.

La verdad es que todo surgió hablando un día con Rebeca sobre el Visual Studio, siempre he pensado que es el mejor IDE del mercado, pero con un coste muy elevado. Hasta ahora, que puedes descargarte una versión casi profesional sin pagar ni un euro.

Total que me he decidido a probarlo, y casi dos horas de instalación después ya tengo el Visual Studio instalado, con posibilidad de hacer cualquier desarrollo.



Lo primero que he intentado hacer es un Servicio Windows, no viene instalado de fabrica, pero en el propio entorno, puedes añadirlo y en unos segundos ya tenía la plantilla lista para empezar el desarrollo.

También me ha sorprendido mucho, la posibilidad de desarrollar aplicaciones Android. 

Volviendo al tema que nos ocupa: crear un salvapantallas. Así definiría yo uno:
  • Un salvapantallas de Windows es una aplicación que tiene tres funcionalidades:
    • Mostrar la configuración en un "dialog box"
    • Una previsualización
    • Visualización en pantalla completa
  • Su extensión es "scr"
  • Tiene que estar en Windows\system32 o en Windows\SysWOW64 dependiendo del sistema operativo (32 o 64 bits)
El mio va a ser muy sencillo, lo único que queremos hacer es que una vez abierto cambie de color cada dos segundos.

Para conseguir esto vamos seguir lo siguientes pasos:
  1. Nos creamos una aplicación de Windows Forms
  2. Configuramos el formulario para que esté maximizado y no se vean los controles de la esquina
  3. También le ponemos un color por defecto.
  4. Añadimos un temporizador, lo habilitamos y le ponemos un intervalo de 2 segundos
La parte más complicada es la de previsualización, ya que hay que tirar de componentes que interactúan con la API de Windows, para la posición, etc, etc. Esta parte ha sido un copy/paste.

Todo el código está en nuestro repo: https://bitbucket.org/tecnificados/public, en la carpeta "ScreenSaveNet".

A partir de ahora no voy a descartar el utilizar .Net para realizar algunas aplicaciones.

Espero poder probar a desplegar alguna aplicación web de .Net pronto en Apache.

Ya os contaré.

jueves, 31 de marzo de 2016

Extracción de datos con Import.io



Los desarrolladores a veces necesitamos información para realizar nuestras tareas, pero no la tenemos disponible en una fuente de datos tal y como nos gustaría.

Ejemplo: llevo tiempo queriendo hacer un "simulador" de la bolsa con el IBEX 35, para esto lo ideal sería tener una API en tiempo real (o casi) que nos fuera devolviendo los valores actuales de cada valor. Una API en JSON gratuita que nos permita esto no existe (o yo no la he encontrado).

Y para esto hay una herramienta de terceros llamada Import.io que nos puede ayudar.

Vamos a seguir con nuestro ejemplo. Hay muchas páginas que tienen los datos de los valores del IBEX-35, yo voy a elegir ésta: http://www.infobolsa.es/acciones/ibex35



Ahora nos vamos a la página web de Import.io, y en el campo donde está escrito "Enter an URL..." escribimos la URL de nuestra página y pulsamos el botón "Try it out". Después de unos segundos veremos la siguiente pantalla:



En ella vemos todos los datos correctamente extraídos de la página. Al final aparece el botón "Save", si lo pulsamos nos llevará a la página de alta en el servicio (es gratis).


Una vez dados de alta, veremos nuestro panel de control, que contiene nuestra URL. Arriba a nuestra derecha, podremos ver estos botones:


Si pulsamos en el botón "Run URLs". Nos llevará a la sección "History" donde veremos la cantidad de datos extraídos en esta ocasión:



En el enlace "Download" podremos escoger el formato de los datos a descargar:


¿Podemos pedir más? Si, una API. Pues para esto nos vamos a la Sección "Integrate" y allí tendremos nuestra URL para hacer peticiones a nuestros datos. Que nos serán devueltos en JSON:



Esta llamada devuelve los datos de la última extracción.

Para terminar lo ideal sería poder decirle a Import.io que nos refresque nuestras URLs automáticamente cada X minutos, pero esto aún no lo tienen implementado, aunque están en ello. 

De momento tendremos que hacerlo manualmente.

Aunque para mi proyecto de Simulador Bursátil no me vale, podemos sacarle mucho partido en otras situaciones.

lunes, 29 de febrero de 2016

Aplicaciones móviles con INTEL XDC



Ya llevo dos cursos para realizar aplicaciones móviles: "Desarrollo de aplicaciones en Android", y "Apps en Firefox OS". La gracia que tenía el último, es que desarrollabas en HTML5, empaquetabas tu proyecto en un zip, y ya tenías el instalador.

Por desgracia Firefox OS, no ha triunfado, pero la idea de HTML5 como base para una APP me parecía muy sencillo y potente.

En esta idea se basan las aplicaciones híbridas. Aunque soy más partidario de las nativas, reconozco que es mucho más rápido desarrollar para varias plataformas con este modelo.

Navegando por la web he encontrado Intel XDK, un IDE de desarrollo en HTML5 que utiliza librerías como Apache Cordova para exportar las aplicaciones a distintas plataformas.

Como primera prueba voy a intentar importar una pequeña página web que replica una App muy básica:


Antes de nada tenemos que descargarnos XDK, esto lo podemos hacer desde esta página: https://software.intel.com/es-es/intel-xdk.

Una vez descargado, nos lo instalamos, nos registramos para poder utilizarlo y una vez dentro veremos la siguiente pantalla:



La verdad es que es sorprendente todo lo que podemos llegar a hacer, desde aplicaciones básicas hasta juegos utilizando motores que ya están integrados. La cosa promete.

Nosotros vamos a probar la última opción: "Import Your HTML5 Code Base".

En el primer paso seleccionamos la ruta de nuestro proyecto (la carpeta que contiene el archivo "index.html"), y al cabo de unos pasos básicos más ya tenemos nuestro código importado.


Desde esta pantalla, en el menú de la derecha podemos ejecutar la aplicación en un emulador y ver cómo queda en distintos dispositivos.


En la parte superior hay una serie de pestañas, una de ellas es "BUILD", si la pulsamos nos aparecen todas las opciones para las que podemos construir un instalador para nuestra APP.


Al pulsar el siguiente paso nuestro código se sube a la nube de Intel para un posterior compilado.


Si pulsamos en el botón verde se realizará el paso final y se preparará nuestro instalador.


Último paso, descargar nuestra APP, con un pequeño resumen del estado de la compilación.


Unos minutos después lo he instalado en el móvil, esto es lo que aparecía:


Y así es como se ve cuando se ejecuta:


No me ha quedado muy responsive :(

La verdad es que como primera aproximación estoy muy contento con XDC, tengo que practicar más.

domingo, 31 de enero de 2016

Compilando MAME desde UBUNTU




Hace unas semanas un amigo me retó a compilar la última versión de MAME en Linux.


Y la verdad es que lo vi como un reto bastante fácil (pensé, me bajo el código, instalo dependencias y ya está). Pues no fue tan fácil, me costó muchísimo encontrar todas las dependencias necesarias. 


¿Por qué hago esto? MAME es un emulador de máquinas recreativas (ahora también incluye el proyecto MESS...) que se va actualizando continuamente. En los repositorios no siempre está la última versión, y si quieres esta última tienes que compilarlo tú.


Mientras escribo este artículo la última versión de MAME es 0.170, después de buscar no he encontrado ninguna guía paso a paso, y ahora que he conseguido compilarlo he decidido que la voy a hacer yo.


Mi sistema operativo es un Ubuntu 14 LTS.


Éstos son lo pasos que hay que seguir:

  1. Creación de entorno: creo el directorio “mame” en mi “home”.

  1. Conseguir el código fuente:

    1. En http://mamedev.org/ es donde están tanto los ejecutables de Windows como los fuentes.
    2. En http://mamedev.org/release.html el último enlace son los fuentes. Actualmente éste es su enlace: http://mamedev.org/downloader.php?file=mame0170/mame0170s.zip
    3. Nos lo descargamos (81 MB).
    4. Descomprimimos en home/mame:
   
        Esto nos crea un “mame.zip”. Voy a crear el subdirectorio “0170”, moverlo y descomprimirlo dentro.



  1. Dependencias
   
Llega el momento de utilizar el terminal, accedemos al directorio donde tenemos todo descomprimido. En mi caso:

cd mame/0170/mame/

    Ahora vamos a instalar todas las dependencias que necesitamos para compilar:

                      sudo apt-get install build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev libqt4-dev libqt4-gui libsdl-ttf2.0-dev libsdl2-ttf-dev libsdl2-dev qt5-default

Saber que las dos últimas son necesarias me llevó bastante tiempo.

  1. Actualizamos compiladores
   
Si lanzamos la compilación con “make”, tendremos un error porque el compilador GCC que viene de serie es el 4.8, y MAME requiere al menos la versión 4.9:

“GCC version 4.9 or later needed”

Además de GCC también necesitamos el compilador G++. Ahora mismo los dos están en la versión 4.8.

Con estas líneas instalaremos la versión 4.9 de los dos compiladores:

     sudo add-apt-repository ppa:ubuntu-toolchain-r/test
                sudo apt-get update
                sudo apt-get install gcc-4.9 g++-4.9

Una vez instalado si escribimos “gcc -v” nos aparece:

gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

y si escribimos “g++ -v” nos aparece:

El programa «g++» no está instalado. Puede instalarlo escribiendo:
sudo apt-get install g++

Aparentemente tenemos problemas, parece que no se han actualizado.

Pero es fácil de solucionar, vamos a crear prioridades de ejecución en los enlaces simbólicos de nuestros compiladores.

Escribimos esto:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
Ahora verificamos con:

         gcc -v
         g++ -v

Y vemos que ambos están en 4.9.3.       

Si queremos volver a cambiar de versión podemos usar los comandos:

“sudo update-alternatives --config gcc”
“sudo update-alternatives --config g++”
  
   
  1. Compilando
   
    Y ahora sí, podemos lanzar el comando “make” para empiece la compilación.

    Ahora sólo nos queda esperar. Si tenéis varios procesadores podéis usar el comando “make -j N” donde N es el número de procesadores. Con lo que ahorraréis bastante tiempo.

    Yo lo hice en un portátil antiguo de dos núcleos y tardé casi tres horas.
   
   



Al final tendremos en el directorio 0170 el ejecutable "mame" listo.

Si tenéis alguna duda no dudéis en preguntar.

martes, 29 de diciembre de 2015

Instalando Linux en un pendrive



Hace unas semanas os comentabamos cómo utilizar un pendrive para arrancar desde él y poder instalar un sistema operativo en vuestro PC en caso de no tener lector de CD o DVD.

Hoy voy un poco más allá, hace unos días descubrí que podemos instalar un sistema operativo directamente en un USB para poder arrancar y trabajar con él directamente.

Para hacer esto necesitamos una utilidad llamada LILI USB CREATOR que está disponible en: http://www.linuxliveusb.com

Así que manos a la obra, nos bajamos la utilidad, instalamos, ejecutamos y nos aparece esto:


Seleccionamos el USB donde vamos a instalar el Sistema Operativo. Después la ISO, el CD, botón Descargar: donde hay muchísimas distribuciones de Linux (y alguna Windows) para descargar e instalar en el USB. Recomiendan seleccionar una arquitectura de 32 bits para que sea más rápido.

Yo he hecho dos pruebas: una con la distribución KALI 2.0 y otra con Ubuntu 14. En la segunda he seleccionado cuánto tamaño de persistencia dejaba (4 gigas).

Y para terminar pulsamos el rayo (a mí me ha tardado unos diez minutos).

Cuando termina aparece:


Lo he probado con un par de distribuciones: Kali 2.0 y Ubuntu 14. Con la primera no he conseguido lo que me esperaba, normal ya que es una distribución un poco particular. Sin embargo con Ubuntu lo que he conseguido es tener el instalador con su test consiguiendo persistencia de datos.

Supongo que este proyecto irá mejorando, pero de momento promete.

viernes, 4 de diciembre de 2015

Cygwin, el bash de Linux en Windows



Hay veces que necesitamos la potencia de los comandos de Linux, pero nuestro sistema operativo es Windows. Para esto nos viene al pelo Cygwin, un "emulador" de la consola de Linux bastante ligero que nos puede sacar de un apuro más de una vez.

Para conseguirlo sólo tenemos que ir a su web: https://www.cygwin.com/

En el menú pulsaremos "Install Cygwin", elegiremos nuestra arquitectura y nos descargaremos el instalador.

Los primeros pasos de la instalación son los de siempre, en uno de ellos tenemos que elegir la URL de donde descargarnos el software (yo seleccioné la segunda opción).

Justo después tenemos que seleccionar los paquetes adicionales que queremos instalar.


Por defecto nos instala el shell básico, si tenemos claro que queremos utilizar un comando en concreto, por ejemplo curl, podemos buscarlo y verificar si  se va a instalar.


Éste en concreto no viene por defecto, hacemos click en la palabra "Skip" y pasará a la lista de paquetes que tendremos en nuestro shell virtual.

Podemos marcar todos los que nos interesen, no es recomendable marcar todos porque son muchísimos paquetes y puede tardar bastante tiempo en instalarse.

Si después de acabar la instalación queremos añadir alguno más, no hay problema, volvemos a lanzar el instalador y seleccionamos los paquetes que nos faltan. El instalador los añadirá a la instalación existente.

Una vez finalizada la instalación, si arrancamos nos aparecerá una ventana como ésta:



Estamos situados en nuestra "home", que ahora mismo esta vacía.

Podemos cambiarnos a nuestras unidades de Windows muy fácilmente:

Escribimos "cd /cygdrive", si aquí hacemos un ls, veremos nuestras unidades de Windows. En mi caso c y d.

Ahora sólo tenemos que irnos a la carpeta que nos interesa y usar los comandos de Linux que queramos.

Para volver a nuestra home sólo tenemos que escribir "cd", y podemos referirnos a todo lo que contiene con ~ (alt+126)

Con esto ya podemos lanzar comandos tan potentes como "grep", "sed", "find",...

Esto me ha sacado de más de un apuro, y mucho más rápido que con las herramientas de Windows.

Actualización 2021: hace unos días Marc Wilson de https://www.pcwdld.com contacto con nosotros para pedirnos si podíamos enlazar esta articulo con una guía rápida de Cygwin en su portal. 

En ella tenéis mucha más informración sobre este emulador, aquí la tenéis: https://www.pcwdld.com/cygwin-cheat-sheet

Nos vemos pronto.


domingo, 25 de octubre de 2015

Como crear USBs autoarrancables

Cada vez es más común que los nuevos equipos vengan sin unidad de DVD, y sin embargo seguimos teniendo muchos DVDs y CDs en casa que necesitamos utilizar en estos equipos.

Algunos de éstos son autoarrancables o "bootables"; podemos arrancar nuestros PCs con ellos para instalar un sistema operativo desde cero, o para intentar recuperar datos en un PC dañado.

De lo que os quiero hablar hoy es de cómo hacer un USB autoarrancable con uno de estos CDs.

La herramienta que utilizo para esta función se llama "Rufus". Ésta es su web: http://rufus.akeo.ie/?locale, todo su código está en Github por lo que si nos interesa podemos echarle un vistazo: https://github.com/pbatard/rufus

Una vez en nuestro equipo, sólo necesitamos tener la imagen "ISO" del CD/DVD que necesitemos, y un pendrive formateado. Pinchamos la unidad USB en nuestro PC  y arrancamos RUFUS.



Cuando arranca sólo hay que especificarle la unidad destino donde está nuestro USB (la primera opción) y marcar "Create a bootable disk using", a la derecha seleccionamos nuestra ISO y ya podemos pulsar el botón "start".

En unos segundos tendremos nuestro Pendrive listo.

sábado, 11 de julio de 2015

Software para limpiar un PC / Descarga de software


La semana pasada me pidieron ayuda porque tenían un ordenador que no funcionaba bien (Windows XP, instalado hace más de seis años...), y por los síntomas parecía que además tenía virus, malware, etc.

Total, que cuando llegué a casa estuve buscando un kit de programas que suelo utilizar cuando me enfrento a retos de este tipo:

  • Avast Free Antivirus: es el antivirus que más me gusta.
  • AwdCleaner: para limpiar todo el adware y el malware. Muy útil cuando tienes los navegadores secuestrados.
  • CCleaner: un clásico, ideal para limpiar el registro y desinstalar rápidamente los programas que han ido desapareciendo.

Al buscar los programas encontré un portal de descargas que me gustó muchísimo, y ahora es mi fuente oficial de descargas:  http://www.uptodown.com/

Encontré todo lo que buscaba, todos los instaladores son los originales (no te instalan nada por detrás, y no hay que estar pendiente de las opciones de instalación). Además de todos los programas, puedes elegir utilizar la última versión o cualquiera de las anteriores. En definitiva, muy recomendable.