Burdjia

Categoría Artículos, 23 entrada(s)

Feed Rss, Atom

Cómo hacer un sistema CAPTCHA propio

Mis dos webs tienen sendos formularios con los cuales cualquiera puede enviarme un mensaje.  El funcionamiento es muy sencillo:  cuando el servidor recibe el mensaje, comprueba que contiene todos los datos y que hay un correo correctamente indicado, y acto seguido me envía un mensaje con todo.  Pero claro, fue poner en marcha estos formularios y empecé a recibir SPAM.  Bueno, inicialmente recibí varios intentos de juankeo (estoy seguro de haber escrito algo sobre dar las gracias a los piratas turcos por poner a prueba la web, pero ahora no lo encuentro), el SPAM tardó un poquito en llegar, pero llegó.

La solución de añadir un CAPTCHA la barajé desde el principio, pero no me apetecía tener que meter una biblioteca de terceros ya que podía complicar las cosas.  No uso un framework al uso ni ninguna biblioteca extra, así que tendría que instalarlo y configurarlo y hacer pruebas y… paso.

Pero hace cosa de un mes hice un trámite para la TSS y me encontré con un sistema a priori muy simple pero ingenioso.  La página te presenta una lista de palabras y tienes que escribir en un campo aquella que pertenece a una categoría concreta.  Esto me recordó, también, a la pregunta de seguridad de la wiki de Free Pascal, la cual pregunta por el resultado de ejecutar una instrucción Pascal.  Así que me decidí, finalmente, a programarlo.

Cómo funciona

Primero, tenemos una tabla con dos campos:  Palabras y Categorías.  Cada palabra tiene una única categoría y no debe haber ambigüedades, lo cual limita un poco el número de palabras pero facilita las cosas luego.

Cuando se genera el formulario, se selecciona una palabra de forma aleatoriamente, que será la respuesta.  Luego se seleccionan otras tres que pertenezcan a una categoría distinta a la seleccionada.  A continuación creo un código hash combinando la palabra de respuesta con la fecha POSIX para tenerla con referencia y almaceno la palabra de respuesta junto con el hash y la fecha.  Finalmente se genera el formulario mostrando todas las palabras, desordenadas, y la pregunta, con el hash en un campo oculto.

Cuando se recibe el formulario, se eliminan del almacén todas las respuestas viejas para que no se acumulen y se comprueba si la respuesta enviada es correcta.  Si no lo es, se genera otro hash diferente.

Podéis probarlo vosotros mismos.

El resultado

Sé que el sistema no es perfecto, y seguramente que algún bot sería capaz de romperlo con facilidad, sin embargo desde que está activo he dejado de recibir SPAM.  ¿Por cuánto tiempo?  Pues no lo sé.

De todas formas me parece bastante absurdo que me envíen SPAM cuando es más que evidente que tiene un retorno del 0%.  Incluso cuando lo recibía, no lo leía, porque era fácilmente identificable: en el asunto se limitaban a poner una cadena de caracteres aleatoria.

En conclusión, ha sido muy fácil quitarse esta molestia de encima, así que si tienes este problema de SPAM no quites el formulario, símplemente añade un CAPTCHA, aunque sea simple como el mío, y asunto arreglado.

Etiquetas: Seguridad

Categorías: Artículos, Mantenimiento web, Programación, Web

Malas formas en la web

He recibido, a través del formulario de contacto de la web, un mensaje anónimo llamándome cobarde porque en la web no tengo nada sobre Lazarus (cuando Burdjia Components está diseñado especialmente para él) pero uso su foro.

La verdad es que no entiendo por qué me llama cobarde, y me molesta que lo haga sin decir quién es ni dar oportunidad de réplica.  Eso sí me parece cobarde.

He revisado la bitácora y, aparte de que llevo más de un año sin escribir nada por razones que no voy a contar por personales, tiene razón en que no hay mucho referente al proyecto Lazarus.  La etiqueta Lazarus sólo tiene un artículo (ahora dos) que además no tiene mucha relación con el IDE de Pascal.  Sin embargo la etiqueta Pascal tiene 20 artículos.

