Strudel REPL

Hello, I wanted to share a really neat project that I stumbled upon recently - it is called strudel.

It is web based REPL for music production, and the language most resembles JavaScript, so it is suprisingly easy to get started and start making some really cool dynamic compositions.

Making Sounds

I made this sample just goofing around for a few minutes reading through the quickstart.

// You can run this in the REPL in Strudel
let so = sound("[<bd bd> <hh oh> hh hh?]*4").bank("tr909")
let hh = sound("<hh?.5 hh hh?.5>*8?.9").bank("tr909")
let cp = sound("[cp@4 - cp@4 -]")
let bb = sound("[bd sd]*2").gain(.7).lpf(200).orbit(3)
let squars = s("square!8").note("f# dd!2, bb a#@2, - d#/2")
let saws = s("sawtooth*4").gain(.8).note("gb!4?, db!4?, [f# d# a#]!2").room(.2)

// so
$: so.gain(.2)

// base
$: bb.gain(.2)

// clap
$: cp.gain(.1)

// high hat
$: hh.gain(.1)

// synth
$: squars.orbit(2).gain(.4).lpf(400).gain(.2)
$: saws.tremolosync("16").tremoloskew("<0 -1 -2>*2")
  .orbit(2,4,7).attack("<.3 .2 .1>*4")
  .juxBy(.2, rev).gain(.2)

I would not consider myself a particularly talented or informed person when it comes to music theory or music production, but this kind of thing that melds programming and art is something I find really cool and I hope you do as well.

SSH Port Forwarding & Tunneling

- 3 mins read

The most common use case for ssh is to securely access a shell on a remote systems. However ssh is also very useful for Port Forwarding (sometimes called tunneling if done in reverse).

I initially had a hard time wrapping my head around the difference between forward and reverse when it comes to ports and traffic. I have definitely searched how to do this and done it myself a few times before it stuck.

This weekend, I have been entrenched in the Arc Raiders “Server Slam” playtest.

img

After sinking some hours in Arc Raiders this weekend with some friends, I can see the why this genre of game (extraction shooter) are so good / addictive.

Here’s some initial thoughts:

Gameplay

The looting mechanics, shooting, upgrading and crafting are really satisfying. The guns are really unique and feel balanced. If you have to use the “free loadout” due to not having any materials to craft or buy a weapon - it does not feel like a huge deal. Each decision to stay or continue looting feels like it should – a gamble to get more loot vs returning safely to the elevator with what’s in your backpack.

Nobara Linux is a Fedora based Linux distribution by Glorious Eggroll.

This summary from the website is pretty good

The Nobara Project, to put it simply, is a modified version of Fedora Linux with user-friendly fixes added to it.

What fixes specifically?

This project aims to fix most of those issues and offer a better gaming, streaming, and content creation experience out of the box. More importantly, we want to be more point and click friendly, and avoid the basic user from having to open the terminal. It’s not that the terminal and/or terminal usage are a bad thing by any means, power users are more than welcome to continue with using the terminal, but for new users, point and click ease of use is usually expected.

Neovim Config

- 2 mins read

I remember when I initially tried Neovim a few years ago, I was mostly focused on rewriting my existing Vim configuration from Vimscript to Lua.

I ended up splitting parts of my config up into separate folders and lua files.

I separated my user configurations from plugin configuration like this:

~/.config/nvim/lua/
├── config
│   ├── keymaps.lua
│   ├── lazy.lua
│   ├── local.lua
│   ├── platform_specific.lua
│   └── settings.lua
└── plugin-config
    ├── cmp.lua
    ├── colorscheme.lua
    ├── fzf.lua
    ├── gitsigns.lua
    ├── init.lua
    ├── lsp.lua
    ├── nvim-treesitter.lua
    ├── oil.lua
    └── vim-fugitive.lua

3 directories, 14 files
  • The files in config/ are required from my init.lua
  • plugin-config/init.lua is required from my init.lua
  • The files in plugin-config/ are required from plugin-config/init.lua

Overall, this is a much cleaner way than a single file that is 100 or possibly 1000s of lines long. It also ensures each plugin has its own configuration file, which I really prefer.

This is an update post for the Mini PC build promised earlier in this post

I have had some question on “why” so I thought I would give some of the motivation for the Mini ITX form factor and it really boils to this:

Motivations

  1. I have always wanted to build a smaller form factor PC.
  2. I have never needed to use all the ports on my previous gaming PC builds.
  3. More lightweight and portable. It fits on my desk better.
  4. The price/performance was right (at least for the mobo/cpu)

Sourcing Parts (Shopping)

I ordered almost all the parts for this build off of Amazon. There are not any good PC part retailers around my area and most of the things that I bought had some kind of sale - which doesn’t really amount to much savings these days.

Starting Vanilla Emacs

- 4 mins read

A few days ago, in an kind of curious mood, I decided it would be a good time to give Emacs (and key-binds) another try for no reason in particular. I already use the readline key-binds in the shell, so I’m almost like half-way there or something, right?

Previous Attempt Using Vanilla Emacs

I had tried using vanilla Emacs before and the defaults were just bad enough to keep me away.

Hello, it is me again. Here today talking about getting repos off of GitHub and taking them elsewhere.

Any one of the great alternatives that exist out there like {GitLab, Gitea, Gogs, Bitbucket}.

In my particular case - I am messing around with self-hosting a Gitea instance, so that will be the focus here.

Setup

First thing, we will need to get access to the GitHub cli tool gh.

and you are off to the races.

It has been some time since posting and that is mostly because I have fallen out of the habit of writing (again), but I have been 10000% addicted to Balatro which is the only habit you realllly need to cope with the current state of the world. (Let me know if you need any tips to get to gold stake)

I am excited to say – as of this post :D – that this is no longer the case.

Hello, I am back again sharing a mostly useless, but very pretty and awesome CLI program called cbonsai

Repo is here: https://gitlab.com/jallbrit/cbonsai

It can be installed (on Mac) using

brew install cbonsai

This is the result:

bonsai_tree

You can also use it in screensaver mode cbonsai -S where you can see the trees being continuously generated live.

bonsai_tree_gif

Really cool and oddly satisfying.

It is well known that programmers enjoy trees, but this takes it to a whole other level.