Sobre mi

Conoce mi trayectoria

FORMACIÓN ACADÉMICA

2005-2012. Ingeniería Técnica Informática de Gestión. Universidad de Sevilla.
2003-2005. Técnico Superior en Desarrollo de Aplicaciones Informáticas, Sevilla.
2001-2003. Bachillerato. IES. Vicente Núñez, Aguilar de la Frontera (Córdoba).

EXPERIENCIA PROFESIONAL

2012 Enero – Actualmente. Diseño y maquetación web, cumplimiento estándares W3C y posicionamiento para ANID Internet Estudio, Palma de Mallorca.
2011 Enero – Actualmente. Análisis, diseño, maquetación y posicionamiento en TODONEUMATICO ONLINE S.L. cuyo portal es www.neumaticosyruedas.es
2010. (Septiembre - Enero) Beca en el Departamento de Sistemas de Información - Desarrollo en la empresa DETEA, Sevilla.
2005. 9 meses como Desarrollador de Aplicaciones en la empresa SICE S.A. (Dragados y Construcciones), Sevilla.
2003. 4 meses como Diseñador de Aplicaciones Web en la empresa ASMSI , Aguilar de la Frontera, Córdoba.

CONOCIMIENTOS INFORMÁTICOS

  • Sistemas Operativos: Ms-Dos, Windows 9x, Windows Xp, Windows 7, Windows 2003 Server, Windows 2000, Linux, Mac OS X Lion.
  • Aplicaciones Web: Flash, Dreamweaver, Photoshop, Freehand, Corel.
  • Lenguajes Programación: Visual Basic, .Net, Asp, C, C++, Php, Sql, Java, Jsp (Struts2, Hibernate), Html, Xhtml, CSS, Html5, CSS3, Xml, Javascript, Jquery
  • Bases de Datos: Oracle, SqlServer, Mysql.

Proyectos

Una muestra de mis últimos proyectos

Blog

