A recent conversation got me curious about how people feel about writing command line applications in Java.
I knew that Java for many isn’t the first choice when thinking of building a CLI, but I was curious if people consider it an option at all. I started a poll on Twitter. Only 19 people participated, but the outcome was quite clear:
Java is a good choice to write command line applications
Option |
Votes |
Agree |
5.3% |
Disagree |
68.4% |
No way, are you crazy |
26.3% |
If you asked me several years ago I’d have had a similar reaction, but in 2022 I’m not so sure anymore.
Thursday, January 27, 2022
A while ago I damaged my old tablet and got a Remarkable 2 as replacement. One of the use-cases for my old tablet was reading science papers. The remarkable can read PDFs and EPUB files and with a 10.3” screen it’s one of the larger eink devices on the market.
Computer science papers often use a 2-column layout, small font and large margins. It’s possible to read, but despite the screen size it wasn’t the most pleasant experience. It would be more convenient if we could re-arrange and re-flow the text.
Turns out we can.
There a dozen of statusline plugins for neovim: express_line, galaxyline, lualine, statusline, windline and possibly more. Each with different goals and feature sets. This article isn’t about any of them, instead we look at the built-in statusline
option and how you can use it to create a boring but functional status line.
Saturday, December 25, 2021
I am pretty certain that the whole web 3.0 story is a mind-bogglingly stupid idea, but I like to challenge my own views. I thought one way to do that is to explore how I’d build a web 3.0 twitter clone.
This post is this exploration. I’ll try to suppress my bias as best I can.
This article is for you if you either:
- Created an issue or bug report that boils down to “XY doesn’t work. Help me”
- Entered a chat room and wrote “XY doesn’t work. Help me”
- Trying to get help but nobody is answering
I started learning Haskell a couple of years ago. My usual reason to learn a programming language is because I have a concrete use-case - a project I want to contribute to. With Haskell it was different. My primary motivation wasn’t a concrete use-case, but instead I thought studying the language would be worth it for the sake of learning. It does things different than other mainstream languages and I wanted to become familiar with concepts I hadn’t seen before.
Writing a couple of iterations of “Hello World” applications wasn’t going to get me far. Utilizing it in a project at work wasn’t an option - instead I started using it for my ad-hoc and utility scripts. Before, Python was my go-to language for such things, but Haskell ended up replacing it. In this article I will show why.
In this article we’ll take a look at the circuit breaker mechanism in CrateDB.
CrateDB uses circuit breakers to prevent a node from running out of memory or stalling due to high garbage collection load.
In this post we’ll look at how CrateDB distributes GROUP BY queries.
This is the fourth post in a series about CrateDB internals.
I assume that you’ve read the first and second post of the series. You may also be interested in the third post, but it is not necessary to read it to follow this article.
This is the third post in a series about CrateDB internals. This time I’ll introduce the Query Then Fetch execution strategy. Similar to the previous posts, this focuses on the distribution aspect.
Make sure to read the first and second post of the series.
This is the second post of a series about CrateDB internals. In the first post I introduced relational algebra, the optimizer and outlined how the execution works on a very high level. In this post I’ll explore the execution of a simple SELECT
statement in more detail. This post focuses on the distribution aspect of the query execution.