Archivo del Autor

En una ocasión, instalando un servidor web con sistema operativo Linux Debian y soporte para PHP y MySQL, me encontré al instalar WordPress para un blog con el problema “Parece que tu instalación de PHP no cuenta con la extensión de MySQL, necesaria para WordPress”. La solución al problema es descomentar una línea del archivo php.ini, como especifica Patob en su blog. Hay que descomentar en el php.ini, generalmente en /etc/php5/apache2/php.ini (eliminar el punto y coma ; de delante) la línea:

;extension=mysql.so

con esto PHP carga la extensión para MySQL automáticamente. Por último reiniciamos Apache y MySQL:

#/etc/init.d/apache restart
#/etc/init.d/mysql restart

y este problema debería solucionarse.

Etiquetas: , , , ,

Comments No Hay Comentarios »

Hoy viernes 13 de marzo se cumplen 20 años del nacimiento de las páginas web (WWW), tal como las conocemos. El 13 de marzo de 1989 una propuesta presentada por un físico del CERN (Centro Europeo de Investigaciones Nucleares) sentó las bases para desarrollar el lenguaje HTML, que en principio serviría para intercambiar información entre físicos de todo el mundo a través de Internet. El lenguaje HTML (HyperText Markup Language) es un lenguaje de etiquetas que permite establecer hipervínculos entre documentos de forma fácil y que los navegadores saben interpretar. Tiempo después vendrían nuevas tecnologías y lenguajes como javascript, flash, asp, php,…

El creador de la WWW, Tim Berners-Lee junto al ordenador que sirvió de primer servidor web

El creador de la WWW, Tim Berners-Lee, junto al ordenador que sirvió de primer servidor web

Pocos se imaginaban que aquel invento iba a revolucionar la tecnología y en el CERN lo están celebrando dando conferencias, haciendo camisetas y exponiendo el primer ordenador que albergó un servidor web, un navegador web y un editor para desarrollar páginas web.

Ejemplo de documento en lenguaje HTML

Ejemplo de documento en lenguaje HTML

Recuerdo mi primer contacto con la web en la Universidad Politécnica de Valencia (España), cuando inicié (y años después acabé) la carrera de Ingeniería Técnica en Informática de Sistemas, allá por el año 1994. En 1995-96 colaboré en el desarrollo de una página web de una asociación de la Universidad y desde la Facultad de Informática programábamos las páginas web con un editor de textos y editor de imágenes básicos… Escribía el lenguaje HTML totalmente a mano, qué recuerdos, <html><head><title>… <table border=”0″… Empezando de esta forma me ha servido mucho posteriormente, es mucho más fácil encontrar errores y problemas cuando se conoce el código.

Este artículo en una versión menos técnica también lo podéis encontrar en Tecnología de la Vida.

Etiquetas: , , , , , , , , , , ,

Comments 1 Comentario »

Hemos creado un experimento socio-tecnológico imaginando que el intento de Golpe de Estado en España del 23 de febrero de 1981 se hubiera producido en la actualidad.

Etiquetas: , , , , , , , , , , , ,

Comments 3 Comentarios »

