Pablo Rodríguez Rey

página personal

Bienvenido

¡Bienvenido a mi nueva web personal!

Hacía ya muchos años que no dedicaba algo de tiempo a la web, y creo que ya era hora de darle un toque de modernidad, y hacerlo compatible con los nuevos dispositivos: tablets, móviles, ...

Espero que la nueva organización de la web sea más manejable y y que la nueva sección de Proyectos os parezca interesante.

¡Un saludo!


Proyectos

Siempre estoy liado con alguna cosa nueva. Me gusta buscar, innovar y empezar nuevos proyectos.

Aquí os muestro algunos de los proyectos actualmente más activos.

Esta sección todavía está en desarrollo, espero completarla con más proyectos próximamente.


ïnav

ïnav es una serie de aplicaciones para CarPC de desarrollo propio ofrecidos con licencia GPL de código abierto.

Un CarPC es un ordenador integrado en un vehículo, y esta aplicación permite integrar diversos medios: música, video, teléfono, navegador GPS, navegador web, etc. en una sola aplicación.

He realizado principalmente 3 versiones. Ha habido otras, pero no han sido publicadas por su desarrollo específico.

Ahora se está desarrollando una nueva versión, y por tanto, estas están congeladas.




DisplayNC

Hace poco que tengo una motocicleta Honda NC700X, pero lamentablemente la información de temperatura del aceite no viene reflejada en la pantalla, aun a pesar de disponer de sensor en el motor.

Decidí entonces hacer una pequeña pantalla auxiliar para mostrar esta información y, ya de paso mostrar otra información adicional: temperatura exterior y voltaje de la batería.

El proyecto está realizado con Arduino, y en principio consideré varias pantallas, Nokia 3330 y OLED 1.3", pero finalmente consideré una pantalla LCD Transflectiva, la gráfica DOGM 132x32 puntos, visible a la luz solar y poco sensible a los cambios de temperatura. El sensor del motor se obtuvo con ingeniería inversa, con midiendo con un polímetro y obteniendo la función de relación de temperatura-voltaje del sensor. La caja contenedora fué diseñada en OpenSCAD e impresa con una impresora 3D Prusa i3 de mi amigo n0p.




CarPC

Uno de mis proyectos más divertidos ha sido el CarPC, un PC embebido en mi anterior coche.

El sistema estaba basado en los siguientes componentes:

  • MicroITX Atom 330 2GB RAM HD 320GB
  • Pantalla táctil Lilliput 8" 4:3 889GL
  • Amplificador Vieta 4x45W RMS
  • Interfaz de mute, sistema de relés
  • Software: ïnav

Actualmente, estoy pensando en preparar uno para mi nuevo coche, un Honda Accord del 2011, siempre que el tiempo me lo permita.



ïPiscina

Próximamente!


Programación

Me encanta programar. Lo hago a todas horas, en cualquier lugar, en cualquier momento.

Desde que a los 11 años me introduje en el mundo de los ordenadores, tuve ganas instantáneas de aprender a programar, motivado quizás por un anuncio de televisión de unos fascículos de programación IBM.

Con el paso de los años aprendí multitud de lenguajes de programación, en muchos me especialicé por su versatilidad: C/C++, Java, Ensamblador x86/MIPS/ARM, Basic, HTML, JavaScript, PHP, CSS, C#, OpenGL, Scripting, Delphi, ActionScript, ...


C/C++

Son los lenguajes de desarrollo general por antonomasia creados por el genial científico Dennis Ritchie y el Danés Bjarne Stroustrup respectivamente, permiten hacer casi cualquier tarea en informática de forma muy eficiente.

Son lenguajes de medio-alto nivel, por lo que su compilación es casi directa a lenguaje máquina, sobre todo por el primero, confiriéndoles alta velocidad y optimización, y haciéndolos primeros candidatos para proyectos de gran envergadura.

Los sistemas operativos principales han sido programados en su mayor parte en estos lenguajes (Linux, MACOS, Windows, ...).

