Adding Emotion to Computer Interactions

A problem with computer interactions today is the inability of computer systems to understand the context in which something is said. Context colors the meaning of words so that a word with multiple meanings is quite clear to a human hearer, but nearly impossible for the computer to interpret. Before speech systems can truly take off, they must be able to interpret context far better than they do now, and that means being able to understand emotion. Even though such systems are a long way away, science fiction authors, such as Isaac Asimov, have long insisted that robots and other computerized systems that interpret spoken input will be able to understand emotional context at some point. In fact, the movie, I, Robot, makes this point quite clearly.

There is a new standard that has been introduced that will partly solve the problem, Emotion Markup Language (EmotionML). The standard provides a framework for describing emotion in a manner that a computer can understand. It provides a framework for future technologies, but doesn’t actually provide a technology that you can use today. A Speech Technology article provides a good overview of EmotionML that you can use to summarize what it does.

I imagine that some people are wondering why we don’t simply use something simple like an emoticon to express emotion. After all, people have used them for quite some time to express emotions as part of e-mail. The problems with emoticons are that they don’t convey enough information and they’re also used tongue-in-cheek in many cases. In addition, even though some simple emoticons are standardized, there are many versions of emoticons that supposedly express the same emotion, which would make interpreting them nearly impossible.

Of course, it’s important to understand what happens when a computer can finally interpret emotions well enough to put some speech into context. Well, for one thing, fewer people will be throwing their computers out of windows when they get frustrated with the computer’s idiotic responses to input that was clearly not meant to be processed in a certain way. However, what is more important is that the computer will correctly interpret the spoken word more often. When words have a whole list of meanings, just knowing the emotional context can help a computer select the correct meaning and react appropriately—reducing user frustration and defusing situations before they deteriorate into some sort of unexpected action.

The important thing to remember is that the EmotionML standard is only a framework, not a technology. When the technologies based on this standard start to appear, you can be certain that vendors will want to put a particular spin on the product to differentiate it from other products out there. The technologies won’t work well together at first and there is going to be a lot of confusion on the part of humans and computers alike. However, at least it’s a start in the right direction.

What other kinds of contextual information does a computer require to interpret the spoken word with greater accuracy? I think one of the next standards will need to address body language, likely starting with facial expressions, but I’d like to hear your opinion. Send your thoughts on language context and how computers can interpret them correctly to


Necessity is the Mother of Invention

My mother was a good, old-fashioned home cook.  She also never learned to drive.  Since we lived in the country much of the time, she knew how to make do with the ingredients and tools that were already on hand.

If she didn’t have spaghetti on hand, she would use flat noodles with Marinara, meat and cheese.  She flattened out chicken breasts with a frying pan (and worked off some frustration with her kids, I think).  A favorite recipe in our house is still a Chili Sauce that uses apples as well as tomatoes for a sweet and spicy addition to ground beef.  Mom usually had a pot of soup on the stove made out of oxtails, ham bones, turkey carcasses or whatever meat she had on hand.  (As kids, she didn’t dare tell us what was in the soup.  We only knew that it was good!)  She graduated eventually to be become restaurant cook but she still did her best work without the fancy gadgets that have become standard in many modern kitchens.

I don’t have my mother’s skills when it comes to cooking, but I have learned her respect for good, simple tools.

  • Knives should be kept sharp and safe.  A magnetic strip on the wall above the counter will keep metal knives safe, dry and conveniently at hand. These magnetic strips can be picked up at most hardware stores as they are commonly used for tool benches.
  • A good variety of large spoons, ladles and spatulas is a must.  Many can be picked up very reasonably at thrift stores or garage sales.  Watch for brand name items at a bargain.
  • Multiple cutting boards mean less chance of cross contamination.  Sterilize cutting boards regularly.
  • Old tools don’t need to be tossed out just because there is a new version, unless it is broken.  If there is room to store them, multiples can make prep work more fun!  It can become a contest between siblings or a chance to sit and visit with your spouse.  “Show and tell” works especially well with kids when they have their own tool that won’t be taken away if they are “too slow”.

