Hi folks!
I'm Miguel. Here I write mainly about programming and side projects.
I've written my own programming language called Grotsky, and it's
implemented in Rust. This blog's engine is written with Grotksy and generates static HTML files.
2024-08-19
Lately, I've been working with Python C-API. I wanted to use subinterpreters with their own GIL to unlock the performance gains promised by being able to execute many threads in parallel which was not possible before Python 3.12.
2024-04-11
Recently I added the possibility to embed compiled scripts to Grotsky, this makes it super easy to generate single executables that can be easily distributed.
2024-01-26
Storing your data in a single json file can be useful when there isn't much state that needs to be tracked. In this post we leverage Go's generics to implement a simple JSON DB.
2024-01-04
Custom Markdown parser and HTML generator using Grotsky, my toy programming language that powers this blog. Up until now I've used a hacky HTML generator that relies on lists. Now Im integrating a simple MD parser that makes easier to write new articles.
2023-12-25
Advent of code 2023 has gone by, this is my first year participating. It's been fun and I want to share the problem that I enjoyed the most. It's based on simple electronic devices sending signals or pulses to each other.
2023-11-23
Im rewriting Grotsky (my toy programming language) in Rust, the previous implementation
was done in Go. The goal of the rewrite is to improve my Rust skills, and to improve the performance of Grotsky,
by at least 10x. This has been a serious of posts, this one is the latest one. Hopefully the best and most insightful
of them all.
2023-09-23
Im rewriting Grotsky (my toy programming language) in Rust, the previous implementation
was done in Go. The goal of the rewrite is to improve my Rust skills, and to improve the performance of Grotsky,
by at least 10x.
2023-07-15
Cloud Outdated was a personalized digest of updates for cloud services. It's sad to see it go,
but it was a fun project to work on, learn some new stuff and collab with a friend.
There are some takeaways from this that I'd like to share.
2023-06-02
Im rewriting Grotsky (my toy programming language) in Rust, the previous implementation
was done in Go. The goal of the rewrite is to improve my Rust skills, and to improve the performance of Grotsky,
by at least 10x.
2023-04-08
In this post we're going to write a basic Redis clone in Go that implements the most simple commands: GET,
SET, DEL and QUIT. At the end you'll know how to parse a byte stream from a live TCP connection, and hopefully have a working
implementation of Redis.
2022-11-26
Grotsky is a toy programming language that I made for fun. Today we're visinting the concept of Quines,
a.k.a. self replicating programs. It's said that any turing-complete language should be able to write a program that replicates
itself. And grotsky is no exception.
2022-09-22
A couple weeks ago Heroku announced the removal. I have plenty of projects running on free dynos.
I have taken some time to move my code to Fly.io. And also I've written a little tutorial of how to perform the migration.
2022-09-20
When teams start to grow, having a single dev environment becomes an issue. People start stepping on each others toes.
A common problem is that two people want to apply incompatible migrations on the database. That problem is impossible
to fix if folks are working on parallel branches.
If we can have a database for each branch of a project, that will remove much of the pain of having multiple devs applying
changes to the db.
2022-07-20
Cloud Outdated is a personalized digest of updates for cloud services. Works like a newsletter where you can choose
which services you want to get notified about. For example: Subscribe to AWS Lambda with Python runtime, and you'll get an email
when 3.10 is supported.
2022-05-05
Using Rust to create a MySQL plugin that implements blake3 hash.
2021-12-31
In this last post of the year I play with proxies in an attempt to create a Javascript object where changes are appended
to a log and can be reverted by deleting the last element of the log using getters and setters.
2021-10-04
I created my own programming language using Go, then I built a blog engine and used that engine to build this blog.
2021-04-01
Lisp implementation written in C that compiles to WASM with emscripten.
2020-12-17
Part 4 of building my own language series. This time I write and deploy a service to Heroku that let's your retrieve your pulbic IP.
2020-04-19
Evaluate python expressions inside MySQL using a UDF that binds to python interpreter.
2020-04-11
Challenge for writing your own implementation of malloc and free.
2020-04-01
Part 3 of building my own language series. Interpreting expressions and statement, traversing the Abstract Syntax Tree.
2020-03-15
Part 2 of building my own language series. Parsing expressions, traversing and printing the Abstract Syntax Tree.
2020-02-21
Part 1 of building my own language series. Defining the syntax of grotsky toy language.
2020-02-18
Iterative + recursive sudoku solver using python magic methods.
2020-02-12
Lox language interpreter based on the book craftinginterpreters.com by Bob Nystrom.
2020-01-24
Attempt of a lunatic to recreate functionalities that a language already has using the same language, and failing.