…and it wasn’t just Instagram.

Our skis cut through the early morning powder, scything across deserted slopes. A strange new virus was in the early stages of ravaging the Chinese mainland; the mountain resorts of Japan rang empty in consequence. I was thinking about lunch. Geoff, investigative cyber-crime journalist extraordinaire, was contemplating loftier matters.

“Facebook’s Terms of Service prohibit convicted sex offenders from their service. But they claim they can’t police this. Surely, though, they could map photos and names from the sexual offenders register to profiles?”

Returning to opposite sides of the world, and with the pandemic in full storm, we returned to the…

A simple solution to embed external DLLs within your Nuget packages

Simply insert the following into your .csproj or .fsproj file, and package up as usual:

<Content Include=”<My DLL path & DLL file”>

Adjust the PackagePath to suit your build.

Believe this: I am you, but from the future. I have been sent back in time to help.

At a guess, you’re somewhere between 1 and 4 weeks into your low heart rate training. You’ve read Maffetone cover to cover, watched endless hours of slightly loopy guys on YouTube extolling the virtues of low heart rate training, and you’ve decided to give it a go.

And it sucks.

It really, really sucks. Why would anyone do this to themselves? It’s clearly impossible to go at anything other than a crawl at such a stupidly low heart rate. How is this going to make you stronger, faster, fitter?

An old man in sandals passes you. You feel stupid.


Extract your trained XGBoost model into its own super fast, super light module, and understand a little more about our favorite machine learning algo along the way

(Disclaimer: the Treelite library will convert XGBoost and other tree models into direct code with some clever optimizations. Our motivation here is to produce a custom implementation and to understand more about how XGBoost works)

We all know and love XGBoost, winner of competitions, robust in the face of missing data points, it’s as close to the Swiss army knife of machine learning algos as they come. Yes, there is competition from LightGBM, CatBoost and others, but we’ve been through so much together since the machine learning neolithic ages of 2014.

The day comes, though, when you want to understand…

Still Dazed & Confused by circular buffers? Let’s Ramble On with some more aging rockers, and see if we can find a Stairway To Heaven

“And her voice is sore from shouting
Cheering winners who are losing
And she worries if their days are few and soon they’ll have to go
- Celebration Day

In our previous article, aging leather-skinned crooner Mick Jagger helped us to understand how efficient data structures might help us in our search for the optimal circular buffer. Now we turn our incantations to the high priests of rock, Led Zeppelin, to see if they can give our project a Whole Lotta Love.

1. Good Times, Bad Times

Before going too much further, let’s do some proper benchmarking. We’ll be using the Benchmarkdotnet framework to do…

Can’t get no satisfaction with high-speed streaming data structures for .Net? Here’s how we go about it.

“You can’t always get what you want,
But if you try sometimes, you just might find
You get what you need.”
- The Rolling Stones

Financial applications, especially in the high-frequency space, often need to process a window of recent data in an efficient fashion. We need to store the latest data point and extract that data point (or a set of recent data points) in a highly performant fashion.

What we want is a buffer of data which is quick to insert new values, quick to extract previous values, and efficient from a memory perspective. As with many impossible…

Chris White

I climb mountains and work for a hedge fund

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store