Mis últimos artículos.

    Super User osCommerce

    banner_superusuario_oscommerce

    Uno de los más prácticos y útiles desarrollos que he realizado en los últimos días ha sido el Super Usuario. Hay veces que necesitamos conectarnos con la cuenta de un cliente para modificar algún campo desde su cuenta de usuario, confirmar un pedido o cualquier otra gestión.

    Este módulo está desarrollado en Prestashop y Magento, pero para osCommerce no.

    Aquí os dejo el desarrollo del módulo de super usuario para osCommerce:

    superusuario.zip

    Dentro del zip encontrareis un fichero txt con la instrucciones de instalación, es muy sencillo!

    Una vez instalado, para utilizarlo, debeis acceder al panel de administración, apartado Clientes, Seleccionar un cliente, Editar, y aparecerá una ventana como esta:

     

    Al hacer clic en el botón Super Usuario os conectareis con la cuenta del usuario seleccionado.

    Problema editor breve descripcion Prestashop Firefox [SOLUCIONADO]

    Bug fix editor breve descripcion Prestashop

    Me ha dado bastantes quebraderos de cabeza ya que solo pasa con Firefox y creo que en concreto solo con la versión 11, la última versión. Sinceramente soy usuario fiel de Firefox, pero cada día estoy mas descontento con el navegador debido a la gran cantidad de actualizaciones que está teniendo y voy dando mayor uso a Chrome.

    TinyMCE es el editor que trae por defecto Prestashop y por algún motivo este ha dejado de funcionar correctamente al editar la breve descripción en Firefox. Si nos situamos encima de la zona habilitada para escribir podemos comprobar que no aparece el cursor.

    Solucion

    Para solucionar el error nos dirigimos a la web oficial de TinyMCE y descargamos la última versión, yo en mi caso he descargado la 3.5b3. Descomprimimos el zip y tras haber hecho una copia de nuestros archivos, nos situamos en la carpeta

    /js/tiny_mce

    y sustituimos los archivos

    tiny_mce_popup.js
    tiny_mce_src.js
    tiny_mce.js

    Ya con esto nos debe de funcionar sin ningún tipo de problema.

    Ejecutar script php automáticamente

    script_automatico

    Es habitual que ejecutemos manualmente de manera periódica un script, ya sea para enviar un mailing, para actualizar el stockaje, para alguna sincronización… sea cual sea el motivo, la automatización de esta tarea sería aun mas interesante si la hiciese nuestro servidor (que él si que tiene buena memoria y no se va a olvidar de hacerlo -y sin quejarse) sin tener que pulsar ni un solo botoncito.
    Con esto, si ya el script nos quitó una gran carga de trabajo, tener que olvidarnos de ejecutar de forma manual ese script ya es perfecto.

    Parto de la base de que tenemos nuestra web en un servidor que corre bajo Linux.

    Nos posicionamos en /var/spool/cron/

    Cron. Cron es un servicio que nos permite definir una lista de tareas que queremos automatizar para que nuestro sistema Linux las ejecute sin necesidad de teclear los comandos.
    Wget. Comando mediante el cual vamos a ejecutar una página web, en nuestro caso el script.

    Una vez posicionados en esa ubicación, veremos que existen una serie de archivos que coinciden con el nombre de los distintos usuarios de nuestro sistema. Pasaremos de esos archivos y lo que haremos sera crear nuestro propio cron, al cual llamaremos como nosotros queramos. En este caso yo llamare a mi archivo mi_cron
    Para ello escribiremos > mi_cron y a continuación escribiremos en su intererior con el comando nano mi_cron lo siguiente:

    #ejecuta el script llamado script_prueba.php cada 5 minutos
    */5 * * * * /usr/bin/wget -q -O /dev/null http://www.josearagon.es/script_prueba.php > /dev/null

    #ejecuta el script llamado script_prueba.php que se encuentra en un directorio (llamado script) protegido con contraseña todos los dias a las 12:20
    20 12 * * * /usr/bin/wget -q -O /dev/null http://usuario:pass@www.josearagon.es/script/script_prueba.php > /dev/null

    Una vez hemos guardado el archivo que habíamos llamado mi_cron tan solo nos queda ejecutar el comando crontab mi_cron, mediante el cual informamos a nuestro sistema que el archivo en el que se encuentran las tareas programadas o automatizadas para nuestro usuario es el archivo mi_cron

    Para indicarle a nuestro fichero mi_cron la fecha y hora de su ejecución debemos saber que la estructura es la siguiente (de izquierda a derecha):

    * minuto (0 – 59)
    * hora (0 – 23)
    * día del mes (1 – 31)
    * mes (1 – 12)
    * día de la semana (0 – 6)

    todo esto seguido del comando a ejecutar.

    Importancia del nombre de dominio

    nombre_dominio

    Uno de las grandes decisiones a la hora de dar el salto a Internet es la elección del nombre del dominio. La gran mayoría de las personas y empresas se enfrentan ante este gran problema a la hora de elegir el nombre para su posterior registro. Las cuestiones que se suelen plantear son:

    ¿Dominio corto y original? o ¿Dominio que incluya palabras clave?

    ¿Nombre de dominio corto y original?

    Eso nos permitirá diferenciarnos de la competencia y que el usuario nos identifique con faciliad, una forma fácil de memorizarlo y recordarlo para conseguir futuras entradas. De cara al SEO de nuestra web vamos a tener que darle un fuerte empujón para aparecer en las primeras páginas de google.

    ¿Dominio que incluya palabras clave?

    De esta manera podremos agilizar de algún modo ese dificil y costoso SEO inicial. Esta estrategia es muy usada, ya que al contener la palabra clave el dominio por si solo es capaz de colocarse en la 3ª o 4ª página de google en muy poco tiempo. Parece ser que desde Junio de este año Google ha dejado de darle tanta importancia a esta serie de dominios. Google hizo cambios en su famoso algoritmo, restándole importancia al nombre del dominio y así premiar la originalidad de los dominios, equilibrando en este sentido la balanza en el juego del posicionamiento web. Hay un buen video que nos explica esto:

    Desde mi punto de vista, la estrategia acertada es combinar estas dos opciones. El dominio principal de nuestra empresa será un nombre corto original y este será arropado por landing pages que si que contendrán keywords en su nombre.

    ¿Que es Pixel Tracking? Crear pixel tracking en php

    pixel_tracking

    El seguimiento de píxeles o Pixel Tracking es uno de los métodos que a día de hoy se está usando para controlar el uso que los visitantes hacen de nuestras webs.

    ¿En cuantas ocasiones habéis enviado un newsletter y no sabéis cuanta gente lo ha leído? Ya no digo cuanta gente ha hecho click en el newsletter y ha accedido a nuestra web, me refiero a cuanta gente lo ha leído. ¿Como controlamos eso? Pixel Tracking. La gran mayoria de programas de análisis se basan en la automatización del Pixel Tracking.

    El proceso es bastante sencillo. Básicamente consiste en colocar pequeñas imágenes de 1×1 pixel en las páginas en las cuales queremos hacer el análisis. Esa imagen será la que nos hara guardar la información que necesitemos cuando se cargue la página que la contiene.

    Técnica

    Agregaremos un tag img en nuestra página web, newletter… de este modo <img src=”http://www.josearagon.es/pixeltrack.php” alt=”" />

    El archivo pixeltrack contendrá la conexión a nuestra base de datos e insertará la ip del usuario, la ubicación y la fecha actual, información de su navegador… o cualquier otra información que queramos obtener y finalmente generará en binario una imagen 1×1 de un pixel transparente o de color del lugar donde lo coloquemos.

    Sería algo de este estilo:

    <?php
    //IP y Timestamp
    $date=date("Y-m-d H:i:s");
    $ip  =$_SERVER['REMOTE_ADDR'];
    
    //conectamos con la base de datos
    $host = "host";
    $database = "database";
    $username = "username";
    $pass = "pass";
    
    $db 	  = mysql_pconnect($host, $username, $password)	or trigger_error(mysql_error(),E_USER_ERROR);
    
    mysql_select_db($database, $db);
    
    $sql = "INSERT INTO tracking_pixel (ip, timestamp) VALUES ('$ip','$date')";
    mysql_query($sql,$db);
    
    header("content-type: image/gif");
    //43byte 1x1 transparent pixel gif
    echo base64_decode("R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
    ?>

    Accesibilidad web

    accesibilidad

    La accesibilidad web es la capacidad de acceso a la información que tenemos en nuestra web sin ningún tipo de limitación por razón de deficiencia, discapacidad, o minusvalía.

    ¿Cual es su objetivo?

    Su principal objetivo es que todas las personas puedan navegar por la red en cualquier condición. De esta manera cualquier persona con independencia de sus limitaciones personales, las características de su equipo de navegación o el entorno ambiental desde donde accede a la Web, pueda utilizar y comprender sus contenidos.

    ¿Como hacer una web accesible?

    Existen una serie de pautas o modelos a cumplir denominadas Pautas de Accesibilidad al Contenido en la Web (WCAG), cuya función principal es la de guiarnos hacia un diseño web accesible, reduciendo las barreras hacia la información que mostramos en nuestra web.

    Cada pauta pertenece a un nivel de prioridad:

    • Prioridad 1: son aquellos puntos que un desarrollador Web tiene que cumplir ya que, de otra manera, ciertos grupos de usuarios no podrían acceder a la información del sitio Web.
    • Prioridad 2: son aquellos puntos que un desarrollador Web debería cumplir ya que, si no fuese así, sería muy difícil acceder a la información para ciertos grupos de usuarios.
    • Prioridad 3: son aquellos puntos que un desarrollador Web debería cumplir ya que, de otra forma, algunos usuarios experimentarían ciertas dificultades para acceder a la información.

    Seguro que habeis oido hablar de una web Triple A, Doble A… esto se refiere al nivel de conformidad de nuestra web. El nivel de conformidad va en función del cumplimiento de las pautas y sus respectivas prioridades:

    • Nivel de Conformidad “A”: todos los puntos de verificación de prioridad 1 se satisfacen.
    • Nivel de Conformidad “Doble A”: todos los puntos de verificación de prioridad 1 y 2 se satisfacen.
    • Nivel de Conformidad “Triple A”: todos los puntos de verificación de prioridad 1,2 y 3 se satisfacen.

    Ventajas

    • Ahorra costes.
    • Mejor indexación de nuestra web en buscadores.
    • Facilita la independencia de dispositivo y la interporabilidad.
    • Mejora el acceso en general.
    • Aumento de público.

    ¿Usuarios principalmente afectados?

    • Usuarios de edad avanzada con dificultades producidas por el envejecimiento.
    • Usuarios afectados por circunstancias derivadas del entorno.
    • Usuarios con falta de recursos para acceder a los servicios de Internet.
    • Usuarios que no dominen el idioma, como los de habla extranjera o menor nivel cultural.
    • Usuarios inexpertos.

    Conclusión

    Debemos hacer webs accesibles sin la necesidad de sacrificar el diseño, ofreciendo esa flexibilidad que es necesaria para que la información sea accesible bajo diferentes situaciones y proporcionando métodos que permiten su transformación en páginas útiles e inteligibles.

    A modo de curiosidad decir que es de obligado cumplimiento en las administraciones públicas, entidades y empresas que gestionan servicios públicos y en empresas que prestan servicios públicos de especial trascendencia económica (suministro de luz, servicios financieros…).

    Warning: getimagesize(): URL file-access is disabled in the server configuration

    warning

    La función getimagesize() determinará el tamaño de un archivo de imagen dado y devolverá las dimensiones junto con el tipo de archivo y una cadena de texto con el alto/ancho para ser usada dentro una etiqueta IMG de HTML normal y el tipo de contenido HTTP correspondiente.

    Cuando usamos la función getimagesize() tenemos que tener cuidado, ya que esta nos puede generar algún que otro problema y donde debería aparecer una bonita imagen, nos aparecera un WARNING.

    En nuestro caso el Warning es el siguiente:

    Warning: getimagesize(): URL file-access is disabled in the server configuration in /home/myhome/public_html/archivo.php on line 72

    Solución

    Nos iremos al archivo.php a la linea 72 donde tendremos algo parecido a esto:

    $img_size = getimagesize ($imagen);

    sustituiremos la linea por:

    $img_size = @getimagesize ($imagen);
     if ($img_size[0]==false) {
     // imagesize falla usando http
     preg_match ('#http://[^/]+(.+)#', $imagen, $m);
     $logo_path=$_SERVER["DOCUMENT_ROOT"].$m[1];
     $img_size = @getimagesize ($logo_path);
     }

    Home duplicada, dominio con y sin www

    problem

    Este es posiblemente uno de los errores más comunes que cometemos.

    Si al acceder a nuestro dominio este responde ante

    htpp://josearagon.es y http://www.josearagon.es

    tenemos que tener en cuenta que para los buscadores estamos indexando el doble, lo que es motivo de penalización ya que estamos duplicando nada mas y nada menos que el home de nuestro sitio. Al parecer Google este descuido lo perdona y no suele penalizarlo pero es 100% recomendable solucionarlo y evitar la posible penalización.

    ¿Afecta al SEO?

    De cara al SEO, mas en concreto al PageRank de la web afecta directamente, ya que el número de links que apuntan a nuestra web puede estar dividiéndose y si ya de por si es complicado obtener un PR alto, imagínate si este se está diviendo entre 2.

    Decisión: ¿URLs con o sin www?

    Si estamos en este caso, tenemos que decidir si usar nuestro dominio con o sin www. Eso ya es decisión nuestra, no tiene ningún tipo de peso el usar el dominio con o sin www ya que ha habido estudios de grandes empresas online que han hecho pruebas y comentan que no hay ninguna ventaja al usar una u otra opción.

    Solución

    La solución es mas simple de lo que nos imaginamos, tan solo tenemos que abrir nuestro fichero htaccess, que se encuentra en el directorio raiz de nuestro dominio y agregar las siguientes lineas:

    Si nos hemos decantado por la solución de que accedan a nuestro domino con www:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

    O si por el caso contrario queremos que accedan sin las www:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    De manera automática nuestro Servidor y Apache corrigen el error mediante la redirección 301.

    OsCommerce

    A lo largo y ancho de este blog publicaré modulos y mejoras que iré desarrollando para OsCommerce, pero.. ¿que es OsCommerce?

    OsCommerce es un software libre de comercio electrónico. OsCommerce nos permite crear una tienda online sin necesidad de tener grandes conocimientos informáticos. Está desarrollado en php y requiere de una base de datos MySQL y un servidor Apache.

    Se divide en dos partes:

    - El front-end. Catálogo de productos e información de la tienda. Esta es la parte que ven los clientes.

    - Back-end. Panel de administración desde el cual se mantiene la tienda virtual y desde donde podemos configurar todos los parámetros de la misma.

    Oscommerce back-end

    Está preparado para aceptar los siguientes sistemas de pago: Authorize.net, tarjeta de Crédito, contra reembolso, iPayment, cheques, transferencias bancarias, NOCHEX, PayPal, 2Checkout, PSiGate, SECPay, Visa Mastercard Admite y da soporte para cualquier moneda, para trabajar con imágenes, vender productos físicos o descargas. La administración está basada en una aplicación web. Tiene la posibilidad de realizar copias de seguridad y recuperación. Cesta de la compra temporal y guardar cestas incluso después de compradas. Transacciones seguras SSL. Permite dar un servicio de información de envíos y devoluciones en tiempo real bajo UPS, USPS, FedEx, etc. Gestión de diferentes zonas de envío con diferentes tarifas. Admite banners, envío de boletines periódicos a los usuarios, etc.

     

    Si quereis ver un ejemplo de web basada en OsCommerce www.neumaticosyruedas.es

    Primer comentario

    Este es el primer comentario. Espero no abandonar demasiado este blog e ir incluyendo contenido.

Contacto

¿En que puedo ayudarte?

Formulario desactivado

Actualmente con residencia en Tres Cantos, Madrid

Escríbeme o llámame al 627 357 168