All Dressed Programming

Java Streams

Java streams have been around since Java 81. Java streams have been extensively covered by tutorials, and documentations 234 and are heavily used in the wild5. This blog post exposes why java streams are so important for the java ecosystem.

The main point developed is that, compared to imperative for and if, Java streams produce “better” code at very little cost.

Streams Complexity

Before entering into the main argument, it is important to note that Java streams complexify Java. It complexifies the code in the sense that it adds a DSL language on top of existing Java. To new programmers, it makes Java harder; it adds something new to learn before being comfortable in the ecosystem. As demonstrated by the ubiquity of Java stream use in popular java projects5, this complexity is there to stay. It needs to be embraced as a major part of the Java programming language. In 2024, each Java programmer must be very comfortable with the streaming API.

L'enseignement est difficile

J’ai eu la chance d’enseigner1 la programmation lors de la session d’automne 2024 au cégep Ahuntsic. L’expérience a été extraordinaire et je souhaite continuer. Comme souvent dans la vie, j’ai été surpris à bien des égards et j’aimerais partager mon expérience.

Mon curriculum vitae

D’abord, un peu de contexte à propos de moi. Bien que ça fait à peu près 15 ans que je programme professionnellement, je n’ai jamais étudié l’informatique. J’ai étudié les mathématiques où j’ai reçu un seul cours de programmation2. En plus, je n’ai jamais été un étudiant très studieux.

Using Java Records In Real Codebase

In recent years, Java has introduced an impressive number of features. The development of Java has historically been relatively slow; it took about 2.5 years to go from Java 7 to Java 8, then 3.5 years to reach Java 9. But since Java 11, there has been a new Java release every 6 months, and these days LTS1 versions are released every two years.

Some features attract a lot of eyeballs. One feature that deserves more attention is the addition of record classes in Java 16. Record classes, or records for short, are classes which are transparent holders for shallowly immutable data2. Records can be seen as a regular Java class where all fields are final and accessible via getters, and where the equals, hashCode, and toString methods have been properly implemented.

Personal Introduction To C#

Background

I have never learned C# for two main reasons. First, as C# is a direct competitor to java, I have always favoured to use a technology I already master over a new technology. Second, I am a member of the Microsoft Haters Social Club; for almost theological reasons, I avoid anything that is remotly close to the MS world. Consequently, C# was label “I know it exists” by my brain for many years.

Finally a Solid LaTeX Alternative: Typst

Introduction

In recent years, we have seen several game-changing software such as duckdb, web assembly and unison just to name a few. To this list, we can now add typst.

Typst is a modern, markdown-inspired, typesetting system that aims to be as powerful as LaTeX. Typst takes as input source code to output a pdf.

This blog does not pretend to be a tutorial, but instead tries to shed some light on an outstanding technology.

Composition of Nix Flakes

Nix flakes allow to include system dependencies from software that are not published on the nix packages repository but that are themselves flakes. This post will explain how to achieve this.

Context

We would like to create a document using the new markup language named typst. Typst presents itself as a markdown like language that produces pdf; moreover, typst promise to be as powerful as latex.