Bathroom Renovation – August 2021

At the end of last month, for a few days, I had my bathroom fixed. It isn’t visible in the pictures, but the metal tub was rusting through around the drawn, and there were other issues.

The bathroom had a half tile wall around, a soffit over the shower where ductwork ran from the building heating system to the exterior vent, and a few other challenges.

The renovation gutted the bathroom down to the studs and the cement, where I discovered there was none under the drain…just dirt, and the source of one of the problems. There was leaking from the bathroom above, which had to be fixed as well.

The bathroom was original to the building, built in 1976, while the blue was a nice enough color, it made it hard to replace easily. I had no spare tiles. So, in replacement, I opted to only retile the shower stall itself in white subway tile(something easily to get for years to come), and just replace the sheetrock elsewhere, so it could be repainted in a few years as needed.

I’m too tall for the bathtub, so hadn’t really used it, so went with a shower pan and doors.

This is a small bathroom, so I also had the floor retiled in black slate, and replaced the toilet(which was last replaced in the 90s) with a dual flush toilet…which was illegal in New York City till 2010, and a mechanical bidet toilet seat. I previously had added a mechanical bidet attachment. While some people have issues with bidets…I save a lot of toilet paper by using it.

Mechanical bidet seats, or attachments work by splitting the cold water intake on your toilet. The fancier models may branch off your hot water, or may have electric features, but that was unnecessary for my purpose.

The biggest change to the bathroom that I’d wanted for years was electrical.For one, I have an outlet inside the cabinet over my toilet, which allows me to charge my shaver and electric toothbrush inside.

There was originally a single light fixture over the sink. That is gone, replaced by three ceiling lights. These are disc lights, which are the latest replacement for traditional recessed lighting. A hole is still cut in the ceiling, and a junction box placed inside to convert to the appropriate voltage, with the disc light being connected and clipped into place. This allowed for one to be inside the shower itself, which was always dark, one in the middle of the room, and one over the sink. They are also temperature adjustable, if you remove them and adjust a switch, if I wanted.

Finally, the switch for the exhaust fan was replaced with a timer switch with a built in humidity sensor, so it can be safely left on till the humidity returns to lower levels. I previously just used a timer switch, this gives it a little more intelligence.

I think the final result turned out well. Nothing I bought was particularly expensive, individually, and I tried to pick things that I thought would hold up. I even got them to run a network cable through the wall between the rooms on either side, for future proofing, before they sealed it up.

 

 

 

A Website Refresh And Dark Mode

I’m often adding features and functionality to my website. A location tweak, a new link, etc. But it’s been a while since I did anything major to the layout.

When I initially heard about dark mode support, I decided to wait until there was more support, then I just didn’t get around to it. It became a thing for applications to have dark modes, then dark modes that would activate based on a global system prference.

So, now my site, if you set your system to prefer dark mode, will show you a dark version of my site. Otherwise, it will show you a light version. I took a lesson from Jeremy Keith, who did this two years ago, and used something called CSS Custom Properties…another thing I haven’t used.

My WordPress theme is based on the original Twenty Sixteen WordPress.org theme. I ported back select improvements made from _s, the starter theme it was based on, as well as subsequent WordPress.org themes, such as Twenty Seventeen through the present.

There are a lot of other little tweaks I had to make in both this, and the plugins I develop for WordPress to support this. Style improvements, filters to add for additional functionality, etc.

It is still a work in progress, and I have other ideas and plans, but it is live. See if you can find all the other little tweaks.

Thinking about Ticket Auth

During this month’s Pop-Up event, as part of the overall topic of sensitive data we were discussing the continual challenges in getting a method of having private posts on one’s site. As a community, nothing has gained enough traction for adoption.

Last summer, a conversation on the most promising at the time, AutoAuth, prompted a new contender Ticket Auth. Ticket Auth turns the relationship in the other direction.

