coge la información y corre

De Webmaster windowsero a Webmaster Linuxero, parte I

23 de octubre del 2007 Escrito por José Cabo

20-xampp-logo-trio.jpg¿Eres webmaster, usas Windows, pero te sientes vacío y quieres ir a más y considerarte un webmaster de calidad?

Pero ello te plantea dos posibles opciones: la primera consiste en abandonar todo lo que sabes y dedicarte a ver cómo crece tu jardín (que probablemente ni tengas) porque en Windows nunca serás ‘lo más cool’ ni lo más ‘profesional’ que querrías ser.

La segunda opción es pasarte a GNU/Linux. Aprender a desarrollar en una verdadera plataforma de desarrollo, aprender a -trabajar- en un escritorio profesional de verdad, en un ordenador que realmente computa información de manera efectiva. Seguro que al final, con insistencia, alguna de estas cualidades de GNU/Linux se te contagian y puedes completar tu formación de webmaster/administrador.

Para comenzar dividiremos nuestro cambio de sistema en dos partes: La primera y más importante será la referente al software y, la segunda será la referente a la ‘adaptación del entorno de escritorio a nuestro gusto’, es decir, la personalización del escritorio, con enlaces a las aplicaciones que más vamos a usar, uso de los diferentes escritorios, etc…

Una parte muy importante y necesaria para un buen webmaster es un ‘servidor de pruebas’ en donde subiremos nuestros scripts web (html, php, etc…) antes de subirlos al hosting. Hablo de software pero en realidad debería hablar de hardware, el problema viene cuando nosotros somos pobres trabajadores explotados por la burguesía y no podemos permitirnos tener una sala especial para montar nuestro servidor para hacer pruebas así que nos limitaremos a usar nuestro propio ordenador. Por lo tanto lo primero que deberemos hacer es elegir una distribución – que en mi caso es Ubuntu GNU/Linux 7.10 Gutsy Gibbon, liberada el reciente 18 de Octubre, aunque puede servir cualquier distribución reciente de Linux (Fedora, Mandriva, OpenSuse, …). Obviamente, nuestro entorno de trabajo por defecto será Gnome (mi favorito… y para mi gusto el mejor, aunque siempre podéis probar con KDE o con Xfce entre otros montones).

Sigue leyendo esta entrada »

Categorias: GNU/Linux, HOWTO/CóMO, Web | 12 comentarios »

Conseguir comentarios en nuestro Blog

17 de octubre del 2007 Escrito por Alex Barros

Todos los que tenemos un blog sabemos lo importante que son los comentarios. Te ayudan a continuar con tu labor, a corregir errores, a completar información, a conocer a tus lectrores, y sobre todo pasar un buen rato.

Por eso es muy importante potenciar los comentarios, y darles el valor que se merecen. Voy a explicar una serie de estrategias que pueden hacer que se comente más en tu blog, o por lo menos que sea más agradable hacerlo.

Sigue leyendo esta entrada »

Categorias: Código, Diseño, HOWTO/CóMO, PHP, Plugins, Web, Wordpress | 2 comentarios »

Explicación visual de los SQL Join – Unir tablas con SQL

12 de octubre del 2007 Escrito por Alex Barros

Me ha parecido muy interesante el artículo escrito por Jeff Atwood titulado A Visual Explanation of SQL Joins.

Tanto es así que he decidido traducir este artículo al español. Disfrutad:

Autor Original: Jeff Atwood
Fecha: 11/10/07
Traductor: Alex Barros

Pensé que el post de Ligaya Turmelle sobre SQL joins era una genial introducción para los desarrolladores primerizos. Dado que los SQL joins están basados fundamentalmente en conjuntos relacionados, el uso de diagramas de Venn para explicarlo parece lo más acertado. De todas formas, igual que los comentaristas de su post, opino que sus diagramas de Venn no encajaban con la sintaxis de SQL join en mis pruebas.

Aún así me encanta el concepto, así que veamos si podemos hacerlo funcionar. Supongamos que tenemos las dos siguientes tablas. La tabla A está a la izquierda, y la tabla B está a la derecha. Las rellenaremos con cuatro registros cada una.

