Category Archives: Uncategorized

English can be Funny

Semantics of the Comma

In many cases commas are optional with rules like the Oxford comma that attempt to bring consistency to the ambiguity. Yet there are cases where commas change the meaning of the sentence. For example, consider removing the comma from the following sentence:

“Let’s eat, Grandma!”

Conjunctions and Adjectives

The word “only” can function as a conjunction or as an adjective. Here’s a game you can play: place the word “only” anywhere in this sentence and see how it changes the meaning:

She told the Paladin that she kills Goblins.

Fixing the Oven

The oven in our house is a Jenn-Air model JJW 3830 about 5 years old with a touch screen interface. It recent showed an error: “F2E0 Keypad disconnected. Error enumeration 0x9.” The oven stopped working and said it needed service. It seems that modern appliances have so much delicate electronics they have become less reliable and serviceable.

I looked it up and this thing costs $7,200 ?!?! WTH !?! I couldn’t believe my eyes !?!? For that price, there is no way I’m replacing this thing before I at least try to fix it.

Before diving into the repair I did a little research. A web search on this revealed that the error message indicates a failing panel control and heat damage is common. They last 3-5 years until this problem happens. You can get a replacement board for about $800 (parts only – even more if you want Jenn Air to fix it for you) but after a while it will fail again due to heat damage.

Disassembly

After throwing the oven’s dual-pole 40 amp breaker I pulled it out from the wall with the goal of disconnecting and removing the top horizontal display controller. It turns out this was easy to do. A total of 6 screws on the unit, then unplugging 3 wires, and it was sitting on my counter. I’ll call this the “control box”. That wasn’t bad at all, a pleasant surprise, +1 for serviceability.

The safety shutoff thermistor measured 0 ohms, so it wasn’t blown. The root cause lay elsewhere.

When removing the control box, I noticed a vent for hot/moist oven air that exhausts out the front, left side, above the oven door and below the control box. The control box had been installed incorrectly with the vent inside its bottom edge. Instead of venting out below the control box, it vented directly into the control box! All that hot moist air was venting directly onto the circuit board. Ouch!

I don’t know whether this error was from the factory or from the installer – depends on how the oven is shipped and what assembly is done on site. Either way, it’s a serious mistake and an obvious root cause to the problem.

Cleaning

The circuit board was slightly heat discolored brown right where the exhaust vent hit it. Obvious heat damage, and no visible corrosion but all that moisture didn’t help it. But not melted or blown, and maybe fixable. I unplugged all the connectors on the board, sprayed them with electric contact cleaner, wiped them dry, plugged and unplugged them a few times to scrape off any light corrosion, made sure everything was clean.

Hopefully, this unplugging and cleaning would clear any corrosion that the vent caused and trigger the oven’s logic to reset itself and start working again.

Robustifying

Routing the exhaust vent properly should fix the problem. Yet despite its ridiculous price, where one might expect “price is no object” design, this oven does not have sufficient heat shielding inside between hot vents and its circuit boards. Since the control box board was already compromised, I wanted to ensure it was better protected from further heat damage.

Even when properly routed, the host moist air of the exhaust vents just below the control box. That’s better than venting directly into it, but even so, it will still get the control box toasty warm when the oven is on. Not the best design.

I bought a sheet of heat shielding that consists of a thick yet flexible aluminum reflecting surface with about 1/4″ thick fiberglass insulation glued to one side. It’s made to wrap car exhausts and protect nearby surfaces from the heat. I cut it to shape with tin snips (the kind made to cut aluminum roof gutters). I installed this shielding in two places:

  • Inside the oven, laying flat just above the exhaust vent to protect the circuit board directly above it. This sheet was about 10″ x 9″.
  • Inside the control box, along its inside bottom edge below the circuit board to protect it from the hot vent below. This sheet was about 2″ x 8″.

Note: remember to use PPE like a mask and gloves when cutting & handling fiberglass.

Conclusion

After reassembling, the oven started up and works fine. No more error messages, both top & bottom ovens work. Only time will tell whether this is a permanent fix, but I’ve at least addressed a known design deficiency and postponed a crazy expensive and premature replacement.

Email, IP Addresses and Blacklists

Introduction

I have a web & email hosting account so my email is on my own domain. A while back I wrote on this topic: http://mclements.net/blogWP/index.php/2024/02/06/email-send-blacklisting-ip-addresses/

That turned out to be a temporary solution and the problem kept recurring. I recently devised a permanent solution. I’ll describe this solution first, then get into the story of how I discovered it.

How it Works

