May 14

chuidiang-editores

 

Acabo de subir a google-code los fuentes de otro pequeño proyecto que me traigo entre manos, chuidiang-editores.

De momento son simplemente unas clases que heredan de JFormattedTextField y hace de editores simples: un EditorNumerico, EditorDate, EditorLongitud, EditorLatitud, etc. Por supuesto, intentando que sólo admitan números correctos, que se puedan poner restricciones, como que el número esté entre un mínimo y un máximo, etc.

También hay un EditorPanelGeneral. Es un JPanel al que se añaden editores de una forma simple y él se encarga del Layout y de colocarlos de forma automática. Este JPanel admite como dato un Hashtable. Con las claves identifica a qué editor pertenece el dato y se lo pasa. En el método getDato() devuelve un Hashtable con los datos de cada uno de los editores.

Y eso es más o menos lo que hay. La intención final es ligar todo esto con base de datos, de forma que para un conjunto de columnas dadas de unas tablas, se construya automáticamente el formulario y más adelante, facilitar también el tema de consultas e inserciones, así como la presentación en un JTable de los resultados, con sus botones de crear/editar/borrar, filtro, etc.

Ahí van algunos enlaces:

y sólo falta lo de siempre, porque empezar he empezado con ganas. Lo que hay que ver es lo que dura.

Apr 25

sitemap para SMF

Hace tiempo comenté en un post que el foro SMF es un desastre para que lo indexe google y, de hecho, no aparecía en google ninguno de los temas de mi foro de java. Intenté instalar el plugin seo4smf para tratar de arreglarlo, pero no conseguí que me funcionara. Al final, como comenté en aquel post, me hice un pequeño programa java que generara un fichero sitemap.xml para colgarlo en el foro.

Esa opción no era buena del todo. Conseguí que google indexara los temas del foro, pero tenía que actualizar el sitemap periódicamente a mano. Así que decidí hacerme un pequeño script sitemap.php que hiciera de sitemap para google de forma automática.

Este script, al llamarlo, consulta en la base de datos el campo id_topic de la tabla smf_topics. Es la única información que necesita para generar el fichero XML de sitemap. El script dice que devuelve un "Content-Type : application/xml" para que cuando google lo consulte piense que es un fichero XML, luego envía los tags XML correspondientes al sitemap.

Adjunto el código php por si a alguien le interesa

<?php
header(’Content-Type: application/xml’);
include (’Settings.php’);

