Loris Cro's Personal Website

Recent content on Loris Cro's Personal Website
https://kristoff.it/ (RSS)
visit blog
RAII and the Rust/Linux Drama
22 Oct 2024 | original ↗

A while ago some Rust / Linux drama hit the news because of tension between people who are pushing for more Rust in the kernel, and those who seem to be opposed to the idea.A while ago some Rust / Linux drama hit the news because of tension between people who are pushing for more Rust in the kernel, and those who seem to be opposed to the idea.Reading the opinions of those involved, and looking at the “evidence”Reading the opinions of those involved, and looking at the “evidence”, you can see that people are feeling strong emotions and so it becomes less clear to what extent this is a technical disagreement, a political..., you can see that people are feeling strong emotions and so it becomes less clear to what extent this is a technical disagreement, a political...

Go Exceptions for the Unconvinced
22 Oct 2024 | original ↗

In my previous post I argued that Go has exceptions because of panic/recover. Some people understood the message, some others had objections that roughly amounted to “you’re just being pedantic, there’s no practical consequence to it”.In my previous post I argued that Go has exceptions because of panic/recover. Some people understood the message, some others had objections that roughly amounted to “you’re just being pedantic, there’s no practical consequence to it”.Oh man, if only.Oh man, if only.The The talktalk that I linked in the other post goes over this point with exemplary clarity but, since I’m bothering to write a follow up post, I will just go through the... that I linked in the other post goes over this point with exemplary clarity but, since I’m bothering to write a follow up post, I will just go through the...

Yes, Go Does Have Exceptions
17 Oct 2024 | original ↗

The Zig official website states in its The Zig official website states in its Overview pageOverview page the following (emphasis mine): the following (emphasis mine): varvar aa = = bb ++ cc..dd;; foofoo(()); bar();; bar(); Examples of hidden control flow:Examples of hidden control flow:D has D has @property@property functions, which are methods that... functions, which are methods that...

The Static Site Paradox
8 Oct 2024 | original ↗

In front of you are two personal websites, each used as a blog and to display basic contact info of the owner:One is a complex CMS written in PHP that requires a web server, multiple workers, a Redis cache, and a SQL database. The site also has a big frontend component that loads as a Single Page Application and then performs navigation by requesting the content in JSON form, which then gets "rehydrated" client-side.The other is a collection of static HTML files...

Critical Social Infrastructure for Zig Communities
30 Sept 2024 | original ↗

In this blog post I want to encourage Zig community members, starting from project authors, to take a more deliberate approach towards building communication channels between our communities scattered across various social platforms.Andrew Kelley moved a few days ago some of the "instant messaging" portion of the compiler development discussion from Discord to Zulip (you can find a link to it in the list of Zig communities), after the former platform showed him one ad too many...

The Python Package Index Should Get Rid Of Its Training Wheels
23 Sept 2024 | original ↗

As somebody directly involved with an upcoming programming language, I'm often in discussions about how to model things in the ecosystem like, say, the package manager, and how those decisions impact the project in the long term.When reading Simon Willison’s excellent blog post "Things I’ve learned serving on the board of the Python Software Foundation" (which I recommend...

The Three Hardest Problems in Software Engineering
19 Sept 2024 | original ↗

You might already be familiar with the two hardest problems in Computer Science, but here I'm talking about Software Engineering.Naming things is still very hard, but what are the three things that you wish the software engineering industry got better at? Or, conversely, what are your top three sources of frustration?This is my list.1. User-hostile softwareWay too much software is botched even before the first line of boilerplate gets flushed to...

Zine: A Static Site Generator Written in Zig
18 Sept 2024 | original ↗

Over the last year I worked on a static site generator written from scratch in Zig. It's called Zine, like in fanzine (wiki) and in this blog post I'll briefly present the reasons why I decided to create my own, and describe what's innovative about it.If you want to try it out (or just jump straight into the docs) the official website is

The First HTML LSP That Reports Syntax Errors
11 Sept 2024 | original ↗

