Notes based on my struggles configuring AsciiDoc with latex math support.

Are you struggling with getting AsciiDoc to do what you want? You wrestle with configuring Ruby properly to get AsciiDoc to do what you want? You ask ourself why isn’t AsciiDoc more like Markdown?

Then you have had many of the same struggles as me. So I will try to convey solutions to problems and misconceptions I have had while they are still somewhat fresh in memory.

Pandoc Background

I have been writing books and documentation using Pandoc. With Pandoc you typically use a flavor of Markdown. Generating a book is like this:

❯ pandoc --defaults pdf-settings.txt


A comparison of the RISC-V vector extension (RVV) and ARM scalable vector extension (SVE/SVE2).

Microprocessor with vector instructions is going to be the big thing for the future. Why? Because self-driving, speech recognition, image recognition are all based on machine learning and machine learning is all about matrices and vectors.

But that is not the only reason. We have been banging our heads in the wall trying to eek out more performance for years ever since we semi-officially declared Moore’s laws to be over. In the golden old days of microprocessor design, we could simply double the clock frequency of the CPU each year and boom everybody was happy. …


I gave it a couple of tries Henryk, but think I must put this on ice for some time. It is such a controversial topic.

If I was to be entirely honest about what I thought about a lot of these things I would risk running the errand for racists and xenophobes. It is a delicate balance almost impossibe to find. If you sugar coat reality too much, they will accuse you of hiding the truth or being naive.

If you speak too plainly, they will likely quote you in their propaganda. Either way you lose.

I don't think we…


What is a Scalable Vector Extension? What does it mean to the industry and users? What is behind the jargon?

If you are a cellphone user, then you know ARM chips: they power your phone, and now they are powering the next generation Macs. They are also making major inroads into the server space.

We are at a cusp of a major shift in industry, the likes of which has not been seen in decades. Yes, this sounds dramatic, but x86 has been dominating the computing industry for decades, and is likely facing its biggest challenge ever with the rise of ARM.

This battle won’t be settled this year, but now ARM has released their next generation architecture ARMv9, which…


Ah yes my greatest sympathies. I have struggled long with these problems.

I would often sketch out solutions and draw diagrams. Try to identify common abstractions and then code something.

My solutions would usually rely on some abstract concepts which I would document, as they would be important to understand the overal solution.

Abstractions often allow you to reduce code duplication right, because you see similar patterns repeated. You extract that commonality as something abstract, which you can reuse.

But the problem I found was that people would not get this code. They would not be able to extend and…


Many on the left are increasingly getting vocal about the need for open borders where the poor are free to move to the rich West for a better life. But is this a good idea?

I like reading the stories of Indi Samarajiva, based in Colombo, Sri Lanka. He often writing about what is happening in the West, in particular the US from what he calls the “Global South perspective.”

I actually love that he is kind of in your face and takes no prisoners when writing. There is no need for second guessing on what Indi’s position is. And Indi, if you read this, I am also envious of your highly engaging writing style. I hope to get to your level at some point. …


Java is held as an icon of object-oriented programming and Go is often dismissed as a second-rate object-oriented language. But what if we all got it in reverse?

At university your first exposure to programming is likely Java. Your first exposure to object-oriented programming is thus also Java. A common way to teach object-oriented programming is to contrast it with procedural programming as done in C and Fortran. Object-oriented programming is thus rationalized as a way of organizing large programs. We are taught encapsulation, inheritance, polymorphism etc. We are taught a multitude of patterns like abstract factory, command pattern, visitor etc. You learn about UML. There is a huge cottage industry of best practices and philosophies built around object-oriented programming. …


What if all your power was generated from fossil fuels? Would it then be more environmentally friendly to drive a car with an internal combustion engine? No, and here is why.

A major obstacle to get people to get behind electrification of our transportation sector is that they are easily tricked by propaganda from the oil lobby. The argument is simple: Until all power is generated from wind and solar, you can carry on driving a gasoline car, because it makes no difference. Those EVs are just going to be charged up with power from fossil fuel plants, right?

This argument, however, is a cheap trick that relies on the fact that most people don’t grasp the importance of scale in an industrial setting. …


Semi-Automatic rifles are a favored weapon by mass shooters and terrorists. Let us look at the case for banning them.

I am a pragmatist. Whether semi-automatic rifles should be banned in your country or not depends, I think, on how frequent mass shootings and terrorist attacks happen and how important a role semi-automatic rifles play.

However, if you look at the US, they have been involved in pretty much every mass shooting in the US in the last years. One of the most favored semi-automatic rifles is the AR-15.

AR-15 style rifle. These come in many different configurations and styles.

To get a sense of how dangerous these guns are, consider this: In 2011 the right-wing terrorist Anders Behring Breivik blew up the government building in downtown Oslo, Norway where I…


Or maybe you don’t write Python, JavaScript or whatever, the way I butchered it in my writing. Here is a clarification.

One of the things I do in my writing is exploring different technologies and programming languages. I write about a lot of things I am not an expert in. I write about colonizing Venus.

Read more: Why Colonize Venus Instead of Mars

Does anyone seriously think I am a trained space engineer? I write about microprocessors architecture, stuff like pipelining, branch prediction, instruction decoding, you name it. Yet I am not a trained chip designer.

Read more: Why Pipeline a Microprocessor?

I am not your expert advisor on technical matters. I am a popularizer. I am a tourist in the…

Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

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