Let’s use our favorite two example people, Alice and Bob. Alice has a post on her site which she doesn’t want to be public. For most sites, the default is public. Alice wants to share her post only with Bob.

AutoAuth doesn’t get into the idea of how Bob, or the client Bob is using, decides he wants to get access to Alice’s post. Ticket Auth, by comparison, puts the onus on Alice. Alice, when she decides on her audience, sends a ticket to those she wants to have access. Bob has to have a ticket endpoint…the place he received tickets.

The ticket is a code that is available for a limited time, that can be exchanged for a longer term token to access the information. It is, essentially, an invitation you are free to accept or ignore.

In trying to develop more, this is a good place to start. Once we start sending and receiving tickets, we can iterate on this and figure out the next questions.

  • Can you ask for a ticket and how?
  • How can you give the ticket or the token you redeem to your reader or other client?

But first things first. Let’s build something.

 

 

Visiting the Ashokan Reservoir

On March 31, 2021, took another family drive. This one looping around the Ashokan Reservoir.

The route started out along State Road 55 past the Neversink Reservoir, and spurring off onto Route 55A, which goes along the other side of the Roundout Reservoir.

Spurring onto Sundown Road, we headed into the Sundown Wild Forest. The 30,100-acre Sundown Wild Forest covers a large swath of the southeast Catskills, including several ridges and 10 mountains over 2,000 feet. We had planned to stop by the Peekamoose Blue Hole, but missed the turnoff and only saw it from a distance. It is a depression in the streambed rock of the Rondout Creek, a unique natural feature formed by sand and swirling gravel in an ancient whirlpool.

The route continues into the Slide Mountain Wilderness, which encompasses more than 47,500 acres and is the largest and most popular wilderness area in the Catskill Forest Preserve.  This brought us into the Town of Olive, which is inside the Catskill Park. The Catskill Park is 700,000 acres, of which 287,000 acres are owned by the state as part of the Forest Preserve.

Heading through forest, we finally reached state road 28A and the Ashokan Reservoir. The Reservior, part of the NYC water system, and is the city’s deepest reservoir at 190 feet. It was built between 1907 and 1915.

The Ashokan Reservoir, of all the ones we’ve visited in the last year, has the most walking and biking trails. This includes the 11.5 mile Ashokan Rail Trail. While I’m always disappointed at the loss of rails, this was well executed.

We stopped to eat our lunch at the Woodstock Dike Trailhead. It was windy, and it is cold this year. But at some point in the future, we may return to walk the trail further.

The return trip looped around the remainder of the Reservoir, before cutting back to Accord, NY.  When my mother was a child, she stayed at bungalow colonies in Accord.

We passed through Ellenville on Route 209 back to our starting point.

Post Kinds for WordPress 3.5 Released

Post Kinds for WordPress version 3.5.0 has been released…though I had to quickly go back because I forgot to add a PR that was sent in.

There are no fancy features in this version. It is a major version shift because it removes and rewrites several features. Specifically

  • Removes the Kind On This Day Widget, which is now in the new Tempus Fugit plugin.
  • Rewrites the rewrites…all the Kind rewrites are done much much effectively. This includes things like /kind/checking/2020, for example.
  • The media fragment script, which adds the timestamp to the URL when playing a video or audio file, is not enqueued on AMP loads, per a PR received.
  • Uses new features introduced in 5.5 and for which I added compatibility functionality in this plugin to improve the archive page descriptions. I also rewrite and improved what they say for multi-kind archives… /kind/eat, drink or such.

In the previous version, I had added automatic rewrites for /kind/food, which displays both eat and drink, /media for the watch, listen, play, and read posts, and /reaction for bookmark, repost, like, and favorite, allowing you to archive by topic.

I have more tweaks coming in future, but always moving forward.

Tempus Fugit Version 1.0 for WordPress Released

