Blog de David Rodriguez

Internet, tecnologia, programacion, SEO

Archive for the 'Programacion' Category

Optimizacion de consultas sql con lower y trim

Febrero 19th, 2010 by David Rodriguez

Muchas veces utilizamos para buscar algún campo String en una base de datos MySql, confirmamos con lower y trim para poner todo el texto en minúsculas y eliminar espacios en blanco, tanto el principio como al final del registro.

SELECT * FROM tabla WHERE lower(trim(email))=lower(trim(‘emaildeprueba@prueba.com’));

Eliminar esas funciones sql en MySql reduce la consulta en un 70% con un número alto de registros.

La mejor solución para esto es:

  1. Introducir los datos con esas opciones ya realizadas. Facilmente en php o cualquier otro lenguaje de programación podemos realizar estas funciones, con un uso de máquina mucho menor.
    $email = strtolower(trim($email));
  2. actualizar todos los datos de la tabla para no tener estos problemas en un futuro
    UPDATE tabla SET email=lower(trim(email));
  3. Ya se puede eliminar estas funciones de la consulta(query).
    SELECT * FROM tabla WHERE email=’emaildeprueba@prueba.com’;

Es importante reducir el uso de CPU por parte de las consultas a base de datos, que es lo que nos puede retardar las respuestas al cliente. Como siempre hemos comentado, es muy importante optimizar las sentencias SQL para optimizar los tiempos de respuesta de la pagina web. Hay muchas cosas además de Indexar las tablas para optimizar una base de datos mysql.

Category: Base de datos, Internet, Programacion | No Comments »

La importancia de una buena eleccion de un tema para wordpress

Enero 14th, 2010 by David Rodriguez

Hace unos días hice una prueba con este blog .. cambie de tema (theme) de wordpress, el que tenía está optimizado para google y busque un tema que fuera bonito, y usable .. pero no optimizado para posicionamiento google – SEO.

Como os muestro en las estadisticas de este blog … esos días supuso un descenso brutal de los accesos al blog. La mayoría de accesos a este blog, son por busquedas en google y esto fue lo que pasó.

estadisticas blog david rodriguezCreo que queda demostrado, instalar un CMS como wordpress puede ser sencillo, y que tener un blog en internet es facil y barato (Wordpress es gratuito), pero para quien quiera tener un blog que no sea personal, es decir, con un fin económico, tiene que dejarse asesorar por buenos consultores web.

Como me dijo un buen amigo cuando le insinue que ser administrador de servidores windows era sencillo ya que todo eran ventanas .. y el me dijo que lo importante es saber que ventanas tocar jejeje

Una vez más .. vemos que la usabilidad y el diseño web deben de ir muy unidas. Si eres diseñador .. empapaté en usabilidad que hará mejorar los resultados de tus clientes.

Category: Internet, Programacion, SEO, marketing | No Comments »

Si se puede fumar sano. Electronic Smoke, nueva web de cigarrillos electronicos

Diciembre 11th, 2009 by David Rodriguez

Parece una incongruencia .. pero si .. se puede fumar sano. Desde que me presentaron el proyecto, me pareció una idea muy interesante y que iba a ser un bombazo en ventas. Realmente impresionante cuando lo pruebas. Se puede fumar en el trabajo, en los restaurantes, en el cine …. y todo esto con o mg de nicotina!!!!!!

¿quieres dejar de fumar? Con Electronic Smoke es facil y sencillo. Os animo a todos a que sea un inmejorable regalo para estas navidades.

electronic smoke

Desde la empresa de marketing online Activolution, se ha desarrollado todo el software necesario para su venta online, con metodos de pago con tarjeta y a través de PayPal. Estamos seguros del exito del producto, y una parte de ese éxito, será del desarrollo web de esta página.

Category: Empresas, Internet, Programacion | 2 Comments »

La importancia de un buen diseño web y una buena maquetacion web

Diciembre 9th, 2009 by David Rodriguez

Ultimamente, la mayoria de las pantallas que se venden en el mercado para ordenadores son unas pantallas enormes, con muchas pulgadas y apaisadas.

Esto hace que el diseño y maquetación de las paginas web no sea el mismo que hace unos meses. Las configuraciones de pantalla han variado muchisimo, y está cobrando una importancia máxima. El poder mostrar el mayor espacio de contenidos en horizontal es muy importante para aprovechar todo el espacio de pantalla visible al usuario.

