{"componentChunkName":"component---src-templates-standard-content-js","path":"/nostalgia/visicalc-and-related-memories/","result":{"data":{"markdownRemark":{"id":"6c2d35be-9925-54ba-8fa8-f84d50faf115","html":"","fields":{"langKey":"en","pathSlug":"/nostalgia/visicalc-and-related-memories/"},"frontmatter":{"createDate":"2026.04.30","updateDate":"","title":"Visicalc, and related memories","description":"","tags":[{"value":"misc","label":"misc"}],"jumbotron":null,"contents":[{"startDate":null,"endDate":null,"columnCount":"one","columns":{"columnOne":{"chunk":[{"align":"left","type":"text","value":"\n\nIn 1981, 2 years after Visicalc was created.\n\nI was working for Dr. Silver at the University of Calgary as his research assistant, he was at the time 'head of research' for the University of Calgary. I was in 2nd year university, I had a 'grad' office - because 'computers' were a fairly new skill that I had the good fortune to have had a nack for. I also had, as one of my students, one of my High School teachers - Mr. Applebee. He was a bright student that I enjoyed teaching.\n\nWe had a beta version of a new version of Visicalc, that I ran on my Apple IIe computer with my amber monitor and a dot matrix printer.\n\nI was able to write a program in Visicalc, that took only 7 to 9 hours to run. We used this program to test the hypothesis of the paper. I was extremely privileged to have been named on the paper under Dr. Silver's name. I didn't recognize the extent of the honour at the time, but I came to greatly appreciate it in later years when I was named on some other papers and had a Dr. friend of mine explain to me what that meant.\n\nI went on to work for Dr. Silver in my remaining 2 years of University (BComm, MIS major) and always found him to be a delight to work for. I was named on a couple other papers under him. It was both a privileged and a great learning experience to work on his team as his assistant.","image":null,"width":null,"height":null,"alt":null,"useMap":null,"title":null,"header":null,"rows":null,"timezoneColumns":null,"note":null,"entries":null,"tabs":null,"link":null,"fieldGroups":null,"formType":null,"submitText":null,"hasRecaptcha":null,"hasCopyToClipboard":null,"hasDecode":null,"text":null,"button":null,"size":"is-size-13","paddingBottom":2,"overlay":null,"images":null,"titles":null,"isHome":null,"isTags":null,"defLatitude":null,"defLongitude":null,"defZoom":null,"latitude":null,"longitude":null,"label":null}]},"columnTwo":null,"columnThree":null}}]}},"tagList":{"id":"6fe768d9-bedb-5701-addf-3d25710e0016","frontmatter":{"defaultLangKey":"en","tagList":[{"tag":"3d-models","featured":true,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"3D Models","shortDesc":"Models I've built and shared or can print for you","longDesc":"You may use any of my 3D models for personal use. If you modify them - send me a copy for personal use. If you want to produce them commercially, contact me for commercial license and rules. If you want any printed (i.e. you want one but don't have a 3D printer) contact me as well."}]},{"tag":"3d-printing","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"3D Printing","shortDesc":null,"longDesc":""}]},{"tag":"personal","featured":true,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Personal","shortDesc":"Everything about me","longDesc":"Hi! Some of these have been written because I really think they will be interesting to other people. Others have been written because people asked, and if one asks, maybe one or two more might someday ask so easier to answer here so I can refer people if they really care. There are sadly some aspects of my life that I can't share in a public forum. For example, my adopted son, before we adopted him I couldn't say ANYTHING publicly. Then after adopting him, my wife and I agreed that, like our adult children, we would not put much if anything on the web about him, to preserve his anonymity. When he is older, he can decide whether he wants to make himself less private."}]},{"tag":"business","featured":true,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Business","shortDesc":"My businesses","longDesc":"This is often out of date - after all, I busy running whatever I'm doing right now! But it provides some long term info that some people (1?) tell me they find interesting. Thanks mom for asking."}]},{"tag":"for-sale","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"For Sale","shortDesc":"Things I, or my family or organizations I work for or just like, have for sale","longDesc":""}]},{"tag":"for-rent","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"For Rent","shortDesc":"Things I, or my family or organizations I work for or just like, have for rent","longDesc":""}]},{"tag":"fun","featured":true,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Fun","shortDesc":"Happy thoughts","longDesc":"These are things that have made me smile through the years. I hope they bring joy and light to your life."},{"langKey":"es","tagDisplay":"Divertido","shortDesc":"","longDesc":""},{"langKey":"fr","tagDisplay":"Amusement","shortDesc":"","longDesc":""}]},{"tag":"bad-UX","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Bad UX","shortDesc":"Examples (and sometimes rants) about bad User Experience, UX and UI.","longDesc":"There are so many bad examples, and I admit I'm sure I have some bad ones too, but these are some of what I consider the worst of the worst."},{"langKey":"es","tagDisplay":"","shortDesc":"","longDesc":""},{"langKey":"fr","tagDisplay":"","shortDesc":"","longDesc":""}]},{"tag":"madman","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Madman Pierre","shortDesc":null,"longDesc":"This is truly a FAQ."},{"langKey":"es","tagDisplay":"Madman","shortDesc":"Madman Pierre","longDesc":""},{"langKey":"fr","tagDisplay":"Madman","shortDesc":"Madman Pierre","longDesc":""}]},{"tag":"reference","featured":true,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Reference","shortDesc":null,"longDesc":null},{"langKey":"es","tagDisplay":"Referencia","shortDesc":null,"longDesc":""},{"langKey":"fr","tagDisplay":"Référence","shortDesc":null,"longDesc":""}]},{"tag":"2018-Race-To-2025","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"2018 \"Race To 2025\"","shortDesc":"Raising money for literacy and Bible translation","longDesc":"i'm running in a race up and down mountains to raise money for literacy and Bible translation. It is called the 'Race to 2025' because the goal is to start getting every language in the world written down by 2025. Realistic goal? I doubt it BUT ... more important to me is the goal line that is being aimed for whatever year it happens and the positive movement in that direction."}]},{"tag":"covid-19","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"COVID-19","shortDesc":"COVID-19","longDesc":"Wow, what a difference 2 days made (March 5th, 2020 to March 7th, 2020) and, at time of writing, the changes just keep happening. Here is some info, often out of date - sorry I blame COVID-19."},{"langKey":"es","tagDisplay":"COVID-19","shortDesc":"COVID-19","longDesc":""},{"langKey":"fr","tagDisplay":"COVID-19","shortDesc":"COVID-19","longDesc":""}]},{"tag":"health","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Health","shortDesc":"Things about health that I think are important or interesting.","longDesc":null},{"langKey":"es","tagDisplay":"Salud","shortDesc":"","longDesc":""},{"langKey":"fr","tagDisplay":"Santé","shortDesc":"","longDesc":""}]},{"tag":"farming","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Farming","shortDesc":"Bees, Birds, Sheep, Plants, an eclectic set of personal interests","longDesc":""}]},{"tag":"aquarium","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Aquarium","shortDesc":"Ichthyology has always interested me","longDesc":"I've published over a hundred articles in Aquarium magazines through the years starting when I was 11 years old and did a 6 part article on Corydoras. I sadly didn't keep copies of most of those articles, that was back in the paper only days, but here are some of my more 'recent' (since 1981) comments."},{"langKey":"es","tagDisplay":"Acuario","shortDesc":"","longDesc":""},{"langKey":"fr","tagDisplay":"","shortDesc":"","longDesc":""}]},{"tag":"personal-misc","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Personal Misc","shortDesc":"Just a whole bunch of personal stuff I have not categorized in any better way.","longDesc":""}]},{"tag":"bible","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Bible","shortDesc":"Thoughts and insights from my reading of the Holy Bible of God","longDesc":"My personal relationship with Jesus Christ is the most important part of my life. I write on things in the Bible with fear and trembling at times because, of the areas, this is the one I never want to get wrong. I think I have quite a few good ideas, but I also know that other than the core truth of Jesus' divinity, I likely have some mistakes. So I hope you enjoy reading these, but please do not consider them scripture!"}]},{"tag":"bible-ottheology","featured":true,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Bible Old Testament Theology","shortDesc":"These are my ideas and thoughts. I hope they are mostly correct. But please only consider them \"Peter's current ideas\".","longDesc":null}]},{"tag":"CHRISTmas","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"CHRISTmas","shortDesc":"Various CHRISTmas things I've collected and created through the years","longDesc":"Tis the season to be jolly and celebrate the birth of Jesus Christ, my Lord and master and God."}]},{"tag":"personal-house3","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Personal House #3","shortDesc":"Our (Jan and my) 3rd house, the house I built near Balzac and we moved into in 1999, Alberta, Canada","longDesc":""}]},{"tag":"personal-house4","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Personal House #4","shortDesc":"Symon's Valley (2): Our (Jan and my) 4th house, the 20 minutes North of Calgary on Symon's Valley Road","longDesc":""}]},{"tag":"personal-fun","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Personal Fun","shortDesc":"Oh what fun it is to ride in a one horse open sleigh...","longDesc":null}]},{"tag":"personal-interests","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Personal Interests","shortDesc":"These are a few of my favorite things ...","longDesc":null}]},{"tag":"personal-outdated","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Personal Outdated","shortDesc":"No current value other than as a historical record","longDesc":""}]},{"tag":"photographic","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Photographic","shortDesc":"As as professional photographer for a decade and avid hobbyist for decades, I hope these comments will help some others.","longDesc":""}]},{"tag":"photos","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Photos","shortDesc":"Pages that exist simply to show a photo","longDesc":null}]},{"tag":"computer","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Computer","shortDesc":"All sorts of, I think, interesting and/or useful stuff about computers","longDesc":""}]},{"tag":"raspberry-pi","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Raspberry Pi","shortDesc":"\"The\" small, popular, low cost computer","longDesc":null}]},{"tag":"arduino","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Arduino","shortDesc":"A small, popular device controller","longDesc":""}]},{"tag":"language-learning","featured":false,"topLevel":true,"overrideDefaultLangKey":null,"translations":[{"langKey":"en","tagDisplay":"Language Learning","shortDesc":"Through the years I've worked with different languages and collected some thoughts on languages with special focus on learning","longDesc":null}]},{"tag":"handyman","featured":false,"topLevel":true,"overrideDefaultLangKey":null,"translations":[{"langKey":"en","tagDisplay":"Handyman","shortDesc":"Tools and more","longDesc":null}]},{"tag":"world","featured":false,"topLevel":true,"overrideDefaultLangKey":null,"translations":[{"langKey":"en","tagDisplay":"World, travel and more","shortDesc":"Traveling, living and other things around the word","longDesc":"I hope to add to this section a lot over the next year or so (2021)"}]},{"tag":"product-reviews","featured":false,"topLevel":true,"overrideDefaultLangKey":null,"translations":[{"langKey":"en","tagDisplay":"Product Reviews","shortDesc":"A few of my highly biased product reviews through the years. Very few are 'complete' reviews, many just talk about one positive feature or flaw.","longDesc":null}]},{"tag":"test","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"test","shortDesc":"There is nothing useful in here, this shouldn't even show up anymore, if it does, sorry.","longDesc":""},{"langKey":"es","tagDisplay":"test-es","shortDesc":null,"longDesc":null}]},{"tag":"test-child","featured":false,"topLevel":false,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"test-child","shortDesc":"Test Child","longDesc":""},{"langKey":"es","tagDisplay":"test-child-es","shortDesc":null,"longDesc":null}]},{"tag":"test-child-2","featured":false,"topLevel":false,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"test-child-2","shortDesc":"Test Child 2","longDesc":""},{"langKey":"es","tagDisplay":"test-child-es","shortDesc":null,"longDesc":null}]},{"tag":"misc","featured":false,"topLevel":true,"overrideDefaultLangKey":"","translations":[{"langKey":"en","tagDisplay":"Miscellaneous","shortDesc":"Collected thoughts that I have not categorized in any better way.","longDesc":null},{"langKey":"es","tagDisplay":"todo","shortDesc":"Miscellaneous","longDesc":""},{"langKey":"fr","tagDisplay":"tout","shortDesc":"Miscellaneous","longDesc":""}]}]}},"reusable":{"edges":[{"node":{"id":"0fee4982-a003-51cf-81c8-236e4b6ea9b4","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"CurrencyConverterCDN\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar CurrencyConverter = makeShortcode(\"CurrencyConverter\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h3\", null, \"Convert CDN\"), mdx(CurrencyConverter, {\n    amount: \"1\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" loonie\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"2\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" toonie\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"3\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"4\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"5\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" fin, fiver, five-spot\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"6\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"7\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"8\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"9\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"10\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" sawbuck, Ten-spot, dixie\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"20\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" QE2, Queen Sheet\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"100\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" C-Note, Borden, Onion\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"1000\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" grand\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"10000\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"100000\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" brick\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"1000000\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.01\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" penny (no longer exists in physical form)\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.05\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" nickle\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.10\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" dime\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.25\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" quarter, two-bits\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.50\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" half dollar\", mdx(\"br\", null), mdx(\"p\", null, \"and then as a test \", mdx(CurrencyConverter, {\n    amount: \"0.50\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" that is fifty cents converted to usd and colones\", mdx(\"br\", null)));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"CurrencyConverterCDN"}}},{"node":{"id":"09efdb7f-a192-5566-85a3-44091369cc38","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"CurrencyConverterCRC\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar CurrencyConverter = makeShortcode(\"CurrencyConverter\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h3\", null, \"Convert Colones\"), mdx(CurrencyConverter, {\n    amount: \"5\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" aluminum coin\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"10\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" brass coin\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"20\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" aluminum coin\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"25\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" bronze/aluminum coin\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"50\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" bronze/aluminum coin, media teja\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"100\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" brass coin, teja\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"500\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" bronze/aluminum coin, cinco tejas\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"1000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" un rojo\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"2000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"3000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"4000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"5000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" tuc\\xE1n, but now has a picture of a monkey on it.\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"6000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"7000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"8000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"9000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"10000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), \" un puma\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"20000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"100000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"1000000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"10000000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"100000000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"1000000000\",\n    currency: \"crc\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"CurrencyConverterCRC"}}},{"node":{"id":"9d5bd5f6-d052-528b-a9f7-e33f378b3342","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"CurrencyConverterUSD\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar CurrencyConverter = makeShortcode(\"CurrencyConverter\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h3\", null, \"Convert USD\"), mdx(CurrencyConverter, {\n    amount: \"1\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" single, buck, simoleon, ace, greenback (19th century it was black on the front, green on the back), bean, bone\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"2\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" duce, Tom\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"3\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"4\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"5\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" fin, fiver, five-spot, nickel (yes not a typo)\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"6\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"7\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"8\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"9\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"10\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" sawbuck, ten-spot, Hamilton, dime (yes not a typo)\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"20\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" dub, double sawbuck, Jackson\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"25\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" quarter (yes not a typo)\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"50\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" frog\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"100\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" Benjamin, C-Note, yard\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"1000\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" large, grand, G, K, stack, bland\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"10000\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" rack (100 - $100 bills)\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"100000\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" brick\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"1000000\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" rock, M, MM (Mil * Mil; 1000x1000), Mil\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.01\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" penny\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.05\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" nickel\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.10\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" dime\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.25\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" quarter, two-bits\", mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"0.50\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), \" fifty-cent piece\", mdx(\"br\", null));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"CurrencyConverterUSD"}}},{"node":{"id":"1f65e857-efa9-5b33-87f5-2fa7e55a64f9","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"sample\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar CurrencyConverter = makeShortcode(\"CurrencyConverter\");\nvar Calculate = makeShortcode(\"Calculate\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Sample Include File\"), mdx(\"h1\", null, \"Heading 1\"), mdx(\"h2\", null, \"Heading 2\"), mdx(\"h3\", null, \"Heading 3\"), mdx(\"h4\", null, \"Heading 4\"), mdx(\"h5\", null, \"Heading 5\"), mdx(\"h6\", null, \"Heading 6\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Italic\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Bold\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, mdx(\"em\", {\n    parentName: \"strong\"\n  }, \"Paragraph\")), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\"), mdx(\"p\", null, \"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Line Break:\"), \" (add two spaces at the end of the line)\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"This is a new line\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"This is the first paragraph of the blockquote\"), mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"This is the second paragraph of the blockquote\"), mdx(\"blockquote\", {\n    parentName: \"blockquote\"\n  }, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"This is a nested blockquote\"))), mdx(\"blockquote\", null, mdx(\"h1\", {\n    parentName: \"blockquote\"\n  }, \"Header in a blockquote\"), mdx(\"ul\", {\n    parentName: \"blockquote\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"List Item 1 in a blockquote\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"List Item 2 in a blockquote\")), mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Bold in a blockqoute\")), mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Italic in a blockqoute\"))), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Unordered List\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"List Item 1\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"List Item 2\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Ordered List\")), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"List Item 1\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"List Item 2\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Image\"), \"\\n\", mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/home-jumbotron.jpg\",\n    \"alt\": \"Image\"\n  }))), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Links\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/sample-everything-blog\"\n  }), \"Internal Link\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://www.websupergoo.com/\",\n    \"rel\": \"nofollow\"\n  }), \"External Link (with the rel=nofollow attribute)\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://www.websupergoo.com/\",\n    \"rel\": \"nofollow\",\n    \"target\": \"_blank\"\n  }), \"External Link (with the rel=nofollow and target=_blank attribute)\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Currency Converter\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Need to add '<br/\", \">\", \"' tag to add a new line...\")), mdx(CurrencyConverter, {\n    amount: \"2000\",\n    currency: \"usd\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(CurrencyConverter, {\n    amount: \"2000\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), mdx(\"br\", null), mdx(\"br\", null), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"...but if it has text between it, then you can just use the new line for markdown (two spaces)\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"The blah cost \", mdx(CurrencyConverter, {\n    amount: \"327\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" when I bought it.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"The boop cost \", mdx(CurrencyConverter, {\n    amount: \"327\",\n    currency: \"cad\",\n    mdxType: \"CurrencyConverter\"\n  }), \" when I bought it.\"), mdx(Calculate, {\n    mdxType: \"Calculate\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"sample"}}},{"node":{"id":"bbff773e-93e8-5712-a296-9cab17c2d9ec","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"sample-twinset-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Your 1st title\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"sample-twinset-1"}}},{"node":{"id":"dbb0c438-7767-56ab-a916-d9aa12067b95","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"shop-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h4\", null, \"T-Shirt\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))), mdx(\"h4\", null, \"Mug\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))), mdx(\"h4\", null, \"Gift Certificate ($5)\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"shop-1"}}},{"node":{"id":"61eb560e-0ea6-517f-bab4-7a0a7ab376e8","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"businessCamBirch\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Cam Birch\"), mdx(\"p\", null, \"Programmer, Designer, System implementer\"), mdx(\"p\", null, \"Father of 3 children, Married\"), mdx(\"h2\", null, \"History\"), mdx(\"p\", null, \"Cam came to work with me in 2004 and has worked in various capacities, all related to the computer systems. He has been our chief designer and programmer and is a huge benefit for everything I'm involved in. He also works as programmer/designer through another company for a charitable foundation that I volunteer for.\"), mdx(\"h2\", null, \"Current\"), mdx(\"p\", null, \"Lives in Calgary with his wife and 3 boys.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"businessCamBirch"}}},{"node":{"id":"7f7bbc56-ec0a-5057-9d01-4ea837f1f4a9","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"shop-3\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h4\", null, \"Shorts\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))), mdx(\"h4\", null, \"Keychain\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))), mdx(\"h4\", null, \"Gift Certificate ($15)\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"shop-3"}}},{"node":{"id":"eda42e63-44a8-5a96-90a5-a85805a39b09","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"shop-2\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h4\", null, \"Muscle Shirt\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))), mdx(\"h4\", null, \"Refrigerator Magnet\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))), mdx(\"h4\", null, \"Gift Certificate ($10)\"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/gift-certificate.jpg\",\n    \"alt\": \"Image\"\n  }))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"shop-2"}}},{"node":{"id":"9d2bac5a-ffcb-5490-b6ec-2b794eb6314b","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"CurrencyConverterLastUpdated\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar BuildDate = makeShortcode(\"BuildDate\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"The conversions on this page were calculated as of: \", mdx(BuildDate, {\n    mdxType: \"BuildDate\"\n  }), \". When looking at these values, realize you will be charged a premium to do the transaction, for example you may typically be charged between 3 and 10%. So for example, if the exchange rate for USD --> CDN is 1.30, For every 100 USD you give the bank, you may only get $117 CDN (10%) instead of the 130 CDN you expected. Or, if the commission is only 3%, and you give the bank $130CDN, you might only get $97 USD instead of the $100 USD you were expecting. Depending on how you move the money, there may be flat fees as well, for example, a $50USD or $100USD per transaction is not unheard of, which makes your $97 USD from $130CDN only $47 (or you have to pay, if the fee is $100, $230 to get $97 in USD.)\"), mdx(\"p\", null, \"Worse yet, if you work in 2 currencies that are not the USD or EURO, you can often expect to pay for TWO exchange rate fees - one to convert to USD and one to convert USD to the target currency.\"), mdx(\"p\", null, \"The moral of the story: Whenever possible\"), mdx(\"h1\", null, \"Keep money in the currency it is in, don't exchange it (at least not until Facebook's Libra is live)\"), mdx(\"h1\", null, \"When moving money when there is a $50 or other transaction fee - move large blocks at a time\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"CurrencyConverterLastUpdated"}}},{"node":{"id":"93abbad6-c69e-55a1-80ab-758edebd6874","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"business-Michael-Gonzalez-Rodriguez-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Michael (Mike) Gonzalez Rodriguez\"), mdx(\"p\", null, \"Costa Rica\"), mdx(\"p\", null, \"He worked full and part time on my team from September 2019 until May 2020.\"), mdx(\"p\", null, \"Sadly, he passed away on 2020.10.07. Based on the info I have, it appears it was due to COVID-19 or COVID-19 related factors.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"business-Michael-Gonzalez-Rodriguez-1"}}},{"node":{"id":"5b63967a-d2d4-54d4-99fa-6bba5868e800","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"Photographic-APS-CvsFullFrame\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Here are some standard sizes of lenses for Full Frame Digital (and Film) compared to the equivalent so called 'Digital' or APS-C. \"), mdx(\"p\", null, \"The left hand side is the lens size for a 35mm camera or a 'full frame' digital. The middle is what it is like when used on a Canon 20D a so called 'digital' size or APS-C. The right is a description about that lens size. All numbers are approximate, useful comparisons not trying to be exact, and besides, APS-C/Digital. See special note at the bottom about fisheye lenses.\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"11mm is a 18mm, and you are going to have a hard time with any 'reasonable' budget finding anything wider than this.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"13mm is a 21mm\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"16mm is a 26mm, the smaller the number, the more expensive the lens is usually.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"18mm is a 29mm, you can get some 18mm to larger, 55mm for example lenses, that are still not too expensive\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"28mm is a 45mm, a 28mm is what I consider the 'anything smaller than this is starting to get expensive' point\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"31mm is a 50mm, so a 30mm plus or minus is a good 'normal' lens\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"50mm is a 80mm, so a 50mm lens on a D20 is a good 'portrait' lens\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"70mm is a 112mm, at 112 we are starting to be 'telephoto', good for zooming in but still OK for portraiture.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"75mm is a 120mm. 120 is still a mild telephoto. Things start to look unnatural or flat. Not good for portraiture, but OK if you want a close-up and don't mind the flattening of perspective.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"80mm is a 130mm\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"100mm is a 160mm. Once you get here you have given up on perspective or you are purposely taking advantage of the flattened perspective, you are usually just zooming in to get a close up.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"200mm is a 320mm, you are going to need a tripod or very bright sunlight and/or a vibration reducing lens to take pictures with this. Also, when we start talking 300mm+ you are going to have to think about something that locks the lens up so that that vibration doesn't ruin the shot, ideally you want to find out how to take the picture without touching the camera - that will depend on what camera features you have - so that the movement of your finger pressing the button doesn't ruin the shot.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"300mm is a 480mm, 300mm is the biggest size you are normally going to find at a 'reasonable' price. It's also the biggest I've ever taken a hand held (resting against a solid object) picture with so I have no hope of using a 480 without a tripod or vibration reducing lens.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"400mm is a 640mm, a 'monster' zoom. 400 is the largest I own and it is a vibration reducing lens, which is necessary unless you have a monster tripod that is really steady - your little $60 cheap tripod isn't going to be sufficient. I have a monster tripod, but I still use the VR feature to get good photos at this level of zoom if there is any wind whatsoever.\"))), mdx(\"p\", null, \"A special note about fisheye lenses. These are special lenses that 'embrace' the distortion of very small focal lengths. They are NOT simply 'really short focal length' lenses. In theory, a fisheye lens should be cheaper than a 'correct' lens of the same focal length because it is not trying to add extra glass to correct the circular distortion. If you use a full frame fisheye lens on an APS-C camera, you will be disappointed. You will get a lot of distortion without the fisheye effect. Also be careful when looking at specs. The term 'full frame' in fisheye lenses has for years - long before APS-C - had a special meaning. So if you see it in literature for a fisheye lens, realize it may have nothing to do directly with 'full frame' vs 'APS-C' sized sensors. 'full frame' in this context is also called 'diagonal fisheye effect'. I don't personally use fisheye lenses, so I'll stop here with just the warning that fisheye lenses are special and you will likely be disappointed until when and if someone comes out with a APS-C fisheye lens.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"Photographic-APS-CvsFullFrame"}}},{"node":{"id":"b4bb3178-a850-5bd1-84a6-7b7baa9ed869","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"business-perfect-software-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"The perfect military government software:\"), mdx(\"p\", null, \"In the 80's the US military spent over $5,000,000 (and back in THOSE days, $5M USD was a LOT of money.) writing a program that THEY agreed could be written for $5,000. But they spent the $5M to PROVE that a PERFECT computer design and a PERFECT computer software was possible, that would run 1st time with no bugs. \"), mdx(\"p\", null, \"(Remember, this is a TRUE story.)\"), mdx(\"p\", null, \"They called the press for a big gala event for the 1st time they were going to run the software.\"), mdx(\"p\", null, \"The software was supposed to shoot a laser and hit a 25cent sized piece (about 3cm around) on the shuttle craft while it sped by.\"), mdx(\"p\", null, \"They timed it for when the shuttle craft was reflecting the light of the sun so that the press could see where the shuttlecraft was.\"), mdx(\"p\", null, \"They ran the program. The shuttlecraft was straight ahead. The laser gun started to move \\u2026. then it shot about 90 degrees to the right. \"), mdx(\"p\", null, \"LITERALLY missing the shuttlecraft by a million miles.\"), mdx(\"p\", null, \"They called the press together the next day. Turns out: The programmers were humans, so THEY of course thought in MILES. But the SCIENTISTS had this really weird way of thinking: They used some obscure measurement system known as 'Kilometers'\"), mdx(\"p\", null, \"They made a quick change to the software to change it to use KM's as the measurement value, called the press the next day (only a handful showed up) and hit the quarter sized target on the shuttlecraft.\"), mdx(\"p\", null, \"The point: By spending ONLY $4,995,000 on a $5,000 program. They accomplished exactly NOTHING. The iterative process would have:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"cost $4,995,000 less\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"cost 99.9% less\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"would have been completed SOONER (2 years sooner fwiw)\")), mdx(\"p\", null, \"The ONLY thing this did was to save the military money in the future.\"), mdx(\"p\", null, \"Oops, sorry, no hammers cost $10,000 in the military. They didn't even benefit from their mistake by learning from it. \"), mdx(\"h1\", null, \"The perfect bank software:\"), mdx(\"p\", null, \"The other story, around 1986. A bank spend an obscene amount of money to write 'the perfect' software so that they could switch over to the new software without running in parallel.\"), mdx(\"p\", null, \"They argued that running in parallel was 'too expensive' it was better to 'do it right the first time.'\"), mdx(\"p\", null, \"They wrote for months articles telling people like me that we were failure cases waiting to happen and that we should program' perfectly' like them instead of iterative - or any of the steps in between.\"), mdx(\"p\", null, \"After writing all these inflammatory articles and getting \\\"letters to the editor\\\" warning customers of the bank to panic withdraw their money before the trigger.\"), mdx(\"p\", null, \"The public TRUSTED the bank and did not withdraw the money.\"), mdx(\"p\", null, \"There were some unknown, possibly very small number of very small bugs.\"), mdx(\"p\", null, \"The bank was bankrupt 3 months after the trigger date.\"), mdx(\"p\", null, \"We never did find out WHAT the bugs were that they missed - they stopped writing articles right after the trigger date when everything started to fail.\"), mdx(\"h1\", null, \"Concluding thoughts:\"), mdx(\"p\", null, \"There have been many other sad stories through the years. Such as when Google thought in the mid 2010's that \\\"greying out a button is a good way to tell some they can click on it\\\" (Material design) or Microsoft's failed Windows 8 (We took away all features that 20% of people or fewer used. Oops - that means we ticked off EVERY user in the world because EVERY user uses at least ONE feature that 80% of the rest don't. And \\\"We spent millions of dollars on focus groups with NEW people who have never used Microsoft Windows before LOVED Windows 8 over Windows 7\\\", and concluded without spending anything: so our huge installed base is ALSO going to love this completely new UI that is missing most of the features of the old one.)\"), mdx(\"p\", null, \"My point is: the iterative way can, at times, be frustrating, especially for the designers and programmers who have to make adjustments.\"), mdx(\"p\", null, \"But it is the BEST way I have found to write good quality software. In the 44 years I have been running software projects, starting in 1976 (a kid in high school - it might have been up to 3 years earlier, so I'm going with the conservative guess of 1976) and continuing to 2020 as of writing. Again, at time of writing \\u2026 that's longer than most people on my team have been alive!\"), mdx(\"p\", null, \"Would I use the iterative way for writing a heart surgery application?\"), mdx(\"p\", null, \"Would I use the iterative way for writing eye surgery?\"), mdx(\"p\", null, \"No, but I have also decided to NEVER write software where a bug can cause permanent human suffering. But then I ALSO wouldn't trust someone who said \\\"you are the first human we are using this on - and we wrote perfect code the 1st time so we didn't need to test it on any animals either.\\\"\"), mdx(\"p\", null, \"Am I saying the iterative way solves all problems? No! We write tests BEFORE we write code. We write unit tests, we have humans test - humans who are hired explicitly to do this as their job, we have beta tests, we roll out major changes slowly to customers and dozens of other things to try to get the best quality/cost ratio we can. But the iterative way, despite its many flaws, in the best way for most programming that we have found.\"), mdx(\"h1\", null, \"Are some programmers perfect?\"), mdx(\"p\", null, \"On the other hand \\u2026 some programmers are just really good.\"), mdx(\"p\", null, \"This one I BELIEVE is a true story, at the time I was told it, it had happened 'just months ago', it was published in a 'large format' print computer business magazine (11x17\\\") in the 1980's.\"), mdx(\"p\", null, \"The military asked for a program that would fire an ICBM into a silo.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"The brass expected the pink.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"The programmer did the gold.  \"), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/business-perfect-software.png\",\n    \"alt\": \"Perfect software - in a silo\"\n  }))), mdx(\"p\", null, \"Now \\u2026 imagine how this looked in real life:\"), mdx(\"p\", null, \"The brass were all sitting in their stand, watching the (non-nuke, non-explosive) ICBM coming along. Then it PASSED the silo in front them. They all panicked. Then it did the loop, and went INTO the silo.\"), mdx(\"p\", null, \"When he was pulled up for a court-marshal, the programmer 'innocently' said that he was told to fly the ICBM 'into' the silo, and that had he done it the pink way, it would not have met the definition of the assignment. He also said there wasn't enough room to go up BEFORE the silo because it was fired too close (green line).\"), mdx(\"p\", null, \"For my ESL friends, 'into' can mean either of the pink or gold line definitions. The programmer chose to take it to mean fly  fully into the silo to the bottom (gold line), not into as in 'the car ran into a person' (pink line). Also notice that \\\"in to\\\" could not have been used, it had to be worded \\\"into\\\". To distinguish between the pink (simplest 'into') and the gold (most specific and therefore arguably the most accurate 'into') the assignment would have needed additional words to clarify, such as \\\"Use the most direct line of attack to fly the ICBM into the far wall of the silo\\\" or, if they had wanted what the programmer did \\\"Fly the ICBM into the silo as deep as possible, ideally hitting the bottom\\\".\"), mdx(\"p\", null, \"He wasn't court marshalled, but everyone knew that he had done it for show, and that he fully understood the pink was the way intended and that he knew the brass was going to panic as it flew past in front of them.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"business-perfect-software-1"}}},{"node":{"id":"270a84a7-edf9-5b68-95db-8f9d0d817232","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"general-hottub-life-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"How to extend your hot tub beyond it's warrantee\"), mdx(\"p\", null, \"Hot tubs are expenisive purchases. Many people don't use them as much as they could, and even if you don't use them, they wear out just 'sitting' there, especially if you are in a cold climate (that freezes) and your hot tub is outside.\"), mdx(\"p\", null, \"I have learned, the big ones I learned the hard way, how to reduce the cost of maintenance and repairs.\"), mdx(\"h1\", null, \"First some minor tips\"), mdx(\"p\", null, \"Test your water chemistry periodically. If you get things out of wack, it can damage your pump, your heater and other things. There is lots about this written on the internet, so for now, I'm just going to say: do it!\"), mdx(\"p\", null, \"Use copper/silver for sterilzation instead of bleach/chlorine. Use 1/2 cup of bleach per short haired person per use and 1 cup of bleach per long haired person per use, after use, to collect the biologicals in a way the filter can filter them out. This way there is less bleach/chlorine damagaging things like the surfaces of the hot tub and probably more important, the cover.\"), mdx(\"p\", null, \"Use Walmart bleach, or other low cost household bleach, instead of expenive 'chlorine'. Here is the thing: Household bleach is made to MORE stringent standards than even profession pool chlorines - and it is the exact same chemical. So household bleach is a BETTER (and a lot cheaper) choice than pool bleach! My hot tub store admits this, but sells chorine for those people that WANT to pay more.\"), mdx(\"h1\", null, \"Now the major tips\"), mdx(\"p\", null, \"I have seen that the 2 most common repairs are:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"A pipe bursts because it has been, for years, rubbing against another pipe. Now when I say burst, I really mean \\\"it springs a small leak that, when the pump is on, sprays out water\\\". But it sprays out a LOT of water in a day, and you have to both replace that water AND you have to heat the new water. But even worse ...\")), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"All that water spraying around causes mold (yuck) under the hot tub. But even worse ...\")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"All that water spraying gets at a minimum high humidity and at the worst water on your pump and electronics, causing the pumps and electronics to fail years before they have to\")), mdx(\"p\", null, \"Now, you could fix one at a time as you notice them (you 1st notice them eitherl because of water leaking out around the hot tub or, if you are unluckly like me, because you start to notice that you need to add more and more water every day to keep the levels up.)\"), mdx(\"p\", null, \"Unfortunately, hot tubs are NOT easy to remove the panel and, it my area, insulation and tape that prevents air and moisture flow out to prevent freezing and heat loss. So you put it off for weeks until there is lots of damaage.\"), mdx(\"p\", null, \"What you will find is everywhere 2 pipes rub against each other, they are going to eventually spring a leak. In my most carefully watched case, half of them sprung a leak between 5 years and 8 years. (I still had a warrantee at 5 years, but they charged to send a technician to 'do' the warrantee work - so I accepted the free pump and connector and did the repair - very effectively - myself)\"), mdx(\"p\", null, \"Where I failed, is that I fixed \\\"the\\\" leak and pump. Then a year later \\\"The\\\" leak and pump. Then a year later \\\"The TWO leaks\\\" (fortunately no pump). Then a year later \\\"The\\\" leak and the OTHER pump and the control panel.\"), mdx(\"p\", null, \"At this point (sometimes I am a REALLY slow learner, just ask my wife) I finnally woke up and realized: I should do something about this rather than just repairing each leak as I find it. So the first thing I did was write this blog!\"), mdx(\"p\", null, \"My first thought was \\\"This is a manufacturer DESIGN FLAW\\\". But we currently have 2 hot tubs, one indoor (Dynasty Spa) and one outdoor (Polar Spas), from two manufacturers, and both have the same 'design flaw'.\"), mdx(\"p\", null, \"I guess the thought in the hot tub industry is: Our design will outlast the warrantee, and then when the pipes all start leaking, the customer will throw the hot tub awaiy and come back and buy another one from us. To be fair, I found the staff and owner at both of these stores to be really good, so I suspect that this problem seldom happens 'during warrantee' so they simply don't realize that they have this design flaw. I mentioned it to a gal at Dynasty spa, but I don't think it mentally registered as something that should be reported to managment.\"), mdx(\"h1\", null, \"Advise to self:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Next time I buy a hot tub, don't wait for the warrantee to run out. Immmediately go in, put some protection between every pipe that touches each other so that they don't wear through 1 month after the warrantee runs out.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"If that turns out to not be sufficient, when I get the FIRST leak: Put a 'couple' at EVERY location that pipes touch each other (2 couple running against each other should last 10x's longer - 100 years compared to 2 soft pipes running against each other)\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Start miy own hot tub company and do it right. OK, I probably won't do this, while I build and sell companies, I do mostly B2B companies not B2C product companies.\"))), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/2020-09-05-hottub-leak1.png\",\n    \"alt\": \"The front pipe has 2 pinholes (loses 50 gallons a day) and the back is worn partly. The black line shows me where to cut to fix it.\"\n  })), \"\\n\", mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/2020-09-05-hottub-leak2.png\",\n    \"alt\": \"The top pipe is going to soon start leaking\"\n  })), \"\\n\", mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/2020-09-05-hottub-leak3.png\",\n    \"alt\": \"It is a combination of which is softer and which has thinner walls that will determine which of these two will leak first - the winner in my case? The thicker walled white is the 1st to leak.\"\n  })), \"\\n\", mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/2020-09-05-pump1.png\",\n    \"alt\": \"Replacing an expensive pump because the manufacturer had 2 pipes touching each other, that hurts\"\n  }))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"general-hottub-life-1"}}},{"node":{"id":"5681a253-4679-590d-bfa3-be81df67068b","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"12V-LineLoss-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"For setting up LED or even a whole house 12V system, knowing how much is lost is critical\"), mdx(\"p\", null, \"Here is the voltage drop for each 10 feet (about 3 metres, 3.048) of wire.  \", mdx(\"br\", null), \"This page is intended for Peter's personal use only.\", mdx(\"br\", null), \" Example, if the consumer of power is 100' away from the converter providing the power, and you are drawing 50 watts (4.17 amps), and you want at maximum a 1 volt drop in line voltage you need a 10 gauge wire.\"), mdx(\"table\", null, mdx(\"tbody\", null, mdx(\"tr\", null, mdx(\"table\", {\n    border: \"1\",\n    cellSpacing: \"1\",\n    cellPadding: \"3\"\n  }, mdx(\"tbody\", null, mdx(\"tr\", null, mdx(\"th\", {\n    rowSpan: \"4\"\n  }, \"LED and controller POWER at source Watts\"), mdx(\"th\", null, \"\\xA0\"), mdx(\"th\", {\n    colSpan: \"5\"\n  }, \"Wire gauge (AWG), Class K copper\")), mdx(\"tr\", null, mdx(\"th\", null, \"\\xA0\"), mdx(\"th\", null, \"18\"), mdx(\"th\", null, \"16\"), mdx(\"th\", null, \"12\"), mdx(\"th\", null, \"10\"), mdx(\"th\", null, \"8\")), mdx(\"tr\", null, mdx(\"th\", {\n    rowSpan: \"2\"\n  }, \"Amps\"), mdx(\"th\", {\n    colSpan: \"5\"\n  }, \"Resistance (Ohms per 10' of cable, both conductors) @ 25 \\xB0C\")), mdx(\"tr\", null, mdx(\"th\", {\n    className: \"style1\"\n  }, \"0.1358\"), mdx(\"th\", {\n    className: \"style1\"\n  }, \"0.0852\"), mdx(\"th\", {\n    className: \"style1\"\n  }, \"0.0336\"), mdx(\"th\", {\n    className: \"style1\"\n  }, \"0.0212\"), mdx(\"th\", {\n    className: \"style1\"\n  }, \"0.0136\")), mdx(\"tr\", null, mdx(\"td\", null, \"20\"), mdx(\"td\", null, \"1.67\"), mdx(\"td\", null, \"0.226\"), mdx(\"td\", null, \"0.142\"), mdx(\"td\", null, \"0.056\"), mdx(\"td\", null, \"0.035\"), mdx(\"td\", null, \"0.023\")), mdx(\"tr\", null, mdx(\"td\", null, \"25\"), mdx(\"td\", null, \"2.08\"), mdx(\"td\", null, \"0.283\"), mdx(\"td\", null, \"0.178\"), mdx(\"td\", null, \"0.070\"), mdx(\"td\", null, \"0.044\"), mdx(\"td\", null, \"0.028\")), mdx(\"tr\", null, mdx(\"td\", null, \"30\"), mdx(\"td\", null, \"2.50\"), mdx(\"td\", null, \"0.340\"), mdx(\"td\", null, \"0.213\"), mdx(\"td\", null, \"0.084\"), mdx(\"td\", null, \"0.053\"), mdx(\"td\", null, \"0.034\")), mdx(\"tr\", null, mdx(\"td\", null, \"35\"), mdx(\"td\", null, \"2.92\"), mdx(\"td\", null, \"0.396\"), mdx(\"td\", null, \"0.249\"), mdx(\"td\", null, \"0.098\"), mdx(\"td\", null, \"0.062\"), mdx(\"td\", null, \"0.040\")), mdx(\"tr\", null, mdx(\"td\", null, \"40\"), mdx(\"td\", null, \"3.33\"), mdx(\"td\", null, \"0.453\"), mdx(\"td\", null, \"0.284\"), mdx(\"td\", null, \"0.112\"), mdx(\"td\", null, \"0.071\"), mdx(\"td\", null, \"0.045\")), mdx(\"tr\", null, mdx(\"td\", null, \"45\"), mdx(\"td\", null, \"3.75\"), mdx(\"td\", null, \"0.509\"), mdx(\"td\", null, \"0.320\"), mdx(\"td\", null, \"0.126\"), mdx(\"td\", null, \"0.080\"), mdx(\"td\", null, \"0.051\")), mdx(\"tr\", null, mdx(\"td\", null, \"50\"), mdx(\"td\", null, \"4.17\"), mdx(\"td\", null, \"0.566\"), mdx(\"td\", null, \"0.355\"), mdx(\"td\", null, \"0.140\"), mdx(\"td\", null, \"0.088\"), mdx(\"td\", null, \"0.057\")), mdx(\"tr\", null, mdx(\"td\", null, \"55\"), mdx(\"td\", null, \"4.58\"), mdx(\"td\", null, \"0.622\"), mdx(\"td\", null, \"0.391\"), mdx(\"td\", null, \"0.154\"), mdx(\"td\", null, \"0.097\"), mdx(\"td\", null, \"0.062\")), mdx(\"tr\", null, mdx(\"td\", null, \"60\"), mdx(\"td\", null, \"5.00\"), mdx(\"td\", null, \"0.679\"), mdx(\"td\", null, \"0.426\"), mdx(\"td\", null, \"0.168\"), mdx(\"td\", null, \"0.106\"), mdx(\"td\", null, \"0.068\")), mdx(\"tr\", null, mdx(\"td\", null, \"65\"), mdx(\"td\", null, \"5.42\"), mdx(\"td\", null, \"0.736\"), mdx(\"td\", null, \"0.462\"), mdx(\"td\", null, \"0.182\"), mdx(\"td\", null, \"0.115\"), mdx(\"td\", null, \"0.074\")), mdx(\"tr\", null, mdx(\"td\", null, \"70\"), mdx(\"td\", null, \"5.83\"), mdx(\"td\", null, \"0.792\"), mdx(\"td\", null, \"0.497\"), mdx(\"td\", null, \"0.196\"), mdx(\"td\", null, \"0.124\"), mdx(\"td\", null, \"0.079\")), mdx(\"tr\", null, mdx(\"td\", null, \"75\"), mdx(\"td\", null, \"6.25\"), mdx(\"td\", null, \"0.849\"), mdx(\"td\", null, \"0.533\"), mdx(\"td\", null, \"0.210\"), mdx(\"td\", null, \"0.133\"), mdx(\"td\", null, \"0.085\")), mdx(\"tr\", null, mdx(\"td\", null, \"80\"), mdx(\"td\", null, \"6.67\"), mdx(\"td\", null, \"0.905\"), mdx(\"td\", null, \"0.568\"), mdx(\"td\", null, \"0.224\"), mdx(\"td\", null, \"0.141\"), mdx(\"td\", null, \"0.091\")), mdx(\"tr\", null, mdx(\"td\", null, \"85\"), mdx(\"td\", null, \"7.08\"), mdx(\"td\", null, \"0.962\"), mdx(\"td\", null, \"0.604\"), mdx(\"td\", null, \"0.238\"), mdx(\"td\", null, \"0.150\"), mdx(\"td\", null, \"0.096\")), mdx(\"tr\", null, mdx(\"td\", null, \"90\"), mdx(\"td\", null, \"7.50\"), mdx(\"td\", null, \"1.019\"), mdx(\"td\", null, \"0.639\"), mdx(\"td\", null, \"0.252\"), mdx(\"td\", null, \"0.159\"), mdx(\"td\", null, \"0.102\")), mdx(\"tr\", null, mdx(\"td\", null, \"95\"), mdx(\"td\", null, \"7.92\"), mdx(\"td\", null, \"1.075\"), mdx(\"td\", null, \"0.675\"), mdx(\"td\", null, \"0.266\"), mdx(\"td\", null, \"0.168\"), mdx(\"td\", null, \"0.108\")), mdx(\"tr\", null, mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"100\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"8.33\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"-\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"0.710\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"0.280\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"0.177\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"0.113\")), mdx(\"tr\", null, mdx(\"td\", null, \"105\"), mdx(\"td\", null, \"8.75\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.746\"), mdx(\"td\", null, \"0.294\"), mdx(\"td\", null, \"0.186\"), mdx(\"td\", null, \"0.119\")), mdx(\"tr\", null, mdx(\"td\", null, \"110\"), mdx(\"td\", null, \"9.17\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.781\"), mdx(\"td\", null, \"0.308\"), mdx(\"td\", null, \"0.194\"), mdx(\"td\", null, \"0.124\")), mdx(\"tr\", null, mdx(\"td\", null, \"115\"), mdx(\"td\", null, \"9.58\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.817\"), mdx(\"td\", null, \"0.322\"), mdx(\"td\", null, \"0.203\"), mdx(\"td\", null, \"0.130\")), mdx(\"tr\", null, mdx(\"td\", null, \"120\"), mdx(\"td\", null, \"10.00\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.852\"), mdx(\"td\", null, \"0.336\"), mdx(\"td\", null, \"0.212\"), mdx(\"td\", null, \"0.136\")), mdx(\"tr\", null, mdx(\"td\", null, \"125\"), mdx(\"td\", null, \"10.42\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.350\"), mdx(\"td\", null, \"0.221\"), mdx(\"td\", null, \"0.141\")), mdx(\"tr\", null, mdx(\"td\", null, \"130\"), mdx(\"td\", null, \"10.83\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.364\"), mdx(\"td\", null, \"0.230\"), mdx(\"td\", null, \"0.147\")), mdx(\"tr\", null, mdx(\"td\", null, \"135\"), mdx(\"td\", null, \"11.25\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.378\"), mdx(\"td\", null, \"0.239\"), mdx(\"td\", null, \"0.153\")), mdx(\"tr\", null, mdx(\"td\", null, \"140\"), mdx(\"td\", null, \"11.67\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.392\"), mdx(\"td\", null, \"0.247\"), mdx(\"td\", null, \"0.158\")), mdx(\"tr\", null, mdx(\"td\", null, \"145\"), mdx(\"td\", null, \"12.08\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.406\"), mdx(\"td\", null, \"0.256\"), mdx(\"td\", null, \"0.164\")), mdx(\"tr\", null, mdx(\"td\", null, \"150\"), mdx(\"td\", null, \"12.50\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.420\"), mdx(\"td\", null, \"0.265\"), mdx(\"td\", null, \"0.170\")), mdx(\"tr\", null, mdx(\"td\", null, \"155\"), mdx(\"td\", null, \"12.92\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.434\"), mdx(\"td\", null, \"0.274\"), mdx(\"td\", null, \"0.175\")), mdx(\"tr\", null, mdx(\"td\", null, \"160\"), mdx(\"td\", null, \"13.33\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.448\"), mdx(\"td\", null, \"0.283\"), mdx(\"td\", null, \"0.181\")), mdx(\"tr\", null, mdx(\"td\", null, \"165\"), mdx(\"td\", null, \"13.75\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.462\"), mdx(\"td\", null, \"0.292\"), mdx(\"td\", null, \"0.187\")), mdx(\"tr\", null, mdx(\"td\", null, \"170\"), mdx(\"td\", null, \"14.17\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.476\"), mdx(\"td\", null, \"0.300\"), mdx(\"td\", null, \"0.192\")), mdx(\"tr\", null, mdx(\"td\", null, \"175\"), mdx(\"td\", null, \"14.58\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.490\"), mdx(\"td\", null, \"0.309\"), mdx(\"td\", null, \"0.198\")), mdx(\"tr\", null, mdx(\"td\", null, \"180\"), mdx(\"td\", null, \"15.00\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.504\"), mdx(\"td\", null, \"0.318\"), mdx(\"td\", null, \"0.204\")), mdx(\"tr\", null, mdx(\"td\", null, \"185\"), mdx(\"td\", null, \"15.42\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.518\"), mdx(\"td\", null, \"0.327\"), mdx(\"td\", null, \"0.209\")), mdx(\"tr\", null, mdx(\"td\", null, \"190\"), mdx(\"td\", null, \"15.83\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.532\"), mdx(\"td\", null, \"0.336\"), mdx(\"td\", null, \"0.215\")), mdx(\"tr\", null, mdx(\"td\", null, \"195\"), mdx(\"td\", null, \"16.25\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.546\"), mdx(\"td\", null, \"0.345\"), mdx(\"td\", null, \"0.221\")), mdx(\"tr\", null, mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"200\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"16.67\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"-\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"-\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"0.560\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"0.353\"), mdx(\"td\", {\n    style: {\n      \"borderBottomWidth\": \"2px\"\n    }\n  }, \"0.226\")), mdx(\"tr\", null, mdx(\"td\", null, \"205\"), mdx(\"td\", null, \"17.08\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.574\"), mdx(\"td\", null, \"0.362\"), mdx(\"td\", null, \"0.232\")), mdx(\"tr\", null, mdx(\"td\", null, \"210\"), mdx(\"td\", null, \"17.50\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.588\"), mdx(\"td\", null, \"0.371\"), mdx(\"td\", null, \"0.238\")), mdx(\"tr\", null, mdx(\"td\", null, \"215\"), mdx(\"td\", null, \"17.92\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.602\"), mdx(\"td\", null, \"0.380\"), mdx(\"td\", null, \"0.243\")), mdx(\"tr\", null, mdx(\"td\", null, \"220\"), mdx(\"td\", null, \"18.33\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.616\"), mdx(\"td\", null, \"0.389\"), mdx(\"td\", null, \"0.249\")), mdx(\"tr\", null, mdx(\"td\", null, \"225\"), mdx(\"td\", null, \"18.75\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.630\"), mdx(\"td\", null, \"0.398\"), mdx(\"td\", null, \"0.255\")), mdx(\"tr\", null, mdx(\"td\", null, \"230\"), mdx(\"td\", null, \"19.17\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.644\"), mdx(\"td\", null, \"0.406\"), mdx(\"td\", null, \"0.260\")), mdx(\"tr\", null, mdx(\"td\", null, \"235\"), mdx(\"td\", null, \"19.58\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.658\"), mdx(\"td\", null, \"0.415\"), mdx(\"td\", null, \"0.266\")), mdx(\"tr\", null, mdx(\"td\", null, \"240\"), mdx(\"td\", null, \"20.00\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"-\"), mdx(\"td\", null, \"0.672\"), mdx(\"td\", null, \"0.424\"), mdx(\"td\", null, \"0.272\"))))))), mdx(\"table\", null, mdx(\"tbody\", null, mdx(\"tr\", null, mdx(\"td\", {\n    style: {\n      \"verticalAlign\": \"top\",\n      \"textDecoration\": \"underline\",\n      \"textTransform\": \"uppercase\"\n    }\n  }, \"note:\"), mdx(\"td\", null, mdx(\"ol\", null, mdx(\"li\", null, \"Why blank spots? The chart shows voltage drops for maximum of 80% of the cable's max amperage.\"), mdx(\"li\", null, \"AIt provides voltage drops for a maximum wattage of 240 watts which is 80% of 300 watt transformer circuit rating.\")))))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"12V-LineLoss-1"}}},{"node":{"id":"d1bc8197-380b-5983-bc65-2e8c1dc09c94","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"a-great-bluetooth-waterproof-speaker-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Preamble\"), mdx(\"p\", null, \"I had a need for a 'new' speaker. \"), mdx(\"p\", null, \"Spoiler: The Aomais GO bluetooth waterproof speaker is a great speaker. It met my requirements and I am very happy with the value/cost ratio. But it isn't perfect.\"), mdx(\"h2\", null, \"What MY criteria were for choosing\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I needed a speaker that had enough volume to broadcast to a group of a dozen people spread out in a large room following COVID-19 protocols in the 2020.10 time period. (I think at this time, most countries have basically the same rules for gatherings.) I had decided, using a dbSPL meter that 90 decibels would be the correct volume.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I wanted to be able to take it 'to the beach' for presentations done there. (Yes I have a wonderful job, especially for someone generally considered a 'computer guy' since 1980.)\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I didn't want to spend a lot of money if I didn't have to, but I was willing to pay up to $300 Canadian\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I wanted it to be able to play good music, again think corporate events\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I didn't care about 'stereo' or 'surround' sound.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I cared about GOOD quality sound from bass to treble, but I didn't really care about it being as good as my Harmon Karden level system from 1979.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I did want to be able to get to that 90 dbSPL without distortion that my ears could hear; I used to care a lot about high quality systems, ran sound for decades for 2 churches, was a 'emergency' guy for running sound for 2 Christian Rock bands in the 1980's and I hate the sound of 'clipping' or 'hiss', 2 types of distortion.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"I wanted speakers that could reliably work at least 8 hours a day, charging each night acceptable.\"))), mdx(\"h2\", null, \"What I decided to buy\"), mdx(\"p\", null, \"I decided on the Aomais GO. It was $85 Canadian at Amazon, less than 1/3rd my budget. \"), mdx(\"p\", null, \"The reviews were good.\"), mdx(\"p\", null, \"I choose the solid black. It comes it two color with blue and orange at the time I ordered it. But this was for boring business (yes, even on the beach), so the solid black seemed to me to give the right look.\"), mdx(\"h2\", null, \"First impressions\"), mdx(\"p\", null, \"But read the second impressions...\"), mdx(\"h3\", null, \"first impression positives\"), mdx(\"p\", null, \"Pretty good volume, about what I expected given the 'ratings'.\"), mdx(\"p\", null, \"Sound a little 'muddled' compared to my 'cheap' ($200) Logitech speakers.\"), mdx(\"p\", null, \"MUCH better in volume and better in quality than any laptop I remember (I've never bought a laptop based on a speaker rating)\"), mdx(\"p\", null, \"UI a little funny - it installed as 2 devices, not one. The volume control on the COMPUTER is difficult, it keeps jumping back to the 'previous' value. But if I'm insistent, it finally says, \\\"OK fine, whatever\\\" and goes to the new volume setting, but then nothing seems to change.\"), mdx(\"p\", null, \"Ranking quality by range: Bass is better than treble\"), mdx(\"p\", null, \"As a 'really good' speaker for my criteria, and actually for any general criteria, I'm impressed.\"), mdx(\"p\", null, \"At the PRICE I'm impressed. It is 90% as good as ones I've bought that were double the price (they give gut feel, not technical rating) 10% more volume before distortion than the Aomais GO\"), mdx(\"p\", null, \"The solid black works for me visually. It basically won't be noticed, and that is it's job: Provide the sound I need without being noticed.\"), mdx(\"h3\", null, \"first impression minor negatives\"), mdx(\"p\", null, \"The biggest irritant is that they don't use a modern C USB port for charging, they use one of the older plugs that you insert the wrong way 8 times out of 9. In this day and age - why are they using such a stupid design when they could be using USB C? And you can't put an adaptor in because you lose the waterproofing. I did say these are 'minor' negatives, but those older \\\"one way only to insert ports\\\" is such a user hostile UX that I don't understand why they decided to do this to their users.\"), mdx(\"p\", null, \"The buttons are hard to read in a dim room, think a presentation with the lights turned down, fortunately there is enough tactile feel that if you memorize the order of the 4 buttons and what they do, you can easily 'feel' to find them.\"), mdx(\"p\", null, \"There is an annoying bright blue flashing light, again, think a darkened room for presentation. But a piece of black electricians tape as a flap 'fixes' that.\"), mdx(\"p\", null, \"The charging notification is a little annoying. \"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"If the cord is plugged in and it is charging, there is a red light, I like this part.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"If the cord gets unplugged, the red light goes out, if it wasn't for the next, I would like this part.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"If the speaker is charged, there is a red light, I do not like this part.\"))), mdx(\"p\", null, \"I would prefer to have a green light when it is plugged in but fully charged. I have never been a fan of \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/personal/nak/\"\n  }), \"NAK\"), \" I've been advising people against and fighting against NAK since 1969. Yes I'm that old, but my wife and I have 4 adult kids and, as of 2020, a 8,7,5 and 5 year old, so they keep me young!\"), mdx(\"h2\", null, \"Second impressions\"), mdx(\"p\", null, \"Remember ... it's never too late to make a first impression.\"), mdx(\"h3\", null, \"2nd impression positive\"), mdx(\"p\", null, \"There was a \\\"how to use this device\\\" sticker over one of the 2 tweeters. (2 tweeters, 2 bass speakers) When I remove that sticker, the sound is significantly less 'muddy' ... go figure. It probably doesn't sound as good when it is under water either, I'll have to try that. ;)\"), mdx(\"p\", null, \"So, my first impression feeling went up quite a bit - at it was already good. I retroactively adjusted the first impression in my permanent storage.\"), mdx(\"h3\", null, \"2nd impression negative\"), mdx(\"p\", null, \"There is no indication, when charging, about how fully the battery is. If the battery was completely drained, I guess I would know how many hours to a full charge, but if partially ... no indication. I don't know how hard it is, but all of my Rigid batteries tell me that info, and lots of others do with methods like \\\"blink pause blink pause blink\\\" means it is very low \\\"blink blink blink blink blink pause\\\" means it is almost full (with # of blinks in between indicating how charged.) But the Aomais GO doesn't give any indication other than \\\"charging\\\" or \\\"not charging either because it is unplugged or fully charged ... you guess\\\"\"), mdx(\"p\", null, \"There are only 15 settings for volume. They are biased toward the LOUD side. Even with the computer set on 6 out of 100, I can get the volume loud enough to have distortion (clipping tops of the waves) but the lowest volume is TOO LOUD for 'office background' etc.., purposes.\"), mdx(\"p\", null, \"Going outside of the parameters I had for buying this:\"), mdx(\"p\", null, \"I would NOT buy this as a speaker for our younger children in their bedrooms. If it was set to the LOWEST volume was in the kids bedroom, I think my wife would be saying \\\"TURN THAT DOWN' from the family room. Not because it is 'really' loud, but because she doesn't like to HEAR any sound from eDevices used in the bedrooms.\"), mdx(\"p\", null, \"In general I have three volumes that I have speakers playing at for personal listening at work or home:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Quiet background, so called white noise, enough that my tinnitus doesn't bother me. This speaker is unable to get that quiet in any way I have found.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Normal playing volume where music is my #1 task (anything else I'm doing being secondary.) This speaker is great for that.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"High volume, for a few favorite songs, and, there are times that I find having 'loud familiar' music allows me, in stressful situations, to concentrate on something specific. In this case I tend to 'suddenly' need to go from high volume to very low #1 level volume when the high volume suddenly becomes distracting.\"))), mdx(\"p\", null, \"And in any event, this speaker is significantly louder than I would EVER use as 'go to sleep' volume and it is significantly louder than I would want as my normal 'office' background volume.\"), mdx(\"h2\", null, \"Third and ongoing impressions:\"), mdx(\"h3\", null, \"ongoing impressions, Neutral\"), mdx(\"p\", null, \"It needs about 9 seconds, at least with my high end Asus ZenBook laptop, from the time you turn on the speaker until the time it is paired and playing sound from the computer.\"), mdx(\"p\", null, \"There is very hard to read, very small print on the label that I removed prior to the second impressions. It warns that you need to \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"make sure you close the cover over the ports before you put it in water, otherwise you may destroy it\"), \". So take this as your first (or second) warning.\"), mdx(\"p\", null, \"Checking the battery life I \"), mdx(\"h3\", null, \"ongoing impressions, positive\"), mdx(\"p\", null, \"When we put it on the sound meter, it turns out that, without noticeable distortion, it is 2 dbSPL \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"higher\"), \" than the $200 Logitech speakers. While 'noticeable' is obviously subjective, it was done with the same meter, same person, several times up and down, so I consider it reliable enough for a review like this and for life in general.\"), mdx(\"p\", null, \"Assuming 500 charge cycles at 40 hours, and assuming I only use it an average of 4 hours a day, that means it should last 5000 days, or 'over 13 years', and because that 500 charge cycles doesn't mean it is really dead it just won't last the full 40 hours, this battery may realistically last me 30 years; That puts me at 90 years old: If I still need it for business then, I think I can justify replacing after that much time. I do suspect though that, due to laws not allowing lead in solder anymore, that the poorer quality solders used these days, that I'm told tend to 'dry out and fail', mean it will likely die before the battery wears out.\"), mdx(\"p\", null, \"First test: \"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Day 1: Turned on at 8:06am, played about 4 hours of music at a low volume. Turned it off at 3 minutes after midnight. 16 hours including about 4 with music playing.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Day 2: Turned on at 9:08am, played about 5 hours of music at low volume. Noticed at 1:30am that it was still on. 16.5 hours, 32 so far, including about 5, 9 total with music playing. Then somewhere between 0 and 6 hours of being on without playing.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Day 3: Noticed at 8:17am that it had turned off. Turned it on. There was a red blinking light. I'm guessing it means 'low power'. But I set music on at low volume. It powered off at 8:39, 22 minutes later.\")), mdx(\"p\", null, \"Second test:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Day 1: 8:40am started to charge, red light solid. Somewhere between 12:30 and 1:37 it finished charging, so 4-5 hours for a full charge. Turned it on and started it playing. Interestingly, it started out medium volume, then, about 7 seconds later, went back to the volume I had previously set. Left it on, but stopped playing music at 10:20pm by moving it out of range of the blue tooth, at 2:00am I moved it back, it didn't reconnect. I turned it off and back on, some 7 seconds of medium loud volume, then back to the volume I had it set at. I'm beginning to understand why I initially THOUGHT I had control over the volume using the computer controls - but then it seemed I didn't. Turned the music off, but left speakers 'on' at 3:00am, \")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Day 2: turned music back a bit before 10:00am. 40 hours should be 4am day 3. But somewhere between 4pm and 7pm, it ran out of power.\"))), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"how did it work when I dunked it in the hot tub? Immediately after, while still wet?\")), mdx(\"h3\", null, \"ongoing impressions, negative\"), mdx(\"p\", null, \"No place to store the USB charge cord.\"), mdx(\"h1\", null, \"final conclusion\"), mdx(\"p\", null, \"You may think from all the negatives that I don't like this. But I would buy it again without second thought (I DID have second thought the 1st time around, while waiting for it to arrive!) for the same purpose. While there are quite a few 'minor' negatives, you have to realize, this was a really cheap device for what it does, so the fact it does a really good job at the basics for that price is impressive. Most of the fixes I am proposing can probably be made in future versions with just a firmware (software) upgrade, but I doubt Aomais even knows about this page.\"), mdx(\"h1\", null, \"The \\\"not required\\\" notice:\"), mdx(\"p\", null, \"Note I make NOTHING from you following my advice. These are all my opinions and no one paid me to post them. I put them up because I like to help other people.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"a-great-bluetooth-waterproof-speaker-1"}}},{"node":{"id":"b8c327b1-01d2-57ef-adcf-705e1c3e7dae","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"stiff-joints-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"How my 58 year old bones got 90% relief from stiff joints\"), mdx(\"p\", null, \"OK, so technically it wasn't my bones that got relief, it was my joints.\"), mdx(\"h1\", null, \"Executive summary\"), mdx(\"p\", null, \"The product I found relief from was\\n\", mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/files/stiff-joints-Jamieson.jpg\",\n    \"alt\": \"Jamieson's \\\"Glucosamine chondroitin MSM\\\"\"\n  })), \"\\n. I am not paid anything by them to recommend their product, and this was not a scientific test, I didn't try any other brands, I didn't try any other formulations.\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"500mg Glucosamine sulfate\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"400mg Chondroitin sulfate\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"400mg Methylsulfonylmethane (MSM)\"))), mdx(\"p\", null, \"I got noticeable relief a few hours after the 1st pill. I thought it was the 'placebo' effect - but the effects stayed even when I forgot about them. I had been told not to expect results for 30 days by the \\\"infallible internet\\\" and the writing on the product said: \\\"Use for a minimum of 1 month to see beneficial effects.\\\"\"), mdx(\"p\", null, \"As it probably says in Dr. Seuss' \\\"Green eggs and ham\\\" ... \\\"Try them, try them, you may see...\\\"\"), mdx(\"p\", null, \"If you are vegetarian or vegan, this product won't meet your rules. (shrimp and crab exoskeletons and bovine cartilage)\"), mdx(\"h1\", null, \"The details\"), mdx(\"p\", null, \"Glucosamine, best from glucosamine sulfate, chondroitin and MSM review\"), mdx(\"p\", null, \"In 2020.08 a comment from my 31 year old daughter commented about how 'old' she was feeling when she got up that day,\\nthat she was so stiff.\"), mdx(\"p\", null, \"My thought was that for as long as I could remember (years not decades) my knees and arm joints especially,\\nbut also other joints, were always very stiff after I was stationary for more than 20 minutes, sometimes less. \"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"When I would drive to the closest city, a 20 minute drive, I would be stiff getting out and for the first 5 or 6 steps.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"When I sit in a couch, such as watching TV (not one of my favorite activities) and I try to get up when the commercial comes, I always found myself very stiff until I had walked at least a few steps.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"When I stood at a counter for more than 20 minutes, my first couple steps were stiff.\"))), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"When I got down on the floor to play with my kids, I would be a little stiff getting down (because I hadn't been bending that way for hours), then I'd be stiff getting back up. If I played with them for a few minutes, getting up and down, I would loosen up and then forget about how stiff I had been.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"*hen I bent over to pick something up off the floor, i'd be stiff the first 4 to 8 times, then I would 'loosen up' as I picked up the next 5 to 10 items. But that first one, oh was I stiff every time.\"))), mdx(\"p\", null, \"I found the more active I have been, climbing walls, doing obstacle courses, trampolining, bicycling it gradually seemed to get slowly worse. I didn't blame the exercise, I blamed me 'getting older' and 'being overweight.'\"), mdx(\"p\", null, \"So her offhand comment lead me to spend some time on the internet to see - is this normal for someone my age? Is this a problem? And probably most important, is there something I should be doing?\"), mdx(\"p\", null, \"I feared that part or all of the problem was because I was overweight, and it has been so hard to lose weight and keep it off that I have despaired of every getting into my best weight range. I feared that it is a problem that is 'just' because I'm old and there is nothing I can do. I feared that I should be doing more exercise. I feared that I should be doing less exercise.\"), mdx(\"p\", null, \"I find there is a common problem that a lot of people have that causes stiffness of joints.\"), mdx(\"p\", null, \"Some people recommend taking Glucosamine every day (or 3x's a day).\"), mdx(\"p\", null, \"Some recommend taking Glucosamine, but specifically made from glucosamine sulfate.\"), mdx(\"p\", null, \"Some recommend adding chondroitin and/or MSM.\"), mdx(\"p\", null, \"They all said that you need to take whichever of the above you have to take it for a minimum of 30 days before you will\\nnotice any improvement. One source said it would take \\\"up to 3 months\\\" before the stiffness goes away, and all the bottles I read said I had to take 1 pill, 3 times a day, and then you need to keep\\ntaking it 3 times a day for the rest of your life, because if you skip, you will take days to 'recover', to get back.\"), mdx(\"p\", null, \"So when I went to the store, I was thinking. Do I start with just any old Glucosamine, and then if no change after 30 days, switch to\\nthe slightly more expensive (per gram of Glucosamine) from glucosamine sulfate,\\nand then if that didn't work, try 30 days adding chondroitin and if that still didn't work, try 30 days with MSM added\\nto the rest.\"), mdx(\"p\", null, \"Even the bottles, with the various options above, all said or implied, that I had to take the pills 3 times a day for 30 days before I would start to see results.\"), mdx(\"p\", null, \"So that meant I might be looking at 120 days, 4 months, before I saw any improvement, and I knew that I was not reliable and consistent\\nenough to do it 3 times a day, with meals (I often only have 1 meal a day), so even at the end of hte 120 days, I may\\nnot see improvement because I didn't do it right.\"), mdx(\"p\", null, \"I thought, I'm not doing a scientific study here. I just want relief. So I decided to buy 1 bottle of Glucosamine from glucosamine sulfate, with chondroitin and MSM\\nfrom what I believed was a reputable manufacturer, the brand I choose was Jamieson.\"), mdx(\"p\", null, \"I went home and took my first pill with supper on about 2020.10.01.\"), mdx(\"p\", null, \"That night I wasn't stiff when I got off the chair I had been sitting on. I grinned to myself and said: Wow, the placebo effect of those pills is very strong.\"), mdx(\"p\", null, \"I took 3 pills the next day - two on an empty stomach (breaking one rule).\"), mdx(\"p\", null, \"That afternoon, after the 2nd pill, I drove to the city. Got out and forgot that I wasn't stiff.\"), mdx(\"p\", null, \"I drove home and got out, and after a couple steps realized - I wasn't stiff!\"), mdx(\"p\", null, \"That night, after the 3rd pill, I had no stiffness, I was up and down with the kids.\"), mdx(\"p\", null, \"Remember, I had been told by the highly reliable source (random article on the internet by someone who sounded smart, they used\\na lot of jargon to say why it would work) that it would take 30 days to see a change.\"), mdx(\"p\", null, \"I thought about that and decided, ok, this is just a fluke, it isn't the Glucosamine from glucosamine sulfate, chondroitin and MSM  that is making\\nthe difference, I just wasn't stiff today.\"), mdx(\"p\", null, \"Fast forward a week. I have been very reliable taking the \\\"Glucosamine from glucosamine sulfate, chondroitin and MSM\\\" at least\\nonce every 2 days ;) some days I even took it twice in one day! The result: Most of the time I don't feel stiff. I'm bending\\ndown to pick things up that In the past months I would have groaned to pick up. When I do feel stiff, it is just a mild\\nstiffness, that reminds me to go and take a \\\"Glucosamine, with glucosamine sulfate, chondroitin and MSM\\\" pill, and 6 hours\\nlater, I'm not stiff at all again.\"), mdx(\"p\", null, \"Now let me be more technically correct. When I say 'not stiff at all', I'm exaggerating. I am still a little stiff. If I try to be completely honest, I'd say that 90% of the stiffness is gone and I'm left with 10% of the stiffness I used to have. But to understand my \\\"I'm not stiff at all again\\\" statement, you have to understand that I have been stiff for years, so in comparison, I really thought of it as no stiffness at all, until I 'sat back' and trying to be as accurate as I can.\"), mdx(\"p\", null, \"Now, let's be fair, while I am obese (technical definition), I have been fairly active the last few years. While I am almost\\n59 years old, my wife and I have 4 adult children and 4 young children (5-8 years old) that we are mom and dad to. While\\nI would not claim that I am a highly active person, I think it is fair to say that I am far more active than I was was 30\\nyears ago.\"), mdx(\"p\", null, \"So it may be that my miraculous results are because I was a marginal case with only a small amount of stiffness. But I don't care. I am just happy that it is working for me.\"), mdx(\"p\", null, \"I wish I had know about this before. I'm glad I know about it now.\"), mdx(\"p\", null, \"So if you have stiff joints, don't be put off by the \\\"30 days minimum to see results\\\" type warnings. Sure, for you it might take 30 days, but maybe some of you will be like me and see dramatic results in just hours after you take your first pill.\"), mdx(\"p\", null, \"As far as I can see, reading the details on the internet, there is a fairly common problem that many people experience, and that \\\"Glucosamine from glucosamine sulfate, chondroitin and MSM\\\" can help 'fix'. I've decided to not go into the details of what this common problem is - simply because I would be regurgitating what others are saying, I wouldn't be speaking anything that I know with certainty.\"), mdx(\"p\", null, \"What I know with certainty, is that starting to use \\\"Glucosamine from glucosamine sulfate, chondroitin and MSM\\\" started to get rid of MY stiffness within hours, it didn't take 30 days. what I know for certainty is that taking \\\"Glucosamine from glucosamine sulfate, chondroitin and MSM\\\" is worth it for me to take away the \\\"I feel old\\\" feeling in my body.\"), mdx(\"p\", null, \"If after 30 days of using Glucosamine from glucosamine sulfate, chondroitin and MSM, if you haven't already, you should probably consider the other more serious problems that can cause stiffness of joints and check with your doctor. Of course, if you already knew you have one of those, you should be dealing with them. But, and I am not a doctor, so this is just my unscientific opinion: You might also have the problem that \\\"Glucosamine, with glucosamine sulfate, chondroitin and MSM\\\" can help with, so maybe you should also start taking \\\"Glucosamine, with glucosamine sulfate, chondroitin and MSM\\\".\"), mdx(\"p\", null, \"I might someday try one of the lessor combinations (missing some of the components,) but as for now, I plan on taking \\\"Glucosamine from glucosamine sulfate, chondroitin and MSM\\\" many times a week. Then if I find myself somewhere in the world where I can't find at a reasonable price Glucosamine with all those other things, then I'll try a 'lessor' option. In other words, I am not planning on making this a detailed scientific experiment. I'm happy that the results are worth it for me enough to keep taking \\\"Glucosamine from glucosamine sulfate, chondroitin and MSM\\\" up to 3 times a day, and whenever I feel stiff, use that as a reminder to try to take them 2 or 3 times a day for the next few days at least!\"), mdx(\"p\", null, \"Fast forward 10 or 11 days, 2020.10.16. I have been taking one or two pills a day, never remembered to take 3, for the last 7 to 10 days. I take them whenever I happen to remember, and I'm near the bottle, and I have some water (they are big pills, I can swallow them without water if I have to, but given my results - I don't have to!) I can't remember now the last time I noticed I was stiff. I think there were one or two times. If I really concentrate hard on the stiffness, I'd say there is 1 or 2% of the original stiffness left. Compare that to my technical report 11 days ago where I said that \\\"no stiffness\\\" meant 90% gone, 10% left. The other side benefit, I've noticed that I am a bit more willing to get up and play physically with my little kids, and I've been giving a lot more 'leg rides' (where they sit or stand on my ankles while I'm sitting and give them 'a ride'.)\"), mdx(\"p\", null, \"I am extremely pleased with the Jamieson Glucosamine Chondroitine MSM 1300mg (I don't get paid to say this) and while I suspect other brands might be just as good, I'm not switching given the success I've had unless they stop being available to me readily.\"), mdx(\"h1\", null, \"The rules I broke\"), mdx(\"p\", null, \"I got 90% relief in less than 30 hours, and 99% in about 12 days, not 30 days.\"), mdx(\"p\", null, \"I take it whenever I remember, even on an empty stomach (otherwise I'd almost never take it, but I do try to) even just before going to bed. I did come up with a highly logical partial solution: I keep chocolate bars with the pills, that way I don't have to take the pills on an empty stomach. Update on about day 14, I no longer keep chocolate bars with the pills, but I do try a little bit to consume the pills after I've had \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"something\"), \" to eat like real food or a glass of hot chocolate.\"), mdx(\"h1\", null, \"The conclusion of the matter\"), mdx(\"p\", null, \"It is working for me. It isn't a perfect 100% solution, but it is very close. I feel younger. Now ... if I could just find some way to lose AND KEEP my weight off.\"), mdx(\"p\", null, \"Update 2020.11.03, about a month in. I have been taking one or two pills a day. I've had 3 times when I felt stiff so took a pill and several hours later was fine. Placebo effect? I don't know, but I do know this - if you are having stiffness in your joints, it is probably worth your while buying a bottle and seeing how it works for you!\"), mdx(\"p\", null, \"Update 2020.01.18, 3.5 months in, I have nearly finished one bottle of 120 pills, 10 left, so that means I've been consuming at a rate of just barely over 1 pill a day. Last week I had the back side of both knees stiff - I had done about 3 days of hard running in the basement with my kids playing catch, and I had only been having about 1 pill every 1 to 3 days. I switched to alternating between 2 pills a day and 1 a day (mostly a matter of forgetting) and got rid of most of the stiffness in about 3 to 4 days. So I bought a second bottle for when this one runs out.\"), mdx(\"h1\", null, \"non-obligatory notice\"), mdx(\"p\", null, \"Note I make NOTHING from you following my advice so I don't have to give notice, however: These are all my opinions and no one paid me to post them. I put them up because I like to help other people.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"stiff-joints-1"}}},{"node":{"id":"1c019c0f-485b-5f80-8fcf-f49ec7d6f3b3","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"key\": \"reusable\",\n  \"langKey\": \"en\",\n  \"title\": \"stiff-after-exercise-1\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I was introduced to this powder by my son, Shawn. I had commented to him that, after I went rock climbing, trampolining, obstacle course, I would spend hours in aches and pains that day and it would take two days to mostly recover.\"), mdx(\"p\", null, \"We were about to go to our favorite gym (Injanation), where I try to climb walls as fast as possible (I'm known as the 'old fat guy that climbs fast')\"), mdx(\"p\", null, \"Update 2020.10.01 Sadly, Injanation is one of the COVID-19 companies that the Alberta and Canadian Government has destroyed.\"), mdx(\"p\", null, \"He said \\\"here, try this powder 30 minutes before we go, it will probably help you be less stiff.\\\"\"), mdx(\"p\", null, \"I trusted him, so I tried it.\"), mdx(\"p\", null, \"Afterwords, my degree of stiffness was at least 90% less that it usually was. The day after I was noticeably less stiff than usual as well.\"), mdx(\"p\", null, \"Note: I know that some people say it isn't the 'day after' that you are stiff, it is the second day. But I've never experienced that. If I'm going to be stiff, it is the day after, and the 2nd day I have noticeably healed, not feeling/getting worse.\"), mdx(\"p\", null, \"But then I also break the rule of not going into a hot tub after exercising. I go and have a good soak after exercising hard. \"), mdx(\"p\", null, \"I sometimes wonder ... is it macho people who do the ice bath solution after heavy exercise? \"), mdx(\"p\", null, \"Or is it that I am a wuss, and my definition of 'hard exercise', like racing 2 days up and down mountains in temperatures that dipped to -65C with windchill, like I did when I was 57 years old is just simply not 'hard exercise', after all, half of the kids completed the race before me, only one other participant was outside the 17-30 age range, he was also 57 and - his team came in dead last, so I guess that shows I don't do 'hard exercise'.\"), mdx(\"p\", null, \"So I don't know how much is because of me, because of my bad habit (soaking in a hot tub with sore instead of cold water), but I do know this, Shawn's magic powder really helps me minimize the aches and pains of hard exercise, and i've heard many other people make the same claim.\"), mdx(\"p\", null, \"So ... if you find you have aches and pains after heavy exercising, be it the same day, the 2nd day after or, like me, the day after, I recommend you try this magic powder.\"), mdx(\"h1\", null, \"The \\\"not required\\\" notice:\"), mdx(\"p\", null, \"Note I make NOTHING from you following my advice. These are all my opinions and no one paid me to post them. I put them up because I like to help other people.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"stiff-after-exercise-1"}}}]}},"pageContext":{"id":"6c2d35be-9925-54ba-8fa8-f84d50faf115","langKey":"en"}}}