No Free Lunch!
by John Yonan
It was a cold late spring afternoon in Bozeman, Montana. I was helping a good friend move from Bozeman back to California. I drove there in a moving van and, when we arrived, we were hungry and decided to have a nice lunch at an upscale trendy restaurant. The wait time when we got there was estimated to be over 45 minutes. Although our stomachs were growling, we decided to stay because the reviews of this restaurant were amazing.
Finally, after waiting only about 20 minutes, we were seated. It was a nice table with elegant appointments. We were situated where we could see nearly the entire restaurant.
By now, there were nearly two dozen people still waiting to be seated.
Our waiter approached and greeted us and asked for our drink order. He sped off to get our drinks and returned shortly to deliver them. We had looked over the menu and gave him our order. He walked back over to a Point-Of-Sale computer with a touchscreen. I watched him quickly tap in our order and he then returned with bread, butter, cheese and other sliced meats and condiments that would accompany our orders.
You are probably wondering why I am telling you all of this…please read on.
Shortly after the waiter left our table, there was a noticeable brownout (utility power slowly dipped and then returned to full power). The lights dimmed for about five seconds and then returned to full strength. Everyone noticed the brownout but did not give it a second thought and continued eating, drinking, talking and having fun. However, I noticed that the wait staff was showing signs of frustration, anxiousness and fear. It was then that I saw our waiter frantically punching a computer keyboard and aggressively tapping on a touchscreen monitor. The touchscreens were black. I knew their Point-Of-Sale system was offline and with the number of people in the restaurant, it was about to turn into chaos as the restaurant staff relied entirely on the POS system.
I had recognized the POS software when we arrived. It is a brand that I have installed and configured for a couple of my clients in the past. I decided to wait a couple of minutes before offering my help in case they were able to bring everything back online.
Even though they were doing their best, it was obvious that no one on their staff had any technical experience, so I excused myself from the table and approached our waiter. I explained to him that I was very familiar with the POS software and the hardware in the restaurant and volunteered to attempt to resolve the problem. He called over the manager and conveyed my offer. The manager was elated that I was willing to help.
I asked for the local admin login credentials for the POS workstations. The manager whipped out his cell phone and looked them up. He then handed me his cell phone and I wrote down the credentials and approached the POS station next to the bar. I powered up the computer and successfully logged in. I verified that my login was a member of the Administrators security group. I also noticed that this workstation was a member of an Active Directory domain.
I opened a command prompt and ran an ipconfig /all. I wrote down the subnet, gateway, DHCP and DNS server IP addresses. I was able to successfully ping everything.
I launched the POS software. It would not connect to the database server. I pinged the server and the pings were successful.
I then asked the manager to see the POS database server. We walked upstairs to his office. The server was on and was running Microsoft SQL Server. I requested domain admin level credentials and the manager once again looked in his cell phone. I wrote the credentials down and logged into the SQL Server.
I was in a room that was elevated above the restaurant and there was a large window through which we could see all the activity in the restaurant. It was obvious that there were angry customers complaining about their bills, orders were not coming out correctly, people waiting to be seated were being told to please come again. It was very bad for the restaurant.
I immediately went to work on the server. It appeared to be operating correctly. I surmised that the problem might be in the database, so I reviewed log files that pertained to the POS application database. A quick review showed a strange entry regarding a date in a table entry. I used SQL Server Management Studio to “walk” through the table identified in the event log. I also noticed that the event log entry correlated exactly to the time the brownout occurred. I knew I was onto something.
I scoured the table for any errant entry and miraculously found one. A date field had a malformed date entry. I edited the table to correct the date entry to be identical to the ones above and below in the table. I then restarted the SQL database.
Upon restart of the database, all the workstations began to establish connections and the POS system was back! The manager gave a sigh of relief and said he had to get right back to work.
I wasn’t looking for any thanks, and strangely, none was given. Within a minute, I was back at my table and all the chaos turned back to normal. We enjoyed a wonderful meal.
I had sort of expected either a free lunch or a hearty thanks, but neither ever arrived so we paid our bill and left. Anyone that knows me will tell you that I would help again if given similar circumstances, fully knowing that nothing would be given in return. But, also knowing that good engineers are motivated as much by praise as they are by compensation, I would have liked a thank you.
Bozeman is a wonderful town. I will visit again.
As for the restaurant, they still got a good Yelp review from me.
Another Experience…
Sometimes Karma is Good
by John Yonan
In October of 2018 I was traveling by car from Vancouver, Washington to Neenah, Wisconsin (where I grew up). It was about 2:00 am and I needed to find a hotel to get some sleep. I asked Siri on my iPhone for the nearest hotel and she listed a few. I chose the one that had good reviews and launched my Google maps with directions.
In short order, I was at the hotel. This was good because I was wiped out tired! I parked my car out front and shuffled into the lobby. The night supervisor greeted me and I asked if he had a room for the evening. He said that he did, but he could not provide me a paper receipt because his printer was not working. I said I did not care about getting a paper receipt and said he could email it to me. I gave him my credit card and he returned with my room key. Just then, a lady walked into the lobby and also asked if any rooms were available. The night supervisor said yes, but then added that the printer was not working and that she would only receive an email of the receipt. The lady explained that she did not have email and needed the receipt for her taxes. The supervisor did not know what to do.
I should have just stayed out of it, because I was so tired I could hardly function, but I spoke up and said “I might be able to fix your printing problem”. I explained that I have been a systems and network engineer for nearly 30 years. The supervisor was very pleased and the lady seemed encouraged.
The supervisor allowed me to join him behind the counter. I noticed the computer was running Windows 7. I confirmed the supervisor’s account had local admin privileges. Fortunately, I had used the same hospitality software deployed on this computer before. First, I looked to see if there were any print jobs in the print queue and there were none. Next I reviewed the printers installed on this workstation. There were several different printers and Windows was controlling its default printer. Next, I verified the type of printer where the print jobs were supposed to be going to. It was a HP LaserJet pro M402n. I confirmed that this printer was not directly attached via a USB cable, but rather, it was set up on the LAN with an ethernet patch cable. Therefore, I used the printer buttons to print out a configuration profile of itself. This provided two things. First, it verified that the printer worked, and second, the full config with IP address, subnet mask and gateway were printed.
I focused back on the workstation and reviewed all of the printers listed along with their port settings. I was looking for either an IP address of the printer or the WSD string (Web Services for Devices). None of the printers appeared to be pointing to the required target printer. I verified that the computer was on the same subnet (I probably should have done this earlier in the process, but I was extremely tired).
I asked the supervisor about the other printers and whether anyone ever prints to any of the other printers from this front desk workstation and he said no one ever prints anywhere else. He acknowledged that other printers are located on the property, but management prints to the other printers.
I ran a simple ping test and successfully pinged the printer from the workstation. I then decided to take the bold move of deleting all of the listed printers on the computer. I completed this task and restarted the workstation. After the reboot, the supervisor logged into the workstation and I again reviewed the list of installed printers. As I suspected, the printers I deleted had returned. Clearly, there was a Group Policy that automatically installed these printers upon login after checking if any printers were missing from the workstation.
I then decided to install a brand new printer driver. I launched a web browser and located the latest driver on the HP website. Upon installing the new driver software, the setup wizard immediately recognized the printer by its IP address. I proceeded with the installation. Once it completed, the new printer now showed in the list of printers. I then attempted a basic test print…and it worked!!!
I could now print to the printer, but still had to reconfigure the hospitality software to work with the printer I had just installed. I launched the software and the supervisor logged in. Since I had used this software before, I knew exactly where to go to manage printing from within the application. I saw that there were several printers listed. I removed all of them and added the one new printer device I had just installed. Finally, I asked the supervisor to generate any sort of print job from the software.
The supervisor maneuvered to a nightly report he had to run and (drum roll please…) it worked!!!! This whole process took only about 10 minutes.
The supervisor was extremely happy, the lady waiting in the lobby was able to get her printed receipt, and I was finally able to get some sleep. And…the supervisor gave me a large suite for the price of a single. I’m always happy to help, and the room upgrade was very much appreciated!