
I’ve played around with various web server libraries and frameworks in Rust, and found various strengths and weaknesses with them. Most recently, I put together an FP Complete solution called Zehut (which I’ll blog about another time) that needed to combine a web frontend and gRPC server. I used Hyper, Tonic, and a minimal library […]

Years ago, Travis CI introduced a method for passing secret values from your repository into the Travis CI system. This method relies on encryption to ensure that anyone can provide a new secret, but only the CI system itself can read those secrets. I’ve always thought that the Travis approach to secrets was one of […]

Last week, our team was working on a feature enhancement to Kube360. We work with clients in regulated industries, and one of the requirements was fully encrypted traffic throughout the cluster. While we’ve supported Istio’s mutual TLS (mTLS) as an optional feature for end-user applications, not all of our built-in services were using mTLS strict […]

What’s wrong with this program? fn main() { let option_name: Option<String> = Some(“Alice”.to_owned()); match option_name { Some(name) => println!(“Name is {}”, name), None => println!(“No name provided”), } println!(“{:?}”, option_name); } The compiler gives us a wonderful error message, including a hint on how to fix it: error[E0382]: borrow of partially moved value: `option_name` –> […]

The Pathway to Information Security Management and Certification Information security is a complex area to handle well. The possible risks to information assets and reputation, including computer systems and countless filing cabinets full of valuable proprietary information, are difficult to determine and bring under control. Plus, this needs to be done in ways that don’t […]

I’m happy to announce that over the next few months, FP Complete will be offering intermediate training courses on both Haskell and Rust. This is a follow up to our previous beginner courses on both languages as well. I’m excited to get to teach both of these courses. More details below, but cutting to the […]

This post has nothing to do with marriage. Tying the knot is, in my opinion at least, a relatively obscure technique you can use in Haskell to address certain corner cases. I’ve used it myself only a handful of times, one of which I’ll reference below. I preface it like this to hopefully make clear: […]

I’ve spent a considerable amount of coding time getting into the weeds of path parsing and generation in web applications. First with Yesod in Haskell, and more recently with a side project for routetypes in Rust. (Side note: I’ll likely do some blogging and/or videos about that project in the future, stay tuned.) My recent […]

This blog post is the second in the Rust quickies series. In my training sessions, we often come up with quick examples to demonstrate some point. Instead of forgetting about them, I want to put short blog posts together focusing on these examples. Hopefully these will be helpful, enjoy! FP Complete is looking for Rust […]

This blog post is the first in a planned series I’m calling “Rust quickies.” In my training sessions, we often come up with quick examples to demonstrate some point. Instead of forgetting about them, I want to put short blog posts together focusing on these examples. Hopefully these will be helpful, enjoy! FP Complete is […]