UtahRails.net Tech Talk
...being a log of web site changes, along with technical discussions of computer-related subjects.
Lessons Learned
PHP - CSS - HTML5 -- a description of how this UtahRails web site is configured and how it works.
Audio -- How I capture and convert audio.
Photos -- How I scan color slides, and color and black & white photo prints.
HTML Validators -- Online and stand-alone validators for web pages.
Testing At UtahRails -- Links to various test pages.
What's New on the Tech Side
[Most recent entry listed first.]
February 19, 2024
Site Map -- Added an HTML site map of all pages at UtahRails. This is an auto-generated site map that changes as pages are added or removed.
July 23, 2023
Robots.txt -- The robots text file has been rewritten and now includes better allow and disallow parameters. It also now has the location of the site map, out and away from Google Analytics and Google Search Console. Google was constantly throwing errors about missing pages, when in fact they were long-deleted, with redirects to replacing pages. Google was also throwing long lists of mis-typed web addresses, which is silly because anyone who makes a typographical mistake in their web addresses should be using an internet search service -- there are several that are not Google.
June 1, 2023
Table of Contents -- The JavaScript for the "Index For This Page" table of contents of most pages at UtahRails has been fixed. For the entire time that the script has been in use, since 2013, the validators and JavaScript linters (script error checkers) have given the script a failing grade. But without any skill to fix the errors, I figured as long as the script worked, there is no need to spend time trying to quiet the error checkers. The JavaScript has now been fixed with the help of Asham Khan in Pakistan by way of the Fiverr service. The fee was amazingly low, especially when considering the value to the overall health of the UtahRails website.
May 24, 2023
Google Analytics -- UtahRails is no longer being terrorized by the Google Analytics service. The small bits of code invoking this Google service (about 22 lines of code) has been removed from all pages at UtahRails. Google has made too many changes in their measuring processes and their reporting parameters, as well as the actual reports themselves, making the service no longer useful for small non-commercial websites. In early February Google made changes that revealed the accurate number of non-robot visitors to UtahRails, and the daily visits dropped from an average of almost 1100 visits per day, to a more accurate 50-100 visits per day, a number that is the total of visits to all of the 1900+ pages. UtahRails.net has always been, and will continue to be my own research notes about things I find interesting. It is a good thing if others find my notes useful, but tracking the number of visits is no longer important.
Google Search -- The Google Search Console, and the UtahRails.net participation in the service, is also broken and the verification code removed. Although the Google Search Console shows that the 1900+ pages at UtahRails are not being indexed, in fact any internet search returns pages at UtahRails.
May 10, 2023
Canonical -- I have added a reference link in the <head> section of every web page that designates the canonical URL for each page, in case the search engines get confused while they do their indexing. This is an "error" that Google Search has been complaining about for UtahRails for well over a year. The fix was a relatively simple bit of PHP coding that auto-generates the canonical URL as the actual page being viewed.
This is entirely behind the scenes and does not change the privacy of anyone using UtahRails.net, which does not collect personal data.
April 18, 2023
External Links - I have finished removing another batch of broken external links to other websites away from UtahRails.net. I also updated the site map for Google's search engine. I can't keep up with the broken links, redirected links, and server errors, so most external links have been removed. In many cases I kept the web address as plain text, which will allow interested persons to copy and paste the address into their browser.
March 31, 2023
Tables to Lists -- I have finished converting literally thousands of roster notes from using one- and two-column tables, to unordered lists and ordered lists. This task has been waiting in the wings for many years. With the completion of several photo scanning projects, it was time to get started changing the roster note tables to ordered lists. I soon developed a workflow that used extensive cut-and-paste actions, copying the data from table cells, over to list items. But as progress was made, slowly, I kept thinking that there had to be a way to automate the task. This was, after all, a computer and the internet, which serves to make our lives easier.
Using the cut-and-paste action, I soon found enough variation among the notes that using any sort of site-wide match-and-replace workflow, such as regular expressions, would be difficult. Regular expressions are strings of text and special characters that let you create patterns that help match, locate, and manage text. Regular expressions are popular among data wranglers to manipulate large amounts of data, but come with a steep learning curve. So, if regular expressions would not work, then I needed a script, such as a JavaScript, or a Visual Basic script.
Most of these scripting environments work while presenting web pages, and don't work with a desktop computer to change text files, with one exception being Microsoft's Visual Basic for Applications, or VBA. But I wanted to avoid the cumbersome Microsoft-only VBA route, preferring to use a plain text editor for these hundreds of PHP web page files.
I recalled using numerous scripts (called "clips") with NoteTab Pro, my text editor of choice, to create and edit the many changes to UtahRails in its early years. Unfortunately, although I use NoteTab almost every day, I had lost the skills of creating and using clips over the many years since my last use of them, 8 to 10 years ago. I joined an online discussion group of NoteTab clip users (the same one I had used in those early years), presenting my task and asking for some assistance. Within one or two days, a few answers came that helped me to clarify what I wanted and presented some suggestions about how to go about it. At the same time I received a private message from a user in Austria, who shared his suggested clips that did exactly what I needed. After some exchange of ideas about automating the task for entire files, or for entire folders as sets of open documents, I realized that there were numerous but slight differences among the table notes, and that I needed to change them one at a time, looking carefully for any obvious problems in the conversion.
Using the clips (scripts) in NoteTab Pro made the task go much, much quicker, with a completion period of mere days rather than six to eight weeks. Each conversion was simply a one-click change, with the script moving immediately to the next candidate within each file. Then, using the CSS HTML Validator web page validator (from AI Internet Solutions), I was able to find the errors caused by the variations in the code for the tables. At the same time I used the validator to find many, many broken links, and syntax errors across all the pages of UtahRails.
Here is some background of the change from roster-note tables to roster-note lists.
In a discussion among webmasters in March 2013, I asked for some advice about formatting the roster tables at UtahRails to make them responsive and more "mobile-friendly" for mobile users which make up about half of the visitors to UtahRails. One of the comments pointed out that I should not be using single-column tables and two-column numbered tables, when ordered lists and unordered lists, with styling, would do a better job of conforming to "best practices." The commenter noted:
"I'd say one of the bigger issues [with your site] is that a lot of content has been put into tables. Even those footnotes in the bottom are tables, even though it would make much more sense for them to be ordered lists."
I started doing locomotive rosters in 1973 (more here), and in the 1990s I was lucky enough to have several roster books published (a list is here).
The first online rosters on UtahRails were also some of the very first pages on the web site, and were real multiple-column tables with tabular data. To better match the roster published in my previous books and magazine articles, each of those rosters on the web site also has a "roster notes" section, with footnotes. Matching the look and readability of the published pages explains the use of these numbered or lettered footnotes as single-column and two-column tables.
There are hundreds of roster pages on UtahRails.net, each with tabular tables, and most have been there since 2000-2002. For later additions over the following 15 years, I simply used the older tables as templates. Originally, they all had individual HTML formatting, with percentages set for each column, and no CSS. In 2001 I began converting my web pages to using Cascading Style Sheets (CSS), but it never occurred to me to change the one-column and two-column tables ("roster notes") over to ordered lists.
While converting UtahRails to HTML5 in 2015, I spent several hours experimenting and testing the use of lists for roster notes, fiddling with the CSS for classes and divs, and margins and padding. I finally found the right combination of styling to make the lists look like the original table layout version, which in-turn matched the previously published-to-paper works. But truthfully, the amount of editing to convert all those tables was a bit too much, so unless I could figure a way to automate the process, the effort would have to wait for bluer skies.
But, in the interest of using best practices, any editing of specific parts of any of the rosters replaced the one- and two-column tables with ordered lists. And I occasionally converted some of the older roster listings using the cumbersome cut, copy and paste method.
The task of converting table-notes to list-notes is now completed. Now, for some numbers. There are just over 250 web pages with equipment roster listings at UtahRails (an index is here). And each page averages about 15-40 roster notes. There are roster notes for specifications of steam locomotives and passenger cars (Description), roster notes of a more general nature for groups of locomotives or cars (General Notes), and roster notes for individual cars and locomotives (Notes), usually giving specific disposition or other specific information. This process over the past week has changed 1,932 Description tables to lists; 3,277 General Notes tables to lists; and 2,403 Notes tables to lists.
October 7, 2022
Dead Links -- I have fixed and/or edited-out more than 100 dead links. The internal links have been fixed, and almost all the external links were simply removed. As I mentioned in early 2020, my goal now is to stop citing web links for source material, and instead make sure my information is properly credited, cited, and sourced, without web links. I again used the Xenu Link Sleuth, a free program that hasn't been updated since 2010, but still works very well. I also took the opportunity to make sure the website's HTML and CSS both validate properly.
October 6, 2022
The Project VII responsive (drop) menu has been removed, and replaced by a single "Show Menu" button that calls a stand-alone main menu page that duplicates all of the entries formerly in the drop menu. This new stand-alone menu will be much easier to maintain, without the hundreds of lines of previous HMTL, CSS, and JavaScript code that the drop menu required, as well as needing Dreamweaver to use the Project VII Drop Menu Magic extension. This is mostly driven by the fact that Project VII no longer offers the extension, and I found that its replacement was too cumbersome for me to understand and make use of, and included numerous features I am not interested in.
The top part of every UtahRails page now includes a Main menu button, a What's New button, and a Search button to search for anything only at UtahRails.net. The Search page was changed to make it mobile friendly.
I will retain the use of PHP as a server-based scripting language, even though I only have a single PHP include, that being the header that is common to 95 percent of the pages here at UtahRails.net. I had entertained converting to a single Dreamweaver template that would include the needed common header information, but with 1800+ pages to edit and convert (adding the page title and page description to every page), the task is simply unrealistic and not a good use of my time.
October 2, 2022
Usability Changes at UtahRails.net -- I have been fiddling, to see if I can do away with the responsive menu that lives at the top of all my web pages. My goal is to make UtahRails.net a standalone website, without any dependency including an internet connection. This includes doing away with PHP server-side includes.
I tried a straight HTM page to do away with PHP, after I have realized that the header I am using with PHP is only 78 lines without the responsive menu, and would be easy to add to all pages. The Google Analytics stuff takes up 20 of those 78 lines. Dreamweaver does a good job to find and replace on all pages, so any changes to the header would be relatively easy. I have already removed the PHP footer, which was a copyright name and date, which is no longer an issue since copyright data is part of the header.
I also added a new "Go To Top" floating button for the long pages. Scroll down a bit, and the button appears at lower right. This is mostly for the mobile users, which make up almost half of the visitors to UtahRails.net. The button is bit of 17 lines of JavaScript and is styled with CSS. The "Go To Top" continued to show when a page is printed on a desktop, until I added the '!important' instruction to the 'display:none' property for the #myBtn id on the utahrails-print.css page.
June 17, 2022
As of June 17, 2022, updates to UtahRails.net will no longer be posted to the UtahRails.net Facebook page. The work to produce duplicate entries to both Facebook and the UtahRails/What's New page is taking away time that can be better used on other projects. Also, the increasing level of negative political and religious comments on Facebook in general, as well as the obvious attempts at clickbait to drive likes and comments makes Facebook not a useful service. The third factor is that it is almost impossible to find information previously posted to Facebook; it is a terrible way to archive photos and information.
It started on March 8, 2015, when links to all "What's New" updates for UtahRails.net were posted to both Facebook and UtahRails/What's New. It was a useful service at first but it is no longer, especially for the past two or three years. All updates will continue to be posted to the UtahRails "What's New" web page.
May 12, 2022
Twenty-year anniversary; UtahRails has been online since May 12, 2002.
March 30, 2021
I tried updating the drop-down menus to the most recent version of drop-down responsive menu from Project VII (PVII). Their new Adaptive Menu Magic (AMM) is significantly harder to set up than the earlier Drop Menu Magic (DMM), which I had purchased in early 2015. It was a bit of a problem getting the updated PVII Extension Manager for Dreamweaver CC 2021 to work, but their tech support was able to help. It was simply operator error on my part.
Thinking that it wouldn't hurt to update the add-on, I purchased the replacement AMM. But after spending a couple hours trying to get my styles close to what they are in Drop Menu Magic, the function in AMM is simply not there. Or if the function is there, the user guide falls short in explaining it. I'll be staying with Drop Menu Magic, where I have already done the work of styling my menu. Too bad Drop Menu Magic is no longer available; it's a great add-on for Dreamweaver. I purchased the DMM add-on in 2015 at a very reasonable price. It's unfortunate that its replacement (AMM) falls severely short, at least for my minimalist web site.
After a couple hours fiddling with the code, I was able to get the DMM responsive menu working for the latest Samsung S21 and iPhone 12 mobile phones, as well as iPad-type tablets. Then, after exchanging emails with Project VII's Gerry Jacobsen, I was able to add 'Show Menu' and 'Hide Menu' to the three-line hamburger menu icon, the function of which has needed explanation to users who are less tech-savvy.
January 27, 2021
Changed all instances of indented quoted text from <blockquote>, to be a CSS-styled <div> using a vertical bar to denote quoted text. There were 2,055 instances across all 1,805 files at UtahRails. After testing a few for about a week, I made the change across the entire web site, which took Dreamweaver less than two minutes.
February 17, 2020
No more Facebook -- I have freed UtahRails from the tyranny of Facebook and OpenGraph. The use of Facebook and OpenGraph tags by UtahRails was getting numerous validation errors, which has become tiresome. I could never figure out any kind of generic specific property meta tags to use for a non-commercial, minimal web site like UtahRails, so I gave up and removed all of the applicable meta tags.
Dead Links -- I have fixed and/or edited-out as many dead links as possible, both internal and external (mostly external), which numbered into the hundreds when considering the dead and redirected external links. My goal now is to stop citing web links for source material, and instead make sure my information is properly credited, cited, and sourced, without web links. I used the Xenu Link Sleuth, a free program that hasn't been updated since 2010, but still works very well.
Site Maintenance -- I have fixed an embarrassing number of coding mistakes, i.e. mismatched tags and tags that were not properly closed. Most modern browsers fix such things before displaying the page, but it is sloppy coding that is easily fixed, although hard to identify. I again used the great program called CSS HTML Validator from AI Internet Solutions. It is a commercial program that produces easily understood reports of web page errors and warnings, and also reports broken and redirected links.
December 11, 2019
UtahRails.net is now a secure web site. We will never ask you for any information.
June 16, 2018
Added zebra striping as a visual aid to the roster tables, using the tr:nth-child(even) concept.
December 8, 2017
UtahRails now has a custom 404 Error page that properly displays when a page is requested but not available, either due to server or internet issues, or because a page has been removed completely. When a page's content is still relevant, the old page is properly redirected to the new page. This new custom Error page uses PHP programming and applies to all errors, not just 404 errors. Having a custom and fully functional error page is a feature that Google has been giving low-level warnings about for a while.
October 14, 2017
After setting up a new desktop computer, and installing the programs I still use, I discovered 11 web pages here at UtahRails with redirected links to non-existing web pages, i.e. broken links. I used Xenu Link Sleuth, which easily found several mistakes that had crept in over the past year or so since I last ran the link-checking program. All errors have been fixed. A new XML sitemap has also been uploaded, showing well over 1600 pages existing as part of UtahRails.
As mentioned above, a new desktop computer is now the major tool for UtahRails. The new computer is a Dell XPS 8920, with an Intel i7-7700 processor and 32GB RAM, along with a 500GB sold state drive and a 4TB data drive. I chose Windows 10 Pro as my operating system. This combination should keep me up and running for another 6 or 7 years. The last desktop was an HP Pavilion with an Intel i5-2400 processor and 8GB RAM, running Windows 7, all running from a single 2TB hard drive. The old HP worked very well for 6-1/2 years.
To maintain UtahRails, I purchased Adobe Dreamweaver CS3 way back in 2005. With the new computer and operating system I was concerned that I may have to upgrade to get Dreamweaver to run properly under Windows 10, and I was right to be concerned. To register DW CS3, I needed to use Adobe's Register server, which they no longer support, so I was unable to register the program. They offered a copy that does not require registration, but it is a limited version, with the most notable limitation being that simple Control-B and Control-I do not work to set text as either Bold or Italics. I paid a one-year subscription for Dreamweaver CC 2018, which they say has been rewritten from the ground up, including numerous changes in the menus and work flow.
To make my Project VII Drop Menu Magic responsive drop menu extension work, I used Project VII's own Extension Manager, since Adobe no longer supports its own extension manager. I installed the two needed P7DMM and P7Affinity ZXP files, and the drop menu dialog box comes up and the menu appears to work as it should.
About a year ago I set up a testing server using WAMPServer, and it also runs very well on the new desktop.
June 29, 2016
I used a validator for my robots.txt file, and learned that almost every line had an error due to the way the file was formatted. Now that I have taken away several (inadvertent) road blocks, the various search engines should find pages a bit easier.
March 29, 2016
While using an iPhone recently, I found that locomotive number groups on various UtahRails web pages, as well as other number groups such as passenger cars and cabooses, were displayed as clickable links to make a telephone call on mobile devices. This is called "Click To Call," a feature not needed here at UtahRails. The fix was to put <meta name="format-detection" content="telephone=no" /> in the HTML heading. This shuts off the click-to-call feature across the entire web site. I doubt I'll ever need it, but in case I ever want to actually have a clickable telephone number, I can add <a href="tel:+1-555-5555">+1 (800) 555-5555</a> for each instance within the web page.
February 2, 2016
For well over 10 years I have been using three asterisks in a row (***) as an end-of-page marker, as well as a way to separate sections of a web page. Well, it turns out that three asterisks are known as a dinkus, and do not mean what I thought they meant. To be sure, one of the meanings is as a simulation of what is known as an asterism, or three asterisks in the form of a triangle, which in-turn was traditionally used to separate chapters. But other meanings are more negative, and I'd prefer not to use such things. I replaced over 1,400 instances of the three asterisks at the end of each page, with a more generic three number symbols in a row (###). I need something at the end of each file to make working with the HTML code a bit easier. The other 200 uses have been replaced by proper use of headings.
January 30, 2016
In my own use of web pages, I like to open a new browser window or browser tab when I click a link. For me, it's the best way to not lose my place in my work flow, just to check some new potential source. And since I likely use my own web site more than my visitors, I added the code < target="_blank" > to the end of each link to force a new window or tab.
Back in 2006 when I converted to strict HTML4 and XHTML, the use of < target="_blank" > became invalid. The solution was to use some in-line JavaScript, < onclick="window.open(this.href);return false;" > to do the same thing. It was another case of group-think among web developers that JavaScript was/is the solution to everything.
Now that those folks have gotten bored and moved on to everything mobile ("There's an app for that."), JavaScript is in decline. In April 2015, I converted the entire UtahRails web site to HTML 5, and < target="_blank" > is again valid, so the JavaScript has been replaced. In the 1,544 pages on this web site, 481 of the pages had 3,703 instances of "onclick=". They are now back to their proper "target=".
December 20, 2015
As of December 20, 2015, What's New at UtahRails was again being posted to the dedicated What's New page, with an accompanying announcement to the UtahRails Facebook page.
All announcements made to Facebook since March 2015 have been moved to the What's New page.
Announcements between August 2010 and March 2015 were made to the UtahRails.net blog, which was retired in June 2015. All blog entries have been integrated into their respective pages.
October 8, 2015
Navigation Menu -- In the continuing effort to make the site mobile friendly, the top-of-page navigation menu has been changed to use a responsive menu that collapses to a single button on smaller screens.
After considerable research, and misguided attempts at creating my own, I selected Drop Menu Magic from Project VII, which is actually an extension for Dreamweaver. The top-level and sub-menus are easy to create and manage from inside of Dreamweaver, and the finished menu is completely responsive for mobile devices.
(2017 update: After upgrading from Dreamweaver CS3 to Dreamweaver CC, and to make my Project VII Drop Menu Magic responsive drop menu extension work, I used Project VII's own Extension Manager, since Adobe no longer supports its own extension manager. I installed the two needed P7DMM and P7Affinity ZXP files, and the drop menu dialog box comes up and the menu appears to work as it should.)
(2021 update: Adobe continues to tweak and "improve" Dreamweaver CC, trying to be everything to everybody. A recent change broke Project VII's Extension Manager. I discovered this after I tried to make a minor change to my drop-down menu. A few emails exchanged with Project VII's tech support brought an updated version of their Extension Manager, and the extension is working again.)
Additional changes include longer easier-to-see links, and more space between links, both to support the use of touch screens.
October 3, 2015
A recent review of this site's statistics shows that about 30% of visitors are on a mobile device, either a smartphone (20%) or a tablet (10%). (By late 2019, about 49% of visitors use mobile devices.)
UtahRails Logo -- As part of the effort to make UtahRails more mobile friendly, the UtahRails logo and logotype have been removed. These were both raster images, and I don't have the skills to convert them to scalable vector images.
Google Site Search -- To reduce the page-width, and to make each page more responsive for mobile users, the Google site search has been moved to its own 'Search' menu item. This function still works very well. Please use it to find items of interest at UtahRails.
Data Tables -- There are hundreds of data tables at UtahRails, in the form of roster listings of locomotives, cars and other railroad equipment. These data tables have rows and columns that do not easily convert to the small screens on mobile devices. Using a mobile device in landscape mode usually allows the data tables to display properly.
Some roster pages can be converted by using a mobile browser's 'Reader' mode, which strips out the formatting. Users with Apple devices and iOS can try the 'Reader' option in Safari at the left end of the address bar. Users with Android devices can enable the Chrome Reader mode icon, or install an app that does the same thing.
June 26, 2015
UtahRails.net Blog -- I have removed all references and links to the UtahRails web log (blog) at Wordpress.com. I started this service back in 2010 as a place to share links of What's New at UtahRails.net, and to write an occasional narrative about some new research. It was started in August 2010, and since that time, there was a total of 144 posted messages. But since its earliest days, the visitor count was seldom more than 3 or 5 visitors per day, and usually 1 or 2 visitors. The limited usage makes it hard to justify the $60 per year to keep the service ad-free, and to customize the appearance, and the service has been canceled. All of the content has been migrated to either new web pages, or integrated into existing web pages.
What's New at UtahRails is now available via a link to Facebook. A Facebook user account is *not* needed to view the UtahRails updates. For those who refuse to use Facebook in any form, let me know and I'll send a direct email.
June 12, 2015
Click Here -- One of the changes needed to make UtahRails a bit more mobile friendly, is to do away with single-word links to pages and other web sites. This includes hundreds of "Click Here" that I have used since the earliest days. I likely have missed a few, but most of my single-word links have been expanded to be more usable and make more sense.
(Crime 9 on the "10 Usability Crimes You Really Shouldn't Commit" - https://line25.com/articles/10-usability-crimes-you-really-shouldnt-commit/)
UtahRails likely can never be entirely mobile friendly because of the hundreds of roster data tables, which don't display very well in what is known as "responsive design," meaning web pages that display equally well no matter the size of the viewer's screen.
April 19, 2015
HTML5 -- UtahRails.net now complies with the HTML 5 standard. A bit of research found that named anchors as navigation aids (either as name= or as id=) are not recommended best practice for HTML 5.
One side benefit of removing named anchors, and applying IDs to the various structural elements, is that the table of contents on most pages now links to an actual id (#locomotives) rather than a generated but unique version (#heading_toc_j_3).
Because I used lots and lots of named anchors, I even learned some very basic 'Regular Expression' Find and Replace syntax to make numerous site-wide changes. I also used the generic bit of regex to find many site-wide mistakes that were common to many pages.
Over the years, by shear numbers and episodes of editing, I had introduced many minor and simple errors to what is now over 1500 pages at UtahRails. I began using CSE HTML Validator to help me validate each page as HTML5, and soon found the errors, as well as numerous examples of badly written code. The effort started on April 5th, and finally, after about two weeks, the cleanup was completed, with errors and warnings beat down to zero. (If you find a problem, please let me know.)
March 8, 2015
Facebook -- After some tweaking, I have started to use UtahRails' Facebook page as one method to show "What's New" here at UtahRails. In addition to the structured Google Search, which can take a few days to show changes, I'll try to keep UtahRails at Facebook updated to show updates and additions, including new photos, document images, and PDF files.
(As of June 17, 2022, updates to UtahRails.net will no longer be posted to the UtahRails.net Facebook page. The work to produce duplicate entries to both Facebook and the UtahRails/What's New page is taking away time that can be better used on other projects. Also, the increasing level of negative political and religious comments on Facebook in general, as well as the obvious attempts at clickbait to drive likes and comments makes Facebook not a useful service. The third factor is that it is almost impossible to find information previously posted to Facebook; it is a terrible way to archive photos and information.)
(It started on March 8, 2015, when links to all "What's New" updates for UtahRails.net were posted to both Facebook and UtahRails/What's New. It was a useful service at first but it is no longer, especially for the past two or three years. All updates will continue to be posted to the UtahRails "What's New" web page.)
January 9, 2015
Maps -- Since early 2011, I have had a dedicated web page for maps at UtahRails.
I created my first Google Map in November 2009 in response to a discussion with James Sonntag about the route of the Salt Lake & Utah in Salt Lake and Utah counties. I learned a lot about the details of creating and sharing maps using the Google interface. I especially liked showing where railroad routes were in relation to today's landscape.
Through 2010, my method of sharing was to add a link to each railroad's individual page, pointing to the Google Map showing the railroad's route. Soon, there were well over 20 maps to keep track of, and it was getting hard to access all the maps without clicking all over the web site. To make it easier, in January 2011, I created a separate 'Maps' web page to serve as an index page for all the maps at UtahRails.
When I first started creating Google Maps, I learned the tricks of structuring the web address (URL) for each map so that it displayed as a map, instead of a satellite image, and displayed with the proper zoom level to fill the screen. This link, which could be quite long for some of the maps, was then used on the UtahRails Maps web page as a link to each map.
(Index page of all UtahRails maps)
To create a map, I clicked on Google Maps, then I clicked on My Places, then on Create a Map. In its on-going efforts to improve itself, in early September 2014, Google began making changes to the "user experience" of creating maps. The changes made it easier to users to embed maps into their web pages and blogs. My Places was going away, to be replaced by My Maps. I received an email telling me that all of the maps in My Places would soon be converted to the new My Maps, and that links would be added to my Google Docs account.
I tried a couple test maps, and the workflow of creating a new map was surely different, with an apparent focus of creating maps using the touch screens on mobile devices. Doing nothing is always an option, and I chose to devote my time on other updates to pages at UtahRails.
Then, it happened. In late December 2014, all my maps showed up in my Google Docs account, and the links in My Places took a really long time to load, as did any of the maps linked from the UtahRails Maps index page. It became obvious that the extended time came from the links being converted on-the-fly by the Google server, from the structured URL that I was previously using, to a different address that appeared to be encrypted, but still pointing to the proper map.
The biggest change was that the zoom level was set to a default that made all the maps way too small. But clicking on the map in the Google Docs account brought up each map with its new appearance, and proper zoom level to fill the screen. The URL was also much shorter.
So, on the first Monday of the new year, I set aside the time to figure out the changes, and how to best take advantage of the new features, and new way of creating a Google Map. With well over 50 maps to attend to, I soon found that there was some serious cleaning up to do as well, fixing links to and from the each map and its associated railroad's web page.
It's all done now. An added benefit is that I was forced to learn the new workflow of creating and editing a map. The process is different, and I don't like the lack of control over many of the features, but it is what it is, and I'll do my best to take advantage of this still-free service from Google.
May 23, 2013
Google Search for recent changes -- A new feature has been added to UtahRails.net -- searching by a specified date range. While adding the new Table of Contents to the pages that need it, I've noticed that many suffered from a confusing mix of previous formatting and usability features. At the same time, I began doing minor updates, such as filling in the odd date here, and the bit of background there, and fixing spelling errors. I soon realized that I wasn't keeping up with any sort of "What's New"; there were simply too many.
So I started looking for a JavaScript or similar geeky bit that would search the entire web site for recent updates. While reading what seemed like unending forums and discussions all about scripts and programming, I noticed some comments about a new feature of Google Search. It seems that in 2009, Google released what it called Universal Search, which included the capability to search for a custom date or a custom date range, along with a way to sort the results by date. A quick search for what are known as search operators found JWebNet.net's full unofficial list of the various operators and what they do. (The JWebNet.net web site is no longer active.)
Using this information, I was able to build a structured Google search with just the first and last day of whatever month I wanted to search on. (In the searches, "tbs" = time-based search; "qdr" = query date range; "cd" = custom date; "cdr" = custom date range; and "sbd" = sort by date.)
I tried a couple real-time searches, such as an update in the most recent 24 hours (tbs=qdr:d), the past week (tbs=qdr:w), and the past month (tbs=qdr:m), but since UtahRails has a low priority, and the Google bot does not crawl my site every day, these real-time searches do not work properly. I found that a range of dates works just fine, and the link will find the most recent changes within a day or so. I can adjust the date range to be any range of dates I need, so I've chosen to search by each month, from the first day through the last day. The new searches have been added to the What's New page; give them a try.
(As of September 2022, the Google structured searches continue to work very well -- https://utahrails.net/whatsnew.php)
February 25, 2013
Table of Contents -- An off-hand remark by a family member, appreciating the usefulness of the Table of Contents on every page of Wikipedia, sent me down a road seeking "how do they do that?" Through the magic of Google searches, I soon learned what it would take to create a similar Table of Contents for pages at UtahRails. Many hours of experimenting has resulted in a very satisfying outcome; a working Table of Contents that the user can show and hide as needed, and which requires little more to add to the web pages than to insert three lines of code, and make sure the hierarchy of HTML heading is properly used. The Show and Hide function is especially nice.
(View screen capture examples before)
(View screen capture examples after)
(View the same page with its fully functioning table of contents)
For anyone interested, although I've done quite a bit with the CSS styling, and adding the show and hide arrows, the function comes from the generated_toc JavaScript by Stuart Langridge in July 2007. (May 2015 update: changes to the original script for better usability were made with the gracious help of Mr. Langridge.)
Additional site maintenance includes new a page header graphic, adding a bit of color, and learning to take advantage of transparent backgrounds.
November 2012
Digital photos -- Beginning in mid November, scanning became the focus of the learning curve of technology. There were several false starts and incomplete attempts of scanning printed materials, and converting them to PDF files that were keyword-searchable. Finally a workable combination was reached, and over 2000 pages of published books and magazine articles were scanned and converted to digital files. One of the side benefits was the discovery that scanning a published photograph at 300 pixels per inch, renders the photograph nicely zoomable, with very few artifacts of the dots-per-inch standard for publishing photographs to paper.
(Read my lessons-learned about digital photos)
August 30, 2012
Created a YouTube channel to share videos made from old Union Pacific television commercial advertisements. Over the next month or so, a total of 46 videos were converted from VHS tapes, and uploaded to YouTube. In October 2013, the videos on the UtahRails YouTube channel were removed at the request of Union Pacific Railroad.
(The UtahRails YouTube channel has been discontinued in February 2014.)
July 8, 2012
Using a combination of Google webmasters tools, UtahRails now has an Google-compatible behind-the-scenes sitemap. The tools pointed out numerous duplicate page titles and page descriptions.
Also, many broken links have been cleaned up, both internal and external.
May 12, 2012
Ten-year anniversary; UtahRails has been online since May 12, 2002.
February 17, 2012
Digital video -- Researching the best format for video, meaning the best uncompressed video format for long term, universal (cross-platform) usability. At this time it appears that the best first-stage is copying a VHS tape, or ripping a video DVD to .TS format. Then converting the TS file to an AVI format/container. There are lots of tools available, free and otherwise, for working with TS and AVI files.
February 5, 2012
The last photo was moved over from the Gallery photo album installation, to the SmugMug account. The weakness of the Gallery installation was the ability to customize the look. Just because I could, I felt that I should. Too much time was spent to make it look the way I wanted, a bit like a carpenter having to make a new hammer for each new job, and having to understand metallurgy at the same time.
- March 8, 2004 -- Installed Gallery 1.0
- May 3, 2006 -- Began using PBase for photo albums; not satisfied with look and user interface
- May 9, 2006 -- Upgraded from Gallery 1.5 to Gallery 2.1, which made use of a MySQL database (more things to learn and maintain)
- December 27, 2007 -- Made last changes to Gallery installation; updated links in web pages to point to proper galleries
- January 10, 2010 -- Began moving photos to SmugMug account; stopped uploading to Gallery installation
- February 5, 2012 -- Last photo moved to SmugMug albums from Gallery installation.
- (June 20, 2014 -- Gallery support ended; download shut off; site put into hibernation)
Moving from Gallery to SmugMug meant that I needed the original scans, instead of the small 600- and 800-pixel wide images I was using in the Gallery installation. After all the hard drive crashes I have suffered through, in which I thought I had lost the original scans, I have been surprised at how many I've been able to recover from the 100 or so "backup" CDs. There were so many CDs that I never took the time to look at them, since 95 per cent of the content has been updated and added to, and therefore useless as backup. But in amongst the kibble, I found most of the original photo scans. They have all been copied to the primary drive, which itself gets backed up to two separate external hard drives. The CDs have all been disposed of.
(View the UtahRails Photo Albums)
January 15, 2011
Adjusted the URL addresses for the UtahRails Google Maps to point to the Map View of each map.
(Go to the UtahRails Maps page)
August 10, 2010
Moved the UtahRails.net blog from Blogspot to Wordpress. (As of mid-June 2015, after 144 entries, the UtahRails blog at Wordpress is being migrated to regular web pages.)
January 10, 2010
Set up a new photo album at SmugMug. I like the look of SmugMug and the way the site works. Plus the fact that I don't have to maintain "the man behind the curtain" like the Gallery photo albums.
(View the UtahRails Photo Albums)
December 1, 2008
Changed the heading used to print web pages from this site, which uses a special print CSS file.
November 20, 2008
Fixed 34 broken links, as reported by the Xenu's Link Sleuth broken links tool. Also fixed some HTML code that was not validating properly.
(Use Xenu's Link Sleuth broken links tool)
November 15, 2008
After one too many bumps in the road with Lunarpages.com as my web hosting service, I switched hosting services to Dreamhost.com. The major problem is the loss of the photo albums, but they can all be rebuilt. The site was down for over 24 hours, mostly due to an suPHP configuration setting that is not needed at Dreamhost. Except for some missing files that did not transfer for unknown reasons, all seems to be back up and running.
March 9, 2008
Changed the copyright notice to include a Creative Commons license. (This feature was removed in early December 2014.)
Fixed the Google Custom Search in the top menu so that it validates for XHTML Strict.
March 8, 2008
Fixed the broken positioning for the Google Custom Search in the top menu, and moved the "about" menu back up where it belonged, as a separate drop-down menu.
December 27, 2007
Completed several customizations in the Gallery photo albums. Also updated all the links in "What's New" to point to comparable albums for Gallery 2, rather than the original Gallery 1.
October 13, 2007
The Google custom search box was broken in IE-Win (too much vertical space between header and content). Fixed it by placing the nav and googlesearch divs inside a new menubar div. Safari is still broken, but not too ugly (too much space between menubar and header divs).
Now testing with Firefox-Mac, Firefox-Win, Opera-Win, Opera-Mac, IE-Win, and Safari. That's enough. Everything validates, so if these pages are broke for you, try becoming a bit more mainstream. Although I test with IE-Mac, its more for entertainment than anything else since most of the CSS is broken in IE-Mac anyway, but at least the links work. The so-called IE-Mac backslash hack does not work for me, and I don't care enough to do any more troubleshooting.
October 9, 2007
Added a Google custom search in the top menu. You can search the entire UtahRails.net web site for any word or number (like a road number or a builder number).
September 3, 2007
Rearranged the menu to show "Mining" and "Industries" in the Resources menu.
May 18, 2007
Rearranged the menu to separate the "Railroads" from the Resources. This was to allow more items in the drop-down menus.
April 24, 2007
Dreamweaver CS3 was installed to edit and manage the web site.
March 22, 2007
Fixed the UtahRails.net photo albums, adding a proper logo in the header, and fixing the width at 800 pixels to match the maximum photo size.
(In January 2007 an Apple iMac was purchased as the UtahRail primary computer. After struggling with the limitations of the iMac, it was replaced as the UtahRails primary computer in mid 2008 by a home-built PC.)
September 14, 2006
Updated the Sitemap by installing an auto generating script that I can run on a regular basis to update the sitemap. An added bonus is that the same script also generates an xml file that helps the search engines do a better job of finding all of the web pages here at UtahRails.net. [Update: the site map was removed due to difficulty in keeping it properly updated.]
August 8, 2006
A bit of an oops. The change in link appearance was broken in Firefox. It was a misplaced comma, and it is now fixed. I guess Internet Explorer is a bit more forgiving than Firefox.
August 7, 2006
Changed the appearance of links, from bolded to dashed, with solid underlines when mouse hovers over link.
May 9, 2006
Upgraded the UtahRails.net photo albums from Gallery 1.5 to Gallery 2.1. The preinstaller makes this pretty easy, as it downloads the compressed file into your selected server folder, extracts it, and installs Gallery. The only problem came with the initial setup of the MySQL database. This was my first database, so I had to figure out how my service provider, Lunarpages, had their version of MySQL configured.
May 3, 2006
Set up my photo albums at PBase.com as an alternative to what I thought would be a difficult upgrade of my Gallery photo albums. This was to take advantage of some great photos I had received of the construction phase of UTA's Frontrunner commuter rail, along with some photos I took myself on April 30. This was kind of a stop-gap measure as I had not yet been able to set aside the time to upgrade my own UtahRails.net photo albums. In addition to the Frontrunner construction photos, I had previously put some great photos by James Belmont of Utah railroading subjects on PBase.
February 3, 2006
Added validation logos at the bottom of every page to show that all pages at UtahRails.net now validate to World Wide Web XHTML 1.0 Strict standards, and to proper CSS formatting.
Added tracking by Google Analytics.
(Google Analytics canceled, May 24, 2023)
January 29, 2006
Done! The work needed to validate all pages at UtahRails.net to the current World Wide Web XHTML 1.0 Strict standard has been completed.
January 27, 2006
Work continues on preparing all pages to validate to the World Wide Web standards for XHTML Strict, which should make them enduring in their formatting and presentation for the next several years. This has been an excellent example of the need for clean coding in the first place. Our modern browsers are pretty forgiving when it comes to glossing over bad code, such as no closing tags, or the odd closing tag when there is no opening tag. The "Strict" variation is helping me to find and correct a lot of problems.
December 28, 2005
Added UP Roster Updates and Tech Talk (this page) to the What's New drop-down menu.
The validation process for XHTML 1.0 Strict has turned up several problems in the table structure, which is quite surprising after all these years that the roster tables have been available. The problems include missing closing row tags </tr> at some places, and missing opening row tags <tr> in other places. I guess our browsers are pretty forgiving when it comes to badly formed markup. Also, numerous instances of incomplete <p> paragraph tags and badly formed <i> tags for italics. Work continues, with all of the rosters and over half of the text pages, being completed.
December 17, 2005
A big concern from the validation process was that the width attribute was illegal in both HTML 4 and XHTML 1. All of the locomotive rosters use <td width="[some percentage]"> to keep the data columns readable. But I discovered that setting the white-space to "nowrap" forces all the columns to be whatever the data needs in that column. Of course, this also means that the Notes column will stretch way out to the right if there is a lot of text in that column. Using Dreamweaver, I have been able to set each <td> in a wide Notes column to have a class of white-space: normal, thereby allowing the wide columns to wrap within the 750 pixel width of the body. Works great.
Dreamweaver works great at setting the .wrap class to the wide table columns. It works when I insert a temporary internal style sheet at head of the file, which Dreamweaver senses; then when I select the entire column that needs to be wrapped, and right-click the selection, Dreamweaver presents me with a list of available styles, from which I pick "wrap". I then validate the file and fix any errors, then remove the temporary style sheet, and do a final validate. This is only needed for the tables with either the roster class or the bordered class, since the roster-note class is already set to wrap as part of the class. Done.
December 15, 2005
Work begins on fixing the code to allow proper validation as XHTML 1.0 Strict, using the W3C validator as the standard. This means lots of cleanup in the css styles and classes. They are all pretty minor, although I have found some surprises that the browsers seem to gloss right over since they are usually in Quirks mode to be backward compatible.
December 10, 2005
Removed the breadcrumbs feature. It did not validate for XHTML, which is my goal for the whole web site. Also, it really was not useful as a navigation tool since it reflected my directory structure rather than my navigation structure.
December 9, 2005
Completed the changes needed for the main style sheet to validate to World Wide Web Cascading Style Sheet (CSS) standards.
June 12, 2005
Adobe's Dreamweaver was purchased after it was recommended highly to me. I did the test drive, and it met my needs. Later experience has strengthened my satisfaction. The only problem comes from Dreamweaver's inability to generate links to specific named anchors in other web pages; a simple task that Microsoft's Frontpage excels at, and the sole task for which I now use Frontpage.
May 23, 2005
Completed a redesign of the web site's menu, from a full CSS left-side menu, to a new CSS top drop-down menu. The previous left-side menu, uploaded on May 7, had issues with the way Internet Explorer displayed the locomotive rosters, which are the most visited pages on the entire site. With the new top menu, the rosters now display properly.
May 7, 2005
Completed a redesign of the entire site, using CSS layout to replace the old table layout. If you use Firefox or Chrome, get Chris Pedrick's web developer extension and take a look at the source code and the CSS file. Now the work starts to get all pages to validate as XHTML. Let me know of any broken pages.
April 28, 2005
Completed a new left-side menu, wherein I replaced the old, bloated Java script, with a much cleaner unordered list with CSS style. This makes the page load much faster. It validates in CSS and in HTML 4.01, and works in Firefox/Mozilla and in IE.
March 21 through April 17, 2004
Completed reformatting of entire web site, using PHP scripting language. It all started with the initial use of Gallery as a server-side photo album. Gallery is a PHP application, and in order to get it to look like the rest of the UtahRails web site, I was forced to learn the very minimal amount of PHP, just enough to get it to do what I wanted. I soon saw the advantage of using PHP includes for a consistent look across the web site for headers and footers, and the horizontal menus.
May 12, 2002
UtahRails.net (http://utahrails.net) first became available as it own domain name.
December 25, 2001
Changed color scheme.
Minor site maintenance.
November 21, 2001
Changed formatting on all pages to allow use of cascading style sheets (CSS).
Added navigation bar at bottom of all pages, including this page. Most pages use a FrontPage shared border, but a few, like the roster pages, require their own HTML code due to special formatting considerations. The major pages also have their own coding to allow use of the black "you are here" feature.
November 18, 2001
Removed background image to speed loading in browsers.
August 5, 2001
Added a hit counter to all pages that did not already have one.
March 19, 2001
Reorganized site to allow use of FrontPage 2000 for web site maintenance.
October 30, 2000
The UtahRails.net web site first became available. From October 2000 to May 2002, the web address was via my internet provider's web service as part of my account.
###