En la nueva versión de la web de cursos topformacion.com, es un tema en el que hemos estado trabajando en el departamento de diseño y maquetación, para que la maquetación por capas sea automática según la configuración de pantalla del usuario. Es un trabajo muy arduo, y que requiere una gran comunicación entre ambos departamentos para poder realizar esto.

Tambien lo hemos realizado para otros desarrollos web como formaciontop.comcursos azafatas, etc

Podemos ver la diferencia de visualizar la web realizada por nosotros, y alguna otra web con grandes recursos.

Topformacion.com

topformacion

Emagister.com

emagister

Lo que más me extraña, es que grandes webs, como pueden ser la web de marca o elmundo, tampoco lo tiene. ¿cuanto espacio quieren desperdiciar? Todo este espacio se puede aprovechar para dar mas información al usuario, o para añadir alguna publicidad online, pero veo que prefieren seguir machacando al usuario con campañas de banners obsoletos, en vez de pensar en la usabilidad del usuario. Debe ser que todavia no conocen a la mejor empresa de desarrollos web de internet :D

La usabilidad es el  rey de la web.

Category: Internet, Programacion, SEO, marketing | 1 Comment »

problema window.open no funciona en Internet Explorer 8 (ie8)

Diciembre 1st, 2009 by David Rodriguez

Pues hemos encontrado que las ventanas emergente .. con internet explorer 8 no funcionaban, mientras que en el resto de los navegadores si que funcionaban (firefox, google chrome, incluso internet explorer 6 y 7).

El problema es el nombre que se le dá a la ventana .. que no permite ni espacios en blancos ni guiones bajos .. solo caracteres alfanumericos.

Es decir, si tenemos:

window.open(‘url’,'nombre de pagina’,'parametros’);

para que funcionara correctamente en ie8 deberia estar escrito:

window.open(‘url’,'nombredepagina’,'parametros’);

Cuidado con estas gilipolleces de nuestro gran amigo microsoft, que siempre está ayudando a los desarrolladores a facilitarnos el trabajo en los desarrollos web.

Category: Internet, Programacion | No Comments »

Como configurar un servidor de correo qmail para hacer un relay selectivo

Noviembre 12th, 2009 by David Rodriguez

Despues de hacerlo en varias maquinas, me he dado cuenta que no hay ninguna referencia a como hacer esto en español. Con lo cual, os voy a comentar lo que he realizado y los posibles problemas que puedes encontrarte para permitir el envio de correos desde un servidor a otro (relay).

El problema es que tenemos 2 servidores, y desde uno queremos utilizar el otro como maquina que envia los correos, para ello, en el servidor que va a enviar los correos, necesitamos configurar el qmail para que nos deje enviar esos correos desde la otra maquina. Esta opción siempre viene cortada para evitar los ataques de SPAM a esa pagina.

Para ello, nos vamos a basar en esta url, donde explica los pasos que hay que seguir. Siempre tenemos la pagina de qmail oficinal y una no oficial con bastante información en ingles, aunque para mi .. no la suficiente.

Lo primero es bajarse una aplicación para el qmail, como las que aparecen en la pagina no funcionan del todo bien, os dejo la mía con mis propias instrucciones.

ucspi-tcp-0.88

para desempaquetar el fichero

$ tar xvf ucspi-tcp-0.88.tar

$ cd ucspi-tcp-0.88

$  make

En caso de no tener instalado el comando make hay que instalarlo

$ yum install make

tambien hay que tener instalado el gcc .. con lo cual si te da error por no tienes el gcc tambien hay que instalarlo

$yum install gcc

Si al compilar te sigue dando errores como a mi .. que es lo mas normal, hay que comentar una fila en el fichero error.h tal y como comentan en esta url , hay que eliminar la siguiente fila:

extern int errno;

y cambiarla por esta otra:

#include <errno.h>

De esta forma ya compila y se puede ejecutar

$ make setup check

Con esto ya tenemos configurado el programa, ahora tenemos que configurarlo con nuestras opciones.

creas el fichero /etc/tcp.smtp y se pone lo siguiente:

1.2.3.4:allow,RELAYCLIENT=""
 127.:allow,RELAYCLIENT=""

Rellenando los valores 1.2.3.4 por la IP del servidor desde el que vamos a lanzar los envios de correo. Es decir, al servidor al que le permitimos que nos mande emails para enviar.

Para no tener problemas en un futuro, creamos este fichero /etc/dnsrewrite