Esto me ha hecho pensar.  Como he dicho, llevo mucho sin escribir en la bitácora, y no es por falta de conocimientos ni ganas.  Digamos que este mensaje ha sido un rebulsivo, el empuje que necesibata para terminar de decidirme a continuar con la bitácora (como ya llevo un tiempo haciendo con otro proyecto).  Claro que tampoco voy a prometer nada, que me conozco, pero algo escribiré.

Aun así, está muy feo eso de acusar a alguien de algo amparado en el anonimato de Internet.

Notas al pie:

La lista de etiquetas está más abajo (lo que me recuerda el desbarajuste del diseño de páginas de la bitácora) pero usa este enlace para que no tengas que buscar.

Aquí

Etiquetas: Lazarus

Categorías: Artículos, Opinión, Web

El nacimiento de una editorial de cómics

Por fin, después de cinco (5) años donde ha pasado de lo peor a lo mejor, se cierra un ciclo. Hace unos meses ya hice un avance en mi cuenta de Twitter, y va siendo hora que lo ponga por escrito.

Empieza la aventura

Todo empezó cuando Iván Sarnago me propuso unir fuerzas en un proyecto loco, que se llamó Vialoco, y que pretendía aunar un estudio de diseño y dibujo de cómics, escuela de dibujo y estudio de diseño de videojuegos.  Lo dicho: un proyecto loco.  Por dos años estuvimos metidos en lo que cariñosamente llamamos "la cueva".  Ahí recibíamos a alumos y clientes, y la cosa funcionaba, e incluso recibimos apoyo personal de gente que vino exclusivamente a ayudar.  Además empezamos a crear una autentica red social, combinando grupos de Facebook con chat y blogs:  Serie B Cómics.  Pero no terminaba de despegar.  Dándo vueltas a cuál podría ser la forma de salir adelante, surgió la idea aún más loca de añadir una editorial de cómics a la ecuación.  Total, ya habíamos conseguido publicar dos tomos de #ChicaDeSerieB gracias a Verkami, tampoco iba a complicar mucho las cosas, ¿no?

Pues venga, a empezar a pensar cómo hacerlo, hacer planes de publicación, buscar imprentas, diseñar canales de distribución...  Y pero esto era diferente y nuevo.  Parecía que estábamos acercándonos al día de empezar a publicar cuando las cosas se torcieron.  Fue la primera gran zancadilla:  un importante apoyo que teníamos nos dejó tirados.  No sólo se fue, sino que se llevó a personas importantes para el negocio y, lo peor, un resquemor nada sano en nuestra contra.  Fue un mazazo enorme, y nos pilló por sorpresa, pero en vez de achantarnos decidimos dar el todo por el todo.  Así nació el Saloncito del Cómic y la editorial Unrated Comics.

El Saloncito del Cómic

Buscamos local y el que encontramos, en la plaza Foramontanos, era un antiguo bar con licencia y todo, así que añadimos una cafetería a la idea.  Metidos ya en líos, qué más daba uno más.

Con mucho esfuerzo (físico y económico) arreglamos el local, contratamos a gente necesaria para hacer los trabajos, y en diciembre de 2015 abrimos las puertas al público.  El arranque fue lento, pero en pocas semanas tuvimos la escuela funcionando y la cafetería y el estudio echando humo.  Hubo presentaciones, charlas y celebraciones de todo tipo. Todo el que hablaba del Saloncito del Cómic decía maravillas.  Pero teníamos graves problemas:  el edificio en el que se situaba el local tenía claras deficiencias que los dueños y la comunidad no arreglaban, la parte editorial estaba atascada y el estudio daba más trabajo que beneficios.

En ese momento, por razones personales y de salud, tuve que dejarlo.  Fue difícil porque, como administrador que era de la Sociedad, me culpaba de que la editorial no saliera adelante.  A los pocos meses de dejarlo volví de visita y en la misma puerta de la cafetería vi cómo el editor y la relaciones públicas que habíamos contratado, y en quienes tanto Iván como yo depositamos la mayor parte de la confianza para que la cosa funcionara, se estaban despidiendo sin previo aviso.  Iván estaba tan sorprendido como yo.

No quedó desamparado Iván, porque de nuevo la gente se ofreció a ayudar.  Se tomó la decisión de cambiar de local y la mejora se hizo notar, pero no pasó mucho tiempo cuando, después de las vacaciones de verano, Iván me llamó y me hizo una propuesta.

-

Allways bet on Momar

