Artículos de la categoría "programación":
Trokola en versión alfa
Dije en el pasado artículo que estaba quemado con la programación y que sentía que no volvería a programar. No mentí en ese momento, pero al final he seguido programando. Debe ser que la cabra tira al monte y no puedo evitar meterme en esos berengenales. El tema es que decidí, al menos, alcanzar el estado alfa de la herramienta de aventuras conversacionales que estaba desarrollando. Hoy cuento un poco el asunto.
(ver más...)Aventuras conversacionales y simulación de espacios virtuales
Con anterioridad he hablado sobre conversacionales, aventuras de texto, o quizá recuerdes que durante la pandemia me entretuve en programar un MUD1 con erlang2. Pues, rehaciendo lo rehecho, en este artículo, hablaré sobre otro proyecto relacionado y que esta vez, espero, no se convertirá en otro vaporware sin finalizar. Lo estoy realizando para utilizarlo en un ambiente muy concreto: la prevención del acoso escolar en las aulas y sólo por esto, creo que lo terminaré. Te lo cuento a continuación.
(ver más...)Lisp - proyectos sencillos para comprenderlo
Llevo un tiempo sin escribir en el blog, las cosas se van complicando y un día por otro, no termino de encontrar esos momentos en los que dedicarme a mí mismo. Este blog es una excusa para cacharrear, experimentar, aprender y satisfacer mi curiosidad. De rebote, por lo que sé, algunas personas, aparte de mí, leen el blog, e incluso algunos encuentran alguna información útil en el caos de los temas que trato. Hoy voy traigo una de las cosas que me hacen procrastinar mucho, mirar las tripas de las cosas. En concreto, las de lisp. Encontré dos proyectos que implementan un lisp sencillo y me puse a repasar el código y ver cómo funcionaban. Uno de los proyectos está escrito en Python y el otro en C/C++.
(ver más...)Lenguajes repelentes
Hoy traigo sólo un poco de reflexión e historia de los lenguajes de programación al blog. Ya lo siento, hoy toca chapa de la fina... Y es que no he podido resistirme al título, porque me ponga como me ponga al final los lenguajes en los que programo son repelentes, o al menos yo así los llamo. Para entrar en materia con un poco más de conocimiento de causa: supongo que la mayoría sabéis qué es eso de REPL1. Esos son los lenguajes que yo llamo repelentes; bueno, también existen los lenguajes que son repelentes para mi gusto (el C++ y el Java, fundamentalmente, y que curiosamente no es ninguno REPL). Si tienes paciencia suficiente para leer este artículo, te contaré por qué me gustan algunos lenguajes y por qué no me gustan esos mismos lenguajes. El criterio es el que me sale a mí, sin ninguno más, ni más vueltas y sé que caigo en contradicciones, ya veréis que algunos lenguajes me caen bien por lo mismo que no me gusta de otros. En algunos de los lenguajes aquí desglosados, me he permitido poner un poco de código para que se vea cómo luce visualmente. En fin: no te garantizo nada, a tu discreción dejo la lectura.
(ver más...)Programación literaria y la configuración de Emacs
He visto infinidad de entradas en blogs referentes a Emacs que
tienen a bien, mostrar su propia configuración o init.el
, no suelo
leerlos, me interesan más las configuraciones puntuales de
determinados paquetes, mucho más que la completa de todo el sistema.
Sin embargo, hay quien me ha pedido que haga lo mismo y publique mi
fichero de configuración de Emacs. Supongo que pensarán que oculta
algo arcano, místico e inconfesable, para no iniciados, y hacer
rular el editor. Nada más lejos de la realidad. Sin embargo, si lo
único que quieres es chafardear el fichero de configuración, lo he
puesto en un repositorio de Codeberg. Sólo tienes que seguir el
enlace para verlo.
Trókola
Estaba aburrido, esto es lo único que puede decir en mi descargo. Hoy
traigo un nuevo vaporware, por supuesto maravilloso, que veremos
acabar en ningún sitio, en cuanto aparezca un nuevo proyecto más nuevo
y por tanto mucho más emocionante. El caso es que en el artículo
anterior ya os hablé de mi redescubrimiento de mi olvidado
Tcl/Tk
. ¿Sería conveniente hacer algo con él para afianzarlo? Sí,
claro... y ¿qué hago? Me vino una idea perversa a la que no pude
resistirme: Hacer un sistema o una librería para programar aventuras
conversacionales con Tcl. Muy bien, pero mejor no cuento nada, porque
al final seguro que se queda en nada como el 99% de los proyectos de
programación y... ¿qué dices? ¡Si tienes un blog casi en
barbecho. Pues nada, aquí estoy para cansinaros un rato.
Tcl/Tk
Un lenguaje que aparece recursivamente en mi línea de trabajo y al que
normalmente no he hecho mucho caso es Tcl
y su toolkit Tk
. Es
posible que a la mayoría os suene el Tk
, por la librería de Python
o cualquier otro lenguaje de script que lo utilice para añadir
widgets de una manera sencilla. Es posible que incluso lo tengas
instalado en tu ordenador sin saberlo, especialmente si utilizas
GNU/Linux como sistema operativo. Lo usa sqlite
, lo usa fossil
, lo
que no es de extrañar porque ambas herramientas vienen del mismo
programador, pero lo utilizan otras herramientas también. La
explicación para hacerle un poco de casito de nuevo a este lenguaje
es que últimamente estoy dándole más a fossil
como herramienta de
control de versiones y me he visto utilizando un subconjunto de Tcl
que trae embebido... y ¡oye, no está tan mal y lo dejaba siempre
olvidado! Vaya una pequeña introducción al lenguaje y de sus
principales características, sin ánimo de ser exhaustivo.
Emacs y lsp-mode
Hoy vengo con un modo que hace poco que empecé a utilizar: lsp-mode
.
La verdad es que no lo utilizo demasiado, la mayor parte de mi trabajo
la hago en org-mode
y lo que menos hago es programar, que es para lo
que es más útil lsp
, aunque también podría usarlo para
LaTeX. Language Server Protocol se está convirtiendo en un
estándar para todos los editores de código e incluso los editores
viejunos como Emacs y vim lo soportan. Este artículo hablará de
cómo configurarlo mínimamente en Emacs y sobre un par de pruebas que
he hecho para ver su funcionamiento.
Entendiendo las funciones recursivas
Me vais a perdonar si dedico un artículo a un amigo que me pregunta dudas. A su edad, que es muy cercana a la mía, le ha entrado de nuevo el gusanillo de aprender a programar. Cuenta con algo de experiencia de sus años mozos cuando hizo algún curso de BASIC, lenguaje que afortunadamente, con el transcurso de los años ha olvidado completamente1. A estas alturas de la movida ha decidido echarle un esfuerzo al Python con un par de libros que yo mismo le recomendé.
(ver más...)Mis impresiones sobre erlang
Ya conocía erlang desde hace tiempo. Lo conocía de nombre, lo había cotilleado con anterioridad e incluso quise aprenderlo hace unos años, cuando estaba más metido en las cosas 3D y conocí Wings3d (un modelador 3D hecho en erlang). Creo que esto ya lo conté por aquí, pero lo pongo en contexto por si alguien llega a leer este artículo de nuevas.
(ver más...)Plegando el código
Cuando programo me gusta ver todo el código. A veces en ficheros
largos los desplazamientos pueden ser largos, pero me apaño bien
poniendo marcas donde saltar o utilizando M-g g
(goto-line
) para
saltar a la línea deseada, o M-g c
(goto-char
) para ir a un
carácter determinado --pero esto es más complicado de saber a
priori--. Se puede uno mover de forma directa a otros sitios (al
siguiente error, al error previo o a una posición determinada de la
línea actual. Pero como ya digo, lo que más utilizo es la función
goto-line
.
Comparación entre schemes
Llevo un tiempo con el blog en barbecho. No es que no hiciera nada entre medias, estoy con mis cosas y cuando abandonas la costumbre de escribir en un medio que requiere periodicidad, parece que cuesta más retomarlo de nuevo y poco a poco lo vas dejando más, hasta que te das cuenta que ha pasado ya, quizá, demasiado tiempo desde el último post.
(ver más...)Aprendiendo scheme: un ejercicio simple
El otro día un amigo (dddddd, en las redes) me comentó un ejercicio sencillo que se podría hacer en scheme para ir aprendiendo. El caso es que él está con el diseño de un procesador de 12 bits junto con otra persona. Ya tiene un emulador funcionando y me comentó que estaba con un código que convertía la cadena que llegaba en valores de 12 bits. Él lo hizo en ensamblador de su máquina, sin embargo me dijo que sería un buen ejercicio para hacerlo en scheme. Las premisas son sencillas:
(ver más...)Compilar chicken scheme en la aplicación termux de android
Llevo unas semanas trasteando con Chicken scheme y haciendo pruebas. La penúltima fue compilarlo en mi portátil (OpenSuse Tumbleweed) y tenerlo funcionando sin problemas. Eso me llevó a pensar que sería posible compilarlo en termux, el terminal de texto de Android. Al fin y al cabo, cuando hice la primera intentona en mi portátil me dijo:
(ver más...)Convirtiendo el proyecto de la isla a Godotengine
Después de trabajar un poco más en el proyecto de la isla, del que ya he hablado por aquí unas pocas de veces y vistas las limitaciones que nos hemos encontrado con el gameengine de Blender, hemos decidido dar un paso más y probar con el prometedor gameengine godot, en su novísima versión 3.0.
(ver más...)Utilizar guile como calculadora
Los que me conocen saben que llevo tiempo hablándoles de las
maravillas de algunas herramientas como bc
, una gran calculadora que
he utilizado durante años y que sigo utilizando, aunque cada vez
menos. bc
se está viendo desplazada en mi línea de comandos como
calculadora por guile
, pero ¿qué es guile
?
Cómo estoy utilizando git
Dada mi torpeza habitual git es uno de esas herramientas que se me atraviesan. Y además, no es por falta de uso o de empeño. De hecho lo utilizo con bastante asiduidad en los proyectos que voy emprendiendo y que se convierten en vaporware la mayoría. Cuando creo que tengo dominada la bestia meto el cuezo en algún momento y git me lo devuelve (doblado). Como muchas veces tengo que estar mirando mis chuletas de cómo usarlo (y algunas veces no las tengo a mano) por eso, voy a ponerlo en limpio en este artículo.
(ver más...)Cómo estoy utilizando git (II)
Hoy voy con la segunda parte, que no entró en el artículo de ayer. El
tema iba con las ramas y los repositorios. Hasta ahora todo ha ido
bien, entre otras cosas porque sólo se han hecho las modificaciones
desde un repositorio y así nunca hay conflictos, pero ¿qué ocurre si
hay un conflicto al hacer un commit
?
Creí haber terminado con el MiniMult
Hace unos días creí haber terminado el experimento con Emacs, la programación con Lisp (concretamente elisp), el MiniMult y todas esas cosas sobre las que hice una serie días atrás. Sin embargo, me surgió una pregunta que necesitaba contestar: ¿Todo ese trabajo servirá para android?
(ver más...)Gráfico de perfil en el MiniMult
El último paso de la corrección del test:
(ver más...)MiniMult corregido
He estado estos días trabajando un poco en el tema de corregir el MiniMult de forma automática con resultados irregulares. De momento me encuentro con ese regustillo a chapuza cuando no haces las cosas como piensas que se deberían hacer. Pero al final funciona, que era de momento el objetivo. Me voy a explicar por partes, comenzando por el final y luego dando saltos como es mi costumbre últimamente (es lo que tiene este cerebro que me ha tocado).
(ver más...)Escalas, plantillas y corrección
Para continuar con la serie del MiniMult, prueba que ya podemos pasar por pantalla, necesitamos primero hacer algunas reflexiones sobre cómo funciona la corrección manual.
(ver más...)Código para pasar prueba por pantalla
Bueno, para seguir con la serie sobre la corrección de pruebas
psicológicas por pantalla, ya tengo algunas cosillas hechas y lo muestro
por aquí. En las entradas anteriores solté un ladrillo sobre cómo iba a
hacer las cosas y bla, bla, bla. Todo mentira: realmente sabes cómo van
a ir las cosas cuando las haces, las pruebas, no funcionan, corriges y
las haces funcionar... En fin, de lo pensado a lo hecho hay algunos
cambios, así pues: voy a ver si me explico con claridad. El código
(casi) completo de lo que hay hecho hasta ahora en el proyecto está
guardado en un fichero minimult.el
y lo pondré al final de esta
entrada.