$ touch /etc/dnsrewrite
$ cat /etc/tcp.smtp | tcprules /etc/tcp.smtp.cdb ~/tcp.smtp.tmp

Paramos el servicio de xinetd

$/etc/rc.d/init.d/xinetd stop

y ejecutamos el programa donde 2020 hay que poner el usuario y el grupo del usuario de qmail.

$ tcpserver -x/etc/tcp.smtp.cdb -u2020 -g2020 0 smtp /var/qmail/bin/qmail-smtpd &

Una vez hecho esto, ya estariamos escuchando por el puerto 25 para ver recibir peticiones

 $ netstat -apn | egrep ^tcp | egrep LISTEN

tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      2574/tcpserver

Una vez hecho esto, ya podemos probar a enviar un email desde el otro servidor, os dejo un codigo en php para probarlo utilizando el paquete htmlMimeMail.php:

 <? set_time_limit(0);

error_reporting(E_ALL);
include('mail/htmlMimeMail.php');

    $email = "xxxx@xxxx.com";
    $emailshow = "nombre";

    $servidorcorreo = "1.2.3.4";
    $subject = "correo de prueba - $servidorcorreo";

$fecha=date("Y-m-d");
$mail = new htmlMimeMail();
    $htmlmail = "prueba de envio";
    $mail->setSMTPParams($servidorcorreo,25);
    $mail->setHtml($htmlmail);
    $mail->setReturnPath($email);
    $mail->setFrom('"'.$emailshow.'"<'.$email.'>');
    $mail->setSubject($subject);
    $mail->setHeader('X-Mailer', 'HTML Mime mail class ');
    $mail->buildMessage(array($email));
    $result2 = $mail->send(array($email), 'smtp');

    if (!$result2) {
            print_r($mail->errors);
    } else {
            echo 'Mail sent!';
    }
  ?>

Ya solo nos quedaría grabarlo en el arranque para que si se reinicia la maquina, no tengamos que rearrancar el servicio, con lo cual, en el fichero   /etc/rc.local añadimos lo siguiente:

$  vi /etc/rc.local

añadimos lo siguiente:

 /etc/rc.d/init.d/xinetd stop
/usr/local/bin/tcpserver -x/etc/tcp.smtp.cdb -u2020 -g2020 0 smtp /var/qmail/bin/qmail-smtpd &

De esta forma .. reiniciamos la maquina para comprobar que todo funciona correctamente

$ reboot

Espero que este rollo sirva a mucha gente que se está pegando con el qmail a resolver sus dudas en español.

Category: Internet, Programacion | No Comments »

Go, nuevo lenguaje de programación de Google

Noviembre 12th, 2009 by David Rodriguez

Me entero esta mañana que google ha “abierto” un codigo de programación que ellos utilizan. En principio es un lenguaje muy parecido a C++ y compilado bajo linux. Este lenguaje se llama Go.

Imagino que es el utilizan para muchas de sus herramientas, y ya que lo tenian hecho para ellos, mejor abrirlo a toda la comunidad de desarrolladores para intentar ser un referente en el mercado.

Personalmente, no creo que tenga muchos seguidores .. aunque ya se sabe, que todo el mundo piensa que todo lo que toca google lo convierte en oro.

Veremos si dentro de unos años nos toca hacer unos cursos en algunas academias para aprendernos este nuevo lenguaje de programación.

Category: Internet, Programacion | No Comments »

Copiar archivos entre distintos servidores linux

Noviembre 4th, 2009 by David Rodriguez

Si necesitas tener sincronizadas distintas carpetas en linux, puedes crearte una tarea en el crontab para copiar cada x tiempo los ficheros de un servidor a otro.

Para poder hacer esto, lo primero que tenemos que hacer es crear una clave publica en un servidor.

  $ ssh-keygen -t rsa

Con esto generamos un par de ficheros:

 id_rsa.pub e id_rsa

El fichero id_rsa.pub debes copiarlo en el otro servidor, para que no te pida contraseña cada vez que pidas entrar y poder crear la tarea en el crontab. Normalmente, estos fichero se generan en /root/.ssh/ y se deben copiar en la carpeta authorize_keys

$ scp /root/.ssh/id_rsa.pub 192.168.1.111:/root/.ssh/authorized_keys

Ahora ya podremos generar una tarea para poder copiar ficheros de un servidor a otro. Esto lo hemos realizado con el protocolo SCP

