About
Subscribe
Books
Courses
Training
Blog
Contact
Sign In My Account
Blog RSS
Bitfield Consulting
Friendly, professional Go & Rust training
0
Here comes the sun: building a weather client in Rust
Jul 6

Jul 6 Here comes the sun: building a weather client in Rust

John Arundel

Whither the weather? In another extract from the not-yet-award-winning book The Secrets of Rust: Tools, let’s write a simple API client that can tell us if it’s sweater or swimsuit season.

The joy of (type) sets: interfaces and generics in Go
Jun 14

Jun 14 The joy of (type) sets: interfaces and generics in Go

John Arundel

Generics introduces a whole new kind of interface to Go: one based not on methods, but on type sets. Let’s explore the possibilities.

For your eyes only: user-friendly errors in Rust
May 16

May 16 For your eyes only: user-friendly errors in Rust

John Arundel

Durable software not only handles errors, it presents them to users in a helpful and meaningful way. Let’s put the finishing touches to our line-counting program by completing the user interface.

Getting nothing done: how to let go and rest your mind
Apr 29

Apr 29 Getting nothing done: how to let go and rest your mind

John Arundel

You don't need a special place, or a special time, or even special clothes, to meditate. It's just letting the mind rest when it's not needed, and that's the case more often than you might think.

Bobcoin, blockchains, and cryptocurrency
Apr 12

Apr 12 Bobcoin, blockchains, and cryptocurrency

John Arundel

How do cryptocurrencies actually work, though? Join Alice and Bob as they embark on designing a new digital ledger for secure “Bobcoin” transactions.

Things fall apart: handling errors in Rust programs
Mar 24

Mar 24 Things fall apart: handling errors in Rust programs

John Arundel

The night is dark and full of errors—and durable Rust software is not only ready for them, but handles them sensibly. Let’s see how, by returning to our line-counter project.

Catching grace: don’t just do something, sit there
Mar 12

Mar 12 Catching grace: don’t just do something, sit there

John Arundel

Meditation is easy when you know what to do: absolutely nothing! It's hard at first, like trying to look at the back of your own head, but there's a knack to it.

Writing terrible code in Rust… makes great tests
Feb 27

Feb 27 Writing terrible code in Rust… makes great tests

John Arundel

The secret of being a great coder is to write terrible code. Wait, wait. Hear me out: I’m going somewhere with this.

Slow, flaky, and failing: tuning up your Go test suite
Jan 30

Jan 30 Slow, flaky, and failing: tuning up your Go test suite

John Arundel

Thou shalt not suffer a flaky test to live, because it’s annoying, counterproductive, and dangerous: one day it might fail for real, and you won’t notice. Here’s what to do.

Checkly, Terraform, and automated site monitoring
Jan 23

Jan 23 Checkly, Terraform, and automated site monitoring

John Arundel

Introducing the Checkly Terraform provider: what Terraform is and why you'd want to use it, and how to use Terraform to automate and manage your website monitoring with Checkly.

How to know when it's time to go
Jan 13

Jan 13 How to know when it's time to go

John Arundel

Leaving a job is never easy, and it’s a consequential decision. But when it’s time, it’s time. Here’s how to escape the comfort trap, and take the next step in your career.

The magic function: designing clean APIs in Rust
Jan 3

Jan 3 The magic function: designing clean APIs in Rust

John Arundel

How do you design user-friendly APIs in Rust? The answer is easy: you use them! Let’s build a simple Rust CLI tool using what I call the “magic function” approach.

Why you can't meditate: quieting the mind is impossible
Dec 18

Dec 18 Why you can't meditate: quieting the mind is impossible

John Arundel

You can't clear your mind, or achieve bliss by sitting on a special cushion. But you can start to gently train your brain to stop craving distraction and overstimulation. In this excerpt from Monk Mode, we'll see how.

Undertesting and overtesting: finding the sweet spot for Go tests
Dec 8

Dec 8 Undertesting and overtesting: finding the sweet spot for Go tests

John Arundel

Tests are great, provided they actually test something. But are your tests too optimistic (assuming the code already works), or too persnickety (testing the irrelevant)?

Rust and Go vs everything else
Nov 19

Nov 19 Rust and Go vs everything else

John Arundel

Alex Pliutau and I discuss what Go programmers should know about Rust, and why the two languages make perfect partners.

Constraints in Go: tightening up your type parameters
Oct 31

Oct 31 Constraints in Go: tightening up your type parameters

John Arundel

Freedom is nothing without constraints, and Go’s generics gives us a powerful way to build polymorphic types and functions constrained by type sets. Let’s geek out.

Generic types in Go: collections and functions
Oct 31

Oct 31 Generic types in Go: collections and functions

John Arundel

What kind of idiot would carry a package for someone when they've absolutely no idea what's inside it? Well, generic types in Go are exactly like that, only in a good way.

Testing legacy Go code: tiptoeing through the minefield
Oct 24

Oct 24 Testing legacy Go code: tiptoeing through the minefield

John Arundel

How do you rescue a legacy codebase that has no tests? Let's look at some techniques for clawing your way back to maintainability, one test at a time.

Programming is fun: a Cup o’ Go podcast chat with me
Oct 8

Oct 8 Programming is fun: a Cup o’ Go podcast chat with me

John Arundel

I was a guest on the Cup o’ Go podcast recently, talking with Shay Nehmad and Jonathan Hall about writing and teaching Go. Here’s a transcript of our chat.

Encrypting with AES: a simple cipher tool in Go
Aug 15

Aug 15 Encrypting with AES: a simple cipher tool in Go

John Arundel

AES is an amazing, state-of-the-art encryption system, and it’s built right in to Go as part of the standard library. It’s also incredibly easy to use. Let’s see how!

Load More
 
 
 
 
0