Dutch Government’s DigiD iOS App Code Snippet

There was a tweet going around Twitter, I’ve copied the text & link from image below:

The Dutch government was forced to release the source code of their DigiD digital authentication iOS app. It is written in C#.
https://github.com/MinBZK/woo-besluit-broncode-digid-ap

https://twitter.com/JeroenFrijters/status/1615204074588180481

Ok, I’ll bite. I’m ok with this code in JavaScript, not C#. Look no further to Programming Twitter for proof that there is no definition of “good code” as no one can agree if this is good or not. I’ll take this opportunity to explore the edge cases because they’re fun in Elm.

Continue reading “Dutch Government’s DigiD iOS App Code Snippet”

TDD Isn’t About Testing, Despite Having Test in the Name

The “programmers can’t name things” trope is real. TDD, or “TEST Driven Development”, which has “test” in the name, is about design. But we don’t call it “Design Driven Development” because those of us from front-end love our Designers, and just assume that is implied, and they direct us what to build. TDD’s value isn’t just design, it’s testing that our code works, now, after a change, any time we deploy stuff, etc.

… that said, I love when Allen Holub rages, so reposting. That, and us TDD fans are horrible at describing, marketing, and implementing TDD, but we try anyway.

Also, follow Allen, he’s a smart dude: https://twitter.com/allenholub/status/1607839169245761536

OCAML 5 is Out + Effects Tutorial

OCAML 5 was released, and one of the features many on Twitter were happy about was effect handlers. I don’t have much experience in Haskell, but one of the cool features it offers is you choose if something is an Error/Exception and the program should stop, or you should keep going.

Typically, if it’s your code, that’s no problem. However, if it’s in a 3rd party library, or a module you didn’t write, you have no choice to just “handle the error”. Unclear how this doesn’t leak implementation details, but I’m super n00b at Effect handlers (a la Unison). Really cool to see it be used as a primitive to create async/await, streams, and Go-lang-like imperative style shared concurrency with all the type guarantee’s OCAML gives you. I wonder when ReScript will enhance async/await to handle Effects (or maybe you already can).

Effects Tutorial: https://github.com/ocamllabs/ocaml-effects-tutorial

OCAML 5 Announcement: https://discuss.ocaml.org/t/ocaml-5-0-0-is-out/10974