$ scp -r 192.168.1.111:/var/www/vhosts/xxx.com/httpdocs/images/ /var/www/vhosts/yyyyy.com/httpdocs/images/

Con lo que tendriamos un directorio de imagenes totalmente sincronizado en ambos servidores, según la sincronización que hayas configurado en el crontab.

Para realizar esto, me he basado en los siguientes links:

http://www.laweba.net/linux/como-sincronizar-dos-ordenadores-en-linux/

http://bootlog.org/blog/linux/tip-ssh-scp-y-un-as-bajo-la-manga

Category: Internet, Programacion, Seguridad | No Comments »

Validar toda una web la w3c

Septiembre 30th, 2009 by David Rodriguez

Tal y como comentamos en otro post, se puede pasar la validación w3c a traves de la propia página de servicio de validación de w3c, donde tienes que ir pagina a pagina validando la w3c.

Tambien puedes validar las hojas de estilo css por separado desde la validacion css de w3c.

Pero si necesitas validar todo un sitio web, lo mejor es utilizar Multipage Validator, para validar todas las paginas de tu web.

Recordar, que tener una web que pase la w3c, mejora el posicionamiento google (SEO) de la pagina.

Category: Internet, Programacion, SEO | No Comments »

Los navegadores que usamos los usuarios en la web

Septiembre 15th, 2009 by David Rodriguez

Siempre que los desarrolladores realizamos una web, el tema de los navegadores es un gran quebradero de cabeza. Desde la empresa de desarrollos web Piensa en Naranja, siempre realizamos los desarrollos adecuandonos a la W3C, que es el estandar. Pero vaya por dios!!!! Microsoft no lo sigue .. ni quiere seguirlo!!!!! con lo cual, no nos queda más remedio que desarrollar y probar en distintos navegadores.

Pero no queda ahí la cosa … ya que los navegadores cambian de versión .. y codigo que antes funcionaba .. deja de funcionar .. incluso en el mismo navegador. Esto suele ocurrir más en Internet Explorer que en Mozilla … pero el tema es este. Tenemos que desarrollar para distintos navegadores, y ademas, para distintas versiones de un mismo navegador.

Cualquier desarrollador web creo que ha pasado por esto ….

He decidido comprobar con algunas de nuestras webs de cursos y franquicias, los resultados que nos dá google analytics sobre navegadores web que utiliza la gente y sobre las versiones de estos. He visto otros comentarios sobre este tema, y según la temática de la web … los navegadores pueden variar.

Un blog de linux, es normal que tenga un alto número de usuarios con navegador mozilla, y un blog de desarrolladores web, pues puede que tenga un numero más alto de lo normal en navegador Google Chrome. Para ello, he tomado como referencia varias webs nuestras sobre cursos, franquicias y academias. Creo que el target de usuarios de estas webs es muy variado, y puede seguir un patron para considerarlo “normal”.

navegadores web

 El primer grafico nos muestra algo que no me ha extrañado .. y es la siguiente proporción:

  • Internet Explorer 75-80%
  • Mozilla Firefox 15-20%
  • Google Chrome 2%
  • Safari 2%

Como podemos ver .. Internet Explorer sigue siendo el gran dominador, por mucho que los usuarios de Mozilla lo alabamos e intentamos convencer al resto de usuarios, Microsoft sigue siendo el rey .. y con mucha diferencia!!!!!

Me ha extrañado la poca entrada de google chrome .. pero imagino que es lo mismo .. se reduce a un target de desarrolladores y expertos en informatica.

navegadores web

En cuanto al siguiente gráfico, las versiones del explorer me ha llamado mucho la atención.

  • Internet Explorer 8.0 30%
  • Internet Explorer 7.0 40%
  • Internet Explorer 6.0 30%

Esto realmente me ha sorprendido .. ya que las diferencias entre cada versión son enormes, tanto en funcionalidad como en los temas específicos de los desarrolladores. Entiendo que el % de usuarios de Explorer 8.0 debe ir aumentando .. y el de Explorer 6.0 debe ir disminuyendo.

Algunos piensan que muchas grandes empresas, mantienen navegadores antiguos de Explorer, ya que actualizar las versiones, supone la modificación de sus propias aplicaciones .. y como solemos decir mucho los españoles .. “si funciona ¡¡no lo toques!!”. Creo que es cierto, pero no creo que el número sea tan grande .. y con las actualizaciones automáticas de Windows, se suelen actualizar los navegadores sin que nos demos cuenta.

Category: Internet, Programacion | No Comments »