The story of how I gained two world-firsts, somehow.This might sound hard to believe but, as far as I know, I published the first ever Language Server for HTML that reports syntax errors, and then I also gained a second world-first after that.VSCode extension (OpenVSX) (or search "SuperHTML" in...

How To Write More Blog Posts
10 Sept 2024 | original ↗

AKA the three laws of mental thermodynamics.You are a software engineer and have the luxury of facing interesting problems. You would like to tell others about the interesting stuff that you work on, but once your pen is pointed at blank paper (or your cursor is at offset 0 of an empty file), you just don't know how to make progress.In this post I have some advice for you, but beware: advice for complex problems (writing is...

Zig Day
4 Sept 2024 | original ↗

A suggestion for better Zig meetups.If you're trying to learn Zig in 2024, one key ingredient is still interacting with the Zig community. More docs, blog posts, videos about Zig are getting released over time, but in my opinion direct collaboration is still the most effective way to dispel unknown unknowns, get unblocked when you're stuck, and improve your overall coding style by adopting new patterns as they get discovered by other members of the community.When it comes...

Improving Your Zig Language Server Experience
1 Jul 2024 | original ↗

The Zig ecosystem is still growing and a lot of important building blocks have not yet reached their final form.One notable example is the current language server situation: ZLS is a brilliant community effort, capable of keeping up with language changes (they have a few clever ways to automate the process), but that has one big flaw: it is not able to resolve complex comptime expressions.The result is that ZLS...

A Note About Zig Books for the Zig Community
16 Jun 2023 | original ↗

In the last few weeks I've heard reports of quite a few people in the Zig community being contacted by multiple publishers about writing a Zig book for them.In this post I want to share some information with everybody in order to support the decision making of those who might be interested in working on a Zig book, be it with a publisher, or without one.Before I jump into the meat of the discussion, here are my own personal plans, which are not a big secret (I've...

Zig's Curious Multi-Sequence For Loops
27 Feb 2023 | original ↗

Zig has just gained new for loop syntax that allows you to iterate on multiple slices / arrays at the same time. In this blog post I'm going to explain in detail the rationale behind this choice, while also introducing you to a couple useful patterns that the syntax is meant to encourage.If you want to try it out, you will need an unstable build of Zig, which you can get from the downloads page.Basic...

Zig Is Self-Hosted Now, What's Next?
25 Oct 2022 | original ↗

Why self-host Zig? For great justice, of course… and also a few more reasons actually.With the upcoming 0.10.0 release of Zig on November 1st, we are going to ship the new self-hosted compiler. This is the result of a huge amount of work that brings a lot of benefits, some obvious, some others less so.Even though the self-hosted compiler is now shipped, there's still more work to do on it but, at the same time, now the door has opened to more exciting features, like...

The Good Parts of Open Source
9 Aug 2022 | original ↗

If you read my blog in the past, you know I'm often complaining about Open Source, but today I'm here to say something supportive for once. This doesn't change the fact that I'm still running Software You Can Love this October as an explicit departure from the general "Microsoft ❤️ Open Source" mentality, but recent events are a good excuse to talk about the one thing that Open Source does well: reduce risk when using somebody...

The First English Review of Wohpe
3 Aug 2022 | original ↗

Wohpe is a sci-fi novel by Antirez, who doesn't need any introduction on this blog. At the moment of writing, the original book is only available in Italian, with an English release scheduled for this fall. This is the English incipit as published by Antirez, so we can assume it's final:Twenty years had passed since the morning when Nathan Frei, feet firmly planted in his...

A Conference About Software You Can Love
27 May 2022 | original ↗

This October I'm going to host "Software You Can Love" (SYCL, pronounced "cycle"), an in-person conference about the art of creating software for humans. If that sounds interesting already, you can find information about the location and ticket prices on the official website.What does SYCL mean?Software you can love is software whose main goal is to serve the end user, and it's alarming how rarely we get to...

Interfacing with Zig, a BDFL-run Project
10 Dec 2021 | original ↗

If you are interested in contributing to the ecosystem of a programming language (or any big software project really), it's important to know its governance model and how that reflects on the community.This might seem a boring point at first glance, especially if you just want to get to the code, but the reality is that if you don't do this due diligence, you are setting yourself up for a lot of disappointment. Having unmet expectations when doing open source work might lead to...

Maintain it With Zig
8 Sept 2021 | original ↗

No matter what language you program in or what applications you use: everything you do with a computer today is powered at some level by a piece of C/C++ code.C and C++ are kings when it comes to writing efficient software and the C ABI is the lingua franca of software interoperability, allowing C libraries to be used by almost any other language. This ubiquity, coupled with the rise of free and open source software development, has created over the course of the last 40 years a...

Playing the Open Source Game
12 Apr 2021 | original ↗

The Zig project has a non-profit foundation that needs to be managed, a community to shape, and the actual language to develop. These are all big, complex problems that don't default to a positive outcome without active care.Andrew did an amazing job laying the foundations, from deliberately choosing a non-profit corporate model, to picking clear values based on respect and empathy for the community to crystallize around,...

The First Zig Website Redesign
13 Jan 2021 | original ↗

Up until the publication of this post, if you went to the front page of https://ziglang.org, you would be greeted with a multi-page explanation about how Zig improves over the systems programming toolchains that today we take for granted.If you have done enough of that kind of programming, you'll immediately see how Zig is tackling relevant problems, but if you don't have such experience, then the front page could very easily...

You Should Play Secret Hitler
22 Oct 2020 | original ↗

Let's talk about Secret Hitler, now that everyone is playing Among Us and Among U.S.In games like D&D, you start by creating a character for yourself. The character has a background, a set of skills and a personality of their own. Ideally, you should try to play characters with a different disposition than yours, and part of the enjoyment is acting like them, to the point of even occasionally making disastrous choices knowingly, because that’s what the character would...

Zig's New Relationship with LLVM
28 Sept 2020 | original ↗

While not yet at version 1.0, Zig is about to reach a new level of maturity and stability.In the early days, Zig was but a thin frontend in front of LLVM. This was instrumental for getting started quickly and filling in gaps of Andrew’s knowledge as a compiler developer. Now, the training wheels of the bicycle are coming off, and LLVM is transitioning into an optional component.A Ziguana riding...</p>
    </div>
    
    <div class= Addio Redis, I'm leaving Redis Labs

6 Jul 2020 | original ↗

Thanks Antirez for the code, the Redis manifesto, and for the free karma especially.Last week I resigned from my position as developer advocate at Redis Labs.I’ve never talked much about Redis on this blog because I made a point of trying to write interesting posts about different topics, and also to avoid any form of conflict of interest: I didn’t want people to think this blog was being used as a marketing outlet by Redis Labs.Now that I’m not with the company...

What is Zig's “Colorblind” Async/Await?
21 Jun 2020 | original ↗

An introduction to Zig's curious concurrent programming API.Zig is a new, general-purpose programming language that is rethinking from the ground up the way languages and related tooling should work. I’ve already discussed compile-time code execution, and now I’m going to introduce another innovative concept from the language: async/await.But wait a minute, isn’t async/await present also...

The Upcoming Future of Online Meetups
13 Jun 2020 | original ↗

As we adventure into the phase where society needs to learn to cohabit with the virus, the tech industry comes to the full realization that in-person conferences and meetups are not going to resume anytime soon. Good, but not good enough, especially when it comes to online events.Organizers have had enough time to think it through, and yet we are still seeing many of them host what are basically extracurricular meetings. If you join a conference now, you are likely to see...

So you're a Remote Worker Now
5 Apr 2020 | original ↗

Make the most of the global remote-working experiment.A virus goes pandemic and now you’re not allowed to go to the office anymore. Welcome to the remote worker’s club. I’ve been a member for nearly 1.5 years, and it’s been one of the best work experiences of my life. No commute, the comfort of your home, cooking your own meals; what’s not to like? Well, for some, a lot. I’ve had a fantastic experience but it’s a peculiar equilibrium and you might have already discovered that...

The Good, the Bad and the Ugly Standup
26 Jan 2020 | original ↗

“In this world there are two types of standup, my friend: comedy and meetings.You do meetings.”It's not always easy to understand what makes meetings successful and since Zen stories aren't the learning tool of choice in the business world, we have certified practitioners teach people what they call "ceremonies": rituals that you're supposed to imitate with the expectation that, hopefully, illumination will eventually dawn on you.I don't claim to know everything...

Why Go and not Rust?
10 Sept 2019 | original ↗

Imagine you're a developer who mainly works with Go. You go to an event and, while chatting with some people, you decide to share with them the news that you wrote a small tool that does something. You claim that since you wrote it in Go, it's fairly fast, it's a single binary, etc. The group seems pleased with your recount and you start feeling good, but then you notice a stranger approaching from behind. A bone-chilling wind blows and you hear: "Why Go and not...

What is Zig's Comptime?
5 Aug 2019 | original ↗

Let's take a quick look at what compile-time execution looks like in Zig.If you've only experienced compile-time execution in the form of macros, generics or codegen, be ready to be surprised by what Zig can do.What is ZigZig is a new general-purpose programming language developed by Andrew Kelley. While still under heavy development, I think the language is already showing great promise. Zig aims to be a better C, similarly to how Rust can be understood as a...

I Want Simple, Not Just Easy
21 Jul 2019 | original ↗

Simple → Complex is the dimension that describes how irregular and interconnected a system is. Simple systems can be broken down into smaller pieces that are understandable in isolation. If you make changes to one of those pieces, you don't have to fear unexpected ramifications in parts not directly connected to what you're operating on. Complex systems are the exact opposite: you'll need to keep in mind a lot of things and tread carefully.Easy →...

↑ these items are from RSS. Visit the blog itself at https://kristoff.it/ to find other articles and to appreciate the author's digital home.