Here are also a few favorite adaptations learned along the way:

  • Keep a clean pair of paint stirring sticks in the kitchen drawer.  When rolling out cookie dough, position the stir stick so that they raise the rolling pin and ensure the same thickness cookie with each cut. When the thickness is uniform, the cookies will bake evenly and you won’t end up with doughy middles and crispy edges.  If the paint stirrer gets grungy, toss it out and head to the hardware store.

    Paint Stirrers, Chopsticks and a Variety of Apple Peelers.  I am ready for making gingerbread Christmas Ornaments.
    Paint Stirrers, Chopsticks and a Variety of Apple Peelers. I am ready for making Gingerbread Christmas Ornaments!
  • A pair of chopsticks is a great way to poke nice round holes into the tops of gingerbread (and other) cookies so they can be hung with a ribbon.
  • A 10 or 12 inch Fry Pan lid can be used as a “giant” cookie cutter for pie dough. It will create a perfectly round piece of dough for the top crust.  This will give a neat edge to turn when finishing the top crust.

As you can tell, good tools are an inexpensive way to make cooking fun, social and sustainable.  If you have other tips and or adaptations that you have tried in the kitchen, I would love to hear from you.  Please share them by adding your comment to this post or contacting John at


Fixed C++ Book Link

Last week I announced the release of C++ All-In-One for Dummies, 3rd Edition and told you about a link for the book extras at Unfortunately, the link didn’t work for a while. Clicking the link produced an error message, rather than a page full of useful content. The publisher has fixed the link and you can now gain access to a lot of really cool book extras:

All these extras will make your reading experience even better. Make sure you check them all out. Of course, I always want to hear your book concerns, especially when it’s something major like not being able to find needed content. Please feel free to contact me at with your book-specific question.


Choosing a C++ Editor

A lot of people have asked why I chose Code::Blocks as the editor for C++ All-In-One for Dummies, 3rd Edition. There are a number of reason that I chose this particular editor including:

  • Ease of use
  • Free download
  • Runs on all the platforms the book supports

However, the fact that Code::Blocks works well for the book and for most beginning projects doesn’t mean it’s the best solution for your particular needs. There are many different C++ Integrated Development Environments (IDEs) out there and I’m constantly trying new products. When the new version of Visual Studio comes out, you can be sure I’ll obtain a copy and check it out because some of my readers use Visual Studio. The problem with Visual Studio is that it tends to use Microsoft additions to the C++ language and it also doesn’t run on all the platforms that the book must support. However, if you’re working with Microsoft systems and need to create a relatively large project, Visual Studio might be a good choice for you—only you can make that determination.

The Eclipse IDE is another good selection. In fact, I used Eclipse when writing Java eLearning Kit for Dummies because it runs on every platform I needed to test. When I wrote this book, I chose to focus on the language though and not really mention the IDE at all. I didn’t want readers to have preconceived ideas of how Java should look inside an editor. I had thought about using Eclipse for C++ All-in-One for Dummies, 3rd Edition, but after reviewing the IDE and comparing it to Code::Blocks, I felt Code::Blocks was a lot simpler. Even so, if you need great multiplatform support for your C++ projects, Eclipse is a great choice.

I recently tried another IDE, Intel Composer. This is most definitely not a IDE for the faint of heart or the light of pocketbook (the asking price is $1,199.00). Of course, many of you are going to question my sanity for even downloading such a product when there are so many less expensive solutions out there. The main reason to obtain a product like this one is that it provides phenomenal parallelism support for multiprocessor applications. In other words, you use this sort of IDE for high end projects. You can read all the other features this product offers on the vendor site. One of the other items that grabbed my attention is that it provides both multiplatform (Windows, Mac, Linux, and Android) and multiformat (Phone, Tablet, PC, Ultrabook, and Server) support. Whether this particular IDE makes sense for your needs depends on the kind of applications you create.

Although the information in Wikipedia is often suspect, you can find a comparison of various IDEs at The best way to choose a C++ IDE is to look for a product that meets your needs and then try it out on a subset of the problem you’re trying to solve. Researching the IDE you use is essential because a mistake can cost you a lot of time later. Not every IDE support every C++ feature, every platform, or every team need. Tell me why you think I should move to something other than Code::Blocks for the next edition of the book at


Examining the Calculator in Windows 7 (Part 2)

A while back, over two years ago in fact, I uploaded a post entitled, “Examining the Calculator in Windows 7.” Since that time, a number of people have asked about the other features that the new calculator includes. Yes, there are these rather significant problems that Microsoft has introduced, but there are some good things about the new calculator as well.

