Smalltalks 2024

Smalltalks 2024 In November I was at Smalltalks 2024, the annual conference of FAST in Argentina, with stops in Buenos Aires and Mar del Plata, and gave two talks there. FAST invited me over, which I'm very grateful for. One was "ApptiveGrid: solve (business) problems without programming" (slides). The starting point is a simple idea: what if a URL wasn't just an address but an actual reference to
21 July 2026

ESUG 2024

ESUG 2024 ESUG 2024 was held in Lille, and the recordings are on Youtube. Next one on the backlog. I gave one talk that year, "A tale about scale" (slides). It's the story of ApptiveGrid going from "one laptop, me, and Pharo" (the CPM model: Computer, Pharo, Me) to about 5000 users, and everything that pulled in along the way: an issue tracker, a CI pipeline, migrations, and on the technical side
21 July 2026

ESUG 2023

ESUG 2023 ESUG 2023 was held in Lyon at the end of August, and the talk recordings have been up on Youtube for a while now. Time to finally point to them here, before I completely lose track of which year is next on the backlog. I gave two talks that year. One was "Soil - a fresh look on OO databases" together with Marcus Denker, about the object database I've been building. The other was "Visual
20 July 2026

ESUG 2022

ESUG 2022 It took a while this time until all presentation videos were reviewed and published. And it took me some time as well to write this post. On youtube you can find presentation videos show us your project videos Last year I did the following presentations: There is no magic until you talk about databases (slides). In this presentation I describe how our technology stack grow much smaller b
27 April 2023

BYOB - object serialization

BYOB - object serialiazion In the initial post I described the motivation behind developing a new OO database from scratch in pharo. At the end of that post I've sketched a possible API for Soil. Let's pick that and see how we can make it happen. I copied the snippet over here: "create a new database path and initialize its content" soil := Soil new path: 'soil'; initializeFilesystem. "create a
14 January 2023

BYOB - build your own (data)base

BYOB - build your own (data)base Persistency is not simple. We can make programs that create data structures and operate on it rather easy. But persisting the same thing is not easy. If the data structure you are dealing with is not super simpel, persisting gets comlicated really quick. Why is that? Why do we even need to persist data? At one time in history storage technology divided itself into
7 January 2023

BYOB - build your own (data)base

BYOB - build your own (data)base Persistency is not simple. We can make programs that create data structures and operate on it rather easy. But persisting the same thing is not easy. If the data structure you are dealing with is not super simple, persisting gets complicated really quick. Why is that? Why do we even need to persist data? At one time in history storage technology divided itself into
7 January 2023

Picking it up

Picking it up What happened so far? I did the usual thing. I created a blog and wrote a blog engine for it. The only content in the blog was about creating the blog engine itself. And as usual after the first release nothing happened anymore... This time it is different because it wasn't the end of the project and the blog. Foliage got a new user which made me quite proud. After several years of i
3 December 2022

Foliage released

Foliage released Foliage is a static web site generator pretty much like Octopress/Jekyll. Instead of being a tool you invoke from the commandline foliage is meant to be a library to create a customized web site with a script. The script can then be used to invoke foliage headless on a commandline. The basic idea of foliage is to reify all structures of the web site from filesystem hierarchy down
17 January 2021

Blog navigation

Blog navigation Last time I've added a page header and a page title to the rendering so the site can be navigated in a basic fashion. Adding those was possible because I added a render context that enables the rendering process to access more information it needs for rendering. The header works well for global navigation but I wanted to add a way to navigate between the blog articles. At the mome
7 November 2020

A page context for a header

A render context for a header The last milestone improved the blog generation situation significantly. A model on which I can operate has certain advantages I do not want to miss. After writing the article I refactored the website model a bit further to separate reading from disk and model objects more. There is no microdown page in the model anymore because it is converted to pillar and that shou
28 October 2020

A website model

A website model After the last milestone of creating this blog I've chosen a simple approach of page generation. Files in a raw/ folder are recursed and produced directly into the output directory as HTML. This is straightforward but not what is helpful in the long run. I want this library to be flexible and extensible. As an object oriented programmer what do we do if we want to manage and modif
24 October 2020

On to #2

On to #2 Writing the second page is especially exciting if it is about rendering the first page. The first markdown document is present but how to put it on the web? Step by step... hello.md Sketching the basic process to render a page I use the simplest markdown possible. # Hello Some text to form a paragraph In pharo we just put this in a file called hello.md and the rest can be done from th
6 October 2020

Nothing new

Nothing new This is one of the articles I have written quite a few times in my life. It is the first one to start a blog. So it means a few years have past and I feel the need for a new blog. Well, every single time that I do this it is less about writing articles than to play with a new blog software. Nothing new this time. It is a new software and it is written by myself as mostly. One of the re
15 September 2020