print (’<?xml version="1.0" encoding="UTF-8"?>’);
print (’<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">’);

$link = mysql_connect ($db_server, $db_user, $db_passwd) or die ("<center>No se puede conectar con la base de datos\n</center>\n");
$query=’select id_topic from smf_topics’;
$result=mysql_db_query ($db_name, $query, $link);

while ($row = mysql_fetch_array ($result))
{
   print (’<url>’);
   print (’<loc>’);
   print (’http://foro.chuidiang.com/index.php?topic=’.$row[0]);
   print (’</loc>’);
   print (’</url>’);
}
mysql_free_result($result);
print (’</urlset>’);
?>

El include "Settings.php" únicamente incluye un fichero de configuración del foro, en el que están las variables con el nombre de la base de datos $db_name, el usuario $db_user y la password $db_passwd. Ojo, no le busqueis pegas, que las tiene. Yo no tengo ni idea de PHP.

 

Apr 21

Más spam en la Chuwiki

Llevo unos días recibiendo spam en la Chuwiki. Varias veces al día crean una página de nombre "Titulo incorrecto" con un montón de enlaces de spam y desde IPs distintas.

Llevo varios días borrando esa página. Al ver que el tema seguía, me decidí a bloquear las IPs de donde proviene ese spam, pero parece que no se les acaban. Seguramente están usando un proxy de IP dinámica, de esos que sirven para ocultar la IP real.

Mirando en la documentación de MediaWiki veo que existen cosas como Captchas estilo ConfirmEdit, pero no parece que sea de fácil instalación y sobre todo porque en los primeros párrafos empiezan a contar rollos de versiones que, por supuesto, yo no tengo.

Así que al final, encontré cómo hacer para que un usuario no registrado no pueda crear páginas, que básicamente consiste en editar el fichero LocalSettings.php y añadirle una línea como

$wgGroupPermissions[’*'][’create’] = false;

con lo que no permite a usuarios anónimos (debe ser el *) crear (por lo de create) páginas nuevas.

Es una pequeña limitación, pero supongo que a alguien que quiera crear una página y se vaya a poner a escribir algo en serio en ella, no le costará mucho más esfuerzo registrarse y darse de alta.

Apr 03

Nuevo chiste

En mi página principal Apuntes de Programación, sale un chiste aleatorio cada vez que se visualiza. Gracias a Luis (un compañero de trabajo), tenemos un nuevo chiste disponible

vieja nintendo

Apr 02

Spam, spam y más spam

Después de descubrir que me habían crackeado el header.php del blog, esta mañana tenía como cuarenta y tantos comentarios esperando moderación, todos de por la noche. Los miro, y todos son spam. 

¿Cómo es posible, si tengo puesto el plugin ese que pide una suma para verificar que el "comentarista" es humano?.

Me pongo a revisar y ya está claro. Resulta que todos van al mismo post y que vienen como "trackbadks" de otros blog. Supongo que eso es una tontería y detrás no hay ninguno de esos blogs, símplemente habrán encontrado la forma de que el robot de turno envíe esos trackbacks.

Así que nada, nuevo plugin para evitar spam. De todas formas, la versión que tengo ahora de wordpress tampoco es la última, sino que es la última que me ofrecía mi panel de control del hosting. Quizás prueba a instalarme la última manualmente, a ver si es un poco más robusta y es capaz de detectar/protegerse este tipo de spam.

 

 

Mar 29

Actualización de wordpress

Anteayer visité mi propio blog y tuve un pequeño disgusto. Por más que le daba, parecía que no se cargaba la hoja de estilo CSS. El blog salía sin columnas, sin estilos, fuentes, colores ni nada. Texto plano y simple. Con el navegador le dí a ver el código fuente de la página y otro disgusto más grande. En la página faltaba toda la sección de <head>, que es donde se hace referencia al fichero de estilo CSS. En su lugar había una línea larga y kilométrica de enlaces de span con estilo hidden para que no fueran visibles. Abro el administrador de wordpress, voy al editor de temas y efectivamente, el fichero header.php había sido reemplazado por esa línea de span. ¡¡ Me habían crakeado el blog !!

Afortunadamente hago backups todos los meses, así que fuí al último backup con la intención de recuperar ese fichero header.php. Pues bien, hace un mes también estaba crackeado, pero al menos habían respetado el tag <head>, símplemente habían añadido todos esos enlaces/span. Viendo el blog con ese header.php el blog se veía correctamente, pero al ver el código fuente, todos esos enlaces/span estaban ahí.

Así que decidí actualizar la versión de wordpress, puesto que la que tenía puesta una un poco antigua. La última actualización había sido un desastre y por eso no lo había actualizado. Así que me armé de valor y me decidí a intentarlo otra vez. Esta vez por necesidad más que por estar a la última. Me voy al administrador del wordpress y desactivo todos los plugins. Luego al "fantásico" de mi hosting y actualizo a la últma versión disponible desde ahí. Volvió a pasar el desastre de la otra vez, todos los acentos y eñes cambiados por "gurruños" variados. Buscando por internet, encuentro esta solución para los acentos de wordpress. La verdad es que es muy tonta, basta buscar el fichero wp-config.php y hay una línea que pone define(’DB_CHARSET’, ‘utf8′). Basta cambiar el utf8 por latin1, así define(’DB_CHARSET’,'latin1′). Con eso se arregló el tema de acentos.

El otro problema que tenía con que se me descolocaban los videos de youtube lo solucioné cambiando el tema antiguo por este, el que estais viendo ahora. Creo que voy a dejarme de florituras y no lo modificaré, lo dejaré como está. En su día estuve jugando con el tema anterior, pero era más por aprender y jugar con CSS que por conseguir un tema vistoso.

Finalmente, otro problema es que dentro del administrador de wordpress me daba un error de php. Decía que no se podía cambiar el "header" de la página porque wp-config.php ya había enviado información. Afortunadamente ese problema me resulta conocido y el problema eran tres o cuatro líneas en blanco que había al final del fichero wp-config.php. Me bastó con borrarlas.

Así que arreglado, wordpress actualizado y tema nuevo.

Mar 25

Indexado en google del foro SMF

Después de darme cuenta del pequeño desastre del foro SMF con google, y de no conseguir que funcionara el plugin de seo4smf, decidí hacerme mi propio sitemap.xml para google. Había hecho un programita en java que generaba ese fichero xml simplemente con un bucle de 2 a 1059 (el número de post en el foro en ese momento). Subí el fichero al foro, lo dí de alta en google…. y aparentemente NO funcionó. Después de un par de semanas, ninguno de los post del foro estaba indexado.

Estuve pensando cual podía ser el motivo. Hay páginas del foro que sí están indexadas en google, como la de mensajes recientes, los perfiles de los usuarios, la página principal del foro… pero NO los post. A pesar de que los parámetros que se pasan a la página php del foro son igual de feos en todos los casos, no veía por qué los post no se indexaban. Al final y por probar, decidí que podía ser cosa del punto decimal. Los post llevan un parámetro tal que así "topic=1046.0", con un decimal punto cero. Se me ocurrió que google podía interpretar ese decimal como que esa variable y, por tanto, la página, es muy variable en función de ese valor que no parece un índice, sino un valor arbitrario.

Así que hice mis experimentos. Primero comprobé que se puede acceder al post sin poner ese decimal, con algo como "topic=1046". Funciona bien. Así que hice el sitemap.xml sin ese decimal…. y funcionó. Una semana después de subir el nuevo sitemap.xml, google empezó a indexar los post y un par de semanas después, ya estaban casi todos.

Ahora la tarea que me queda es hacer un pequeño script de php que me genere ese sitema.xmp, o bien un sitemap.php que devuelva una página xml con el formato del sitemap. De esta forma, cuando google visite el sitemap, lo tendrá actualizado.

Me quedan algunas dudas. Aparentemente tengo una cosa que no le gusta a a google, que es contenido duplicado. Se accede al mismo post a través de "topic=1046.0" que a través de "topic=1046". Sin embargo, al no estar indexado el primero, quizás no importe, ya que no tiene con quien comparar el segundo. Es cuestión ahora de ver si en las búsquedas de google empiezan a aparecer los post por algún sitio y de revisar mis estadísticas, a ver si se empieza a entrar directamente en los post desde google.

Feb 26

SMF y SEO: Un desastre

El foro de java que tengo es SMF (Simple Machines Forum). Hasta hace poco estaba contento con él, hasta que he descubierto una pequeña pega. Resulta que si miro en google las páginas del foro indexadas, son todas perfiles de los usuarios y cosas variadas, pero ninguno de los post está indexado. Google no mostrará en sus resultados ninguno de mis post.

Buscando, buscando, encontré seo4smf, que supuestamente pone las url del foro más amigables y proporciona un sitemap para google. Pero tras varias intentonas de instalarlo y juguetear con él, no conseguí que funcionara. El mod_rewrite que exige este plugin sí está instalado y funcionando, pero aun así, sólo obtenía errores.

Así que me he decidido por una opción más artesanal. De momento he creado con un programa guarrete un sitemap.xml, lo he subido y lo he dado de alta en google. Si dentro de unos días veo que se empiezan a indexar en google los posts, intentaré hacer un programita php en el foro que genere este fichero de forma automática cuando se le pida.

Feb 25

¿Hostito?

Desde que me hice con un dominio, tengo mi hosting con hostito. Hasta hace no mucho estaba contento y de momento, no tengo ningún problema serio. Sin embargo, están empezando a pasar "cosas" que me tienen un poco preocupado.

Hace tiempo intenté actualizar mi versión de wordpress para el blog y se me fastidiaron los acentos. Lo achaqué a algún tipo de compatibilidad entre las versiones de wordpress y no le dí más importancia. Deshice la actualización y todo correcto.

Hace menos de un mes, recomendé hostito a un compañero de trabajo que sólamente quería un dominio para un blog. Se dio de alta y la instalación automática desde cpanel del blog no le funcionó. Aparentemente todo iba correcto, pero en el momento de ver el blog no iba. Escribió al soporte técnico y, al igual que cuando yo lo he hecho, han constestado bastante rápido -menos de un día-. Le comentaron que había algún problema con la nueva versión de wordpress y determinadas características de la base de datos/hosting que podían dar esos problemas. Sin embargo, una semana después, correo arriba, correo abajo, no consiguieron solucionarle el tema, por lo que se dio de baja. Al menos no le pusieron pegas para hacerlo.

Ayer, tras un intento fallido de instalar smf4seo para mi foro, que lo dejó totalmente inoperativo, intenté recuperarlo actualizando desde cpanel la versión del foro SMF… y se me volvieron a fastidiar los acentos, igual que con el blog. Afortunadamente el foro tiene una configuración para cambiar la codificación de caracteres y se arregló. De todas formas, dos aplicaciones distintas que fastidian los acentos al actualizarlas…. me hace sospechar que los de hostito tienen algo raro en su base de datos.

Sí, sé que hay otros hostings, pero también sé que lo de que te vaya bien o mal es más casi cuestión de suerte que de la calidad dle hosting. Basta ver las opiniones en los foros para ver que con el mismo hosting unos están contentos y otros echan pestes. Además, ¡¡ qué pereza moverlo todo !!. De cualquier forma, salvo lo de mi compañero que no le funcionó el blog, ninguna de mis desgracias es claramente culpa de ellos. El blog llevaba varias versiones sin actualizar y el foro, yo me había encargado de fastidiarlo primero con el smf4seo.

Jan 23

Actualización fallida de Wordpress

Ayer se me ocurrió intentar actualiza la versión de Wordpress de este blog. Todo contento, fuí al panel de control de mi hosting y le dí al botón de "actualizar" a la nueva versión disponible. Tras tres segundos escasos, un mensaje me dice que ya está actualizado. Efectivamente, así era, pero con dos pegas importantes.

La primera, menos importante pero estúpida, es que le dio por cambiarme los acentos de títulos, categorías y demás por carcateres extraños.

La segunda y que me llevó a deshacer el cambio, es que el video de youtube que hay en el post de "Fantastic Machine", se empeñó en desplazarse hacia abajo hasta que las barras de enlaces laterales quedaban vacías y entonces, pegarse totalmente a la izquierda. Vaya, que no se salía de la pantalla por la izquierda porque tiene afán de protagonismo y como todo video que se precie quiere ser visto, pero allí estaba, pegadito al borde. A partir de ahí, el resto del texto también.

Por más que me puse a jugar con el editor para tratar de arreglarlo, poniéndolo en formato HTML para controlar exactamente qué es lo que estaba escribiendo y por más que revise las hojas css por si había algún float:left en algún sitio, nada de nada. Totalmente incapaz de poner el video en la columna central, que es donde debe estar. Es más, comparando lo que yo ponía en el editor HTML y el código HTML de la página resultante cuando la estaba visualizando en el navegador, se parecían como un higo a una castaña. En el momento de publicar, wordpress o el editor "se inventan" cosas.

Así que deshice todos los cambios y volví a la versión antigua. Afortunadamente estas actualizaciones automáticas desde el panel de control del hosting se respaldan, de forma que es relativamente sencillo echarse atrás.

Sin embargo, todo esto me confirma dos fallos que veo en aplicaciones como wordpress y que creo que son generales para muchas aplicaciones de este tipo o que generan contenido web.

El primer fallo es que para el contenido principal sí tienen en cuenta los acentos y esas cosas para reemplazarlos por los famosos &aacute; de HTML. Sin embargo, no lo hace en las pequeñas cajitas de texto para título, etiquetas, tags, metas, etc. Ahí, si pones un acento, va como acento a la página web, con lo que según el navegador que tengas, codificación de caracteres y demás, lo verás bien o no.

El segundo fallo es que todos estos editores de contenido, en su afán por dejar en condiciones el código HTML que un torpe como tú mete, se ven con la libertad de tocarlo a su gusto. Muchas veces es completamente imposible -o al menos muy difícil- encontrar el truco para conseguir lo que quieres. Por ejemplo, cuando escribes código java para que se vea en un post, es bastante fastidiado conseguir el sangrado de una forma simple. En mi caso, los tags <pre> no sirven para nada, el editor se los come. Tras mucho probar, he descubierto que metiéndolo en un <blockquote> entonces sí respeta los sangrados. A poco que te fijes en foros y blogs por ahí, verás que es un mal bastante extendido el "no sangrar" los ejemplos de código. Muchas veces tiene la culpa la persona que es poco cuidadosa, pero muchas veces es el dichoso gestor de contenido que hace lo que le da la gana. De la misma forma, yo he tenido problemas en la nueva versión de wordpress con el tag <object> del video de youtube. Aunque yo dejaba el HTML correcto, el editor se empeñaba en meterme el <object> entre <p> y </p>, pero dejando fuera todo lo demás, tal que así

<p><object …></p>….</object>

e incluso en algún momento le dio por cerrarme y abrirme un nuevo <object> entre medias, de forma que veía dos cuadros de video, pero vacíos, ya que el contenido de los object era totalmente caótico.

Ojo, no quiero decir que no acabe funcionando, sino que a veces algo que debería ser evidente hay que andar liándolo demasiado hasta pillar el truco. ¿Tanto cuesta que si pongo tres espacios en un editor WYSIWYG para sangrar algo, lo convierta en el código HTML necesario para que haya tres espacios sangrando ese algo? ¿Por qué no puedo sangrar la primera línea de cada párrafo tres espacios desde el editor WYSIWG sin necesidad de hacer cosas raras con el CSS o los TAGS?. Me direis que para eso está CSS y tendréis razón, pero entonces WYSIWYG pierde totalmente su significado. Sería WYSIWYG…SYQ (What You See Is What You Get … Si Yo Quiero)

¿Alguien tiene estos problemas o es que soy demasiado torpe?.