i'm a serial #fediverse instance creator (and destroyer) and have been doing this since 2018. having said that, this instance We're Dreaming (https://weredreaming.com) is an attempt at having an instance with permanence.
my home is at https://ultramookie.com where i should be spending more time writing. and i'll always have another instance somewhere in the fediverse that will eventually fade with time.
Today's watch - restored 1960's Błonie. These watches were only made for 3 years between 1959 and 1962. I bought this one from a watchmaker in Krakow who specialises in restorations.
Retro white faced 36mm mechanical watch with minimal gold hour markers and delicate hands. Blue leather strap. Tiny lettering at the 6 hour marker reads "Made in Poland". The watch is on my wrist in a sunbeam. The light shines warmly off the curved perspex-like glass.
New F1 inspired watches. The Tudor for the Racing Bulls is 🔥 and the IWC for the Formula 1 movie's APXGP team with matching black * gold color scheme is very cool looking.
Just had the loveliest experience while getting my watch strap resized at Silver Phoenix in Bray. They’re a tiny, independent two-person jewellers – Jolita and Martin – and they took such care (Martin resized it three times and did a micro-adjustment and then undid it until we found the perfect fit).
In a world of faceless corporations you forget sometimes how lovely people can be.
So if you’re looking for jewellery, a watch, wallet or pen (or repairs/sizing/etc.), give them a shout and support a tiny local business that’s been going for five years now.
I call this nonsense host ‘Ghost’, for me it’s similar to a tape backup solution. Fairly simple concept, it’s an old Pi1 + external mechanical drive that sits dormant with its ethernet off. Once a month, at a random time and random date it enables the ethernet, spins up the drive and pulls data from the main server to ...
Sorry, I forgot to post the scripts. I'm a meathead electrical engineer so I don't use GIT or anything so here is the code dump. To summarize the setup's software:
cron to run the script that turns the ethernet on and runs rsync to pull data from the server. I have 12 cron entries for the various months/dates/times to run.
python script to monitor the button presses for manually running a backup or turning the ethernet port back on
bash script that runs the rsync job to pull data from the primary server
The backup script is fairly boring, just runs rsync and pushes the rsync log files back to the primary server. If it fails it sends me an email before turning the ethernet back off and going black.
#So here is my python code that runs the button press:
#!/usr/bin/env python
import RPi.GPIO as GPIO
import subprocess
import time
from multiprocessing import Process
#when this script first runs, at boot, disable ethernet
time.sleep(5) #wait 5 seconds for system to boot, then try and disable ethernet.
subprocess.call(['/home/pi/ethernet_updown.sh'], shell=False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(22, GPIO.OUT) #controls TFT display backlight
GPIO.setup(23, GPIO.IN) #pull up or down is optional, the TFT display buttons have a hardware 10k pull up. Measure low tranisitions
GPIO.setup(24, GPIO.IN)
#watches the button mounted above the USB port, in the Pi's case.
def case_button_watch():
while True:
GPIO.wait_for_edge(3, GPIO.FALLING)
#wait 100ms then check if its still low, debounce timer
time.sleep(.100)
if GPIO.input(3) == GPIO.LOW:
#do something as it's a button press
print('Button is pressed!')
time.sleep(.900)
if GPIO.input(3) == GPIO.LOW:
#if the button is pressed for over 1 second its a long press. Run the backup script
print('Button long press (greater than 1 second), running an unscheduled backup')
subprocess.call(['/home/pi/backup.sh'], shell=False)
else:
#the press was greater than 100mS but less than 1000mS, just toggle the ethernet
print('Button short press (less than 1 second), toggling the ethernet')
subprocess.call(['/home/pi/ethernet_updown.sh'], shell=False)
else:
#do nothing as its interference
print('GPIO3 debounce failed, it was noise')
#watches the buttons in the TFT display
def TFT_display_button1():
while True:
GPIO.wait_for_edge(23, GPIO.FALLING)
#wait 100ms then check if its still low, debounce timer
time.sleep(.100)
if GPIO.input(23) == GPIO.LOW:
#do something as it's a button press
print('Button GPIO23 is pressed!')
GPIO.output(22, GPIO.HIGH) #turn the backlight ON
else:
#do nothing as its interference
print('GPIO23 debounce failed, it was noise')
#watches the buttons in the TFT display
def TFT_display_button2():
while True:
GPIO.wait_for_edge(24, GPIO.FALLING)
#wait 100ms then check if its still low, debounce timer
time.sleep(.100)
if GPIO.input(24) == GPIO.LOW:
#do something as it's a button press
print('Button GPIO24 is pressed!')
GPIO.output(22, GPIO.LOW) #turn the backlight OFF
else:
#do nothing as its interference
print('GPIO24 debounce failed, it was noise')
if __name__ == '__main__':
#run three parallel processes to watch all three buttons with software debounce
proc1 = Process(target=case_button_watch)
proc1.start()
proc2 = Process(target=TFT_display_button1)
proc2.start()
proc3 = Process(target=TFT_display_button2)
proc3.start()
#bash script that toggles the ethernet - if its on, it turns it off. if its off, it turns it on:
#!/bin/bash
if sudo ifconfig | grep 'eth0' | grep 'RUNNING' > /dev/null;
then
wall -n "$(date +"%Y%m%d_%H%M%S"):Ethernet going down"
sudo ifconfig eth0 down
else
wall -n "$(date +"%Y%m%d_%H%M%S"):Ethernet going up"
sudo ifconfig eth0 up
fi
Ghost Pi - an unconventional backup solution ( lemmy.world )
I call this nonsense host ‘Ghost’, for me it’s similar to a tape backup solution. Fairly simple concept, it’s an old Pi1 + external mechanical drive that sits dormant with its ethernet off. Once a month, at a random time and random date it enables the ethernet, spins up the drive and pulls data from the main server to ...