Tempus Fugit, my latest plugin, has been released. It is a split of several time based WordPress enhancements from other projects, something I intend to continue to iterate on.

  • The On This Day Archive pages, available at /onthisday and /onthisday/03/09
  • The On This Day Widget
  • All Date Based Archives now display in order from oldest to newest instead of vice-versa. If you are revisiting a day, it makes sense to do it in order.
  • Ordinal Days or Day of the Year functionality. Not only will /2021/03/09 work, but 2021/068 . You can also make this your permalink if you want.
  • It also adds the top level archives of:
    • /updated to show posts in order of last modified
    • /oldest to show posts in the order from old to new
    • /random to show posts in a random order.

All of these functions use functionality built into WordPress that isn’t normally public. I look forward to adding additional ways to enhance experiencing your website in different ways….because what your website always needs, as the tagline said, is more time.

Simple Location for WordPress 4.4.0 Released

Simple Location 4.4.0 was released early today, and I’m already working on 4.4.1, as there are things I’ve noticed in production that I did not in testing.

The smaller items:

  • Add MapQuest’s own API in addition to the existing OpenMapQuest Geo Provider, which is a hosted Nominatim.
  • OpenMapQuest and LocationIQ are now descendants of the nominatim provider, as they all use the same output format.
  • Add Pelias Provider. OpenRoute is a hosted instance of Pelias, so the OpenRoute class inherits its workings from this class, but allows for using a self-hosted Pelias provider, though I didn’t test that.
  • Fixed an issue with the Google geo return.
  • Reviewed all geolocation APIs and updated the returns.
  • Standardized the country codes returned on all APIs to the ISO2 2 letter country codes.
  • Standardized the addition of region codes, special casing US and Canada.
  • Added a Home Country setting to allow omitting the home country from location displays. Example: If you live in the United States, it won’t say New York, NY, US. It will just say New York, NY.
  • Support generating street addresses for countries where the house number appears after the street name, instead of assuming it will always be before.
  • Tried to put labels on the weather form fields for accessibility.
  • Added historic weather lookup to Micropub enhancements.
  • Add a bulk action to lookup and add location(private by default) for multiple posts.

The biggest piece is the introduction of the location taxonomy. This is different from the proposed venue taxonomy. Location is a coarse location, whereas venue is a fine location.

The new Location taxonomy is designed with three levels. Country, region, and locality. Locality is the city, village, or town. So, the system is not designed to go down more than 3 levels. By default, this allows for archive pages like /location/us/ny/new-york for all posts in the locality or city of New York. Or /location/us/ny for all posts in the region or state of New York.

When you look up any location, it should automatically create the terms reflecting that location. This is where the problem comes in. Despite my attempts to standardize the returns from the reverse geolocation lookup, not only will the returns vary by provider(if you switch), but the return will not always match what you’d expect.

For example, Rome sometimes shows up as the Italian, Roma. So, I am already working to try to improve matching different versions of the same location. But this may require some manual action(merging, marking, etc not sure yet) to garden. But you have this same problem when trying to organize your digital music collection, or anything you categorize. The goal is to make the need as infrequent as possible.

What might be next? Other than 4.4.1, which will address some of the more obvious issues I discover as I use the feature myself(or from others), possible features related to this include:

  • Displaying the location taxonomy instead of the location text.
  • Functions to improve the archive experience, possibly if the theme is aware

Curious to see opinions as people have them.

Differing Results in Reverse Geocoding

My Simple Location plugin offers the option of several different reverse geocoders. All of the providers, like the weather providers, standardize the output into a modified array based on microformats properties.

  • street-address – house/apartment number, floor, street name
  • extended-address – additional street details
  • locality – city/town/village
  • region – state/county/province
  • postal-code – postal code, e.g. ZIP in the US
  • country-name – full name of country or country code.

The problem is, returns are not so consistent.  Not only will the same coordinates not always produce consistent results, but the fields always change. So, the logic to map to the above properties isn’t always consistent or easy to write.

The second part of the problem is display. How to actually display the information. This isn’t the same as traditional address issue, this is how to display it in context on posts.