tabla A y B muestra

Ahora unamos estas dos tablas por el campo nombre de algunas formas distintas, y veamos si podemos obtener unas representaciones conceptuales con los ingeniosos diagramas de Venn.

Inner join sólo produce los registros que coinciden en las dos tablas A y B.

  1. SELECT * FROM TablaA
  2. INNER JOIN TablaB
  3. ON TablaA.nombre = TablaB.nombre

Resultado de Inner Join Join Inner

Full outer join produce el conjunto de todos los registros en las tablas A y B, con registros coincidentes en ambos lados cuando sea posible. Si no hay coincidencia, el lado que falta contendrá null.

  1. SELECT * FROM TablaA
  2. FULL OUTER JOIN TablaB
  3. ON TablaA.nombre = TablaB.nombre

Resultado de Full Outer Join Join Cartesian

Left outer join produce el conjunto completo de registros de la tabla A, con los registros coincidentes (si están disponibles) en la tabla B. Si no hay coincidencia, el lado derecho contendrá null.

  1. SELECT * FROM TablaA
  2. LEFT OUTER JOIN TablaB
  3. ON TablaA.nombre = TablaB.nombre

Resultado de Left Outer Join Join Left

Para producir el conjunto de registros en la tabla A, pero no en la tabla B, usamos el mismo Left Outer Join, y luego excluimos los registros que no queremos del lado derecho mediante una cláusula Where.

  1. SELECT * FROM TablaA
  2. LEFT OUTER JOIN TablaB
  3. ON TablaA.nombre = TablaB.nombre
  4. WHERE TablaB.id IS NULL

Resultado de Left Outer Join con exclusión Join Left Outer

Para producir el conjunto de registros únicos de la tabla A y la tabla B, usamos el mismo Full Outer Join, y luego excluimos los registros que no queremos de los dos lados mediante una cláusula Where.

  1. SELECT * FROM TablaA
  2. FULL OUTER JOIN TablaB
  3. ON TablaA.nombre = TablaB.nombre
  4. WHERE TablaA.id IS NULL
  5. OR TablaB.id IS NULL

Resultado de Full Outer Join con exclusión Join Outer

También hay un cross join, el cuál no puede ser expresado con un diagrama de Venn:

  1. SELECT * FROM TablaA
  2. CROSS JOIN TablaB

Esto une “todo con todo”, dando como resultado 4 x 4 = 16 filas, muchas más de las que teníamos en los conjuntos originales. Si haces unos simples cálculos, puedes ver por qué es un Join muy peligroso de ejecutar en tablas grandes.

Ver también: Hacer Múltiples Join en una sola Sentencia

Categorias: MySQL, Web | 150 comentarios »

Pequeña comparativa de editores HTML en Linux

14 de septiembre del 2007 Escrito por José Cabo

Muchos de los programadores de HTML, PHP, CSS, etc… siguen afirmando que en Linux es imposible o poco productivo trabajar. Me siento obligado a negar tal hecho porque es simplemente.. falso. En el mundo Linux, como en otros Sistemas Operativos (tanto Windows como MacOS) hay montones de editores de montones de sabores y, en el caso de Linux, abundan los multiplataforma y… libres.

Actualmente podemos ver montones de editores relacionados con la programación web. Es un ejemplo el abandonado NVU y su sucesor Kompozer (que hace nada liberaron su última versión), Quanta Plus (que pinta muy muy bien), el mismo gedit, etc… Muchos de ellos se complementan así mismo aunque mi preferido hasta el momento es KompoZer o Quanta plus (que explicaré el porqué).

kompozer.pngEn primer lugar NVU es un proyecto de Mozilla que pretendía revolucionar a los editores HTML del momento en Linux… y bueno, casi lo consigue solo que se abandonó el proyecto. Una verdadera pena porque estaba siendo bastante completo para lo que había actualmente en Linux. Pero gracias a unos buenos programadores se creo un fork, KompoZer, y se empezó a solucionar los bugs y a añadir nuevas herramientas en este “nuevo” programa de edición. Tiene varios modos: el modo normal (ves la página como si estuvieras en el navegador), el modo source para ver el código y el modo tag, para ver las etiquetas, son los más usados. Trae buenas herramientas que más bien podrían pasar por simples gestores de ayuda. Lo que yo creo que le hace falta… es un autocompletado al escribir código.

