diff --git a/app/assets/images/office.jpeg b/app/assets/images/office.jpeg new file mode 100644 index 0000000..cd48c64 Binary files /dev/null and b/app/assets/images/office.jpeg differ diff --git a/app/assets/stylesheets/main.css b/app/assets/stylesheets/main.css index 31cbe9a..72fac51 100644 --- a/app/assets/stylesheets/main.css +++ b/app/assets/stylesheets/main.css @@ -244,3 +244,7 @@ div.alert { border-radius: .5em; margin: 1em 0; } + +.fullwidth { + width: 50%; +} diff --git a/app/views/home_pages/index.html.erb b/app/views/home_pages/index.html.erb index 841181f..91741e4 100644 --- a/app/views/home_pages/index.html.erb +++ b/app/views/home_pages/index.html.erb @@ -7,7 +7,7 @@ systems through modern software engineering techniques.

Check out some of the articles I’ve written on <%= link_to "my blog", blog_posts_path %>, or read - <%= link_to "the latest one", @latest_blog_post %>.

+ <%= link_to "the latest one", @latest_blog_post %>. Go to <%= link_to "/uses", "/uses" %> for information on my setup.

Some of my personal projects:

diff --git a/app/views/home_pages/uses.html.erb b/app/views/home_pages/uses.html.erb index 0e1faee..fb5032e 100644 --- a/app/views/home_pages/uses.html.erb +++ b/app/views/home_pages/uses.html.erb @@ -1,29 +1,77 @@

/uses

-

This page is inspired by <%= link_to "/uses", "https://uses.tech" %>.

+

This page is inspired by <%= link_to "/uses", "https://uses.tech" %>. I won’t present every + boring detail of my setup, but anything I feel is interesting, unusual or I particularly love.

For a more or less complete config, check out my <%= link_to "dotfiles", "https://git.tsvallender.co.uk/tsv/dotfiles" %>.


Hardware

-

Incoming… about to build a new PC.

+ <%= image_tag "office.jpg", alt: "Photo of my office. A PC tower is on a desk next to a portrait monitor.", class: 'fullwidth' %> + +
+
PC
+
I use a custom-built machine. Building it myself allowed me to maximise what I care about + (CPU, RAM, fast storage) while leaving out what I don’t (integrated graphics are good enough + for me). It’s cased inside the beautiful <%= link_to "Fractal North", "https://www.fractal-design.com/products/cases/north/" %> case.
+
Monitor: <%= link_to "LG DualUp", "https://www.lg.com/uk/monitors/ergo-monitors/28mq780-b/" %>
+
I find the unusual aspect ratio of this screen almost perfect for software development; it + feels much more natural than a super-wide screen, but provides the added screen real estate + over a smaller or laptop screen. You can also display two inputs side by side, which is + occasionally useful.
+
Keyboard: <%= link_to "X-Bows Lite", "https://x-bows.com/products/x-bows-lite-ergonomic-mechanical-keyboard" %>
+
This keyboard is the best compromise I’ve found between a traditional layout and the more + radical ergonomic designs available. There are probably better keyboards out there, in terms + of ergonomics and efficiency, but they come with the downside of making it harder to use + other keyboards. The changes here are subtle enough they don’t make other keyboards + unusable, but effective enough to vastly improve the experience—particularly being able + to hit Control and Shift with a thumb (a particularly useful feature when I used to use Emacs).
+

Development environment

-
Neovim
-
The centrepiece
-
tmux
-
+
Editor: <%= link_to "Neovim", "https://neovim.io/" %>
+
One of the best investments of time in my career so far has been making myself familiar + with vi keybindings. Once they’re ingrained in your head, they make moving around in your + code feel natural and fast. Neovim adds to that foundation by providing a modern extension + language (Lua) to replace the… esoteric… Vimscript which has fostered a powerful plugin + system. Modern LSPs alongside innovations such as Treesitter give Neovim IDE-like power + while retaining all the benefits of a lightweight text editor.
+
Multiplexer: <%= link_to "tmux", "https://github.com/tmux/tmux/wiki" %>
+
I use only the small subset of tmux functionality that serves my needs, but it does so + exceedingly well. It allows me to run multiple applications in a single terminal emulator + and switch between them easily, run a persistent session over SSH, and + <%= link_to "pair remotely", blog_post_path("pairing-with-tmux") %>.
+
OS: <%= link_to "openSUSE", "https://www.opensuse.org/" %>
+
I’ve jumped around a lot in the past between different Linux distributions, and the BSDs. + Currently, I’m running openSUSE Tumbleweed, which is a rolling release that seems to do + a good job of balancing stability with bleeding edge software.
+
Window manager: <%= link_to "Hyprland", "https://hyprland.org/" %>
+
I’m a big fan of tiling window managers, which tend to just get out of your way and let + you work. Now that the Linux world is moving from X11 to Wayland, I’m using Hyprland. It + lets me move around windows with vi keybindings and adds just enough animation + to make things feel smooth and stylish.

Self-hosted

-
Wallabag
-
+
<%= link_to "Wallabag", "https://wallabag.org/" %>
+
In a similar vein to Pocket, or Instapaper: save articles to read later.
+
<%= link_to "Immich", "https://immich.app/" %>
+
Heavily inspired by Google Photos, Immich is by far the best open source photo + management system I’ve seen, with a matching mobile app.
+
<%= link_to "Forgejo", "https://forgejo.org/" %>
+
I run an instance for my personal projects, as well as one for work.
+
<%= link_to "Calibre-Web", "https://github.com/janeczku/calibre-web" %>
+
Takes a Calibre library of ebooks and provides a nice web UI for them, making them + easily accessible from anywhere.
+
<%= link_to "Radicale", "https://radicale.org/" %>
+
CalDAV and CardDAV server for calendars and contacts. Pairs well with + <%= link_to "DAVx⁵", "https://www.davx5.com/" %> for syncing on Android.

Other stuff

diff --git a/bin/setup b/bin/setup index 89e13be..820aa65 100755 --- a/bin/setup +++ b/bin/setup @@ -5,7 +5,7 @@ def setup system!("bundle check || bundle install") log "Dropping, creating and seeding development database…" - system!("RAILS_ENV=development bin/rails db:seed:replant") + system!("RAILS_ENV=development bin/rails db:reset") log "Dropping, creating and seeding test database…" system!("RAILS_ENV=test bin/rails db:reset")