Press "Enter" to skip to content

Month: December 2009

Globe Valves Suck

When replacing the leaky toilet gasket I was reminded of another problem said toilet has: the valve on it sticks, and doesn’t really open all the way. That is, once closed the valve is very difficult to open again, without shutting off the water, removing the valve stem, and reassembling it with the valve all the way open. When I last had this problem I contemplated replacing the valve with a new ball valve, but never got around to it.

Well, today I did. After purchasing a BrassCraft (made in Novi, MI!) sweat-on ball valve I desoldered the old builders-grade globe valve, cleaned up the metal, sweated (soldered) the new fitting on, hooked it up, and was content with how things worked. While they are good allowing one to adjust flow, I don’t feel that this is needed for toilets and other places where valves can stick in place after being open for years or exposed to weather, and I seem to regularly have problems with gaskets and seats corroding leading to valves that either don’t shut off or won’t open all the way.

I also replaced the gasket on the other toilet today, and thankfully that valve worked just fine. I may replace it as well, but the effort required to drain the house to a few feet below the floor may preclude this, especially as that toilet doesn’t have any other problems.

Leave a Comment

Time Machine for… FreeBSD?

This week I finally got around to writing a new backup script for my webserver. I have it automatically pushing backups to a device at home, but in the past I’d only been doing a nightly rsync with --delete and periodic offline backups. The problem with this was that should something happen to my server and cause a data loss, but not be noticed before the next backup ran, the current backup would be modified reflect the now-compromised data, potentially causing massive data loss. Clearly this was a bad thing, and something had to be done.

A new backup scheme was devised and now that the new scripts are tweaked I wanted to present them here. rsync is still being used, but thanks to its glorious --link-dest option which makes hard links as it can, files already stored on disk (say, from a previous version of the backup) are reused, saving space. This is how Apple's Time Machine works, just without the nice GUI. The result is that I have a series of directories starting with backup.0 up through potentially backup.30 on the target, each containing a different backup. The suffixed number represents how many versions old the backup is. These versions are generally created once per day, but on days where the backup does not complete successfully the version is not incremented.

To start, there is a script called dailybackup.sh which runs once per day on banstyle.nuxx.net. This script pushes a backup to a Mac at home as follows:

  1. If needed, remotely execute rotatebackup.sh on the backup server. This will move backup.0 to backup.1, backup.1 to backup.2, keeping no more than 30 backups. The need to rotate backups is determined by the presence of backup.0/backup_complete. If there is no backup_complete file we know that the previous backup was not successful and that we should reuse backup.0.
  2. Create a new backup.0 and populate it with a backup_started flag file.
  3. Run the backup job via rsync.
  4. If the job completes successfully (exits with something other than 0 or 24), continue. Exit code 24 indicates that some files disappeared during backup, and as mail files (amongst others) tend to move and be deleted by users during the backup job, this is not a critical error for us.
  5. Remove backup_started and create the backup_complete flag.

Copies of the aforementioned scripts can be found here, if you’d like to look at / use them: dailybackup.sh · rotatebackups.sh

These scripts assume the presence of backup.0, a full copy of your backup, which you’ll have to create yourself before use. There’s also likely some necessary changes for your environment, most likely in some of the variables set at the top of the scripts, such as the number of days for which to keep backups and logs, the target hostname, SSH port, username, etc.

Leave a Comment

Heated Mattress Pad

Being a large corner room with two windows, my bedroom tends to be a bit cooler than the rest of the house. Combined with setting the house temperature back at night, this makes for a rather cool sleeping environment. I like it, but it’s a bit cold for Danielle, particularly right when getting into bed so today she picked up a Sunbeam Premium Heated Mattress Pad from Costco for $79 (or so). With controls to turn one side on at a time we hope that it’ll keep her sufficiently warm while not overheating me.

Leave a Comment

Good Bye, Afie

Afie, my parents’ / family’s dog since the mid-90s, is being taken to the vet at 3pm today. As my mom said:

Afie is going to go play in Doggie Heaven with the other happy, fun doggies now.

I’m half glad that I’m at work as it provides a bit of a distraction, but being sad will likely get in the way of thinking clearly. While I understand that Afie has been sick for quite a while and it’s likely time, I can’t help but be sad about it.

1 Comment

Toilet Gasket Time

After seeing this leak appear a few days in a row in the toilet off of my bedroom I believe that it is time to replace the toilet tank gasket. Thankfully this is an easy task, requiring nothing more than disconnecting the water supply, drying out the tank, unbolting it from the bowl, reversing all the steps after fitting a new gasket, and having a test flush.

I must remember to pick up two new gaskets tomorrow, as I shall replace both toilets’ gaskets at the same time. They were both installed at the same time (October 2001) and should wear based on age and exposure, but not use. Utilizing, cleaning, nor flushing the toilet should cause little wear on a gasket which normally sits just below the flapper and is dry save for during flushes. Thus as toilet usage patterns can be ignored when considering gasket lifespan, one can presume the other gasket is likely to fail soon as well due to simple effects of aging.

(Note that in presuming even wear between the two toilets I’m ignoring differences in the bathrooms such as airflow patterns, temperature, exposure to light, humidity, and the possibility of someone leaning back while on the toilet introducing stress to the gasket, as all of these have uncertain outcomes and would be much harder to quantify than simple age. And anyway, who really leans back against the bowl while sitting on the toilet? Things won’t come out right if one does that.)

Leave a Comment

SyncForegroundPolicy precludes ReportDC and ReportControllerMissing

In troubleshooting some Group Policy processing issues I attempted to set ReportDC(1) and ReportControllerMissing(2) to notify me, upon login, that a Windows machine was using Cached Credentials(3). After a brief period of confusion I found that turning off (or setting to 0) SyncForegroundPolicy, the registry key which holds the policy setting Always wait for the network at computer startup and logon, will preclude this the aforementioned notification. Thus when receiving the policy-based setting disabling SyncForegroundPolicy to ensure that the machine starts faster by not waiting for the network to come up before beginning policy processing, the diagnostic popup indicating the use of cached credentials does not work.

Note that the steps for setting the ReportDC and ReportControllerMissing values can be found in 242536 – User is not alerted when logging on with domain cached credentials.

(1) HKU\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\ReportDC, set to 1 (the default) to display the domain controller message.
(2) HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\ReportControllerMissing, set to TRUE to display the message.
(3) HKLM\Software\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon\SyncForegroundPolicy, set to 1 for enabled / wait for network. The opposite setting of 0 is disabled / don’t wait for network.

Leave a Comment

Bike Route?!?

On tonight’s bike ride I noticed new signs in River Bends indicating that a dead-end loop of trail (including all of the the newly paved stuff) is marked as a Bike Route. There is a sign leading into this pavement indicating so, and the sign above is seen on the way out. This strikes me as a bit odd, as there are no Bike Route signs at the entrances to River Bends, and were one to follow those signs expecting a way through, a rider would just find the trail looping back on itself through some rather rough sections.

I suppose I could take this as a good sign (ha ha!), indicating that the trail connecting River Bends and Utica together will be completed soon. Unfortunately, a past conversation that I had with the engineer of the new trail project indicating that the trail is to end there for the time being until funding to complete the trail is found. I suspect that the signs are part of the bigger project and this plan, and were installed simply so one could say that this segment is complete. Now, if only the remaining few-mile segments between Rochester / the Bloomer rail trail, River Bends, and Clinton River Park (behind Dodge Park) would be completed.

Leave a Comment