The good thing appears on the View menu. When you click this menu, you see options at the bottom of the list that provide access to the special features as shown here.

The View menu includes options for unit conversion, date conversion, and worksheets.
The Windows 7 Calculator View Menu

The Unit Conversion and Date Conversion options are the most useful. However, the worksheets can prove helpful when you need them. Of the new features, I personally use Unit Conversion the most and many people likely will. After all, it’s not often you need to figure out a new mortgage, vehicle lease amount, or the fuel economy of your vehicle (and if you do such work for a living, you’ll have something better than the Windows Calculator to use). To see what this option provides, click Unit Conversion. You see a new interface like the one shown here:

The Unit Conversion display makes it possible to convert from one unit of measure to another.
Calculator Unit Conversion Display

You start using this feature by selecting the type of unit you want to convert. As you can see from this list, the kinds of conversions you can perform are extensive:

Select a conversion type to determine what options are offered in the From and To fields.
The Calculator Supports a Healthy List of Conversion Types

The option you select determines the content of the From and To fields. For example, if you want to convert from kilometers to miles, you select the Length option. After you select the type of unit, type a value in the From field and select the From field unit of measure. Select the To field unit of measure last. Here is what happens when you convert 15 kilometers to miles:

The output shows that converting 15 kilometers to miles equals 9.32056788356001 miles.
Converting Kilometers to Miles

I’ve found use for most of the entries in the types list at one time or another. Every one of them works quite well and you’ll be happy they’re available when you need them. The Data Calculation option can be similarly useful if you work with dates relatively often, as I do. However, I can’t see many people needing to figure out the number of days between two dates on a regular basic. Even so, this feature is probably used more often than any of the worksheets.

The ability to perform conversions of various kinds and to access the worksheets that Windows 7 Calculator provides isn’t enough to change my opinion. The implementation of the Calculator is extremely flawed and I stick by my review in the first posting. However, you do have the right to know there are some positives, which is the point of this post. Let me know your thoughts about Calculator now that you have a better view of it at


A Little Pressure

From Left to Right:  Beef, Carrots, Green Salsa, Beets, Potatoes All canned using a pressure Canner
From Left to Right: Beef, Carrots, Green Salsa, Beets, Potatoes
All canned using a pressure Canner

As I was growing up, I helped in the  kitchen quite a bit, especially during canning season.   We had several big blue (water bath) canners that were used for pints and quarts of all kinds of tomato products as well as jams and jellies.  I never saw my mom use a pressure canner.  One day I asked her—why? It turned out that before I  was born, she and her mother  were working with a pressure canner.  They went into the other room for something and forgot to check on it until they heard the pressure value and gasket blow off.  A jar had broken inside and the vegetables had clogged the pressure  valve. The content of canner spewed into the air, all over the kitchen!  Seeing this chaos—and cleaning up the mess afterward—convinced my mom never to can anything under pressure while there were kids around, just in case.

So it wasn’t until I was a young wife that I convinced my Aunt Betty to teach me about pressure canning.  After doing some research, we went together and bought a pretty expensive “All-American” brand  canner.

With a new pressure gauge and careful storing, this 30+  canner is still going strong.
With a new pressure gauge and careful storing, this 30+ canner is still going strong.

It has a metal to metal construction with 6 turn-screws to hold the lid in place.  It is extremely safe.  For the amount of food that I process, it was a wonderful investment.  I think of my Aunt Betty every time I use it.

