The tools my life runs on. Jon Danielsson. Modelsandrisk.org

The tools my life runs on

September 28, 2024
The tools my life runs on. What is impressive, and what is tolerated. All can be replaced, except one without which I would stop working.

What is impressive

Recently, two pieces of software have impressed me greatly: DuckDB and Tailscale. Use both daily. 

DuckDB is a database for numerical data that has replaced all my use of CSV and parquet files. It is super fast and much nicer for data manipulation than Python, R or Julia. It is now an essential part of my risk library and, hence, my risk website, extremerisk.org

Tailscale is magic. It allows easy and secure VPN setup using WireGuard to get seamless remote access to devices and services across platforms. I have lingering irrational security concerns, but it is magic and makes so many difficult or impossible things possible. I use it daily. 

And GPT. Super useful for code, pretty good for research. Terrible at bibliographies. Makes up affiliations.

The eternal quest for an editor

I am one of the many who is always unhappy with my editor. I use four these days. Editors, more than any other software, need to be pretty. Fast. Simple. Work out of the box. Not needing configuration. Reliable. Pretty. Comfortable.

The most impressive is the markdown editor Paper. Super fast and beautiful. Almost perfect.

vi is also impressive. It has hardly changed in 48 years. It is available everywhere, and its commands are edged in my brain. I want :wq stamped on my coffin. I use vi all the time in the terminal. 

VScode is a necessary evil. It does what it is supposed to, but it is slow, bloated, complicated and certainly not pretty.  

Am trying to see whether Zed is a replacement for VScode. Haven't made up my mind yet.

So, if I like vi, why not neo vim? Because it violates my basic need for software that works without configuration and will not be borked by an upgrade. I once set it up using the best advice on YouTube, a couple of weeks later, one of the modules upgraded automatically, and nothing worked. Apparently, that is common. It is heaven for those who like to endlessly tweak configuration files. I am not one of those. Neo vim not compatible with my brain.

The languages

I use three languages interchangeably: Python, Julia and R. Just pick the best for the task. Can't stand programming language Talibans. Python is fantastic for data and file system interaction and to access c libraries like PyTorch, but its numpy is terrible. Pandas are old and not nice (use Polars). R is great for statistics and plotting, and its data.tables is nice, tidy is incompatible with my brain. Julia is the best for numerical programming. My risk website, extremerisk.org, runs on all three.

I once ported my risk library from R to Python. I was bored and wanted to learn about the numpy and pandas everybody was talking about. The number of lines increased by 50%, and execution time doubled, while the code was much less readable. One day, Pandas did one of its all-too-frequent breaking updates, and I had enough and converted the library to Julia. The number of lines fell by 50% relative to Python (25% relative to R), and execution time was a fifth. More readable than either. Faster to code. Super impressive. Now, I always use Julia for numerical programming.  

Aspirational languages 

I have briefly tried Rust and Zig and would like to learn them properly, but I suspect I will never manage to. If starting out again, would learn both. 

Learned js, was fun, saw no need for it. Now that we have a WASM version of DuckDB, it may be time to revisit. Could do a fun risk site.

The most and least impressive languages

I did my PhD in c and compile the code every year. Works always. Across multiple architectures and operating systems and decades. Super impressive. I wrote three papers with c and will never touch it again. Never. malloc+free gives me nightmares.

After c, went to c++, wrote 10 papers with it. That code does not compile, don't care. A terrible language. 

Operating systems

Started out with UNIX (ok, did IBM mainframes, and cobol, still recovering) and ran my PhD on a Cray Y-MP. Then had various UNIX workstations, followed by Windows and Linux (at the same time), and finally Mac. My servers, physical and cloud, run Linux. Every year, I try to run Linux on the desktop and always give up. Every few years, try Windows and all I have left to show for it is several old Windows laptops. Always gave up. 

My ideal combination would be Linux on an ARM Macbook. One can dream.

Text format 

I use Markdown when writing text. I did my last book, Illusion of Control, in Markdown (the previous 2 were written in Latex). When interacting with the editors, I used Pandoc to convert Markdown to Word and then back to Markdown. All my blogs, including this one, are in Markdown. 

Pandoc is great. 

Markdown would be perfect, except that it seems to have about a million dialects, all subtly different. Various software I use regularly is based on different dialects. Why a million dialects? Why?

Notes

There is no shortage of note-taking applications. I have tried so many. The cool kids say to use Obsidian or Logseq. I tried both and gave up. All are incompatible with my brain.

Except Bear. It's one of these apps that got worse after being upgraded in the name of progress, but I continue using it for notes, so it can't be all bad.

Websites 

Did my first websites in pure HTML, then WordPress. After being hacked several times, never again, and moved to a static site generator (SSG). Wrote my own (awful), then Jekyll (not nice), now Zola (pretty good, but not perfect). Since SSGs are so easy to write, opinionated people like to make their own. Am resting the urge. Zola is good enough.

Most hated tool

There is only one tool I truly hate, and that is Dragon Dictate, the only useful speech-to-text dictation software. I have to run it on Windows in Parallels, which is already unpleasant, and Dragon Dictate is buggy and has a terrible user interface. 

The Mac speech functionality keeps getting better, but it is miles away from Dragon Dictate. One day, something will allow me to delete Parallels, Windows and Dragon Dictate. 

Only software I cannot live without 

Every tool I mentioned so far can be replaced. If one of these pieces of software disappeared from the face of the Earth, never to return, would easily find a substitute. Maybe not happily, but certainly easily, and life would move on.

Except one. If that disappears, I will stop working.

I hate that software. It is super slow. Old. Archaic. Weird. With incomprehensible error messages. Weird. Awful. 

My life runs on it, and there is no replacement.

Latex


How the financial authorities can respond to AI threats to financial stability
What genuinely predicts financial crises?

Models and risk
Bloggs and appendices on artificial intelligence, financial crises, systemic risk, financial risk, models, regulations, financial policy, cryptocurrencies and related topics
© All rights reserved, Jon Danielsson,