Burdjia

Categoría Opinión, 5 entrada(s)

Feed Rss, Atom

Tener las herramientas adecuadas

Es algo que ya he mencionado anteriormente, aunque ahora no son las mismas circunstancias.

Ayer mismo terminé un ciclo en el proyecto Allegro.pas (¡por fin!).  En este último empujón me ha dado por pensar en lo importante que es tener herramientas adecuadas, y me he dado cuenta de cómo he perdido el tiempo debido a algunas carencias.

Por ejemplo, para solucionar la compatibilidad con Delphi en varias ocasiones he tenido que hacer un mismo cambio (o conjunto de cambios) en muchos archivos, como cambiar una variable de configuración de todos los archivos de proyecto o cambiar un tipo de dato en los ejemplos.  En el peor caso el proceso sería:

  1. Cargar archivo.
  2. Buscar el punto en el que hacer el cambio.
  3. Hacer el cambio.
  4. Guardar archivo.
  5. Repetir desde 1. hasta que todos los cambios estén hechos.

Sí, los editores de código e IDEs incluyen opciones de "Buscar y reemplazar" que pueden ayudar, incluso a través de varios archivos, pero en ocasiones no es tan simple como buscar y reemplazar:  a veces no son exactamente el mismo en todos los archivos sino que depende de ciertas condiciones.

Afortunadamente me di cuenta enseguida del problema, y vi que era una ocasión de poner a prueba BAScript.  Y dio el tipo, ¡vaya si lo dio!

Creé un programa que permitía ejecutar un guion a un grupo de archivos, y añadí multitud de funciones de búsqueda y manipulación de textos.  Empecé con guiones como el siguiente, que se asegura de que, en un archivo de proyecto, el nombre del proyecto y el del archivo principal coinciden, lo que me permitía copiar el archivo de proyecto sin tener que abrir Lazarus ni Delphi para crear y configurar uno nuevo casi exactamente igual a los anteriores:

; Actualiza el nombre del proyecto.

; Obtiene el nombre del archivo.
FileName			; Nombre con extensión.
Filename CALL:StrLen 5 -	; Posición del punto.
6				; Longitud extensión + punto
CALL:RemoveStr $FileName	; Elimina extensión.

'ex_audio_simple' FileName CALL:StrPos 0 > IF GOTO:end FI

:loop
'ex_audio_simple' 0 CALL:FindTextLine
DUP IF
; Se encontró.
  #Linea
  Linea CALL:GetTextLine
  'ex_audio_simple' FileName CALL:ReplaceStr
  Linea CALL:SetTextLine
  GOTO:loop
FI
DROP

:end

Este es de los guiones más simples que utilicé.  El más largo es otro que se asegura de que diversas variables de configuración de los proyectos tienen los valores adecuados, además de añadir algunas unidades a los mismos en caso de ser necesario.  No un simple "Buscar y reemplazar" como el que veis, sino otro que comprueba condiciones previas y toma decisiones de si hacerlo o no hacerlo. 80 líneas, más o menos.

Este programa me ha resultado tan útil que seguramente lo añada como ejemplo en la próxima versión de BAScript, que la habrá.

Pero antes, también me ha salvado un poco otro de mis proyectos:  mlsde, ahora mismo sólo una prueba de concepto que hice hace algunos años para probar algunas ideas para un IDE tras descubrir la existencia de Sublime Text con idea de añadir guiones (scripts) al estilo de los viejos Turbo de Borland.

Normalmente trabajo con Vim y me funciona bastante bien, pero escribiendo el tutorial de la web eché en falta una forma más simple de moverme entre diferentes archivos, aparte de que los scripts al estilo Turbo me hubieran venido de perlas también.  Decidí usar mlsde a ver qué tal, y aunque me hizo la navegación entre archivos más fácil, lamenté no tener terminado el motor de guiones.

En conclusión, tengo que hacerme con mejores herramientas de trabajo para ser más productivo.  Evidentemente hablo de mejorar mlsde, ¿o qué os creíais? :)

Etiquetas: Ingeniería software

Categorías: Herramientas, Opinión, Programación

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

¿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

Busca las diferencias

Entre las muchas herramientas de ayuda al desarrollo de páginas y aplicaciones web, hay una que te muestra una representación tridimensional de la página.  Esta representación muestra las capas que existen en el diseño de la página, la estructura interna del documento HTML, los nodos y etiquetas.  Usando esta herramienta se puede ver más fácilmente algunos fallos de diseño, como etiquetas de cierre olvidados, y también problemas potenciales, como un exceso de capas que ralentizan tanto la carga como la visualización de la información.

Sirvan de ejemplo estas dos páginas, la de una conocida red social y la de una web amiga.  ¿Cuál creéis que será más propensa a tener problemas?

Webs 3D

Por cierto, si a alguien le interesa esta herramienta, se trata de una de las que vienen incluidas en la extensión Desarrollador Web de Firefox.

Etiquetas: Diseño, HTML, Ingeniería software

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

Usar la herramienta adecuada

Últimamente me estoy encontrando a menudo con la situación en la que puedo comparar lo que es trabajar con la herramienta adecuada y con la que no lo es.  En el mundo de la programación profesional nos encontramos demasiado a menudo con la situación de vernos obligados a usar una herramienta* inadecuada para el trabajo que has de realizar.  Lo mencioné de pasada en este artículo, por ejemplo, pero todos los que trabajamos en esto lo vivimos casi a diario.

Uno de los últimos ejemplos con los que me he encontrado tiene que ver con Google.  Como muchos sabréis, esta empresa está desmantelando la plataforma iG, y junto a ella a varias de las aplicaciones como su directorio de marcadores (o bookmarks) y su lector RSS.  Como usuario me he visto obligado a buscar alternativas, y la verdad es que he descubierto que no estaba usando la herramienta adecuada para consultar mis correos y enlaces RSS.  Usando iG no era raro el día en el que tardaba casi una hora en revisarlo todo (y eso revisándolo diariamente, imagináos después de unas vacaciones), pero ahora, usando un cliente de correos y noticias, con una extensión para obtener las actualizaciones RSS (concretamente Claws Mail) tardo menos de media hora siempre.

Por eso, cuando alguien me viene y me dice, por ejemplo, que para una web de noticias están pensando en cambiarse desde Spip a Wordpress y yo les digo que no es buena idea y me contestan que por qué no si es lo mismo y Wordpress es más fácil de usar y tiene menos errores, pues me pongo malo.  Menos mal que alguien con seso (que no soy yo) sugiere que quizá los errores se deben a una mala actualización y hace que regrese mi confianza en la humanidad, aunque sólo sea un poco.


* Aquí también vale lenguaje de programación.

Etiquetas: Ingeniería software

Categorías: Artículos, Opinión