Here are some safety tips to use if you decide to dive  into the world of pressure canning.

  • Familiarize yourself with the equipment to make sure that you know exactly how it works before using it to process food.  Be sure you know how much water is needed (a metal yardstick works well to measure the depth of the water) and how many jars should go in a batch.
  • Follow the recipe exactly, at least the first time you are making something new.  The herbs and spices used during the canning process develop as the product cools and is stored.  After opening it, you can decide whether you want to change the recipe for next year’s harvest.
  • Invest in good equipment and treat it with respect.  You don’t necessarily need new equipment.  Garage sales and thrift stores often have sturdy equipment for sale.  Watch for breaks, holes, scorch marks or cracks in the metal.  These are sure signs that the canner has been used for something other than its original purpose.
  • Replace the rubber seals regularly, if your canner uses them.
  • Replace the pressure valve if it is showing any sign of wear. It is important that this part of the canner be accurate.
  • Stay in the kitchen while the pot is cooking. In this case, a watched pot is a good thing. The canner will build up to pressure.  The stove must be adjusted to keep it at the right  pressure throughout the whole canning time.  If the pressure is under the required amount—the food won’t cook correctly.  If the pressure goes over—there is risk of breaking jars and messes in the kitchen.
  • FOLLOW THE INSTRUCTIONS for cooling down the canner.  Remember there are glass jars inside and they are very fragile in this state.
  • Do NOT open the canner until the pressure has naturally gone down to zero, according to the pressure gauge.  This part of the process cannot be hurried.
  • Remove the jars carefully and finish them according to the recipe.  Putting a towel on your table  or counter will keep the area drier and reduce the risk of the jars bumping together.
  • After the jars are cool, inspect them to make sure they have sealed properly.  If any fail to do so, put it in your refrigerator to use right away.
  • LABEL jars with contents and the year, before putting it into your pantry,

All in all, pressure canning is a great way to store your harvest,  You have control of exactly what is in your food.  Many recipes can be adapted for special diets. And, the jars  look so pretty in your pantry! If you have stories about your pressure canning experiences or any questions, please share them by adding your comment to this post or contacting John at


Announcing C++ All-In-One for Dummies 3rd Edition

I’m really excited to announce the release of C++ All-In-One for Dummies, 3rd Edition. This is the book that:

  • Provides all the updates you’ve been wanting
  • Relies on the latest version of Code::Blocks
  • Includes better support for Windows, Linux, and Mac installations
  • Contains all the latest techniques, including lambda expressions

This is the book update that I discussed in Beta Readers Needed for a C++ Book Update. Here’s the new book layout:

  • Book I: Introduction C++
    • Chapter 1: Configuring Your System (18 Pages)
    • Chapter 2: Creating a First C++ Program (20 Pages)
    • Chapter 3: Storing Data in C++ (30 Pages)
    • Chapter 4: Directing Your C++ Program Flow (26 Pages)
    • Chapter 5: Dividing Your Work with Functions (26 Pages)
    • Chapter 6: Dividing Between Source-Code Files (16 Pages)
    • Chapter 7: Referring to Your Data through Pointers (30 Pages)
    • Chapter 8: Working with Classes (38 Pages)
    • Chapter 9: Using Advanced C++ Features (36 Pages)
  • Book II: Understanding Objects and Classes
    • Chapter 1: Planning and Building Objects (30 Pages)
    • Chapter 2: Describing Your Program with UML (20 Pages)
    • Chapter 3: Structuring Your Classes with UML (12 Pages)
    • Chapter 4: Demonstrating Behavior with UML (18 Pages)
    • Chapter 5: Modeling Your Programs with UML (12 Pages)
    • Chapter 6: Building with Design Patterns (30 Pages)
  • Book III: Fixing Problems
    • Chapter 1: Dealing with Bugs (12 Pages)
    • Chapter 2: Debugging a Program (14 Pages)
    • Chapter 3: Stopping and Inspecting Your Code (12 Pages)
    • Chapter 4: Traveling About the Stack (10 Pages)
  • Book IV: Advanced Programming
    • Chapter 1: Working with rays, Pointers, and References (30 Pages)
    • Chapter 2: Creating Data Structures (22 Pages)
    • Chapter 3: Constructors, Destructors, and Exceptions (28 Pages)
    • Chapter 4: Advanced Class Usage (26 Pages)
    • Chapter 5: Creating Classes and Templates (32 Pages)
    • Chapter 6: Programming with the Standd Libry (38 Pages)
    • Chapter 7: Working with Lambda Expressions (16 Pages)
  • Book V: Reading and Writing Files
    • Chapter 1: Filing Information with the Streams Libry (14 Pages)
    • Chapter 2: Writing with Output Streams (16 Pages)
    • Chapter 3: Reading with Input Streams (12 Pages)
    • Chapter 4: Building Directories and Contents (10 Pages)
    • Chapter 5: Streaming Your Own Classes (12 Pages)
  • Book VI: Advanced C++
    • Chapter 1: Exploring the Standd Libry Further (20 Pages)
    • Chapter 2: Working with User Defined Literals (UDLs) (16 Pages)
    • Chapter 3: Building Original Templates (20 Pages)
    • Chapter 4: Investigating Boost (26 Pages)
    • Chapter 5: Boosting Up a Step (16 Pages)
  • Appendix A: Automating Your Programs with Makefiles (12 Pages)