Fue entonces cuando me explicaron la situación real, y no era buena.  Resulta que el editor y la relaciones públicas que habían dejado colgado el negocio sin previo aviso habían estado malmetiendo a nuestras espaldas, mientras trabajaban para nosotros, saboteando negociaciones con alevosía, aprovechándose de nuestra generosidad y de la de nuestros amigos, y arreglándoselas para que pareciera que era yo el lastre.  Y no sólo eso, sino que una de las personas que se ofreció a ejercer de asesor empresarial cuando esos dos auténticos parásitos se fueron, había metido a la editorial en un brete de aúpa, aparte de cambiar de idea cada vez que se iba de parranda, que era cada fin de semana o más.

Y en esta situación Iván pretendía contratarme a mi como editor.  ¿Y qué hice?  Pues arremangarme y apechugar.

¿Y cuales son los resultados?  Pues ni más ni menos que en poco más de tres meses hice yo más que las personas que reclutamos en su momento hicieron en casi dos años, que pueden resumirse en tres:

  1. Apertura de una tienda de cómics y frikerías.
  2. Solventación de marrones acumulados por los anteriores responsables.
  3. Edición, publicación y distribución de dos (2) cómics, uno en grapa y otro en libro.

Es decir, una editorial que funciona, una tienda que vende, una academia con alumnos y, en definitiva, un negocio que funiona a pesar de las zancadillas que hemos tenido que sufrir durante cinco años.

Ha sido mucho tiempo, trabajo, sudor, lágrimas y más cosas  invertidas en estos cinco años, pero al fin está dando su fruto.  Ahora, a seguir trabajando, en este marzo tengo que tener listas otras dos grapas, ahí es nada.

Notas al pie:

Para dejar constancia de la catadura moral de la pareja en cuestión, quiero contar su último acto el mismo día que se despidieron.  Anteriormente, el estudio había trabajado en un diseño para un festival de la cerveza en Burgos capital.  Pues bien, él, el editor, no sólo se las arregló para que al final hubiera que hacer mucho más trabajo del presupuestado inicialmente (diez veces más, concretamente) sin que se enterara nadie, sino que encima cobró sólo lo presupuestado, y en cervezas (no dinero) que recogió ese mismo día y se llevó a su casa en Sevilla.

Etiquetas: Cómics, Saloncito del Cómic

Categorías: Artículos, Editorial

¿Sirven las "cookies" de algo?

Desde hace un tiempo somos más conscientes de su existencia, porque en cualquier página en la que entras (salvo las que yo he creado, al parecer) te aparece un molesto mensaje indicando que se usan. Y digo molesto porque normalmente ocupan parte de la página, y en alguna ocasión me he encontrado con que no hay un botón que permita quitar el aviso. Me estoy refiriendo a las huellas o cookies.

La respuesta a si sirven de algo debería ser Sí, claro que sí, pero si he de ser sincero, no estoy yo muy seguro. Y no porque no crea que sean útiles, porque lo son, sino más bien por el uso que se les da normalemente. Según rezan muchos de esos mensajes, sirven (...) para mejorar la experiencia de usuario. ¿De qué forma podrían hacerlo? Bueno, las huellas son contenedores de datos que se almacenan en el ordenador cliente (es decir, en nuestro ordenador), frente a las variables de sesión, que se almacenan en el ordenador servidor (es decir, en el que está almacenada la web que visitamos). De esta forma, los programas pueden consultar información sobre el visitante sin tener que ocupar espacio en el servidor. Esta información puede ser muy variada: la fecha de la visita, qué página fue la última que visitó, qué búsquedas realizó... Cualquier cosa.

Si tenemos una tienda online, las huellas nos ayudan muchísimo. El programa puede tener la lista de artículos consultados y de esta forma deducir qué otros artículos puede recomendar. De hecho, esto es lo que se supone que hace GoogleAds, que se encarga de meternos anuncios en todo tipo de webs alrededor del orbe. Es decir, cuando una web es cargada, esta hace una petición a Google Ads para obtener un anuncio, y este mira en las huellas disponibles para decidir qué anuncio poner. Así, se supone que si hemos comprado cierto producto GoogleAds lo sabrá y no repetirá ese anuncio una y otra vez, pero mostrará otros productos que, según ciertas esotéricas fórmulas antroposociológicas, deberían interesarte.