Here’s what happens when I send an email from my own domain. Consider the email as foo@bar.com sent using MyHost SMTP servers.

  1. My email client (Thunderbird on Linux) calls GMail’s SMTP server to send an email from foo@bar.com
  2. The GMail SMTP server receives the call and says, “foo@bar.com isn’t a GMail email address. Do I recognize this?”
  3. The GMail SMTP server sees that I have added foo@bar.com as an external email account and verified it.
  4. The GMail SMTP server sees that I have told it to call the MyHost SMTP server to send email for foo@bar.com, and provided MyHost login credentials.
  5. The GMail SMTP server calls the MyHost SMTP server to send the email from foo@bar.com
  6. The MyHost SMTP server sends the email using the IP address of the caller, which is the GMail SMTP server’s IP address.

This ensures that the IP address associated with email sent from the MyHost account is not my Comcast assigned IP address, but that of GMail’s SMTP server. Thus, it passes all the various internet email security checks.

The Symptom

As I mentioned above, the problem kept recurring. I send email and sometimes it is rejected with a reply that looks like this:

host eig-east.smtp.a.cloudfilter.net [18.215.58.191]
SMTP error from remote mail server after end of data:
550 Gk0Tt29WcHdOCGk0UtJxy2 - <foo@bar.com> message rejected AUP#SNDR

I checked whether this IP address is blacklisted at this site: https://mxtoolbox.com/blacklists.aspx

It shows more than 40 different blacklists, all but 1 of which are green / OK. It was blacklisted by Spamhaus ZEN with reason PBL. In their words:

PBL - Spamhaus PBL is a DNSBL database of end-user IP address ranges that should not be delivering unauthenticated SMTP email to any Internet mail server except those provided for specifically by an ISP for that customer's use

In other words, internet SPAM and security has gotten so bad that servers don’t accept email from any IP address except those pre-cleared as public SMTP servers. When it comes to delivering email, they have shifted from blacklisting to whitelisting.

Previously I thought I could solve this by using the IP for my DNS name, instead of the one assigned by Comcast. But my hosting provider refused to do that and it wouldn’t help anyway.

The Solution

Google has employees whose job is to keep their SMTP servers on all the whitelists and off all the blacklists. When my hosting provider’s SMTP server sends email, it uses the IP address of whoever called it. If I can get Google’s SMTP servers to call my hosting provider’s SMTP server, then my email will deliver with a whitelisted Google IP address.

And Google provides a method to do exactly this!

Before starting, have the information for the SMTP server you want to use: hostname, login name, password, etc.

Point your browser to https://gmail.com, go to Settings, See all Settings, Accounts and Import.

In the “Send mail as” section, check the button for Reply from the same address the message was sent to.  Then click the link Add another email address. Follow the instructions in the window that pops up to verify the email account and SMTP provider.

Next, go to your email client settings and tell it to use the GMail SMTP server to send mail for your hosting provider email.

That’s it – you’re done.

A Cheap Audiophile Headphone System

A few years ago I blogged about this: http://mclements.net/blogWP/index.php/2016/09/13/a-cheap-audiophile-headphone-system/

Technology marches on so it needs an update.

Here’s a cheap audiophile quality sound system:

  • A DAC + headphone amp that accepts USB input.
  • A decent set of headphones.

How is this better than before? It’s less expensive and more flexible. A DAC accepting USB input can be used with any computer: laptop or desktop, mac, Windows or Linux. No drivers needed.

You can get separate DAC and amp, or (even better) a single device having DAC and headphone amp. Such a device often has line level outputs and can be used as a preamp too. Like the Schiit Asgard with the ESS9028 DAC card. Simplicity at its finest: a single box is all you need.

Even better, the Asgard accepts analog inputs too. If your phone has a headphone jack, you can set it to max volume and plug it into the Asgard’s line-level inputs. Then use the Asgard (and its volume control) to drive any headphone on the planet. If not, just use an OTG USB cable to plug your phone into the Asgard’s digital input. That should provide even better sound quality, as the Asgard’s DAC is probably better than the one in your phone.

Subaru Timing Belt Change

Back in Aug 2020 I resurrected our old Subaru Forester by replacing the timing belt and other 100k mile service items. Fortunately, the head gaskets were in decent shape so I hope it will go at least another 100k miles trouble-free.

I took some photos as I went: http://mclements.net/SubieWork-200829

Afterwards, it took some miles for it to relearn its idle, I had to top off the coolant a few more times and replace the spark plug wires. The ladies took it on a cross-country road trip to New York, so I put new tires on it as well. The car was flawless on the long trip and it’s been running great ever since.