diff --git a/content/posts/clirenaissance/bash_prompt.png b/content/posts/clirenaissance/bash_prompt.png new file mode 100644 index 0000000..606748c Binary files /dev/null and b/content/posts/clirenaissance/bash_prompt.png differ diff --git a/content/posts/clirenaissance/editors.png b/content/posts/clirenaissance/editors.png new file mode 100644 index 0000000..7620598 Binary files /dev/null and b/content/posts/clirenaissance/editors.png differ diff --git a/content/posts/clirenaissance/fish_prompt.png b/content/posts/clirenaissance/fish_prompt.png new file mode 100644 index 0000000..b140580 Binary files /dev/null and b/content/posts/clirenaissance/fish_prompt.png differ diff --git a/content/posts/clirenaissance/index.md b/content/posts/clirenaissance/index.md index 14a7d96..5cf65ee 100644 --- a/content/posts/clirenaissance/index.md +++ b/content/posts/clirenaissance/index.md @@ -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. + + ## 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. - - +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 +[earlier](../nushell) + ### Concise and discoverable documentation @@ -173,7 +231,7 @@ config.--> - + ## 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| diff --git a/content/posts/clirenaissance/zsh_prompt.png b/content/posts/clirenaissance/zsh_prompt.png new file mode 100644 index 0000000..f2c4b27 Binary files /dev/null and b/content/posts/clirenaissance/zsh_prompt.png differ diff --git a/content/posts/ferrisSweepKeyboard/finished_keyboard.jpg b/content/posts/ferrisSweepKeyboard/finished_keyboard.jpg new file mode 100644 index 0000000..5a5bbe9 Binary files /dev/null and b/content/posts/ferrisSweepKeyboard/finished_keyboard.jpg differ diff --git a/content/posts/ferrisSweepKeyboard/index.md b/content/posts/ferrisSweepKeyboard/index.md index f18d082..5e56d2a 100644 --- a/content/posts/ferrisSweepKeyboard/index.md +++ b/content/posts/ferrisSweepKeyboard/index.md @@ -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 - - 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. diff --git a/content/posts/ferrisSweepKeyboard/keyboard_with_case.jpg b/content/posts/ferrisSweepKeyboard/keyboard_with_case.jpg new file mode 100644 index 0000000..113a682 Binary files /dev/null and b/content/posts/ferrisSweepKeyboard/keyboard_with_case.jpg differ