Above


Rare sight
You will see mostly flat lands driving down from Asuncion to Villarrica. Only the occasional hill will break the horizon in the three hour journey. There are some cows grazing on the side of the road or some more white cows on some fields far away. But mostly you can take in all the beauty of this fertile part of Paraguay. Wild palm trees, eucalyptus monoculture farms, fences, chiperias and full service gas stations.
My driver was a bright and pleasant young farmer of swiss descent. He was weary of the dry and hot weather preceding my arrival and that he hoped for rain to soon come – not only for the crops. The unpaved roads could also benefit from some water. They were a spectacle of dust and flying rocks. We saw a couple of (out of control?) fires and a lot of already burned down fields. Displeased with the tradition of burning the fields instead of tilling he pointed them out to me and shook his head.
Getting out of the red air-conditioned camioneta I began to really feel the heat and humidity. I have arrived at my first longer stop in this travel. How long exactly? I don’t know.
Refreshing: yerba mate with ice water
Officially jet lagged I am exploring the upscale Villa Morra while trying to stay in the shade as much as possible. Can’t help but try some of the cheese/wheat combinations(Chipitas and Mbeju con tres quesos) and of course the Tereré .
Entry into Paraguay was super smooth. The border agent asked only a couple of questions: why I am traveling to the country and how many days I intend to stay. I did get an Onward ticket before leaving Germany in case the airline or the border patrol wanted to see documentation for my return. Nobody wanted to see it. She did ask if I have a cédula. I am always debating of getting one when but I never had the need to stay more than the 90 days allowed by the visa free entry yet.
View from Paseo La Galeria
Number one priority last night was resting the swollen legs after flying for 15+ hours. But I did find a steakhouse in the nearby mall to enjoy a sensible priced(100k PYG) steak with mandioca fries for dinner last night. I am enjoying the amenities of metropolitan life. I know those will be rare in the countryside. And that’s where I am heading next.
Super smooth travel with LATAM. Made it to Asuncion in one piece.
Palms and 37°C
777-300
First big hop in this journey.
january rain
Moved out of my apartment today. I got pretty wet when walking to the hotel. It is a weird feeling not having any keys to a place. Technically I am homeless now. I liked that apartment a lot. Bittersweet. But super happy that now this new chapter of my life has started.
everything packed up
The time has finally come. There are a couple of days left to prepare, handover my apartment and get to the airport. After what feels like years of dreaming about it I finally start long term traveling.
How long will it be? Where will I go? What will I do? Who knows! I only have a rough plan for now. I will probably talk a little bit more about the plans at a later point.
The last couple of days were warmer. But we are in the darkest part of winter in Europe so that just makes easier to leave. Towards the sun. Light. Warmth. Adventure awaits.
Will all of it fit in the three bags?
knolled
I work fast. Well, at least I like to think that I work fast.
I want to be able to open Obsidian and throw whatever is in my clipboard in there as fast as possible.
The usual behavior of Obsidian is to move the cursor to the title and highlight it. So if I want to paste I get into trouble because the title or name of the note does have some restrictions and shouldn’t be too long. I want my clipboard stuff always to be in the body of the note! I was surprised to find out that this behavior is not default in Obsidian.
I am developing the Obsidian Text Focus Plugin to make my life easier when working with quickly creating notes. It will always put the focus on the text when you create a new note or when you switch from Reading View to Source View.

This blog posts discusses two common techniques when working with objects in Lua for games especially when working with Pico8 .
2D movement on a grid is so common in games that I use this trick all the time. It’s easy to implement and and easy to use.
Let’s look at an example. Create a new object in a cell at (i,j) in myArray with the following code:
myArray[i..","..j] = {}
This makes it incredibly easy to retrieve an object at a certain cell. Want to know if there is an item laying on the floor on the map tile in x/y? Just check if the coordinates! local item = myArray[i..","..j] and then if item then pickup(item).
To iterate over all objects in myArray you can use the pairs iterator. Caution: the objects are not ordered when using pairs!
for k,v in pairs(myArray) do
-- v is the cell object
-- k is a string in the form of "i,j"
end
If we want to access the objects in a particular order we should use nested for loops:
for i=1, 8 do
for j=1, 8 do
local cell = myArray[i..","..j]
-- do stuff with the cell
end
end

Entities like the spaceship in this GIF are objects. Containers for objects are special in Pico-8 because we have a couple of built-in functions to help us manage insertion and deletion. I strongly propose to use add(), del() and all() for container and entity management.
Create and add an object to a table with add():
local entities = {}
local player = {
x = 3,
y = 3,
sprite = 5
}
add(entities, player)
In your _update or _draw callbacks, you will most likely want to loop over all objects. You should use all() for that:
for entity in all(entities) do
-- do stuff here
end
You can use del() to remove an object from the container even while iterating over the container:
for entity in all(entities) do
del(entities, entity)
end
This only works with all() and del()! This is great for games where you have objects such as bullets, effects or timed events that are added and removed dynamically.
I hope that these two hints help you to get started with objects and tables for games. For advanced users, other methods might be more efficient. I recommend reading the Pico-8 Docs or PIL for more information.