[Thiago Cafe] Programming is fun!

About this blog

This blog is about programming and other technological things. Written by someone developing software for fun and professionally for longer than I want to admit and in more programming languages that I can remember

Book recommendation - Rust

(Posted 2024-08-15 04:34:07)

I received a post from a friend of mine of a guy who developed games in rust and who also developed a small game engine in rust ranting about the language and about the borrow checker.

I sympathize with the guy - up to a certain point - as I had a similar experience

... more ...

Deserialising binary data in Rust

(Posted 2024-08-14 17:11:15)

One common way to deal with serialised data in C++ is to map to a struct, but in Rust with memory ownership and some smart memory optimizations, it is a little more complicated.

For example, let's say a producer in C++ serialises this message:

struct book_msg {  
    uint8_t major_version, // byte 0: message major version  
    uint8_t minor_version, // byte 1: message minor version  
    uint8_t msg_type,      // byte 2: message type  
    uint8_t title[20]      // byte 3-23: title of the book  
}
// ....
auto msg = create_msg();
comm.send(&msg, sizeof(book_msg));

How can we deserialise that in Rust?

... more ...

RSS feed added to Thiago Cafe!

(Posted 2024-08-03 00:22:16)

A Rust developer on twitter posted:

"It would be nice to reed updates to your blog in an RSS feed."

Indeed that is a great idea and I implemented on Texted 0.3.6!

Now you can subscribe to this blog using your preferred RSS client using the url https://thiagocafe.com/rss

Happy reading!

... more ...

Quick tip: Type of tokio spawn return

(Posted 2024-06-03 19:03:45)

When I was implementing the metrics task using tokio, I wanted to save the result JoinHandle in a struct and I saw the type being displayed by the IDE: JoinHandle<?>

What does it mean?

... more ...

Another way to deserialise DateTime in Rust

(Posted 2024-06-02 20:53:59)

In a previous post, I wanted to deserialise a date from a Toml file and implemented the Deserialize trait for a type NaiveDate. When I was implementing metrics, I had to do it again, but implement serialise and deserialise for NaiveDate and I found another way, possibly simpler, to serialise and deserialise NaiveDate.

First: add derive support to your Cargo.toml

... more ...

Installing a Nerd Font in Ubuntu

(Posted 2024-05-07 21:45:41)

This is a simple step-by-step guide to install nerd fonts in Ubuntu

Downloading

Download the font you want from Nerd Fonts website https://www.nerdfonts.com/font-downloads

... more ...

How to deserialise DateTime from toml configuration

(Posted 2024-04-25 17:07:56)

When implementing a new configuration parameter for Texted, I needed something to represent the date the blog started.

When looking into the TOML website, I was fortunate to discover that it has a data type for dates, so I could create the new parameter

blog_start_date = 2016-06-25

However, my fortune was gone as I found that the Toml crate does not support deserialising.

... more ...

How to sort a vector of a custom struct in Rust

(Posted 2024-03-08 04:39:59)

When implementing tags for Texted2, I had a list of tags being:

let tags: Vec<(&str, u32)>; // Tag name, number of posts containing this tag

And I need to sort it by the second item of the tuple, the tag count.

... more ...

Texted2 released!

(Posted 2024-02-29 23:59:18)

Some years ago, I create a blog application in D and called Texted. The idea that time was to learn D using a project. This time, to learn Rust, I created a new version of that same blog application, but faster and improved.

I present you, texted2!

https://gitlab.com/thiagomg/texted2/

... more ...

A simple guide to unit tests in Rust

(Posted 2024-02-27 06:15:19)

A very important part of any software are the unit tests, after all, they help us verifying that the cases that are in our heads are indeed correctly implemented and also that whoever is the next lucky fellow changing our code in the future (it might be ourselves!) will feel confident that their change won't break the application.

Rust implements tests in the same file that you are implementing your functions. I will first show one example and later explain how it works.

Creating the Unit Test

First, let's see a piece of code I used in a tool to generate posts for my newly rewritten blog system Texted2

... more ...

Pages: 1 2 3

About this blog

This blog is about programming and other technological things. Written by someone developing software for fun and professionally for longer than I want to admit and in more programming languages that I can remember