Category: tech

Pushing to Bitbucket vs Gerrit

This is totally for me in the future because I always bloody forget when switching to a Bitbucket project:

Bitbucket (creates the branch remotely, ready for you to make a pull request and add reviewers):

git push -u $(git remote) cool_branch_name

Gerrit (creates a review against the project_ci branch, whatever that is, ready for you to add reviewers):

git push $(git remote) HEAD:refs/for/project_ci

Setting up a raspberry pi photo viewer (with music)

I set up a Raspberry Pi photo viewer at work to display photos from members of the photo club.  Members were instructed to put their photos on a Google Drive location (accessible only within the company VPN) and then the viewer would sync down the photos at a predetermined schedule.  To get access to Google Drive, I used rclone.  To display I used ‘feh’, which was also used to put text indicating the name of the photo.

curl https://rclone.org/install.sh | sudo bash

rclone config

// choose google, team drive.  Follow the prompts

// To sync:
rclone sync -v motofoto:SoftwareKitchenPhotos /home/pi/Pictures/SoftwareKitchenPhotos/

// remember: that’s rclone sync -v <source> <destination>!  I have wiped out my local directory by syncing with an empty google drive folder!

// Setting up cronjob:
crontab -e

30 2 * * * /usr/bin/rclone sync motofoto:SoftwareKitchenPhotos /home/pi/Pictures/SoftwareKitchenPhotos/

// this runs the job at 2:30 every morning

Two scripts are set to launch on boot.  One plays music, the other starts feh.

The directory structure was such that from the root folder to be synced, photographers created a folder with their name and put their photos within it.  I requested that the photos have creative names.  Given this format, I could put a watermark on each photo in the bottom left by doing the following:

feh –recursive –slideshow-delay 10 –info “echo %F | rev | cut -d’/’ -f1-2 | rev | sed -r ‘s/[.].*//’ | sed -r ‘s/\// – /'”

I want to get the author name (lowest-level directory) and photo name (name of jpg file), strip off the jpg extension, and replace the directory separate “/” with a spaced hyphen ” – “.  To do this, I:

  • Get the path of the currently displayed photo “echo %F”.
  • To get the lowest level directory, I want to grab the directory and filename at the end.  I don’t know how many directories deep this will be, but if reversed, I know it will be the first and second elements (if “/” is considered as a separator: rev | cut -d’/’ -f1-2
  • I then want to reverse the result back, and strip off the .jpg from the filename (really, anything starting with “.”): rev | sed -r ‘s/[.].*//’
  • Finally, I want to replace the “/” with a hyphen, so it will be “Firstname Lastname – Name of photo”: sed -r ‘s/\// – /’

TODO: Starting photo viewer and music player on boot.

Server performance monitoring with “Netdata”

I run a couple of servers at work for my skunkworks projects, and I was trying to find a good monitoring tool to see how much stress I was putting them under.  I already use “monit” (https://mmonit.com/monit/), running on a Raspberry Pi, to monitor whether a server (and services running on it) is there at all, but for more detailed monitoring, Netdata (https://github.com/netdata/netdata) was the killer app for me.  It’s super easy to install, and once up and running you just go to <servername>:19999 to check the status.  If you leave it idle for a while, it’ll stop updating (nice!), which I thought was good because it does provide a metric ton of information.  The really nice thing is that because my servers host a bunch of Docker containers, I can see what *each container* is doing.  Too awesome.

Example shot for one of the containers:

oblivion