Por desgracia, esto rara vez funciona. Y a las pruebas me remito:

Chaval de la mochila

Algo marcha mal, ¿no? Bueno, la verdad es que hay varias posibles razones por las que GoogleAds podría equivocarse. La configuración del navegador, que borra los datos de forma periódica o no permite a la aplicación a acceder a esas huellas, por ejemplo, es la más común. Otra es que, símplemente, estamos utilizando un navegador o equipo diferente al que usamos para comprar esas entradas o ese juego. Pero no siempre es así, y aunque nuestro navegador no borre sus huellas, permita acceso total a ellas a GoogleAds y estemos usando el mismo navegador, esta siguación no cambia. La cosa empeora porque no hay una norma de uso para las huellas. No me refiero a que no exista un ley, que la hay, sino a nomenclaturas de nombres y formatos de contenido comunes para su uso por parte de los programas. En definitiva: que GoogleAds no siempre sabe qué páginas hemos visitado, o qué hemos comprado. Y me temo que esta es la principal razón.

En definitiva, ¿sirven para algo? Pues en mi opinión no, porque no se usan correctamente.  Antiguamente, recuerdo que había páginas que las usaban para permitir al visitante cambiar, por ejemplo, el estilo de la página y leerla mejor.  Actualmente ni siguiera ofrecen esa posibilidad.  Son un incordio y sólo sirven para ocupar espacio, porque la inmensa mayoría de las web no las necesitan, como tampoco necesitan jQuery o Flash. Y si a eso añadimos que nuestros legisladores no tienen ni idea de lo que son, terminamos con un lío de tres pares.

Termino agradeciendo al Chaval de la mochila por permitirme usar su mensaje como ejemplo.

Notas al pie:

Permítaseme este arrebato de chovinismo, pero es que la palabra cookie siempre me ha sonado fatalmente mal, aparte de que tampoco sé muy bien qué tiene que ver una galleta con una variable.

Un colega me comentó que, aunque su web no las usaba, se vio obligado a poner el aviso de que sí porque le insistían desde el ministerio en que sí las usaba, porque era una web y por eso las usaba...

Otros:

Categorías: Artículos, Opinión, Programación, Web

No lo vas a necesitar

Esto es algo que tengo en mente desde hace tiempo, pero hace poco lo he visto plasmado en un libro sobre programación, concretamente en Game Programming Patterns, que trata el tema de los patrones de programación.  Este es el texto concreto:

Some folks coined the term “YAGNI” — You aren’t gonna need it — as a mantra to use to fight this urge to speculate about what your future self may want.

Game Programming Patterns - Bob Nystrom

La verdad es que es muy simple.  Cuando trabajas en un proyecto, cualquiera, estás solucionando problemas, muchas veces futuros problemas que no te has encontrado.  Es en estos "futuros problemas" donde aparecen los ysis y los porsiacas, así que según vas diseñando y programando pasas una buena parte del tiempo analizándolos y buscando soluciones que no sabes si vas a necesitar algún día, porque no es lo que necesitas ahora.  Y la experiencia, no sólo mía sino la de miles de programadores en todo el Mundo, dicta que estos ysis y porsiacas rara vez se convierten en problemas reales.  Así que al final casi siempre terminas con una obra maestra que está plagada de funciones y estructuras que rara vez, si no nunca, van a ser utilizadas por alguien.

Aquí es donde aparece ese YAGNI (o NLVAN - No lo vas a necesitar).  Este mantra, como lo llama Nystrom, nos recuerda el párrafo anterior, y que por lo tanto la mayoría de las veces no merece la pena perder el tiempo en ello.  Si el problema es real, y lo necesitamos ya, entonces sí hay que programarlo, pero si no, pues no.

Precisamente los proyectos que tenemos ahora en marcha son lo suficientemente complejos como para ser caldo de cultivo ideal para ysis y porsiacas.  Es más, uno de ellos, xMAP, está siendo reescritos porque la complejidad creció más de lo necesario y me vi atrapado en mi propia creación sin poder hacer lo que realmente quería.  Por eso os recomiendo que vosotros también hagáis vuestro el YAGNI, no sólo en programación, sino en cualquier proyecto.

Etiquetas: Programación YAGNI, Ingeniería software, Programación KISS

Categorías: Artículos, Programación