As you can see, this new book focuses a lot more strongly on standardized C++ so that you can get more out of it. There isn’t any mention of Microsoft special features any longer. You can use this book in all sorts of environments now and expect the examples to work (with some modification depending on how well your compiler adheres to the standard). Most importantly, there is now a chapter specifically designed to help you get your system configured so you can begin enjoying the book in a shorter time.

As always, I highly recommend you download the book’s source code from (the source code appears at the bottom of the page, so you must scroll down). In addition to the source code, the site also contains a wealth of extras that you really want to check out as part of your book purchase. Of course, there is always room for additional information, so let me know about the topics you’d like to see covered on the blog as well. You can check out the current posts at:

I’m really excited about this new book and want to hear from you about it. Please feel free to contact me about any questions you have at


Using CAPTCHA for Comments

It’s an unfortunate sort of thing, but the one percent who cause problems often dictate the restrictions on the ninety-nine percent who don’t. I had hoped when I moved to my new blog software that I might be able to get by without using a tool to ensure someone commenting actually is a human. People had complained about the previous version of my Completely Automated Public Turing Test To Tell Computers and Humans Apart (CAPTCHA) software. It was hard to see at times, even harder to work with. The bad news is that you’ll be dealing with CAPTCHA again on this blog whenever you make a comment. Several hundred spam posts every day make it clear that I really can’t avoid it, much as I might like to do so.

Now for the good news. Unlike the old blog software, I have access a whole host of CAPTCHA solutions when working with the new blog software. I’ve come up with what I hope is a less difficult means of keeping the spammers at bay. No, I won’t thwart all of them, but I’m determined to come up with a solution that makes life easier for the majority and a whole lot harder for the minority. Perhaps they’ll get the idea and go bother someone else for a while.

I do want your feedback. Does this new CAPTCHA solution seem to work for you? If so, please leave a comment to this particular post. This is one situation where I’d prefer you not contact me through e-mail. I want people to try the comment system and let me know how they feel about it. Thanks, as always, for your support of my blog.


Considering the Future of Processing Power

The vast majority of processors made today perform tasks as procedures. The processor looks at an instruction, performs the task specified by that instruction, and then moves onto the next instruction. It sounds like a simple way of doing things, and it is. Because a processor can perform the instructions incredibly fast—far faster than any human can even imagine—it could appear that the computer is thinking. What you’re seeing is a processor performing one instruction at a time, incredibly fast, and really clever programming. You truly aren’t seeing any sort of thought in the conventional (human) sense of the term. Even when using Artificial Intelligence (AI), the process is still a procedure that only simulates thought.

Most chips today have multiple cores. Some systems have multiple processors. The addition of cores and processors means that the system as a whole can perform more than one task at once—one task for each core or processor. However, the effect is still procedural in nature. An application can divide itself into parts and assign each core or processor a task, which allows the application to reach specific objectives faster, but the result is still a procedure.

The reason the previous two paragraphs are necessary is that even developers have started buying into their own clever programming and feel that application programming environments somehow work like magic. There is no magic involved, just incredibly fast processors guided by even more amazing programming. In order to gain a leap in the ability of processors to perform tasks, the world needs a new kind of processor, which is the topic of this post (finally). The kind of processor that holds the most promise right now is the neural processor. Interestingly enough, science fiction has already beat science fact to the punch by featuring neural processing in shows such as Star Trek and movies such as the Terminator.

Companies such as IBM are working to turn science fiction in to science fact. The first story I read on this topic was several years ago (see IBM creates learning, brain-like, synaptic CPU). This particular story points out three special features of neural processors. The first is that a neural processor relies on massive parallelism. Instead of having just four or eight or even sixteen tasks being performed at once, even a really simple neural processor has in excess of 256 tasks being done. The second is that the electronic equivalent of neurons in such a processor work cooperatively to perform tasks, so that the processing power of the chips is magnified. The third is that the chip actually remembers what it did last and forms patterns based on that memory. This third element is what really sets neural processing apart and makes it the kind of technology that is needed to advance to the next stage of computer technology.

