.programador freelance autónomo

Nacido en Donostia - San Sebastián (Guipúzcoa, España) el 19 de Octubre de 1974, mostré desde temprana edad un gran interés hacia la programación de software, el cuál se materalizó con aquel entrañable Spectrum 48k tan popular en su época.

Como analista programador autónomo, con más de diez años de experiencia en la profesión, ofrezco mis servicios a empresas y profesionales que requieran desarrollos de software adaptados a sus necesidades, tanto programas de gestión, como todo tipo de desarrollos web: foros, chats, herramientas para newsletters, gestores de contenido, comercios virtuales, tpv-s, etc...

Actualmente trabajo con PHP, Javascript y Actionscript para aplicaciones en internet (también he hecho cosas con ASP, ASP.Net y JSP), y Visual Basic para aplicaciones de escritorio. Para esto último me encuentro en trámites de migrar a Java por las ventajas que ofrece.

Me considero una buena opción para aquellos profesionales que requiran un trato próximo y transparente por parte de sus proveedores. Pocos clientes y satisfechos antes que muchos pero insatisfechos, es mi filosofía de trabajo.

No lo dudes, cualquier consulta o solicitud de presupuesto, será gustosamente atendida a través del formulario disponible en esta misma página, o en el número de teléfono [34] 687 770 998.

Aviso: los números ocultos son automáticamente rechazados por mi teléfono.

Recibe un cordial saludo.


.artículos

24/07/2009 - Incrustando Flash en una aplicación de escritorio

La tecnología shockwave nos brinda una excelente oportunidad de enriquecer nuestras aplicaciones de escritorio.
En el ejemplo adjunto veremos como incrustar un documento SWF dentro de un formulario de Visual Basic mediante el objeto ShockwaveFlash, y también como comunicar ambos a través de un socket mediante los objetos Winsock por un lado y XMLSocket por otro.

Descargar ejemplo


19/04/2009 - Problema con formato de fechas en ASP

Tarde o temprano a todos aquellos que hayan desarrollado en ASP les ocurrirá: La configuración regional respecto a las fechas diferirá del servidor de desarrollo al de producción, y parte de la aplicación dejará de funcionar.

¿Cómo detectar de manera rápida si tenemos las fechas en formato anglosajón o no? Os dejo el codiguito necesario.


27/03/2009 - Problema liberando el buffer de salida con PHP 4

Hace poco, desarrollando una herramienta de envío de boletines, a la hora de ir mostrando los envíos desde un iframe en tiempo de ejecución, me econtré que ni la función flush() ni la función ob_flush() funcionaban.

Bueno, pues al final resulta que para que funcionen y liberen el buffer, hay que invocar a ambas. Os dejo una muestra:


18/10/2008 - Serializando datos con JSON

Sin duda JSON se trata de una excelente opción a la hora de compartir datos entre cliente y servidor. Olvidaros de andar generando y parseando XML. JSON nos ofrece la posiblidad de serializar y deserializar una gran variedad de estructuras de datos con una sola sentencia. Lo mejor de todo es que está disponible para multitud de lenguajes.

En el ejemplo adjunto veremos como comunicar y serializar datos entre ActionScript 1 y PHP 4. Debéis colocar el fichero json.php en vuestro directorio de publicación web.

Descargar ejemplo


06/09/2008 - Ejemplo simple de herencias con PHP 5

Declararemos tres clases: Abuelo, Padre e Hijo. Padre heredará de Abuelo, e Hijo de Padre y por tanto de Abuelo.

Abuelo es una clase abstracta, con lo cual no puede instanciarse, sus métodos deberían terminar de implementarse en las clases derivadas.
Abuelo.sVar1 es un campo público y estático, será heredado por Padre e Hijo y podrá ser invocado desde el exterior tanto desde instancias como estáticamente.
Abuelo.Metodo1() es un miembro abstracto, por lo tanto sólo lo declaramos. Terminará de implementarse en Padre mediante el modificador 'final'.
Abuelo.Metodo2() es un miembro protegido, es heredado por Padre e Hijo, pero su acceso es privado. Lo mismo para Abuelo.Metodo1().

Padre.sVar2 es un campo privado, no podrá ser heredado, y no podrá ser invocado ni desde el exterior ni desde clases derivadas.
El constructor de Padre es un miembro protegido, lo cual nos impide crear instancias de Padre y obliga a que los miembros de Padre, desde el exterior, sean invocados estáticamente.
Al contrario que los campos, los métodos pueden ser invocados estáticamente aunque no hayan sido declarados como estáticos.
En el constructor de Padre, vemos que inicializamos el campo $sVar1 tanto de manera estática como desde instancia. Podremos acceder a ambos valores según como lo invoquemos.

Hijo es una clase final, no podrá tener clases derivadas.
En el constructor de Hijo vemos que invocamos estáticamente al constructor de Padre, si no lo hiciáramos, el campo $sVar1 no se inicializaría y no obtendríamos el valor deseado al invocarlo.

Veamos el código:



24/07/2008 - Coloreando filas en un TDBGrid según criterio

Seguro que alguna vez trabajando con el TrueDB Grid nos hemos encontrado con la necesidad de dar un color diferente a determinados registros. En este ejemplo mostraré cómo hacerlo con Visual Basic.

Lo primero que debemos hacer, antes de cargar el grid ya sea con un Adodc o un Recordset, es poblar un array a partir del mismo origen de datos, indicando mediante true o false, si el registro correspondiente tendrá o no el color alternativo.
Esto nos permitirá mediante el evento FetchCellStyle colorear dichos registros a la vez que se vaya cargando el grid. El argumento Bookmark nos permitirá vincular los registros con el array.

Importante: Los campo que queramos colorear deberán tener el atributo FetchStyle activado-> TDBGrid1.Columns("NombreDeCampo").FetchStyle = dbgFetchCellStyleColumn

He aquí una muestra de cómo será el código del evento:



12/07/2008 - Oleada de ataques contra servidores SQL Server

Recientemente se están produciendo ataques contra multitud de servidores SQL Server. Para calibrar la magnitud del ataque, basta con buscar <script src=http://www.pingadw.com/b.js></script> en cualquier buscador y observar la cantidad de resultados que se obtienen.

Dicho ataque se trata de una inyección de Transact SQL, transformado a hexadecimal en su gran parte para burlar controles. He aquí una muestra:

Lo cual es equivalente a ejecutar:

Como podemos observar, recorre todas las tablas y campos varchar de la bbdd, anexando a los valores de dichos campos una llamada a un documento JS que en realidad no existe.

El ataque en sí no es destructivo pero sí muy molesto, ya que ralentiza enormemente la carga de un sitio web. Ya lo sabéis, proteged bien vuestros formularios!

Logotipo de nivel de accesibilidad doble-A Logotipo de XHTML Logotipo de CSS