Saturday, April 02, 2022

Maintenance

My web site thomasoneil.com has grown, sometimes haphazardly, over the past 20+ years. I have 4,160 images on 217 pages. In addition to scenics, airplaces, spacecraft and celestial objects, there are images of 176 animal species. Writing an HTML file (see glossary below) to display just one image could be done with just one line of code, for example this could be a perfectly valid HTML file in its entirety: <img src="puffin.jpg">. No caption, just an image. Not very useful, but valid. Categorizing and presenting 4,160 images using just HTML code would be impossible. About 20 years ago as my image library was growing, I created an SQL database on GoDaddy and learned how to code SQL queries into PHP files to display the images and other information. There are different web sites that organize images, but by doing my own coding I have complete control. Within the limits of my knowledge and motivation, of course.

I just did a redesign of my web site, which seems to happen about every 10 years. I had to brush up on my PHP, SQL and CSS knowledge, which made for a good intellectual exercise I'm going to claim is better than Wordle (which I have never played). I used MS-Access at work years ago, and gained some portable experience working with SQL. For the PHP coding to access the SQL, I was self taught. Same with CSS. There are many internet examples for accomplishing the necessary tasks. Some are nothing but a headache, and some of them work. I'm about 98% done, with all remaining is updating automatic redirects from HTML pages to PHP pages. Tedious.

A couple things got me going on doing this redesign. First, I wanted to upgrade my PHP version on the GoDaddy server from 5.6 to 8.1. Since 5.6 is the lowest supported version, I figured at some point it would be deprecated and my site would cease to function properly. As I got into making the changes to my PHP code, I decided I may as well do a complete overhaul. Another reason was the new but persistent difficulty of Blogspot to consistently display inline images (i.e. images hosted on my GoDaddy server rather than uploaded to Blogger). Sometimes they display, and sometimes they show a broken image. With my Photo of the Year posts, that's 20+ broken images, so I decided to move POY from the blog to my site so the images would display. Anyway, new features:

  • I coded a new dropdown top menu and a standard footer. GoDaddy doesn't seem to support Server Side Includes where the standard header and footer are contained in separate files, so formerly I had to touch a lot of files to make design changes. I recently figured out how to do an "include" with PHP coding instead of SSI. This will make the site easier to maintain.
  • The "Destinations" menu item replaces "Galleries" and is now PHP/SQL generated rather than manually maintained.
  • There is a new "Years" menu item featuring "Photos of the Year" and links to a new PHP/SQL-generated page showing all photo destinations for a year.
  • The new "Aircraft, etc." menu item links to two new pages, "Celestial Events" and "Air Shows and Museums" in addition to the "Aircraft/spacecraft Index."
  • The new "Methods" menu item links to all my trailcam and remote image pages. I also put in a link to "Celestial Events" on the theory that I use different methods when shooting the sun than with other subjects.
  • Re-designed left menu for the home page. Still subject to change.
  • The large "Recent" image in the center of the page is now generated from recent photo uploads. I used to have to change this manually within the file, and it only rotated among five images. It will change depending on how many images I post, but I believe the current image pool is over 60.
  • The recent events list is now PHP/SQL-generated. It is the 10 most recent photo pages. I used to edit this list manually.
  • I've now been going this long enough to put in a "20 years ago on thomasoneil.com." This is in addition to the Pedro item from 1999. I don't know if there is an effective way to auto-generate this, so for now the selected items are manually maintained.

More pages are PHP/SQL generated than before, so will be easier to maintain. After fixing the old "journey" pages, the next major project would be to edit just about every blog post from the past 20 years to remove any inline images and replace them with uploaded images. I don't know if the sudden problem with inline images is the fault of Blogger or GoDaddy, but it really doesn't matter. Even if I accept that mission, it could take a while. I'm not under any illusion that very many people care, but it satisfies my OCD. Update: As of December 2023 the problem persists, so I decided to port most of my 400 blog posts for 20 years over to my own web site server with my own coding. Screw Google.

Examples of inline and uploaded images. If the first image is broken, that's the problem I'm having. If not, it just proves that intermittent problems are the hardest to diagnose and fix.

Broken image
Inline


Uploaded
    Glossary
  • HTML: Hypertext Markup Language. The basic language of the World Wide Web, created by the legendary Tim Berners-Lee.
  • SQL: Structured Query Language, a language for managing data.
  • PHP: Originally Personal Home Page, now PHP: Hypertext Preprocessor. A language which runs on the server and dynamically creates HTML to pass to the user's browser.
  • JavaScript: I don't use it much, but mention it here because, unlike PHP which runs on the server and is unseen by the user, JavaScript runs on the user's device in the browser.
  • CSS: Cascading Style Sheets, used in combination with HTML to format web pages.
  • MS-Access: Microsoft's desktop database application.
  • SSI: Server Side Includes. A capability to paste together several different HTML files (such as header, side menu, body, footer) into one web page.
  • GoDaddy: Company that tries to do funny Super Bowl commercials.
  • Blogspot: Blog site owned by Google. All hail Google, one of our technological overlords.

No comments:

Post a Comment

Blog comments are moderated. Don't bother posting spam.