When you have to update the server
czardestructo @ czardestructo @lemmy.world Posts 6Comments 235Joined 2 yr. ago

This as my first thought. When running these commands in my pi1 or zero I go get a sandwich and come back an hour later
My personal portfolio website with resume for job hunting.
Permanently Deleted
Same standards, and some extras depending on how you do it, but now the burden is on a small accessory part (the removable battery) instead of the complete system. The biggest hurdle here is the EU say it needs to be tool free and done by the customer. That's a tremendous hurdle. Even today with cell phones that are considered repairable they require tools and don't meet this bar.
Bose made this but wireless 4+ years ago.
For what it's worth I recently moved from Wordpress to Grav and I'm not looking back. It's a web server and the editor is built in but it's all markdown and fast as hell. The file system is flat and easy to understand. I'm smitten.
Permanently Deleted
There are lots of ideas like this when you don't consider the battery certification process and the tons of safety standards. A stand alone battery like this requires it's own housing (needs to be thick so you can't crush the soft battery), certified connector for measuring it's temperature and getting power out, include it's PCM circuitry and be perfectly safe for whenever a customer might accidentally do to it. It's far from from trivial. I do this for a living.
Permanently Deleted
I agree and that's the point I was making, wireless ear buds are completely disposable and likely can't be anything but. Not sure why I got downvoted to hell.
Permanently Deleted
Anything is possible but it costs more money and makes the product bigger. I don't see how consumers are going to stomach a wireless ear bud that has removable batteries when the ear buds get large, uncomfortable and expensive. I guess we will see what the market bears.
Tplink Kasa WiFi AC plugs have the ability to turn the led off. I suspect the switches do too?
It integrates poorly in my car and requires a USB cable so I don't bother. I'm happier just using my phone screen.
Hope you had fun, beautiful island that is getting remarkably popular lately. Brits love it. I've been going there since I was a child and have seen a lot of changes.
This is 10 minutes from where my father grew up. Just got back. Did you take this picture? Did you visit?
I do ~/docker so I also have a docker-prototype folder for my sandbox/messing around with non-production stuff and I have a third folder for retired docker services so I keep the recipe and data in case I go back.
In case anyone cares here is my script, I use this for backups or shutting down the server.
#!/bin/bash logger "Stopping Docker compose services" services=(/home/user/docker/*) # This creates an array of the full paths to all subdirs #the last entry in this array is always blank line, hence the minus 1 in the for loop count below for ((i=0; i<=(${#services[@]}-1); i++)) do docker compose -f ${services[i]}/docker-compose.yml down & done #wait for all the background commands to finish wait
I have a folder that all my docker services are in. Inside the folder is a folder for each discrete service and within that folder is a unique compose file necessary to run the service. Also in the folder is all the storage folders for that service so it's completely portable, move the folder to any server and run it and you're golden. I shut down all the services with a script then I can just tar the whole docker folder and every service and its data is backed up and portable.
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
Does anyone see the attatched mp4 video? If not here is an imgur link.
Pi zero is many times less powerful than the pi3 but still perfectly fine for lots of simple tasks. Just takes forever to update.