added images, wrote on good out of the box experiences.
This commit is contained in:
parent
7c5dbba18b
commit
18c969f56a
BIN
content/posts/clirenaissance/bash_prompt.png
Normal file
BIN
content/posts/clirenaissance/bash_prompt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
content/posts/clirenaissance/editors.png
Normal file
BIN
content/posts/clirenaissance/editors.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 255 KiB |
BIN
content/posts/clirenaissance/fish_prompt.png
Normal file
BIN
content/posts/clirenaissance/fish_prompt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -17,11 +17,16 @@ sed,,1974,c
|
|||
bc,,1975,c
|
||||
make,,1976,c
|
||||
vi,,1976,c
|
||||
bourne shell,,1979,c
|
||||
awk,,1985,c
|
||||
screen,,1987,c
|
||||
bash,https://www.gnu.org/software/bash/,1989,c
|
||||
zsh,https://www.zsh.org/,1990,c
|
||||
vim,https://www.vim.org/,1991,c
|
||||
midnight commander,,1994,c
|
||||
ssh,,1995,c
|
||||
curl,https://github.com/curl/curl,1996,c
|
||||
fish,https://fishshell.com/,2005,c/rust
|
||||
fossil,https://fossil-scm.org/home/doc/trunk/www/index.wiki,2006,c
|
||||
tmux,https://github.com/tmux/tmux,2007,c
|
||||
git,https://git-scm.com/,2008,c
|
||||
|
@ -115,6 +120,8 @@ led to a resurgence in development of command line utilities.
|
|||
Instead of just developing completely new tools,
|
||||
Ive noticed that people are rethinking and reinventing tools that have existed since the early days of Unix.
|
||||
|
||||
<!--TODO: add more here-->
|
||||
|
||||
## The lessons learned from the past
|
||||
|
||||
A large amount of the innovation in the area, I think, can be attributed to
|
||||
|
@ -144,15 +151,66 @@ better than bash. When starting fish for the first time, however, its powerful
|
|||
autocompletion and information rich prompt are front and center with no
|
||||
configuration required. Of course, fish still has the same level of
|
||||
configurability as zsh, it just also has sensible defaults.
|
||||
<!--TODO: insert pics of zsh command line without config vs fish command line without
|
||||
config.-->
|
||||
|
||||
<!-- look at helix compared to (neo)vim-->
|
||||
To demonstrate my point, this is the default prompt for zsh with no
|
||||
configuration. It *only* shows the hostname, none of the advanced featurs you
|
||||
can get out of a zsh prompt even without plugins.
|
||||
![zsh prompt, only shows hostname](zsh_prompt.png)
|
||||
Here is bash's prompt. It actually gives more info than zsh's, even though zsh
|
||||
can do more when properly configured.
|
||||
![bash prompt, shows hostname and current directory](bash_prompt.png)
|
||||
And here is fish's default prompt. It has a few colours, shows everything the
|
||||
bash prompt does, and additionally shows the git branch we are on.
|
||||
![fish prompt, has colours, shows hostname, current directory, and git
|
||||
info](fish_prompt.png)
|
||||
|
||||
Text editors are another great example of the evolution of out of the box
|
||||
defaults. Vim and Neovim both improved on their predecessors, but so much of
|
||||
that improvement is locked behind extremely complex configuration experiences
|
||||
and plugins. Heres four different terminal text editors with no configuration
|
||||
applied:
|
||||
|
||||
![vi, vim, neovim, and helix editors in their default
|
||||
configuration](editors.png)
|
||||
|
||||
Vi, (top left) is our baseline, and, as far as I can tell, doesnt actually
|
||||
support much for configuration. What you see out of the box is more or less
|
||||
whats there.
|
||||
|
||||
Vim (top right) greatly improved on Vi, adding things such as syntax highlighting, line
|
||||
numbers, spellchecking, split windows, folding, and even basic autocompletion.
|
||||
However, everything but syntax highligting is either extremely clunky or
|
||||
outright disabled without configuration. (for example, the earliest things I did
|
||||
when I first made a `.vimrc` was to enable indent folding, make some better
|
||||
keybinds for navigating windows, and adding a line number ruler to the side)
|
||||
|
||||
Neovim (bottom left) further improved on Vim, adding support for Treesitter and the Language
|
||||
Server Protocoll, but the out of the box experience is the *exact* same as vim!
|
||||
In order to take advantage of the LSP and Treesitter support, you have to
|
||||
install plugins, which means learning a Nvim package manager, learning how to
|
||||
configure LSPs, and configuring a new LSP for every language you want to use it
|
||||
with. (Or finding out about Mason and being OK with having multiple levels of
|
||||
package management in your Nvim install alone). Dont get me wrong, Neovim is a
|
||||
great editor once you get over the hump, I still use it as my daily driver, but
|
||||
so much of its functionality is simply hidden.
|
||||
|
||||
Then we have the Helix (bottom right) editor. Colour scheme aside, everything is
|
||||
just there. Helix doesnt have plugin support
|
||||
[yet](https://github.com/helix-editor/helix/discussions/3806), but it has so
|
||||
much stuff in core that, looking through my neovim plugins, pretty much all of
|
||||
my neovim plugins are in the core editor! (ironically, the one feature that
|
||||
helix is missing, [folding](https://github.com/helix-editor/helix/issues/1840),
|
||||
is a core part of neovim, albiet one that requires some configuration to get
|
||||
good use out of). Helix has a config file where you can change a huge amount of
|
||||
settings, but its an extremely usable IDE out of the box, thanks to having all
|
||||
of its features enabled by default.
|
||||
|
||||
### Friendly error messages
|
||||
|
||||
<!-- look at nushells error messages-->
|
||||
|
||||
[earlier](../nushell)
|
||||
|
||||
### Concise and discoverable documentation
|
||||
|
||||
<!-- look at zellij and helix and their built in keymap cheatsheets-->
|
||||
|
@ -173,7 +231,7 @@ config.-->
|
|||
|
||||
<!-- most of the new tools are written in rust and go.-->
|
||||
|
||||
<!-- rusts clap and gos cobra-->
|
||||
<!-- rusts clap and gos cobra, CLI argument parsing libraries, help with this.-->
|
||||
|
||||
## Appendix: the tools
|
||||
|
||||
|
@ -196,11 +254,16 @@ available, wikipedia otherwise, and sorting is by year first, then alphabetical.
|
|||
|bc|1975|c|
|
||||
|make|1976|c|
|
||||
|vi|1976|c|
|
||||
|bourne shell|1979|c|
|
||||
|awk|1985|c|
|
||||
|screen|1987|c|
|
||||
|[bash](https://www.gnu.org/software/bash/)|1989|c|
|
||||
|[zsh](https://www.zsh.org/)|1990|c|
|
||||
|[vim](https://www.vim.org/)|1991|c|
|
||||
|midnight commander|1994|c|
|
||||
|ssh|1995|c|
|
||||
|[curl](https://github.com/curl/curl)|1996|c|
|
||||
|[fish](https://fishshell.com/)|2005|c/rust|
|
||||
|[fossil](https://fossil-scm.org/home/doc/trunk/www/index.wiki)|2006|c|
|
||||
|[tmux](https://github.com/tmux/tmux)|2007|c|
|
||||
|[git](https://git-scm.com/)|2008|c|
|
||||
|
|
BIN
content/posts/clirenaissance/zsh_prompt.png
Normal file
BIN
content/posts/clirenaissance/zsh_prompt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
BIN
content/posts/ferrisSweepKeyboard/finished_keyboard.jpg
Normal file
BIN
content/posts/ferrisSweepKeyboard/finished_keyboard.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 MiB |
|
@ -3,7 +3,7 @@ title = "Building My New Keyboard."
|
|||
date = 2024-02-06T15:01:28-06:00
|
||||
draft = false
|
||||
[cover]
|
||||
image = "layers/layer0"
|
||||
image = "keyboard_with_case"
|
||||
+++
|
||||
|
||||
Ive been using a split keyboard at home now for several years,
|
||||
|
@ -17,8 +17,6 @@ Eventually, though, I stumbled upon the github page for the [Ferris Sweep](https
|
|||
|
||||
## The Basic Build
|
||||
|
||||
<!--TODO: insert pic of completed keyboard-->
|
||||
|
||||
The Sweep seemed simple enough that I could assemble it,
|
||||
and after doing some shopping around, I was able to source all the parts I needed for under $100.
|
||||
I ordered the pcb from JLPCB and the parts from [Keebio](https://keeb.io/) and [Lowprob.ca](https://lowprokb.ca/),
|
||||
|
@ -33,6 +31,8 @@ and finally soldered the switches in. (I used choc purpz, a bit of a leap of fai
|
|||
I did ruin one switch by letting a leg getting hot enough to melt the housing plastic,
|
||||
and desoldering it was unexpectedly difficult, but not every build can be mistake free, right?
|
||||
|
||||
![The finished keyboard](finished_keyboard.jpg)
|
||||
|
||||
Flashing QMK was uneventful, working exactly as the [QMK docs](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/sweep) for the Ferris Sweep suggested.
|
||||
I would, however, recommend flashing the micros _before_ doing any soldering,
|
||||
I had to take my micros out of their sockets in order to access the boot buttons.
|
||||
|
|
BIN
content/posts/ferrisSweepKeyboard/keyboard_with_case.jpg
Normal file
BIN
content/posts/ferrisSweepKeyboard/keyboard_with_case.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
Loading…
Reference in a new issue