Aunque siendo uno de mis lenguajes favoritos, su dificultad en trabajo con memoria y la dependencia a nivel de máquina son algunos de los contras para su uso diario. Sin embargo, hoy en día sigue ocupando parte de mi trabajo, dado que todavía hay muchas aplicaciones que desarrollo que exigen un alto rendimiento y bajo consumo de recursos, p.e. smserver, ïnav5, ...

También he trabajado con: STL, SDL, OpenGL, V8 engine Threads, QT, ...



ASM

El conocimiento del lenguaje ensamblador me permitió desarrollar interfaces gráficos en mi equipo antiguo (Amstrad PC1512 8086 8MHz) y una librería gráfico para desarrollar programas fácilmente, gracias a las rutinas optimizadas en ensamblador x86.

Algunos de los programas en los que usé ensamblador o fueron:

  • AGENDA: Agenda personal
  • DOSX+: Entorno gráfico 640x200 2 colores
  • XSYSTEM: Entorno gráfico 320x200 256 colores
  • MODEL6: Base para mis proyectos bajo DOS
  • ENCDEC: Cifrador lamer rápido de archivos
  • ïSPIM: Compilador/Simulador de MIPS
  • Diversas demos/pruebas de menos de 256 bytes





PHP

Este lenguaje interpretado similar en sintaxis a C permite realizar proyectos web a cualquier escala en tiempos record, gracias a su facilidad de uso y su extensa librería.

Hace casi 10 años que trabajo con él, y actualmente es el lenguaje de referencia para desarrollos web, y el tercer puesto global en utilización, solo por debajo de C y Java (fuente: langpop). De hecho, entre las webs más visitadas que usan PHP se encuentran Google, Facebook, Yahoo y Wikipedia.

Como contra, esta versatilidad a veces causa que programadores inexpertos realicen código espaguetti.

He realizado decenas de desarrollos web, tanto webs personales (p.e. esta misma web) como aplicaciones web profesionales complejas, algunas pueden ser visitadas:




Basic

Fué el primer lenguaje de programación con el que comencé, y desarrollé en él hasta sus límites. Quick Basic y Visual Basic, tanto para DOS como para Windows 16 y 32 bits.

Desde entonces he realizado cerca de un millar de aplicaciones, utilidades y pruebas en este versatil lenguaje.

Hoy en día ha caido en desuso por la llegada de .NET y los sistemas 64 bits, sin embargo sigue siendo un excelente lenguaje para el desarrollo rápido y eficiente de aplicaciones basadas para DOS y Windows, de hecho, casi la totalidad de las aplicaciones desarrolladas en este lenguaje siguen siendo compatibles en las últimas versiones de Windows.

Algunos ejemplos de aplicaciones interesantes desarrolladas han sido:

  • ïnav3: Aplicación de integración de medios para CarPC
  • MLPid: Aplicación de acreditación de la MurciaLanParty.
  • Visual CyberGest: Aplicación de gestión integral de cibercafés
  • Kister Fighter (parte 1 y 2): Juego de lucha presentada al concurso de juegos de la revista PC World
  • ICARUM: Aplicación de gestión de planimetría de la Universidad de Murcia







Java

Java es uno de los lenguajes más versátiles que existe en la actualidad. Es multiplataforma, y tiene infinidad de librerías para el soporte de casi cualquier tarea en la actualidad gracias al soporte de su comunidad.

Algunos de los desarrollos realizados en este lenguaje incluyen la Araña del Portal de Gestión de Red de la Universidad de Murcia, que recoge los datos realizando peticiones simultáneas via SNMP a los dispositivos que integran la red UNIMURNET, y otros servicios para utilidades de red.

También he realizado algunos sketches para Android: ArduDroid y WPAMagicKey



JavaScript

Hoy por hoy todos los navegadores modernos soportan JavaScript, el lenguaje interpretado de ejecución en el lado cliente y, recientemente, con proyectos como node.js o Apache Cordova también se comienza a extender su uso en el lado servidor.

JavaScript es uno de los lenguajes más incómodos pero fáciles de aprender por su alta fragmentación e interpretación por parte de los diferentes núcleos de renderización de los navegadores. En los últimos tiempos se ha tendido a estandarizar el lenguaje, y hoy por hoy más del 92% de los sitios web usan dicha tecnología, de hecho, comienzan a aparecer entornos para realizar desarrollos portables en otras plataformas y extender el uso de este lenguaje a otros ámbitos diferentes a la web.