For example, for the White House…

    • Nominatim – White House, 1600, Pennsylvania Avenue Northwest, Washington, Washington, D.C., 20500, United States
    • Mapquest – 1602 Pennsylvania Avenue, Washington, District Of Columbia, United States
    • OpenMapquest and LocationIQ – White House, 1600, Pennsylvania Avenue Northwest, Golden Triangle, Washington, District of Columbia, 20500, United States of America
    • Google – 1600 Pennsylvania Avenue Northwest, District of Columbia
    • HERE – 1600 Pennsylvania Ave NW, Washington, DC 20500-0005, United States, Washington, District of Columbia, United States
    • Bing – 1600 Pennsylvania Ave NW, Washington, DC 20006
    • Geonames – District of Columbia, District of Columbia, United States
    • OpenRoute – 1600 Pennsylvania Avenue NW, Washington, DC, USA, White House Grounds, Washington, District of Columbia, United States

Reverse geocoding…taking coordinates and returning a location name, will never be 100% consistent, But I decided I needed to do better than this, and am working to adjust to be more consistent. Unfortunately, with 9 different providers, it takes a while to figure out what I’m going to do. Redundancy is good, but has its challenges.

Simple Location 4.3.0 Released

Simple Location 4.3.0 has been released. This continues on the work released last week in 4.2.2.

Measurements in Simple Location have been stored in scientific units(celsius, meters, etc) since 2019, with an option to display in imperial on the frontend. With 4.2.2, the admin will now show in imperial units if you set the setting. This can be overridden on any page by adding the ?sloc_units=metric or ?sloc_units=imperial to the end of the URL.

4.3.0 introduces Meteostat and Visual Crossing as weather providers. Visual Crossing is the first provider that not only offers 1000 queries per day, but pay per use at a fraction of a cent after that. All of the other providers offering a free tier require a monthly fee after that point that well exceeds justification for the amount of posts even the most dedicated poster makes.

Meteostat is a historic only provider. It offers not only an API(key required), but the ability to download all data on a specific weather station(which requires no key). A future version of the plugin could download and cache the weather stations you use the most. For now, only the list of stations is bundled with the plugin, which it uses to determine the closest station.

The National Weather Service, the Met Office(UK), and the Custom Station plugin also cycle through lists of stations to find the closest one.

Expect more enhancements in the weather station category, with so many different ways to get weather stations data.

4.3.0 introduces historic weather support, for providers who offer this without a premium account. This includes Dark Sky(if you still have an API key), Meteostat(which only offers historic data), and Visual Crossing. If someone is paying for premium service on OpenWeatherMap and wants to talk me into adding this, send me a note.

The Fallback Weather provider feature introduced in 4.2.0, which allows for a secondary provider, will be checked if the primary provider does not offer historic weather.

Please remember, somewhere on your site, to provide attribution to the services you use. I’m off to backfill weather on my old posts.

Refbacks for WordPress Version 2.0 Released

The Refbacks plugin is now updated after nearly two years. The plugin doesn’t need much attention, it always worked it’s based on the Webmentions plugin, and we’d done some work over there that I brought over, including a new retrieval class, improved type support, etc.

The way I implemented Refbacks is essentially this. When someone visits a page on my website, and it has a referer string, it forks into the background a process to retrieve that page, verify it does link, and creates a refback comment. Semantic Linkbacks parses microformats and enhances that comment. It excludes links on the same site, as these are handled already by webmention or even pingback.

One of the things I’ve used this for in the past is to show mentions of my site on the Indieweb wiki.

Remembering Six Flags Atlantis

As part of my continual nostalgia series, today I’m continuing my Florida memories by remembering Six Flags Atlantis, below brochure is from my own collection.

Six Flags Atlantis was a water park that existed in the 1980s, and ultimately was demolished after damage from Hurricane Andrew in 1992.

Where the park once sat is a series of retail shopping establishments.