Como ya sabe cualquier usuario avanzado de WordPress, el panel de control y algunas frases genéricas de este CMS se pueden traducir al español poniendo el archvio es_ES.mo en /wp-content/languages y definiendo en /wp-config.php la línea define(‘WPLANG’,'es_ES’);

Pero para traducir un tema en particular, es necesario poner todas las frases que se quieran traducir entre las funciones __() y _e(), generar el archivo .po a partir de una herramienta como gettext y traducir todas las expresiones con la ayuda de algún programa como PoEdit, que también genera el archivo .mo final. No es mi intención explicar este proceso en este artículo (más sobre la herramienta gettext), sino abordar un problema que se me ha planteado y me ha costado mucho de solucionar.

Cuando tenemos el archivo de traducción del tema al español es_ES.mo generado, suele ocurrir que al actualizarlo en Internet el tema sigue apareciendo en inglés. Después de buscar mucho por Internet y no hallar solución, me fijé en algunos temas ya traducidos como mandingo y encontré la causa del problema. Pensaba que por defecto cualquier tema buscaba en la carpeta raíz el archivo de traducción a partir del parámetro WPLANG (en nuestro caso ‘es_ES’), pero no es así, hay que indicárselo.

En primer lugar, hemos de cargar el archivo de localización .mo del tema y esto se hace con la función load_theme_textdomain(‘nombre_tema’), así que hay que poner en algún archivo que se cargue siempre (como header.php) la siguiente línea:

<?php load_theme_textdomain('nombre_tema'); ?>

A continuación, en todos los archivos php del tema donde se utilicen las funciones de traducción __() y _e(), hay que especificarle el tema en todas las llamadas a esas funciones, por ejemplo:

_e('This post was written by ');

cambia a

_e('This post was written by ','nombre_tema');

y eso es todo. Es un poco de trabajo adicional pero así conseguimos que funcione nuestra propia traducción del tema.

Para no tener que hacer esto con todas las llamadas a las funciones __() y _e(), pensé en ir a su definición y modificar directamente el $domain, que por defecto es ‘default’, es decir, en /wp-includes/l10n.php cambiar el tema por defecto:

function __($text, $domain = 'default')

cambia a

function __($text, $domain = 'nombre_tema')

pero esto hace que el panel de control de WordPress pierda la traducción, ya que deja de cargar el archivo es_ES.mo genérico de /wp-content/languages, así que no tendremos más remedio que modificar todas las llamadas a las funciones __() y _e().

Etiquetas: , , , , , , , ,

Comments 10 Comentarios »

Descargar utilidad para generar contraseñas

Podéis descargar la utilidad para generar passwords aleatorios y ejecutarla (sin necesidad de instalarla) en los navegadores más populares, como Microsoft Internet Explorer o Mozilla Firefox, haciendo doble clic sobre el archivo “generar_password.htm” o añadiéndola a Favoritos del navegador.

Este archivo contiene una de las funciones más útiles que suelo usar para generar passwords o contraseñas para correo, redes sociales, bases de datos,…, programada en Javascript:

function generarPassword(form) {
 var strCaracteresPermitidos = 'a,b,c,d,e,f,g,h,i,j,k,m,n,p,q,r,';
 strCaracteresPermitidos += 's,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9';
 var strArrayCaracteres = new Array(34);
 strArrayCaracteres = strCaracteresPermitidos.split(',');
 var length = form.txtCampoLongitud.value, i = 0, j, tmpstr = "";
 do {
  var randscript = -1
  while (randscript &lt; 1 || randscript &gt; strArrayCaracteres.length ||
           isNaN(randscript)) {
   randscript = parseInt(Math.random() * strArrayCaracteres.length)
  }
  j = randscript;
  tmpstr = tmpstr + strArrayCaracteres[j];
  i = i + 1;
 } while (i &gt; length)
 form.txtCampoPassword.value = tmpstr;
}

Lo que hace esta función es escoger carácteres aleatorios del array strCaracteresPermitidos, hasta una longitud dada. En este caso concreto, se generan cadenas aleatorias con letras minúsculas y números, y no se incluyen carácteres que puedan resultar confusos, como la letra “l” (L, ele) que puede confundirse con el número “1″, o la letra “o” (O) que puede ser confundida con el número “0″. Se pueden añadir otros carácteres o letras mayúsculas ampliando el array strCaracteresPermitidos, así como la dimensión (número de elementos) del array strArrayCaracteres.

Para que funcione esta función tal como está, debe ir acompañada de un código HTML similar a:

<form>
 <input type="text" name="txtCampoPassword" size="20">&nbsp;&nbsp;
 <input type="button" value="Generar" onClick="generarPassword(this.form);">
 <br>
 Longitud password:
 <input type="text" name="txtCampoLongitud" size="4" value="8">
</form>

que contiene el campo con el password generado, el botón para ir generándolos y el campo donde se le especifica la longitud de la contraseña.

Podéis descargar el archivo HTML completo (con la función javascript en su interior) aquí y ejecutarlo en los navegadores más populares, como Microsoft Internet Explorer o Mozilla Firefox.

Etiquetas: , , ,

Comments 2 Comentarios »

Para todos los que se dediquen al mundo de la informática, llega esta gran ayuda para no tener que pensar excusas a la hora de dar explicaciones sobre el retraso en la finalización de un proyecto o en la reparación de una avería informática. Eligiendo cualquier combinación entre las 3 columnas se generará una excusa de digno significado técnico que nos puede sacar de más de un apuro…

Haz clic en la imagen para verla más grande.

Etiquetas: , ,

Comments No Hay Comentarios »

Bueno, me he adelantado a la Wikipedia y he detectado que entre ayer y hoy el PageRank de Google (importancia que da el buscador a las páginas web) se ha actualizado. Google suele actualizar el PageRank de las páginas que indexa cada 3 ó 4 meses y he observado que mis cuatro blogs principales (iniciados entre Octubre y Noviembre de 2008) han pasado en apenas tres meses desde la última actualización (3ª semana de Octubre de 2008) de PageRank 0/10 a:

http://programadorasp.com: 2/10
http://inversionyahorros.com: 3/10
http://tecnologiadelavida.com: 3/10
http://chistesconbuenhumor.com: 3/10

El PageRank de una página web se puede ver desde la barra Google instalada en el navegador (muy útil, la recomiendo) u otras webs que consultan directamente a los servidores de Google como la de nuestros amigos de Código Fuente o PageRankSites. El PageRank puede variar según el servidor de Google en el que se consulte, sobre todo durante el Google Dance, periodo de unos cuatro días en los que Google acutaliza el PageRank.

Así que es una muy buena noticia, porque demuestra que Google premia las webs con buen contenido, original y que se actualiza frecuentemente… Supongo que esta gran subida sólo es al principio, ya que según tengo entendido aumentar un PageRank ya de por sí alto cuesta más.

Un buen regalo para despedir el año… Por cierto,

¡¡¡Feliz año 2009!!!

Etiquetas: , , , ,

Comments No Hay Comentarios »

Para programar, en vez de un IDE o entorno de desarrollo integrado, prefiero utilizar un editor avanzado. Hace unos años utilizaba EditPlus, pero no era gratuito y tenía algunas limitaciones (formatos ANSI, UTF-8), con lo que recomendado por un amigo, decidí probar PSPad, un potente editor avanzado de textos gratuito y disponible en español, que se puede descargar de http://www.pspad.com/es/.

El editor PSPad es simple pero potente y permite trabajar con varios lenguajes de programación (HTML, CSS, Javascript, ASP, PHP,…). Ofrece resaltado sintáctico (syntax highlighting) para infinidad de lenguajes y trabaja sin formato de textos, con lo que es últil para eliminar cualquier formato copiando y pegando desde y hacia Word o Correo electrónico, además de permitir guardar los archivos en ANSI, UTF-8 y otros. También soporta macros, búsqueda en archivos, reemplazo con espresiones regulares,…

En fin, para ser gratuito y en español, no se le puede pedir más. Muy recomendable.

Etiquetas: , , , ,

Comments No Hay Comentarios »

Me han enviado un correo con un truco curioso, obtenido de una traducción del artículo original de Phil Benwell.

Se trata de un pequeño código en Javascript para modificar el contenido de cualquier página web que se esté visualizando. Evidentemente sólo funciona en local con las webs que tengamos cargadas en el navegador, pero podemos vacilar un poco delante de los amigos modificando la cifra de ganancias en AdSense o apareciendo en la primera página de algún periódico online.

Para ello, cuando estemos visualizando la web que queremos modificar, pegamos el siguiente código en la barra de direcciones del navegador:

javascript:document.body.contentEditable='true';
document.designMode='on'; void 0

y pulsamos Intro, con lo que podremos editar cualquier parte de la página web: eliminar contenido, añadir imágenes, modificar texto,…

Como ya he dicho, estas modificaciones sólo actúan a nivel de nuestro ordenador local, con lo que no estamos modificando nada en Internet.

Etiquetas: ,

Comments No Hay Comentarios »

Alguna vez he tenido la necesidad de eliminar los saltos de línea en un campo de formulario de tipo textarea. Más aún, he tenido la necesidad de eliminar los saltos de línea del texto seleccionado dentro de un textarea. Con la siguiente función Javascript conseguimos localizar la porción de texto seleccionado y eliminar los saltos de línea o line breaks (“\n”) y los retornos de carro o carrier return (“\r”). Para ello utilizamos funciones propias del lenguaje Javascript (createTextRange, duplicate, replace) y expresiones regulares.

function suprSaltos(campo) {
 if (campo.createTextRange) {
  campo.focus(campo.caretPos);
  campo.caretPos = document.selection.createRange().duplicate();
  if(campo.caretPos.text.length&gt;0) {
   var sel = campo.caretPos.text;
   var fin = '';
   while(sel.substring(sel.length-1, sel.length)==' ') {
    sel = sel.substring(0, sel.length-1);
    fin += ' ';
   }
   campo.caretPos.text = sel.replace(new RegExp('\\n','g'),''). _
                          replace(new RegExp('\\r','g'),'') + fin;
  } else campo.caretPos.text = '';
 }
 else campo.value += '';
}

Como en otras funciones, en esta función es necesario juntar la expresión en una única línea quitando los _ de final de línea porque de lo contrario no funcionará.

Etiquetas: , ,

Comments 4 Comentarios »