quanta1.pngTenemos también a Quanta Plus un editor gráfico que usa las librerías de KDE y por lo tanto… se ve mejor en KDE (aunque os puedo asegurar que no se ve tan mal en Gnome). Este programa parecía que iba a ser el que realmente me iba a llamar la atención… y lo fue durante un tiempo porque es el único que conozco que tiene el autocompletado, aunque es una versión muy rudimentaria y no funciona en todos los lenguajes (en CSS por ejemplo no funciona y en HTML no funciona como se espera). Este editor no tiene pestaña para ver lo que llevas hecho sin necesidad de ir al navegador.

gedit1.pngEso por lo que respecta a editores gráficos y nos lanzamos, pues, a editores de texto el que más destaca es sin duda Gedit el -editor de texto plano- de Gnome. Pero no os engañéis, no tiene nada que ver con el Notepad de Windows. Éste es mucho más profesional, bello y funcional. Destaca por su gran capacidad para colorear código en muchos tipos de lenguajes (no solo web, sino de código fuente de C, VB, C++, Perl, Python, etc). Éste es sin duda el preferido por cualquier usuario que se atreva a escribir a pelo sin pijadas.

Por lo que respecta a otros editores no-gráficos (como Gedit) desconozco de otros que estén a su altura (dentro de lo que cabe). Así que si alguien se siente la necesidad de informarme de algún otro programa con mucho gusto lo añadiré.

Ahora lo que realmente os traigo es una sorpresa, aunque posiblemente al sector más conservador de Linux no le agrade la idea. Os traigo a mi amigo Wine, que no es un emulador, y que gracias a él vamos a poder portar ciertas aplicaciones que para los nostálgicos y gente como yo viene realmente bien. Hablo del conocido Dreamweaver, creado por Macromedia y comprado por Adobe después. Gracias a Wine tenemos casi un perfecto porte de esta aplicación nativa de Windows a Linux. Eso sí, me temo que actualmente con la versión actual de Wine (0.9.44) no funciona en su última versión. Así que deberemos usar la versión anterior, la 8 y puedo asegurar que funciona realmente bien, aunque seguro que pronto dan soporte para la que sacaron hace poco: Dreamweaver CS3.

Para instalarlo bajo Wine no necesitáis ningún añadido extra más que el instalador (ejecutable o CD) y seguir como si fuera una instalación normal en Windows (supongo que todos sabéis como funciona Wine $ wine PROGRAMA.exe). Aunque parezca que no, Wine consigue lo imposible. Dreamweaver 8 está bastante integrado en el escritorio y funciona a la perfección con las últimas versiones de Compiz Fusion, incluido exposé, el efecto gelatina y la transparencia en los menús, una gozada.

dw1.png
dw2.png
dw3.png

Como ya he dicho, si tenéis dudas sobre los mismos programas o queréis añadir cosas nuevas (features o lo que sea) tenéis un maravilloso sistema de comentarios para contactar y hablar con nosotros (y con quien sea) ahí debajo.

Categorias: Comparativa, CSS, GNU/Linux, HTML, Internet, PHP, Software libre, Web | 6 comentarios »

Google apoya a IE7. Traición a Firefox, o dualidad de conveniencia?

14 de septiembre del 2007 Escrito por Alex Barros

Me ha sorprendido hace un momento encontrar un anuncio de Adsense en que Google recomienda la descarga de Internet Explorer 7.

google_recomienda_ie7.png

Me ha sorprendido sobremanera, dada la gran campaña desplegada para fomentar Firefox. Será que Google recibe un buen pellizco de Microsoft por esta publicidad?

google_promociona_ie.png

Personalmente, me parece fatal por parte de esta empresa tan importante, promocionar un producto de tan mala calidad que además es privativo, y respeta los estándares igual que una morsa lo haría.

Enlace: http://www.google.com/toolbar/ie7/intl/es/

Categorias: Google, Internet, Internet Explorer, Web | 5 comentarios »

