☝️ Martín del Río (Lartu)
Hello there, welcome to Lartu.net. I keep this online as my personal server and repository of things I've worked on, feel free to look around. Most of the projects listed here are open-source, so if you find anything you like and would like to branch, feel free to do so.
• email: email@example.com
• twitter: @inkainis
• github: @lartu
• linkedIn: in/lartu
Most of these are open-source and hosted in their respective GitHub repositories. Feel free to fork or contribute to any of them and do not hesitate to get in touch with me should you have any question regarding them.
The LDPL Programming Language is a COBOL based, compiled programming language, that is fun and very fast. It runs on a plethora of different architectures and operating systems including AMD-64 Linux and macOS, ARMv8 Linux, Android and both Intel and PowerPC OS X. It even supports UTF-8 out of the box. Quite surprisingly, this project gained some traction after being initially released as a joke and collaborators from all over the world started contributing to the language. Today the language has seen many releases and it is very usable and highly stable. The whole experience taught me a little lesson. LDPL used to stand for Lartu's Definitive Programming Language, but now I like to think it means LDPL, the Dinosaur Programming Language.
OpenNapkin is a graphical Gopher client written in Gambas3. I wrote OpenNapkin because I wasn't able to find another Gopher client that wasn't written only for console or that wasn't part of a much bigger web-browsing suite. OpenNapkin offers just what you can see on the screeshot: a way to load Gopher sites, basic interaction and basic bookmark keeping. Nothing more, nothing less.
p5.clickable is a p5.js library that lets you create and customize buttons and assign event based behaviours to them. Plain speaking, with p5.clickable you can create buttons and define what happens when the user hovers over, clicks, releases or moves their cursor out of them. It was designed with the intention of copying the way buttons worked in ActionScript 2 (onPress(), onRelease(), etc.) and I believe I've been fairly successful in that endeavour. This library is featured in the libraries section of the official p5.js website.
ast (the average and sum tool) is a command line tool designed to calculate the sum, mean, variance or standard deviation of a list of numbers passed through stdin (naturally, for Unix systems). This tool was the consecuence of a discussion I had with Professor Brian W. Kernighan via email about domain specific languages and the importance of designing simple tools that did one thing or two right that could automate tedious tasks on your day to day work. As obtaining the standard deviation, mean, variance and sum of large lists of numbers was a thing I constantly did, naturally this came to fruition.
ShibaHug is a PHP library that makes interfacing PHP with MySQL as easy as pie. It is designed to be very easy to use, plug-and-play, lightweight and straight to the point. ShibaHug was designed for my own personal PHP projects that relied on database backends and has been field tested quite a lot. It provides means to secure data against SQL Injections and simple functions to execute basic SQL operations.
LarBASIC is a tiny BASIC interactive interpreter with string support. It's inspired by the Commodore 64 BASIC interpreter and it supports a minimal subset of BASIC statements, with UTF-8 strings and floating point numbers. This was my first attempt at writing more "serious" interpreter, with expressions and token absorption. While I love the result and I'm very happy for having accomplished that, LarBASIC still lacks support for single-operand operators, functions and parentheses.
Lute (Lartu's Utility for Text Editing), is a simple, no-nonsense text editor for Unix and general *nix systems written in LDPL. While written as a proof of concept for ncurses extension of my LDPL Programming Language, Lute is a completely functional editor and has been written using mostly itself as the text editor for its code.
led (the LDPL Text Editor), is a line text editor written in LDPL, inspired by the ed and sed text editors, but friendlier! I have no excuse for this, I just find ed and sed to be very interesting and wanted to write one of my own. LDPL is a wonderful language for these kind of tasks that involve text management and user interaction, so I really enjoyed writing this!
Mitsubachi is a tiny and open chat protocol, designed to be minimal, easy to implement, easy to use and easy to understand. Mitsubachi supports nicknames, nickname changing, user-to-user messaging and channel / group (known in Mitsubachi as "distribution lists") chat. I designed the Mitsubachi protocol because I found that most common, open chat protocols (IRC, XMPP, etc.) are too complex to implement properly and completely. Writing a very bare-bones IRC client is easy, but implementing the whole protocol is not. XMPP messages are way to heavy to be reliable on high-latency, low-bandwidth networks. The protocol is also very complex for an amateur, casual client / server writer to implement. Mitsubachi aims to address all these issues.
Explicartu: A tool for writing software reference documentation. The documentation is written within code and compiled to an HTML page that can be easily read. Documentation Partially Due.
Lartype: A lightweight, easy to use, LaTeX inspired markup document editor. Documentation Due.
cpptrim: Simple string trimming function library for C++ (removes leading and trailing whitespace from strings). Single header file. Does what it says in the box.
cppregex: Very simple, single header file, easy to use C++11 std::regex wrapper for lazy people who just want to use regex in C++ without having to mingle with std::regex boilerplate code.
Malady: String-substitution based esolang. The premise lies in defining rules within the code that are then used to alter the remaining code until no code is left. A Turing Machine can be easily implemented in Malady, thus rendering Malady turing-complete.
ASM Formatter: Very simple automatic ASM code indentator.
LartuIRCBot: Bot designed to connect Telegram groups with IRC groups, written in Node.js. Open source, easy to setup and easy to use! (Down at the moment for security reasons).
Gallemathic: Notepad-like tool designed to ease math writing by computer.
Check my GitHub for more stuff.
Eternal Lux is an old-school styled Android RPG, designed to look like a game from the 80's for the Apple II or MS-DOS like Ultima, with 16-color graphics and an awesome MIDI soundtrack. It's written completely in Java-Processing without a single class, for at the moment I did not know a thing about object oriented programming. Nevertheless, Eternal Lux was downloaded by over 20.000 people from all over the world and has received fairly positive reviews from an assortment of gaming websites and users alike, holding a total score of 3,8 / 5 on the Google Play Store. It's free and weighs less than 800kb, so go give it a try!
Aidinia - An Epic Adventure was my first attempt at developing an Android RPG. It's an 8-bit-like role-playing game written in Basic4Android and, being my first project on the system, the controls are a little clunky. It also may or may not work well on newer Android phones. Reviews were positive though and it holds a score of 4,1 / 5 stars. This was really painful to develop and it took me a very long time, so I am quite happy with how the game turned out in the end, even if it's not the best example of good game design choices. It was a paid title for a long time, but due to a disagreement with the policies Google enforces on their store I've decided to release it for free.
The TCG Creature Name Generator is, as its name suggests, a novelty that generates random names for creatures from a potential trading card game. It was originally developed to be part of an actual TCG Game (with the potato launcher), but the project was soon scrapped and this was all that was left.
Chinese Proverb Generator: Pay heed and learn from the millenary knowledge of the ancients.
Mancala: Terminal C++ mancala game made in under an hour.
Grabbin' Gabbys: Colorful Android game made with some friends, with over 180 levels and a total score of 4,8 / 5 stars!
Go! Go! Scarfcat!: The Flappy Bird fever was up and I didn't want to be left out, so I wrote this fun, cute and hard infinite runner for Android.
Castles on Fire: Not so proud of this one, but anyway. Simple Android game written in a few hours to test Processing for Android.
Here I list academic work I've taken part of, mostly in Spanish.
Muy probablemente si estén en este sitio sea porque están preparando el final de Análisis Matemático II y andan en busca de la lista de teoremas tomados en el final y sus demostraciones.
Intento que el apunte sea lo más comprensible y completo posible, pero no puedo hacerme responsable si algún teorema no presente acá es tomado en un final. No debería pasar, pero nadie sabe. Si llegase a encontrar un error, favor de contactarse conmigo por alguno de los medios explicitados en la introducción de este sitio. La mayoría de las demostraciones aquí presentes fueron tomadas del Cálculo de Larotonda o de apuntes tomados en clase.
Notes on Graph Theory: My notes on Graph Theory, based heavily on Flavia Bonomo's slides for her Algorithms and Data Structures III classes.
S Language Interpreter: This is an interpreter written by me for the S Language created by Martin Davis, Ron Sigal & Elaine J. Weyuker for their book Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science.
Planilla de seguimiento: Planilla de seguimiento web para los seguimientos de Organización del Computador I.
Along with a colleage we've organized two relatively successful game jams on itch.io. More than 200 people in total have joined us to make over 30 games!
Lartu's Mini-RPG One Week Jam: RPG Programming Jam that ran from March 3rd 2018 to March 10th 2018. 145 people joined and made 23 games!
Lartu's Mini-RPG One Week Jam II: RPG Programming Jam that ran from September 14th 2018 to September 29th 2018. 85 people joined and made 13 games!
I enjoy public speaking very much and I've spoken at several conferences on topics such as Google Firebase, digital logic and probability applied to machine learning. Most talks and lectures I've given are listed below, with their respective titles in Spanish and an English description of what they were about.
Title: Conociendo LDPL: una mala idea con dos buenos mensajes
Description: Workshop on my programming language LDPL and the lessons it taught me – Department of Computing, Universidad de Buenos Aires (2019)
Multimedia: Can be watched here. Get the slides for the workshop here.
Title: Aplicaciones multiusuario en 15 minutos con Firebase Database
Description: Lecture on Google Firebase and how it can be used to develop and quickly deploy multiuser applications – Google DevFest Buenos Aires (2018)
Title: De Boole a los Microprocesadores
Description: Workshop on Boolean algebra and its relation to microprocessor development – Department of Computing, Universidad de Buenos Aires (2018)
Title: Un Paseo por el Desarrollo de Software de Generación Estadística de Música
Description: Workshop on statistical techniques for computer aided music composition software development – Department of Computing, Universidad de Buenos Aires (2017)
Title: Musiqué, la Computadora que Compone Música
Description: Presentation on Analysis and Statistics in the field of computer aided music composition – Semana de la Matemática – Department of Mathematics, Universidad de Buenos Aires (2017)
I've also given a few smaller presentations on the history of probability (2017) and space maximization algorithms applied to the placement of oil drilling platforms (2018).
Copyright (c) Martín del Río, 2017 - 2020. All rights reserved.