Why I document my React componentsThis article explains why I personally place so much importance on documenting the React components which I write as part of projects.Mar 25, 2021Mar 25, 2021
Writing reusable React componentsIn the past we used to write our React components in a particular way which did not encourage component reuse. In this article I’ll show…Sep 1, 2019Sep 1, 2019
My policy for publishing to NPMJavaScript packages published to NPM are used by different consumers. It has become impossible to generate a truly universal package…Jan 28, 20191Jan 28, 20191
Published inInteractive ThingsSimple Square Packing AlgorithmIn a recent project the design asked for a component which shows a small number of values in squares. It was important to represent the…Mar 17, 2017Mar 17, 2017
Published inInteractive ThingsThe Evilness of Global StateOver the past two years I’ve worked on numerous projects. In pretty much all of them, I’ve run into issues which were caused by the same…Jan 20, 2017Jan 20, 2017
TemplateHaskell and GHCJSThis is another post outlining some of my struggles when writing Nauva. This time it’s about getting TemplateHaskell to work in GHCJS.Jan 5, 2017Jan 5, 2017
Process-wide unique identifiers in HaskellIn Nauva I need to generate process-wide unique identifiers in pure code.Jan 3, 2017Jan 3, 2017
BitTorrent Sync device in the Google CloudI use BitTorrent Sync to distribute copies of my personal files (documents, pictures, GoPro videos and so on) and to share files with my…Mar 1, 2016Mar 1, 2016
Beware: React setState is asynchronous!I recently fixed a bug in one of my applications whose root cause was that I was calling setState multiple times during a single update…Feb 7, 20167Feb 7, 20167
Cross-compiling for the Onion OmegaTLDR: I figured out how to build a C and Haskell cross-compiler for the Onion Omega, instructions are in my GitHub repository.Feb 7, 2016Feb 7, 2016