Today was a great day to be a duck again — warm-ish weather, the pond isn’t frozen over. So they’ve been enjoying splashing and swimming. But, this morning, I could only count five ducks in the pond. Checked around the yard, but I didn’t see the other duck. Then a ducky head popped up from underwater and … well, it looked like one duck was trying to drown another duck! Then something I read in a duck forum popped into my head — ducks mating can seem like the drake is trying to kill the female. Or it could look like the drake is trying to drown the female (which … IMO, seems a lot like “trying to kill”. So I’m not sure what exactly the person was trying to convey there!). Our ducks are about five months old and, evidently, have matured enough to start mating. Hopefully, we’ll be able to hatch some new ducks in the spring!
Month: December 2021
Linux: Copying Files and Preserving Timestamps
To copy files and keep the original timestamp, use
cp --preserve=timestamps /path/to/source.txt /path/to/destination.txt
Home Automation and Gardening
Something like 20 years ago, I tried to grow a plumeria flower in my apartment. I had a broad-spectrum light, plenty of heat, and plenty of humidity. But getting the light turned on and off at the right times wasn’t easy (especially if I was at work all day!).
This seems like a really good use for home automation — our home automation system tracks the sunrise and sunset times for our zip code. It’s possible to essentially cron “stuff” off of these times — e.g. get the birds ten minutes before sunset. I could easily track sunrise and sunset in Honolulu then have my light turn on at sunrise (or first light) and off at sunset (or last light). Voila — “sunlight” that runs for the proper duration every day.
Tar Quickref
Create a gzipped tar archive:
tar -czvf /path/to/file.tar.gz ./stuff-to-archive
List contents of a gzipped tar archive:
tar -ztvf file.tar.gz
Extract contents of a gzipped tar archive:
tar -zxvf file.tar.gz
Squid Custom Error
We’ve been having a challenge with Anya getting her school work completed. Part of the problem is the school’s own fault — they provide a site where kids are encouraged to read, but don’t provide any way to ensure this reading is done after classwork has been completed. But, even if that site didn’t exist … the Internet has all sorts of fun ways you can find to waste some time.
So her computer now routes through my proxy server. I’d set up a squid server so *I* could use the Internet unfettered whilst VPN’d in to work. It’s really annoying to get told you’re a naughty hacker every time you want to see some code example on StackOverflow!
While I didn’t really care about the default messages for my use (nor did I actually block anything for it to matter), I want Anya to be able to differentiate between “technical problem” the site didn’t load and “you are not allowed to be using this site now” the site didn’t load. So I customized the Squid error message for access denied. This can quickly be done by editing /usr/share/squid/errors/en-us/ERR_ACCESS_DENIED (you’ll need to make a backup of your version & may need to replace the file when upgrading squid in the future).