Áreas de experiencia
Sistemas Operativos
Los sistemas que mejor conozco en lo relativo a
uso, administración y programación son los siguientes:
-
Windows XP, 2003, etc.
-
GNU/Linux
Lenguajes de programación
-
Desarrollo de aplicaciones y bibliotecas
en C++ desde 1991, en Ruby desde 2001.
-
Experiencia de desarrollo en C (desde 1987),
Ensamblador (i86, Z80, 6809),
Fortran,
Basic,
VisualBasic, VBA,
User RPL (HP48),
SQL,
Pascal,
Lisp, PL/I, Mathematica, Java, C#.
-
Lenguajes de SIG como
Magik, TPL, S2QL, MapBasic.
-
Lenguajes de preparación de documentos LaTeX
y HTML (en combinación con MetaPost, CSS)
y programación documentada usando nuweb y CWEB.
- Lenguajes Script (cliente y servidor)
como JavaScript, VBScript, Python.
-
Conocimiento general de PHP, Tcl,
Dylan, CLOS, CLUE, SmallTalk, Perl,
Sather, Simula, Algol, Cobol, Rexx, AWK, Icon, Snobol,
Modula, Oberon, BCPL, etc.
Sistemas de Información Geográfica
-
Gran experiencia en MapInfo, ArcGIS 8.x, MGE
EPS Prime meridian (antes TerraSoft), SmallWorld.
-
Experiencia en servidores de mapas con MapServer y bases de datos geográficas
con PostGIS y ArcGIS.
-
Alguna experiencia con GRASS, ArcInfo (PC, workstation),
ArcView 3.x, System 9, Hipparchus, GeoMedia, GISPlus.
-
Experiencia en gestión de proyectos SIG,
asesoría, implantación y enseñanza de SIG y aplicaciones afines.
-
Experiencia de tratamiento de datos de CAD:
AutoCAD, MicroStation, lenguaje HPGL/2.
Redes
- He desarrollado diversos programas y herramientas que funcionan en redes TCP/IP
sacando partido de protocolos como FTP, SMTP, HTTP o SOAP y estándares como XML,
para integrar sistemas existentes o facilitar tareas costosas.
La mayor parte de estos desarrollos aprovechan las excelentes bibliotecas disponibles para Ruby.
- He desarrollado igualmente aplicaciones cliente-servidor más convencionales,
también para redes TCP/IP (internet/intranet),
basadas en HTTP y usando tecnologías como ASP, ASPX, Ruby-on-Rails o Ruby Web Dialogs.
Para el almacenamiento de datos he trabajado con PostgreSQL y SQL Server principalmente.
Metodologías y técnicas de trabajo
No soy partidario de imponer ninguna metodología estricta en el desarrollo de
software, pero sí de conocer el mayor número posible de ellas y adaptar
las partes que considero convenientes a cada trabajo y equipo humano.
La forma de trabajo que he ido desarrollado a lo largo del tiempo
se basa en ideas de Literate Programming, programación orientada a objetos,
técnicas de desarrollo en colaboración y herramientas de control
de versiones (SVN, CVS, BitKeeper),
y de construcción de software (Rake, make, Boost.Jam, ant).
Como entorno de desarrollo uso fundamentalmente Eclipse
en la actualidad, y en ocasiones
Microsoft Visual Studio o Borland C++ Builder. También he tenido
experiencia con Emacs.
Diseño gráfico
- Me gusta realizar el diseño gráfico de interface de usuario, documentos,
páginas web (como éstas), logotipos, ilustraciones, etc.,
siempre que no se trate de trabajos
exclusivamente gráficos o demasiado complejos
y tratando de conseguir realizaciones sencillas y funcionales.
- Ocasionalmente he realizado presentaciones (Powerpoint), animaciones (Flash),
e incluso pequeños temas musicales (uso una grabadora digital multipista,
ver aficiones).