Simplifying Complexity: The Journey from WebSockets to HTTP Streams

This article explores the transition from a WebSocket-based implementation to a simpler, more direct stream over HTTP in the context of capturing touch screen inputs on Linux.

It begins by introducing the main theme, encapsulated in the statement Everything is a file is a stream of byte. The need to capture finger positions on a touchscreen by reading /dev/input/events in Linux is initially discussed, followed by a dilemma of transferring this data to a JavaScript client in a browser.

Initially, WebSockets are chosen, leading to a discussion on how frameworks often shape our technological choices and the challenges faced in debugging WebSocket connections. The article then introduces an alternative about sending a stream of bytes over HTTP, drawing a parallel to Linux’s approach to handling devices and files.

Serialization, the process of encoding messages for this stream, is discussed next, highlighting the implementation specifics in GoLang and its native advantages. The final section covers how to receive and decode this stream in JavaScript within a worker thread, and then send the decoded messages to the main thread using post requests. The article concludes by reflecting on the benefits of simplicity in technology, urging readers to reevaluate default choices and consider more straightforward solutions to complex problems.

Data-as-a-Product: the keystone of the data-mesh

Exploring the innovative concept of Data-as-a-product

This article is about the transformation of data into a strategic asset within organizations. It outlines the pivotal role of data in decision-making, emphasizing the importance of Business Intelligence (BI) in the digital landscape.

The article distinguishes between digital products and data products, highlighting how data-as-a-product enhances data management and supports data products in analytical and operational systems.

Central to this is the application of product thinking to data, aiming to create reliable, accessible, and high-quality data solutions within the framework of data mesh, as conceptualized by Zhamak Dehghani.

The Dawn of LLM-Powered personal assistants: pioneering a new platform economy

The article delves into the evolving platform economy where digital platforms, such as ChatGPT powered by Large Language Models (LLMs), serve as intermediaries connecting stakeholders. These platforms, unlike traditional pipelines, leverage digital technology to create value through mass personalized interactions.

Using a hypothetical use-case, the article demonstrates how ChatGPT can be an intuitive personal assistant, bridging users with various service providers.

However, with the rise of such platforms, challenges akin to SEO in search engines are anticipated.

Approaches like Prompt Engineering and Automatic Choice Optimization will become pivotal.

Lastly, a critical challenge for providers is to be chosen by AI systems in a landscape dominated by a few digital giants.

Rethinking Presentations: Beyond Static Slides

In the digital age, traditional PowerPoint presentations often fail to engage audiences due to their static nature.

Research suggests that audience attention dwindles after just 10 minutes without engagement. The proposed method in this article aims to revitalize presentations by

  • Incorporating live doodling with the assistance of tools like the reMarkable tablet for real-time interaction.
  • Using a script to create PDFs from images, blending the familiar structure of slides with spontaneous on-the-spot drawing.

The result is a more authentic, engaging, and impactful presentation experience, though it requires deeper preparation and understanding of the topic. The tools and methods highlighted aim to shift the focus from aesthetics to genuine content engagement.

Evolving the Game: A clientless streaming tool for reMarkable 2

In this article, I expose the new version of the streaming tool for my reMarkable tablet.

Originally crafted in 2021, this tool allowed me to stream sketches during video calls.

Aiming for more user-friendliness, I revamped the design to a clientless implementation. This articles describes the implementation with some code illustrations in Javascript and Go on how to

  • get the picture and to display it in a canvas
  • optimize the flow by playing with uint4 and RLE

ChatGPT, Wardley and Go

In this article, I explain: how to create a ChatGPT plugin with Go how to validate the configuration with CUE how to create a basic API usable with ChatGPT how to display SVG images within chatGPT (more a do and don’t) Introduction I use ChatGPT on a daily basis as an assistant, not as a dictionary or an encyclopedia. I seek solutions to problems and am aware that I will find them myself.

C4 at scale: make it efficient, then make it ambient

Introduction C4 (Context, Containers, Components, and Code) is a powerful and flexible approach to visualizing software architectures. In a previous article I explained how I created a DSL to describe my C4 as data thanks to the CUE language. On Wardley’s evolution axis the initial article was in stage I of evolution: making it work In this article, in a first part, we’ll explore how I effectively use the C4 tool based on CUE to organize my code, handle tags, manage versioning, and integrate with Continuous Integration and Continuous Deployment (CI/CD) systems to generate and update diagrams.

Should you read this article about Wardley maps?

Rationale behind wardleyToGo

Wardley Maps are a way of expressing business, market, or any other system through sketching. The Map is a sketch that offers situational awareness on a certain topic. As a sketch, the obvious way to draw a map is with paper and pen. While it is an excellent starting point, a paper representation of a map has a problem: it is static. What I mean by this is that adjusting the placement of some components in the design phase can be tedious (even with a good rubber pencil).

CCCCUE: Generating C4 diagrams with CUE

Thanks to the CUE language, this article will expose a way to draw diagrams as data. It introduces a CUE module holding the definitions for C4 components declarations.