Dada mi posición de desarrollador web, he realizado muchísimas clases genéricas en JavaScript para rebajar la dificultad de creación de sitios y aplicaciones web, entre las que destacan las pertenecientes a las clases base, que es un conjunto de funciones PHP y JavaScript cuya finalidad sigue tres puntos: Estandarizar, Simplificar y Estabilizar.

Esta misma página tiene código indispensable JavaScript, como la carga bajo demanda de imágenes, la visualización de secciones y el acceso a algunos enlaces.

Electrónica

Desde pequeño me encanta la electrónica. Siempre recuerdo uno de mis juguetes favoritos de Reyes Magos, el Scatron.

Esencialmente conozco bien los Microcontroladores de Atmel ATmega y Microchip PIC, aunque nunca descarto alternativas dependiendo del proyecto.

Analógica

He hecho muchos circuitos de electrónica, muchas veces básicos, pero cumplen su función. Algunas cosas que he hecho:

  • GPDRL - Luz diurna para Fiat Grande Punto, con 16 LEDs CREE Q5 y regulador de intensidad específico
  • GPbox - Control de Relés, control de mute, alimentación regulada para CarPC




Arduino

Arduino es una plataforma de hardware libre basada en la serie de microcontroladores Atmel AVR combinado con un entorno de desarrollo integrado con el lenguaje Processing/Wiring.

Su practicidad y sencillez de uso ha hecho que emergiese una gran comunidad detrás de Arduino y se haya convertido en una excelente plataforma de aprendizaje.

Algunos proyectos que he hecho con Arduino:

  • DisplayNC - Display adicional para Honda NC700X
  • ïPiscina - Sistema de control de accesos para piscinas comunitarias
  • xpCan - Interfaz OBD para Honda Accord, cierre de puertas a partir de 30km/h
  • GPDRL - Control de luces diurnas para el Fiat Grande Punto




PIC

La familia PIC es también una de las más usadas por su potencia y versatilidad. En concreto los PIC18F* suelen ser buenos aliados por su potencia, número de puertos y soporte de auxiliares, como USB o CAN-BUS.

He hecho algunos proyectos con PIC:

  • CarPC Interface - Interfaz generica para CarPC
  • GPupdown - Simulador de regulador de altura de faros



Raspberry PI

Últimamente estoy bastante activo con esta plataforma, recientemente he realizado algunas optimizaciones en el arranque de Raspbian para mejorar el tiempo de arranque y suprimir servicios innecesarios.

Para reproducción de video el arranque y puesta en marcha tarda apenas un segundo.

Espero usarlo en un par de proyectos, un reproductor autónomo cíclico para televisiones y para interfaz CarPC.

También he hecho pruebas con el GPIO, aunque todavía no he sacado ningún proyecto interesante que lo use.


Sobre mi...

¡Hola!

Soy Ingeniero Técnico en Informática de Sistemas, actualmente trabajo en la Universidad de Murcia y también hago trabajos freelance en mi empresa inertinc industries, pero sobre todo soy un apasionado de la informática y electrónica. Tengo muchas aficiones, pero a todas no puedo dedicarle todo el tiempo que quisiera, como cualquiera.

Dispongo varios formatos de currículum para poder descargar o visualizar:

Currículum - Español 67KB
Curriculum - English 66KB

Además, puede contactar conmigo desde aquí.

La Ley Orgánica de Protección de Datos protege todos los datos que pudieran aparecer tanto en el currículum como en el resto de la web, por tanto, no se concede ningún permiso de ningún tipo para poder usar esta información más allá del contacto directo con el autor, y queda excluida cualquier tipo de mensaje publicitario o inclusión en listas.


Contacta

Si quieres, puedes enviarme un mensaje usando este formulario:

Imagen de seguridad: Regenerar
Nombre:
E-Mail:
Mensaje:

Está denegado el uso de este formulario para envío masivo y/o de publicidad.