I’ve been learning JavaScript (beginner level), and just started learning Vue framework. In this post, I setup a dev environment for Vue in my homelab Ubuntu server. I remotely access source files and the dev server from two laptops (chromebook and macbook) via Emacs over Tramp and ssh tunneling respectively. First, (take a snapshot of the Ubuntu VM and) update Ubuntu of the homelab server. sudo apt update sudo apt upgrade Install node.js node.js has the dev environment for js, incl. compiler and dev server. ...
Exposing ssh to the Internet
I’ve decided to expose ssh to the homelab server to the Internet. I had been afraid of doing so for months, but it’s about time and I think I’m ready. As a background, my homelab server already exposes web services such as blog and Immich via Caddy. Caddy and Immich are running in docker containers on Ubuntu on Proxmox. Before exposing ssh, I needed to fortify the server to protect it from bot and other malicious attacks. ...
How about a Chromebook?
Recently, I bought an old Chromebook from my daughter. She has a new M4 MacBook, and the old note PC had been left untouched for a year or two. It has a broken camera, and so she asked me only 25 dollars. Nice. I wanted to try the Linux(beta) feature. It is a Pixelbook Go “Not Pink” with Intel 8th gen Core i5 CPU, 8GB memory and 128GB SSD. Back then, I thought the $845 price tag was a little too high for a chromebook, and for her first PC. But she wanted the cute pink note PC from Google. ...
Duck & leek soba noodles for new year's eve
Happy new year! Many Japanese families have soba noodles on new year’s eve. We believe having soba on new year’s eve will bring us good luck. You know, soba is long > longevity kind of thing. We tried duck and leek (kamo-nanban) soba this holiday. On December 31st, I bought duck breast at a grocery store. It was $21@0.88lb (400g). First, I set Anova precision cooker at 58C (136F) degrees and leave the duck at the temperature for 3 hours. Duck should be put in a ziploc bag. ...
Roast chicken for Christmas
Happy Holidays! Every year on Christmas eve, I roast a whole chicken. Though an uncooked whole chicken alone is more expensive than a fully cooked whole rotisserie chicken sold at a grocery store, cost isn’t important on Christmas. Besides, it (usually) tastes much better if you roast one yourself. This year, I bought an organic whole chicken (4.2 lbs) at a nearby Whole Foods market at $19. Other ingredients: 3 carrots, 3 celery stalks and a medium-sized onion fresh herbs - thyme, rosemary (and sage this year) butter (25g) garlic 3-4 pieces olive oil (25g), salt and pepper On December 23rd or 24th, thyme and rosemary are in demand and tend to disappear from grocery stores. Last year, I looked for 3-4 grocers before I found rosemary. This year, I wasn’t able to find thyme, so I gave it a shot with this herb blend. The blend has mainly thyme, and a twig of rosemary and sage each. How convenient! I might want more rosemary, though. ...
How to address Emacs's slow startup time
Emacs has many great packages. If you add tens or hundreds of them to your init.el, you might find the startup gets really slow. If that’s happened, you would want to know what are the culprits of the slowness, and hopefully to address them. Find out slow packages To know which packages are slow if you use use-package, you can set in your init.el just after enabling use-package: (setq use-package-compute-statistics t) After restarting Emacs, you can run M-x use-package-report. It shows something like this: ...
Accessing files in homelab server
I have consolidated documents and other files in the homelab server such as: Memos and personal wiki pages (.org) Tax documents (.org, .pdf) Apartment leases (.org, .pdf) Holiday card-related info (.csv, .pdf) Calendar (.pdf, .py) Many files can be accessed from Emacs via tramp. But in some cases, I need local copies which either Emacs can’t handle well, need to access with local apps or need to access offline. An alternative and probably easier way is to make those files available by exporting a directory (ie, file server). But as files are in many directories and I don’t want to export everything, I haven’t set that up yet. ...
My Emacs config (init.el)
Here are my current Emacs settings from ~/.emacs.d/init.el. First, I declare package repositories. (require 'package) (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/") ("melpa" . "https://melpa.org/packages/") ("nongnu" . "https://elpa.nongnu.org/nongnu/") ("org" . "http://orgmode.org/elpa/"))) (package-initialize) (when (not package-archive-contents) (package-refresh-contents)) Next is for use-package. It has been default since Emacs 29. I wonder if I still need this… ;; for use-package (unless (package-installed-p 'use-package) (package-install 'use-package)) (require 'use-package) (setq use-package-always-ensure t) (setq use-package-compute-statistics t) # to see packges that took long Appearance material-theme has been my favorite theme for some time now. It’s dark but warm, and easy on the eyes. ...
Import Google Photos data to Immich
A few months after I started using Immich, I decided to migrate all my google photos data to Immich. Immich is a self-hosted, Google Photos alternative. Google Takeout You need to download all Google Photos data with Google Takeout. Google Photos is already chosen on the linked page. Click Next > File type: .zip, File size: change to maximum 50GB > Create export. After a while, in my case a few hours, Google sent to me an email with a link. Clicked it, and downloaded all .zip files. My photos and videos were totaled just below 150GB. I didn’t know that I had this much. As my internet plan is slow at 100Mbps max, it took 3 hours or so to download the 3 big files. ...
Backup homelab server
In my previous post, I introduced my homelab mini PC and how I set it up. In this post, I’d like to show how I backup the homelab PC. 3-2-1 rule Have you heard of 3-2-1 backup rule/best practice? It’s: 3 copies, original + 2 backup copies 2 different media 1 offsite copy Some people say #2 is irelevent anymore. I’m not sure if having copies both in SSD and HDD matters, either. Anyway, I will make sure one backup copy in an external USB drive and another in cloud to achieve both #3 and #1. ...