aboutsummaryrefslogtreecommitdiff
path: root/content/computer-setup.md
blob: 87555d80047eca297aecd12fe767ed8f77a920d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

---
title: Computer setup
draft: true
date: 2025-11-05
---
## Editors

Of course as a programmer, I use some editors.
My most used day-to-day are [VSCode](https://code.visualstudio.com/) and [Zed](https://zed.dev/).
VSCode extensions are really great, but when I need something really snappy, Zed is now the default.
It has also gained a lot of possibilities recently, with the Debugger and Agent tooling.

In the terminal, my default, when I can, is now [Micro](https://micro-editor.github.io/).
It is easy to install, configurable with highlighting for many languages, and has intuitive default bindgings.

I have a few very specific editors for some use cases, even if nowadays many extensions provide support for other use cases, and in a very usable editor
- [Poedit](https://poedit.net/) is nice when working with translations, in Django for instance

## Postgres

I play a lot with PostgreSQL these days, so I collected tools.
My go to CLI is [pgcli](https://github.com/dbcli/pgcli): it is similar to `psql` in its interface,
but has nice autocompletion and colors. I tried a few IDEs, but in the end I always end up writing
queries in any IDE and running them via a CLI.

## Writing

I have been using [Obsidian](https://obsidian.md/) as a knowledge base, and I'm quite happy with it.
When I don't want to manage a "workspace", I still have [Typora](https://typora.io/) that offers a very pure experience. This is the core of my Markdown experience.

For more precise layouts, I use [typst](https://typst.app/).
It replaces Latex for me, and has LSP support in VSCode at least.
In truth, I haven't used it extensively yet.

## Terminal

I have used the Gnome terminal for a while, but now I'v settled on [Ghostty](https://ghostty.org).
It has a native looka and is quite performant, but I must say I don't know all the features.

## AI Tools

I have tries some AI-first IDEs, like Windsurf, but today I find CLI such as
[claude-code](https://www.anthropic.com/claude-code) and regular IDEs with
autocomplete and agentic mode just good. I don't known if I'm missing on something.

## Unix TUI

I find TUI/CLI are great for tasks you'd like to be very quick to do.
I replaced some aged tools by more modern ones:
- [ripgrep](https://github.com/BurntSushi/ripgrep) over `grep` (the syntax is simpler to me)

I use [hyperfine](https://github.com/sharkdp/hyperfine) for script benchmarks.
[ncdu](https://dev.yorhel.nl/ncdu) helps to interactively find disk usage and clean whole directories.

## Git

[Sublime Merge](https://www.sublimemerge.com/) has a great and snappy interface for staging changes. I find it much quicker to use than VSCode when many files are changed.
I used to use TUI to get this performance, but I don't need it anymore.

My alternative is to use [difftastic](https://github.com/wilfred/difftastic) to review
large intricate changes: this tool provides semantic diffing that shows language specific changes,
all withint the usual git CLI (`git add -p`).

There are also some git tips I sometimes need to find again:
- `git diff --find-renames --diff-filter=M origin/master` reduces file move noise when reviewing large refactors

I can also setup file specific diffing within the CLI:
- [sqldiff](https://sqlite.org/sqldiff.html) provides sqlite file diffs (add `**/*.db diff=sqlite3` in `.gitattributes`)

## Containers

I used Podman for some time, but I went back to Docker to remove some friction.

[lazydocker](https://github.com/jesseduffield/lazydocker) simplifies dynamic container management over
repeated `docker compose ps|stop` ...

[dive](https://github.com/wagoodman/dive) is a great tool to investigate why a container image is small or big.