linux
38 posts
-
See if your opencode session is still working in ChromeOS Overview
Running opencode in a ChromeOS Crostini terminal, you have to keep switching back to the window to know if the agent is still working. Desktop notifications only tell you when something finishes.
-
Preview local documents from a Linux AI agent in ChromeOS Chrome
A small agent skill bridges Crostini and ChromeOS so coding agents can open generated PDFs, images, and HTML in the Chromebook's normal Chrome browser.
-
up: One command to update all my AI tools
I use a lot of AI coding assistants — Claude Code, Gemini CLI, Codex, Cline, Qwen Code, Crush, and more. Keeping them all updated was a chore: apt upgrade for the system, npm install -g for Node packages, claude upgrade for Claude, downloading releases for gog... I kept forgetting one or another.
-
Fixing clipboard issues with Opencode in Byobu/Tmux over SSH on Chromebook
When using a Chromebook (Crostini) and connecting via SSH to a remote server, you might encounter a frustrating clipboard issue. Copy-paste works perfectly when running opencode alone, and it works fine when using byobu alone.
-
Deploy a NFS server to share data between JupyterHub users on Jetstream
This is an updated version of my 2025 tutorial on deploying a NFS server to share data between JupyterHub users on Jetstream.
-
Convenience script for system & CLI updates
I use a simple bash alias to keep my environment in sync with one command. It handles standard system updates and refreshes my core AI tools—the Gemini and Codex CLIs.
-
Deploy a NFS server to share data between JupyterHub users on Jetstream
This is an updated version of my 2023 tutorial on deploying a NFS server to share data between JupyterHub users on Jetstream.
-
Configure ssh-agent on Linux
I keep Googling this again and again. First, ssh-agent does not need to run on the remote server, it is the local agent which is forwarded over ssh to the remote server.
-
Deploy a NFS server to share data between JupyterHub users on Jetstream
This tutorial is a minor update of . Also consider that a more robust and low-maintenance way of providing shared data volumes is to rely on Manila shares provided by Jetstream 2, see the tutorial
-
Make for repeated commands
I often find myself repeat the same commands in a project, for example in Openstack/Kubernetes, but also when I need to interface with Docker (build/push image).
-
Renew letsencrypt certificate with NGINX
If you have a default domain already configured with NGINX, the easiest way to renew manually a domain is to temporarily disable your custom domain and then use certbot-auto renew the certificate.
-
Deploy a NFS server to share data between JupyterHub users on Jetstream
Important: This tutorial is obsolete, please refer to the new version from February 2023 In this tutorial I'll show how to create a data volume on Jetstream and share it using a NFS server to all JupyterHub users. All JupyterHub users run as the jovyan user, therefore each folder in the shared filesystem can be either read-only, or writable by every user. The main concern is that a user could delete by mistake data of another user, however the users still have access to their own home folder.
-
Inherit group permission in folder
I have googled this so many times... On shared systems, like Supercomputers, you often belong to many different Unix groups, and that membership allows you to access data from specific projects you are working on and you can share data with your collaborators.
-
Configure Globus on your local machine for GridFTP with XSEDE authentication
All the commands are executed on your local machine, the purpose of this tutorial is to be able to use globus-url-copy to copy efficiently data back and forth between your local machine and a XSEDE Supercomputer on the command line.
-
Software Carpentry setup for Chromebook
In this post I'll provide instructions on how to install the main requirements of a Software Carpentry workshop on a Chromebook. Bash, git, IPython notebook and R.