Author: jay-s

  • Household technology: overhead door tweak

    An unreliable overhead door needed investigation.

    The house I live in is over 30 years old. In the main, it’s fine, but some things need fix-ups every so often. Such it was with the overhead garage door opener, which had become quite unreliable.

    I did some inquiries and came to suspect the problem wasn’t the controlling device, but rather the antenna. Realizing what it must be on the unit, I also observed that, from the driveway, it was behind the opener. It was somewhat amazing it had been working at all.

    Even re-orienting the antenna, it still wasn’t long enough to provide enough exposure towards the driveway. I stripped back some of its insulation, then twisted another wire onto it to lengthen it by perhaps eight inches. It’s pointing straight down, reaching to perhaps 75 inches above the garage floor.

    With that amount of extension, there seems enough antenna to pick up the signal from the controller: the garage opens and closes much more reliably, at least for now.

    Source:

    YouTube: Word of Advice TV: Garage Door Remote Not Working – 5 Most Common Reasons Why

    YouTube: Kite Army: Garage Door Opener | How to Extend Range

    -JS

  • Computer constructs: caches, part 0

    What is a cache? What are some types of them?

    The following is my understanding about caches.

    In French, cacher means “to hide.” However, in woods-person terms, “to hide” and “to store” are closely related, because storing food means hiding it from foragers. Hence, a cache is, functionally, a place to store stuff.

    In computer terms, a cache typically means a place where results are stored so the CPU doesn’t have to figure them out again. Rather, said responses can just be brought from storage immediately. Cache storage needs to be fast in order to effectively save time.

    Types of caches have evolved. They may be classified on how fast they are to retrieve from, as well as by what they store. In the web world, for instance, page caches store pre-built pages that are called for often. Object caches store answers to database queries, for instance, that are often requested. Opcode caches store parts of computer programs that are run often. In each case, the code has been refined into a finished solution, or closer to one, so the CPU doesn’t have to start from scratch to respond to a request.

    On a website that delivers complex content, such as a WordPress site might become, all three of the caches described above might be used. Typically, without a cache, the content may be delivered noticeably slower compared to when a cache is used. At high levels, caches can be calibrated to be even more efficient.

    Source:

    php.net: OPcache

    gxmediagy.com: “OPcache, Object Cache, and Page Cache: The Three Layers That Make Websites Feel Instant”

    -JS

  • WordPress: Plugins, part 0

    What one veteran WordPress user thinks about plugins, part zero.

    The following is my understanding, opinion, etc.

    I’ve been using WordPress since 2012. It’s a great platform. AI tells me that, as of today, around 43 percent of the web runs on WordPress.

    At surface level, WordPress is easy to load up and post from. Next, some users want to manage their content, enhance how it’s displayed, reorganize it, etc. Often, that’s where plugins come into play.

    I recall learning about plugins and using a few in my early days. They seemed great – one would load a plugin, then get access to surprisingly convenient utility.

    In my case, there were two such plugins, each offering something I could have done myself but only after a lot of programming. Both plugins were free, and offered such utility with minimal effort. I really enjoyed using them.

    One crashed fairly early on – it just stopped working. It didn’t seem to make much of a mess, nor did it affect many posts. What it did, I admit, seemed too good to be true. When it stopped working, I just continued without it.

    The other plugin was key for several in-depth posts. When it broke, it made a mess, since it was a presentation plugin. Once it failed to encode the content meant for it, the raw code was exposed. While it all seemed harmless enough, it was unsightly and made those posts useless. I stopped using that plugin, or any like it.

    Both that plugin, and the one that broke earlier, were free. Paid ones might have more and better support. However, I think a user would have to be quite attached to a plugin to keep using it after its breakage crashed their site.

    Nowadays, I typically use a cache plugin (more about that later), and sometimes nothing else. I’ve even had a cache break on me, giving an error message where my site should have been displayed – not fun, but I recovered from it.

    That said, many WordPress users seem to depend on and celebrate all kinds of plugins. WordPress is PHP-based, so the potential utility of a plugin is virtually unlimited.

    I plan to continue about WordPress plugins.

    -JS

  • Formats: XML

    What is XML? It’s a document format.

    The following is how I understand it.

    XML is used to format documents that need to impart specific information. Somewhat like html, XML places the information between tags that classify it.

    An XML document will typically start with a document declaration such as <?xml version=‘1.0’ encoding=‘UTF-8’?>. For that declaration only, the question marks serve to nest it.

    Next, the XML document needs what’s called a root element. All other elements will appear within the root element. The root element must be unique at that level; there can’t be two.

    Finally, each element, including the root, must have an opening and closing tag. Tags can be nested. An opening tag and closing tag look like this:

    <mood_tag>happy</mood_tag>

    So, a very simple xml document might be like so:

    <?xml version=‘1.0’ encoding=‘UTF-8’?>

    <the_root>

    <an_element>Element1</an_element>

    <another_element>Element2</another_element>

    </the_root>

    XML code can be checked for following the rules (aka validated) at the site JSON formatter: XML Validator.

    Source:

    ibm.com: XML Syntax Rules

    -JS

  • Web: Cookies, part 0

    Beginning ideas about cookies.

    Here’s my understanding about cookies:

    Cookies are bits of information stored on one’s browser. When you visit a site, that site may store one or more cookies on the browser. Then, when you return later, that same site can retrieve that information.

    Cookies can be retrieved to help the browser reload the page in the state you seemed to want it. They can also store information you entered on the site, such as a username and/or password. That way, as one navigates pages of the same site, one needn’t keep signing in each time.

    A third party advertiser on a site the browser visits may also be able to store a cookie on that browser. However, to my knowledge, a site can only recall its own cookies, not ones from other sites.

    Tracking cookies, as they are called, are used to find out other sites a browser visited. However, because a site can only recall its own cookies from the browser, tracking cookies only work when there is common ownership among the sites somehow. That could happen, for instance, if the same advertiser has ads on several sites the browser visits. In such a case, that advertiser might be able to retrieve cookies it put from all those sites, therefore realizing that browser visited them all.

    Cookies likely aren’t that much of a menace, but things can get a bit overdone sometimes, just on principle. I recall, with one cookie permission, a site mentioning its 841 partners would be sharing information based on cookies that would be placed on my browser. Seriously?

    Source:

    YouTube: Ask Leo! “What Are Tracking Cookies, and Should They Concern Me?”

    -JS

  • LibreOffice Calc: Day 0

    On spreadsheets, date and time calculations are important. What about numeric representations?

    Today I entered 2026-may-29 on a LibreOffice Calc spreadsheet, then pressed Enter. It self-converted to 2026-05-29. Next, I clicked “Format as Date.” It answered with 46171.

    I wondered how it was getting that number, so looked it up. Apparently, by default in LibreOffice Calc, Day 0 was Dec 30, 1899. Every day since increments the date by 1. Therefore, Jan 1, 1900, as a numeric date, is 2. Jan 1, 1901, 365 days later, is 367, and so on. (1900 was not a leap year, believe it or not. I was surprised, too; that’s for another post.)

    On spreadsheets, dates are normally compared with other dates, so the “zero reference” might not matter too much, so long as it’s consistent. However, Excel’s day 1, apparently, is January 1, 1900 (whereas LibreOffice thinks that’s day 2, it seems).

    Therefore, one wonders: how compatible are LibreOffice Calc and Excel spreadsheets? Well, it seems that a LibreOffice Calc sheet can be saved in xlsx format. What about changing the default start date? Apparently, one can do that as well.

    This post is spilling in numerous directions; I plan to follow up. For now, at least, it seems clear how 2026-05-29 becomes 46171 on a LibreOffice Calc spreadsheet.

    Source:

    LibreOffice 26.2 Help: Date and Time Functions

    Microsoft Support: DATEVALUE function

    learn.microsoft.com: …1900 is not a leap year as a century needs to be divisible by 400 to be a leap year.

    -JS

  • JavaScript: random numbers

    JavaScript is a versatile language, even for testing. What about its random numbers?

    The following is from my reference frame:

    JavaScript has Math.random() to generate a random number between 0 and 1. However, it would be reassuring if one could seed the random number generator. Yet, it seems that Math.random() can’t be seeded by the user.

    In connection, Mozilla suggests the crypto library: crypto.getRandomValues(input_array). The input_array needs to be a declared type, which was surprising to me: I don’t recall JavaScript being a typed language.

    The following lines capture the idea of how one might use crypto.getRandomValues():

    let input_array = Int8Array(10); //10 values

    crypto.getRandomValues(input_array);

    let a_random_value=input_array[3]; //for example

    JavaScript can be a fun language to experiment with:)

    Source:

    developer.mozilla.org: Math.random()

    developer.mozilla.org: Crypto: getRandomValues method

    developer.mozilla.org: Int8Array

    -JS

  • Electronic lifestyle: authenticator apps

    One GenXer faces the authenticator premise.

    For maybe two years, I’ve heard about authenticator apps. I don’t generally like to change if it’s not needed, so for a long time I didn’t use one.

    At the same time, I appreciated the advantage of two factor authentication: if someone gets your username and password, they still need to get something off your phone, for instance, to log in. Nowadays, a typical person always has their phone on hand, so a hacker penetrating two factor authentication seems a lot less likely than just cracking a name and password.

    For a long time I just would provide my texting number and get the second code for 2fa that way. Yet, some places don’t seem to want that. (Perhaps I’ll look into why in another post.)

    Yesterday I finally broke down and decided to try an authenticator app. The research behind it took about an hour, but downloading it, then putting it to use, took only around five minutes. So far, I’m impressed.

    I’m not going to say which authenticator app I adopted, because people have their own reasons for choosing one versus the other. However, I began with a very helpful video from Cyber Lab on YouTube: Best Authenticator Apps in 2025 (Top 5 Tested and Reviewed).

    Cyber Lab’s video, about twelve minutes long, goes deeper than I had been thinking regarding authenticator apps. It gave me some very useful perspective.

    In broad strokes, here’s my experience.

    • The app I went with, I downloaded from Google Play onto my mobile phone.
    • Later, I was logged into a site on a PC where it offered 2fa.
    • How a site offers to turn on 2fa, with an authenticator, seems to be that it shows a QR code one can scan. (A printed code may be shown as well, which one can enter manually.)
    • I opened my mobile phone, opened the authenticator app, then tapped that I wanted to add a new input.
    • Next, I scanned the QR code.
    • An authentication number then appeared on the screen for me to enter, which I entered at the site for 2fa.
    • Then, 2fa was set up through the authenticator app.

    After 2fa is established between the site and the authenticator, it’s simpler. When one goes to log in at the site with 2fa, one enters their username and password as usual. Next, the site sends the user to the authenticator app to retrieve a log-in code.

    That’s my experience, anyway. Like I say, I’m happy with it.

    -JS

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!