In the three years since the original story was written, IBM (and other companies, such as Intel) have made some great forward progress. When you read IBM Develops a New Chip That Functions Like a Brain, you see that that the technology has indeed moved forward. The latest chip is actually able to react to external stimuli. It can understand, to an extremely limited extent, the changing patterns of light (for example) it receives. An action is no longer just a jumbo of pixels, but is recognized as being initiated by someone or something. The thing that amazes me about this chip is that the power consumption is so low. Most of the efforts so far seem to focus on mobile devices, which makes sense because these processors will eventually end up in devices such as robots.

The eventual goal of all this effort is a learning computer—one that can increase its knowledge based on the inputs it receives. This technology would change the role of a programmer from creating specific instructions to one of providing basic instructions and then providing the input needed for the computer to learn what it needs to know to perform specific tasks. In other words, every computer would have a completely customized set of learning experiences based on specific requirements for that computer. It’s an interesting idea and an amazing technology. Let me know your thoughts about neural processing at


Lessons Learned as a Child

Jars of canned goods in the pantry.
Colorful Jars of Home Canned Vegetables

Most of what I learned about self-sufficiency was done while I was hanging around my mom, aunts and uncles.  My grandmother was one of thirteen children.  My mother had ten brothers and sisters.  I have 4 sisters and three brothers. It’s a large family, but it’s a close family.  We have always spent lots of time together. As a kid, much of it was spent gathering, gleaning, cooking and eating.  I didn’t realize I was learning self-sufficiency, I just knew that if I wanted to be in the kitchen I needed to make myself useful.

The earliest lesson that I remember happened while my mom and her sisters were canning concord grapes.  My uncle had a neighbor with an overabundance of grapes.  My mom had teenage brothers who needed something to do on a Saturday afternoon. So she sent dad with the boys off to pick the grapes while the women got ready to make jelly and jams.

Since I was only 8 years old and my sister was 11, our job was washing the jars.  There were dozens of jars that had been brought up from the cellar.  We worked in a back room of the house with two tubs.  She washed and I rinsed.  It was also the job for both of us to feel the top edge of the jars to make sure there weren’t any nicks or cracks that would prevent the canning lids from sealing.  Once the jars passed our inspection, they were taken into the kitchen where they were boiled to sterilize them and filled by the adults.  It may seem like a lot of work for an 8 year old, but I still check my canning jars this way because of the lesson I have always remembered.

Getting kids involved early is key to teaching life long lessons.  Kids are naturally curious about what the grownups are doing.  Kids WANT to be included in grownup activities. There are oodles of ways to bring your kids along on the road to self sufficiency.  It’s never too early.

  • If your kids are the kind who enjoy water, set them up washing jars to prepare for canning.  Let them help wash the dog or the car.  It may end up in a water fight, but those are great fun in the summer!
  • If they like making mud pies, teach them that making bread or pie crust dough is similar, and let them try it out. Even a preschooler can help roll cookie balls (and unlike PlayDoh, you can bake and eat the results).
  • If they like picking flowers, give them a small plot or row of their own in your garden and let them take responsibility for the tending, watering and weeding.
  • If your kids who are the kind that like to read and figure out things, introduce them to recipe books and let them choose what is going to be made for supper.  It will help them practice reading as well as teach valuable math and science skills.
  • Do you have an animal lover at your house? Let them take charge of the pet care and update you on the health of the critters – keeping records like the veterinarian.

When you include kids in your activities, at their skill level  and with ample encouragement, you are opening up a whole new way of communicating with your child. They learn that adults sometimes make mistakes or have failures and have to figure things out differently.  You are creating an environment where your kids can try, succeed (or learn that failure isn’t fatal) and grow.

As the harvest progresses and the canning/freezing season is upon us, there is an opportunity to teach the value of starting early to make a great Christmas.  By canning and collecting the summer fruits and vegetables, you can fill your cupboards full of basic things like corn, peas, beans and jelly.  You can also  try special recipes for treats like  green and red colored pears, spiced apple rings, green tomato mincemeat and peach pie filling.  Then when it comes time to put together a gift basket for a teacher or putting on a Holiday dinner, your child can proudly say “I helped to make that!”

Is there any greater feeling than “real” accomplishment?  I don’t think so!

If you have stories about your self-sufficiency lessons or any questions, please share them by adding your comment to this post or contacting John at