Aristotle as a software architect, contemplating a digital interface while fragmented design patterns labeled "Singleton" and "Bad Code" scatter around, with a flowing river of data representing well-modeled reality

Model the Reality, Not the Patterns

Why focusing first on properly modeling the domain is better than forcing design patterns into your code.

Programmer in its cyberpunk looking room seated in front of several big screens with complex technical images

SOLID: Crafting Software To Conquer Complexity

In the realm of software development, crafting code that remains maintainable, flexible, and scalable stands as an utmost priority. And when delving into the concept of scalability, I’m considering not only the system’s load capacity but also your ability to maintain it, essentially wielding it as a tool to conquer complexity. To achieve this, developers often embrace design principles that steer them in writing this type of high-quality code. One such set of principles is known as SOLID, an acronym representing five essential tenets in object-oriented programming. ...

A cubic piece of technology with silicon looking parts and a fan intake with hot fluid around it

Bringing TensorFlow to Pharo

Pharo is a powerful open-source Smalltalk-based programming language and environment that has been widely used for research and development in various fields. Specially Pharo at Inria, France’s National Institute for Research in Digital Science and Technology. However, the lack of a native plugin for TensorFlow, a popular open-source machine learning framework, has been a major limitation for high efficiency AI development with Pharo. I’ve written this post to let you know that, I’ve proposed a Google Summer of Code 2023 project to create a TensorFlow plugin for Pharo, which will unlock the full potential of Pharo for production grade AI development. ...

Setup Iceberg to use the pharo-vm repository in the Pharo9 branch

How to Create a Pharo Smalltalk Plugin

When working with Smalltalk, you may wish to access functionality that exists in a specific library or technology that you do not want to recreate. In such cases, you have two options: creating an FFI bridge or extending the Smalltalk VM with new primitives. In this article, we’ll explore the less common method of extending the Pharo Virtual Machine with an external plugin by creating a HelloWorldPlugin. The goal is to provide insight and clarity into the process of extending the VM in this manner, and to explain the steps involved in Pharo 9 as of February 2023.