1 blog cacher, alternativa a WP-Cache

14 de septiembre del 2007 Escrito por Alex Barros

Acabo de descubrir este plugin de WordPress, basado en WP-Cache de Ricardo Galli y HTML cache creator de Jiandong.

Al parecer tiene mejores características, y más opciones en la configuración que el famoso WP-Cache. Por ejemplo, no cachea la página para los usuarios registrados, puedes controlar qué URL cachear, la caché se actualiza al escribir, editar o borrar entradas y comentarios…. etc.

En Boozox vamos a probarlo, a ver qué tal va.

Enlace: http://es.1blogcacher.com/

Categorias: Aplicaciones, Plugins, Web, Wordpress | 2 comentarios »

Urgente, actualizar WordPress a 2.2.3

13 de septiembre del 2007 Escrito por Alex Barros

yast_security.pngLeo en Sigt que existe un exploit muy peligroso que ataca múltiples versiones de WordPress (2.2, 2.2.2, 2.0.5, 2.0.6, 2.1, …)

En la noticia original apuntan que cerca del 50% de los blogs administrados con WordPress están en riesgo por este programa malicioso.

De modo que si estás usando una versión anterior a la 2.2.3, ya sabes: A actualizar.

Categorias: Internet, Software libre, Web, Wordpress | 2 comentarios »

Comet, la nueva etapa de Ajax

30 de agosto del 2007 Escrito por Alex Barros

generic-comet.jpgAjax sigue siendo un completo desconocido para muchos programadores web. Se habla de que es un lenguaje (no lo es, es una herramienta!) y se asocia automáticamente a la nueva generación de webs, más potentes, amigables, sociales, usables…

Ajax consiste, básicamente, en mandar mensajes (con formato XML, o texto plano) del servidor al cliente mediante una petición asíncrona por parte del cliente.

Un ejemplo: Cuando el usuario pulsa en un botón de búsqueda, se envía una petición al servidor solicitando los resultados de esta búsqueda, cuando los tiene los devuelve, y el usuario los ve en pantalla, todo sin cambiar de página.

Esto implica que para que el servidor me de información, el cliente tiene que solicitarla, es decir, al ocurrir algún evento en el lado cliente. Y aquí radica la diferencia entre AJAX y Comet (o HTTP Push), y es que Comet no requiere que el ordenador cliente solicite ninguna información, sinó que es el servidor el que decide cuándo enviar la información al cliente, de forma asíncrona.

Un ejemplo: En un sistema de mensajería instantánea, en lugar de hacer contínuos chequeos al servidor, para ver si hay nuevos mensajes, símplemente cada vez que el servidor recibe un nuevo mensaje envía esta información a las máquinas cliente.

La forma de hacer esto es mediante una conexión HTTP de larga duración, de esta forma el servidor tiene una línea contínua de comunicación con el cliente. Aquí el cliente envía información al servidor, y el servidor al cliente; pero cada uno lo hace en el momento oportuno, en lugar de viajar la información como bloque de datos en respuesta a una petición.

Para usar esta tecnología tendremos que usar alguno de los pocos frameworks que actualmente existen con soporte para Comet, por ejemplo Xaja, un framework PHP que permite este tipo de conexión, o HTTP.Push, pequeña biblioteca javascript con este tipo de llamada.

Personalmente todabía he de investigar sobre esta tecnología, porque no tengo muy claro lo de generar eventos en el servidor, o lo de que un archivo en lado servidor esté siempre disponible con el cliente.

Categorias: HTML, JavaScript, Web | 1 comentario »

PC + Zatoo = TV

26 de agosto del 2007 Escrito por Alex Barros

Seguramente la mayoría de vosotros ya conoceréis Zatoo. Para quien no sepa qué es, se trata de un reproductor de TV en el PC. Te ofrece una serie de canales (que varían según la región) y te los muestra en directo (con un pequeño delay de unos segundos).

Yo había oido hablar en algunas ocasiones, pero nunca había investigado sus posibilidades. Ahora, por avatares del destino, me lo he instalado en mi Linux Mint, con el paquete .deb que proporcionan. He de decir que me he quedado pasmado.

