A long time ago, my company sent me on business trips to western Minnesota to install electrical equipment. On one of those trips, I met a nice gal of good Minnesota Norwegian stock and asked her out to a music concert at the college in Fargo, North Dakota.
Being a good Minnesota Lutheran, she told me about her church in Moorhead. (There are so many Lutheran churches in Fargo and Moorhead, I'd never be able to remember now which one it was.) I had the privilege of visiting there the following Sunday, the last Sunday of October.
Reformation Sunday is not only a day to remember the events of 1517 Wittenberg, but also a time to celebrate with a grand midwestern potluck. Had I known ahead of time, well, I'd still not have been able to cook up anything in the motel room. But the little old ladies of the church welcomed me warmly and introduced me to their favorite potluck dish: lutefisk. "You'll either love it or hate it," they said. "It's like fish flavored jello," they said. How could I possibly turn this down? Fortunately, they didn't give me a lot!
After the potluck, I visited this nice gal and her family at her home, and we took turns playing the piano. It was a wonderful afternoon.
On another occasion, one of the electrical workers invited me to his home for lunch, and they served me corn freshly cut from their very own property.
After visiting Minnesota several times, I decided that the good Lutherans of Minnesota are far and away the friendliest people I've ever met. If they have any of the Lake Wobegon quirks, I never noticed.
Sunday, October 25, 2015
Monday, October 19, 2015
Random Artwork
Refresh the page to see a different design (or click the button below).
This one uses HTML5 Canvas, so it works on iPad. In class, we used SVG, which doesn't render properly on iOS devices using Safari.
This one uses HTML5 Canvas, so it works on iPad. In class, we used SVG, which doesn't render properly on iOS devices using Safari.
Tuesday, October 13, 2015
Ten Commandments of Human Relations
1. Speak to people.
There is nothing as nice as a cheerful word of greeting.
2. Smile at people.
It takes 72 muscles to frown, only 14 to smile.
3. Call people by name.
The sweetest music to anyone's ears is the sound of his own name.
4. Be friendly and helpful.
If you want friends, you must be one.
5. Be cordial.
Speak and act as if everything you do is a joy to you.
6. Be genuinely interested in people.
You can like almost everybody if you try.
7. Be generous with praise...
and cautious with criticisms.
8. Be considerate with the feelings of others.
There are usually three sides to a controversy: Yours, the other person's, and the right side.
9. Be eager to lend a helping hand.
Often it is appreciated more than you know.
10. Add to this:
a good sense of humor, a huge dose of patience and a dash of humility. This combination will open many doors and the rewards will be enormous.
There is nothing as nice as a cheerful word of greeting.
2. Smile at people.
It takes 72 muscles to frown, only 14 to smile.
3. Call people by name.
The sweetest music to anyone's ears is the sound of his own name.
4. Be friendly and helpful.
If you want friends, you must be one.
5. Be cordial.
Speak and act as if everything you do is a joy to you.
6. Be genuinely interested in people.
You can like almost everybody if you try.
7. Be generous with praise...
and cautious with criticisms.
8. Be considerate with the feelings of others.
There are usually three sides to a controversy: Yours, the other person's, and the right side.
9. Be eager to lend a helping hand.
Often it is appreciated more than you know.
10. Add to this:
a good sense of humor, a huge dose of patience and a dash of humility. This combination will open many doors and the rewards will be enormous.
Wednesday, October 7, 2015
Connect the Dots
One of my high school students did paper-and-pencil artwork that looks like this. I wrote this program that we may code together in class. When you connect the dots, the result is a parabola curve along the bottom edge.
The SVG version does not work with iPad because Safari iOS does not like inline SVG elements. So the following code uses HTML5 canvas. The JavaScript calculations are the same, but the drawing routines are different.
The SVG version does not work with iPad because Safari iOS does not like inline SVG elements. So the following code uses HTML5 canvas. The JavaScript calculations are the same, but the drawing routines are different.
How to start learning computer programming
People often ask me, "How should I start learning computer programming?" Specifically, what programming language should one start with?
Many programming languages are difficult to learn. C++ is a powerful and widely-used programming language, but I would seldom suggest that someone learn C++ first. Some do, and some do it well, but there are easier languages. Java is similarly difficult. Objective-C is a nightmare; I'm glad Apple replaced it with Swift, but don't let the name fool you ... you won't learn even Swift quickly unless you already know another programming language.
Many programming languages are difficult to learn. C++ is a powerful and widely-used programming language, but I would seldom suggest that someone learn C++ first. Some do, and some do it well, but there are easier languages. Java is similarly difficult. Objective-C is a nightmare; I'm glad Apple replaced it with Swift, but don't let the name fool you ... you won't learn even Swift quickly unless you already know another programming language.
Tuesday, October 6, 2015
Resistor Standard Values
Suppose we want to establish a sensible set of standard values for resistors. Of course, this was done many years ago. But sometimes it is instructive to recreate the thought process of engineers from the past. We learn something about their thought process that we might apply to our own engineering challenges today.
Supposed we want to establish a set of standard resistor values between 10 ohms and 100 ohms. Our first thought might be to space them out equally: 10 ohms, 20, 30, 40, 50, 60, 70, 80, 90, and finally 100 ohms. This way we cover all the values between 10 and 100 with equal tolerance: 10 ohms either way.
But is it really equal spacing? The difference between 10 ohms and 20 ohms is 100 percent! 20 ohms is twice as big as 10 ohms. Don't we need another resistor in between those? Like maybe 15 ohms?
Supposed we want to establish a set of standard resistor values between 10 ohms and 100 ohms. Our first thought might be to space them out equally: 10 ohms, 20, 30, 40, 50, 60, 70, 80, 90, and finally 100 ohms. This way we cover all the values between 10 and 100 with equal tolerance: 10 ohms either way.
But is it really equal spacing? The difference between 10 ohms and 20 ohms is 100 percent! 20 ohms is twice as big as 10 ohms. Don't we need another resistor in between those? Like maybe 15 ohms?
Saturday, October 3, 2015
Efficiency
One of my favorite books was always Cheaper by the Dozen. (It inspired a hit 1950 movie, but the book had no relation to the recent Steve Martin comedy.) The book is about Frank and Lillian Gilbreth and their 12 children. The Gilbreth parents were efficiency experts who examined the smallest movements of even their own children, looking for ways to reduce the number of motions. This was decades before the recognition of repetitive motion injuries caused by computer use and other fine muscle movements.
One story I found particularly interesting was about how Frank had courted Lillian. Frank apparently encountered bricklayers at the home of Lillian's parents, and suggested how they might do their work more efficiently. The skeptical workmen watched as Frank quickly laid out a row of bricks and mortar in expert fashion.
One story I found particularly interesting was about how Frank had courted Lillian. Frank apparently encountered bricklayers at the home of Lillian's parents, and suggested how they might do their work more efficiently. The skeptical workmen watched as Frank quickly laid out a row of bricks and mortar in expert fashion.
Friday, October 2, 2015
SVG code template
Use this code to get started using SVG:
<svg width='600' height='400' viewBox='0 0 600 400' xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink"> <!-- the clipping paths and masks will go here --> <defs> </defs> <!-- the shapes and stuff will go here --> <rect x='0' y='0' width='600' height='400' fill='beige' /> </svg>
Radial gradients:
http://www.w3schools.com/svg/svg_grad_radial.aspThursday, October 1, 2015
HTML code template
Here is a template for the minimal complete HTML page. If your page doesn't have all these elements, you should edit your page to include all of them. When you start a new page, you can copy and paste this code to get started.
(Originally posted in 2015. Revised 16 Aug 2022 to reflect the latest HTML validator settings.)
Here is the code for a bullet list:
Here is the code for a table:
Here is an excellent tutorial on HTML tables (thank you to the student who linked this to your page):
http://www.w3schools.com/html/html_tables.asp
<!DOCTYPE html> <html lang="en"> <head> <!-- YOUR NAME HERE, date, project name, class, etc. --> <meta charset='utf-8' /> <meta name="viewport" content="width=device-width" /> <title>My Web Page</title> <style> /* styles go here */ </style> </head> <body> <h1>My Web Page</h1> <!-- page content will go here --> <script> // scripts will go here </script> </body> </html>
Here is the code for a bullet list:
<ul> <li>Mission College</li> <li>Ohlone College</li> <li>Gavilan College</li> <li>Cabrillo College</li> </ul>
Here is the code for a table:
<table> <tr> <th>Key</th> <th>Command</th> </tr> <tr> <td>Cmd-Space</td> <td>Spotlight</td> </tr> <tr> <td>Cmd-S</td> <td>Save</td> </tr> </table>
Here is an excellent tutorial on HTML tables (thank you to the student who linked this to your page):
http://www.w3schools.com/html/html_tables.asp
Subscribe to:
Posts (Atom)