Burdjia

Tener las herramientas adecuadas

por el Profesor Momar

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? :)

Malas formas en la web

por el Profesor Momar

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í

Planificando Gesbit 3.0

por el Profesor Momar

Ya sé que este proyecto parece el Guadiana, que aparece y desaparece, pero es lo que pasa cuando el tempo libre escasea y hay que repartirlo entre vida social, aficiones y proyectos varios.

Esta vuelta al proyecto será algo más larga que las anteriores principalmente por necesidad.  Resulta que me puse a reparar el estilo y las plantillas de este blog y descubrí que Gesbit no funciona en mi servidor local de purebas porque tengo instalado PHP 7 y Gesbit utiliza varias bibliotecas que ya no están disponibles en esta versión.  Podría ser algo fácil de arreglar, quizá un poco más o menos que el problema con preg_replace pero teniendo en cuenta que al menos una de las cosas que no funciona es la conexión con la base de datos y la cosa sólo puede ir a peor, casi que prefiero no arriesgarme a intentar arreglarlo para descubrir que hay más cosas que no funcionan (y seguramente será así).

Por tanto, en vez de ir al rebufo lo mejor es tirar para delante.  Ya tengo buena parte de los requisitos y carencias localizadas y redactadas (mucho hace ya tiempo), pero no empezaré a escribir código pronto.  Además de terminar de redactar y concretar estos requisitos tengo que hacer unos cuantos esquemas e indagaciones, de lo contrario no conseguiré que funcione.

Versión 5.2.β.0 de Allegro.pas publicada

por el Profesor Momar

Desde hace unos meses he estado utilizando buena parte de mi tiempo libre trabajando en Allegro.pas, una biblioteca que permite utilizar Allegro con compiladores Pascal.  Finalmente hace unos días publiqué una nueva versión, la 5.2.β.0.  La principal (y casi la única) novedad es que ha vuelto la compatibilidad con Delphi.

Lo cierto es que la compatibilidad con Delphi estuvo desde el principio.  Allegro comparte variables a través de su DLL, algo que Delphi no permite hacer.  Para conseguir que funcionara creé una DLL extra con la que obtener los punteros a dichas variables.  Esto hacía las cosas bastante complicadas tanto de mantener como de usar (nunca es cómodo usar punteros en Pascal, mucho menos con Delphi) así que terminé eliminando la compatibilidad con Delphi, siendo la última versión que la tuvo la 4.2.2.  Sin embargo, dado que la rama 5 eliminaba las variables de la API, siempre he prometido que la compatibilidad volvería algún día.

Y por fin esa compatibilidad ha vuelto.  No es una compatibilidad del 100% ya que algún ejemplo no funciona en Delphi, y lo que funciona sólo se ha comprobado con la versión Delphi 10.2 Tokio Starter Edition, pero la mayor parte de Allegro funciona así que puede utilizarse para hacer juegos con Delphi.  Buena parte de este hito ha sido gracias al trabajo de Gregor A. Cieslak, cuyo trabajo puede verse en GitHub.

Otra de las novedades ha sido añadir archivos de proyecto para Lazarus de todos los ejemplos, algo que me habían pedido desde Pascal Game Development.  Espero que facilite lascosas.

Se puede bajar los paquetes desde la página de descargas.  Hace ya algún tiempo creé un proyecto en GitHub, pero no tengo ni idea de cómo funciona, así que no se parece a ningún otro proyecto de los que he visto en GitHub y seguramente no sea muy útil.  Si alguien tiene algún consejo sobre este o cualquier otro tema, que no dude en hacermelo saber.

En cuanto al futuro, todavía queda trabajo antes de poder quitar esa β de la numeración (al menos ya que quitado el α), corregir las incompatibilidades con Delphi, añadir nueva funcionalidad que está pendiente y completar la documentación.  También debería hacer algo con la web del proyecto, que es un poco desastrosa.

El nacimiento de una editorial de cómics

por el Profesor Momar + 4 comentarios

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.