week 24, 2020

Learn LaTeX in 30 minutes

In this guide, we hope to give you your first introduction to LaTeX. The guide does not require you to have any prior knowledge of LaTeX, but by the time you are finished, you will have written your first LaTeX document, and hopefully will have a good knowledge of some of the basic functions provided by LaTeX.

Source: Learn LaTeX in 30 minutes.

Seven Techniques to Master Error Handling

Error handling is an essential part of a programmer’s life. Inputs can be abnormal, and applications can fail. We need to make sure that our code does what it supposed to do.

In this article, I will outline the techniques and recommendations that you can use to write code that handles errors and stays clean. For code examples, I will use C# 8.0.

Source: Guide for better Error Handling in C#, an article by Daniel Rusnok.

A visit to Hook of Holland

In the morning we took our bikes and rode to Hook of Holland. Originally we had planned to take the RET Fast Ferry to cross the Nieuwe Waterweg. But when we arrived just in time or so we thought we learned that the Ferry was on the winter schedule because of Corona.

Esme and Adam exploring
Esme and Adam exploring.

So after a lunch near to the harbour and some exploring near the edge of the Nieuwe Waterweg we went to the town of Hook of Holland where we did some shopping.

Async Python is not faster

Most people understand that async Python has a higher level of concurrency. It would make some sense for that to imply higher performance for common tasks like serving dynamic web sites or web APIs.

Sadly async is not go-faster-stripes for the Python interpreter.

Under realistic conditions (see below) asynchronous web frameworks are slightly worse throughput (requests/second) and much worse latency variance.

Source: Async Python is not faster, an article by Cal Paterson.

I replaced my MacBook Pro with a Raspberry Pi 4 8GB for a Day

Earlier this week, as part of my work doing a more complete review of the Raspberry Pi 4 (coming soon!), I decided I'd go all-in and spend one entire day working entirely (or at least as much as possible) from a Raspberry Pi.

And not just doing some remote coding sessions or writing a blog post—that's easy to do on a Chromebook, a tablet, or any cheap old laptop—but trying to do all the things I do in a given day, like:

  • Browse Twitter using a dedicated app
  • Use Slack (you laugh, but Slack uses more memory than most of the other apps I'm running at any given time—combined!)
  • Record and edit clips of audio and video
  • Work on some infrastructure automation with Docker, Ansible, and Kubernetes

Source: I replaced my MacBook Pro with a Raspberry Pi 4 8GB for a Day, an article by Jeff Geerling.

How async should have been

In the last few years async keyword and semantics made its way into many popular programming languages: JavaScript, Rust, C#, and many others languages that I don’t know or don’t use.

Of course, Python also has async and await keywords since python3.5.

In this article, I would like to provide my opinion about this feature, think of alternatives, and provide a new solution.

Source: How async should have been, an article by Nikita Sobolev.

Blogging and me

If you’re reading this, you are now at the most recent home for my blog: but this isn’t my first rodeo. Blogging as been a part of my life since my privileged bum got a computer and internet in the early 2000s. For some reason I really thought the whole world should read what I had to say about myself and The Wayback Machine is there to remind me that everything you do on the internet, stays on the internet forever.

Source: Blogging and me, an article by Ana Rodrigues.

The Goodbye Man

In the wilderness of Washington State, expert tracker Colter Shaw has located two young men accused of a terrible hate crime. But when his pursuit takes a shocking and tragic turn, Shaw becomes desperate to discover what went so horribly wrong and if he is to blame.

Shaw's search for answers leads him to a shadowy organization that bills itself as a grief support group. But is it truly it a community that consoles the bereaved? Or a dangerous cult with a growing body count?

Undercover, Shaw joins the mysterious group, risking everything despite the fact that no reward is on offer. He soon finds that some people will stop at nothing to keep their secrets hidden . . . and to make sure that he or those close to him say "goodbye" forever.

In the evening I started in The Goodbye Man, a Colter Shaw Novel by Jeffery Deaver. This is the second Colter Shaw book. I named the first one, The Never Game, a page turner after I finished it the 23rd of July, 2019.

I'm booting my Raspberry Pi 4 from a USB SSD

But the Pi 4 not only separated the network adapter from the USB bus, it also has USB 3.0, which can be 10x faster than USB 2.0 (theoretically). So when the USB boot beta was announced, I wanted to put it through its paces. And after testing it a bit, I decided to use the Pi 4 as my full-time workstation for a day, to see whether it can cope and where it falls short.

Source: I'm booting my Raspberry Pi 4 from a USB SSD, an article by Jeff Geerling.

Printf Debugging

Printf debugging is essential, so since we’re going to do it anyways, let’s do it fast. In this post we’ll focus specifically on how to write printf debugging log lines to make them fast to read and write programs against. There’s two important features: a machine parsable format like json or DSV and explicitly labeled fields.

Source: Printf Debugging, an article by Tyler Adams.

How to jam neural networks

Deep neural networks (DNNs) have been a very active field of research for eight years now, and for the last five we’ve seen a steady stream of adversarial examples – inputs that will bamboozle a DNN so that it thinks a 30mph speed limit sign is a 60 instead, and even magic spectacles to make a DNN get the wearer’s gender wrong.

So far, these attacks have targeted the integrity or confidentiality of machine-learning systems. Can we do anything about availability?

Source: How to jam neural networks, an article by Ross Anderson.

The Pain Points of Haskell: A Practical Summary

I would like to preface this article by saying that Haskell is great. I have been using it as my go-to for native applications for several years now. Everything that follows is a product of my love and affection for the language, and a desire to see it succeed. And none of this is intended to disparage the efforts of people improving the Haskell ecosystem. It’s hard work and there’s a lot of it, and I thank you all for what has been done so far.

Source: The Pain Points of Haskell: A Practical Summary.

Fair Warning

Jack went on one date with Tina Portrero. The next thing he knows, the police are at his house telling Jack he's a suspect in her murder.

Maybe it's because he doesn't like being accused of a crime he didn't commit. Or maybe it's because the method of her murder is so chilling that he can't get it out of his head.

But as he uses his journalistic skills to open doors closed to the police, Jack walks a thin line between suspect and detective - between investigation and obsession - on the trail of a killer who knows his victims better than they know themselves...

In the evening I started in Fair Warning by Michael Connelly, the 3rd book in the Jack McEvoy Series. As I've read the previous two books and enjoyed those a lot I looked forward to Fair Warning.