Workingontech

One step closer to a TensorFlow Pharo Plugin

I’m excited to announce that the Pharo Consortium has been approved as an organizer for Google Summer of Code 2023! As a mentor for the Pharo TensorFlow plugin project, I’m thrilled to be a part of this program and to help developers to work on a project for the Pharo community.

Grafana1

The TLIG stack

Monitoring is an essential part of any modern infrastructure. In this article, I will show you how to set up Promtail, Telegraf, InfluxDB, Loki, and Grafana to monitor your system’s performance and logs and use Kuma for availability and alerts. I’ve selected this toolchain because is reasonably straightforward to setup, and shows good potential and flexibility for further growing needs.

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.

Pharodawntheme

PharoDawnTheme updated

Today, I’m excited to announce a new release of PharoDawnTheme, this dark warm color theme for the Pharo Smalltalk IDE. This theme is available for Pharo 9 and 10

Mapless repositories with UnQLite backends now can be on RAM

Just a quick update to mention that I’ve merged in develop a pull request that will add the capability to work with Mapless using UnQLite in memory. The use case is mostly for single-image caching. When you want to cache data but keep the image lean, that’s when you can use this setup.

Mapless is online again

After quite some time not having updates on Mapless, I’ve started to invest some efforts in getting it working for latests Pharo versions and incorporating and maturing its API and main features.

The Smalltalk IDE I wish would exist

When I was using Smalltalk in a daily basis I had the chance to understand quite well the things that would make productivity go high. Here are some sketches I’ve done. I didn’t do the debugger and the package manager system, and both of them have great impact on this but hopefully you can imagine how productive this could be.

Run brew cleanup and claim some disk space

I was doing a bit of housekeeping in my MacBook Pro so I can use some additional diskspace. The starting point was to do a scan with OmniDiskSweeper. OmniDiskSweeper’s User Interface allows you to easily navigate the directories that are occupying space the most so you can investigate what in those big directories is actually useful and what can be archived.

Controller expression evaluation on render with Angular

This is a really common need that AngularJS is not providing out of the box. I needed it myself for some projects and you might too? Ok, even if many will tell you that you should not program in a way that needs to use this feature, I beleive that there is plenty of people that knows exactly what they are doing. There is plenty of cases that have real and justified reasons to use this feature and they can use it properly. In short, when adequate this do not necessarily implies bad design. So here we go.