Blinking An LED On An STM32 With Embedded Rust
#rust#programming
Cross-Compiling Go For A Little ARM Box Without Losing My Mind
#golang#programming
How The 2018 Edition Quietly Fixed My Rust
#rust#programming
Parsing Without the Regret, Using nom
#rust#programming
Trait Objects vs Generics, With Numbers
#rust#programming
Go Generics, and the Quiet Question of Whether I Need Them
#golang#programming
Fighting the Borrow Checker, and Losing Gracefully
#rust#programming
Threading context.Context Through, Properly This Time
#golang#programming
A Week Spent Watching a Goroutine Count Climb
#golang#programming
The Goroutine Leak Hiding in a Timeout
#golang#programming
Threading context.Context Through, And Where It Goes Wrong
#golang#programming
Losing Gracefully To The Borrow Checker
#rust#programming
The Goroutine Leak That Hid In Plain Sight
#golang#programming
How We Did Rust Error Handling Before anyhow Saved Us All
#rust#programming
I Benchmarked Trait Objects Against Generics So You Don't Have To
#rust#programming
The Edition That Quietly Reshaped How I Write Rust
#rust#programming
Generics in Go: Do I Even Need Them?
#golang#programming
I Rewrote a Shell Script in Rust, and I'd Do It Again
#rust#programming
context.context, and learning to thread it through
#golang#programming
rewriting a shell script in rust, and counting the cost
#rust#programming
the borrow checker was right and i was tired
#rust#programming
losing to the borrow checker, then thanking it
#rust#programming
a small go daemon, actually finished
#golang#programming
where the context goes, the cancellation follows
#golang#programming
the day i deleted my logging wrapper
#golang#programming
threading context.Context through, and finally understanding why
#golang#programming
building once on my laptop, running on the arm box in the cupboard
#golang#programming
the smallest useful daemon i've written this year
#golang#programming
two years of rust in production, and an honest tally
#rust#programming
the allocation i couldn't see until i put it under load
#golang#programming
log/slog, and the day go logging stopped being a religious argument
#golang#programming
how we did rust error handling before anyhow turned up
#rust#programming
async/await landed and i rewrote everything
#rust#programming
go generics, and the day i finally reached for them
#golang#programming
i rewrote a 40-line bash script in rust, here's the honest tally
#rust#programming
generics in go, do i even need them
#golang#programming
parsing a config format with nom
#rust#programming
blinking an LED the hard way, in Rust
#rust#programming
the borrow checker was right and i was wrong, again
#rust#programming
parsing a config format with nom, one combinator at a time
#rust#programming
how i learned to lose to the borrow checker gracefully
#rust#programming
trait objects vs generics, with actual numbers
#rust#programming
building once on the laptop, running on the pi
#golang#programming
context.Context, and learning to thread it all the way through
#golang#programming
building Go binaries for the little ARM box without the little ARM box
#golang#programming
the 2018 edition changed how i write rust
#rust#programming
forty lines of go that earned their keep
#golang#programming
the async rewrite i swore i wouldn't do
#rust#programming
every time I reach for interface{} I pay for it later
#golang#programming
generics in go, two years on, do i reach for them
#golang#programming
a small daemon, in go, actually shipped
#golang#programming
the smallest useful daemon i've written this year
#golang#programming
i rewrote a 40-line shell script in rust and i'd do it again
#rust#programming
learning to thread context.Context everywhere, and why it's worth it
#golang#programming
building go binaries for a box i can't compile on
#golang#programming
the rust i write now started with the 2018 edition
#rust#programming
how we handled rust errors before anyhow saved us
#rust#programming
i finally reached for go generics, and mostly didn't
#golang#programming
every interface{} i ever wrote came back to bill me
#golang#programming
what two years of rust in production actually taught me
#rust#programming
pprof found the allocation i swore wasn't there
#golang#programming
dyn or not: i finally benchmarked it
#rust#programming
i rewrote a thirty-line shell script in rust
#rust#programming
every time i reach for interface{} i live to regret it
#golang#programming
threading context.Context through everything, and why it's worth it
#golang#programming
stop reaching for context.Background() in the middle of things
#golang#programming
deleting dep and never looking back
#golang#programming
a forty-line go daemon that's earned its keep
#golang#programming
interface{} is a promise I keep breaking
#golang#programming
two years of rust in production, the honest ledger
#rust#programming
every interface{} i wrote came back to bill me
#golang#programming
a little cli in rust, and whether the borrow checker earned its keep
#rust#programming
a tiny daemon in go, finally shipped
#golang#programming
the borrow checker was right and i was the bug
#rust#programming
cross-compiling go for an arm box, the easy way and the cgo way
#golang#programming
goroutines and the leak i didn't see
#golang#programming
context.Context, and learning to thread it through
#golang#programming
two years of rust in production, the honest ledger
#rust#programming
deleting Gopkg.toml and not missing it
#golang#programming
threading context.Context through, properly this time
#golang#programming
where the time actually went under load
#golang#programming
the great async rewrite, and what it actually cost me
#rust#programming
the smallest daemon i could get away with
#golang#programming
learning to thread context.Context all the way down
#golang#programming
i benchmarked dyn vs generics so you can stop arguing about it
#rust#programming
parsing a config format with nom, and learning to think in combinators
#rust#programming
dynamic dispatch isn't as slow as you've been told
#rust#programming
where a go service actually spends its time
#golang#programming
forty lines of go that quietly do their job
#golang#programming
how rust 2018 quietly rewired my instincts
#rust#programming
a year on, where go generics actually earn their keep
#golang#programming
learning to thread context.Context through everything
#golang#programming
stop fighting context.Context and start threading it
#golang#programming
parser combinators finally clicked, thanks to nom
#rust#programming
pprof under real load, not in a benchmark
#golang#programming
trait objects vs generics, a real benchmark
#rust#programming
building go binaries for the little arm box in the cupboard
#golang#programming
the goroutines that never came home
#golang#programming
nom finally made parsing feel less like a chore
#rust#programming
how we did rust errors before anyhow and thiserror turned up
#rust#programming
what rust error handling felt like before anyhow turned up
#rust#programming
a hundred lines of go that replaced a cron job and a prayer
#golang#programming
blinking an led on an stm32 the hard, satisfying way
#rust#programming
what rust error handling felt like before anyhow turned up
#rust#programming
one line to build for the little ARM box
#golang#programming
where the time actually went in a slow Go service
#golang#programming
i rewrote a service in async rust and learned what coloured functions cost
#rust#programming
nll, no extern crate, and how rust started feeling easy
#rust#programming
a tiny daemon in go, shipped
#golang#programming
rust in production, two years of regrets and wins
#rust#programming
generics in go, and whether i actually wanted them
#golang#programming
when every crate brought its own error type
#rust#programming
i benchmarked dyn vs generics so you don't have to
#rust#programming
async/await finally clicked, so I rewrote everything
#rust#programming
interface{}, and the regrets it left me
#golang#programming
i rewrote a futures-combinator mess into async/await and regret nothing
#rust#programming
i benchmarked dyn versus generics so i could stop guessing
#rust#programming
every interface{} is a promise i make to my future self and break
#golang#programming
i wrote a small cli in rust and i'm still arguing with myself about it
#rust#programming
rewriting it all for async/await
#rust#programming
how the 2018 edition quietly retrained my hands
#rust#programming
the smallest useful daemon i've written this year
#golang#programming
structured logging in go that i can actually grep
#golang#programming
logs you can actually query
#golang#programming
finally on go modules, and saying goodbye to dep
#golang#programming
nom made me stop hand-rolling parsers, mostly
#rust#programming
cross-compiling go for the little arm box in the cupboard
#golang#programming
pprof, a load test, and the allocation i couldn't see
#golang#programming
deleting Gopkg.toml and not missing it
#golang#programming
async/await in rust, and the rewrite i couldn't resist
#rust#programming
the goroutines that wouldn't die
#golang#programming
parsing a config format with nom, and liking it
#rust#programming
rewrote a ten-line shell script in rust, regret nothing
#rust#programming
blinking an led on an stm32 in rust, and being surprised it worked
#rust#programming
i lost an argument with the borrow checker, and it was right
#rust#programming
losing to the borrow checker, gracefully
#rust#programming
the goroutines that never came home
#golang#programming
i rewrote a tiny shell script in rust and i regret nothing
#rust#programming
building for the pi without building on the pi
#golang#programming
one more note on the async port: select! is sharper than you think
#rust#programming
async/await is stable, and i went and rewrote the lot
#rust#programming
a hundred lines of go that finally left my laptop
#golang#programming
the goroutine leak that hid behind a healthy graph
#golang#programming
making my peace with context.Context
#golang#programming
interface{} and the type assertions i regret
#golang#programming
the empty interface and my regrets
#golang#programming
dyn or generic? i finally measured instead of guessing
#rust#programming
context.context, and learning to thread it through
#golang#programming
a year with async/await, and the rewrite I do not regret
#rust#programming
finding where a go service actually spends its time
#golang#programming
threading context through, and finally getting it
#golang#programming
threading context.Context through everything, and why it earns its keep
#golang#programming
cross-compiling Go for the little ARM box in the cupboard
#golang#programming
the borrow checker was right and i was wrong, again
#rust#programming
fighting the borrow checker and losing gracefully
#rust#programming
interface{} and the bill it sends you later
#golang#programming
error handling before anyhow existed
#rust#programming
async/await finally clicked, so naturally i rewrote the lot
#rust#programming
interface{} was the easy answer, and i paid for it
#golang#programming
rust errors back when you wrote every From by hand
#rust#programming
where does this context.Context even go
#golang#programming
blinking an led the hard way, in rust
#rust#programming
pprof, a load test, and the allocation i couldn't see
#golang#programming
structured logging in go, and learning to stop fighting it
#golang#programming
structured logging in Go, finally sane
#golang#programming
error handling before anyhow existed
#rust#programming
i rewrote a shell script in rust and i'm not sorry
#rust#programming
building go binaries for an arm box from my laptop
#golang#programming
throwing out dep and letting go modules do its job
#golang#programming
a hundred lines of go that just sit there and work
#golang#programming
the context i kept ignoring until it bit me
#golang#programming
what the 2018 edition quietly fixed
#rust#programming
building for the pi without touching the pi
#golang#programming
building go binaries on my laptop and shipping them to an arm box
#golang#programming
the goroutine leak that hid behind a tidy little channel
#golang#programming
the borrow checker was right and i was tired
#rust#programming
chasing latency in a go service that looked fine
#golang#programming
async/await is nearly here and i couldn't wait
#rust#programming
the 2018 edition quietly rewired my rust habits
#rust#programming
parsing without regret, using nom
#rust#programming
building for the pi without ever touching the pi
#golang#programming
what rust error handling felt like before the crates showed up
#rust#programming
the borrow checker was right and i was tired
#rust#programming
the error said "no such file" and not which one
#rust#programming
the error type i wrote forty times before i learned the trick
#rust#programming
i rewrote a 40-line shell script in rust and i'd do it again
#rust#programming
the smallest useful daemon i've written, and how it got to production
#golang#programming
what rust error handling felt like before anyhow turned up
#rust#programming
interface{}, or how i learned to stop trusting myself
#golang#programming
passing context.Context until it finally clicked
#golang#programming
the goroutine leak that hid behind a channel nobody read
#golang#programming
the goroutine leak that hid in plain sight
#golang#programming
passing context through, and finally understanding why
#golang#programming
i rewrote a thirty-line shell script in rust, and mostly enjoyed it
#rust#programming
interface{} got me out of a corner and then quietly furnished it
#golang#programming
rust feels different since the edition landed
#rust#programming
shipping a go binary to arm from a laptop that has never seen arm
#golang#programming
parsing a config format with nom, and learning to think in combinators
#rust#programming
building go binaries for the pi without a toolchain in sight
#golang#programming
the borrow checker was right and i was being stupid
#rust#programming
the small joys of the 2018 edition
#rust#programming
every interface{} i wrote came back to bite me
#golang#programming
the borrow checker was right and i was wrong, again
#rust#programming
i wrote a 200-line tool in rust to avoid a 20-line shell script
#rust#programming
the context.Context habit i wish i'd picked up sooner
#golang#programming
interface{} is not a type, it's a promise to deal with it later
#golang#programming
parsing a daft little config format with nom
#rust#programming
i rewrote a 40-line shell script in rust, and i'd do it again
#rust#programming
the function signature that accepts everything and promises nothing
#golang#programming
how interface{} crept through my codebase and what it cost
#golang#programming
i rewrote a shell script in rust and i have feelings
#rust#programming
a hundred lines of go that replaced a cron job and a prayer
#golang#programming
i rewrote a tiny shell script in rust, here's the honest accounting
#rust#programming
threading context.Context through, and finally understanding why
#golang#programming
building for the pi without compiling on the pi
#golang#programming
the borrow checker was right and i was wrong, again
#rust#programming
go modules are nearly here, and i am quietly retiring dep
#golang#programming
parsing a config format with nom, and learning to think in combinators
#rust#programming
parsing a log line with nom, and why i stopped reaching for regex
#rust#programming
passing context.Context everywhere, and why it's worth it
#golang#programming
the borrow checker was right and i was wrong, again
#rust#programming
fighting the borrow checker and losing gracefully
#rust#programming
threading context through, and learning to stop fighting it
#golang#programming
a small parser, written with nom
#rust#programming
go is finally getting real dependency management
#golang#programming
parsing a log format with nom, and learning to think in combinators
#rust#programming
context.context, and learning to thread it through
#golang#programming
a tiny daemon in go, and the joy of shipping a single binary
#golang#programming
the borrow checker was right and i was wrong, again
#rust#programming
i shipped a forty-line daemon and it just runs
#golang#programming
i want go to just solve dependencies
#golang#programming
the .context() helper i keep copying between rust projects
#rust#programming
losing to the borrow checker, then realising it was right
#rust#programming
a christmas-break rust cli, and the honest cost of it
#rust#programming
error handling in rust, the year before anyhow saved us all
#rust#programming
another small rust cli, and the part i keep getting wrong
#rust#programming
forty lines of go that quietly run my house
#golang#programming
when rust error handling meant rolling your own
#rust#programming
a rust tool to find duplicate files, and whether it earned the build time
#rust#programming
threading context through a worker pool, not just an http handler
#golang#programming
i tried to mutate a vec while iterating it, and rust said no
#rust#programming
the goroutine that never came home
#golang#programming
a hundred lines of go that quietly renews our certs
#golang#programming
the borrow checker was right and i was holding a reference too long
#rust#programming
the borrow checker was right and i was tired
#rust#programming
the day the borrow checker was right and i was wrong
#rust#programming
a weekend rust cli, and whether the borrow checker earned its keep
#rust#programming
the one-liner that talked me out of rust
#rust#programming
another small tool, another afternoon in rust
#rust#programming
getting go onto an arm box without dragging a toolchain along
#golang#programming
the borrow checker was right and i was tired
#rust#programming
cross-compiling go for an arm box, the easy way and the way i did it first
#golang#programming
building Go on the laptop, running it on the Pi
#golang#programming
the smallest useful daemon i've written in go
#golang#programming
another small rust cli, and the parts i'd do differently
#rust#programming
context.context, and finally threading it through everything
#golang#programming
rolling your own error type in rust, the long way round
#rust#programming
the goroutines that never came home
#golang#programming
the borrow checker was right and i was wrong
#rust#programming
the goroutines i forgot to stop
#golang#programming
the borrow checker won, and i'm fine with it
#rust#programming
building go binaries for the pi from my laptop
#golang#programming
the borrow checker was right and i was wrong
#rust#programming
shipping a one-job daemon and resisting the urge to add features
#golang#programming
the smallest daemon i could justify writing
#golang#programming
a tiny cli in rust, and whether it earned its keep
#rust#programming
a little cli in rust, was it worth it
#rust#programming
the goroutine that wouldn't die
#golang#programming
a tiny daemon in go, and the bits that aren't the code
#golang#programming
cross-compiling go for an arm box, the long version
#golang#programming
building go binaries for the pi without the pi
#golang#programming
i rewrote a shell script in rust and i'm not sorry
#rust#programming