Es increíble ver transformado tu ordenador en una auténtica TV. Puedes además hacer pantalla completa, y tener una auténtica TV. Mi monitor es de 19 pulgadas, y la calidad era francamente buena.

Los canales que me permite seleccionar son los básicos de la televisión pública española: TVE1, La2, Antena3, Cuatroº, Tele5 y La Sexta (Curiosa la originalidad numérica, fácil asignarles el botón en el mando de casa).

Dejo un pantallazo de Zatoo en mi Linux Mint (lo mismo que Ubuntu, casi):

zatoo-pantallazo.png

Categorias: Aplicaciones, GNU/Linux, Internet, Web | No hay comentarios »

CURLOPT de CURL

21 de agosto del 2007 Escrito por Alex Barros

Aúnque el título parezca más bien un trabalenguas proviniente del mismísimo Chiquito de la Calzada, hoy voy a comentar algunas potentes opciones que nos brinda la biblioteca CURL.

Para mí CURL era un auténtico desconocido, cuando en el anterior host no tenia ni fopen para urls externas. Pero una vez lo conoces se convierte en una herramienta muy potente y útil.

Lo primero a realizar en nuestro código, es siempre la inicialización de curl, con la función curl_init()

  1. $ch = curl_init();

Hecho esto tendremos en la variable $ch el identificador de nuestra sesión CURL. Ahora sólo nos tenemos que dedicar a marcarle nuestras preferencias para la conexión. Voy a mostraros a continuación las que me parecen más importantes, pero recordad que hay muchas más.

  1. // Indicamos la URL a la que queremos acceder
  2. curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
  3. // Si la conexión tarda más de 30 segundos, que no siga
  4. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
  5. // Si la conexión falla, que lo haga de forma "silenciosa"
  6. curl_setopt($ch, CURLOPT_FAILONERROR, 1);
  7. // Permitir que la conexión se redirija si le es indicado
  8. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  9. // El resultado lo quiero almacenar en una variable, en lugar de que lo imprima por pantalla
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  11. // Voy a enviar contenido en forma de variables POST
  12. curl_setopt($ch, CURLOPT_POST, 1);
  13. // Estos son los campos POST, en forma de array asociativo
  14. curl_setopt($ch, CURLOPT_POSTFIELDS, array(‘nombre’=>"Alex",‘apellido’=>"Barros"));
  15. // Voy a finjir que tengo una serie de Cookies, incluida la de sesión
  16. curl_setopt($ch, CURLOPT_COOKIE, ‘nombre=Alex; galleta=chocolate; PHPSESSID=0123456789qwertyasdfg9876543210′);
  17. // Foy a finjir que provengo de otra web, la que yo quiera
  18. curl_setopt($ch, CURLOPT_REFERER, ‘http://zumbe.net/’);
  19. // Voy a indicar qué User Agent estoy usando. Por ejemplo el de un iPhone
  20. curl_setopt($ch, CURLOPT_USERAGENT, ‘mozilla/5.0 (iphone; u; cpu like mac os x; en) applewebkit/420+ (khtml, like gecko) version/3.0 mobile/1c25 safari/419.3′);

Por último, ejecutamos la sesión, y cerramos la misma.

  1. // Almaceno en la variable $resultado el codigo de la pagina
  2. $resultado = curl_exec($ch);
  3. // Se cierra el recurso CURL y se liberan los recursos del sistema
  4. curl_close($ch);

Sólo con esas herramientas ya podemos hacer un proxy muy completo, que nos haga lo que nosotros queramos.
Ahora sólo es echarle imaginación, ingenio y paciencia.

Categorias: Código, PHP, Web | 2 comentarios »

« Entradas Anteriores Siguientes entradas »

del.icio.us meneame.net RSS

Search:

Bicivalencia Localiza las estaciones de Valenbisi, servicio público de bicicletas en Valencia, España. Ver más Gpsia Descubre y comparte rutas por todo el mundo, tomadas con GPS. Ver más Imaset Edita tus imágenes de Wordpress con este sencillo plugin. Ver más

¡Mi música es tuya!

Digo yo que...

Mis fotos de Flickr

Entradas recientes

Meta:

Respeta el copyleft

,