IndexJekyll2025-12-21T06:51:31+00:00https://wilsonmar.github.io/Wilson Marhttps://wilsonmar.github.io/[email protected]https://wilsonmar.github.io/food2025-12-20T00:00:00+00:002025-12-20T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>How to eat deliciously with less salt, potassium, glucose.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/food/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#do-you-control-your-food-intake" id="markdown-toc-do-you-control-your-food-intake">Do you control your food intake?</a></li>
<li><a href="#food-apps" id="markdown-toc-food-apps">Food apps</a></li>
<li><a href="#purines-uric-acid-and-gout" id="markdown-toc-purines-uric-acid-and-gout">Purines, Uric Acid, and Gout</a></li>
<li><a href="#minerals" id="markdown-toc-minerals">Minerals</a></li>
<li><a href="#calcium--pth-testing" id="markdown-toc-calcium--pth-testing">Calcium & PTH Testing</a> <ul>
<li><a href="#sodium" id="markdown-toc-sodium">Sodium</a></li>
<li><a href="#potassium" id="markdown-toc-potassium">Potassium</a></li>
</ul>
</li>
<li><a href="#low-potassium-fruits-fresh-or-dried" id="markdown-toc-low-potassium-fruits-fresh-or-dried">Low potassium fruits (fresh or dried):</a> <ul>
<li><a href="#low-potassium-vegetables" id="markdown-toc-low-potassium-vegetables">Low-potassium vegetables:</a></li>
<li><a href="#canning-leaching-out-potassium" id="markdown-toc-canning-leaching-out-potassium">Canning, Leaching out potassium</a></li>
</ul>
</li>
<li><a href="#cooking" id="markdown-toc-cooking">Cooking</a> <ul>
<li><a href="#cooking-eggs" id="markdown-toc-cooking-eggs">Cooking eggs</a></li>
</ul>
</li>
<li><a href="#dairy" id="markdown-toc-dairy">Dairy</a></li>
<li><a href="#sugar--carbs-glucose" id="markdown-toc-sugar--carbs-glucose">Sugar & Carbs: Glucose</a></li>
<li><a href="#uric-acid" id="markdown-toc-uric-acid">Uric Acid</a></li>
<li><a href="#dash-diet" id="markdown-toc-dash-diet">Dash Diet</a></li>
<li><a href="#maple-syrup" id="markdown-toc-maple-syrup">Maple Syrup</a></li>
<li><a href="#grow-your-own" id="markdown-toc-grow-your-own">Grow your own</a></li>
<li><a href="#can--glass-jars" id="markdown-toc-can--glass-jars">Can = glass jars</a></li>
<li><a href="#chocolates" id="markdown-toc-chocolates">Chocolates</a></li>
<li><a href="#big-on-line-stores" id="markdown-toc-big-on-line-stores">Big on-line stores</a></li>
<li><a href="#specialty-on-line-stores" id="markdown-toc-specialty-on-line-stores">Specialty on-line stores</a></li>
<li><a href="#waters" id="markdown-toc-waters">Waters</a> <ul>
<li><a href="#glass-bottles" id="markdown-toc-glass-bottles">Glass bottles:</a></li>
<li><a href="#plastic-bottles" id="markdown-toc-plastic-bottles">Plastic bottles:</a></li>
<li><a href="#not-recommended-acidic" id="markdown-toc-not-recommended-acidic">Not recommended acidic:</a></li>
</ul>
</li>
<li><a href="#meats" id="markdown-toc-meats">Meats</a></li>
<li><a href="#veggies" id="markdown-toc-veggies">Veggies</a></li>
<li><a href="#bread-from-live-yeast" id="markdown-toc-bread-from-live-yeast">Bread from live yeast</a></li>
<li><a href="#quinoa" id="markdown-toc-quinoa">Quinoa</a></li>
<li><a href="#butter" id="markdown-toc-butter">Butter</a></li>
<li><a href="#caffeine" id="markdown-toc-caffeine">Caffeine</a></li>
<li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
<li><a href="#articles" id="markdown-toc-articles">Articles</a></li>
<li><a href="#rodent-resistant-containers" id="markdown-toc-rodent-resistant-containers">Rodent-resistant containers</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<h2 id="do-you-control-your-food-intake">Do you control your food intake?</h2>
<p>It’s convenient to get food from restaurants, markets, or delivered by PrimeNow, Walmart+, DoorDash, GrubHub, Uber Eats, Postmates, Instacart, Zomato, etc. But that means losign control of what levels of sodium, sugar, and <strong>unhealthy chemicals</strong> we consume. We are also at the mercy of waiting for trucks from UPS, FedEx, and USPS trucks to deliver packages.</p>
<p>Foods from covenience stores and markets are manufactured for shelf life, which means unhealthy levels of salt, sugar, and other presevatives.</p>
<h2 id="food-apps">Food apps</h2>
<p><a target="_blank" href="https://world.openfoodfacts.org/open-food-facts-mobile-app">Open Food Facts.org</a> is a free app to scan a UPC code to discover & compare over 3 million food products.
Provides Nutri-score of healthiness and impact on planet.
For Android and iOS, crafted with Flutter and Dart and open-sourced at https://github.com/openfoodfacts/smooth-app
Since 2012.
Docs at https://openfoodfacts.github.io/smooth-app/</p>
<p>For $100/year, <a target="_blank" href="https://www.prepear.com/">prepear.com</a>
presents a tagline “Deals to Meals” which covers the entire workflow of eating:</p>
<ul>
<li>Identify money-saving deals</li>
<li>Design meals based on those deals</li>
<li>Structure how to prepare those meals.
<br /><br /></li>
</ul>
<hr />
<h2 id="purines-uric-acid-and-gout">Purines, Uric Acid, and Gout</h2>
<p>Red meats, organ meats, shellfish, sardines, aged cheese, yeast, alcohol (especially beer), and sugary drinks/fructos contain <strong>purines</strong>. Purines are absorbed in the gut and enter the bloodstream as nucleotides and bases, which are then further broken down in the liver.
<strong>Uric acid</strong> is carried in the blood to the kidneys, which filters it out in urine.</p>
<p>Uric acid levels can also rise when taking diuretics (“water pills”), low‑dose aspirin, some blood pressure drugs, and anti‑rejection drugs after transplants.</p>
<p>If too much uric acid is created or kidneys do not clear enough of it, uric acid builds up (hyperuricemia) and forms needle‑like monosodium urate crystals in joints, causing gout attacks (often in the big toe). Dehydration can also trigger gout attacks.</p>
<ul>
<li>https://www.mayoclinic.org/diseases-conditions/gout/symptoms-causes/syc-20372897</li>
<li>https://www.niams.nih.gov/health-topics/gout</li>
<li>https://medlineplus.gov/gout.html</li>
<li>https://www.webmd.com/diet/foods-high-in-purines</li>
<li>https://pmc.ncbi.nlm.nih.gov/articles/PMC9459802/</li>
</ul>
<h2 id="minerals">Minerals</h2>
<p>Magnesium maintains nerve and muscle function, a healthy immune system and strong bones.
In Blood tests for Magnesium, the normal range is 1.6 to 2.6 mg/dL.</p>
<p>Iron makes hemoglobin for healthy red blood cells, from red beans, liver (high in colesterol), ???</p>
<p>Phospherous</p>
<h2 id="calcium--pth-testing">Calcium & PTH Testing</h2>
<p>Sources of calcium are dairy, fortified orange juice, antacids, green leafy vegetables, oats, sweet potatoes, almonds. Almonds also help to stimulate acetylcholine production, which helps the neurons in the brain effectively communicate.</p>
<p>The “PTH, Intact” blood test (CPT code 35202) measures the full (not just fragment) intact parathyroid hormone (PTH) circulating in blood made by the parathyroid glands in the neck (in the back of the thyroid), which help regulate calcium, phosphorus, and vitamin D levels in the body. Although their names are similar, the parathyroid glands and the thyroid gland are not related.</p>
<p>Normal PTH range is 18.4 to 80.1 picograms per milliliter (pg/mL).</p>
<p>Install the <a target="_blank" href="https://calciumpro.com/">free Calcium Pro app</a> (by “Calcium Science”) on <a target="_blank" href="https://apps.apple.com/us/app/calcium-pro/id587386613">iPhone</a> or Android.
Developed by <a target="_blank" href="https://www.parathyroid.com/parathyroid-disease.htm">Normn Center</a> in Tampa, Florida. It explains the interaction of Calcium, PTH, Vitamin D, bone density, etc.</p>
<ul>
<li>PTH triggers the release of small amounts of calcium from your bones into your bloodstream.</li>
<li>PTH enables the production of active vitamin D (calcitriol) in the kidneys. PTH also signal kidneys to keep calcium in the body rather than flushing it out through your pee.</li>
<li>PTH signals small intestine to absorb more calcium from food eaten.
<br /><br />
The test identifies parathyroid disorders such as severe osteoporosis, or mineral/bone disorders.</li>
</ul>
<p>Hyperparathyroidism (too high) can indicate not enough Vitamin D or chronic kidney disease (which cause the parathyroid glands to become overactive).</p>
<p>Symptoms of hyperparathyroidism include bone and joint pain, constipation, nausea, vomiting, kidney stones, lack of appetite, and fatigue.</p>
<p>Hypoparathyroidism (too low) can be from excessive calcium or Vitamin D intake.</p>
<p>Resources:</p>
<ul>
<li>https://www.parathyroid.com/parathyroid-disease.htm</li>
<li>https://www.niddk.nih.gov/health-information/endocrine-diseases/primary-hyperparathyroidism</li>
<li>https://www.ucsfbenioffchildrens.org/medical-tests/parathyroid-hormone-(pth)-blood-test</li>
<li>https://medlineplus.gov/lab-tests/parathyroid-hormone-pth-test/</li>
<li>https://testdirectory.questdiagnostics.com/test/test-detail/35202/pth-intact-without-calcium?cc=MASTER
<br /><br /></li>
</ul>
<p><a name="Sodium"></a></p>
<h3 id="sodium">Sodium</h3>
<p>Food labels percentages are based on <strong>2300mg (one teaspoon)</strong> of Sodium as the recommended consumption per day.</p>
<p>CAUTION: Many products (such a bullion) sold as “Low Sodium” merely replace sodium with Potassium.</p>
<p><a name="Potassium"></a></p>
<h3 id="potassium">Potassium</h3>
<p>kidney.com notes that I can protect my kidneys by watching how much I consume potassium, which affects blood pressure.</p>
<p>A potassium level of 5 or higher detected in the blood, called hyperkalemia,
means the kidneys are not able to remove excess potassium. That can cause irregular heartbeat or a heart attack.</p>
<p>REMEMBER: <strong>5175 mg/day</strong> is the basis for percentages of daily on US food labels. <a target="_blank" href="https://louisville.edu/medicine/departments/familymedicine/files/Potassium%20Food%20List.pdf">1 Potassium point</a> = 39mg for <strong>132 points/day</strong>. So if a 168g persimmon has 270mg, /39 = 7 points (like a mango, 4 prunes, or a cup of blackberries).</p>
<p>PROTIP: Avoid what are high in potassium: red <a href="#meats">meats</a>, dairy, black tea, coffee, molassas, coconut, tomatos, bananas, mushrooms, spinach, all nuts, etc. Substitutes:</p>
<ul>
<li>Instead of red meats (beef), eat eggs, chicken, turkey, vegetarian dishes
<ul>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/turkey-bacon-egg-and-cheese-deviled-eggs">Turkey Bacon, Egg and Cheese Deviled Eggs</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/chicken-fajitas">Chicken Fajitas</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/chicken-salad">Chicken Salad</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/chicken-noodle-soup">Chicken Noodle Soup</a></li>
</ul>
</li>
<li>Instead of tomatos, <a target="_blank" href="https://www.kidney.org/nutrition/recipes/tomato-free-bbq-sauce">BBQ sauce</a></li>
<li>Instead of bananas,</li>
<li>Instead of mushrooms,</li>
<li>Instead of black tea and coffee, Postum,</li>
<li>Instead of molassas, maple syrup,</li>
<li>Instead of oranges, citrus</li>
<li>Instead of avocados,</li>
<li>Instead of potatos, consider cauliflour, jacima
<ul>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/gingered-sweet-potato-apple-salad">Gingered Sweet Jacima-Apple Salad</a></li>
</ul>
</li>
<li>Instead of dairy, rice milk
<br /><br /></li>
</ul>
<h2 id="low-potassium-fruits-fresh-or-dried">Low potassium fruits (fresh or dried):</h2>
<ul>
<li>Apple 1 medium</li>
<li>Applesauce ½ cup</li>
<li>Apricots, canned in juice ½ cup (drain liquid first)</li>
<li>Blackberries ½ cup</li>
<li>Blueberries ½ cup</li>
<li>Cherries ½ cup</li>
<li>Cranberries ½ cup</li>
<li>Fruit cocktail ½ cup (drain liquid first)</li>
<li>Grapes or grape juice ½ cup</li>
<li>Grapefruit ½ whole</li>
<li>Mandarin oranges ½ cup</li>
<li>Peaches 1 small fresh or ½ cup canned</li>
<li>Pears 1 small fresh or ½ cup canned</li>
<li>Pineapple ½ cup</li>
<li>Pineapple juice 4 ounces</li>
<li>Plums 1 whole</li>
<li>Raspberries ½ cup</li>
<li>Strawberries ½ cup</li>
<li>Tangerines 1 whole</li>
<li>
<p>Watermelon Limit to one cup
<br /><br /></p>
<ul>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/very-berry-tofu-smoothie">Very Berry Tofu Smoothies</a></li>
<li>STORE: <a target="_blank" href="https://sunnyfruit.com/products/organic-dried-persimmons">Sunnyfruit dried persimmons $7.69</a></li>
</ul>
</li>
</ul>
<h3 id="low-potassium-vegetables">Low-potassium vegetables:</h3>
<ul>
<li>
<p><a target="_blank" href="https://www.kidney.org/nutrition/recipes/grilled-vegetables">Grilled Vegetables</a></p>
</li>
<li>Alfalfa sprouts ½ cup</li>
<li>Asparagus 6 spears</li>
<li>Beans, green or wax ½ cup</li>
<li>Broccoli (raw or cooked from frozen) ½ cup</li>
<li>Green cabbage ½ cup</li>
<li>Red cabbage ½ cup</li>
<li>Carrots, cooked ½ cup</li>
<li>Cauliflower ½ cup</li>
<li>Celery 1 stalk</li>
<li>Corn?
<ul>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/birthday-popcorn">Birthday Popcorn</a></li>
</ul>
</li>
<li>Cucumber ½ cup</li>
<li>Eggplant ½ cup</li>
<li>Kale ½ cup</li>
<li>Lettuce</li>
<li>White mushrooms, raw ½ cup ???</li>
<li>Onions ½ cup</li>
<li>Peas, green ½ cup</li>
<li>Peppers ½ cup</li>
<li>Yellow squash ½ cup</li>
<li>Zucchini squash ½ cup</li>
<li>Radish ½ cup</li>
<li>
<p>Water chestnuts, canned ½ cup
<br /><br /></p>
</li>
<li>Beets ???</li>
<li>Watercress ???</li>
<li>Pumpkin ???</li>
<li>Tofu?</li>
</ul>
<h3 id="canning-leaching-out-potassium">Canning, Leaching out potassium</h3>
<p>Reduce the potassium in spinich and carrots by <a target="_blank" href="https://www.kidney.org/kidney-topics/potassium-your-ckd-diet">leaching the vegetables</a>.</p>
<p>Canned or cooked mushrooms (generic) typically have around 100-277 mg per 1/2 cup. CAUTION: Dried and cooked mushrooms are higher potassium per serving because water is lost and weight decreases, concentrating the minerals. Maitake mushrooms have 204 mg per 100 grams fresh to an extremely high 2625 mg per 105 grams dried.</p>
<p>American supermarkets such as Walmart and Albertsons display isles and isles of packages from the industrial food complex of over-processed food.</p>
<p>I get the “No salt” or “Lightly Salted”.</p>
<p>References:</p>
<ul>
<li>https://estore.uga.edu/C27063_ustores/web/product_detail.jsp?PRODUCTID=4495&SINGLESTORE=true</li>
<li><a target="_blank" href="https://youtube.com/shorts/qZUCBlPVTWo?si=WDDmiVcF5PUy_--X">Fry chicken</a> without adding salt.</li>
</ul>
<hr />
<p><a name="Cooking"></a></p>
<h2 id="cooking">Cooking</h2>
<p>Combine with spices in <a target="_blank" href="https://www.kidney.org/nutrition/recipes?field_recipe_diets">Recipies</a> from <a target="_blank" href="https://sites.google.com/view/ckdrd/home?pli=1">kidney dietitians</a>:</p>
<p>https://based.cooking/
https://github.com/binabh/based-cooking-app</p>
<ul>
<li>Instead of Chicken McNuggets from McDonalds or Chick-Fil-A,
<ul>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/healthy-chicken-nuggets">Healthy Chicken Nuggets</a></li>
</ul>
</li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/glazed-carrots">Glazed Carrots</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/eggplant-dip">Eggplant dip</a></li>
<li>
<p><a target="_blank" href="https://www.kidney.org/nutrition/recipes/grilled-veggie-kabobs">Grilled Veggie Kabobs</a></p>
</li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/cauliflower-herb-soup">Cauliflower Herb Soup</a></li>
<li>
<p><a target="_blank" href="https://www.kidney.org/nutrition/recipes/chef-duane-vegan-african-stew">Vegan African Stew</a></p>
</li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/vegetable-spanish-paella">Vegetable Spanish Paella</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/bibimbap-oatmeal">Korean Bibimbap Oatmeal</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/caribbean-jerk-chicken-rice-and-peas">Caribbean: Jerk Chicken with Rice and Peas</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/chickpea-tikka-masala">Chickpea Tikka Masala</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/curry-ginger-pea-dip">Curry Ginger Pea Dip</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/maple-balsamic-chicken">Maple-Balsamic Chicken</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/balsamic-herb-tofu-rainbow-roast-vegetables">Balsamic Herb Tofu with Rainbow Roast Vegetables</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/mexican-style-stuffed-peppers">Mexican Style Stuffed Peppers</a></li>
<li>
<p><a target="_blank" href="https://www.kidney.org/nutrition/recipes/bbq-pineapple-chicken">BBQ Pineapple Chicken</a></p>
</li>
<li><a target="_blank" href="https://www.kidney.org/es/nutrition/recipes/pad-thai-de-pollo">Pad Thai de pollo</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/chicken-broccoli-stir-fry">Chicken Broccoli Stir Fry</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/stuffed-pumpkin-meatloaf">Stuffed Pumpkin Meatloaf</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/creamy-curry-rice-apple-salad">Creamy Curry Rice & Apple Salad</a></li>
<li><a target="_blank" href="https://www.kidney.org/nutrition/recipes/shredded-mexican-chicken-crock-pot">Shredded Mexican Chicken in a Crock-pot</a></li>
<li><a traget="_blank" href="https://www.kidney.org/nutrition/recipes/smoked-chicken-and-apple-soup">Smoked Chicken and Apple Soup</a></li>
</ul>
<p>From among <a target="_blank" href="https://www.amazon.com/s?k=low+potassium+cookbook">On Amazon: Low-Potassium cookbooks</a>:</p>
<ul>
<li><a target="_blank" href="https://www.amazon.com/Stage-Kidney-Disease-Cookbook-Seniors-ebook/dp/B0FVMN9239/ref=wilsonslifenotes">Stage 3 Kidney Disease Diet Cookbook for Seniors: 100+ Quick & Easy Low-Sodium, Low-Potassium Recipes with a 14-Day Meal Plan, Grocery Lists & Full Nutrition Facts to Help Manage CKD [Print Replica] Kindle Edition</a></li>
</ul>
<h3 id="cooking-eggs">Cooking eggs</h3>
<p>To cook hard-boiled eggs, <a target="_blank" href="https://www.seriouseats.com/steamed-hard-boiled-eggs-recipe">steam them</a> ensures uniform cooking, preventing rubbery whites. Using a steamer removes the guesswork of timing that comes with boiling. In a steamer basket, cover, and cook <strong>6 minutes for soft-boiled eggs or 12 minutes for hard-boiled</strong>. Alternative: air fryer 8 - 12 eggs at 275 for 12 mins.</p>
<p>Rapid cooling in an ice bath halts the cooking process, preserving the ideal texture and preventing overcooking.</p>
<p>Remove shell under a thin stream of running water. (The water helps get under the shell and lift it off the egg.)</p>
<h2 id="dairy">Dairy</h2>
<p>Get all 3 in <a target="_blank" href="https://www.carrollsirishgifts.com/usa/search/?q=kerrygold&lang=en_US">Kerry Gold Butter buscuits</a>, mailed from Caroll’s Gifts in Ireland. $10 US for two boxes.</p>
<p><a target="_blank" href="https://cougarcheese.wsu.edu/DirectionsWEB/webcart_category.php#CHEESE">
Washington State Univerity’s Cougar Cheese</a> got a <a target="_blank" href="https://www.bonappetit.com/story/cougar-gold-cheddar-cheese">Highly Recommend” rating on Bon Appetit</a>! “Refrigerate upon arrival”
$25.00 per 30-ounce can (plus shipping) in 8 flavors:
Cougar Gold® (aged 14 months),
Natural Cheddar (aged at least a year),
Smoky Cheddar,
Viking (similar to a Monterey Jack),
Dill Garlic,
Sweet Basil,
Hot Pepper,
Crimson Fire</p>
<h2 id="sugar--carbs-glucose">Sugar & Carbs: Glucose</h2>
<p>Our bodies convert carbohydrates to sugar.</p>
<p>The “Hemoglobin A1C (HbA1c)” blood test at a doctor’s lab measures the average (over the past 2 to 3 months) blood sugar (glucose) based on the percentage of glycated hemoglobin (a protein in red blood cells) that is coated with sugar.</p>
<ul>
<li>Normal: below 5.7%</li>
<li>Prediabetes: 5.7% to 6.4%</li>
<li>Diabetes: 6.5% or above
<br /><br /></li>
</ul>
<p>A1C of 7% roughly corresponds to an average blood sugar level of 154 mg/dL (8.6 mmol/L).</p>
<p>Our pancreas produces insulin that travels through our blood to break down sugar.
Type 1 Diabetes is when the pancreas does not make enough insulin.
Those with Type 1 Diabetes need to take insulin several times during the day.
There are different ways to take insulin: via a needle and syringe, an insulin pen, or an insulin pump (also called an automated insulin delivery system) device.</p>
<p>People with Type 2 diabetes can control their blood glucose level by consuming healthy meals and beverages, limiting calories if they have overweight or obesity, and physical activity (150 minutes, each week).</p>
<p>Those with type 2 diabetes need to take diabetes medicines which include diabetes pills or medicines you inject, such as insulin. Over time, you may need more than one diabetes medicine to control your blood glucose level. Even if you do not take insulin, you may need it at special times, such as if you are pregnant or if yoxu are in the hospital for treatment.
x
Txhe glucose test at the doctor’s office identified a calibrated level that is <strong>10 points above</strong> what my Stelo Continuous Glucose Monitor (CGM) reported at the same time. Costco carries <a target="_blank" href="https://www.dexcom.com/en-us">Dexcom</a> (Stelo) by prescription. It needs to be changed every 15 days.</p>
<p>After you identify a baseline – about 104 mg/dL (milligrams per deciliter)after fasting (waking up after 8 hours sleep), I’m realy at 94 mg/dL, which is within normal glucose levels for a healthy adult of between 70 and 99 mg/dL. A fasting level higher than 126 mg/dL suggests diabetes.</p>
<p>The Stelo CGM issues a notification to my phone above a set threshold. That enables me to see to what level different foods spike my blood glucose level:</p>
<ul>
<li>A can of water-washed peaches took me to <strong>140</strong> mg/dL.
<br /><br /></li>
</ul>
<p>Sustained high readings above 140 to 199 mg/dL (7.8 mmol/L and 11.0 mmol/L) suggests prediabetes. Levels above 200 mg/dL or 11.1 mmol/L (millimoles per liter) suggests diabetes. <a target="_blank" href="https://www.mayoclinic.org/diseases-conditions/diabetes/diagnosis-treatment/drc-20371451">*</a></p>
<p>Normally, two hours after eating, levels should be back to baseline.</p>
<p>REMEMBER: Eating protein before sugar intake and exercise after eating helps to reduce levels.</p>
<p>The pancreas does not differentiate between natural vs. artificial sugar (Sucralose).</p>
<p>“Regular” canned fruit:</p>
<ul>
<li><a target="_blank" href="https://www.amazon.com/Amish-Canned-Fruit-Bartlett-Halves/dp/B08KHLY916/ref=sr_1_29">$0.64 per oz. ($0.64/oz.)</a> The Amish Made brand of Bartlett Pear Halves canned fruit (in 2-32 oz. jars). DO THE MATH: In 113g are 17g (15%) carbs.</li>
</ul>
<p>“No Sugar Added” and “100% Juice” does not mean “low-sugar”!</p>
<ul>
<li>
<p><a target="_blank" href="https://www.walmart.com/ip/Del-Monte-Yellow-Cling-Sliced-Peaches-Canned-Fruit-15-oz-Can/10295233">$2.44 per 15 oz Can</a> (16.3 ¢/oz) Del Monte “<strong>100% Juice</strong>” Yellow Cling Sliced Peaches also has <strong>17% carbs</strong>. The 434g in each can (124g per 1/2 cup serving * 3.5 servings/can)</p>
</li>
<li>
<p><a target="_blank" href="https://www.walmart.com/ip/Del-Monte-Yellow-Cling-Peaches-Sliced-No-Sugar-Added-14-5-Oz-12-Ct-Case-of-12/343646329">$29.28 (12 pack) at Walmart</a> = $2.44 for each 14.5 oz can of Del Monte “<strong>No Sugar Added</strong>” Sliced Peaches has <strong>6g</strong> of carbs (when drained of juice).</p>
</li>
<li>
<p><a target="_blank" href="https://www.walmart.com/ip/Del-Monte-No-Sugar-Added-Bartlett-Pears-Canned-Fruit-14-5-oz-Can/10295194">$1.98 per 14.5 oz can</a> Del Monte No Sugar Added Bartlett Pears is “immersed in artificially sweetened water”.</p>
</li>
<li>
<p>Costco peaches
<br /><br /></p>
</li>
</ul>
<p>PROTIP: Although additional sugar from the syrup has been soaked up into canned fruit, some sugar is reduced from rinsing the fruit in water through a colandar.</p>
<p>References:</p>
<ul>
<li>https://www.ynhhs.org/articles/what-is-healthy-blood-sugar</li>
</ul>
<h2 id="uric-acid">Uric Acid</h2>
<p>Normal value: 3.7 - 9.2 mg/dL</p>
<p>Too much leads to painful gout and damaged to kidneys.</p>
<h2 id="dash-diet">Dash Diet</h2>
<p>They say blood pressure is low by eating lots of whole grains, fruits, vegetables, and low-fat dairy. Look for foods that don’t have much fat or cholesterol. This approach has a name: the Dietary Approaches to Stop Hypertension (DASH) diet. It includes lean meats, poultry, fish, and nuts. It’s also high in protein and fiber and avoids sugary drinks, sweets, and red meats.</p>
<p>NEW: The amount of <strong>potassium</strong> is now required to be on food labels.</p>
<h2 id="maple-syrup">Maple Syrup</h2>
<p>Producers in both Vermont and Quebec claim their’s is best.
<a target="_blank" href="https://www.thekitchn.com/best-maple-syrup-brands-23437077">Blind taste tests</a>:
No synthetic colors
No high-fructose corn syrup
No artificial sweeteners
No artificial flavors</p>
<p>NOTE: Serving sizes are “30ml” (2 teaspoons), which is way less than what we really pour.</p>
<ul>
<li>
<p>Target’s own “Good & Gather” brand 100% Pure Maple Syrup <a target="_blank" href="https://www.target.com/p/100-pure-maple-syrup-32-fl-oz-good-38-gather-8482/-/A-78792427#lnk=sametab">$16.99 for 32 oz</a> has good flavor”</p>
</li>
<li>
<p>Costco’s <a target="_blank" href="https://www.costco.com/p/-/kirkland-signature-organic-pure-maple-syrup-338-oz/100333884?langId=-1">$14.99 33.8 oz jug</a> ($0.44/oz) “Kirkland Signature Organic Pure Maple Syrup”</p>
</li>
<li>
<p>Packaged in the same 32oz jugs are Butternut Mountain Farm Organic Grade A Amber (from Vermont) <a target="_blank" href="https://www.walmart.com/ip/Butternut-Mountain-Farm-100-Pure-Vermont-Maple-Syrup-Dark-32-fl-oz/566130335?classType=VARIANT&from=/search">$17.97 from Walmart</a> ($0.562/oz) but <a target="_blank" href="https://www.amazon.com/Butternut-Mountain-Farm-Vermont-Natural/dp/B002483SRI/">$21.38 from Amazon</a> (0.67/oz)
<a target="_blank" href="https://www.amazon.com/Butternut-Mountain-Farm-Vermont-Natural/dp/B0CJ14PX45/">$8.92 / 12 oz glass bottle</a> ($0.74/oz) is often rated best overall store syrup for rich, balanced flavor. Has Amber Rich, Dark Robust, Organic Amber Rich, Organic Dark Robust</p>
</li>
<li>
<p>Anderson’s Pure Maple Syrup $5.28 for 8 ounces at Walmart – praised for being darker, thicker, and very “maple‑y” without weird aftertastes. caramel-y flavor</p>
</li>
<li>
<p>Runamok (Vermont) – recommended by chefs for high‑quality single‑origin syrups and interesting infused versions.</p>
</li>
<li>
<p>Escuminac Late Harvest Maple Syrup (Quebec Canada) – often called out as a top “luxury” syrup with strong, clean maple flavor <a target="_blank" href="https://www.amazon.com/Award-Winning-Escuminac-Unblended-Canadian/dp/B01MYH5E99/">$25.95 for 16.9 glass bottle</a> ($1.54/oz)</p>
</li>
</ul>
<h2 id="grow-your-own">Grow your own</h2>
<p>When you grow veggies from seen, you’re assured of the lack of pesticides (because you didn’t put it there).</p>
<p>(But what about the dirt?)</p>
<p>Here are the veggies:</p>
<ul>
<li>
<p><strong>Rashishes</strong> are among the shorting growing time, and thus the first harvest in the Spring. If you find them bitter, see how they taste fried or roasted.</p>
</li>
<li>
<p>Snow peas</p>
</li>
<li>
<p><strong>Potatoes</strong></p>
</li>
<li>
<p>Red Bell Peppers</p>
</li>
<li>
<p>Bush beans</p>
</li>
<li>
<p>Snap peas</p>
</li>
<li>
<p>Beets. Its leaves takes like spinich.</p>
</li>
<li>
<p>Cucumbers</p>
</li>
<li>
<p>Catelupe</p>
</li>
<li>
<p>Corn</p>
</li>
<li>
<p>Carrots</p>
</li>
<li>
<p>Mushrooms</p>
</li>
<li>
<p>Watermelon</p>
</li>
<li>
<p>Stinging Nettle</p>
</li>
<li>
<p>Bok choy (Chinese cabbage)</p>
</li>
</ul>
<h2 id="can--glass-jars">Can = glass jars</h2>
<p>https://canninglids.com/</p>
<h2 id="chocolates">Chocolates</h2>
<p>Chocolates are made from fermented cocoa.
Cocoa is indiginous as a spicy drink in Latin America and brought to the New World.</p>
<p>During the second half of the 19th century, Swiss chocolatiers created the dense, sweet chocolate that is popular today.</p>
<p>In the United States, chocolate manufactuers prioritize a long shelf life.
So they add corn syrup and <strong>butyric acid</strong>, which gives US chocolate a slightly sour note that is often unsettling to European palates.</p>
<p>Chocolate recipes in the EU, for example, are more strictly regulated than in the US: Milk chocolate must contain at least 25% cocoa solids, and cocoa butter is required as the main fat.</p>
<p>European colonial powers deliberately introduced the cocoa plant to their tropical colonies. Cultivation and harvesting were carried out with the help of the local population — usually under inhumane conditions.
Ghana is the world’s largest cocoa producer after Cote d’Ivoire. West Africa is the world’s largest producer of cocoa.</p>
<h2 id="big-on-line-stores">Big on-line stores</h2>
<p><a target="_blank" href="https://www.Amazon.com/">Amazon.com</a> has a “gourmet” section. Using the Amazon Visa card gets us 5% back. PROTIP: Beware that some items are marked up by those who resell stuff from elsewhere.</p>
<p>If you like Whole Foods for their wokeness but hate Amazon, <a target="_blank" href="https://thrivemarket.com/">ThriveMarket.com</a> carries many of the same shelf items. Note they ask for $60/year membership.</p>
<p><a target="_blank" href="https://www.walmart.com/">Walmart.com</a> also has a 5% rebate when using their credit card. They actually have healthy stuff among all that junk and over-processed food, such as No salt added cans of corn and beans:</p>
<ul>
<li>
<p><a target="_blank" href="https://www.walmart.com/ip/Del-Monte-Canned-Golden-Sweet-Whole-Kernel-Corn-No-Salt-Added-8-75-oz-Can/10295096">$0.98 corn from DelMonte</a></p>
</li>
<li>
<p><a target="_blank" href="https://www.walmart.com/ip/Libby-s-Naturals-No-Salt-No-Sugar-Added-Whole-Kernel-Sweet-Corn-15-25-oz-Can/10291106">$0.72 corn from Libby’s</a></p>
</li>
<li>
<p><a target="_blank" href="https://www.walmart.com/ip/Great-Value-No-Salt-Added-Golden-Sweet-Whole-Kernel-Corn-15-25-Oz/10315428">$0.98 corn from Great value (Walmart)</a></p>
</li>
<li>
<p><a target="_blank" href="">$5.28 per 4-pack</a> of Del Monte No Salt Added Fresh Cut Blue Lake Cut Green Beans, 14.5 oz Can (Pack of 4)
<br /><br /></p>
</li>
</ul>
<p><a target="_blank" href="https://www.target.com/">Target</a>, surprisingly, has great prices on many items despite their “bougy” vibe. They have a <a target="_blank" href="https://www.target.com/s?searchTerm=gluten+free+food">gluten free food section online</a>.</p>
<p><a target="_blank" href="https://www.worldmarket.com/category/food-and-drink/food.do">(Cost Plus) worldmarket.com has food from around the world</a>. Note their SMS coupons exclude discounts on food items.</p>
<p><a target="_blank" href="https://www.costco.com/grocery-household.html">Costco.com Grocery</a> delivers free over $75, even with their membership at $60-$100/year. But, as you know, selection is limited and even more so online.</p>
<ul>
<li>Dark chocolate with coconut (individually wrapped)</li>
<li>real Cylon Cinnemon</li>
<li><a target="_blank" href="https://www.costco.com/kirkland-signature-organic-extra-virgin-olive-oil%2c-2-l.product.100334841.html">Kirkland Signature Organic Extra Virgin Olive Oil, 2 L for $13.49</a></li>
<li><a target="_blank" href="https://www.costco.com/kirkland-signature-organic-pure-maple-syrup%2c-33.8-oz.product.100333884.html">Kirkland Signature Organic Pure Maple Syrup, 33.8 oz for 13.99</a></li>
<li><a target="_blank" href="https://www.costco.com/kirkland-signature-organic-coconut-water%2c-1-liter%2c-9-ct.product.100637969.html">Kirkland Signature Organic Coconut Water, 1 Liter, 9 ct $18.39</a></li>
</ul>
<h2 id="specialty-on-line-stores">Specialty on-line stores</h2>
<p><a target="_blank" href="https://www.goldbelly.com/">goldbelly.com</a> is the e-commerce platform for 1,000 restaurants. They now has a <a target="_blank" href="https://www.fastcompany.com/90694639/gourmet-marketplace-goldbelly-is-launching-a-tv-channel?icid=dan902:754:0:editRecirc">deal with videos on QVC</a>.</p>
<ul>
<li><a target="_blank" href="https://www.goldbelly.com/robertas-pizza/16940-brick-oven-pizza-6-pack">$20 each</a> - Roberta’s Wood Fired Pizza — Margherita (<a target="_blank" href="https://getpocket.com/explore/item/where-does-your-go-to-frozen-pizza-rank-we-tried-15-and-the-worst-one-might-surprise-you">named “the best frozen pizza”</a>)
<br /><br /></li>
</ul>
<p><a target="_blank" href="https://handshake.com/categories/products/food-drinks/21">Handshake on Spotify</a> has <a target="_blank" href="https://handshake.com/search-results?search=salt%20free">salt-free rubs and USA seasonings</a></p>
<p><a target="_blank" href="https://www.cucinaandamore.com/collections/all">CucinaAndAmore.com</a> creates the foods they sell online ($35 shipping). They invented <a target="_blank" href="https://www.cucinaandamore.com/products/meal-variety-pack">shelf-stable Quinoa & cauliflower meal kits</a>, tomato-free salsas, pasta, pasta sauce, pesto, <a target="_blank" href="https://www.cucinaandamore.com/collections/all?system_collections=artichokes&q=">artichokes</a>, fruit jams, balsamic vinegar, wafer rolls.</p>
<p><a target="_blank" href="https://www.shopmove.co">ShopMove.co</a> offers cooked meals and snacks “from Michelin chefs and celebrity bakers”. Free shipping over $35.
Their $6 Lemon Rice is lemoney. I think there’s too much dough for me on ther $6 Hong Kong Pineapple Buns. Their $12 Chicken Tikka Masala has a bit of hot spice.</p>
<p><a target="_blank" href="https://www.JustAsianFood.com">JustAsianFood.com</a> has snacks from China, Japan, Thailand, etc.</p>
<ul>
<li>Farmer brand peanuts: <a target="_blank" href="https://justasianfood.com/products/farmer-brand-dried-peanuts-10-58oz">dried</a> and <a target="_blank" href="https://justasianfood.com/products/farmer-brand-roasted-peanuts-10-58oz?variant=33280497975341">roasted</a> (10.58oz each)</li>
<li><a target="_blank" href="https://justasianfood.com/collections/snacks/products/michelles-golden-sana-banana-chips-12-35oz?_pos=1&_sid=639376dfe&_ss=r">Michelle’s Golden Sana Banana Chips 12.35oz</a></li>
<li><a target="_blank" href="https://justasianfood.com/collections/snacks/products/regent-labzter-3-5oz?_pos=1&_sid=b85bece52&_ss=r">Regent Labzter 3.5oz</a> chips</li>
<li>
<p><a target="_blank" href="https://justasianfood.com/collections/southeast-asian-snacks/products/dragonfly-lobster-crackers-1-76oz?_pos=1&_sid=d1fb914b4&_ss=r">Dragonfly Lobster Crackers 1.76oz</a></p>
</li>
<li><a target="_blank" href="https://justasianfood.com/products/liyuan-roasted-organic-chestnuts-5-3oz?_pos=18&_sid=7e67092b6&_ss=r">Liyuan Roasted Organic Chestnuts 5.3oz</a></li>
<li><a target="_blank" href="https://justasianfood.com/collections/snacks/products/liyuan-organic-chestnuts-8-8oz?_pos=1&_sid=026e8013d&_ss=r">Liyuan Organic Chestnuts 8.8oz</a></li>
<li>
<p><a target="_blank" href="https://justasianfood.com/products/homei-roasted-chestnuts-organic-3-6oz?_pos=17&_sid=99ca967fc&_ss=r">Homei Roasted Chestnuts - Organic 3.6oz</a></p>
</li>
<li>
<p><a target="_blank" href="https://justasianfood.com/products/golden-coins-almond-tofu-agar-mix-6-2oz?_pos=1&_sid=4d0299e66&_ss=r">Golden Coins Almond Tofu Agar Mix 6.2oz</a></p>
</li>
<li><a target="_blank" href="https://justasianfood.com/products/asian-best-lychee-in-syrup-20oz?_pos=28&_sid=7b2d7df28&_ss=r">Asian Best Lychee In Syrup 20oz</a> $3.39</li>
<li><a target="_blank" href="https://justasianfood.com/products/companion-lychee-in-heavy-syrup-20oz?_pos=3&_sid=2dae5e8b0&_ss=r">Companion Lychee In Heavy Syrup 20oz</a></li>
<li><a target="_blank" href="https://justasianfood.com/products/ming-river-lychees-in-syrup-20oz-567g?_pos=1&_sid=2dae5e8b0&_ss=r">Ming River Lychees In Syrup 20oz</a> $3.39
<br /><br /></li>
</ul>
<p><a target="_blank" href="https://www.Balduccis.com">Balduccis.com</a> offers top brands from Europe</p>
<p><a target="_blank" href="https://www.igourmet.com/">igourmet.com</a></p>
<p><a target="_blank" href="https://www.mouth.com/">mouth.com</a> snacks, drinks, bacon, jerkey</p>
<p><a target="_blank" href="https://www.foodzie.com">foodzie.com</a></p>
<p><a target="_blank" href="https://www.MarketHallFoods.com">MarketHallFoods.com</a></p>
<p><a target="_blank" href="https://www.ImportFood.com">ImportFood.com</a></p>
<p><a target="_blank" href="https://www.Zingermans.com/">Zingermans.com</a> tinned fish, $200 packaged DIY ruben sandwich (too expensive)</p>
<p><a target="_blank" href="https://tasteofspainfoods.com/product/">TasteOfSpain.com</a> sells <a target="_blank" href="https://tasteofspainfoods.com/product/extra-thick-primera-white-asparagus-1-kg/">J. Vela thick white asparagus</a></p>
<p><a target="_blank" href="https://usa.kayanoya.com/">kayanoya.com</a> has <a target="_blank" href="https://usa.kayanoya.com/kayanoya-yuzu.html">Japanese yuzu citrus juice and peel preserve</a>, unique sweet and sour flavor. They also have low-sodium stock powders.</p>
<p><a target="_blank" href="https://brightland.co/products/the-duo">The duo of $74 olive oil bottles from Brightland</a> are based on heirloom Arbequina and Arbosana olives harvested from a single-family farm in California’s Central Coast. no fillers or artificial preservatives. Founder Aishwarya Iyer’s ancestors were salt farmers in South India. A drizzle of “Awake” accentuates pasta, roast chicken, and crusty bread. “Alive” evokes a vibrancy in vinaigrettes, raw vegetables, and, something sweet and bitter like dark chocolate.</p>
<p><a target="_blank" href="https://www.fortnumandmason.com/">Fortnum and Mason</a> is a large department store in London and throughout the UK (since 1707). They are famous for their <a target="_blank" href="https://www.fortnumandmason.com/hampers/hampers-for-export/hampers-for-us">“hampers” (baskets)</a> containing their biscuits, preserves, candies, teas, coffees, and wines. Their <a target="_blank" href="https://www.fortnumandmason.com/piccadilly-selection-biscuit-tin-600g">$18.95 Piccadilly Biscuit tin</a> contains butter biscuits: Stem Ginger (my all-time favorite), Salted Caramel, Macadamia Nut, Lemon Curd, Fruit & Nut Flapjack and Chocolate Pearl (a cut above your regular chocolate chip). $25 for delivery to the US.</p>
<p><a target="_blank" href="https://www.myfitnesspal.com/food/calories/fortnum-mason-stem-ginger-biscuits-672631334">MyFitnessPal rates 100g of Stem Ginger at 470 calories and 66g carbs</a> (burned off by 1.2 hours of cycling or 48 minutes of running).</p>
<hr />
<h2 id="waters">Waters</h2>
<p>Good water makes for better-tasting tea, coffee, rice, etc.</p>
<p><a target="_blank" href="https://www.healthline.com/health/food-nutrition/alkaline-water-benefits-risks#where-to-get-it">
Alkaline water</a> (above neutral pH of 7) is better for you than acidic water.</p>
<p>NOTE: There are 33.814 fluid ounces in a liter. 25.36 fluid ounces in a pint = 750 ml.
A half-liter bottle contains 16.9 fluid ounces.</p>
<p>Among <a target="_blank" href="https://www.aquamaestro.com/all-brands">all brands</a>:</p>
<h3 id="glass-bottles">Glass bottles:</h3>
<p><strong>San Pellegrino</strong> (green bottles) are my favorite (with alkaline pH: 7.7 and high TDS: 1109 and no sodium). It has what’s described as “medium bubbly”, which is supposed to enhance taste. It’s offered at many fine (especially Italian) restaurants because it’s from the <a target="_blank" href="https://maps.app.goo.gl/HGtSErSBi464cZyj9">San Pellegrino Terme (baths) area</a> in Val Brembana area in the Lombardy region in the Italian Alps, since 1932. Now available in both <a target="_blank" href="https://www.sanpellegrino.com/us/water/glass">glass</a> and PET plastic bottles, in a variety of flavored and unflavored varieties.</p>
<ul>
<li><a target="_blank" href="https://www.foodservicedirect.com/s-pellegrino-natural-sparkling-water-750-ml-12-per-case-21259705.html">$0.09/Fl Oz in $28.95/casex12 of 750ml from FoodServiceDirect.com</a></li>
<li>Costco ?</li>
<li><a target="_blank" href="https://www.walmart.com/ip/San-Pellegrino-Sparkling-Mineral-Water-15-pk-25-3-oz/842620097">$0.14 / Fl Oz when purchased in a case of 15 glass 25.3 oz glass bottles at $44.99 NOT AVAILABLE from Walmart</a></li>
<li><a target="_blank" href="https://www.amazon.com/San-Pellegrino-Sparkling-Mineral-Water/dp/B06VTZPNYF/">$0.14 / Fl Oz when purchased in a case of 15 glass 25.3 oz glass bottles at $52.23 from Amazon</a></li>
<li><a target="_blank" href="https://www.amazon.com/Hildon-Naturally-Sparkling-Mineral-Bottles/dp/B077TY32Q9">$0.46 / Fl Oz when purchased in a case of 6 glass 11.2 oz bottles at $30.99 from Amazon</a>
<br /></li>
</ul>
<p><strong>Hildon water</strong> from a chalkly aquifer in Hampshire (south of England) are what is served in the UK Parliment and in Royal household (by Royal Warrant). Each liter contains 7.7mg of sodium, Nitrate level of 6 ml per liter, and TDS of 312 in 11.1 or 25.3 fluid ounce (.75 Liter) glass “Bordeaux” bottles. Its pH is a neutral 7.2.</p>
<ul>
<li><a target="_blank" href="https://www.amazon.com/Hildon-Naturally-Non-Sparkling-Mineral-Bottles/dp/B0777GVPLX">$0.30 / Fl Oz when purchased in a 24-pack glass 11.2 oz case at $79.99 from Amazon</a></li>
<li><a target="_blank" href="https://www.amazon.com/Hildon-Naturally-Sparkling-Mineral-Bottles/dp/B077TY32Q9">$0.46 / Fl Oz when purchased in 6 glass 11.2 oz case at $30.99 from Amazon</a></li>
<li><a target="_blank" href="https://www.hildon.com/collections">16.90 pounds per liter (still or sparking), from their website</a>
<br /></li>
</ul>
<h3 id="plastic-bottles">Plastic bottles:</h3>
<p><strong>Icelandic</strong> I think is best due to its naturally <strong>highest (most alkaline) pH of 8.4</strong> from the pristine Ölfus Spring in vulcanic Iceland.</p>
<ul>
<li><a target="_blank" href="https://www.amazon.com/Icelandic-Glacial-Natural-Spring-Milliliter/dp/B0083TTBWS/">$0.07 / Fl Oz when purchased as 33.8 oz (1L) plastic bottles in case of 6 at $14.24 from Amazon</a> = $2.50/bottle.</li>
<li><a target="_blank" href="https://www.amazon.com/Icelandic-Glacial-Natural-Spring-Milliliter/dp/B0083TTBWS/">$0.14 / Fl Oz when purchased as 25.4 oz plastic bottles in case of 12 at $43 from Amazon</a>
<br /></li>
</ul>
<p><strong>Fiji</strong> water (slightly Alkaline at pH: 7.7 with TDS: 222) was filtered through vulcanic rock. It comes only in thicker plastic bottles.</p>
<ul>
<li><a target="_blank" href="">$0.057 / Fl Oz when purchased as 33.8 oz (1L) plastic bottles in case of 6 at $22.98 from Walmart</a></li>
<li><a target="_blank" href="https://www.hildon.com/collections">16.90 pounds per liter (still or sparking), from their website</a>
<br /></li>
</ul>
<h3 id="not-recommended-acidic">Not recommended acidic:</h3>
<p><strong>Voss</strong> (acidic pH: 5.5 ) still and processed sparkling waters come in heavy glass bottles (designed by the former Creative Director for Calvin Klein). Despite its name, the products are not bottled in the municipality of Voss in Norway but in the pristine wilderness of Southern Norway. Low TDS (total dissolved solids) level of 44.</p>
<p><strong>Perrier</strong> sparkling Mineral Water is well-known (advertised). Unfortunately, the water from Les Bouillens is Acidic at pH: 5.5 with TDS: 475. It now comes in flavorless and fruity variants. Commonly used in cocktails and drinks, it contains total dissolved solids of 475 mg/L of water, which provides extra carbonation to create strong bubbles in mixed drinks.</p>
<p><strong>Saint-Geron</strong> lightly carbonated pH: 6 (very hard/acidic) water with TDS: 1158 comes out of a spring in volcanic Auvergne, France. Dubbed “The Queen of Mineral Waters”, has been bottled since Roman days. While the water contains carbonic acid, its sparkling water is not overpowering.</p>
<ul>
<li><a target="_blank" href="https://www.amazon.com/Saint-Geron-Sparkling-Natural-Mineral-Bottles/dp/B076NXYC8L">from Amazon</a> $0.31 / Fl Oz at $95.59 for pack of 12, 25.3-oz bottles.
<br /></li>
</ul>
<hr />
<p><a name="meats"></a></p>
<h2 id="meats">Meats</h2>
<p>Many wild game meats (venison, pheasant, quail, rabbit, etc.) are known to be high in purines which cause gout inflammation.</p>
<p>That’s also the case with organ meats (“sweetbreads”) such as liver, kidney, tongue, heart.</p>
<p>Salmon seems to be an exception to fish with high purine levels, in that most gout sufferers don’t have a problem with it.</p>
<ul>
<li>
<p>Korean BBQ Bulgogi “fire meat” (rib-eye, short-rib beef, chicken, pork marinated in soy sauce) shipped in a $19.99 foam box with cold packs from <a target="_blank" href="https://omonausa.com/">Omonausa.com</a>. Free shipping for orders over $200.</p>
</li>
<li>
<p>Meats from <a target="_blank" href="https://www.Rastelli.com/">Rastelli.com</a> and <a target="_blank" href="https://www.Honeybaked.com/">Honeybaked.com</a></p>
</li>
<li>
<p>Lamb from <a target="_blank" href="https://www.LavaLakeLamb.com/">LavaLakeLamb.com</a></p>
</li>
<li>
<p>Scottish grouse, and other wild game meat from <a target="_blank" href="https://www.DArtagnan.com/">DArtagnan.com</a></p>
</li>
<li>
<p>Seafoods from <a target="_blank" href="https://www.vitalchoice.com/">vitalchoice.com</a></p>
</li>
<li>
<p>Iberico ham (popular in Barcelona), cheeses, and condiments from <a target="_blank" href="https://www.FormaggioKitchen.com/">FormaggioKitchen.com</a></p>
</li>
<li>
<p>Applewood-smoked meats from <a target="_blank" href="https://www.Nueskes.com/">Nueskes.com</a></p>
</li>
</ul>
<p><a name="Veggies"></a></p>
<h2 id="veggies">Veggies</h2>
<p>REMEMBER: Beets, okra, rhubarb, turnips contain high levels of oxalates (which increase uric acid levels that trigger gout).</p>
<ul>
<li>Heirloom beans, herbs, spices from <a target="_blank" href="https://www.RanchoGordo.com/">RanchoGordo.com</a></li>
<li>Spices and seasonings from <a target="_blank" href="https://www.TheSpiceHouse.com/">TheSpiceHouse.com</a></li>
<li>
<p>Indian food from <a target="_blank" href="https://www.Kalustyans.com/">Kalustyans.com</a></p>
</li>
<li>Scandanavian meatballs, limpa, pickled herring from <a target="_blank" href="https://www.scandiaFood.com/">scandiaFood.com</a></li>
<li>Greek baklavas, spanakopitas, and other filo-based pastries from <a target="_blank" href="https://www.KatinasGreekCafe.com">KatinasGreekCafe.com</a></li>
<li>Italian Proscitutto, EVOO, etc. from <a target="_blank" href="https://www.Eataly.com/">Eataly.com</a></li>
<li>
<p>Spanish paella, sausage, etc. from <a target="_blank" href="https://www.Tienda.com/">Tienda.com</a> (Williamsburg, VA)</p>
</li>
<li>
<p>Fair trade from around the world at <a target="_blank" href="https://www.EqualExchange.com/">EqualExchange.com</a></p>
</li>
<li><a target="_blank" href="https://www.LaQuercia.us/">LaQuercia.us</a></li>
<li>Freeze-dried fruits from <a target="_blank" href="https://www.thive.com">thive.com</a></li>
<li>Fresh fruit from <a target="_blank" href="https://www.HarryAndDavid.com/">HarryAndDavid.com</a> fruit-of-the-month</li>
<li>
<p>Fresh California peaches, plums, nectarines, cherries, graham crackers, tarlets from <a target="_blank" href="https://www.FrogHollow.com/">FrogHollow.com</a></p>
</li>
<li>
<p>Sour cream coffee cake, buttery rum cake, quiches from <a target="_blank" href="https://www.RedTruckBakery.com/">RedTruckBakery.com</a></p>
</li>
<li>Baked goods and many others from <a target="_blank" href="https://www.goldbelly.com/">goldbelly.com</a></li>
<li>Jams and Salsas from <a target="_blank" href="https://www.Stonewalkkitchen.com/">Stonewalkkitchen.com</a></li>
<li>Freeze-dried ice cream and (high salt) meals from <a target="_blank" href="https://www.MountainHouse.com">MountainHouse.com</a> (commonly sold at Walmart and sporting goods stores)</li>
<li>Pies from <a target="_blank" href="https://www.GTPie.com">GTPie.com</a> of Michigan</li>
</ul>
<h2 id="bread-from-live-yeast">Bread from live yeast</h2>
<p>DEFINITIONS: <a target="_blank" href="https://pleasanthillgrain.com/baking-glossary">pleasanthillgrain.com/baking-glossary</a></p>
<p>If you regularly consume bread, consider growing live yeast from wheat for sourdough bread.</p>
<p>Both yeast and baking powder will cause your bread dough to rise.
But both yeast and baking powder have relatively short shelf lives.</p>
<p>Proofing Directions: In a 1 cup liquid measuring cup, mix 1 teaspoon sugar into 1/2 cup of warm water (110° to 115° F), then mix in 2-1/4 teaspoons yeast. If mixture has risen to the top of the cup by the end of ten minutes, yeast is very active. If not, it needs to be replaced.</p>
<p>Make your own baking powder by mixing together ingredients with an indefinite shelf life if properly stored.</p>
<ul>
<li>1 part baking soda.</li>
<li>1 part corn starch.</li>
<li>2 parts cream of tartar.
<br /><br /></li>
</ul>
<p>Grounded “white flour” bought from stores consists only of the starchy <strong>endosperm</strong> of the wheat kernel – the least nutrient-rich part of the grain. Removed are the nutrient-packed bran, wheat germ, and wheat germ oil to ensure shelf life. Buy unbleached for healthy.</p>
<p><a target="_blank" href="https://www.cimmyt.org/news/whole-grains"><img alt="grain-names-1024x1024.jpg" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1764813035/grain-names-1024x1024_nhzci0.jpg" /></a></p>
<p>Freshly ground wheat is tastier.</p>
<p>But ground wheat needs to be sifted.</p>
<p>To make your own “whole grain cake flour”, measure 1 cup of finely ground soft wheat flour then substituting 2 tablespoons of that flour with 2 tablespoons of cornstarch or tapioca starch.</p>
<p>Malted barley and Vitamin C are added into flour to aid in bread rising and gluten development. Bread flour has a protein content of at least 12.5%—the higher the percent, the stronger the dough rise. This is a good flour to mix with other grain flours to produce a more lightweight product.</p>
<p>For cakes, cookies, and donuts prepared from batters, including biscuits, cakes and whole grain pastries, use soft white wheat berries ground to ultra-fine texture. Soft wheat (triticum aestivum) has high starch/carbohydrate content and a protein content of 7-9%, while hard wheat typically has a protein content of 10-15%. Consequently there’s little gluten development in soft wheat flour.</p>
<p>Soft wheat is typically a winter wheat – planted in the autumn, grows a few inches tall before it’s covered with snowfall through the winter, and lies dormant until the ground warms up in early spring. In the early spring the wheat resumes growth until it’s ready to be harvested.</p>
<p>In the U.S., soft wheat is mainly grown east of the Mississippi, although some is grown in the Pacific Northwest.</p>
<p>For dough-bread making, use <a target="_blank" href="https://pleasanthillgrain.com/hard-red-wheat-organic">hard red</a> or <a target="_blank" href="https://pleasanthillgrain.com/buy-organic-hard-white-wheat-berries-for-sale-bulk">hard white</a> wheat berries. Aloso add <a target="_blank" href="https://pleasanthillgrain.com/buy-organic-spelt-for-sale-bulk-bucket">spelt</a>, kamut, or <a target="_blank" href="https://pleasanthillgrain.com/buy-organic-rye-for-sale-bulk-grain">rye</a>.</p>
<ul>
<li>teff combine well with wheat flour though and has something of a sweetish flavor. It’s the smallest grain, with kernels only about 1/32nd inch in diameter. The name means “lost” because if dropped on the ground, it’s too small to recover. It’s been been a staple in Ethiopia for nearly five millennia in making Ethiopian flat bread “injera”. Small amounts are now grown in South Africa and the United States. This grain ranges in color from white to reddish brown as a source of iron. Its protein content in the 10-12% range, good calcium but has no gluten content.</li>
<li>Khorasan,</li>
<li><a target="_blank" href="https://pleasanthillgrain.com/buy-organic-einkorn-for-sale-bulk">Einkorn</a>,</li>
<li>emmer</li>
</ul>
<p>Some specialty bread types call for semolina flour. May also be known as “alimentary flour”, “macaroni flour”, or “pasta
flour.” Farina, a coarse meal used as a breakfast cereal, is made from <a target="_blank" href="https://pleasanthillgrain.com/buy-durum-wheat-for-sale-bucket">Durum wheat</a>, used for making pastas, noodles, and couscous.</p>
<p>oxidation begins to occur as soon as grain is ground, exposing the cell’s contents to oxygen in the air.</p>
<p>PROTIP: Wheat Berries store longer (30 years) than flour ground by a <a target="_blank" href="https://pleasanthillgrain.com/appliances/grain-mills">wheat grinder</a> which <a target="_blank" href="https://pleasanthillgrain.com/resources/grain-mill-comparison-feature-review">use a stone burr mill, impact mill, or steel burr mill</a>.</p>
<p>From https://pleasanthillgrain.com/search?search=wheat+berries (Nebraska, (866) 467-6123 )
buy Golden 86 or White Wheat in a Mylar bag with O2 absorbers within a six-gallon pail.
A <a target="_blank" href="https://pleasanthillgrain.com/gamma-lids-seal-lid-12-inch-5-five-gallon-white-blue-red-green-yellow-black-orange">$35 x3 Gamma Seal Lid</a> has a polymer gasket, giving the container an air-tight seal that excludes not only freeloaders such as mice and insects, but moisture too.</p>
<p>The 41 lbs net yields about 72,000 calories.</p>
<ul>
<li>$150.12 ($3.66/lb) from Zone 2 (CT, FL, ME, MA, NH, RI, VT)</li>
<li>$150.12 ($3.53/lb) from Zone 1 (from other states)</li>
</ul>
<h2 id="quinoa">Quinoa</h2>
<p>Quinoa, pronounced “keen-wah”, is a gluten-free, pseudo-cereal seed native to the Andes Mountains of South America. <a target="_blank" href="https://pleasanthillgrain.com/quinoa-organic-superpail-zone-1">$210.79 for 36 lbs</a> ($5.90/lb) in 6-gallon tub.</p>
<p>Quinoa is often referred to as a supergrain because it is high in protein – a complete protein possessing all the essential amino acids in the balanced amounts that our bodies require.</p>
<p>Most recipes call for white quinoa, but red quinoa can be swapped in for a nuttier flavor and more texture, if preferred (note that it can take longer to cook). Black quinoa is crunchier and can have a gritty feel, so it’s best to used when a recipe specifically calls for it as it’s not a good substitute for red or white quinoa.</p>
<p>Unless prewashed quinoa is purchaed, quinoa needs to be thoroughly washed before cooking to remove its bitter protective coating, called saponin.</p>
<ul>
<li>Toast the quinoa before simmering it to further emphasize its nutty flavor.</li>
</ul>
<p>Simple Quinoa Pilaf
Ingredients:</p>
<ul>
<li>3 tablespoons extra-virgin olive oil</li>
<li>1¼ cups white quinoa, rinsed</li>
<li>¼ teaspoon table salt</li>
<li>2 cups chicken broth instead of water to add extra savoriness and flavor.</li>
<li>1 stalk celery, finely chopped</li>
<li>2 carrots, sliced</li>
<li>1 small onion, minced</li>
<li>1 clove garlic, minced</li>
</ul>
<ol>
<li>Heat oil in large saucepan over medium-high heat until shimmering.</li>
<li>Stir in vegetables and garlic.</li>
<li>Cook and stir until onion has softened and turned translucent, about 5 minutes.</li>
<li>Stir in broth add quinoa.</li>
<li>To add earthiness, golden color, and bright acidity:
<ul>
<li>¼ teaspoon dried basil</li>
<li>1 teaspoon ground turmeric</li>
</ul>
</li>
<li>Cover and reduce heat to low. Simmer until quinoa is tender, 15 to 18 minutes. The quinoa is done when it turns completely translucent besides a small opaque dot in the center and their little curlicue tails unfurls.</li>
<li>Remove saucepan from heat and let sit, covered, for 5 minutes.</li>
<li>Stir in
<ul>
<li>1 teaspoon lime juice</li>
</ul>
</li>
<li>Fluff quinoa with fork. Season with salt to taste, and serve.</li>
</ol>
<p><a name="Butter"></a></p>
<h2 id="butter">Butter</h2>
<p>Among <strong>canned butter</strong>:</p>
<p>From New Zealand, the Red Feather brand, which claims <strong>eighteen months</strong> of shelf-stable storage, is<br />
<a target="_blank" href="https://www.walmart.com/ip/6-pack-Red-Feather-Brand-Pure-Creamery-Butter-12-oz-Can/5323228170">
$0.79/oz for 6x12-oz cans from Walmart</a>
Although salted, it’s not as heavily salted as most salted butter in the U.S.</p>
<p>H.J. Wijsman & Zonen Preserved Dutch Butter is<br />
<a target="_blank" href="https://www.amazon.com/Preserved-Dutch-Butter-Salted-7-05oz/dp/B07JH6TX9N/ref=wilsonslifenotes">
$1.42/oz from $49.99 for 5x7.05oz cans</a>.</p>
<p>Beurdell French Salted Real Canned Butter 100% Natural Pasteurized Butter A real butter from France 3% salt<br />
<a target="_blank" href="https://www.amazon.com/Hurricane-Preparedness-Emergency-Earthquake-Safecastle/dp/B09YVV47JD/ref=wilsonslifenotes">$229.99 ($26.14/oz)</a> for pack of 24 8.8oz/250g cans.</p>
<h2 id="caffeine">Caffeine</h2>
<p>400 mg of caffeine.</p>
<p>Drinks which have no caffeine include: 7-Up, Fanta, Fresca, Orange Crush, Sprite, Tonic Water,
Verners Ginger Ale,
and Root Beer from A&W, IBC, Diet Barq, Mug.</p>
<h2 id="resources">Resources</h2>
<p>https://farmstress.us for Farmers and ranchers, to cultivate rural resilience.</p>
<h2 id="articles">Articles</h2>
<p>https://www.mofad.org/events/2020/0820/chopsueysupperclub</p>
<p>http://www.oprah.com/food/the-best-online-grocery-shopping-websites/all
2010</p>
<p>https://www.bonappetit.com/story/online-specialty-food-stores</p>
<p>https://www.thespruceeats.com/gourmet-specialty-food-shops-1666059</p>
<p>http://www.tullabs.com/cicadaworld/cicadarecipes.pdf
Recipies for Cicadas InsertSpaces</p>
<h2 id="rodent-resistant-containers">Rodent-resistant containers</h2>
<p>Rodents spread bacteria harmful to humans and pets.</p>
<p>Food needs to be kept in rodant-resistant containers such as metal, glass, or thick plastic.</p>
<p>To repel rodants, some use a device that emits a noise humans can’t hear.
But they might annoy dogs and cats.</p>
<p>Some place around their home packets of plant-based essential oils containing cornmint, citronella, and linseed oil.
Each Vamoose pouch is $9.43 (in packs of 3) from https://www.bugmd.com/. They last 30 days.</p>
<hr />
<p><sub>25-12-20 v018 Purines :2020-08-13-food.md created 2020-08-13</sub></p>
<p>Sodium 2000
low red meat (including pork) 2oz serving (the size of a deck of playing cards).
48-64 oz (a gallon) of non-caffinated fluid/day.
quinoa has fiber & protein
eichorn ancient (non-GMO) wheat berries more fiber & B vites. breaks down better. but more potassium.
Renal Diet Cookbook.
Preserving Kidney Function with plant-based eating. (Vegitarian Diet)
each carbs with protein
Boiling apples and drinking the juice reduces the amount of minerals.
https://www.youtube.com/watch?v=Bs9MwpXRxTg
nvidia</p>
<p><a href="https://wilsonmar.github.io/food/">Food (Diet)</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 20, 2025.</p>
https://wilsonmar.github.io/mlflow2025-12-18T00:00:00+00:002025-12-18T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Get full visibility and versioning of models, their metadata, and compare metrics from runs.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/mlflow/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#why-mlflow-run-metadata-and-metrics" id="markdown-toc-why-mlflow-run-metadata-and-metrics">Why MLflow? Run Metadata and Metrics</a></li>
<li><a href="#competition-to-mlflow" id="markdown-toc-competition-to-mlflow">Competition to MLflow</a></li>
<li><a href="#mlflow-components" id="markdown-toc-mlflow-components">MLflow Components</a> <ul>
<li><a href="#backend-sql-store" id="markdown-toc-backend-sql-store">Backend SQL Store</a></li>
<li><a href="#enterprise-mlflow-on-databricks-unitydb" id="markdown-toc-enterprise-mlflow-on-databricks-unitydb">Enterprise MLflow on Databricks UnityDB</a></li>
<li><a href="#mlflow-artifact-store" id="markdown-toc-mlflow-artifact-store">MLflow Artifact store</a></li>
<li><a href="#tracking-ui-server" id="markdown-toc-tracking-ui-server">Tracking UI Server</a></li>
</ul>
</li>
<li><a href="#end-to-end-capabilities-flowchart" id="markdown-toc-end-to-end-capabilities-flowchart">End-to-end capabilities Flowchart</a></li>
<li><a href="#two-sided-product" id="markdown-toc-two-sided-product">Two sided product</a></li>
<li><a href="#docker-compose" id="markdown-toc-docker-compose">Docker Compose</a></li>
<li><a href="#manual-install-locally" id="markdown-toc-manual-install-locally">Manual Install locally</a> <ul>
<li><a href="#vulnerability-scans" id="markdown-toc-vulnerability-scans">Vulnerability Scans</a></li>
</ul>
</li>
<li><a href="#download-and-start-server" id="markdown-toc-download-and-start-server">Download and Start Server</a> <ul>
<li><a href="#start-mlflow" id="markdown-toc-start-mlflow">Start MLflow</a></li>
</ul>
</li>
<li><a href="#ide" id="markdown-toc-ide">IDE</a></li>
<li><a href="#custom-mlflow-extensions" id="markdown-toc-custom-mlflow-extensions">Custom MLflow Extensions</a></li>
<li><a href="#github-repos" id="markdown-toc-github-repos">GitHub repos</a> <ul>
<li><a href="#mlproject-file" id="markdown-toc-mlproject-file">MLproject file</a></li>
<li><a href="#mlflows-sample-python-code" id="markdown-toc-mlflows-sample-python-code">MLflow’s Sample Python code</a></li>
<li><a href="#sample_ml_modelpy" id="markdown-toc-sample_ml_modelpy">Sample_ML_model.py</a></li>
<li><a href="#azure-sample-genai-python-code" id="markdown-toc-azure-sample-genai-python-code">Azure Sample GenAI Python code</a></li>
</ul>
</li>
<li><a href="#python-libraries" id="markdown-toc-python-libraries">Python Libraries</a></li>
<li><a href="#scoring-guidelines-in-python" id="markdown-toc-scoring-guidelines-in-python">Scoring Guidelines in Python</a></li>
<li><a href="#mlflow-activation-in-python" id="markdown-toc-mlflow-activation-in-python">MLflow activation in Python</a></li>
<li><a href="#mlflow-workflows" id="markdown-toc-mlflow-workflows">MLFlow workflows</a></li>
<li><a href="#aliases" id="markdown-toc-aliases">Aliases</a> <ul>
<li><a href="#metrics-for-each-experiment" id="markdown-toc-metrics-for-each-experiment">Metrics for each experiment:</a></li>
<li><a href="#metrics-classification-report" id="markdown-toc-metrics-classification-report">Metrics Classification Report</a></li>
</ul>
</li>
<li><a href="#compare-metrics-from-selected-experiments" id="markdown-toc-compare-metrics-from-selected-experiments">Compare metrics from selected experiments</a></li>
<li><a href="#dagshub" id="markdown-toc-dagshub">Dagshub</a></li>
<li><a href="#references" id="markdown-toc-references">References:</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<h2 id="why-mlflow-run-metadata-and-metrics">Why MLflow? Run Metadata and Metrics</h2>
<p>Machine Learning (ML) engineers not using MLflow need to track their <strong>run metadata</strong> perhaps using a spreadsheet such as this:</p>
<p><a href="#[1]"><img alt="mlflow-spreadsheet-1436x319.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1765776124/mlflow-spreadsheet-1436x319_pmlbha.png" /></a></p>
<p><a name="RunMetadata"></a>
Metadata about runs include: Run ID, Run Start/End time, User, Model type, Parameters, Dataset version, etc.</p>
<p><a name="RunMetrics"><a></a></a></p>
<p>Run metrics include: F Score, Precision, Recall, Accuracy.</p>
<p>The above doesn’t provide versioning and is a clumsy way to share data.</p>
<p>MLflow provides a GUI to share and visualize data many different ways.</p>
<p><a name="Competition"></a></p>
<h2 id="competition-to-mlflow">Competition to MLflow</h2>
<p>Kubeflow is run within Kubernetes.</p>
<p>NVIDIA’s reinforcement learning environments (NeMo Gym and NeMo RL) run with
<a target="_blank" href="https://lmstudio.ai/">https://lmstudio.ai</a>
to run LLMs privately (like Hugging Face).</p>
<p>LangSmith:</p>
<ul>
<li>Debugging</li>
<li>Playground</li>
<li>Prompt Management</li>
<li>Annotation</li>
<li>Testing</li>
<li>Monitoring
<br /><br /></li>
</ul>
<p>Airflow focuses on using a DAG (Directed Asysclic Graph, like GitHub uses) to version data changes.</p>
<p><a name="Components"></a></p>
<h2 id="mlflow-components">MLflow Components</h2>
<p>MLflow provides “Enterprise worthy” features in each of its “pluggable” components:</p>
<p>The menu that appears lists the data artifacts MLflow works with:</p>
<p><a href="#[1]"><img align="right" width="202" alt="mlflow3.7-menu-202x202.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1765773223/mlflow3.7-menu-202x202_cazx2k.png" /></a></p>
<ul>
<li>Experiments are run based on input prompts (referencing tags)</li>
<li>Models are artifacts (e.g. a pickled scikit-learn model)</li>
<li>Prompts are store in a backend SQL store
<br /><br /></li>
</ul>
<p>Architecture:</p>
<ul>
<li><a href="#Backend">Backend SQL Store</a> to store metadata about runs, models, traces, and experiments</li>
<li><a href="#ArtifactStore">(Binary object file) Artifact store</a></li>
<li><a href="#TrackingServer">Tracking UI Server</a>
<br /><br /></li>
</ul>
<p><a name="Backend"></a></p>
<h3 id="backend-sql-store">Backend SQL Store</h3>
<p><a href="Metrics">Run metrics</a> (such as model parameters, tags, and metadata from experiments (logs, traces, metrics) are streamed into a <strong>Backend Store</strong>. This is typically a relational (SQL) database.</p>
<p><a target="_blank" href="https://www.databricks.com/product/managed-mlflow">“managed cloud services”</a> from cloud vendors provide enterprises the fine-grained user and network access controls they need.</p>
<ul>
<li>Databricks</li>
<li>AWS Sagemaker</li>
<li>Azure Machine Learning</li>
<li>GCP (GKE)</li>
<li>Nebius
<br /><br /></li>
</ul>
<p>MLflow software managing the MLflow Backend Store makes use of <strong>SQLAlchemy Engine library</a>
which implements OS environment variables controlling <a target="_blank" href="https://docs.sqlalchemy.org/en/20/core/pooling.html">SQLAlchemy’s QuePool connection pooling options</a> referenced to manage a pool of long running database connections in memory for efficient re-use:</strong></p>
<table>
<tbody>
<tr>
<td>OS System Environment Variable</td>
<td>SQLAlchemy QueuePool option</td>
<td>Default</td>
</tr>
<tr>
<td>MLFLOW_SQLALCHEMYSTORE_POOL_SIZE</td>
<td>pool_size</td>
<td>5</td>
</tr>
<tr>
<td>MLFLOW_SQLALCHEMYSTORE_MAX_OVERFLOW</td>
<td>max_overflow</td>
<td>10</td>
</tr>
<tr>
<td>MLFLOW_SQLALCHEMYSTORE_POOL_RECYCLE</td>
<td>pool_recycle</td>
<td>True</td>
</tr>
</tbody>
</table>
<p>These setting can be instantiated with the sqlachemy engine:</p>
<pre><code class="language-Python">engine = create_engine(
config.SQLALCHEMY_DATABASE_URI, pool_pre_ping=True, pool_size=32, max_overflow=64
)
</code></pre>
<p>“pool size” is the total number of concurrent DBAPI connections an application may use simultaneously.</p>
<p><a target="_blank" href="https://davidcaron.dev/sqlalchemy-multiple-threads-and-processes/">BLOG</a>: CAUTION: Default values mean that a timout occurs when more than 15 connections are opened at the same time (with 5 of them staying idle when not in use, and 10 of them being discarded when released).</p>
<p><a target="_blank" href="https://www.reddit.com/r/learnpython/comments/117531z/sqlalchemy_queuepoolconnection_pool_fails_without/">PROTIP</a>: Ongoing monitoring of resource usage (such as slowlog) is needed for algorithms (such as gunicorn) to recognize when settings need to be reconfigured to adequately handle actual average and peak loads.</p>
<p>A connection pool shared among several modern (WSGI) web servers (which use multiple threads and/or processes for better performance) need subtle but fundamental configurations that can lead to very bad and difficult to diagnose production errors:</p>
<ul>
<li>WSGI servers are created before the worker processes are forked.</li>
<li>Several processes will use the same connection concurrently, and the reponses could get mixed up.</li>
<li>One process will close the connection, and the other will try to use it, leading to an exception raised.
<br /><br /></li>
</ul>
<h3 id="enterprise-mlflow-on-databricks-unitydb">Enterprise MLflow on Databricks UnityDB</h3>
<p>For example, when MLflow runs on a Databricks’ “Unity” database in the cloud, Databricks’ “Lakehouse” architecture holds multiple versions of the same data to enable “fall back” to the state of the whole database at previous points in time.</p>
<p>https://www.mlflow.org/docs/latest/self-hosting/architecture/overview/</p>
<p>One can start with a single host mode with SQLite backend and local file system for storing artifacts. To scale up, you can switch backend store to PostgreSQL cluster and point artifact store to cloud storage such as S3, GCS, or Azure Blob Storage.</p>
<p><a name="ArtifactStore"></a></p>
<h3 id="mlflow-artifact-store">MLflow Artifact store</h3>
<ul>
<li><a target="_blank" href="https://mlflow.org/docs/latest/self-hosting/architecture/artifact-store/">https://mlflow.org/docs/latest/self-hosting/architecture/artifact-store</a>
<br /><br /></li>
</ul>
<p>MLflow objects (binary-format files) containing model weights, container images (.png files), etc. are housed in an <strong>Artifact Store</strong>.</p>
<p>The legacy default was storing those artifacts in a local folder path specified one of two ways:
* <tt>MLFLOW_TRACKING_URI=”./mlruns”</tt> is set in CLI or
* <tt>--backend-store-uri ./mlruns</tt> in CLI parameters when starting the server.
<br /><br /></p>
<p><tt>Path: mlflow-artifacts:/…</tt></p>
<p>For Logistic Regression:</p>
<ul>
<li>MLmodel (Parquet file)</li>
<li>conda.yaml (if you’re using Conda environment)</li>
<li>model.pkl (“pikle” files containing Scikit-learn model data)</li>
<li>python_env.yaml</li>
<li>requirements.txt
<br /><br /></li>
</ul>
<p>Software such as <a target="_blank" href="https://www.min.io/">min.io AIStor</a> (Object store) located by the value of <tt>MLFLOW_S3_ENDPOINT_URL</tt>) manages <a target="_blank" href="https://mlflow.org/docs/latest/self-hosting/architecture/artifact-store/">artifacts as file storage types</a>:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* NFS (Network File System) such as mount point <tt>/mnt/nfs</tt>
* Amazon S3 at MLFLOW_S3_ENDPOINT_URL
* Azure Blob Storage,
* Google Cloud Storage,
* SFTP server,
<br /><br />
</code></pre></div></div>
<p>A separate Bash CLI script needs to be secured to contain secret keys defined such as this OS system variable to use stronger KMS keys (which cost more) on AWS S3:</p>
<p><tt>export MLFLOW_S3_UPLOAD_EXTRA_ARGS=’{“ServerSideEncryption”: “aws:kms”, “SSEKMSKeyId”: “1234…”}’</tt></p>
<p><a name="TrackingServer"></a></p>
<h3 id="tracking-ui-server">Tracking UI Server</h3>
<p><a href="#StarServer">Tracking Server</a> is the lightweight FastAPI server that serves the MLflow UI and API.</p>
<ol>
<li>
<p>Click “Open Source” under “Model Training” at:</p>
<p><a target="_blank" href="https://www.mlflow.org/docs/latest/ml/">https://www.mlflow.org/docs/latest/ml/</a></p>
<p>(Classic/Traditional Machine Learning) <strong>Model Training</strong> which <strong>create LLMs</strong>. MLflow helps with management of <a target="_blank" href="https://github.com/mlflow/mlflow/tree/master/examples/hyperparam">tuning hyperperameters</a> and analyzing result metrics from various experiments during the whole lifecycle of machine learning projects.</p>
<ul>
<li>https://docs.databricks.com/aws/en/mlflow/</li>
<li>
<p>https://docs.databricks.com/aws/en/getting-started/free-edition
<br /><br /></p>
</li>
<li><a target="_blank" href="https://www.youtube.com/watch?v=2ABNr-IJNsM&t=1m36s">VIDEO</a>: Databricks’ MLflow 3 product managers Eric Peter and Corey Zumar Nov 7, 2025.</li>
</ul>
</li>
</ol>
<hr />
<p><a name="Flowchart"></a></p>
<h2 id="end-to-end-capabilities-flowchart">End-to-end capabilities Flowchart</h2>
<p><img alt="mlflow-lifecycle-1870x798.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1765916820/mlflow-lifecycle-1870x798_lv8hej.png" /></p>
<p>TODO: Text</p>
<hr />
<h2 id="two-sided-product">Two sided product</h2>
<p>Our question about MLFlow’s “Open Source” editions: can it be used by cheap students to evaluate my own AI prompts. Examples here run on the default SQLite database setup on my macOS laptop or <a target="_blank" href="https://www.mlflow.org/docs/latest/self-hosting/">self-host</a> on servers.</p>
<ol>
<li>
<p>In an internet browser, visit where MLflow is open-sourced:</p>
<p><a target="_blank" href="https://github.com/mlflow/mlflow">https://github.com/mlflow/mlflow</a></p>
<p>“The open source developer platform to build AI agents and models with confidence. Enhance your AI applications with end-to-end tracking, observability, and evaluations, all in one integrated platform.”</p>
<p>“MLflow is the only platform that provides a unified solution for all your AI/ML needs, including LLMs, Agents, Deep Learning, and traditional machine learning.”</p>
</li>
<li>
<p>Visit the MLflow marketing website:</p>
<p><a target="_blank" href="https://www.mlflow.org">https://www.mlflow.org</a></p>
<p>Notice there are two sides to the MLflow product:</p>
<p>A. Classic/Traditional Machine Learning <strong>Model Training runs</strong> which create LLMs used to respond to prompts.</p>
<p>B. New <strong>GenAI Apps & Agents</strong> to evaluate and optimize AI applications and agentic workflows of prompts which use LLMs to plan actions and call APIs.</p>
<p>Either way, MLflow’s <a href="#Flowchart">“end-to-end” capabilities</a> led to make it the most popular framework enterprises use for “industrial scale” operation and <strong>governance</strong> in the lifecycle of LLM creation and usage (from dev to production use).</p>
</li>
<li>
<p>Visit MLflow’s Docs website:</p>
<p><a target="_blank" href="https://www.mlflow.org/docs/latest/index.html">https://www.mlflow.org/docs/latest/index.html</a></p>
<p>Notice that to each side there is an “Open Source” option and “MLflow on Databricks” option.</p>
</li>
</ol>
<hr />
<p><a name="DockerCompose"></a></p>
<h2 id="docker-compose">Docker Compose</h2>
<p>All components can be setup using a single <strong>docker compose</strong> CLI command which instantiates 3 docker containers:</p>
<p>A. MLflow<br />
B. MinIO artifact (object) server (port 9000)<br />
C. MySQL backend on port 5000<br /></p>
<ol>
<li>
<p>TODO:</p>
<p>based on https://github.com/sachua/mlflow-docker-compose</p>
</li>
</ol>
<p><a name="ManualInstall"></a></p>
<h2 id="manual-install-locally">Manual Install locally</h2>
<p>PROTIP: Using uv rather than pip:</p>
<ol>
<li>Python
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python --version
</code></pre></div> </div>
</li>
<li>Ensure you have the latest uv utilities installed, including the
global uv configuration directory <tt>~/.config/uv/</tt> and uv.toml file:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uv config --show
uv --version
</code></pre></div> </div>
<pre>
uv 0.9.13 (Homebrew 2025-11-26)
</pre>
</li>
<li>PROTIP: Create a folder to receive files, populate with .git folder, .gitignore, pyproject.toml, README.md, .python-version
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uv init mlflow1
cd mlflow1
</code></pre></div> </div>
</li>
<li>PROTIP: To install MLflow as a CLI tool (instead of using pip):
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pipx install mlflow
mlflow --version
</code></pre></div> </div>
<pre>mlflow, version 3.7.0</pre>
<p>Databricks reports 5,000 users.</p>
</li>
<li>
<p>NOTE: MLflow describes its releases at:
<a target="_blank" href="https://github.com/mlflow/mlflow/releases">https://github.com/mlflow/mlflow/releases</a></p>
<h3 id="vulnerability-scans">Vulnerability Scans</h3>
</li>
<li>PROTIP: Scan for vulnerabilities:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pipx runpip mlflow list --format=freeze | safety scan --stdin
</code></pre></div> </div>
</li>
<li>Research CVEs found, such as:
<pre>
The safety scan found 8 HIGH severity vulnerabilities (CVSS 8.8) in MLflow 3.7.0, all related to deserialization issues in various ML model formats:
• CVE-2024-37057: TensorFlow models
• CVE-2024-37055: pmdarima models
• CVE-2024-37053 & CVE-2024-37052: scikit-learn models
• CVE-2024-37054: PyFunc models
• CVE-2024-37056: LightGBM scikit-learn models
• CVE-2024-37059: PyTorch models
• CVE-2024-37060: Recipes
No known fixes are available yet for these vulnerabilities. These are deserialization vulnerabilities that could potentially allow arbitrary code execution when loading untrusted model files. If you're working with models from untrusted sources, exercise caution until patches are released.
</pre>
</li>
<li>CAUTION: Raise security issues securely. Instead of detailing specifics about security issues in public, follow the procedure in <a target="_blank" href="https://github.com/mlflow/mlflow/blob/master/SECURITY.md">their SECURITY.md</a> (email).</li>
</ol>
<p><a name="StarServer"></a></p>
<h2 id="download-and-start-server">Download and Start Server</h2>
<ol>
<li>Download modules for server:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mlflow ui
</code></pre></div> </div>
<p>Without configuration means these warning message appear:</p>
<pre>
Backend store URI not provided. Using sqlite:///mlflow.db
Registry store URI not provided. Using backend store URI.
</pre>
<p>Look for:</p>
<pre>
INFO: Uvicorn running on http://127.0.0.1:5000 (Press CTRL+C to quit)
...
INFO: Application startup complete.
</pre>
<h3 id="start-mlflow">Start MLflow</h3>
</li>
<li>Optionally: Open another CLI Terminal window and:
<pre><code class="language-Bash">mlflow server --port 5000
</code></pre>
</li>
<li>Open your default browser:
<pre><code class="language-Bash">open http://127.0.0.1:5000
</code></pre>
<h2 id="ide">IDE</h2>
<ul>
<li>VSCode vs. PyCharm vs.</li>
<li>AI browsers Comet, etc.</li>
</ul>
<h2 id="custom-mlflow-extensions">Custom MLflow Extensions</h2>
<p>To extend MLflow’s core with new flavors, UI tabs, or artifact stores,
build custom functionality, see <a target="_blank" href="https://www.mlflow.org/docs/latest/ml/plugins/#developing-custom-plugins">Write & Use MLflow Plugins</a>. It shows how to package your plugin, register it, and test it locally before pushing to production.</p>
<p>in <a target="_blank" href="https://mlflow.org/docs/latest/api_reference/python_api/index.html">Python</a>, Java, R, CLI, and <a target="_blank" href="https://github.com/mlflow/mlflow/tree/master/examples/rest_api">REST API Example</a></p>
<h2 id="github-repos">GitHub repos</h2>
<p>Spam Classification, Time Series Analysis, Text Classification using Random Forest, Deep Learning</p>
<h3 id="mlproject-file">MLproject file</h3>
<p>https://github.com/mlflow/mlflow-example/blob/master/MLproject</p>
<pre>
name: tutorial
conda_env: conda.yaml
entry_points:
main:
parameters:
alpha: {type: float, default: 0.5}
l1_ratio: {type: float, default: 0.1}
command: "python train.py {alpha} {l1_ratio}"
</pre>
<h3 id="mlflows-sample-python-code">MLflow’s Sample Python code</h3>
<p>https://github.com/mlflow/mlflow-example
wine quality. Uses Conda.</p>
<h3 id="sample_ml_modelpy">Sample_ML_model.py</h3>
<p>https://github.com/c17hawke/mlflow-introduction/blob/main/mlflow-codebase/simple-ML-model/simple_ML_model.py</p>
<h3 id="azure-sample-genai-python-code">Azure Sample GenAI Python code</h3>
<p>https://github.com/Azure-Samples/azure-databricks-mlops-mlflow
Azure Databricks MLOps sample for Python based source code using MLflow without using MLflow Project.</p>
<h2 id="python-libraries">Python Libraries</h2>
</li>
<li>
<p>Python –version</p>
</li>
<li>
<p>mlflow, etc. in requirements.txt</p>
</li>
<li>Although the Conda library is not secure for having too many modules that can go rogue, create and activate the conda environment:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>conda create --prefix ./env python=3.12 -y
conda actiavate ./env
</code></pre></div> </div>
</li>
<li>
<p>Although not scalable, install pandas for dataframe handling:</p>
<h2 id="scoring-guidelines-in-python">Scoring Guidelines in Python</h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import mlflow
from mlflow.genai.scores import Guidelines
custom_guidelines = [{
"name" : "accuracy",
"guideline": """The response correctly references ...
...
"name" : "personalized",
...
]
custom_scorers = [{
Guidelines(name=g["name"], guidelines=g["guideline"])
for g in custom_guidelines # above.
</code></pre></div> </div>
<h2 id="mlflow-activation-in-python">MLflow activation in Python</h2>
</li>
<li>Add these lines of Python code to activate MLflow instrumentation:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> from openai import OpenAI
mlflow.openai.autolog()
</code></pre></div> </div>
<h2 id="mlflow-workflows">MLFlow workflows</h2>
<ol>
<li>Log traces</li>
<li>Train models</li>
<li>Run evaluation</li>
<li>Register prompts</li>
</ol>
<h2 id="aliases">Aliases</h2>
<p>Aliases can be associated with specific runs, such as “@Challenger”.</p>
<p><a name="Metrics"></a></p>
<h3 id="metrics-for-each-experiment">Metrics for each experiment:</h3>
<p><a href="#[1]"><img alt="mlflow3.7-1metric-478x211.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1765775828/mlflow3.7-1metric-478x211_sekzox.png" /></a></p>
<p>recall_class_0 ???</p>
<p>recall_class_1 ???</p>
<p><a name="Classification"></a></p>
<h3 id="metrics-classification-report">Metrics Classification Report</h3>
<p>A sample <tt>print(classifaction_report(y_test, y_pred_xgb)</tt> after an experiment run yields:</p>
<p><a href="#[1]"><img alt="mlflow3.7-report-744x250.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1765775197/mlflow3.7-report-744x250_rahzzh.png" /></a></p>
<p>Adapted from https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html#sklearn.metrics.classification_report</p>
<p>Among Per-Class Metrics:</p>
<p><strong>Precision</strong>: Of all instances the model predicted as a given class, what percentage were actually that class? Intuitively, precision is the ability of the classifier not to label as positive a sample that is negative.</p>
<ul>
<li>Class 0: Precision 0.98 means that when the model predicts 0, it is correct 98% of the time.</li>
<li>Class 1: 81% of predicted 1s were correct
<br /><br /></li>
</ul>
<p><strong>Recall</strong>: Of all actual instances of a given class, what percentage did the model correctly identify? Recall is the ability of the classifier to find all the positive samples.</p>
<ul>
<li>Class 0: Recall 0.98 means it finds 98% of all true 0’s.</li>
<li>Class 1: 83% of actual 1s were found
<br /><br /></li>
</ul>
<p><strong>F1-score</strong>: The weighted harmonic mean of precision and recall, balancing both metrics:</p>
<ul>
<li>Class 0: 0.98 (excellent)</li>
<li>Class 1: 0.82 (good)
<br /><br /></li>
</ul>
<p><strong>Support</strong>: The count of actual instances of each class in the dataset:</p>
<ul>
<li>Class 0: 270 instances (90% of data)</li>
<li>Class 1: 30 instances (10% of data)
<br /><br /></li>
</ul>
<p>The model performs better on class 0 than class 1, which is common when there’s class imbalance (270 vs 30 samples). The weighted average of 0.96 is closer to class 0’s performance because that class dominates the dataset.</p>
<p>Among Aggregate Metrics near the bottom:</p>
<p><strong>Accuracy</strong>: Overall correctness across all predictions = F1 score of 96%</p>
<p><strong>Macro avg</strong>: Simple average of metrics across classes (treats each class equally).</p>
<p>Doesn’t account for class imbalance</p>
<p><strong>Weighted avg</strong>: Average weighted by support (accounts for class imbalance).</p>
<p>More representative of overall performance given the 270:30 class distribution.</p>
<h2 id="compare-metrics-from-selected-experiments">Compare metrics from selected experiments</h2>
<p><a href="#[1]"><img alt="mlflow3.7-compare-1530x535.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1765775748/mlflow3.7-compare-1530x535_zpdtoi.png" /></a></p>
<h2 id="dagshub">Dagshub</h2>
<p>https://github.com/code/mlflow_dagshub_demo</p>
</li>
</ol>
<h2 id="references">References:</h2>
<p><a name="[1]">[1]</a> <a target="_blank" href="https://www.youtube.com/watch?v=6ngxBkx05Fs">VIDEO</a> by codebasics.io who offers a class.</p>
<p>https://mlflow.github.io/mlflow-website/blog/deep-learning-part-2/
Deep Learning with MLflow (Part 2)
uses dataset https://huggingface.co/datasets/coastalcph/lex_glue/viewer/unfair_tos</p>
<p>https://medium.com/@mohsenim/tracking-machine-learning-experiments-with-mlflow-and-dockerizing-trained-models-germany-car-price-e539303b6f97
Tracking Machine Learning Experiments with MLflow and Dockerizing Trained Models: Germany Car Price Prediction Case Study</p>
<p>https://aws.amazon.com/blogs/machine-learning/securing-mlflow-in-aws-fine-grained-access-control-with-aws-native-services/</p>
<p>https://mlflow.org/docs/latest/ml/tracking/tutorials/remote-server
Remote Experiment Tracking with MLflow Tracking Server</p>
<p>https://viso.ai/deep-learning/mlflow-machine-learning-experimentation/
MLflow: Simplifying Machine Learning Experimentation</p>
<p>https://arxiv.org/pdf/2202.10169
MACHINE LEARNING OPERATIONS: A SURVEY ON MLOPS TOOL SUPPORT
by Nipuni Hewage and Dulani Meedeniya</p>
<p>https://learning.oreilly.com/library/view/-/9781098179625/”>BOOK: “Data Governance with Unity Catalog on Databricks” September 2025</a> By Kiran Sreekumar and Karthik Subbarao</p>
<p>https://www.linkedin.com/in/jun-shan-8332221/”>
Jun Shan</p>
<hr />
<p><sub>25-12-18 v014 + SQLAlchemy :2025-01-16-mlflow.md created 2025-01-16</sub></p>
<p><a href="https://wilsonmar.github.io/mlflow/">MLflow</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 18, 2025.</p>
https://wilsonmar.github.io/ai-benchmarks2025-12-16T00:00:00+00:002025-12-16T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Let’s get to know the benchmarks AI companies use to compare each others’ versions.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/ai-benchmarks/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#ai-vendors-and-their-llm-brands" id="markdown-toc-ai-vendors-and-their-llm-brands">AI Vendors and their LLM Brands</a> <ul>
<li><a href="#llm-highlights" id="markdown-toc-llm-highlights">LLM Highlights:</a></li>
</ul>
</li>
<li><a href="#list-of-benchmarks" id="markdown-toc-list-of-benchmarks">List of benchmarks</a></li>
<li><a href="#show-your-work-get-famous" id="markdown-toc-show-your-work-get-famous">Show your work. Get famous.</a></li>
<li><a href="#llms-by-subject-category" id="markdown-toc-llms-by-subject-category">LLMs by subject category</a> <ul>
<li><a href="#humanitys-last-exam" id="markdown-toc-humanitys-last-exam">Humanity’s Last Exam</a></li>
</ul>
</li>
<li><a href="#agi--asi" id="markdown-toc-agi--asi">AGI & ASI?</a> <ul>
<li><a href="#agieval" id="markdown-toc-agieval">AGIEval</a></li>
</ul>
</li>
<li><a href="#sneaky-tricks-with-benchmarks" id="markdown-toc-sneaky-tricks-with-benchmarks">Sneaky Tricks with Benchmarks</a> <ul>
<li><a href="#claude-37-sonnet" id="markdown-toc-claude-37-sonnet">Claude 3.7 Sonnet</a></li>
</ul>
</li>
<li><a href="#math-benchmarks" id="markdown-toc-math-benchmarks">Math Benchmarks</a> <ul>
<li><a href="#math-notations" id="markdown-toc-math-notations">Math notations</a></li>
<li><a href="#mathjax" id="markdown-toc-mathjax">Mathjax</a></li>
<li><a href="#aime" id="markdown-toc-aime">AIME</a></li>
<li><a href="#math-hmmt-feburary-2025" id="markdown-toc-math-hmmt-feburary-2025">Math HMMT Feburary 2025</a></li>
</ul>
</li>
<li><a href="#science-benchmarks" id="markdown-toc-science-benchmarks">Science benchmarks</a></li>
<li><a href="#gpqa" id="markdown-toc-gpqa">GPQA</a> <ul>
<li><a href="#gaia-real-world-ai-assistant-assessment" id="markdown-toc-gaia-real-world-ai-assistant-assessment">GAIA Real-World AI Assistant Assessment</a></li>
<li><a href="#basis" id="markdown-toc-basis">BASIS</a></li>
</ul>
</li>
<li><a href="#coding-lcb-live-code-bench" id="markdown-toc-coding-lcb-live-code-bench">Coding LCB (Live Code Bench)</a></li>
<li><a href="#swe-bench-benchmark" id="markdown-toc-swe-bench-benchmark">SWE-Bench benchmark</a> <ul>
<li><a href="#codeclash" id="markdown-toc-codeclash">CodeClash</a></li>
</ul>
</li>
<li><a href="#creative-writing" id="markdown-toc-creative-writing">Creative Writing</a></li>
<li><a href="#instruction-following" id="markdown-toc-instruction-following">Instruction Following</a></li>
<li><a href="#language-translations" id="markdown-toc-language-translations">Language Translations</a></li>
<li><a href="#evaluation-quality-metrics" id="markdown-toc-evaluation-quality-metrics">Evaluation Quality Metrics</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>In AI Computer Science, a benchmark is a way to determine how well each LLM model can solve problems.
Several benchmarks have been created, mostly by academics and giant frountier LLM producers.</p>
<h2 id="ai-vendors-and-their-llm-brands">AI Vendors and their LLM Brands</h2>
<p><a target="_blank" href="https://artificialanalysis.ai/evaluations/humanitys-last-exam#humanitys-last-exam-benchmark-leaderboard-score-vs-release-date"><img alt="ai-benchmark-hle-251203.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1764810089/ai-benchmark-hle-251203_frs2bz.png" /></a></p>
<table border="1" cellpadding="4" cellspacing="0">
<tr><th>Country</th><th>Vendor</th><th>LLM brand</th><th>app</th></tr>
<tr valign="top"><td>China</td><td>Alibaba</td><td>Qwen</td></tr>
<tr valign="top"><td>US</td><td>Allen AI</td><td><a target="_blank" href="https://allenai.org/olmo">Olmo</a></td></tr>
<tr valign="top"><td>US</td><td>Amazon</td><td>Nova</td></tr>
<tr valign="top"><td>US</td><td>Anthropic</td><td>Claude</td></tr>
<tr valign="top"><td>US</td><td>Apple</td><td>MM1, ReALM</td></tr>
<tr valign="top"><td>China</td><td>DeepSeek</td><td>R1,R2,V3</td></tr>
<tr valign="top"><td>US</td><td><a target="_blank" href="#Fireworks.ai">Fireworks.ai</a></td><td>KwaiKAT-Coder</td></tr>
<tr valign="top"><td>US</td><td>Google</td><td>Gemini</td></tr>
<tr valign="top"><td>China</td><td>Zhipu (Z.Ai)</td><td>Kimi K2</td></tr>
<tr valign="top"><td>US</td><td>Meta</td><td>Llama</td></tr>
<tr valign="top"><td>US</td><td>Microsoft</td><td>Phi</td></tr>
<tr valign="top"><td>Singapore</td><td><a target="_blank" href="https://www.minimax.io/news/minimax-m2">MiniMax</a></td><td>M2, Hailuo, Speech</td></tr>
<tr valign="top"><td>France</td><td>Mistral</td><td>Medium, Large</td></tr>
<tr valign="top"><td>US</td><td>NVIDIA</td><td><a target="_blank" href="https://research.nvidia.com/labs/nemotron/Nemotron-3/">Nemotron</a></td></tr>
<tr valign="top"><td>US</td><td>OpenAI</td><td>GPT</td><td>ChatGPT</td></tr>
<tr valign="top"><td>US</td><td>xAI</td><td>Grok</td></tr>
</table>
<h3 id="llm-highlights">LLM Highlights:</h3>
<p><a target="_blank" href="https://www.interconnects.ai/p/2025-open-models-year-in-review">Nathan Lambert’s 2025</a> <a target="_blank" href="https://tiermaker.com/create/chinese-model-makers-18511783">tier list</a> shows Chinese labs (DeepSeek, Qwen, Kimi) now define the frontier. Their list:</p>
<ul>
<li>Frontier: DeepSeek, Qwen, Moonshot AI (Kimi)</li>
<li>Close competitors: Zhipu (Z.Ai), Minimax</li>
<li>Noteworthy: StepFun, InclusionAI / Ant Ling, Meituan Longcat, Tencent, IBM, NVIDIA, Google, Mistral</li>
<li>Specialists: OpenAI, Ai2, Moondream, Arcee, RedNote, HuggingFace, LiquidAI, Microsoft, Xiaomi, Mohamed bin Zayed University of Artificial Intelligence</li>
<li>On the rise: ByteDance Seed, Apertus, OpenBMB, Motif, Baidu, Marin Community, InternLM, OpenGVLab, ServiceNow, Skywork</li>
<li>Honorable mentions: TNG Group, Meta, Cohere, Beijing Academy of Artificial Intelligence, Multimodal Art Projection, Huawei
<br /><br /></li>
</ul>
<p>No US company currently appears in their top tier.
But NVIDIA’s response is to compete on efficiency and openness. <a target="_blank" href="https://research.nvidia.com/labs/nemotron/Nemotron-3/">NVIDIA’s Nemotron 3 claims to be the Intelligence vs. Output Speed king:
<img alt="nano-3-aa-5112x2220.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1765896478/nano-3-aa-5112x2220_zrxxf5.png" /></a></p>
<p>OpenRouter</p>
<p><a name="Fireworks.ai"></a></p>
<ul>
<li>
<p><a target="_blank" href="https://app.fireworks.ai/models/fireworks/kat-coder">KAT-Coder-Pro V1</a> from <a target="_blank" href="https://fireworks.ai/models/fireworks/kat-coder">Fireworks.ai</a> was ranked 2nd on HLE and the lowest token usage. What a bargain! It’s for coding and “agentic” work. Founded by leads from Meta PyTorch & Google Vertex at San Mateo.</p>
</li>
<li>Anthropic’s Claude</li>
<li>Microsoft’s Phi-1 (1.3B parameters) LLM is focused on Python coding. <a target="_blank" href="https://news.microsoft.com/source/features/ai/the-phi-3-small-language-models-with-big-potential/">Microsoft’s focus is on edge devices</a>.</li>
</ul>
<h2 id="list-of-benchmarks">List of benchmarks</h2>
<p><a target="_blank" href="https://betterbench.stanford.edu/">https://betterbench.stanford.edu</a>
is a repository of AI benchmark assessments for informed benchmark selection through quality evaluation and best practice analysis.</p>
<p>Huggingface.co is the internet’s repository of LLMs. For example:</p>
<p>https://huggingface.co/datasets/cais/hle/viewer/default/test?p=24&views%5B%5D=test</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=aOjgPJ94-aM">VIDEO</a>:
Huggingface accelerate library to run</p>
<p>The biggest one is “Humanity’s Last Exam”,</p>
<h2 id="show-your-work-get-famous">Show your work. Get famous.</h2>
<p>PROTIP: Look through the problems from a category (below) you might be able to solve. Explain how you solved each problem in text and video. Really solving just one problem provides proof of your academic capabilities and grit. It shows you’re not lazy enough to blindly let AI rot your brain. And it others notice you can defend against false charges of plagerism.</p>
<p>Making YouTube videos may get you some money. And if you find issues with a problem’s autograder, even better. File an issue on the benchmark problem GitHub repo.</p>
<p>PROTIP: Suggest new problems. File a PR and get listed as a contributor.</p>
<p>BTW I’m working on a website to encourage such evaluations and contributions,
by giving out rewards and recognition (including cash).
Let me know if you’re interested.</p>
<p>A concern about AI benchmarks is data contamination, where test questions leak into training data, enabling models to “memorize” answers instead of reasoning that connect concepts rather than just recalling facts.
Thus, the Massive Multitask Language Understanding (MMLU) benchmark that evaluates language understanding is enhanced by <a target="_blank" href="https://github.com/TIGER-AI-Lab/MMLU-Pro">MMLU-Pro</a> with broader and more challenging tasks.
Its <a target="_blank" href="https://huggingface.co/spaces/TIGER-Lab/MMLU-Pro">Leaderboard</a> now exceeds 90%
over its 12,000 rigorously curated questions from academic exams and textbooks, spanning 14 diverse domains including Biology, Business, Chemistry, Computer Science, Economics, Engineering, Health, History, Law, Math, Philosophy, Physics, Psychology, and Others.</p>
<p>To raise the difficulty and reduce the chance of success through random guessing, ten <a target="_blank" href="https://huggingface.co/datasets/TIGER-Lab/MMLU-Pro">answer options</a> are given.</p>
<h2 id="llms-by-subject-category">LLMs by subject category</h2>
<p>Language:</p>
<ul>
<li>HELLASWAG (Harder Endings Longer context Low-shot Activities Situations With Adversarial Generations) to finish sentences</li>
<li><a href="#MMLU">MMLU</a> (Massive Multitask Language Understanding) 15K questions</li>
<li><a href="#Creative_Writing">Creative Writing</a></li>
<li><a href="#TRUTHFULQA">TRUTHFULQA</a> to test whether the LLM recognises 800 unhinged conspiracy theories as false</li>
</ul>
<p>General safety:</p>
<ul>
<li><a href="#IFEval">IFEval</a> (Instruction Following)</li>
<li><a href="#Instruction_Following">Instruction Following</a></li>
<li><a href="#HarmBench">HarmBench</a> of prompts to jail-break out of content moderation controls by LLMs</li>
<li>Mind2Web and AITW benchmark of GUI screen object recognition to evaluate OMNIPARSER vs GPT-4V</li>
</ul>
<p>Reasoning:</p>
<ul>
<li>ARC (AI2 Reasoning Challenge) from the Allen Institute for AI</li>
<li>ARC is “Abstraction and Reasoning Corpus”. The best models solves 30% of the tasks.</li>
</ul>
<p>Science:</p>
<ul>
<li><a href="#MT-bench">MT-bench</a> as a judge of 160 questions in 8 categories of knowledge</li>
<li><a href="#GPQA">Science (GPQA Diamond)</a> of 198 questions</li>
</ul>
<p>Composite:</p>
<ul>
<li><strong>Humanity’s Last Exam</strong> (Math, Physics, Computer Science, Biology/Medicine, Chemistry, Engineering, Humanities/Social Science, Other) 2500 of the most difficult closed-end questions submitted by volunteers from universities around the world.</li>
</ul>
<p><a href="#Math">Math benchmarks</a>:</p>
<ul>
<li><a href="#AGIEval">AGIEval</a> 5m58s - <a target="_blank" href="https://openreview.net/forum?id=fGfCsqVZ_hfq">ARVIX</a>: Available in English (AGIEval-en) and Chinese Gaokao (AGIEval-zh), a bilingual benchmark designed to use 20 official, public, and high-standard admission and qualification exams taken by humans around tasks relevant to human cognition and problem-solving. law school admission (LSAT) tests, math competitions.</li>
<li><a href="#MMMU">MMMU</a> (Massive Multitask Math Understanding) Visual Reasoning</li>
<li><a href="#GSM8K">GSM8K</a> (Grade School Math 8K) word problems which take 2-8 steps to solve, from OpenAI</li>
<li><a href="#Math500">Math 500</a> Math Problem Solving</li>
<li><a href="#AIME">Math (AIME)</a> Math competition</li>
</ul>
<p>Coding/Programming:</p>
<ul>
<li>WINOGRADE 44K</li>
<li><a href="#LCB">Coding LCB (Live Code Bench)</a></li>
<li><a href="#SWE">SWE-Bench (Agentic SoftWare Engineering)</a>
<ul>
<li>SWE-bench Lite - curated to make evaluation less costly and more accessible</li>
<li>SWE-bench Multimodal featuring issues with visual elements (images, videos) from JavaScript repositories</li>
<li><a target="_blank" href="https://openai.com/index/introducing-swe-bench-verified/">SWE-bench Verified</a> - a human annotator filtered subset that has been deemed to have a ceiling of 100% resolution rate</li>
</ul>
</li>
<li><a href="#TAU">TAU-Bench (Task Analysis Unit)</a> to test agentic tool use</li>
<li>humaneval, humaneval+ and taco to cover the current programming benchmarks.</li>
</ul>
<h3 id="humanitys-last-exam">Humanity’s Last Exam</h3>
<p>https://huggingface.co/datasets/cais/hle</p>
<p>The data folder (in parquet format) can be downloaded from:
https://huggingface.co/datasets/cais/hle/tree/main</p>
<p>Create an account at https://agi.safe.ai/ and click “Contributors” to see submissions in the fields of Math, Physics, Computer Science, Biology/Medicine, Chemistry, Engineering, Humanities/Social Science</p>
<hr />
<h2 id="agi--asi">AGI & ASI?</h2>
<p><a target="_blank" href="https://www.youtube.com/watch?time_continue=1430&v=om5KAKSSpNg">VIDEO</a>:
In June 2024, <a target="_blank" href="https://www.linkedin.com/in/leopold-aschenbrenner">Leopold Aschenbrenner</a> wrote his <a target="_blank" href="https://situational-awareness.ai/">situational-awareness.ai blog</a> with this illustration:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1737377788/agi-sit-1375x901_vsc5af.png">
<img alt="" width="300" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1737377788/agi-sit-1375x901_vsc5af.png" /></a></p>
<p><i>Click image to enlarge to full frame.</i></p>
<p>By 2025, AI companies have sucked up all the information that have been created by humans. The next thing is generation of new information. New problems need to be defined because, in 2025, evaluations about the extent that a particular offering has reached AGI (Artificial General Intelligence) based on a relatively <strong>small number of challenges</strong>.</p>
<p>ASI (Artificial Super Intelligence) will be reached when “proto-automated” researchers automate research (within massive AI datacenters).</p>
<p><a name="AGIEval"></a></p>
<h3 id="agieval">AGIEval</h3>
<p>Introduced 16 Dec 2023 on <a target="_blank" href="https://openreview.net/forum?id=fGfCsqVZ_hfq">ARVIX</a>
(by <a target="_blank" href="https://www.linkedin.com/in/ruixiang-cui/">Ruixiang Cui</a> while working at Microsoft and during his PhD at the University of Copenhage)
as “A Human-Centric Benchmark for Evaluating Foundation Models” for AGI (Artificial General Intelligence) development.</p>
<ul>
<li>5m58s -</li>
</ul>
<p>AGIEVal is called “human-centric” because its prompts are based on 20 exams: official, public, and high-standard admission and qualification exams taken by humans: SAT, law school admission (LSAT) tests, math competitions.</p>
<p>As of March 2025, the v1.1 version of the <a target="_blank" href="https://github.com/ruixiangcui/AGIEval?tab=readme-ov-file#leaderboard">leaderboard for AGIEval</a> shows:</p>
<ul>
<li>A top score in the low 70% by GPT-4o means a low “pass” for humans?</li>
<li>Providing examples (Few Shot and Few Shot-COT) improved accuracy by 3.1 points (AGIEval-en).</li>
<li>The newer GPT-4o with reasoning capabilities improved accuracy over GPT-3.5 by an average of 1.2 points (AGIEval-en).</li>
<li>Because AGIEval is uniquely bilingual, it provides insight on the “arms race” toward AGI development between the US and China. With Few-shot GPT-4o, the achievement of 71.9% puts the Chinese (AGIEval-zh) slightly ahead of the 71.4% (AGIEval-en) for English.</li>
</ul>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1740893682/ai-bench-agi-results-v1.1-png_q73hi9.png">
<img alt="ai-bench-agi-results-v1.1-png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1740893682/ai-bench-agi-results-v1.1-png_q73hi9.png" /></a></p>
<p>An example is https://github.com/ruixiangcui/AGIEval
JSONL (JSON Lines) is a lightweight, text-based data format designed for storing structured data records, where each line in the file represents a valid JSON object. This format is particularly useful for handling large datasets efficiently, as it allows for line-by-line processing without requiring the entire file to be loaded into memory.</p>
<p>Shown below:
https://github.com/ruixiangcui/AGIEval/blob/main/data/v1_1/math.jsonl</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>{"passage": null, "question": "Let $\\lambda$ be a constant, $0 \\le \\lambda \\le 4,$ and let $f : [0,1] \\to [0,1]$ be defined by\n\\[f(x) = \\lambda x(1 - x).\\]Find the values of $\\lambda,$ $0 \\le \\lambda \\le 4,$ for which there exists an $x \\in [0,1]$ such that $f(x) \\neq x$ but $f(f(x)) = x.$", "options": null, "label": null, "answer": "(3,4]", "other": {"solution": "We have that\n\\[f(f(x)) = f(\\lambda x(1 - x)) = \\lambda \\cdot \\lambda x(1 - x) (1 - \\lambda x(1 - x)),\\]so we want to solve $\\lambda \\cdot \\lambda x(1 - x) (1 - \\lambda x(1 - x)) = x.$\n\nNote that if $f(x) = x,$ then $f(f(x)) = f(x) = x,$ so any roots of $\\lambda x(1 - x) = x$ will also be roots of $\\lambda \\cdot \\lambda x(1 - x) (1 - \\lambda x(1 - x)) = x.$ Thus, we should expect $\\lambda x(1 - x) - x$ to be a factor of $\\lambda \\cdot \\lambda x(1 - x) (1 - \\lambda x(1 - x)) - x.$ Indeed,\n\\[\\lambda \\cdot \\lambda x(1 - x) (1 - \\lambda x(1 - x)) - x = (\\lambda x(1 - x) - x)(\\lambda^2 x^2 - (\\lambda^2 + \\lambda) x + \\lambda + 1).\\]The discriminant of $\\lambda^2 x^2 - (\\lambda^2 + \\lambda) x + \\lambda + 1$ is\n\\[(\\lambda^2 + \\lambda)^2 - 4 \\lambda^2 (\\lambda + 1) = \\lambda^4 - 2 \\lambda^3 - 3 \\lambda^2 = \\lambda^2 (\\lambda + 1)(\\lambda - 3).\\]This is nonnegative when $\\lambda = 0$ or $3 \\le \\lambda \\le 4.$\n\nIf $\\lambda = 0,$ then $f(x) = 0$ for all $x \\in [0,1].$\n\nIf $\\lambda = 3,$ then the equation $f(f(x)) = x$ becomes\n\\[(3x(1 - x) - x)(9x^2 - 12x + 4) = 0.\\]The roots of $9x^2 - 12x + 4 = 0$ are both $\\frac{2}{3},$ which satisfy $f(x) = x.$\n\nOn the other hand, for $\\lambda > 3,$ the roots of $\\lambda x(1 - x) = x$ are $x = 0$ and $x = \\frac{\\lambda - 1}{\\lambda}.$ Clearly $x = 0$ is not a root of $\\lambda^2 x^2 - (\\lambda^2 + \\lambda) x + \\lambda + 1 = 0.$ Also, if $x = \\frac{\\lambda - 1}{\\lambda},$ then\n\\[\\lambda^2 x^2 - (\\lambda^2 + \\lambda) x + \\lambda + 1 = \\lambda^2 \\left( \\frac{\\lambda - 1}{\\lambda} \\right)^2 - (\\lambda^2 + \\lambda) \\cdot \\frac{\\lambda - 1}{\\lambda} + \\lambda + 1 = 3 - \\lambda \\neq 0.\\]Furthermore, the product of the roots is $\\frac{\\lambda + 1}{\\lambda^2},$ which is positive, so either both roots are positive or both roots are negative. Since the sum of the roots is $\\frac{\\lambda^2 + \\lambda}{\\lambda^2} > 0,$ both roots are positive. Also,\n\\[\\frac{\\lambda^2 + \\lambda}{\\lambda} = 1 + \\frac{1}{\\lambda} < \\frac{4}{3},\\]so at least one root must be less than 1.\n\nTherefore, the set of $\\lambda$ that satisfy the given condition is $\\lambda \\in \\boxed{(3,4]}.$", "level": 5, "type": "Intermediate Algebra"}}
</code></pre></div></div>
<p>TODO: Utility to display jsonl files for human consumption.</p>
<p>Upload a .json file and download it as .jsonl using online converters <a target="_blank" href="https://codebeautify.org/json-to-jsonl-converter">Code Beautify</a>
and <a target="_blank" href="https://konbert.com/convert/json/to/jsonl">Konbert.com</a></p>
<h2 id="sneaky-tricks-with-benchmarks">Sneaky Tricks with Benchmarks</h2>
<p>When xAI unveiled its Grok-3 LLM on Feb 18, 2025, one analysis shows it ranking #1 across the various benchmarks (including Creative Writing, Instruction Following, etc.):</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1739896040/genai-grok3-819x426_wgomxb.png"><img src="https://res.cloudinary.com/dcajqrroq/image/upload/v1739896040/genai-grok3-819x426_wgomxb.png" /></a></p>
<p>This table compares specific scores on specific benchmarks:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1739990857/ai-evaluations-grok3_qs2uj2.png"><img alt="ai-evaluations-grok3.png" width="300" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1739990857/ai-evaluations-grok3_qs2uj2.png" /></a></p>
<p>That resulted in some crying that xAI neglected to include in the comparison results of OpenAI’s o3 December results:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1739990857/ai-evaluations-o3-dec_nij82u.png"><img alt="ai-evaluations-o3-dec.png" width="300" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1739990857/ai-evaluations-o3-dec_nij82u.png" /></a></p>
<h3 id="claude-37-sonnet">Claude 3.7 Sonnet</h3>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1740511914/ai-eval-claude37-1092x868_xobnff.png"><img alt="ai-eval-claude37.png" width="300" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1740511914/ai-eval-claude37-1092x868_xobnff.png" /></a></p>
<p>The above is from Anthropic’s Claude 3.7 Sonnet announcement on Feb 25, 2025.
Dubbed the first hybrid AI reasoning model, it is a groundbreaking AI model because it allows users to control how long it “thinks” before responding to deliver real-time answers or take extra time to provide more complex, well-reasoned responses.
It’s available to premium Claude users.
Pricing: $3 per million input tokens and $15 per million output tokens—higher than OpenAI’s o3-mini.</p>
<p>Anthropic is also launching Claude Code, a tool that lets developers run AI-driven code edits directly from their terminal, analyze projects, and even push changes to GitHub.</p>
<hr />
<p><a name="Math"></a></p>
<h2 id="math-benchmarks">Math Benchmarks</h2>
<p>There are several mathematics competitions: AIME, HMMT, Mandelbrot, ARML.</p>
<p>Additionally, each US state:</p>
<ul>
<li><a target="_blank" href="https://www.montanamath.org/mctm-math-contest/math-contest">MCTM</a> (Montana Council of Teachers of Mathematics)
<br /><br /></li>
</ul>
<p><a name="MathNotation"></a></p>
<h3 id="math-notations">Math notations</h3>
<p><a target="_blank" href="https://www.youtube.com/watch?v=BNI5r-A2V8E">VIDEO</a>:
Answers of specific (discrete) values can be represented between commas within <strong>curly braces</strong> (keyed by Shift + [ and Shift + ]) in “Roster Notation (aka Roster Form)” such as this to enumerate (list) a set of elements. <a target="_blank" href="https://www.youtube.com/watch?v=tyDKR4FG3Yw&list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz">VIDEO</a>:</p>
<p>Within curly braces <tt>{ }</tt> is a “set,” i.e., a collection of elements without order or repetition rules. Commas separate elements within the set.</p>
<p><tt>A = {1, 2, 3, 4,…,999}</tt></p>
<p>On Macs, to open the Character Viewer, press Control + Command + Space to type in a search term:</p>
<ul>
<li>ℕ means Natural numbers (positive integers)</li>
<li>2ℤ means even integers (positive or negative integers)</li>
<li>ℚ means rational numbers (fractions)</li>
<li>ℝ</li>
<li>ℂ</li>
<li>Three dots between elements represents intermediate values between 4 and 999.</li>
<li>Three dots at the end of the list represents infinite number of elements.
<br /><br /></li>
</ul>
<p>With Roster Notation, the order of elements does not matter.
There is no order in a set.
All elements are written in any order and only once.</p>
<p>An alternative is “Set Builder Form”, which defines the unique <strong>properties or conditions</strong> satisfied by all the elements of the set, using symbols:</p>
<p><tt>{ x | -1 ≤ x < 6 }</tt></p>
<ul>
<li><tt>”|”</tt> is read “such that”.</li>
<li>“≤” is less than or equal symbol <tt>\leq</tt></li>
<li>”<” is less than or not equal to <tt>\leq</tt>.</li>
<li>”>” is greater than or not equal to <tt>\geq</tt>.
<br /><br />
Thus: All values of x such that X is less than or equal to -1 or less than 6.</li>
</ul>
<p><tt>{ 2x | x ∈ ℤ<sup>+</sup> }</tt></p>
<ul>
<li>“x” is <tt>\times</tt> multiplier.</li>
<li>∈ (epsilon, set by Option+E or \in) in (belongs to) “x ∈ ℤ<sup>+</sup>” is read: x among positive integers.</li>
<li>∉ (not element of)
<br /><br /></li>
</ul>
<p>DEFINITION: “Cardinality” is the number of elements in a set, represented as |N|.</p>
<ul>
<li>
<p>n(A)</p>
</li>
<li><tt>|∅|</tt> (null, set by Option + O) means an empty set.</li>
<li>ø means similar</li>
<li>
<p><tt>|{∅}|</tt> means the size of an empty set = 1 for the empty set itself.</p>
</li>
<li>⊂ (subset) is set by \subset</li>
<li>⊆ (subset or equal)</li>
<li>∪ (union = \cup)</li>
<li>∩ (intersection), as is “Fish n Chips”</li>
<li>Δ or δ (delta symbol for difference, keyed by Option + J or Option + D)</li>
<li>° (degree symbol keyed by Option + Shift + 8</li>
<li>∝ (proportional symbol ∝)</li>
<li>≈ is approximately equal <tt>\approx</tt>, keyed by Option + X. <tt>≈</tt>
<br /><br /></li>
</ul>
<p>About mathematical set notation, see:</p>
<ul>
<li>https://www.purplemath.com/modules/setnotn.htm</li>
<li>https://www.geeksforgeeks.org/maths/set-notation/
<br /><br /></li>
</ul>
<p><a name="Mathjax"></a></p>
<h3 id="mathjax">Mathjax</h3>
<p><a target="_blank" href="https://www.youtube.com/watch?v=6Ii_9H0tpvg">VIDEO</a>:
Mathematical symbols are typeset from textual notation markup in <a target="_blank" href="https://en.wikipedia.org/wiki/LaTeX">LaTeX</a> (or ASCIImath <a target="_blank" href="http://www.w3.org/1998/Math/MathML">MathML</a>), such as:</p>
<pre>\$$\frac{4}{9} \left( 17 - 8\cos(2\sqrt{3}) \right)$$</pre>
<p>The <tt>\$$</tt> at the beginning and <tt>$$</tt> at the end specifies use of the <a target="_blank" href="https://www.mathjax.org/">Mathjax library</a> to generate graphical mathematical symbols using CSS with web fonts or SVG, such as:</p>
<script>
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
},
svg: {
fontCache: 'global'
}
};
</script>
<script id="MathJax-script" async="" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<p>\(\frac{4}{9} \left( 17 - 8\cos(2\sqrt{3}) \right)\)</p>
<ul>
<li><tt>\frac</tt> specifies the fraction “4/9”.</li>
<li><tt>\left</tt> specifies left parentheses.</li>
<li><tt>\right</tt> specifies right parentheses.</li>
<li><tt>\sqrt</tt> specifies square root.
<br /><br /></li>
</ul>
<pre>$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$</pre>
<p>specifies the quadratic equation:</p>
<p>\(x = {-b \pm \sqrt{b^2-4ac} \over 2a}\)</p>
<ul>
<li><tt>\pm</tt> specifies the ⨦ plus or minus symbol.
<br /><br /></li>
</ul>
<p>Others:</p>
<ul>
<li><tt>\ne</tt> specifies the ≠ not equal symbol.</li>
<li>π is the symbol for Pi (3.14…), written as <tt>\pi</tt> or <tt>π</tt></li>
<li>∞ is the infinity symbol ∞ written as <tt>\infty</tt></li>
<li>
<p><tt>e^</tt> of P(???) specifies exponentiation to the power of <tt>{-1/3}</tt>, presented as a superscript.</p>
</li>
<li>_ (underline) define subscript as in <tt>\log_2(x)</tt>
<br /><br /></li>
</ul>
<p>Alternatives to LaTex coding include <a target="_blank" href="https://www.youtube.com/watch?v=NTGkb4FCLhM">VIDEO</a>: <a target="_blank" href="https://typst.app/home/">Typst</a> which enables automatically formats as you write, and thus real-time collaboration on Google Docs.</p>
<p><a name="AIME"></a></p>
<h3 id="aime">AIME</h3>
<p>The American Invitational Mathematics Examination (AIME) is administered by the <a target="_blank" href="https://maa.org/student-programs/amc/">Mathematical Association of America</a> each year as the second exam in the series of exams used to challenge high school mathletes competing to represent the US at the International Mathematics Olympiad (MOP). over 300,000 students in 50 states and over 30 countries</p>
<p>Students are invited to take the AIME based on their scores for exams <a target="_blank" href="https://areteem.org/blog/amc-10-12-all-you-need-to-know/">AMC 10 for middle schoolers and AMC 12 for high schoolers</a> offered November each year.</p>
<p>The questions test knowledge in algebra, geometry, counting and probability, and number theory. Both tests cover material typically covered in the first few years of high school math. Topics such as trigonometry, complex numbers, and logarithms are only needed for the AMC 12. Calculus is not required for either exam. Challenges include fundamentals in Pigeonhole Principle, Mathematical Induction, Inequalities, Diophantine Equations, and Functional Equations.</p>
<ul>
<li><a target="_blank" href="https://artofproblemsolving.com/wiki/index.php/2025_AIME_I_Problems">2025 AIME_I Problems</a></li>
<li><a target="_blank" href="https://artofproblemsolving.com/wiki/index.php/2025_AIME_II_Problems">2025 AIME_II Problems</a></li>
<li><a target="_blank" href="https://artofproblemsolving.com/wiki/index.php/2024_AIME_I_Problems">2024 AIME_I Problems</a></li>
<li><a target="_blank" href="https://artofproblemsolving.com/wiki/index.php/2024_AIME_II_Problems">2024 AIME_II Problems</a></li>
</ul>
<p>All answers are a single integer between 0 and 999. Click the “Solution” link for explanations.</p>
<p>In 2025, the AIME was held February 6th, with problems and answers published immediately afterwards on various YouTube channels, forums, and blogs:</p>
<ul>
<li><a target="_blank" href="https://www.youtube.com/@PiAcademyOfficial/videos">Pi Academy</a></li>
<li>MathProblemSolvingSkills.com</li>
<li><a target="_blank" href="https://www.youtube.com/@levoniananton/videos">Anton Levonian</a></li>
<li>https://areteem.org/blog/2025-aime-i-answer-key-released/</li>
</ul>
<p><a target="_blank" href="https://www.linkedin.com/pulse/deepseeks-abysmal-performance-aime-2025-math-annie-cushing-mpdge">BLOG</a>:
Annie Cushing (author of Making Data Sexy), notes that “The MathArena team … worked against the clock to run evaluations using the … problems before models could start training on it.”
because the challenging math problems “makes for an excellent benchmark to see how well these models reason through more complex problems, with less opportunity to get the answer correct by chance since the test isn’t multiple choice like many benchmarks.”</p>
<p>For use by AI, Lex code for the first of 15 problems in AIME 2025 II are at:<br />
https://github.com/eth-sri/matharena/blob/main/data/aime/aime_2025_II/problems/1.tex
QUESTION: Print properly formatted Lex files using <tt>wlect cat ???.lex</tt></p>
<p><a target="_blank" href="https://matharena.ai/">https://matharena.ai</a> publishes how well various LLM models reasoned about mathematics challenges in terms of Accuracy and cost of compute.
As of Feb 20, 2025:<br />
<a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1740060965/ai-evaluation-matharena-250220_ctgmff.png"><img width="100" alt="ai-evaluation-matharena-250220" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1740060965/ai-evaluation-matharena-250220_ctgmff.png" /></a></p>
<p>Each green box indicates the AI solved the problem >75% of 4 runs (repeated passes with the same prompt). Red boxes indicate problem solved less than 25% of passes. Yellow: Problem solved 25-75% of the time.</p>
<p><a target="_blank" href="https://maa.edvistas.com/eduview/report.aspx?self=&view=1561&mode=6&timestamp=20250220005530203">Stats</a>: 150 is the highest score.</p>
<h3 id="math-hmmt-feburary-2025">Math HMMT Feburary 2025</h3>
<p>The HMMT (Harvard-MIT Mathematics Tournament, at <a target="_blank" href="https://www.hmmt.org ">hmmt.org</a>) is a math competition founded in 1998 by students at Harvard, MIT, and schools near Boston, Massachuetts.
It remains <a target="_blank" href="https://www.randommath.com/register-tournaments/hmmt">organized</a> by students.</p>
<p>Each tournament draws close to 1000 students from around the globe.</p>
<p><a target="_blank" href="https://en.wikipedia.org/wiki/HMMT#:~:text=The%20difficulty%20of%20the%20February,problems%20of%20the%20February%20tournament.">WIKIPEDIA</a>:
The HMMT February tournament is generally considered to be more difficult than the American Invitational Mathematics Examination (AIME). However, difficulty varies by tournament and by round.</p>
<p>The top 50 scorers in the February tournament are invited to compete in the HMIC (Harvard MIT Invitational Competition), a five question proof contest.</p>
<p>The November tournament is easier than the February tournament, with problems similar to the AMC 10 and 12, and the AIME.</p>
<p>Calculus is not required for most of the problems, but it may be needed to solve some of the more difficult problems.</p>
<p>HMMT hosts staff exchange programs with the Princeton University Mathematics Competition (PUMaC), Carnegie Mellon Informatics and Mathematics Competition (CMIMC), and Stanford Math Tournament (SMT) to further collaboration between the competitions’ organizers. During exchanges, participants ranging from first-year members to more senior officers spend the weekend proctoring, grading, and otherwise volunteering at the host competition day-of.</p>
<hr />
<h2 id="science-benchmarks">Science benchmarks</h2>
<p><a name="GPQA"></a></p>
<h2 id="gpqa">GPQA</h2>
<p>GPQA (Google-Proof Q&A) is a challenging dataset of 448 multiple-choice questions written by domain experts in biology, physics, and chemistry.</p>
<p>“Google Proof” means that the answer is not discoverable by a query on Google.com (or Perplexity.ai).
The answer requires “reasoning” through several intermediate queries to a panel of “experts”.</p>
<p><a target="_blank" href="https://arxiv.org/pdf/2311.12022">PDF</a> of
https://arxiv.org/abs/2311.12022 says “We ensure that the questions are high-quality and extremely difficult: experts who have or are pursuing PhDs in the corresponding domains reach 65% accuracy (74% when discounting clear mistakes the experts identified in retrospect), while highly skilled non-expert validators only reach 34% accuracy, despite spending on average over 30 minutes with unrestricted access to the web (i.e., the questions are “Google-proof”).</p>
<p>“The questions are also difficult for state-of-the-art AI systems, with our strongest GPT-4 based baseline achieving 39% accuracy. If we are to use future AI systems to help us answer very hard questions, for example, when developing new scientific knowledge, we need to develop scalable oversight methods that enable humans to supervise their outputs, which may be difficult even if the supervisors are themselves skilled and knowledgeable. The difficulty of GPQA both for skilled non-experts and frontier AI systems should enable realistic scalable oversight experiments, which we hope can help devise ways for human experts to reliably get truthful information from AI systems that surpass human capabilities.</p>
<p>The GPQA Leaderboard at https://klu.ai/glossary/gpqa-eval</p>
<p>The GPQA Dataset at
<a target="_blank" href="https://github.com/idavidrein/gpqa/">https://github.com/idavidrein/gpqa</a>
was created by <a target="_blank" href="https://www.linkedin.com/in/idavidrein/">I. David Rein</a>
while he was a Researcher at New York University and now part of <a target="_blank" href="https://metr.org/blog/2025-01-17-ai-models-dangerous-before-public-deployment/">METR</a>
FAR.AI</p>
<p>https://sofworld.org/pattern-questions-and-marking-scheme</p>
<ul>
<li>SOF ICSO - International Computer Science Olympiad</li>
<li>SOF NSO - National Science Olympiad</li>
<li>SOF IMO - International Mathematics Olympiad</li>
<li>SOF IEO - International English Olympiad</li>
<li>SOF ICO - International Commerce Olympiad</li>
<li>SOF IGKO - International General Knowledge Olympiad</li>
<li>SOF ISSO - International Social Studies Olympiad</li>
<li>SOF International Hindi Olympiad
<br /><br /></li>
</ul>
<h3 id="gaia-real-world-ai-assistant-assessment">GAIA Real-World AI Assistant Assessment</h3>
<p><a target="_blank" href="https://www.youtube.com/watch?v=vSxX2L-YffU">VIDEO</a>:
<a target="_blank" href="https://arxiv.org/abs/2311.12983">https://arxiv.org/abs/2311.12983</a>
[Submitted on 21 Nov 2023] GAIA (General AI Assistant) real-World AI assistant Benchmark evaluates AI systems on practical, real-world tasks that encompass reasoning, multi-modal processing, web browsing, and tool utilization.</p>
<p>Despite being conceptually simple for humans, who achieve 92% accuracy, GAIA’s 466 questions aims to pose 3 levels of challenges for AI, requiring web browsing, multi-modaity, coding, diverse file type reading, play Tetris, translation, spell checking. GPT-4 (with plugins) scored only 15%. This stark performance gap underscores GAIA’s effectiveness in benchmarking AI systems’ robustness and adaptability across diverse, everyday scenarios, emphasizing the need for AI to match or exceed average human performance on practical tasks.</p>
<h3 id="basis">BASIS</h3>
<p>BASIS: Frontier of Scientific AI Capabilities BASIS (Benchmark for Advanced Scientific Inquiry Systems) pushes the boundaries of AI evaluation in scientific domains, surpassing even GPQA in complexity. Tailored for assessing AI systems expected to perform at or beyond human expert level, BASIS focuses on tasks demanding advanced scientific inquiry and reasoning. This benchmark is crucial for developing and evaluating AI systems capable of contributing meaningfully to cutting-edge scientific research and problem-solving, potentially accelerating breakthroughs across various scientific disciplines.</p>
<hr />
<p><a name="LCB"></a></p>
<h2 id="coding-lcb-live-code-bench">Coding LCB (Live Code Bench)</h2>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1740618053/ai-benchmarks-kimi_micquq.png"><img alt="ai-benchmarks-kimi.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1740618053/ai-benchmarks-kimi_micquq.png?raw=true" /></a></p>
<ul>
<li>Model names beginning with “O” such as “O3” are from <a target="_blank" href="https://openai.com">OpenAI.com</a></li>
<li>Model name “Kimi” is at <a target="_blank" href="https://kimi.moonshot.cn">https://kimi.moonshot.cn</a> from China.</li>
<li>Model name “DeepSeek” is <a target="_blank" href="https://chat.deepseek.com/sign_in">DeepSeek.com</a> from China.</li>
<li>Model names “Gemini” are from <a target="_blank" href="https://gemini.google.com/app">chat.google.com</a></li>
<li>Model names “Claude” are from Anthropic at <a target="_blank" href="https://claude.ai/new">https://claude.ai/new</a> where it proclaims its “emphasis on what’s called “constitutional AI” - an approach to developing AI systems with built-in safeguards and values.</li>
<li>Model names “Dracarys” uch as <a target="_blank" href="https://huggingface.co/abacusai/Dracarys2-72B-Instruct">Dracarys2-Llama-3.1-70B-Instruct</a> are in the Smaug series, a finetune of Qwen2.5-72B-Instruct developed by: Abacus.AI China at</li>
<li>LLama3-70b-Ins from Meta at https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct</li>
<li>
<p>DSCodder at https://huggingface.co/deepseek-ai/deepseek-coder-1.3b-base</p>
</li>
<li>Where is IBM WatsonX in this list?</li>
</ul>
<p>Over time, a larger fraction of difficult problems are introduced with model capability improvements. A drop in performance in the later months is expected.</p>
<p><a target="_blank" href="https://livecodebench.github.io/">https://livecodebench.github.io</a> says
LCB (Live Code Bench) collects problems from periodic contests on</p>
<ul>
<li><a target="_blank" href="https://www.leetcode.com/">LeetCode</a>,</li>
<li><a target="_blank" href="https://www.atcoder.com">AtCoder</a>, and</li>
<li>
<p><a target="_blank" href="https://www.codeforces.com">Codeforces</a> (ELO). <a target="_blank" href="https://www.youtube.com/watch?v=K1p3-PP4Qv4&list=PLcXpkI9A-RZLUfBSNp-YQBCOezZKbDSgB">VIDEO</a></p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=7LTks_tOosk">VIDEO</a>:
Build a game usong ChatGPT 03 Mini
O3-mini achieved a perfect 10/10 on pylint for a Hangman game project.</p>
</li>
</ul>
<p>LLM platforms use them for constructing a holistic benchmark for evaluating Code LLMs across variety of code-related scenarios continuously over time.</p>
<p>The livecodebench runner is <a target="_blank" href="">Naman Jain</a> CS Ph.D. Berkeley.</p>
<p><a target="_blank" href="https://www.linkedin.com/in/kingh0730/">Shangdian (King) Han</a> living in Berkeley, California. Previously Microsoft Research.</p>
<p>OpenAI o3 scored among the top 10 contestants in <a target="_blank" href="https://codeforces.com">Codeforces.com</a> competitive programming solving complex problems under time constraints (2.5 hours).</p>
<p>LiveCodeBench.com publishes <a target="_blank" href="https://livecodebench.github.io/leaderboard.html">four Leaderboards</a>:
For each leadershboard provides a time slider. As of this writing:</p>
<ul>
<li>880 Code Generation</li>
<li>713 Self Repair</li>
<li>442 Test Output Prediction</li>
<li>
<p>479 Code Execution</p>
</li>
<li>Not Kaggle competitions?</li>
</ul>
<p>Models submitted for evaluation are at https://github.com/LiveCodeBench/submissions</p>
<p>For a more nuanced evaluation of LLM performance across different difficulty levels,<br />
“Pass@1” measures the percentage of problems a model can solve correctly on its <strong>first attempt</strong> across all difficulty levels.<br />
“Easy Pass@1” refers to the Pass@1 performance on problems categorized as “Easy”.
See https://openreview.net/forum?id=chfJJYC3iL</p>
<p>At https://github.com/LiveCodeBench/LiveCodeBench/blob/main/lcb_runner/prompts/code_execution.py<br />
prompts begin with:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> system_message = "You are an expert at Python programming, code execution, test case generation, and fuzzing."
``
</code></pre></div></div>
<p>You are given a Python function and an assertion containing an input to the function. Complete the assertion with a literal (no unsimplified expressions, no function calls) containing the output when executing the provided code on the given input, even if the function is incorrect or incomplete. Do NOT output any extra information. Execute the program step by step before arriving at an answer, and provide the full assertion with the correct output in [ANSWER] and [/ANSWER] tags, following the examples.
```</p>
<p>Its dataset of “448” multiple-choice questions is in the password-protected 2.2MB dataset.zip file at
https://github.com/idavidrein/gpqa/blob/main/dataset.zip</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=0or_0JbMaFc&t=2m51s">VIDEO</a>:
Here’s a question about use of hour glasses that Grok3 cannot solve in 3 minutes.</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=0or_0JbMaFc&t=5m11s">VIDEO</a>
“Write a chess engine using the UCI (Universal Chess Interface) protocol”</p>
<hr />
<p><a name="SWE"></a></p>
<h2 id="swe-bench-benchmark">SWE-Bench benchmark</h2>
<p><a target="_blank" href="https://www.swebench.com/">SWE-Bench (Software Engineering Benchmark) at https://www.swebench.com</a>
involves giving agents a code repository and issue description, and challenging them to generate a patch that resolves the problem described by the issue.</p>
<p>https://www.swebench.com/#verified</p>
<p>https://github.com/swe-bench/sb-cli/
provides the CLI to run the benchmarks.</p>
<p>SWE-Bench has been used as the way to compare how well LLM offerings tests systems’ ability to automatically <strong>solve GitHub issues</strong> in a dataset containing 2,294 Issue-Pull Request pairs from 12 popular Python repositories:</p>
<ul>
<li>astropy (95)</li>
<li>Django (850)</li>
<li>Flask (11)</li>
<li>matplotlib (184)</li>
<li>pylint (57)</li>
<li>pytest (119)</li>
<li>requests (44)</li>
<li>scikit-learn (229)</li>
<li>seaborn (22)</li>
<li>sphinx (187)</li>
<li>sympy (386)</li>
<li>xarray (110)
<br /><br /></li>
</ul>
<p>The <a target="_blank" href="https://arxiv.org/abs/2310.06770" title="Is AI Replacing Software Engineering?">10 Oct 2023 Arxiv article</a> describes the unit test verification using post-PR behavior as the reference solution.</p>
<ul>"Resolving issues in SWE-bench frequently requires understanding and coordinating changes across multiple functions, classes, and even files simultaneously, calling for models to interact with execution environments, process extremely long contexts and perform complex reasoning that goes far beyond traditional code generation tasks."</ul>
<p>Those working on it include [email protected] and [email protected]</p>
<h3 id="codeclash">CodeClash</h3>
<p>https://codeclash.ai/</p>
<p>This evaluates 8 models on 6 arenas across 1680 tournaments at 15 rounds each (25,200 rounds total), generating 50k agent <a target="_blank" href="https://viewer.codeclash.ai/">trajectories</a>.</p>
<p>An LLM’s success over several “rounds” is measured by relative scores like income, territory control, survival in 6 “arenas”:</p>
<ol>
<li>
<p>Battlesnake: Snake AIs compete to survive and grow in a grid</p>
</li>
<li>
<p>Core War : Redcode warriors battle to control a virtual computer</p>
</li>
<li>
<p>Halite : Distribute resources wisely to conquer territory</p>
</li>
<li>
<p>Poker : No Limit Texas Hold’em with 2+ players</p>
</li>
<li>
<p>RoboCode - Tank combat - outlast and outgun opponents</p>
</li>
<li>
<p>RobotRumble : Program swarms to overwhelm opponents
<br /><br /></p>
</li>
</ol>
<p>https://viewer.codeclash.ai/
shows the leader – Anthropic Sonnet 4 and 4.5 – score between 30 to 70.</p>
<p>Instead of explicit GitHub issues or tasks to solve (like other benchmarks), competitors are given just a high-level objective (<strong>goals</strong>) so models decide for themselves what to build.</p>
<p>Each round has two phases: edit, then compete. In the edit phase, models get to improve their codebase as they see fit. Write notes, analyze past rounds, run test suites, refactor code – whatever helps.</p>
<p>In each round, the LLM analyzes gigabytes of logs, adapt strategies, implement algorithms, and make all high- to low-level decisions.</p>
<p>Competition logs are then copied back to each model’s codebase and the next round begins.</p>
<p>https://github.com/CodeClash-ai/CodeClash</p>
<hr />
<p><a name="Creative_Writing"></a></p>
<h2 id="creative-writing">Creative Writing</h2>
<p>Coming soon.</p>
<hr />
<p><a name="Instruction_Following"></a></p>
<h2 id="instruction-following">Instruction Following</h2>
<p>Coming soon.</p>
<p>https://www.youtube.com/watch?v=a6bPt9oyoa8&t=1m32s
“retirement will come for most people sooner than they think”.
Brandage: Ex OpenAI Employee Gives Warning About The Economy
TheAIGRID</p>
<p>https://www.youtube.com/watch?v=REjFL9hkkL4
Anthropic’s Chilling 18-Month Warning: AI Apocalypse in 18 Months
TheAIGRID</p>
<p>https://www.youtube.com/watch?v=379s4W_EaTk</p>
<p>https://www.youtube.com/watch?v=379s4W_EaTk&t=9m3s
LLM Engineer’s Handbook (from Packt)
by Paul Lustzien,</p>
<p>OmniParser
https://microsoft.github.io/OmniParser/</p>
<p>https://www.youtube.com/watch?v=kkZ4-xY7oyU&t=2m11s
PersonaQA for Hallucination Evaluation</p>
<hr />
<p><a name="Translations"></a></p>
<h2 id="language-translations">Language Translations</h2>
<p>COMET, BLEU, and CHRF are widely used metrics for evaluating machine translation (MT) quality.</p>
<p>https://www.perplexity.ai/search/what-is-the-comet-score-for-tr-9RkzS6rsRr6R9oyBwYZvag</p>
<hr />
<p><a name="Evaluation"></a></p>
<h2 id="evaluation-quality-metrics">Evaluation Quality Metrics</h2>
<p>It depends on what you are trying to achieve.</p>
<ul>
<li>Classification tasks are measured using the “Accuracy” metric.</li>
<li>Regression tasks are measured using mean squared error (MSE).</li>
<li>
<p>Generation tasks are measured using mean squared error (MSE).</p>
</li>
<li>Task allocation tasks are measured using the F1 score.</li>
<li>Text summarization tasks are measured using the ROUGE score.</li>
<li>Question answering tasks are measured using the BLEU score.</li>
</ul>
<p><a href="https://bomonike.github.io/ai-benchmarks">https://bomonike.github.io/ai-benchmarks</a></p>
<hr />
<p><sub>25-12-16 v030 Nemotron :2024-12-28-ai-benchmarks.md created 2024-12-28</sub></p>
<p><a href="https://wilsonmar.github.io/ai-benchmarks/">AI Benchmarks</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 16, 2025.</p>
https://wilsonmar.github.io/foody-christmas2025-12-14T00:00:00+00:002025-12-14T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Eat your way through Christmas films.</i></p>
<h2 id="christmas-movies">Christmas movies</h2>
<ol>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/the-polar-express">The Polar Express (2004)</a> HBO - Rich, frothy hot chocolate served on the train.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/a-bad-moms-christmas">A Bad Moms Christmas (2017)</a> - Spiced, spiked cider.</li>
<li>
<p><a target="_blank" href="https://www.justwatch.com/us/movie/rudolph-the-red-nosed-reindeer">Rudolph the Red-Nosed Reindeer (1964)</a> - Tomato soup and other simple winter comfort foods.</p>
</li>
<li>
<p><a target="_blank" href="https://www.justwatch.com/us/movie/the-family-stone">The Family Stone (2005)</a> - Egg strata for Christmas breakfast.</p>
</li>
<li><a target="_blank" href="https://www.justwatch.com/us/search?q=A%20Christmas%20Carol">A Christmas Carol</a> - Roast goose, Christmas pudding, and other rich Victorian holiday foods.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/a-christmas-story-1983">A Christmas Story (1983)</a> - Chinese roast duck at the restaurant, plus meatloaf and mashed potatoes at home.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/national-lampoons-christmas-vacation">National Lampoon’s Christmas Vacation (1989)</a> - Eggnog in moose cups and a very dry roast turkey.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/home-alone">Home Alone (1990)</a> - Plain cheese pizza and microwaved macaroni and cheese.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/how-the-grinch-stole-christmas">How the Grinch Stole Christmas (2000)</a> - “Roast beast” at the Whoville feast.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/frank-capras-its-a-wonderful-life">It’s a Wonderful Life (1946)</a> - roast chicken and other comfort foods.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/the-holiday">The Holiday (2006)</a> - Braised brisket and festive coffee drinks).</li>
<li>Meet Me in St. Louis (1944)</a> - Ketchup, corned beef.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/last-christmas">Last Christmas (2019)</a> - sauerkraut, sausage, Krempita, tiramisu.</li>
<li>
<p><a target="_blank" href="https://www.justwatch.com/us/movie/the-holdovers">The Holdovers (2023)</a> -</p>
</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/die-hard-1988">Die Hard (1988)</a> - Hostess Twinkies.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/rankin-bass-frosty-the-snowman">Frosty the Snowman (1969)</a> - Red velvet cupcakes.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/the-santa-clause">The Santa Clause (1994)</a> - Giant chocolate chip cookies and hot chocolate made by the elves.</li>
<li><a target=”_blank” href=https://www.justwatch.com/us/movie/home-alone-2-lost-in-new-york”>Home Alone 2:Lost in New York (1992)</a> - Huge ice cream sundaes via room service.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/elf">Elf (2003)</a> - Buddy’s candy-loaded maple-syrup spaghetti and the “four main food groups”: candy, candy canes, candy corn, and syrup.</li>
<li>
<p><a target="_blank" href="https://www.justwatch.com/us/movie/love-actually">Love Actually (2003)</a> - Banoffee pie (no-bake or almost no-bake layered dessert with biscuit crust, caramel/toffee, bananas, and whipped cream).</p>
</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/the-man-who-invented-christmas">The Man Who Invented Christmas (2017)</a></li>
<li>A Christmas Story Christmas (2022)</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/white-christmas">White Christmas (1954)</a></li>
<li>
<p><a target="_blank" href="https://www.justwatch.com/us/movie/joyeux-noel">Joyeux Noel (2005)</a> <a target="_blank" href="https://www.rottentomatoes.com/m/joyeux_noel">Merry Christmas on Fandango</a></p>
</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/little-women-2019">Little Women (2019)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/little-women-1994">Little Women (1994)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/miracle-on-34th-street-1994">Miracle on 34th Street (1947)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/the-nightmare-before-christmas">Tim Burton’s The Nightmare Before Christmas (1993)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/the-guardians-of-the-galaxy-holiday-special">The Guardians of the Galaxy Holiday Special (2022)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/arthur-christmas">Arthur Christmas (2011)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/tokyo-godfathers">Tokyo Godfathers (2003)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/jingle-jangle-a-christmas-journey">Jingle Jangle: A Christmas Journey (2020)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/edward-scissorhands">Edward Scissorhands (1990)</a></li>
<li>
<p><a target="_blank" href="https://www.justwatch.com/us/movie/while-you-were-sleeping">While You Were Sleeping (1995)</a></p>
</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/journey-to-bethlehem">Journey to Bethlehem (2023)</a> - figs “fat juicy ones”.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/gremlins-1">Gremlins (1984)</a> - Sandwich, chips. After receiving an exotic small animal as a Christmas gift, a young man inadvertently breaks three important rules concerning his new pet, which unleashes a horde of malevolently mischievous creatures on a small town.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/a-christmas-tale">A Christmas Tale ( Un conte de Noël, 2008)</a> - When their regal matriarch falls ill, the troubled Vuillard family come together for a hesitant Christmastime reunion. Among them is rebellious ne’er-do-well Henri and the uptight Elizabeth. Together under the same roof for the first time in many years, their intricate, long denied resentments and yearnings emerge again.</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/rare-exports-a-christmas-tale">Rare Exports: A Christmas Tale (2010)</a> - Young Pietari lives with his reindeer-herding father in arctic Finland. On the eve of Christmas, a nearby excavation makes a frightening discovery and an evil Santa Claus is unleashed…</li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/better-watch-out">Better Watch Out (2016)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/search?q=Spoiler%20Alert">Spoiler Alert (2022)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/happiest-season">Happiest Season (2020)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/anna-and-the-apocalypse">Anna and the Apocalypse (2017)</a></li>
<li><a target="_blank" href="https://play.hbomax.com/movie/ac61604a-3831-4f32-b6c2-8f70cdedb216">Four Chirstmases (2008)</a></li>
<li><a target="_blank" href="https://www.justwatch.com/us/movie/christmas-with-the-kranks">Christmas with the Kranks (2004)</a> <a target="_blank" href="https://play.hbomax.com/movie/870a4ba2-728e-4b43-9436-8b75ad99e72d">HBO</a></li>
</ol>
<hr />
<p><sub>25-12-14 v009 eof :2025-09-02-foody-christmas.md created 2025-09-02</sub></p>
<p><a href="https://wilsonmar.github.io/foody-christmas/">A Foody's Christmas</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 14, 2025.</p>
https://wilsonmar.github.io/history2025-12-13T00:00:00+00:002025-12-13T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p>Over the years, I reference this page when watching documentaries, traveling to museums. Many dates are approximate and controversial. I welcome your comments.</p>
<p><em>NOTE: Content here are my personal opinions, and
not intended to represent any employer (past or present).
“PROTIP:” here highlight information I haven’t seen elsewhere on the internet
because it is hard-won, little-know but significant facts
based on my personal research and experience.
</em></p>
<h2 id="periods-of-history">Periods of History:</h2>
<ul>
<li class="Itemsep"><a class="TopicChoice" href="#PreHistory"> Pre/virtual History (Geologic Time)</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#EarlyHistory"> Early Biblical History</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#Moses"> Age of Law</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#InterTestament"> Inter-testament</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#ChristTime"> Time of Christ</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#AgeGrace"> Apostolic Early Christian</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#Persecu"> Roman Persecutions</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#Byzantine"> Byzantine/Constantine</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#MiddleAgez"> Middle Ages</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#Medieval"> Medieval Period</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#Renaissance"> Renaissance/Reformation</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#ModernHist"> Modern Times</a></li>
<li class="Itemsep"><a class="TopicChoice" href="#Predictions"> Predictions about the Future</a></li>
</ul>
<hr />
<p><a name="Future"></a></p>
<h2 id="about-the-future">About the Future</h2>
<blockquote>
<p>“… the sons of Issachar had understanding of the times, to know what Israel ought to do,” <a target="bible" href="https://www.blueletterbible.org/kjv/1ch/12/32/s_350032"><nobr>--1 Chronicles 12:32</nobr> (KJV)</a></p>
</blockquote>
<blockquote>
<p>“I like the dreams of the future better than the history of the past.”</p>
</blockquote>
<nobr>--Thomas Jefferson</nobr>
<blockquote>
<p>“We celebrate the past to awaken the future.”<nobr>--John F. Kenedy, August 14, 1960</nobr></p>
</blockquote>
<blockquote>
<p>“Trying to plan for the future without regard for the past is like trying to plant cut flowers.”<nobr>--Daniel Boorstin, Historian</nobr></p>
</blockquote>
<h2 id="jokes-and-quotes">Jokes and Quotes</h2>
<p>“<strong>War </strong> is God’s way of teaching us <strong>geography</strong>” –Comedian Paul Rodriguez</p>
<p>“<strong>Coincidence </strong>is just God protecting his <strong>anonymity</strong>.–anonymous</p>
<p>“God cannot alter the past, though historians can.” –Samuel Butler</p>
<p>“You can’t understand who we <strong>are</strong>, unless you understand who we <strong>were</strong>.”–David McCullough, Historian</p>
<p>“Those who cannot remember the past are condemned to repeat it.”–George Santayana (1863-1052), in “The Life of Reason”</p>
<p>“History is the sum total of things that could have been avoided.”–Konrad Adenauer (1876-1967), first chancellor of West Germany</p>
<p>“It is easier to fool people than to convince them that they have been fooled.” Mark Twain</p>
<hr />
<h2 id="a-panorama-of-history">A Panorama of History?</h2>
<p>What are the most significant events in world history, and what do they tell us about the future?</p>
<ul>
<li>BC = B.C.=B.C.E. (Before Christ = Before the Common Era)</li>
<li>AD = A.D.=C.E. (Anno Domini = Common Era)
<br /><br /></li>
</ul>
<p>It turns out I found one ancient book that has been proven to be a reliable chronicle: the “Judeon-Christian” Bible (66 Old and 44 New Testament books) which were written in several languages in the ancient Hebrew Masoretic Text, the <em lang="gr">Textus Receptus</em> in <em lang="gr">koine</em> (common) Greek, Aramaic. Over the years, various translations have been created for different audiences over the world. This article is written for reading online by readers of English. Underlined links to passages referenced in the Bible are presented by the <a target="_blank" href="https://BlueLetterBible.org/">BlueLetterBible.org</a>. Readers can select from among several translations in English:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1694505960/history-bibles-2711x398_a8jjgt.png"><img alt="history-bibles.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1694505960/history-bibles-2711x398_a8jjgt.png" width="100%" /></a></p>
<p>The default here is the King James Version (KJV) of the Bible from 1611 Anglican England. The KJV is in the public domain and is considered by many to be the most accurate translation of the original Hebrew Masoretic Text and Greek <em lang="gr">Textus Receptus</em>. The BlueLetterBible.org site also provides a concordance of where each (of 6,000) words is referenced. There are also commentaries to help readers better understand the original meaning of the words and concepts in the Bible.</p>
<h3 id="timeline-of-history">Timeline of History?</h3>
<p><a href="#Other+Timelines">Several</a> have deduced timelines presenting the most significant events. Below is one version <a target="_blank" href="https://www.youtube.com/watch?v=IJlIcmiz0fs">from CJ Lovik</a>, which have not come true:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1693191201/bible-countdown_lc6rw5.png"><img src="https://res.cloudinary.com/dcajqrroq/image/upload/v1693191201/bible-countdown_lc6rw5.png" alt="Bible Countdown" width="100%" /><em>Click image for full screen</em></a></p>
<p>The above diagram got wrong the beginning of “70th Week of Daniel” (7 years of Tribulation) when the al-Madhi rules the world (<a target="_blank" href="https://www.blueletterbible.org/kjv/dan/9/27/s_859027">Dan 9:27</a>; <a target="bible" href="https://www.blueletterbible.org/kjv/rev/6/1/s_1173001">Rev 6:1-19?</a>.</p>
<p>But I show it for its illustration of past events, many which have archeological evidence.
The most significant events in world history are:</p>
<ul>
<li><a href="#Creation">Creation 4005 BC</a></li>
<li><a href="#SinEvent">Sin event</a> (of Adam and Eve) 3971/3970 BC</li>
<li>Noah’s (global) Flood 2353 BC</li>
<li>Promised land from Egypt 1408 BC</li>
</ul>
<p><a name="Sieges">Sieges:</a></p>
<ul>
<li>First Seige of Jerusalem 701 BC</li>
<li>Second Seige of Jerusalem 589 BC</li>
<li><a href="#JesusCrucified">Crucifixion of Jesus</a> on Nisan 14 (Friday), 30 AD (at the same time as the Passover lamb was being sacrificed).</li>
<li>
<p>Third Siege of Jerusalem (by Roman Emperor Titus in 70 AD)</p>
</li>
<li>Restoration of Jerusalem: Israel regathered in the land (<a target="bible" href="https://www.blueletterbible.org/kjv/eze/37/12/s_839012">Ez 37:12</a>; <a target="bible" href="https://www.blueletterbible.org/kjv/isa/11/1/s_690001">Isa 11:11,12</a>; <a target="bible" href="https://www.blueletterbible.org/kjv/deu/30/3-5/s_183003">Deu 30:3-5</a>)
<ul>
<li>Ancient cities rebuilt and inhabited (Ez 36:1-5, 8-10)</li>
<li>Muslim “Arab” resistance (<a target="bible" href="https://www.blueletterbible.org/kjv/jer/49/16/s_794016">Jer 49:16</a>; <a target="bible" href="https://www.blueletterbible.org/kjv/zep/2/8/s_908008">Zep 2:8</a>; Ez 25:12,32:5,36:2; <a target="bible" href="https://www.blueletterbible.org/kjv/oba/1/10/s_889010">Oba 1:10</a>)</li>
<li>Israel establishes an army for defense (<a target="bible" href="https://www.blueletterbible.org/kjv/eze/36/1/s_838001">Ez 36:67</a>, <a target="bible" href="https://www.blueletterbible.org/kjv/eze/38/8/s_840008">Ez 38:8</a>)</li>
<li>Adjacent nations confederate, committed to the destruction of Israel (<a target="bible" href="https://www.blueletterbible.org/kjv/psa/83/1-5/s_561001">Psalms 83:1-5</a>, 12)</li>
<li>War between Confederacy & Israel (<a target="bible" href="https://www.blueletterbible.org/kjv/jer/49/2/s_794002">Jer 49:2, 8, 19</a>)</li>
<li>Title regained: “My people Israel” (Hos 1:8-10; Rom 9:25,26; Ez 36:8-12)</li>
<li>God decisively defeats the Confederacy (<a target="_blank" href="https://www.blueletterbible.org/kjv/oba/1/9/s_889009">Oba 1:9,18</a>; Ez 24:13,14; Jer 49:10,20,21,23-26; Isa 11:12-14; 17:1; 19:16-17)</li>
</ul>
</li>
<li><a href="#Rapture">Rapture of the Church</a> “brides” and the Holy Spirit “restrainer” with it (<a target="bible" href="https://www.blueletterbible.org/kjv/2th/2/7/s_1118007">2 Thess 2:7</a>; <a target="bible" href="https://www.blueletterbible.org/kjv/1th/4/13-18/s_1115013">1 Thess 4:13-18</a>; <a target="bible" href="https://www.blueletterbible.org/kjv/1co/15/51-53/s_1077051">1 Cor 15:51-53</a>)</li>
<li>
<p>Damascus, Syria destroyed (<a target="_blank" href="https://www.blueletterbible.org/kjv/isa/17/1/s_696001">Isa 17:1</a>)</p>
</li>
<li>Anti-Christ is revealed</li>
<li>UN? activates the “Covenant with Many” (<a target="bible" href="https://www.blueletterbible.org/kjv/dan/9/27/s_859027">Dan 9:27</a>) for a one-world government (<a target="bible" href="https://www.blueletterbible.org/kjv/rev/13/1-8/s_1180001">Rev 13:1-8</a>) with international currency (<a target="_blank" href="https://www.blueletterbible.org/kjv/rev/13/16-18/s_1180016">Rev 13:16-18</a>) and religion (<a target="_blank" href="https://www.blueletterbible.org/kjv/rev/13/11-15/s_1180011">Rev 13:11-15</a>)</li>
<li>
<p>The Ark of the Covenant discovered <a target="_blank" href="https://www.youtube.com/watch?v=hHI1Gcq4E4Y&t=34m38s">(by the Madhi?)</a> (Zach 6) (Rev 11:19)</p>
</li>
<li>
<p>2025? The “Abomination of Desolation” (<a target="bible" href="https://www.blueletterbible.org/kjv/dan/9/27/s_859027">Dan 9:27</a>) is set up in the Temple (<a target="bible" href="https://www.blueletterbible.org/kjv/rev/13/14-15/s_1180014">Rev 13:14-15</a>)</p>
</li>
<li>
<p>Rebuilding of The Temple: “And it shall come to pass in the last days, that the mountain of the LORD’S house shall be established in the top of the mountains, and shall be exalted above the hills; and all nations shall flow unto it.” (<a target="_blank" href="https://www.blueletterbible.org/kjv/isa/2/2/s_681002">Isaiah 2:2</a>)</p>
</li>
<li>
<p>As previously, <em>Rosh ha Shanan</em> (Tishri 10, the Day of Atonement), the “Abomination of Desolation” is set up in the Temple (Rev 13:14-15) <a target="_blank" href="https://www.youtube.com/watch?v=1M080SzkDUw">VIDEO</a></p>
</li>
<li>
<p>Second Return of Christ, to begin the Millenium Reign of Christ</p>
</li>
<li>2000th anniversary of Christ’s resurrection.</li>
</ul>
<hr />
<p><a name="Other+Timelines"></a></p>
<h2 id="other-timelines">Other Timelines</h2>
<ul>
<li>
<p><a target="_blank" href="http://simile.mit.edu/timeline/examples/religions/religions.html">MIT’s Google Map-like (AJAX-based) Simile Timeline of Jewish History + Christianity History</a>, scrolling 2000 years side-by-side.</p>
</li>
<li>
<p><a target="_blank" href="http://www.agards.com/bible-study/history_timeline_online_index.html#Bible World History Timeline">Bible World History Timeline</a></p>
</li>
<li>
<p><a target="_blank" href="http://www.apocalyptic-theories.com/timeline/zmainframe.htm">apocalytic-theories.com Timeline</a></p>
</li>
<li>
<p><a target="_blank" href="http://www.artsales.com/ARTistory/ark_covenant/timeline.html">
Biblical vs. Egyptian Timeline at artsales.com</a></p>
</li>
<li>
<p><a target="_blank" href="https://grammarsaurus.co.uk/portal/2019/11/ks2-history-key-events-in-history-1900-present-day/">Grammarsaurus</a></p>
</li>
<li>
<p><a target="_blank" href="https://www.wikiwand.com/en/History_of_Israel">WIKIPEDIA: History of Israel</a></p>
</li>
<li>
<p><a target="_blank" href="https://www.youtube.com/watch?v=nDu4K8kroNw">VIDEO:
b 37 Bible Characters Found Through Archaeology</a></p>
</li>
</ul>
<h2 id="contextual-principles">Contextual Principles</h2>
<p>To understand the various events in world history, it helps to have some context:</p>
<ol>
<li>
<p>One day is as a thousand years</p>
<p>“… one day is with the Lord as a thousand years, and a thousand years as one day” —<a target="bible" href="https://www.blueletterbible.org/kjv/psa/90/4/s_568004">Psalm 90:4 (NKJ)</a> & <a target="bible" href="https://www.blueletterbible.org/kjv/2pe/3/8/s_1159008">2nd Peter 3:8 (NKJ)</a></p>
</li>
<li>
<p>Ancient calendars around the world initially used a <a target="_blank" href="https://360dayyear.com/">360-day calendar</a> without leap years and 5 extra days (in 31-day months) to make the cycle of seasons uniformity on the <a target="_blank" href="https://www.wikiwand.com/en/Equinox">equinoxes</a> of 20 March and 23 September – when daytime and nighttime are of equal duration.</p>
<p>Although the Roman Julian calendar reform of 45 BC adopted a 365-day solar calendar with modern leap years, when John in 95 AD wrote the Book of Revelation, he used lunar-based 360-day years. Specifically, the verse “holy city shall they tread under foot forty and two months” in (<a target="_blank" href="https://www.blueletterbible.org/kjv/rev/11/2/s_1178002">11:2</a> is 42 * 30 = 1260 days, the same as “a thousand two hundred and threescore days” (where “threescore” is 60) in the next paragraph <a target="_blank" href="https://www.blueletterbible.org/kjv/rev/11/3/s_1178003">11:3</a>. That’s not 1278 days of 3.5 years by a 365-day calendar with some 31-day months.</p>
<p>BTW Major financial software used today uses a <a target="_blank" href="https://www.wikiwand.com/en/360-day_calendar">360-day calendar (to calculate interest)</a>.</p>
</li>
<li>
<p>Writings about the future necessarily also deal with the cosmic realm not visible to the naked eye nor measurable using scientific instruments. <a target="_blank" href="https://www.blueletterbible.org/kjv/eph/6/12/s_1107012">Ephesians 6:12</a></p>
<p>“For we wrestle not against flesh and blood, but against principalities, against powers, against the rulers of the darkness of this world, against spiritual wickedness in high places.”</p>
</li>
<li>
<p>The Bible focuses on one country/people: the 12 tribes of Israel, their 7 feasts each lunar year, and their capital Jerusalem. <a target="_blank" href="https://www.blueletterbible.org/kjv/psa/122/6/s_592006">Psalm 122:6</a> says “Pray for the peace of Jerusalem: they shall prosper that love thee.”</p>
<p>Some analysts look to the “Jubilee” years that repeat every 7-years. (<a target="_blank" href="https://www.blueletterbible.org/kjv/lev/25/8/s_153008">Leviticus 25:8</a>) 2023 and 2030 are Jubilee years.</p>
</li>
<li>
<p>The multi-decade <a href="#Sieges">sieges of Jerusalem</a> occurred because God of the Bible did not receive acknowledgment of supremacy from his people (<a target="_blank" href="https://www.blueletterbible.org/kjv/isa/45/7/s_740007">Isaiah 45:7</a>). The first of 10 Commandments. (<a target="_blank" href="https://www.blueletterbible.org/kjv/exo/20/1/s_1001">Exodus 20:1</a>)</p>
</li>
<li>
<p>To the “elect” of Christians, the New Testament fulfills predictions in the Old Testament – that of redemption from Adam’s sin through Jesus Christ, applicable to all people. Isaiah 11:11-12</p>
<p>Romans 10:12 For there is no difference between the Jew and the Greek: for the same Lord over all is rich unto all that call upon him.</p>
</li>
<li>
<p>The 70th week of Daniel (7 years of Tribulation). See <a target="_blank" href="https://www.youtube.com/watch?v=JyZkvtjGOh8">Ron Wyatt’s Red Sea Discoveries</a> and <a target="_blank" href="https://www.youtube.com/watch?v=ehgdgVblCyE">Talmud</a> <a target="_blank" href="https://www.wikiwand.com/en/Talmud">Talmud</a></p>
</li>
<li>
<p>A pivotal basis for an important prediction is “when the sacrifice cease”. <a target="_blank" href="">This video</a> points out that it refers not in the plural (sacrifices of the Tabernacle system), but singluar – of Christ’s sacrifice.</p>
</li>
<li>
<p>Many are concerned about the “Mark of the Beast” (666) an how those who take it will be condemned to hell.</p>
<p>Why would having a shopping mark have a religious connection? My personal conjecture is that it somehow interferes with the spiritual connection with God. God hears our thoughts as prayers. Disrupting prayer disrupts community with God.</p>
<p>Romans 10:9 … believe in thine heart that God hath raised him from the dead, thou shalt be saved.</p>
</li>
<li>
<p>The “Four Horsemen” mentioned in Revelation 6 and 1 Thessalonians 5.</p>
</li>
</ol>
<ul>
<li>
<p><strong>Killer Talking Mind-Control Robots?</strong> - “And he had power to give life unto the image of the beast, that the image of the beast should both speak, and cause that as many as would not worship the image of the beast should be killed. (<a target="bible" href="https://www.blueletterbible.org/kjv/rev/13/15/s_1180015">Rev 13:15</a>)</p>
</li>
<li>
<p><strong>Wallet Implant</strong> - “And he causeth all, both small and great, rich and poor, free and bond, to receive a mark in their right hand, or in their foreheads; And that no man might buy or sell, save he that had the mark, or the name of the beast, or the number of his name.” (<a target="bible" href="https://www.blueletterbible.org/kjv/rev/13/16-17/s_1180016">Rev 13:16-17</a>)</p>
</li>
</ul>
<p><br /> <a target="_blank" href="https://www.youtube.com/watch?v=92egGGGJYJo">VIDEO</a>: <a target="_blank" href="https://www.youtube.com/watch?v=Giv-C3ipihM&t=350s">Koran: Sur 9:29</a> “fight those who believe not in Allah nor the Last Day, nor hold that forbidden which hath been forbidden by Allah and His Messenger, nor acknowledge the religion of Truth, (even if they are) of the People of the Book, until they pay the Jizya with willing submission, and feel themselves subdued.”</p>
<h2 id="countries--people-groups">Countries & People Groups</h2>
<p>Here’s what I’ve been able to figure out so far about the locations of people groups in the Bible and their modern names:</p>
<ul>
<li>Ashkenaz = Germany</li>
<li>Amalek = Arabs of the Sinai Peninsula</li>
<li>Ammon = Palestinians & central/northern Jordan <a href="#[A]">[A]</a></li>
<li>Assyria = Syria and Northan Iraq <a href="#[A]">[A]</a></li>
<li>Assur = Assyria = Syria <a href="#[A]">[A]</a></li>
<li>Beth Togarmah = Türkiye (Turkey)</li>
<li>Chub = Libya <a href="#[B]">[B]</a></li>
<li>Children of Lot = Syrians & Northern Jordanians <a href="#[A]">[A]</a> ???</li>
<li>Cush = Ethiopia <a href="#[B]">[B]</a></li>
<li>Dedan = <a target="_blank" href="https://maps.app.goo.gl/hR9sRyPTzs865SVJ9">AlUla</a>, Saudi Arabia</li>
<li>“Tents of Edom” = 100,000 refugees in Southern Lebanon <a href="#[A]">[A]</a> (Rev 2:9,3:9)</li>
<li>Egypt (Muslim Brotherhood?)</li>
<li>Ethopia = Sudan <a href="#[B]">[B]</a></li>
<li>Elam = West-Central Iran</li>
<li>Gebal = Hezbollah & Northern Lebanon <a href="#[A]">[A]</a></li>
<li>Gog = Russia (person) <span lang="ru">Pamyat</span></li>
<li>Gomer = Turkey <a href="#[B]">[B]</a></li>
<li>Hagrenes = Egyptians (Hagar Egypt Matriarch) [A] OR Hagarites (v. 6) were a tribe against whom the Transjordanian tribes of Reuben, Gad, and Manasseh fought at the time of the Jewish conquest of Palestine.” (Boice)</li>
<li>Ishmaelites = Palestinians & Southern Jordanians <a href="#[A]">[A]</a></li>
<li>Inhabitants of Lebanon = Hezbollah</li>
<li>Kedar = Saudi Arabia <a href="#[B]">[B]</a></li>
<li>Kittim = Cyprus [War Scroll]</li>
<li>“children of Lot” = Moab and Ammon <a href="#[A]">[A]</a></li>
<li>Magog = Russia <a href="#[B]">[B]</a></li>
<li>Media = Eastern Iran (Persia) (Judges 6-8)</li>
<li>Meshech = Türkiye (Turkey) <a href="#[B]">[B]</a></li>
<li>Moab = Central Jordan & Palestinians <a href="#[A]">[A]</a> “shall be like Sodam” – (<a target="_blank" href="https://www.blueletterbible.org/kjv/zep/2/9/s_908009">Zephaniah 2:9</a>)</li>
<li>Philistia = Hamas of the Gaza Strip <a href="#[A]">[A]</a></li>
<li>Persia = Iran <a href="#[B]">[B]</a></li>
<li>Put = Libya <a href="#[B]">[B]</a></li>
<li>Rosh = Russia</li>
<li>Sheba = Yemen</li>
<li>Tarshish = Cornwall UK and its “young lions” = USA? & <a target="_blank" href="https://thecommonwealth.org/our-member-countries">British Commonwealth nations</a> (Canada, Australia, New Zealand, etc.) <a target="_blank" href="https://www.youtube.com/watch?v=L_NkrOw-Rpk&t=1m55s">VIDEO</a>: (<a target="_blank" href="https://www.blueletterbible.org/kjv/eze/38/13/s_840013">Ezekiel 38:13</a>) “will bless Israel”</li>
<li>Togarmah = Türkiye (Turkey) <a href="#[B]">[B]</a></li>
<li>Tubal = Türkiye (Turkey) <a href="#[B]">[B]</a></li>
<li>Tyre = Hezbollah & Southern Lebanon <a href="#[A]">[A]</a>
<br /><br /></li>
</ul>
<p>References:</p>
<ul>
<li><a target="_blank" href="https://jashow.org/articles/what-nations-will-be-involved-in-the-military-attack-against-israel-predicted-in-ezekiel-38/">John Ankerberg Show</a>
<br /><br /></li>
</ul>
<p><a name="[A]"></a></p>
<p>[A] marks the “inner circle” of countries who share a borders with Israel, mentioned by (<a target="_blank" href="https://www.blueletterbible.org/kjv/psa/83/6-8/s_561006">Psalm 83:6-8</a> to “wipe Israel off the face of the Earth”): Lebanon, Jordan, Syria, [<a target="_blank" href="https://www.wikiwand.com/en/Psalm_83">Wikipedia</a>]
<a target="_blank" href="https://www.youtube.com/watch?v=n_Klsb6fxpc&t=17m30s">VIDEO</a></p>
<p><a name="[B]"></a></p>
<p>[B] marks the “outer circle” mentioned in <a target="_blank" href="https://www.blueletterbible.org/kjv/eze/38/1-29/s_840001">Ezekiel 38-39</a>: Libya, Sudan (Ethopia), Gomer=Turkey, Saudi Arabia, Yemen, Persia=Iran, Iraq, Magog=Russ, Rosh, Mesheck, Tubal=Turkey, Togarmah: <a target="_blank" href="https://www.youtube.com/watch?v=n_Klsb6fxpc&t=17m40s">VIDEO</a></p>
<ul>
<li>Sisera = Judges 4 Deborah & Barak [A]</li>
<li>Jabin, at the brook of Kison: Which perished at Endor:</li>
<li>Make their nobles like Oreb, and like Zeeb: yea, all their princes as Zebah, and as Zalmunna: defeated by Gideon in Judges 7.</li>
</ul>
<hr />
<p><a id="PreHistory"></a></p>
<h2 id="prehistory-geologic-time">PreHistory (Geologic Time)</h2>
<table border="1" cellpadding="4" cellspacing="0">
<tr valign="top"><td>Precambrian</td><td>-4.6 Billion years</td></tr>
<tr valign="top"><td>Cambrian</td><td>-570 million years (<a target="_blank" href="https://www.youtube.com/watch?v=pkHpHwoL_iw">Peking Man, Java Man</a>)</td></tr>
<tr valign="top"><td>Mesozoic</td><td>-225 million years (dinosaurs)</td></tr>
<tr valign="top"><td>Holocene</td><td>-10,000 BC</td></tr>
<tr valign="top"><td><a target="_blank" href="https://en.wikipedia.org/wiki/Paleolithic">Paleolithic (Old Stone Age)</a></td><td>50,000 years ago,<br />40,000 BC in Australia & Japan,<br />27,000 Siberia</td></tr>
<tr valign="top"><td><a target="_blank" href="https://en.wikipedia.org/wiki/Neolithic">Neolithic</a> (New Stone Age)</td><td>15,000 Wall paintings made in caves at Lascaux, France and Altamira, Spain.<br />12,000 BC with cereals farming in the Levant</td></tr>
<tr valign="top"><td>Calcolitic (Copper-Stone)</td><td>6500 BC in Eastern Anatolia,<br /><a href="#Creation">5176/4114/4004 BC - Biblical Creation</a>
<br />4500 BC in India,<br />3000 BC throughout Mediterranean</td></tr>
<tr valign="top"><td>Broze Age (Copper+Tin from Cornwall, England)</td><td>3000 BC in Greece & China,<br />1900 BC in Britain (source of Tin)</td></tr>
<tr valign="top"><td>Iron Age</td><td>From 1200 BC in the Middle East,<br />600 BC in China</td></tr>
</table>
<p>Astronomer Barry Setterfield of Australia theorizes that because the speed of light is decreasing geometrically, millions of years could have gone by in our current perception of time. The Bible speaks of this:</p>
<ul>
<li>Martin Anstey’s 1913 "Romance of Bible Chronology".</li>
<li>Edwin R. Thiele, in his The Mysterious Numbers of the Hebrew Kings (Academie Books, Zondervan Publishing House, Grand Rapids, 1983) further untangled the chronology of the monarchic period.</li>
</ul>
<p>The stand-off between Biblical and archeological discoveries in Egypt and other countries surrounding Isreal was resolved in 1990 by physicist Gerald E. Aardsma in <a target="_blank" href="http://www.biblicalchronologist.org/products/book.php">A New Approach to the Chronology of Biblical History from Abraham to Samuel</a>. It concludes that the "480 years" in (<a target="_blank" href="https://www.blueletterbible.org/kjv/1ki/6/1/s_297001">1 Kings 6:1</a>) contradicts with <a target="_blank" href="https://www.blueletterbible.org/kjv/act/13/19/s_1031019">Acts 13:19-20</a> and archeological records because of an early (rare, <em>homeoarkton</em>) copy error of "1480" years. (Similar to an issue with the translation of Samuel 6:19, where the number of people killed by God for looking into the Ark of the Covenant was mistranslated as 50,070 instead of 70.)</p>
<p>Additional information:
<a target="_blank" href="http://www.creationresearch.org/">Creation Research Society</a> and <a target="_blank" href="http://emporium.turnpike.net/C/cs/">Creation Science</a> <a target="_blank" href="https://www.khouse.org/articles/1995/58/">bend time</a></p>
<p><br /> 3.8-4 million BC ? First bipedal human in Ethiopia
<br /> 35,000 Upper Paleolithic Period, when first humans are believed to arrive in North America and Asia.
<br /> Nephilim (Genesis 6:4-6)</p>
<p><a name="Creation"></a></p>
<h3 id="year-of-creation">Year of Creation</h3>
<p><br /> 5762 according to Alan D. Corré. Alternately:
<br /> 5176(+/-26) as estimated by <a target="_blank" href="http://www.biblicalchronologist.org/correspondence/virtual_history.php">Gerald E. Aardsma</a>
<br /> <strong> 4114 </strong> based on analysis of Bible text, as explained in <a target="_blank" href="https://www.youtube.com/watch?v=D9b9h5mCgAc&t=11m12s">this video by usefulcharts.com</a>
<br /> 4004 [October 23] according to "Annals of the World" (1600 pages in Latin) by Irish Archbishop James Ussher (1581-1656)
<br /></p>
<p><br /> <em>No date?</em> Earth’s moon created when planet Rahab, located between Mars and Jupiter, destroyed into the Asteroid Belt? (Job 26:11-14, Psalm 89:9-14, Isaiah 51:9-16)</p>
<p><a name="SinEvent"></a>
<br /> ? [4043] Adam created by God (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/2/1/s_2001">Gen 2</a>)
<br /> 3971/70 BC - when Adam was as old as Jesus when he was crucified, sinned and subsequently got expelled from Garden of Eden (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/3/1/s_3001">Gen 3</a>)</p>
<p><br /> __ Enoch translated (midway between Adam & Abraham)</p>
<p><a id="EarlyHistory"></a></p>
<h2 id="early-history">Early History</h2>
<p><br /> <strong>Jan 1, 4713 BC</strong> (-4712 CE) - First Julian Date (Epoch) on the Gregorian Calendar, as proposed in 1583 by Joseph Justus Scaliger, who named the epoch after his father’s name. Complex formulas are needed to convert between the two due to its use of the 19-year Metonic cycle (lunar phase cycle). The Julian calendar added one extra day every four years, but this led to an overcorrection of about 11 minutes per year (one day every 128 years). The Gregorian calendar introduced a more accurate calculation of leap years by omitting three leap years every 400 years. The change created a period of about 350 years (1582-1920s) where two different dating systems were in use simultaneously. Historians used notations like O.S. (Old Style) for Julian dates and N.S. (New Style) for Gregorian dates.
<br /> 3913 Seth born when Adam was 130 years old (<a target="bible" href="https://www.blueletterbible.org/kjv/gen/5/3/s_5003">Genesis 5:3</a>)
<br /> 3808 Enosh born when Seth was 105 (<a target="bible" href="https://www.blueletterbible.org/kjv/gen/5/6/s_5006">Genesis 5:6</a>)
<br /> <strong> Oct 7, 3761 BC</strong>, Hebrew (lunar) calendar starts on a New Moon (<em>Molad</em>)
on 1 Tishrei (New Year)
<br />
<br /> 3520(+/-21) [Usher 2348] Methuselah dies at 969 years old (Gen 7:27),
his death shall bring the one-year <strong>flood</strong> of Noah on
<strong> 17th Nisan</strong>.
This begins 427-year Dispensation of Human Government.
<br /> <em> Post-diluvian times: </em>
<br />
<br /> 3167 Abram (father of many) born in Ur, Assyria Mesopotamia (modern day Iraq) (Gen 11:26-32; Gen 12:4; Acts 7:4)
<br />
<br /> 3114 the <a href="1clocks.htm#Epochz">epoch (beginning)</a> of the Mayan calendar (<a target="_blanK" href="http://www.sacred-texts.com/time/cal/mayacal.htm">on 11 Aug</a>)
<br /> 3100 First war recorded (in Egyptian hieroglyphics) about Pharaoh Narmer "Menes the Fighter" uniting Upper and Lower Egypt.
<br />
<br /> 3092(+/-16) [1630] [1921 Usher] God calls Abraham to leave Ur Chaldeans (who identified the Soros cycle) to settle awhile in Haran, Egypt, then Canaan.
<br /> 3067 Issac born (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/25/26/s_25026">Gen 25:26</a>)
<br /> ? Ishmael cast out (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/21/8-10/s_21008">Gen 21:8-10</a>)
<br /> ? Issac (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/26/17-25/s_26017">Gen 26:17-25</a>) wife Rebecca from Iraq (Gen 24:4,10)
<br /> ? Semite <a target="_blank" href="https://www.wikiwand.com/en/Sodom_and_Gomorrah">Sodom & Gomorrah</a> destroyed by
fire and brimstone” (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/19/24-25/s_19024">Gen 19:24-25</a>)
<br /> 3007 Jacob (=by might) born (Gen 47:9) (Gen. 28:10-12, 32 & 35:1-7)
<br /> 2916 Joseph born (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/41/46/s_41046">Gen 41:46</a>)
<br />
<br /> 2952(+/-51) Egypt’s Early Dynastic period ends with Dynasty 3.
<br /> 2879-2872 (Transition from Early Broze age I and II)
high residue radioactivity in tree rings of the time indicate
lower solar activity, which causes drought and thus famine in the Near East.
<br /> 2877 Joseph and family in Egypt (during its <a target="_blank" href="https://en.wikipedia.org/wiki/Second_Dynasty_of_Egypt">Second Dynasty</a>)</p>
<p><br /> 2646 <a target="_blank" href="https://www.youtube.com/watch?v=2bjG1lm2Rq4">(by Carbon 14 dating)</a> "Step" pyramid of <a target="_blank" href="https://www.wikiwand.com/en/Pyramid_of_Djoser">Djoser (Zoser)</a> built at Saqqara, Egypt.
<br /> 2590 Great Pyramid of Khufu at Giza begins to be built.
<br /> 2334 Semitic Akkadian Sargon the Great from the North conquers Summarians in the South (Mesopotamia) above the Red Sea, forming the first empire and standing army (armed with bows on horses)
<br /> 2234 [Usher] The races are dispersed with different languages after the <a target="_blank" href="https://answersingenesis.org/tower-of-babel/was-the-dispersion-at-babel-a-real-event/">Tower of Babel</a> in Iraq (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/10/10/s_10010">Genesis 10:10,11</a>;<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/11/1/s_11001">11:1-9</a>) during the Bronze Age of Human Government
<br /></p>
<h3 id="ancient-egypt">Ancient Egypt</h3>
<p><a target="_blank" href="https://www.metmuseum.org/toah/hd/phar/hd_phar.htm">From the Met</a>:
Our knowledge of the succession of Egyptian kings is based on kinglists kept by the ancient Egyptians themselves. The most famous are the Palermo Stone, which covers the period from the earliest dynasties to the middle of Dynasty 5; the Abydos Kinglist, which Seti I had carved on his temple at Abydos; and the Turin Canon, a papyrus that covers the period from the earliest dynasties to the reign of Ramesses II. All are incomplete or fragmentary. We also rely on the History of Egypt written by Manetho in the third century B.C. A priest in the temple at Heliopolis, Manetho had access to many original sources and it was he who divided the kings into the thirty dynasties we use today.</p>
<ul>
<li>3100 BC Unification of Upper and Lower Egypt by Narmer during the Early Dynastic Period</li>
<li>2649–2150 BC Old Kingdom: Dynasty 3-6</li>
<li>2150–2030 BC First Intermediate Period: Dynasty 7–11 first half</li>
<li>2040–1640 BC Middle Kingdom: Dynasty 11 second half - Dynasty 13</li>
<li>1550–1070 BC New Kingdom: Dynasty 18–20 (Ramesses II the Great)</li>
<li>1070–713 BC Third Intermediate Period: Dynasty 21–24</li>
<li>712–332 BC Late Period: Dynasty 25–30</li>
<li>332–304 BC Macedonian Period: Alexander the Great</li>
<li>304–30 BC Ptolemaic Period: Dynasty 31–34</li>
<li>30 BC–395 AD Roman Period: Ptolemy
<br /><br /></li>
</ul>
<p>The word pharaoh is not from the Egyptian language but is the Hebrew word for the King of Egypt’s palace. <a target="_blank" href="https://en.wikipedia.org/wiki/List_of_pharaohs">Pharoahs of ancient Egypt</a> are each identified by a <a target="_blank" href="https://en.wikipedia.org/wiki/Second_Dynasty_of_Egypt#/media/File:SecondDynastyKingLists.png">cartouche</a>. Each ruled for an average of 25 years. The first king was Menes, who ruled for 62 years. The last king was Cleopatra VII, who ruled for 21 years. The longest-reigning monarch was Pepi II, who ruled for 94 years. Mention of some were erased from history by their successors. The Bible mentions some of them by name, such as Shishak (1 Kings 14:25-26) and Necho (2 Kings 23:29-35). Chronology places the beginning of the Old Kingdom in the 27th century BC (+/- 300 years), the beginning of the Middle Kingdom in the 21st century BC and the beginning of the New Kingdom in the mid-16th century BC.
the “New Chronology” proposed in the 1990s, which lowers New Kingdom dates by as much as 350 years, or the “Glasgow Chronology” (proposed 1978–1982), which lowers New Kingdom dates by as much as 500 years.</p>
<p><a id="Moses"></a></p>
<h2 id="mosaic-age-of-law">Mosaic Age of Law</h2>
<p>? Egyptian pharaoh Phiops II subjugates Isrealistes.
<br /> Moses rescued from the Nile to become <a target="_blank" href="https://youtube.com/shorts/YQWX1VEVhIA?si=MXcmN8PMXPCpx_kL"><em>Senenmut</em></a> (“mother’s brother”) [marked on empty tomb in the temple of Egyptian princess Hatshepsut 1503-1482 BC, first female Egyptian pharaoh]
<br /> PROPOSED: <a target="_blank" href="http://www.biblicalchronologist.org/qa/adb/millennium.htm">
2447(+/-12)</a> (during reign of Egyptian Menkaure, 1480 years after the Promise was given Abram, per modern reading of <a target="_blank" href="https://www.blueletterbible.org/kjv/1ki/6/1/s_297001">1Kings 6:1</a>)
<br /> 2152 BC The 6th Dynasty of Egypt’s Old Kingdom under Pharoah Merenre Antyemsaf II
(Greek name Niocris) collapses (putting Egypt into Dynasty 7 of the First Intermediate period),
by parting and closing of the <em>Yam suth</em> (modern day <em>Lak Yahablah</em> - the Red Sea).
<br /> 1446 <a target="_blank" href="https://www.youtube.com/watch?v=2JusQxiTXnE">VIDEO</a>: (based on <a target="_blank" href="https://www.blueletterbible.org/kjv/1ki/6/1/s_297001">1Kings 6:1</a> “In the 480th year after the Israelites came out of Egypt), in the 4th year of Solomon’s reign”) in 966 BC. That’s during the reign of Ahmenhotep II (1450-1425 BC) during the 18th Dynasty of Egypt.
in the jubilee of jubilees (50 x 50 years or 2500 years after the fall of Adam)
<br />1406 BC Moses leads Exodus from Egypt (<a target="_blank" href="https://www.blueletterbible.org/kjv/exo/14/23/s_64023">Exodus 14:23,27-30</a>). Alt:</p>
<p><br /> Ten commandments given <em>apodictic</em> Normative, the beginning of Judaism</p>
<ul>
<li>
<p><strong>Mount Sinai</strong> of Moses (<a target="_blank" href="https://www.youtube.com/watch?v=uQW5SmSjrY8">VIDEO</a>: “Jabal Al Laws” [<a target="_blank" href="https://goo.gl/maps/yegE9NigEg5feULH7">Google Map</a>] in present day Saudi Arabia. See <a target="_blank" href="https://www.amazon.com/gp/video/detail/B00D603RDI/" title="Amazon Prime: The Search for the Real Mount Sinai (2003)">VIDEO of bull petroglyphs and alter of uncut stones and burnt ash</a>. Burnt rock at Horab. <a target="_blank" href="https://www.youtube.com/watch?v=EPhjpdko8N0" title="The Red Sea Miracle - Patterns of Evidence presentation by Steve Law">VIDEO</a>.</p>
</li>
<li>
<p>The <strong>Red Sea crossing</strong> site (<a target="_blank" href="https://www.wikiwand.com/en/Nuweiba">Nuweiba Beach</a> in present day Egypt). After nearly a week of walking from Avaris/Tel-Ramses; a dead-end path to a beach that is of the size to hold potentially 3 million Israelis escaping to Midian. At Pi-Hahiroth [<a target="_blank" href="https://goo.gl/maps/kekDjVxfyTfstoTZA">Google Map</a>] (“place of-mouth of canyon/channel/canal” mentioned in <a target="_blank" href="https://www.blueletterbible.org/kjv/exo/14/1/s_64001">Exodus 14:2</a>) is where, in 1978, Ron Wyatt and his sons discovered chariot wheels covered in gold and coral formations on both sides of an otherwise bare sea floor with a gradual 6% incline. See <a target="_blank" href="https://www.youtube.com/watch?v=JyZkvtjGOh8">VIDEO</a>: Ron Wyatt’s Red Sea Discoveries.<br />In 1984 they discovered the 2nd of two carved Pillars, placed by King Solomon, as memorials on opposite sides of the site of the Exodus Red Sea crossing. See <a target="_blank" href="https://www.amazon.com/Patterns-Evidence-Exodus-Kevin-Sorbo/dp/B013DS4QNW/">Tim Mahoney Patterns of Evidence</a> <a target="_blank" href="https://www.patternsofevidence.com/2020/01/10/introducing-the-red-sea-miracle/">movie: The Red Sea Miracle (2020)</a> [<a target="_blank" href="https://www.imdb.com/title/tt11661666/">imdb</a>].</p>
</li>
</ul>
<p><br /> 2407 Hebrews (under Joshua, without Moses) enter Canaan, destroying Jericho and Ai
(confirmed by radiocarbon dating of <em>et-Tell</em> digs found in 1934 by Marquet-Krause).
<br /> Hebrew occupation ends the Early Broze III period of Palestine.</p>
<hr />
<p><a id="Casuistic"></a></p>
<h2 id="casuistic-case-law-in-late-bronze-age">Casuistic (case) Law in Late Bronze Age</h2>
<p><br /> 2350 Akkadian kingdom in Mesopotamia established by Sargon lasts 146 years by
descendants Rimush, Manishtusu, Naram-Sin, and Shar-kali-sharri.
one of them is the <em>Cushan-rishathaim</em>, the first oppessor of Isreal,
later delivered by judge Othniel (Judges 3:10)
<br /> 2205-1765 Hsia dynasty in China.
<br /> 2000 BC Mayan civilization forming to reach peak 250-900 CE.
<br /> [not 1375] Judges rule: Othniel, Ehud, Deborah, Gideon,
<br /> 1977-1957 [not 1075] Samson in Gaza, the last judge in the book of Judges.
<br /> Ruth & Boaz (=by his counsel)
<br /> ? Elijah translated (midway between Abraham & Christ)
<br /> (800 year) Biblically quiet period of more Judges of Isreal</p>
<p><br /> 1775 casuistic (case) law <a target="_blank" href="http://www.yale.edu/lawweb/avalon/medieval/hammenu.htm">Code</a> established by Hammurabi (1792/1728-1686), the Amotittian ruler of Babylonia.
<br /> 1766-1121 Shang Dynasty in China is known for its use of acupuncture, elaborate bronze ritual vessels, oracle bones to determine the future, and the earliest standardized form of Chinese characters
<br /> 1628 Volcano erupts in Thesus (modern day Satorini, Greece)
destroys the Minoan civilization on the island of Crete, an art-loving culture Homer calls Atlantis.
<br /> 1590 <a tartet="_blank" href="http://www.wsu.edu:8080/~dee/MESO/KASSITES.HTM">
Kassites</a> take power in Mesopotamia and Palestine.
<br /> 1550(+/-15) <strong>Egypt begins New Kingdom period </strong>Dynasty 18.
<br /> 1500 Hinduism begins in India.
<br />
<br /> [1525] Moses saved by princess Nefure, only child of Tutmoses I (Exodus 2:1-10),
and lives in the palace as <em>Senmut</em>.
<br /> Nefure becomes Queen Hapsepsut with half-brother Tusmoses II after Moses refused it.
<br /> <a target="_blank" href="http://www.pbs.org/empires/egypt/tuthmosis.html">
1458</a> Tuthmosis III (1516-1426) <a target="_blank" href="http://www.eyelid.co.uk/k-q3.htm">
seiges Meggiddo</a> (among 350 cities) during his 1504-1450 reign of Egypt’s 18th dynasty.
<br /> <em> [1445/7-1336] Early date for the Exodus</em>, when Tutmoses IV (Amenhotep III) ruled Egypt.
<br /> Egyptian pharaoh Akhenaten (Amenhotep IV) and wife Nefertiti switch to monotheistic worship of Aten (in place of Amen) and moves capital from Thebes to El-Amarna.
<br /> Oct. 25, 1404 Mars passes 70,000 miles away from Earth, causing a 5 degree Polar shift and days on Earth from 360 to 365.5.</p>
<p><br /> 1300 Temple of Abu Simbel built in Nubia for Ramesses II.
<br /> 1274 stalemate in the Battle of Qadesh (Kadesh, on the Orontes River in present-day Syria) when Hittite King Muwatalli II repels Pharaoh Ramesses II of Egypt in the largest chariot battle in history led to the first recorded peace treaty.
<br /> 1236 - 1203 Merneptah’s campaigns into Palestine via sea.
<br /> 1200 Trojan War between Greeks and Trojans, as described in Homer’s <em>Illiad</em>.</p>
<p><br /> 1200-1000 Rig Vedas composed in India
<br /> 1198 - 1153 Ramesses III campaigns with chariots into Peleset (Philistines) in Palestine.
<br /> 1191 Zen Buddhism introduced to Japan by Chinese monk <em>Eisai</em>
<br /> 1185 Samurai wrest power from aristocracy in Japan</p>
<p><br /> 1177 <a target="_blank" href="https://www.youtube.com/watch?v=bRcu-ysocX4">VIDEO: Civilization Collapsed</a> by invasion from running “Sea Peoples” invading the Eastern Mediterranian among Greek Mycenaeans, Cyprus, Egypt, Hittie, Assyria, Babylon.
<br /> 1122-225 Chou dynasties reign in China</p>
<p><br /> 1070(+/-15) Egypt begins Third Intermediate period Dynasty 21.
<br /> <strong>1051(+/-16) Samuel born</strong>, ending age of Judges.</p>
<p><a id="UnitedKingdomz"></a></p>
<h2 id="united-and-divided-kingdoms">United and Divided Kingdoms</h2>
<p><br /> 1051(+/-16) Saul unites kingdom of Isreal and begins to reign in the Biblical age of Monarchy.
<br /> 1103 BC Brutus (decendent of "low-tree" Zarah who ruled Egypt as son of Joseph, per prophecy in Ezekiel 17:22-24 and 21:25-27)
estabishes New Troy in Britain (later to be renamed London).</p>
<p><br /> 980 (within 40 year rule 1010-970) David king (Psalms, 1st Chronicles) establishes Jerusalem
<br /> 965 Solomon begins building the temple
<br /> 940 Solomon king with 700 wives (Songs, Proverbs, 2nd Chronicles, 1 Kings)
<br /> 947 First temple built by Solomon consecrated on 10th Jubilee (<a target="bible" href="https://www.blueletterbible.org/kjv/1ki/9/1-3/s_300001">1 Kings 9:1-3</a>)
<br /> 925/900 Jeroboam 10 tribes split to North from Rehoboam
<br /> Omri’s son Ahab & Jezebel hunt Elijah to Mt. Carmel (<a target="bible" href="https://www.blueletterbible.org/kjv/1ki/18/1/s_309001">1 Kings 18</a>)
<br /> 871 [RC14 dating at Tel Rehov says not 925] <strong> Shishak invasion </strong> in year 39 of Solomon/Year 5 of Rehoboam
<br /> 880 Asa king of Southern Kingdom of Judah; Joehoshaphat, 7 yr. old Joash
<br /> 842 Elijah outs Ahab and Jezebel for their worship of false gods
<br /> 814 Jeroboam II king of Israel after Yahwist Jehu coup
<br /> 800-600 Upanishads composed in India
<br /> 785? Amittai Jonah (=Dove) prophet to Assyrian Ninevah (Greek <em lang="gr">Ionas</em>)
<a target="bible" href="https://www.blueletterbible.org/kjv/mat/12/38/s_941038">Matthew 12:38</a>)
<br /> 776 Greeks hold first Olympics in town of Olympia — the first year of the Greek Calendar.
<br /> Northern Prophets: 760-750 Amos, 753 Hosea (harlot wife Gomer)
<br /> 763 June 15 <a target="_blank" href="https://www.youtube.com/watch?v=3DJtVlLRMGw">VIDEO</a>: <a target="_blank" href="https://www.blueletterbible.org/kjv/isa/13/10/s_692010">Solar eclipse</a> in Nineveh (North of Bagdad Iraq) noted on cuniform tablets under Assyrian king Ashurbanipal provides a way to corroborate (using <a target="_blank" href="https://www.alcyone.de/alcyone_eclipse_calculator.html">Eclipse Emphemeris</a>) <a href="https://www.blueletterbible.org/kjv/jon/1/1-2/s_890001">Jonah</a> and correlate <a href="2 Kings 18:13">Sennacherib’s captue of Jerusalem on 701 BC</a> and Exodus at 1446 BC.
<br /> 753 Foundation of Rome.
<br /> Southern Jotham & Ahaz & Hezekiah: 742 Micah, 740-681 Isaiah
<br /> 731 Ukinzer (a Chaldean) becomes king of Babylon (modern-day Iraq) to begin Chaldean rule.
<br /> 730 Sparta conquers Messene.
<br /> 722 Ten Northern tribes of Israel taken as slaves to Assyra by Shalmaneser on <strong> 9th of Az </strong>
<br /> 710 Hezekiah (715-686) repels Sennacerib (the death angel) from Jerusalem
<br /> <strong> 753 </strong> year 1 AUC (Ab Urbe Condita, meaning “from the foundation of Rome”)
on the “Kalends of March” (March 1st)
<br /> 722 Samaria completely destroyed by Assyrian king Shalmanesar V (727-722BC) 2 Kings 17-18.
<br /> <strong> 701 calendars adjusted </strong> (for planetary ressonance with Mars?)
<br /> 697 Manasseh bad king of Judah (2 Kgs 21 & 2 Chron. 33)
<br /> 669 Babylon destroyed by Assyrians.
<br /> 660 Shinto religion defined in Japan during rein of Jimmu, first Japanese emperor.
<br /> 640 Zephaniah prophet, 635 Xephaniah, 626 Jeremiah, 620 Nahum, 612 Habakkuk
<br /> 630-550 Life of Zoroaster
<br /> 621 Josiah (640-609 son Amon) discovers the Law Book of Deuteronomy in the Temple and begins monotheistic practice
<br /> 621 The Laws of Dracon become the first written laws of Athens, Greece. The adjective “draconian” describes its harshness.
"We need the death penalty to prevent small crimes, and for bigger ones I can’t think of any greater punishment."</p>
<p><br /> 614 Fall of Assyria.
<br /> 608-597 Jehoiakim, 597 Ezekiel captive, 593-571 Ezekiel prophesizes
<br /> 605 Jehoachin/Jeconiah & Zedekiah exiled, Daniel captured by Medes & Persians.</p>
<p><a id="Bablyonz"></a>
<br /> 604-562 Nebuchadnezzar II rules Neo-Babylonian (Chaldean) Empire and builds the Hanging Gardens of Babylon,
one of the "Seven Wonders of the Ancient World".
<br /> 600 Taoism religion defined in China by Lao-Tse (604-531) writing Tao-te-Ching (“The Way of Power”) which describes the nature of life, the way to peace and how a ruler should lead his life.
<br /> 597-8 First Babylonian conquest of Jerusalem
<br /> 594 Solon establishes a constitutional democracy in Athens, and wipes out all debts.
<br /> <strong>586/587</strong> on 9th of Az (<a target="bible" href="https://www.blueletterbible.org/kjv/eze/12/10-17/s_814010">Ezekiel 12:10-17</a>)
Nebuchadnezzar destroys <strong> Soloman’s temple</strong> in Jerusalem
during his 2nd Babylonian conquest. This date is an anchor for chronologies.
<br />583 BC Jeremiah (with Baruch) marries Tea Tephi, a daughter of King Zedekiah, to Eochaidh II (Eremhon), High Zarahite King of Ireland.
This exalts the Zarah line from which all the kings and queens of Britain and northwest Europe descend.
<br /> 563-483? Siddhartha Gautama, founder of Buddhism (later enlighten to Buddha), born in Napal.
<br /> 561 Pisistratus, leader of the poor, becomes the tyrant of Athens.
<br /> 560 Lao-Tze writes his philosophy.
<br /> 551-479 Confucious writes fortune cookie sayings in China (Analects).</p>
<h3 id="ancient-persians">Ancient Persians</h3>
<p><br /> 550 King Cyrus II of Persia founds Persian empire.
<br /> 539 Mesopotamian region (inhabited by Chaldeans and Babylonians) conquered by <a target="_blank" href="http://en.wikipedia.org/wiki/Cyrus_the_Great">Cyrus the Great</a> (the Father of Iran).
<br /> 539 BC Cyrus the Great of Persia (lion with wings) conquers Babylon (<a target="_blank" href="https://www.blueletterbible.org/kjv/dan/5/30-31/s_855030">Daniel 5:30-31</a>)
<br /> Oct 12, 539 Persian Aramaic Cyrus overthrows Babylon (<a target="bible" href="https://www.blueletterbible.org/kjv/dan/8/25/s_858025">Daniel 8:25</a> fulfills <a target="bible" href="https://www.blueletterbible.org/kjv/isa/44/28/s_723028">Isaiah 44:28</a>) under Belshazzar.</p>
<p><a id="Medo-Persiaz"></a>
<br /> 521 - 485 BC Darius I (the Great of Persia) (<a target="_blank" href="https://www.blueletterbible.org/kjv/ezr/4/5/s_407005">Ezra 4:5</a>)
<br /> 520 Cyrus allows Isreal to return from Babylonian Exile (<a target="bible" href="https://www.blueletterbible.org/kjv/ezr/1/1/s_404001">Ezra</a>).
<br /> 512 <strong> Second Temple of Isreal finished.</strong>
<br /> 510 Cleisthenes, with exiled Athenian nobles and an army from Sparta, liberates Athenians from Pisistratus and his sons.
<br /> 505 Democracy established in Athens.</p>
<p><br /> 486 - 464 BC Xerxes I (Ahasuerus) of Persia marries Esther (<a target="_blank" href="https://www.blueletterbible.org/kjv/est/1/1-22/s_427001">Esther 1:1-22</a>)
<br /> 464 - 424 BC Artaxerxes I (Longimanus) of Persia sends Ezra to Jerusalem (<a target="_blank" href="https://www.blueletterbible.org/kjv/ezr/7/1-28/s_410001">Ezra 7:1-28</a>)
<br /> 424 BC Xerxes II
<br /> 424 - 423 BC Sognianus
<br /> 424 - 404 BC Darius II (Nothus) of Persia sends Nehemiah to Jerusalem (<a target="_blank" href="https://www.blueletterbible.org/kjv/gen/11/1/s_11001">Nehemiah 13:6</a>)
<br /> 404 - 358 BC Artaxerxes II (Mnemon) of Persia
<br /> 358 - 338 BC Artaxerxes III (Ochus) of Persia
<br /> 338 - 336 BC Arses of Persia
<br /> 336 - 330 BC Darius III (Codomannus) of Persia conquered by Alexander the Great (<a target="_blank" href="https://www.blueletterbible.org/kjv/dan/11/2/s_861002">Daniel 11:2</a>)</p>
<p>A “diadem” (crown) is a blue band marked with white which Persian kings used to bind on the turban or tiera.</p>
<p><br /> 477 Athens assumed leadership of the Delian League alliance of the city-states and islands of Greece against the Persians.
<br /> 464 Earthquake in Sparta; helots revolt.
<br /> <strong> 458 </strong> On the 20th Jubilee, 7th year into the reign of Artaxerxes Longimanus decree allows Ezra to leave Babylon to rebuild Jerusalem. This starts the 490 (70x7) prophesy in Daniel 9:25 to Jesus’ death on 1 Nisan (Friday April 15) AD 33.
<br /> 434 Dedication of the wall of Jerusalem by Ezra and Nehemiah (Nehemiah 12:27)
<br />
<br /> 434 [not 490] Battle of Marathon, (coast of Attica) Greece won by Athenians
after Persian king Darius I is killed by a Greek beauty.
<br /> 424 [not 480] Xerxes (aka Artaxerxes, son of Darius) destroys an empty Athens after
overcoming the heroic 300 Spartans at the Battle of Thermopylae.
<br /> Xerxes leaves the war to Mardonius after defeat by the more nimble Greek navy at the Battle of Salamis.
<br /> 425 [not 479] Persians under Mardonius are defeated by allied Greeks at the Battle of Plataea.</p>
<p><br /> 428 (<a target="bible" href="https://www.blueletterbible.org/kjv/est/1/1/s_427001">Esther</a> saves her people (celebrated in Jewish Purim festivals).</p>
<p><br /> 403- [according to Thucycides] Sparta defeats Athens in the 27 year Peloponnesian War.</p>
<p><a id="InterTestament"></a></p>
<h2 id="inter-testament-times">Inter-Testament Times</h2>
<p>753 Romulus & Remus (Castor & Pollux) saved by wolves, start of Roman <em>Anno Urbis (ab urbe condita)</em> calendar.
<br /> 630 Egyptians ransack the Temple in Jerusalem
<br /> 606 Babylon captures Jerusalem, the <strong>beginning of “times of the Gentiles” <a target="bible" href="https://www.blueletterbible.org/kjv/luk/21/24/s_994024">Luke 21:24</a>)
<br /> 604 Lao-tzu, founder of Taoism, born in China.</strong></p>
<p><br /> 328 AD Nammara inscription is among earliest written evidence of Nabataean script Old Arabic.
<br /> 470 AD oldest known inscription, a composite of Nabataean and Arabic writing, found near Najran in Saudi Arabia.</p>
<p><br /> 410-322 Age of Socrates (the first to recognize a one true, but unknown, G-d), Plato, and Aristotle in Greece
<br /> 403 Start of "Waring States" period in China.</p>
<p><br /> 356 Alexander born to Phillip II of Macedonia, tutored by Aristotle (384-322)
<br /> 338 Philip II of Macedonia conquers other Greek city-states in Battle of Chaeronea.
<br /> 335 Alexander begins in Thebes the conquest of the known world.
<br /> 334 BC Battle of Granicus (now the Biga River in modern-day Turkey) is Alexander the Great’s first major victory against the Persian Empire</p>
<p><a id="Greecez"></a></p>
<h3 id="greece">Greece</h3>
<p>333 At the Battle of Issus, Alexander defeats the army of Persia to control the western Persian empire.
<br /> 332 (at age 24) Alexander the Great capture of Tyre fulfills <a target="bible" href="https://www.blueletterbible.org/kjv/eze/26/1/s_828001">Ezekiel 26:12,4-5,14</a>
<br /> <strong>331</strong> Alexander defeats Persian King Darius II in the Battle of Gaugamela (Arbela) in Persia (modern day Iraq) to establishes Greece as the world power.
<br /> 326 Alexander’s invasion of India ends after the Battle of the Hydaspes.
<br /> 323 Alexander dies in Babylon. Land distributed among his 4 Greek generals during the Hellenistic age:</p>
<ul>
<li>Cassander rules Macedonia & Greece in the West</li>
<li>Ptolemy rules Egypt & Palestine in the South</li>
<li>Lysimachus rules Thrace & Asia Minor (Byzantium) in the North</li>
<li>Seleucus rules Antioch, Syria (Seleucia) & Mesopotamia in the East
<br /><br />
<br /> 322 Chandragupta founds Mauryan Empire in India.
<br /> 312 Greek Seleucid dynasty reigns in Mesopotamia, with Seleucia as capital, infusing Hellenistic culture.</li>
</ul>
<p><br /> 304 Egypt becomes independent under Roman general Ptolemy I.
<br /> 301 Alexander’s successors fight at the Battle of Ipsus.
<br /> 290 Foundation of library at Alexandria, Egypt.
<br /> 285-270 Hebrew Bible translated into Alexandrian <a target="_blank" href="http://www.geocities.com/Heartland/Trail/2704/Septuagint.htm">Greek Septuagint (=70=LXX in Roman numeral)</a>
<br /> 206BC-219AD The Han dynasty (named after a tributary of the Yangtsz river) begin 400 year reign in an empire similar in size and power to that of the Roman Empire.
(Korea and Japan still call Chinese glyphs “Han”)</p>
<p><br /> 281-275 Pyrrhus fights in Italy and Sicily.</p>
<p><a id="Romanz"></a></p>
<h3 id="roman-empire">Roman Empire</h3>
<p><br /> <a target="_blank" href="https://www.wikiwand.com/en/List_of_Roman_emperors">List of Roman Emporers</a></p>
<p><br /> 264-146 <strong> Punic Wars </strong> between Rome and Carthage.
<br /> 264-241 Rome wins control of Sicily from Carthagians under Hannibal in First Punic War.</p>
<p><br /> 262 Mauryan emperor Asoka becomes a Buddhist and sets up stupas containing a part of the Buddha’s body.
<br /> 245 Agis attempts reform in Sparta.
<br /> 241 Agis is executed by the rich of Sparta.</p>
<p><br /> 221 Qin Shi Huangdi unites China and becomes its first emperor.
<br /> 222 Royal lines of Sparta ends.
<br /> 218-202 Roman general Scipio wins Second Punic Wars against Hannibal.
<br /> 214 Great Wall of China begins construction.
<br /> 202 China reunited under Han dynasty.
<br /> 198 Syrian Seleucid Antichus III rules.
<br /> 197 Rome defeats Macedonia.
<br /> 192-188 War between the Seleucids and the Romans.
<br /> 168 Greece ends its dominance to Rome (two feet in Rev.).
<br /> 167 Syrian Antiochus Epiphanes IV defiles temple with pig & statue of Zeus (<a target="bible" href="https://www.blueletterbible.org/kjv/dan/8/9-12/s_858009">Daniel 8:9-12</a>)
<br /> 164 (168-165) Judas Maccabee revolt, <a target="_blank" href="https://www.wikiwand.com/en/Hanukkah"> Hanukkah</a> begins priestly Hasmonean dynasty</p>
<p><br /> 149-6 Rome destroys Carthage in Third Punic Wars.
<br /> 146 Rome obliterates Corinth. All Greece becomes conquered territory.
<br /> 135 Total exile of the Jewish people from Jerusalem by the Romans.
<br /> 129 Jerusalem becomes an independent Jewish capital
<br /> 112-106 Rome destroys Juguertia, King of Numidia
<br /> 112 "Silk Road" opens from China to the West.
<br /> 111 Han annexes North Vietnam.
<br /> 100 Anasazi, Hohokam, and Mogollon people populate Southwestern North America.
<br /> 100 BCE-250AD <em>Yayoi</em> (metal) period in Japan
<br /> 84 Rome (Agricola) repeled by Scottish tribes in Battle of Mons Graupius.
<br /> 74 Julius Caesar defeats Pharnakes, king of Pontus (now northeastern Turkey), son of Mithridates
<br /> 73-71 Revolt of slave Spartacus vs. Rome
<br /> 64 Roman general Pompey conquers Syria.
<br /> 63 Roman general Pompey renames Judea & Palestine after subjecting them.
<br /> 59 <a href="http://www.carmensandiego.com/products/time/romec02/caesar.html" target="_blank"> Julius Caesar </a>named consul (highest rank) by the Roman Senate, begins to
conquer Gaul and Britain.
<br /> 53 Parthians prevent further eastward expansion of Romans.
<br /> Jan. 10, 49 Julius Caesar crosses the Rubicon from Gaul into Italy with his army
to establish himself as a dictator over Pompey and the Roman nobility.
<br /> 48 Julius Caesar defeats Pompey in the Battle of Pharsalus
<br /> 46 BC, called the "Year of Confusion" because it consisted of 445 days
due to an intercalary month being inserted to get public Roman feasts back to the correct seasons.
This calendar change also moved the first day of the year from March 15 (the "Ides of March")
when new Roman consuls take office (see Shakespear’s Julius Ceasar).
<br /> <a target="_blank" href="http://users.chariot.net.au/~gmarts/calfacts.htm">
45</a> <strong>Julian calendar</strong> of 12 months and 365.25 days per year (with a leap year every 4 years)
instituted by Roman Julius Ceasar.
<br /> 40 Jimmu Tenno, first emperor of Japan
<br /> 37 Herod the Great, ruling under Roman authority, builds <a target="_top" href="http://www.nd.edu/~theo/glossary/TempleHerSchem.jpg"> 2nd Temple</a>
<br /> 31 Octavius defeats Mark Anthony and Cleopatra of Egypt, ending Roman civil wars at the Battle of Actium, Greece.
<br /> 27 Octavius (Julius Ceasar’s adopted son) is renamed Augustus Ceasar and replaces Republic.
<br /> 19 <strong>Herod </strong>finishes construction on <strong> Temple</strong> in Jerusalem.
<br /> 15 (Ides of) March, <strong> 44</strong> Assassination of Julius Caesar by Brutus marks the end of the Roman Republic
<a href="http://tech-two.mit.edu/Shakespeare/Tragedy/juliuscaesar/juliuscaesar.html" target="_blank">See Shakespeare’s play</a>.
<br /> 14 Augustus deified by the Roman Senate–the first Roman ruler to be <strong> worshipped </strong> as a son of a god (<em>divi filius</em>).
<br /> 4 Death of Herod the Great, Rome-appointed ruler of Judea, Samaria, Galilee, and surrounding territories.
His son, Herod Antipas, took lands north of the Galilee and east of the Jordan River.
Phillip took the areas east of the Sea of Galilee (the area now called the Golan Heights).
Third son, Archelaeus, took the central portion which includes Jerusalem.</p>
<p><br /> __ Pontius Pilot comes from Rome to be a military “Prefect” over Judea.
<br /> __ John the Baptist born (<a target="bible" href="https://www.blueletterbible.org/kjv/isa/40/3/s_719003">Isaiah 40:3</a> & <a target="bible" href="https://www.blueletterbible.org/kjv/mal/3/1/s_928001">Malachi 3:1</a>)
<br /> __ Mary conceives after the Annunciation
<br /> __ Mary stays at cousin Zacharia & Elizabeth
<br /> John the Baptist starts in the 15th year of Tiberius Caesar (<a target="_blank" href="https://www.blueletterbible.org/kjv/luk/3/1-2/s_976001">Luke 3:1-2</a>). That’s between Aug - Sep 29 AD according to numismatic and inscriptional evidence.</p>
<p><a id="ChristTime"></a></p>
<h2 id="time-of-christ">Time of Christ</h2>
<p><a target="_blank" href="https://www.youtube.com/watch?v=zQw-_uzMnR4&t=3515s">June, 2 BC</a> (alternately, 6-7 AM Tishri 15 (Sep. 11, 3BC) or Tishri 1 (Sep. 8, 5BC) during the <a href="1feasts.htm#Trumpets"> Feast of Trumpets</a>, <a target="bible" href="https://www.blueletterbible.org/kjv/hos/5/15-3/s_867015">the first/former rain</a>) Jesus, the Christ (the basis of Christianity) is born of Mary and Joseph in Bethlehem (while flocks are in pasture). [<a target="_blank" href="https://quran.com/5/46">Quran 5:46</a>]
<br /> Sep. 11, 3 BC (Tishri 1) wise men, guided by a <a target="bible" href="https://www.blueletterbible.org/kjv/mat/2/9/s_931009">Matthew+2:9 star</a>, bring gifts fit for a king to the King of the Jews when he was about two years old. (4,000 years from Adam’s Fall)
<br /> Jesus’ family in Egypt (<a target="_blank" herf="https://www.blueletterbible.org/kjv/mat/2/13-15/s_931013">Matthew 2:13-15</a>)</p>
<p><br /> Fall, 29 AD Jesus begins his ministry over 3 Passovers (John 2:13, 6:4, 11:55, 12:1, 13:1, 18:28, 19:14)
<br /> (27/28) Jesus rides into Jerusalem (on a donkey) as Messiah the prince
(the First Advent), as <a target="bible" href="https://www.blueletterbible.org/kjv/dan/9/24-26/s_859024">predicted in Daniel+9:24-26</a>, but <a target="bible" href="https://www.blueletterbible.org/kjv/mat/16/1-4/s_945001">Matthew+16:1-4: not recognized by people at the time</a>.</p>
<p><a id="JesusCrucified"></a>
<br /> April 6 (Nizon 13), 29/30 AD Christ crucified (</a><a target="bible" href="https://www.blueletterbible.org/kjv/dan/9/26/s_859026">Daniel+9:26 “cut off”</a>) as Passover (Pesach) lambs were slain.</p>
<p><a id="Jesus Ressurect"></a>
<br /> (Nisan 16) Ressurection (Easter) on the Feast of Unleavened Bread</p>
<hr />
<p><a id="AgeGrace"></a></p>
<h2 id="apostolic-age-of-grace---the-early-church">Apostolic Age of Grace - The Early Church</h2>
<p><a class="OfferText" target="_blank" href="http://www.gospelcom.net/rbc/ds/q0907/">
NOTE: The time periods to follow are split based on John (and Jesus Christ’s) Letters to the seven churches in the Book of Revelation.</a></p>
<blockquote>
<p>To the church in Ephesus –<a target="bible" href="https://www.blueletterbible.org/kjv/rev/2/1/s_1169001">Revelation 2:1</a></p>
</blockquote>
<p>9 AM, (Sivan 6) 30/33 AD <a target="bible" href="https://www.blueletterbible.org/kjv/act/2/1/s_1020001">Acts+2 Pentecost</a>, birth of the <a target="bible" href="https://www.blueletterbible.org/kjv/eph/1/22-23/s_1098022">Ephesians+1:22-23 Body of Christ, the Church</a>, indwelt by the <a target="bible" href="https://www.blueletterbible.org/kjv/jhn/14/16-18/s_1011016">John+14:16-18 Holy Spirit</a> (50 days after Jesus’ resurrection). Beginning of the Dispensation of Grace.</p>
<p><br /> 17-24 AD/CE Tacfarinas leads African Numidians in revolt against Romans.
<br /> 35-36 AD/CE Saul of Tarsus, a Jew, comes to believe in Jesus as the Messiah and subsequently becomes the apostle Paul
<br /> 42 Mark Anthony defeats Caius in Battle of Phillipi.
<br /> 43 Romans invade Britain.
<br /> 45 Julius Ceasar introduces the 12 month Julian calendar with leap years on advice of Alexandrian astronomer Sosigenes.</p>
<p><br /> 48/49 Council at Jerusalem with bishop James (the helf-brother of Jesus)<a target="bible" href="https://www.blueletterbible.org/kjv/act/15/28/s_1033028">–Acts 15:28</a></p>
<p><br /> 50 Paul leaves Antioch to begin his Aegean Mission. His letters to these congregations are the earliest documents in the New Testament.
<br /> 50-52 Paul’s visits Corinth for the first time and writes his first letter to the <a target="bible" href="https://www.blueletterbible.org/kjv/1th/1/1/s_1112001">1 Thessalonians</a>.
<br /> 50 jew Philo writes
<br /> 52 Paul visits Ephesus and writes a letter to the <a target="bible" href="https://www.blueletterbible.org/kjv/gal/1/1/s_1092001">Galatians</a> and the <a target="bible" href="https://www.blueletterbible.org/kjv/1co/1/1/s_1063001">1 Corinthians</a>.
<br /> 54-55 While imprisoned in Ephesus, Paul completes a second letter to the <a target="bible" href="https://www.blueletterbible.org/search/search.cfm?Criteria=Corinthians&t=KJV#s=s_primary_0_1">Corinthians</a>
and writes a letter to the <a target="bible" href="https://www.blueletterbible.org/kjv/phl/1/1/s_1104001">Philippians</a> and to <a target="bible" href="https://www.blueletterbible.org/kjv/phm/1/1/s_1133001">Philemon</a>.
<br /> 56 First church Council - formed the <a target="_blank" href="http://www.gty.org/~phil/creeds/apostles.htm">Apostle’s Creed</a>
<br /> 57 Paul’s 3rd mission to Macedonia (<a target="bible" href="https://www.blueletterbible.org/kjv/act/22/17-21/s_1040017">Acts 22:17-21</a>, 23:11)
<br /> 58-60 Paul is imprisoned in Rome.
<br /> 61-63 Roman forces move into Sudan.
<br /> 64 Nero Claudius Ceasar (Lucius Domitius Ahenobarbus) persecutes Christians after Fire of Rome.
Some believe he is <a target="_blank" href="http://www.jf.org/papers/beast.htm">
the “beast”</a> described in the book of <a target="bible" href="https://www.blueletterbible.org/kjv/rev/1/1/s_1168001">Revelation</a>.
<br /> 64 (60-68) Peter martyred in Rome under Nero.
<br /> 68 (60-65) Paul martyred in Rome under Nero.
<br /> 69-79 Roman emporor Vespasian reigns.
<br /> 70 (on 9th Av) Temple destroyed by Roman general Titus (eldest son of Vespasian)
– as predicted by <a target="bible" href="https://www.blueletterbible.org/kjv/dan/9/26/s_859026">Daniel 9:26</a> “The people of the prince that shall come shall destroy the city and the sanctuary”) and <a target="bible" href="https://www.blueletterbible.org/kjv/luk/21/1/s_994001">Luke 21:24,27</a>
<br /> 70 Council at Jamnia codifies canon (books) of the Hebrew Bible.
<br /> 100 Buddhism Spreads to China - 4th Council precipitates split of
<em>Theravada (hinayana)</em> and <em>Mahayana</em> traditions.
<br /> 70-100 Gospels of Mark, Matthew, and Luke written.
<br /> 79 In Southern Italy, Mount Vesuvius erupts and destroys the town of Pompeii.
<br /> 79-81 Reign of Titus.
<br /> 81-96 Reign of the emperor Domitian (Vespasian’s younger son and the object of the anti-Roman attack in the Book of Revelation).
<br /> 85 “Curse against Heretics” <em> (Birkath ha-minim) </em> added to Jewish synagogue benedictions, with the intent of excluding Christians.
<br /> 90 Council of Jamnia produces Jewish scriptures in Greek.
<br /> 94 jewish historian Flavius Josephus (37-100) publishes “Antiquities of the Jews”.</p>
<p><br /> 96 (90-110) John, the last apostle alive, while exiled on the island <strong lang="el">Patmos</strong> (Greek word for “mortal”), pens Book of <strong>Revelation</strong> (Greek word <em lang="el">apocalypse</em> which means disclosure, appearing, coming, uncovering, unveiling, and revealing).
<br /> 96-98 Roman emperor Nerva reigns.
<br /> 98-117 Roman Emperor Trajan reigns. In Dante’s Divine Comedy, Trajan is the only emperor allowed into heaven.
He is so celebrated that all other Roman emperors are honored by the Roman Senate with <em>felicior Augusto, melior Traiano</em> (“may he be more fortunate than Augustus and better than Trajan”).</p>
<p><a id="Persecu"></a></p>
<h2 id="roman-persecutions">Roman Persecutions</h2>
<blockquote>
<p>Smyrna in <a target="bible" href="https://www.blueletterbible.org/kjv/rev/2/8/s_1169008">Revelation 2:8</a></p>
</blockquote>
<p>107-117 Ignatius (bishop of Antioch) is martyred.
<br /> 117-138 Roman emperor Hadrian reigns.
<br /> 112 Cornelius Tacitus, Pliny the Younger writes about Jesus.
<br /> 120 Suetonicus writes about Jesus in Life of Claudius
<br /> 132-135 Second Jewish revolt (the “Bar Cochba” revolt) against Rome.
<br /> 136 Second Roman (Hadrian) conquest of Jerusalem.
<br /> ~150 Justin Martyr (100-165) writes <a target="_blank" href="http://www.ccel.org/fathers/ANF-01/just/justap1index.html"> First Apology</a> and <a target="_blank" href="http://www.ccel.org/fathers/ANF-01/just/justtryindex.html"> Dialogue With Trypho</a>
defending Christianity as a “philosophy” worthy of the respect of the educated and as the only legitimate heir to the Israelite scriptures.
<br /> Irenaeus writes <a target="_blank" href="http://www.ccel.org/fathers/ANF-01/iren/index.html"> Against Heresies</a>
<br /> 119 Tertullian writes oldest Christian works in Latin
<br /> 150 Invention of triangular lateen sails allow Mediterranean ships to tack into the wind.<br />
156? Polycarp, bishop of Smyrna and younger colleague and admirer of Ignatius of Antioch, martyred.
<br /> 161-180 Ceasar Aurelius persecutes and executes Christians.
<br /> 185-254 Origen, early church scholar, writes <a target="_blank" href="http://www.ccel.org/fathers2/ANF-04/anf04-55.htm"> Against Celsus</a> and
<a target="_blank" href="http://www.ccel.org/fathers2/ANF-04/anf04-44.htm"> De Principiis</a></p>
<p><br /> 200-258 Novation caused split in Rome over what to do with Christians who avoided persecution.
<br /> 220 Jewish <strong> Mishnah</strong> (commentary on the Bible) completed
<br /> 200 Indian epics of Rmayana and Mahabharata composed. Creation of Hindu scripture <em>Bhagavad Gita</em>.
<br /> 224 Sassanids come to power in Persia.
<br /> 249-251 Persecution of the church by Decius.
<br /> 265-420 The Qin (Ch’in) dynasty unifies China and standardized currency, weights, and measures.
<br /> 251-356 Antony of Egypt, founder of monasticism, becomes the earliest hermit monk.
<br /> 258 Bishop Cyprian, Catholic theologian, martyred</p>
<p><br /> 293 Diocletian divides Roman Empire in two.
<br /> 303 Severe persecution of the church by Roman emperor Diocletian.
<br /> 304 Invasion of Huns divide China.
<br /> October 27, 312 Battle of Rome’s Milvain Bridge leads to the succession of Constantine to the throne and conversion to Christianity.
<br /> 320 Chandragupta I founds Gupta Empire in Northern India.
<br /> 320 Pachomius, a hermit, starts communal monasticism.
<br /> 325 Constantine calls Council of Nicea to settle Arian controversy with the Nicean Creed. First mention of the Temple Mount in Jerusalem. Worship of the sun on Sunday from Saturday (<a target="bible" href="https://www.blueletterbible.org/kjv/eze/8/14-16/s_810014">Ezekiel 8:14-16</a>)
<br /> (260-340) Eusebius, Bishop of Caesarea, writes geography
<br /> 372 Buddhism in Pyonyang, Korea
<br /> Athanasius (293-373), Bishop in Egypt, defends Christian Orthodoxy against Arianism.
<br /> 391 First Japanese invasion of Korea.
<br /> 420-589 Six Dynasties in China.</p>
<p><a id="Byzantine"></a></p>
<h2 id="313-600-byzantine-era--age-of-constantine-dark-ages">313-600 Byzantine Era / Age of Constantine (Dark Ages)</h2>
<blockquote>
<p>Pergamum in <a target="bible" href="https://www.blueletterbible.org/kjv/rev/2/12/s_1169012">Revelation 2:12</a></p>
</blockquote>
<p><br />324 Constantine’s <a target="_blank" href="https://www.wikiwand.com/en/Edict_of_Milan">Edict of Milan</a> ends Roman persecution with toleration of Christians.
<br /> <a target="_blank" href="http://en.wikipedia.org/wiki/Theodosius_I">Flavius Theodosius</a> (January 11, 347-January 17, 395)
after reunited East and west fractions of the Roman empire as the last emperor of all Rome,
declared Christianity the official state religion of the Roman Empire.
<br /> 325 Lactantius tutors the son of Constantine.
<br /> 325 <a href="http://iclnet93.iclnet.org/pub/resources/text/history/creed.church.txt">
Nicea Council</a> issues <a target="_blank" href="http://www.gty.org/~phil/creeds/nicene.htm">
Nicean Creed</a> adopted 381
<br /> 330 Constantine (280-337) establishes Roman capital in Byzantium (modern Istanbul, Turkey)
<br /> 335 Queen Helena builds Church of the Holy Sepulcher
<br /> 336 Catholic Church Council of Laodicea shifts services (<a target="bible" href="https://www.blueletterbible.org/kjv/mar/7/7-9/s_964007">Mark 7:7-9,13</a>) to <strong>Sunday </strong> from Saturday (<a target="bible" href="https://www.blueletterbible.org/kjv/eze/8/14-16/s_810014">Ezekiel 8:14-16</a>)
<br /> 358/359 Patriarch Hillel II implements the modern Jewish Calendar <a target="_blank" href="http://www.biblechronology.com/chrono05.htm">(with disagreement about the proper years for intercalation and the initial epoch).</a></p>
<p><br /> 378 Goths (Germanic tribes) defeat Romans in Adrianople, Turkey.
<br /> (389-461) Patrick, a missionary to Ireland, encouraged <a target="_blank" href="http://www.ccel.org/patrick/confession/confession.html">
asceticism</a>.
<br /> 391-2 Pagan worship (including the Olympics) outlawed throughout Roman empire.
<br /> 395 The will of Theodosius I officially splits Roman Empire into Eastern and Western legs.
<br /> 397 Council of Carthage defines Canon of 27 NT books; Jerusalem Talmud
<br /> 382-405 Jerome completes Latin Vulgate (common) Bible in Jerusalem
<br /> 399-414 <em>Fa Hsien</em> travels to India to recover Vinaya
<br /> 401 Introduction of writing (kanji) to Japan
<br /> 410 Rome sacked by Visigoths from the North
<br /> 451 <a target="_blank" href="http://iclnet93.iclnet.org/pub/resources/text/history/creeds.chalcedon.txt">
The 4th Council at Chalcedon</a> clarifies orthodox Christology -</p>
<ul><em> Christ as truly man AND truly divine without Monophysite confusion, mixture; or Nestorian separation.</em>
</ul>
<p><strong> 476 Fall of last Roman Emperor;</strong>
Roman monk Dionysius establishes <strong> Before Christ/Anno Domini calendar </strong>
<br /> 476 Romulus Augustulus, the last Roman emperor, is overthrow.
Apostles are scattered (Acts 8:1)
<br /> 491 Armenian church founded.</p>
<p>520 Guptas of India invent the decimal system.
<br />527-529 <a href="http://iclnet93.iclnet.org/pub/resources/text/history/council.orange.txt">
Canons of the Council of Orange</a>
<br /> 533 Ananthemas of the 2nd Council of Constantinople
<br /> 533 Roman Emperor Justian retakes northern Africa.
<br />
<a id="Dividedz"></a>
<strong>538</strong> Bishop Silverius of Rome allows Justian's army into Rome (fighting against Goths), and gets banished.
Vigilus is appointed Pope (and the seat of Caesar) by Belisarius, Justinian's general.
(Daniel 7:24) Popes begins 1260 year rule until 1928.
<br /> 539 War between Persians and Byzantines
<br /> 540-604 Gregory the Great, a monk, is Pope
<br /> (480-550) Bendict founds Benedictine monasticism
<br /> 552 Buddhism brought to Nara, Japan
<br /> 552 Justian restores Italy to Roman control
<br /> 587 Visigoths convert to Christianity
<br /> 589 Reunification of China under Sui dynasty
<br /> 618-906 T'ang dynasty reunifies China
<br /> 600 Babalonia Talmud codified
<br /> 605 Augustine is sent by Pope to be a missionary to Celtic England.</p>
<p><br /> 604 Prince Shotoku establishes rule of law in Japan</p>
<p><a id="MiddleAgez"></a></p>
<h2 id="middle-ages">Middle Ages</h2>
<blockquote>
<p>Thyatira in <a target="bible" href="https://www.blueletterbible.org/kjv/rev/2/18/s_1169018">Revelation 2:18</a></p>
</blockquote>
<p>614 Persians massacre jews in Jerusalem
<br /> 610-June 7 During his annual monthly retreat within a desert cave on Mount
Hira in Arabia, prophet <a target="_blank" href="http://www.sim.org/islam/man.html">
Mohammed</a> (PBUH), a camel driver from the <em>Quraysh </em> tribe asked to recite the
<em>Qur’an</em> (recitation) from <em>Jibril</em> (the angel Gabriel). This is remembered during
the 9th month each year with day-time fasting during <em>Ramadan</em>.
<br /> 617? 618-906 T’ang dynasty in China
<br /> July 16, 622 Muhammad PBUH and his followers start a 200 mile <em>Hijrah </em> (migration) from Mecca/Makkah to
Madina (now Saudi Arabia), an event marked as the first day of each Islamic new year (epoch)</p>
<p>627 Byzantine Emperor Heracles defeats the Persian army.
<br /> 629-645 Chinese pilgrim Xuanzang collects Buddhist teachings in China, Cambodia, and India,
then translates many of the surviving Sutra of the Mahayana Canon into Middle Chinese.
<br />630 (Without a battle) Muhammad's 10,000 man army <em> Jihad </em> (struggle) restores the Ka'bah (first mosque) in Mecca.
<br />632 (since Muhammed Recitations written in the <a target="_blank" href="http://alummah.net/texteng/quran-Translation.htm">Qur'an</a> and <em>hadith</em> (words of the prophet) in the Sunna are written.
It contains the Five Pillars of Islam (submission). These events are celebrated on <a target="_blank" href="http://alummah.net/texteng/isra.htm">Isra'</a>
632 Muhammad PBUH dies in Mecca, and ascends to <em>Mi'raj</em> (heaven) from the temple mount.
His father-in-law, Abu Bakr, is elected by Sunni tribal leaders as the Rightly-Guided <em>caliph</em> (successor).
<br /> 634 Abu Bakr dies after appointing Umar I caliph, who then conquers Jerusalem, Byzantine Damascus, and Syria.
<br /> 635 Buddhism spreads to Tibet
<br /> 636 Arabs under <em>Kalid ib-al Walid</em> defeat Byzantines in desert sandstorm at Yarmul (now Isreal).
<br /> 644 On his deathbed, Umar names a council which chose Uthman the next caliph, who conquers Persia (Iran).
<br /> 656 Ali (cousin/son-in-law to Mohammed PBUH) named first Iman by <strong> Shiites </strong> (party
of Ali) in <strong>Iraq</strong>.
<br /> <strong> 657 </strong> Al Aksa Mosque construction begins in Jerusalem. <strong> “Desolation of abomination" </strong> is placed in the Holy Place.
<br /> 661 Muawiya takes over as a Sunni caliph after Ali is murdered, beginning the <em><strong>Ummayad</strong></em>
dynasty which advanced into Africa.
<br /> 665 Muslims conquer Arabs in the Battle of Basra, Iraq.
<br /> 664 Synod of Whitby - Roman Church authority (based on lineage from St. Peter) chosen over Ionian Celtic traditions (for Easter) by Northumbrian King Oswy.
<br /> 670 Silla Kingdom defeats other kingdoms in Korea.
<br /> 687-714 Pepin II rules after uniting the Franks.
<br /> 688-691 Dome of the Rock built in Jerusalem's Temple Mount by caliph Abd al-Malik (9th Caliphate 685-705),
who also mints purely Muslim coins and declares Arabic the official language.
<br /> 700 Masorites divide <em>Tanache</em> (Old Testament) into chapters
<br /> 711-715 Muslims Conquor Spain
<br /> 726 Byzantine Emperor Leo III declares himself also pope of the Eastern church order after ignoring complaints from icondule Roman Pope Gregory II over iconoclasts destroying the picture of Christ on the gate of Constantinople (modern-day Istanbul, Turkey).
<br /> 732 Muslims reach their limit of European expansion when defeated by Charles Martel (“The Hammer”) and his army of French Franks in the "Battle of Tours" at the Loire River.
<br />750 The Abbasids, headed by al Abbas, gain control of the Muslim Empire. Abu Jafar al Mansur moves Muslim capital to Baghdad in Mesopotamia, beginning a golden period when al Khwarizmi invented algebra (<em>al jabr</em>).
<br />756 After escaping, Abbasid general Abdullah reunites the Umayyad government in Spain;
<em>Abd al Rahman</em> begins to build The Great Mosque and libraries in Cordoba, Spain.
<br />768 Germanic leader <strong>Charlemagne </strong> named emperor of the former Western Roman empire.
<br />787 Second Council of Nicea (Seventh Ecumenical Council)
<br /> 800 Charlemagne crowned Emperor by Roman Pope at Aachen.
<br /> <strong> July 16, 869</strong> "Great Filoque Schism" of Roman & Byzantine Church (1054?)
<br /> 844 Defeat of Picts unites Scotland.
<br /> 861 end of Abbasids empire.
<a id="Medieval"></a>
## 500-1500 Medieval History
868 The first printed book, the Diamond Sutra, is made in China using wood blocks.
<br /> 878 Egyptian Ign Tulum rules
<br /> 907-960 Five dynasties and Ten Kingdoms in China
<br /> 925 Shisak of Egypt destroys Jerusalem
<br />960-1129 Northern/Southern Sung dynasties in China
<br /> 939 Chinese rule in Vietnam ends
<br /> 960 Founding of Sung Dynasty in China
<br /> 962 Coronation by Pope of Otto I as Emporor of the Roman Empire.
<br /> 969 Descendents of Fatimid (a daughter of Mohammed) conquer Jerusalem from Cairo and North Africa.
<br /> 982 Viking warrior Erik the Red settles Greenland.
<br /> 1003 Leif Eriksson (son of Erik the Red) sails down North America and names it "Vinland."
<p> In Dalmatia (Yugolavia) Croats use Roman alphabet, Serbs loyal
to Eastern Constantinople church use Cyrillic alphabet invented by missionary brothers Cyril and Methodius.
<br /> 1008-1020 Tale of Genji written in Japan
<br /> Inquisitions by Pope Innocent.
<br /> 1044 Gunpowder invented in China.
<br /> 1053 Western Church insists on the celibacy of its higher clergy. 50 years later church excommunicates all married priests.
<br /> <strong>1054 </strong> Orthodox Eastern church and Roman Catholic church separate after
excommunicating each other in a <strong>Great Schism</strong>.
<br /> 1055 Seljuk Turks from central Asia conquer Baghdad.
<br /> 1066 French under William the Conqueror beats Saxon England in the Battle of Hastings at <a target="_blank" href="http://ourworld.compuserve.com/homepages/conquestsoc/page2.htm">
Norman, England</a>
<br />1071 Byzantine era when muslims defeat Islamic Ottomans at Anatolia (now Western Turkey).
<br />1085 Spanish Alfonso VI takes Muslim city Toledo.
<br /> 1086 English Doomsday Book published.
<br /> <strong> 1095 </strong> Roman Pope Urban II calls for a holy crusade to protect Christians against muslims on pilgrimages to Jerusalem,
And help Italy capture trade through Constatinopole Byzytine (Greek Orthodox) church territory.
<br /> 1096 First crusades begin.
<br /> July 15, 1099 Crusaders enter Jerusalem.
<br /> 1104 Crusaders take Acre in Isreal from muslims referred derisively as <em> saracen</em> (roughly meaning "Easterners").
<br /> 1169 Muslim Saladin becomes King of Cairo, Egypt.
<br /> 1170 Thomas Becket (born 1162), Archbishop of Canterbury, is murdered for standing up against the English King.
<br />
<br /> 1187 After luring Crusaders to a waterless plateu in July and decimating them,
Saladin ("rectifier of the faith") captures Jerusalem from crusaders led by consort Guy de Lusignan
(after he was expelled by the Duke of Aquitane, who later became Richard I).
<br /> 1187 Medieval Knights restore Jerusalem during 2nd crusade.
<br /> 1189 Jews in England massacred during the coronation of Richard I.
<br /> 1191 Zen Buddhism introduced to Japan by Chinese monk Eisai.
<br /> 1200 Inca civilization forms to peak in the 15th century.
<br /> 1204 Constantinople sacked by crusaders during the 4th Crusade.
<br /> 1206-1227 Genghis Khan establishes the <strong>Mongol Empire</strong>
<br /> June 15, <strong> 1215</strong> <a target="_blank" href="https://www.wikiwand.com/en/Magna_Carter">Magna Carter</a> of liberty signed by king John to avert English Barons' War.
<br /> (1182-1226) Francis of Assisi establishes the Franciscan order.
<br /> 1228 Stephen Langston divides the New Testament Bible into chapters.
<br /> (1225-1274) Thomas Aquinas' Scholasticism separates Grace from Nature
<br /> 1234 Sun Diata founds the Mali Empire in West Africa.
<br /> 1235 Mali defeats Ghana to become the major power in West Africa.
<br /> 1236 Cordoba, Spain falls to Christian forces, leaving Berbers in Granada.
<br /> 1241 King Bela IV of Hungary defeated by Mongolian Golend Horde in the Battle of Mohi.
<br /> Marco Polo (1254-1324) at age 16 journeys from Venice, Italy to China.
<br /> Feb 10, 1258 Abbasid-Seljuk Baghdad (and its libraries)
falls to cavalry of Yuan dynasty (1271-1368) (Tartars) commanded by nomadic Mongols
Kublai Khan (1215-1294), grandson of Genghis Khan. Paper currency first instituted.
<br /> 1274 Mogol invade Japan
<br /> 1275-1292 Marco Polo in China
<br /> May 1281 KubliKhan's Mongols invade Japan. Although initially successful at Tsushima, were thawrted by <em>Kamikaze</em> (divine/god-wind) typhoons <a target="_blank" href="https://www.youtube.com/watch?v=S1hz8DETxIY">VIDEO</a>
<br /><strong> 1291 Crusades end after 8 wars.</strong></p>
<p> 1304 The first "humanist," Francesco Petrarca (1304-1374) is born to become a poet and "father of the <a target="_blank" href="https://www.wikiwand.com/en/Renaissance">Renaissance</a>"
<br /> 1325 Ibn Battuta (1304-1368) travels from Morocco throughout the Muslim world. <a target="_blank" href="https://www.youtube.com/watch?v=FavaU9D9lf8">VIDEO</a>
<br /> 1345 Black Plague wipes out 30%-50% of Europe
<br /> 1345-1521 Aztec civilization in central Mexico peaks, just when the Spanish conquistadors arrived.
<br /> Dominican nun Catherine of Siena (1347-1380) works miracles.
<br /> 1356 Koreans overthrow Mongols
<br /> John Wycliffe (1329-1384) translates Latin Bible into English & converts England
<br /> Timur the Lame (1369-1405)
<br /> 1368-1408 Yoshimitsu is third Shogun of Japan
<br /> 1368-1611 Ming (“brilliant”) dynasty in China
<br /> July 6, 1415 Bohemian pastor John Hus, singing, burns for heresy in Prague.
<br /> 1453 Ottoman Mehmet II of Turkey captures Constanopole and ends the Byzantine empire.
<br /> 1467-1477 Onin War burns everything in Japan
<a id="Renaissance"></a>
## 1517-1648 Renaissance/Reformation
Sardis in <a target="bible" href="https://www.blueletterbible.org/kjv/rev/3/1/s_1170001">Revelation 3:1</a> (nothing good about them)
<br /> 1429 French heroine Joan of Arc lifts English seige of Orleans, France.
<br /> 1448 Russians under Jonas become <em>autosepholis</em> - self governing religiously.
<br /> 1453 Turks capture Constantinople (in Türkiye) to end the Byzantine empire.
<br /> 1455-1485 30-year <strong> War of the Roses </strong> between Houses of York and Lancaster for the English throne
<br /> 1456 Gutenberg produces German Bibles using movable type
<br />1462 Russian Grand prince Ivan, in marrying Sophia, niece of Constantine, unites church and state
<br /> 1469 Sikhism (monotheistic non-ceremonial) religion formed by Guru Nanek in India.
<br /> 1473 First book printed in English, a translation of French stories about the Trojan Wars.
<br /> 1492 Sulan Muhammad XI surrenders Muslim rule in Alhambra, Spain to Ferdinand of Aragon and Isabella of Castile.
<br /> 1492 Columbus sails the ocean blue while Sephardic <a target="_blank" href="http://www.fordham.edu/halsall/jewish/1492-jews-spain1.html">Jews are expelled from Spain</a> (on Tisha B'Av), and Mulims flee to Berber Morocco, North Africa.
<br /> 1497 John Cabot explores the coast of Newfoundland.
<br /> 1497 Vasco da Gama voyages around the Cape of Good Hope for a sea route to India.
<br /> 1499 Amerigo Vespucci locates mouth of the River Amazon.
<p> 1512 Michelangelo completes Sistine Chapel frescoes in the Vatican Palace of Pope Julius II (1443-1513), who reigned from 1503 to 1513.
<br /> 1513 Vasco Nunez de Balboa crosses the Panama Isthmus to discover the Pacific Ocean.
<br /> 1516 Desiderium Erasmus of Holland is first to publish Greek New Testament.
<br /> 1517 Ottoman Selim I captures Jerusalem
<br /> <strong> Oct 31, 1517 </strong> Monk <a target="_blank" href="http://www.knight.org/advent/cathen/09438b.htm">Martin Luther</a> (1483-1546) starts the Protestant Reformation by publishing his <a target="_blank" href="https://www.wikiwand.com/en/Ninety-five_Theses">
95 Theses</a> on the door of his church in Wittenberg, Germany.<br />
1519 Ferdinand Magellan leaves Spain to make the first sea voyage around the world.
<br /> 1525 Led by students of Urich Zwingli in Zurich, Brethren (nicknamed "Anabaptists" for their insistance on adult rather than infant baptism)
break from the state-controlled churches in Germany and the Netherlands.
Those who follow one of their leaders, Menno Simons (1496-1561), called "Mennonites".
<br /> 1526 Babur conquers Delhi, India Battle of Panipat establishing the Mughal empire.
<br /> 1527 Sack of Rome by Imperial troops
<br /> 1529 September <a target="_blank" href="https://www.youtube.com/watch?v=e-hiNtAjxqI&list=PLmuzcvcol_uMOvbja-FtdbGFYCQzNMdNp&index=8">VIDEO</a>: The First Siege of Vienna by 120,000 men led by Suleiman the Magnificent stopped by 16,000 Christians
<br /> 1534 Henry VIII's Act of Supermacy breaks England from papal supremacy by declaring the king of England to be the head of the Church of England.
<br /> 1535 Miles Coverdale finishes the first complete, printed Bible in English.
<br /> 1536 John Calvin (1509-1504) writes <a target="_blank" href="http://www.smartlink.net/~douglas/calvin/"> Institutes of The Christian Religion</a>
<br /> 1534 Martin Luther translates the entire <a href="1bible.htm">Bible</a> into German.
<br /> 1536 William Tyndale (b 1490) executed and burned in Vilvorde, Belgium for translating the New Testament <a href="1bible.htm">Bible</a> into English
(from Greek manuscripts). His last words: "Lord! open the King of England's eyes."
<br /> 1537 King Henry VIII of England authorizes the "Matthew's Bible" and allows it to be sold and read.
<br /> 1539 <a target="_blank" href="http://www.blupete.com/Literature/Biographies/Science/Copernicus.htm">Copernicus (1473-1543)</a> in Poland publishes (after 30 years) <em>De Revolutionibus</em> (of Ptolemiac theory from Egyptian Claudius Ptolemy about 150 AD)
a theory that the Earth is not the center of the universe
<br /> 1538-41 Sultan Suleiman the Magnificent occupies Jerusalem.
<br /> 1545 The first <a target="_blank" href="http://www.historylearningsite.co.uk/council_of_trent.htm">Council of Trent</a> (near Salzburg), convened under Pope Paul III, defined Catholic counter-reformation doctrines,
including the pope as "Vicar" of Christ on Earth.
<br /> 1549, 2 years after the death of Henry VIII, Thomas Cranmer, before being burned as a heretic in 1556,
defines Anglican theology (such as "transubstantiation") by publishing the first <a href="http://www.eskimo.com/~lhowell/bcp1662/">Book of Common Prayer</a> used in English worship services.
<br /> 1551 Robert Stephens Estienne of France divides New Testament verses in the Bible.
<br /> 1555 Peace of Augsberg reached by Catholic Charles V with Lutherans.
<br /> 1557 Portuguese establish settlement in Macao, China
<br /> 1565, on St. Augustine's Day, Pedro Menendez de Aviles arrived to establish America's first city on Florida's Atlantic coast.
<br /> 1557 first Index of Forbidden Books officially issued under Catholic Pope Paul IV
<br /> 1556-1605 Mughal Empire prospers in India under Akbar (the Great).
<br /> 1571 Battle of Lepanto in Greece ends Turkish seapower in the Mediterranean.
<br /> 4-15 Oct. 1582 Based on a committee led by Naples astronomer Aloysius Lilius,
Pope Gregory XIII issues bull <em>"Inter Gravissimus"</em>
to implement the <strong> Gregorian calendar</strong>,
fixing vernal equinoxes at 21 March each year and
taking 10 days out of the Julian calendar.
<br /> 1588 Spanish Armada of 130 ships defeated by storms and the British fleet.
<br /> 1598 French Hugonaughts retreat after Edict of Nant
<br /> 1590 Hideyoshi Toyotomi (1536-1598) unifies Japan
<br /> 1565-1616 Shakespeare, <a target="_blank" href="http://www.crinos.com/users/aforte/features/shakespear/shakespear.insult.html">
the Bard</a>, writes!
<br /><strong> 1611 "Authorized" King James Version of Bible published in English</strong>
<br /> Galileo (1564-1642) proposes earth not center of universe
<br /> Isaac Newton (1642-1727)
<br /> 1603 Tokugawa Ieyasu takes feudal control. Makes Edo political center of Japan, beginning 300 years of peace.
<br /> <strong>Sep 11</strong>, 1609 Henry Hudson arrives on Manhattan Island and meets the indigenous people living there.
<br /> 1610 Henry Hudson claims New York Hudson Bay for England.
<br /> 1618-1648 <strong> Thirty Years War </strong> between German Catholics and Protestants.
<br /> 1619 a Dutch ship brings the first African slaves to the English colony of Virginia.
<br /> 16xx upon Iaysu's death, grandson Imaitsu begins parades to Edo by regional daimyos.
<br /> 1620 <a target="_blank" href="http://www.infoplease.com/ipa/A0101029.html">
Mayflower Compact</a> drafted by <a target="_blank" href="http://www.gty.org/~phil/puritans.htm">Puritan</a>
<a target="_blank" href="http://www.autopenhosting.org/mayflowerhistory/passenger.html"> Pilgrims</a>
upon their landing at Provincetown on Cape Cod, Mass.<br />
1623 William Shakespeare's plays are published in book form for the first time.
<br /> (1624-1691) <a target="_blank" href="http://search.biography.com/print_record.pl?id=8623"> George Fox</a> establishes the Quaker church.
<br /> 1644-1911 Ch'ing dynasty rules into a republic
<br /> 1640 John Harvard establishes university to educate clergy in Boston.
<br /> 1648 Peace of Westphalia ends 30 Year War.
<br /> 1649 King Charles I executed. England is a Republic until monarchy is restoed in 1660.
<br /> 1663 Puritan John Eliot translates a Bible for the Massachusetts Indians.
<br /> (1628-1688) John Bunyan, English minister and preacher, writes <a target="_blank" href="http://www.ccel.org/b/bunyan/pilgrims_progress/title.html">
Pilgrim's Progress</a>.
<br /> 12 September 1683 Ottomans under Kara Mustafa Pasha defeated by Polish King John III Sobieski (with funding from the Holy Roman Empire and German troops under 3Charles of Lorraine) at the <a target="_blank" href="https://en.wikipedia.org/wiki/Battle_of_Vienna">2nd Turkish siege of Vienna</a> on the Danube.
<br /> 1693 Jacob Ammon and his followers in Old Order Amish break from Mennonites.
<br /> 1699 Guru Gobind Singh organizes Sikhs into the <em>Khalsa</em> (brotherhood of man).
<a id="Awakening"></a>
## Awakening 1648-1844
> Philadelphia in <a target="bible" href="https://www.blueletterbible.org/kjv/rev/3/7-13/s_1170007">Revelation 3:7-13</a>
Israel ben Eliezer (1700-1760) the Ba'al Shem Tov (Master of the Good Name) Hasidism from the Ukraine
<br /> 1704 British Duke of Marlborough limits French power in Battle of Blenheim, Germany.
<br /> 1709 Peter the Great of Russia defeat Swedes under Charles XII to control the Baltic Sea in the Battle of Poltava, Ukraine.
<br /> (1703-1791) <a target="_blank" href="http://search.biography.com/print_record.pl?id=6853"> John</a> and Charles Wesley (author of Easter hymn <a target="_blank" href="http://www.hymntime.com/tch/htm/c/l/r/t/clrtodac.htm">"Christ The Lord Is Risen Today"</a> initiate the Methodist movement.
<br /> 1734-1770 Great Awakening led by <a target="_blank" href="http://search.biography.com/print_record.pl?id=14527"> Jonathan Edwards</a> from Boston, MA. On
8 July 1741 delivers <a target="_blank" href="http://www.gospelcom.net/rbc/ds/q0602/point1.html"> Sinners in the Hands of an Angry God</a> and other <a target="_blank" href="http://home.navisoft.com/outreach/Edwards.html">
other sermons</a>
<br /> Easter, 1742, Handel's Messiah first performed in Dublin, Ireland.
<br /> 1752 England and the American colonies had 354 days becuase of a calendar change lost 11 days.
<br /> 1756-1763 England and Prussia wins Seven Years War against Austria and France over control of Germany.
<br /> 1759 Britain gains control of Canada in the Battle of Quebec.
<br /> April 1, 1775 "Boston Tea Party" rebellion for British Stamp Act under King George III.
<br /> April 19, 1775 the first shot of the <strong> American Revolutionary War</strong> begins after Paul Revere rides from Boston toward Lexington and Concord, shouting "the Regulars" (English army, 700 strong) are coming.
Over a 1,000 militia poured onto the Battle Road killed over 270 British soldiers vs. 95 colonists.
<br /> July 2, 1776 <a target="_blank" href="http://www.house.gov/house/Declaration.html"> Declaration of Independence</a> from Britain is signed by 2nd Continental Congress meeting since May in Philadelphia.
<br /> July 4, 1776 <a target="_blank" href="http://www.house.gov/house/Declaration.html"> Declaration of Independence</a>
is read from the Old State House in <a target="_blank" href="2boston.htm"> Boston</a>.
<br /> October 17, 1777 British Gen. Burgoyne surrenders 5,800 men to Americans after the Battle of Saratoga, New York.
This turning point convinced the French of U.S. strength.
<br /> October 19, 1781 Cornwallis, trapped on the Yorktown, Virginia peninsula, surrends to George Washington's American and French forces in this final victory over Britain.
<br /> November 30, 1782 Articles of Peace officially frees America from England. See <a target="_blank" href="http://www.pbs.org/ktca/liberty/"> Liberty! (the PBS series)</a>
<br />
<br /> 1788 William Carey starts the India Missionary movement.
<br /> 1788 The Constitution of the United States is ratified by the states with the Bill of Rights.
<br /> 1793 William Carey goes to India as a missionary from England. Besides building schools and hospitals, he translates and prints portions of the Bible in 45 languages and dialects of India.
<br /> 1792-1815 Napoleonic Wars are fought by Napoleon's France against Austria, Britain, Russia, Prussia, and Sweden.
<br /> 1793 American Eli Whitney invents the cotton gin.
<br />
<a id="PopeStoppedz"></a>
1798 Nepolean's general enters Rome to depose pope (Rev. 13:15, 17:10), ending 42 months=years (Ezekiel 4:6) of papal supremecy.
<br /> 1797 Napoleon conquers Venice
<br /> 1799 Rosetta Stone found in Egypt during Napoleon's campaign in Egypt. Went to Berlin, then to the British Museum in 1802. The three languages saying the same things was the key to deciphering Egyptian hieroglyphics. It's now in the <a target="_blank" href="https://goo.gl/maps/vLeBn5LCuMGYe2s4A">Grand Egyptian Museum in Cairo</a> (GEM).
<br /> 1805 Unitarians take over Harvard University board
<br /> 1805 British admiral Nelson destroys French and Spanish fleet in battle of Trafalgar (South of Spain).
<br /> Feb. 23 1807 Wm. Wilberforce gets Brit. Parliament to abolish slave trade.
<br /> 1806 Frances II renounces the title of Roman Empire.
<br /> 1808 importation of slaves from other countries banned by U.S. Congress
<br /> 1821-1829 Greek War of Independence from Turkey.
<br /> June 18, 1815 Napoleon defeated by British Duke Wellington at Waterloo, Belgium. ;)
<br /> 1821 <a target="_blank" href="http://search.biography.com/print_record.pl?id=14752">
Charles Finney</a> (1792-1875) conducts evangelist campaigns through New England before pastoring Oberlin, Ohio.
<br /> 1825-1830 Java War of Indonesians against Dutch.
<br /> 1830 Mormon church is organized by Joseph Smith at Nauvoo, Illinois.
<br /> 1839 The first <a target="_blank" href="http://www.baseballhalloffame.org/">
baseball game is played in Cooperstown, NY</a>.
Phtography invented.
<br /> 1839-1842 Opium War in China results in Britain taking Hong Kong and Portugal taking Macao.
<br /> 1840 Horace Mann establishes Unitarian public school in Massachusetts.
<br /> 1841 Dr. David Livingstone (1813-1873) <a target="_blank" href="http://www.christianitytoday.com/ch/56h/56h010.html">
evangelizes southern Africa</a>
<br /> 1844 The Turkish Empire's Edict of Toleration
allow Jews to live in their original homeland.
1844+ <br /> "Modern" History of <a target="_blank" href="http://www.5loaves2fishes.org.nz/Sign.htm">Apostasy</a> and Lukewarm Church
Laodicea in <a target="bible" href="https://www.blueletterbible.org/kjv/rev/3/14-19/s_1170014">Revelation 3:14-19</a></p>
<a id="TheBab"></a> May 23, 1844 (Islamic year 1260) young Persian Mirza Ali Muhammad (later executed July 1850),
declares himself the promised Qa'im of Shi'ah Islam and
assumes the title of The Báb (Gate) and initiates the unifying <a target="_blank" href="http://www.bahai.org/">Baha'i</a> faith.
<br /> 1844 Brigham Young becomes president of the 'Quorum of Twelve Apostles' after Smith is killed by a mob.
<br /> 1845-6 fungus on potatoes from America (and British rule) creates a famine in Ireland.
<br /> 1846-1848 Mexican-American War.
<br /> June 19, 1846 first baseball game played at Elysian Fields in Hoboken, New Jersey
<br /> 1848 Karl Marx and Frederick Engels publish the <a target="_blank" href="http://www.anu.edu.au/polsci/marx/classics/manifesto.html"> Communist Manifesto</a> in London
<br /> 1848 Gold discovered at Sutter's Mill (Sacramento, CA)
<br /> 1850 U.S. Congress passed the Fugitive Slave Law. The Underground Railroad is formed in response.
<br /> 1853-1856 Crimean War in the Black Sea. Turkey, Britain, France, and Sardinia fight Russia.
<br /> 1853 American Admiral Matthew Perry's black ships (kunefune) enter forbidden Tokyo Bay to demand terms.
<br /> Feb. 1854 Perry returns to demand regulated trade with Japan
<br /> 1858 The 15th shogunate steps down in Japan.
<br /> Jan 1, 1859 - First Modified Julian Date
<br /> 1859 Darwin publishes The Origin of Species with forward by Karl Marx
<br /> Apr. 12, 1861 Charleston's Fort Sumter in S.C. starts the American Civil War.
<br /> October 24, 1861 Western Union completes the transcontinental telegraph service
<br /> July 21, 1861 Confederates under Irvin McDowell lose at the first Battle of Bull Run.
<br /> September 17, 1862 Battle of Antietam, Maryland is the bloodiest one-day fight during the Civil War, with more than 20,000 men killed, wounded, or missing.
<br /> Summer, 1862 The Union's Paninsula Campaign in the Shenandoah Valley and Williamsburg toward Richmond, VA fails.
General John Pope is sent West to deal with a Sioux uprising.
<br /> 17th September, 1862 Ambrose Burnside replaces McClellan and attacks the armies of Robert E. Lee and Thomas Stonewall Jackson at Antietam.
<br /> Sep. 22, 1863 <a target="_blank" href="http://www.nps.gov/ncro/anti/emancipation.html">
Emancipation Proclamation</a> (of slaves only in rebellious states) issued by Abraham Lincoln.
<br /> 1862 Constantine von Tischendo
<br /> 1869 the Codex Sinaiticus Greek manuscript is discovered
<br /> 1863 Bahá'u'lláh (The Glory of God) whom <a target="_blank" href="http://www.uga.edu/~bahai/info.html"> Bahá'ís</a> follow is announced as the One for Whom <a href="#TheBab">The Bab</a> had prepared the way.
<br />
<br /> Nov. 19, 1863 Abe Lincoln delivers <a target="_blank" href="http://lcweb.loc.gov/exhibits/gadd/">
Gettysberg Address</a> on the <a target="_blank" href="http://memory.loc.gov/ammem/cwphtml/cwphome.html">
Civil War</a>
<br />1864 “In God We Trust” first appears on US coins.
<br />April 14, 1865 Lincoln assassinated
<br />1868 Emporor moves from Kyoto (Western capital) to Tokyo (Easter capital)
<br />1869 Meiji Restoration (of the Japanese emperor to power for the first time since the <em>Heian</em> Period)
<br />1870-1871 Franco-Prussian War ends with establishment of Germany.
<br />1886 Dr. J. Pemberton sells his new drink, Coca-Cola, as a “brain tonic”.
<br />1873 Remington Company mass-produces in America the first modern typewriter.
<br />1878 Petah Tikvah in Judea and Rosh Pinnah in Galilee are first Jewish villages in Palestine,
the <strong> planting of modern Israel.</strong>
<br /> 1882 Chinese Exclusion Act bars (for 60 years) Chinese immigration into the US.
<br /> 1892 Beginning of Zionist return to Jerusalem
<br /> 1893 Henry Ford builds his first car (automobile).
<br /> 1894-5 Japan invades Korea, China in Sino-Japanese War
<br /> 1895 The Niagara Bible Conference listed <a target="_blank" href="1words.htm#Niagara">
five unalterable requirements of belief for a fundamentalist individual or group</a>
<br /> 1895 Sigmund Freud publishes first work on psychoanalysis, determinism
<br /> <a target="_blank" href="http://www.christianitytoday.com/ch/52h/">
Hudson Taylor evangelizes Inland China</a>
<br /> 1896 Billy Sunday begins leading revivals in America
<br /> 1896 Theodor Herzl (1860-1904) becomes the father of political Zionism by publishing <em>Der Judenstaat</em> (The Jewish State),
which proposes a Jewish state in Palestine.
<br /> April, 1896 First modern Olympics held in Athens, Greece with 484 athletes from 13 nations.
<br /> Feb. 15, 1898 bombing of USS Maine starts <a target="_blank" href="http://lcweb2.loc.gov/ammem/sawhtml/sawhome.html"> Spanish-American War</a>
<br /> 10 Dec 1898, in the Treaty of Peace in Paris, Spain renounced all rights to
Cuba, ceded <strong>Puerto Rico and Guam to the US</strong>, and gave up its possessions in the West Indies,
and sold the Philippine Islands.
<br /> August 29—31, 1897 First Zionist Congress meets in Basel, Switzerland led by Theodor Herzl
<br />1899-1902 Boer War ends with British control of South Africa.
<br /> Dec. 17, 1903 Wright brothers of Akron, Ohio fly first motorized bicycle/airpline named "Bird of Prey" at SC.
<br /> April 18, 1906, 700 San Franciscans die in the deadliest earthquake in North American history.
<br /> Speaking in tongues initiates the <a target="_blank" href="http://www.christianitytoday.com/ch/58h/58h010.html">Azusa Street Pentecostal Revival</a> in Los Angeles.
<br /> 1913 U.S. Federal income tax law passes
<br /> 1914-18 on Tisha B'Av, WWI sparked by murder of Ferdinand in Yugoslavia, starts.
<br /> May 7, 1915 United States enters WW I after a German U-boat sinks the passenger ship Lusitania owned by JP Morgan. 123 Americans were among 1,195 lives lost.
<br /> 1916 Battle in Somme, France kills 1,265,000 men in less than a week.
<br /> Jan 17, '17 Virgin Islands becomes a US territory.
<br /> <strong> Dec. 8, 1917 (7 times 360 years or 2520 years punishment of apostate Israel for her unfaithfulness prescribed in Leviticus 26: 24 & 28)
British general Lord Allenby enters Jerusalem </strong>
after the Turks panicked and left Jerusalem without a shot being fired.
An Islamic prophecy predicted that the Turks would lose
the city when a man of Allah delivered a notice.
The Propaganda leaflets dropped on the Turks were signed by Lord Allenby.
When the Turks fled, they left behind a letter of surrender
which was brought to the Christian General Allenby when he and his officers were praying.
<br /> 1917 British <strong> Balfour Declaration </strong>
<em> "His Majesty's Government view with favor the establishment in Palestine of a National
Home for the Jewish people" </em>begins second Jewish Exodus.
<br /> November 11, 1918 Armistice Day end of World War I when Allied powers signed a cease-fire agreement (truce) with Germany in the Forest of Compiegne at Rethondes, France.
Renamed to "Veterans Day" in 1954.
<br /> 1921 Prohibition in America
<br /> July, 1925 schoolteacher John Scopes is found guilty of violating the Tennessee Butler bill against teaching evolution in the "Monkey Trial." The first American trial to be nationally broadcast on radio. Christian fundamentalism lost ground.
<br /> 1928 Alexander Fleming discovers penicillin.
<a id="Lateranz"></a>
### Lateran Rome Recovery
<br /> 1926 controversial Father Coughlin creates a radio congregation in the US.
<br /><strong>Feb. 11, '28</strong> Dictator Mussolini signs <a target="_blank" href="http://en.wikipedia.org/wiki/Lateran_Treaty">Lateran Pact</a> to settle the "Roman Question" by establishing Catholic Vatican as a sovereign state within Italy. (healing the wound).
<br /> Jan 30 '33 President Paul von Hindenburg appoints Hitler Chancellor of 3rd Reich of Germany
<br /> Nov 10 '38 <em>Kristallnacht</em> (Night of Broken Glas) riots destroy Jewish businesses and <a target="_blank" href="http://fcit.coedu.usf.edu/holocaust/timeline/KMap.htm">synagogues throughout Germany</a>
<br /> '36 African-American Jesse Owens wins Berlin Olympics
<br /> Jan 13 '41 Puerto Rico becomes a US territory.
<br /> April 6 '41 Nazis begin bombing Belgrade, Yugoslavia
<br /> Dec 7 '41 Japanese bomb Pearl Harbor, US enters WW II
<br /> Dec 25 '41, British-Canadian garrison at Hong Kong surrenders to Japanese.
<br /> 4–7 June '42 Japan fail to capture Midway Island from the US, the turning point for the Pacific war.
<br /> June 6 '44 <strong>D-Day</strong>, Allied troops land at Normandie, France.
<br /> May 8 '45 <strong>Victory in Europe (VE) Day</strong> when Germany surrendered to the Allies.
<br /> June 26, '45 United Nations charter (in Chinese, English, French, Russian, and Spanish) was signed by 50 countries in San Francisco.
<br /> 5:29 a.m. MWT (11:29:21 GMT) July 16, 1945, the first atomic bomb was tested by the Mahattan Project at the <a target="_blank" href="https://www.wikiwand.com/en/Trinity_(nuclear_test)">Trinity Site</a> near Alamogordo, New Mexico.
<br /> Aug. 6 45 atomic bomb dropped by "Engola Gay" on Hiroshima, Japan, killing 140,000 people.
<br /> Aug. 9, 45 atom bomb dropped by "Bock's Car" B-29 on Nakasake, Japan. Victory in Japan (VJ) Day.
<br /> '47 Evangelist Billy Graham begins crusades in Charlotte, NC
<br /> '49 Russia detonates their first atom bomb, beginning the Cold War. NATO forms.
<br /> May 12, 49 Blockade of Berlin ends.
<br /> Jul 4, 47 UFO crash outside nuclear air force base in Roswell, New Mexico
<a id="Isreal Indep"></a>
<strong> May 14, 1948 Israel declares Independence </strong> to avoid being <a target="bible" href="https://www.blueletterbible.org/kjv/eze/37/19/s_839019">Ezekiel+37:19 - partitioned</a> (fulfills <a target="bible" href="https://www.blueletterbible.org/kjv/eze/4/3-6/s_806003"> Ezekiel 4:3-6</a>,
<a target="bible" href="https://www.blueletterbible.org/kjv/eze/48/1/s_850001">Ezekiel 48</a>,
<a target="bible" href="https://www.blueletterbible.org/kjv/lev/26/18/s_116018">Leviticus 26:18</a>) after 2nd seige by Egypt (Ham), TransJordan, Labanon,
Saudi Arabia (Sheba & Dedan), Syria & Iraq (Shem).
<br /> '48 Essenes' <a target="_blank" href="http://lcweb.loc.gov/exhibits/scrolls/toc.html">
Dead Sea scrolls</a> from before 68 AD found in Qumram caves
<br /> Oct 1, 49 The People's Republic of China is formally established.
<br /> June 25, 50 US-Korean War begins when North Koreans cross 38th parallel.
<br /> '52 Bishop Sheen draws 30 million viewers to his "Life Is Worth Living" TV show.
<br /> Feb 28 '53 Watson and Creek model the DNA.
<br /> '53 Edmund Hillary and guide Tenzing Norgay make first ascent of Mt. Everest
<br /> June 25 '62 Supreme Court bans prayer in school in in Engel vs. Vitale,
the first case in which the Supreme Court did not cite any previous precedents or legal cases in making its decision,
creating the phrase "separation of church and state".
<br /> 60's Vietnamese War, Peace marches,
<br /> April 12, 1961 Soviet Cosmonaut Yuri Gagarin is the first human put into space.
<br /> Feb 2, '62 The Earth's moon, Mercury, Venus, Mars, Jupiter, and Saturn all align in the constellation Aquarius.
<br /> 1965 Jewish atheist psychologist Helen Schucman writes <a target="_blank" href="http://www.acim.org/">
A Course in Miracles</a>
<br /> October 30 1961 USSR detonates 50 megaton (2600 times the Hiroshima bomb) over Novaya Zemla Islands.
June 5-10 '67 Israel regains Jerusalem after 3rd seige <strong> "6 Day War"</strong>.
—the <strong> 'Sign of the End of the Age'</strong> <a target="bible" href="https://www.blueletterbible.org/kjv/luk/21/24/s_994024">Luke+21:24 "Times of the Gentiles"</a> fulfilled by the <a target="bible" href="https://www.blueletterbible.org/kjv/mat/24/32-34/s_953032">Matthew+24:32-34 "leaves spouting from the Fig Tree"</a> with young Israel at 19 years of age.
<br /> June 8 '67 Isreali troops reenter temple area (1035 yrs after 632 AD)
as predicted in Zecharia 2.
<br /> '67 Martin Luther King delivers "I Have a Dream" speech in Wash. DC
<br /> __ KSFG, first Christian radio station starts broadcasting from Los Angeles.
<br /> __ Roe [Mary McDonald?] vs. Wade legalizes abortion
<br /> November 22, '63 John F. Kennedy is <a target="_blank" href="http://www.jfkconspiracy.com/"> assassinated</a>
<br /> July, '69 Neil Armstrong and Buzz Aldrin are the first men on the Moon
<br /> '69 California is the first state to adopt no-fault divorce.
<br /> October 1969 The Internet is born with a message transported across the ARPAnet from UCLA's Network Measurement Center to Stanford University.
<br />Apr 29 '75 Saigon falls when Americans leave.
<p>
<strong>Sept. 17 '78 Israel makes peace with Egypt </strong>(Is this <a target="bible" href="https://www.blueletterbible.org/kjv/eze/29/6-7/s_831006">Ezekiel 29:6-7</a>)
<br /> Nov. '78 Jim Jones orchestrates the mass suicide of 912 People's Temple followers
in Jonestown, Guyana.
<br /> Nov 4 '79 - 52 American hostages begin 444 days in Teheran, Iran
<br /> '80 Supreme Court removes 10 Commandments from Kentucky schools
<br /> '84 Yogi Shri Haidakhan Babaji (b. 1970) dies in Haidakhan, India after predicting a Great Revolution. He taught <a target="_blank" href="http://www.babaji.net/home.html">Truth, Simplicity, and Love with Karma Yoga (service to humanity)</a>
<br /> Nov 4, '86 Virgin Islands becomes a US territory.
<br /> '87 Supreme Court bans Creationism from Lousiana high schools
<br /> Jim & Tammy Bakker
<br /> Aug. 2, 1990 Iraq invades Kuwait to spark US Desert Storm war
<br /> Aug. 7, '90 American forces arrive in Saudi Arabia — what some see as violating
the "one religion" in the holy muslim land of Mecca and Medina.
<br /> Nov. 17 '90 Non-Aggression pact signed between NATO and the Warsaw Pact countries.
<br /> Dec. 25 '91 Gorbachev announces "I cease my activities as President of the U.S.S.R." — ending the Soviet Union.
<br /> '91 Promise Keepers started by coach McCartney
<br /> Aug. 21-22 '92 FBI kills "white separatist" Randy Weaver and family at Ruby Ridge, Idaho
<br /> Sep. 13 '93 Jimmy Carter arranges a 7-year “Peace Accord”
Oslo Accords & handshake between Anwar Sadat & Menakim Bagin
(fulfills <a target="bible" href="https://www.blueletterbible.org/kjv/dan/9/27/s_859027">Daniel 9:27</a>?)
<br /> '93 FBI burns down Waco, TX compound of David Koresh and his Branch Dividians
<br /> Apr '94 Mandela (age 75) elected first black President of South Africa
<p><strong> May 5, '94 Palestinians take Israeli controlled Jericho </strong>
and 25 square miles of the Gaza strip. (See <a target="bible" href="https://www.blueletterbible.org/kjv/jos/6/26/s_193026">Joshua 6:26</a>)
<br /> <a target="_blank" href="http://gbgm-umc.org/advance/Church-Burnings/index.html">
Black churches are burned</a>.
<br /> U.S. withdraws from Somalia after an attack supported by Bin Laden.
<br /> Louis Farakah's Million Man March to Washington DC
<br /> Apr. 19 '95 Tim McVay bombs federal building in Oklahoma City, killing 168.
<br /> '96 O. J. Simpson tried and acquitted (media circus)
<br /> '96 Matching christian charity money scheme collapses
<br /> Oct. '96 First Promise Keepers rally at Washington DC
<br /> '97 Hale-Boppers commit suicide
<br /> '97 <a target="_blank" href="http://www.capsteps.com/special/monica.html">Monica and Bill Clinton - All the President's Women</a>
<br /> Jan 1 '99 Single European currency (with 11 of the 15 EU member states)
<br /> Columbine High School shooting.
<br /> Jan 1 2000 Millenium madness doesn't happen. Boris Yeltzin hands power to KGB Director Putin.
<br /> March 20, '00 the Internet bubble bursts as NASDAQ peaks at 5,500.
<br /> June '00 human genome is mapped.
<br /> Sep 11, '01 Al Queda — led by Bin Laden, a Saudi Sunni in Afgahnistan — sends 4 plane into NY WTC, Pentagon.
<br /> 2002 Isreal's Jubilee year in the traditional calendar.
<br /> 2002 US invades Iraq to replace Iraq's Sunni-led dictatorship with an elected government dominated by the country's Shiite majority. Ironically, Iraqi democracy strengthens Shiites in Iran and Lebanon.
<br /> July 7, 05 Four bombs go off in London
<br /> Feb 06 Syria leaves Lebanon.
<br /> July 06 (9th of Av, Tisha b'Av) Israel failed to decisively win Iranian-Syrian backed Shiite Hezbollah in Lebanon.
<br /> 2007-8 US subprime mortgage crisis followed by a recession
<br /> 2009-10 US healthcare reform
<br /> 2010-11 US Tea Party
<br /> 2011-12 US Occupy Wall Street
<br /> <a target="_blank" href="https://earthsky.org/human-world/biblical-signs-in-the-sky-september-23-2017/">Biblical signs in the sky on September 23, 2017</a> based on <a target="_blank" href="https://www.stellarium.org/">Stellarium.org</a> software. A month later Trump announced moving the US embassey to Jerusalem. Some use that as the beginning of "7 good years" before the "7 bad years" of the Tribulation.
<br /> 2023-05-06 King Charles III <a target="_blank" href="https://www.wikiwand.com/en/Coronation_of_Charles_III_and_Camilla">coronated in England</a>
<br /> 2024-04-08 "Blood moon" <a target="_blank" href="https://www.wikiwand.com/en/2024_eclipse_of_the_Century">"Eclipse of the Century"</a> over the Eastern US.<br />
<hr />
<a name="Predictions"></a>
## Predictions about the Future
Apophis asteroid Apr 13, 2029.
<p></p>
## References
Those who receive God's seal upon their foreheads are "God's commandment-keeping people." "Here is the patience of the saints: here are they that keep the commandments of God, and the faith of Jesus" (Rev 14:12; Testimonies, 6:15).
Jack Finegan, Handbook of Biblical Chronology, Revised Edition, Hendrickson, 1998.
<sub>25-12-13 v026 + vienna :2023-09-02-history.md 2025-12-13 00:00:00 +0000</sub>
</p></p></p></p>
<p><a href="https://wilsonmar.github.io/history/">(Dates in) History</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 13, 2025.</p>
https://wilsonmar.github.io/xcode2025-12-13T00:00:00+00:002025-12-13T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Homebrew, Python, and other development tools require utilities included in Apple’s Xcode IDE or in Command-Line utilities installed separately. Thus the conflicts.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/xcode/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#overlapping-utilities-installers" id="markdown-toc-overlapping-utilities-installers">Overlapping utilities installers!</a></li>
<li><a href="#install-steps" id="markdown-toc-install-steps">Install steps</a> <ul>
<li><a href="#path-of-gcc" id="markdown-toc-path-of-gcc">Path of gcc</a></li>
<li><a href="#which-version-has-been-installed" id="markdown-toc-which-version-has-been-installed">Which version has been installed?</a></li>
<li><a href="#files-and-folders" id="markdown-toc-files-and-folders">Files and Folders</a></li>
<li><a href="#xcodeapp-version" id="markdown-toc-xcodeapp-version">Xcode.app Version</a></li>
</ul>
</li>
<li><a href="#specifying-the-xcode-utility-to-use" id="markdown-toc-specifying-the-xcode-utility-to-use">Specifying the XCode utility to use</a></li>
<li><a href="#uninstall-command-line-tools" id="markdown-toc-uninstall-command-line-tools">UnInstall Command Line Tools</a> <ul>
<li><a href="#software-update" id="markdown-toc-software-update">Software Update</a></li>
<li><a href="#set-license" id="markdown-toc-set-license">Set license</a></li>
</ul>
</li>
<li><a href="#about-xcodeapp" id="markdown-toc-about-xcodeapp">About Xcode.app</a> <ul>
<li><a href="#how-big-is-the-xcode-installer" id="markdown-toc-how-big-is-the-xcode-installer">How big is the XCode installer?</a></li>
</ul>
</li>
<li><a href="#xcode-ide-install" id="markdown-toc-xcode-ide-install">Xcode IDE install</a> <ul>
<li><a href="#update-xcode-from-terminal-cli" id="markdown-toc-update-xcode-from-terminal-cli">Update XCode from Terminal CLI</a></li>
<li><a href="#install-xcode-from-apples-web-app-store" id="markdown-toc-install-xcode-from-apples-web-app-store">Install XCode from Apple’s web App Store</a></li>
<li><a href="#xcode-ide-upgrade" id="markdown-toc-xcode-ide-upgrade">Xcode IDE Upgrade</a></li>
</ul>
</li>
<li><a href="#swift-version" id="markdown-toc-swift-version">Swift version</a></li>
<li><a href="#xcode-filemerge-tool" id="markdown-toc-xcode-filemerge-tool">Xcode FileMerge tool</a></li>
<li><a href="#apple-platforms" id="markdown-toc-apple-platforms">Apple Platforms</a></li>
<li><a href="#xcode-ui-tricks" id="markdown-toc-xcode-ui-tricks">XCode UI Tricks</a></li>
<li><a href="#testing-apps" id="markdown-toc-testing-apps">Testing apps</a></li>
<li><a href="#references" id="markdown-toc-references">References:</a></li>
<li><a href="#more-on-macos" id="markdown-toc-more-on-macos">More on MacOS</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p><em>NOTE: Content here are my personal opinions, and
not intended to represent any employer (past or present).
“PROTIP:” here highlight information I haven’t seen elsewhere on the internet
because it is hard-won, little-know but significant facts
based on my personal research and experience.
</em></p>
<p>XCode on Mac Deskbooks are used to develop and test apps running iPhones and iPad.</p>
<p><a name="2installers"></a></p>
<h2 id="overlapping-utilities-installers">Overlapping utilities installers!</h2>
<p>PROTIP: Apple’s XCode is installed with several utilities:</p>
<ul>
<li><a href="#gcc">gcc</a> - the C language compiler</li>
<li>cc</li>
<li><a target="_blank" href="https://wilsonmar.github.io/make/">make</a></li>
<li><a href="#git">git</a>
<br /><br /></li>
</ul>
<p>These are needed by developers running HomeBrew, Python, and other programs on Macs.</p>
<p>CAUTION: The confusion is that these utilities needed (above) can be installed <strong>two different ways into two different folders</strong>:</p>
<ul>
<li>
<p>If utilities were installed using <strong>Apple’s Xcode IDE (GUI)</strong>:</p>
<p><tt>$HOME/Applications/Xcode.app</tt>
<br /><br /></p>
</li>
<li>
<p>Developers NOT developing apps to run on an <a href="#ApplePlatforms">Apple platform</a> (macOS, iOS, etc.) don’t need the XCode IDE GUI, so can <a href="#InstallCU">install just the CommandLineTools</a> into:</p>
<p><tt>/Library/Developer/CommandLineTools</tt></p>
</li>
</ul>
<p><a name="InstallCU"></a></p>
<h2 id="install-steps">Install steps</h2>
<p>Apple provides a command that either installs CLI tools or show the path of the CLI installed.</p>
<ol>
<li>Open a Terminal (by pressing command+spacebar and typing “T” to select <strong>Terminal</strong>).</li>
<li>
<p>In the Terminal Shell Window, type:</p>
<pre><strong>xcode-select --install</strong></pre>
<p>Alternately, copy and paste <a target="_blank" href="https://gist.github.com/brysgo/9007731">this Apple’s osascript</a>:</p>
<pre>xcode-select --install > /dev/null 2>&1
if [ 0 == $? ]; then
sleep 1
osascript <<EOD
tell application "System Events"
tell process "Install Command Line Developer Tools"
keystroke return
click button "Agree" of window "License Agreement"
end tell
end tell
EOD
else
echo "Command Line Developer Tools are already installed!"
fi
</pre>
</li>
<li>
<p>If already installed you would see <a href="#2installers">one of the two paths above</a>.</p>
<p>If NOT installed, you’ll see:</p>
<pre>xcode-select: note: No developer tools were found, requesting install.
If developer tools are located at a non-default location on disk,
use `sudo xcode-select --switch path/to/Xcode.app` to specify
the Xcode that you wish to use for command line developer tools,
and cancel the installation dialog.
See `man xcode-select` for more details.
</pre>
</li>
<li>
<p>Press command+Tab as many times as needed to select the utility icon. This dialog should appear:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1706813577/xcode-req-dev-tools-870x296_grnkui.png"><img alt="xcode-req-dev-tools-870x296.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1706813577/xcode-req-dev-tools-870x296_grnkui.png" /></a></p>
</li>
<li>
<p>Click “Install” for “Downloading”.</p>
</li>
<li>
<p>If “Stop” is clicked, the install would resume where it was interrupted.</p>
</li>
<li>
<p>Click “Done” when “The software was installed.” appears.</p>
</li>
<li>
<p>Repeat the <a href="#InstallCU">command above</a></p>
<ul>
<li>If XCode CLI was installed, you should see:<br /></li>
</ul>
<ul><pre>/Library/Developer/CommandLineTools</pre></ul>
<ul>
<li>If XCode.app was installed, you should instead see:</li>
</ul>
<ul><pre>/Applications/Xcode.app/Contents/Developer</pre></ul>
<p><a name="gcc"></a></p>
<h3 id="path-of-gcc">Path of gcc</h3>
</li>
<li>
<p>To identify the <strong>path</strong> to one of the <a href="#UtilitiesNeeded">utilities listed above</a>, such as <strong>gcc</strong>, use the <tt>xcrun</tt> utility that comes with macOS:</p>
<pre><strong>xcrun --find gcc</strong></pre>
<p>If Command Line Utilities are installed, the response would be:</p>
<p><tt><strong>/Library/Developer/CommandLineTools/usr/bin/gcc</strong></tt></p>
<p>If Xcode.app is installed, the response would be:</p>
<p><tt><strong>/Applications/Xcode.app/Contents/Developer/usr/bin/gcc</strong></tt></p>
<p>If neither is installed:</p>
<pre>xcrun: error: active developer path ("/Library/Developer/CommandLineTools") does not exist
Use `sudo Xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools, or use `Xcode-select --install` to install the standalone command line developer tools.
See `man Xcode-select` for more details.
</pre>
<p>The same for <tt>make</tt> and other utilities.</p>
<p>Again, if “Command not found” appears, either <a href="#InstallCU">install CommandLineTools</a> or install XCode.app, then return here.</p>
<p><a name="versions"></a></p>
<h3 id="which-version-has-been-installed">Which version has been installed?</h3>
</li>
<li>
<p>Verify the version of GCC installed:</p>
<pre><strong>gcc --version</strong></pre>
<p>If the response is “command not found”, it’s not installed.</p>
<p>If the program is running on an Apple Silicon ARM chip and using CommandLineTools, you would see (at time of this writing):</p>
<pre>Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
</pre>
<p>If the program is running on an Intel x86_64 and using CommandLineTools, you would see (at time of writing):</p>
<pre>Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: x86_64-apple-darwin22.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
</pre>
<p>Note that Intel hardware are stuck on Ventura.<br />
Only ARM hardware can run on Sonoma, the latest macOS version.</p>
<p>In previous OS versions, it was instead:</p>
<pre>Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: x86_64-apple-darwin21.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
</pre>
<pre>Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
</pre>
<pre>Apple LLVM version 10.0.1 (clang-1001.0.46.4)
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
</pre>
<p>If Xcode.app was installed, you would see (at time of writing):</p>
<pre>Apple clang version 14.0.3 (clang-1403.0.22.14.1)
Target: x86_64-apple-darwin22.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
</pre>
<h3 id="files-and-folders">Files and Folders</h3>
<p>Let’s see what is in those folders:</p>
</li>
</ol>
<ul>
<li>
<p>If CommandLineTools was installed:</p>
<pre><strong>ls -al /Library/Developer/CommandLineTools
</strong></pre>
<p>The response would be:</p>
<pre>Library SDKs usr</pre>
</li>
<li>
<p>If Xcode.app was installed:</p>
<pre><strong>ls -al /Applications/Xcode.app/Contents/Developer/
</strong></pre>
<p>The response would have more than what’s in CommandLineTools:</p>
<pre>Applications Library Makefiles Platforms Toolchains Tools usr</pre>
<p>How many folders and files were installed?</p>
</li>
</ul>
<ol>
<li>
<p>If you have the <tt>tree</tt> utility installed:</p>
<pre><strong>tree /Library/Developer/CommandLineTools | tail -1</strong></pre>
<p>Would yield (at time of writing):</p>
<pre>16143 directories, 72910 files</pre>
</li>
<li>
<p>See the link’s location using a Linux utility:</p>
<pre><strong>which gcc</strong></pre>
<p>On an Intel Mac, the response is a path to the file at:</p>
<pre>/usr/bin/gcc</pre>
</li>
<li>
<p>See it’s a binary executable if you view the file:</p>
<pre>cat /usr/bin/gcc</pre>
<p>Press q to exit from the multi-page viewer.</p>
<p><a name="Xcodebuild"></a></p>
<h3 id="xcodeapp-version">Xcode.app Version</h3>
</li>
<li>
<p>Identify, from within a Terminal:</p>
<pre><strong>/usr/bin/Xcodebuild -version
</strong></pre>
<p>If Command Line Tools was installed, you would see:</p>
<p>This message means that it’s not installed:</p>
<p><tt>Xcode-select: error: tool ‘Xcodebuild’ requires Xcode, but active developer directory ‘/Library/Developer/CommandLineTools’ is a command line tools instance</tt></p>
<p>If Xcode is installed, you would get a version code that should match up with the Build Number on <a target="_blank" href="https://developer.apple.com/download/applications/">Apple’s web page</a>:</p>
<pre>Xcode 14.3.1
Build version 14E300c
</pre>
</li>
<li>
<p>For a more precise version number and other info (macOS Mavericks version and up):</p>
<pre><strong>pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
</strong></pre>
<p>A sample response, at time of writing:</p>
<pre>package-id: com.apple.pkg.CLTools_Executables
version: 14.3.1.0.1.1683849156
volume: /
location: /
install-time: 1686936570
</pre>
<p>Previously:</p>
<pre>package-id: com.apple.pkg.CLTools_Executables
version: 13.1.0.0.1.1633545042
volume: /
location: /
install-time: 1637303193
groups: com.apple.FindSystemFiles.pkg-group
</pre>
<p>BTW The previous command was constructed based on a search of tools package names:</p>
<pre>pkgutil --pkgs | grep -i tools
</pre>
<p>The response:</p>
<pre>com.apple.pkg.CLTools_Executables
com.apple.pkg.CLTools_SDK_macOS1015
com.apple.pkg.CLTools_SDK_macOS1014
com.apple.pkg.CLTools_macOS_SDK
...
</pre>
<h2 id="specifying-the-xcode-utility-to-use">Specifying the XCode utility to use</h2>
<p>PROTIP: Xcode.app cannot be installed if Command Utilities has already been installed. So the installation program needs to first check whether XCode.app or CommandLineTools is installed.</p>
<p>Choose which one you want to use:</p>
</li>
<li>
<p>Reset:</p>
<pre><strong>sudo xcode-select -r</strong></pre>
<p>The command provides no response.</p>
</li>
</ol>
<ul>
<li>
<p>To specify the use of Xcode.app (IDE):</p>
<pre><strong>sudo xcode-select --switch /Applications/Xcode.app
</strong></pre>
<p>Enter Password for the sudo.</p>
</li>
<li>
<p>To specify the use of CommandLineTools:</p>
<pre><strong>sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
</strong></pre>
<p>Enter Password.</p>
</li>
</ul>
<hr />
<p><a name="UnInstallCU"></a></p>
<h2 id="uninstall-command-line-tools">UnInstall Command Line Tools</h2>
<p>PROTIP: Deleting the “Command Line Tools” folder is also how to uninstall and reinstall.</p>
<ol>
<li>
<p>Open a new window or tab shell in your Terminal app.</p>
</li>
<li>
<p>Go to the parent folder where Command Line Tools is installed:</p>
<pre><strong>cd /Library/Developer/CommandLineTools
</strong></pre>
</li>
<li>
<p>Remove all files in that folder, provide a password for elevated permissions to get all the files:</p>
<pre><strong>sudo rm -rf /Library/Developer/CommandLineTools
</strong></pre>
<p>Input your password when prompted.</p>
<p>The response is a lot of files removed (to the Trash).</p>
<p>Now <a href="#InstallCU">install CommandLineTools</a> (or <a href="#InstallIDE">install the full Xcode IDE</a>).</p>
<p>CAUTION: On a Mac M1 (Apple Silicon chip, macOS 12.0 Monterey), after installed the Command Line Tools then uninstalled them by deleting /Library/Developer/CommandLineTools and running sudo xcode-select -r, I was still getting updates to the tools in System Preferences > Software Update.</p>
<p>The files below are protected by SIP: to delete them, I had to disable SIP first (ie disable SIP, delete the files, re-enable SIP).</p>
<p>Indeed, the receipts are at /Library/Apple/System/Library/Receipts, in the form of files:</p>
<ul>
<li>com.apple.pkg.CLTools_Executables.{bom,plist}</li>
<li>com.apple.pkg.CLTools_SDK_macOS*.{bom,plist}</li>
<li>com.apple.pkg.CLTools_macOS_SDK.{bom,plist}</li>
</ul>
<h3 id="software-update">Software Update</h3>
<p>To get to “Software Update”:</p>
</li>
<li>Click the Apple icon or press command+, (comma).</li>
<li>
<p>Click Settings. Click General. Click Software Update.</p>
<p><a target="_blank" href="https://github.com/timsutton/osx-vm-templates/blob/ce8df8a7468faa7c5312444ece1b977c1b2f77a4/scripts/xcode-cli-tools.sh">A shell script</a> uses these commands to not require manual clicking on the dialog that pops up (below):</p>
<pre><strong>#!/bin/sh
# Create placeholder file checked by CLI updates' .dist code in Apple's SUS catalog:
touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress;
# Find the CLI Tools update:
PROD=$(softwareupdate -l |
grep "\*.*Command Line" |
head -n 1 | awk -F"*" '{print $2}' |
sed -e 's/^ *//' |
tr -d '\n')
# Unless "No new software available.", install it:
softwareupdate -i "$PROD" -v;
</strong></pre>
<p><img src="https://user-images.githubusercontent.com/300046/83383584-acf52d80-a3a2-11ea-9316-6ac91ccb99a4.jpg" alt="Xcode-select-prompt-444x148" /></p>
<p><a name="InstallPopUp"></a></p>
</li>
<li>
<p>If you see this pop up, manually click “Install”, “Agree”, then “Install”. It says “Finding software”, then “Downloading software”. Finally, “Updates Available” appears.</p>
<p>CAUTION: The large number of files means this can a long time. It took 13 minutes on my 10mbps line.</p>
</li>
<li>
<p>When you see “The software was installed.”, click “Done” to dismiss the pop-up.</p>
<p><a name="SetLicense"></a></p>
<h3 id="set-license">Set license</h3>
</li>
<li>
<p>If you try to confirm the <a href="#versions">versions installed</a>, you’ll see:</p>
<p><tt>You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.
Press the ‘return’ key to view the license agreements at ‘/Applications/Xcode.app/Contents/Resources/en.lproj/License.rtf’
</tt></p>
</li>
<li>Press q, then type “agree”.</li>
<li>
<p>Press spacebar several times until it says:</p>
<p><tt>Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” and then retry this command.</tt></p>
</li>
<li>
<p>Run the command suggested to set Apple’s licensing agreement bit:</p>
<pre><strong>sudo xcodebuild -license
</strong></pre>
<p>Enter your password for the sudo.</p>
</li>
<li>Confirm the <a href="#versions">versions installed</a>.</li>
</ol>
<hr />
<p><a name="XCode.app"></a></p>
<h2 id="about-xcodeapp">About Xcode.app</h2>
<p>Xcode is Apple’s free IDE developers use to create custom programs for an <a href="#ApplePlatforms">Apple platform</a>.</p>
<p>There is no Windows PC version of XCode. XCode only works on macOS.
This limitation has served to increase the need for MacBooks.</p>
<p>Increasingly, Machine Learning developers are using Apple’s Swift language.</p>
<ol>
<li>
<p>Visit Apple’s Xcode marketing page at</p>
<p><a target="_blank" href="https://developer.apple.com/Xcode/">https://developer.apple.com/Xcode</a></p>
<p>Xcode “includes everything you need to create amazing apps for all Apple platforms. Now Xcode and Instruments look great in the new Dark Mode on macOS Mojave. The source code editor lets you transform or refactor code more easily, see source control changes alongside the related line, and quickly get details on upstream code differences. You can build your own instrument with custom visualization and data analysis. Swift compiles software more quickly, helps you deliver faster apps, and generates even smaller binaries. Test suites complete many times faster, working with a team is simpler and more secure, and much more.”.</p>
<p>PROTIP: Newer versions of Xcode installer also installs a Git client.</p>
<p><a name="XcodeSize"></a></p>
<h3 id="how-big-is-the-xcode-installer">How big is the XCode installer?</h3>
</li>
<li>
<p>To see how big the XCode installer is, visit Apple’s fancy “downloads” web page:</p>
<p><a target="_blank" href="https://developer.apple.com/download/applications/">https://developer.apple.com/download/applications</a></p>
<p>Scroll down to a version that doesn’t say “beta”.</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1686944857/xcode-1431-792x314_gj9gx4.png"><img alt="xcode-1431-792x314.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1686944857/xcode-1431-792x314_gj9gx4.png" /></a></p>
<p>Notice the size, such as “(7.01 GB)”.</p>
<p>Because XCode.app is several Gigabytes large, developers who do not create Apple programs can save disk space and time to install it by not installing it.</p>
<p>Also, installer size is also why Xcode does not come with macOS.</p>
<p>Since the Apple Store only handles individual .app files, other mechanisms are needed to install additional programs needed as a pre-requisite by Homebrew, Python, and other development programs.</p>
</li>
<li>
<p>Make sure you have at least <strong>13GB free</strong> on your hard-drive before attempting installation.</p>
<ol>
<li>Click the Apple icon to select “About this Mac”.</li>
<li>Click “Storage” tab.
<br /><br /></li>
</ol>
</li>
</ol>
<p>There are other IDEs used by developers (such as Visual Studio, Eclipse, IntelliJ, PyCharm, etc.).</p>
<p><a name="XcodeInstall"></a></p>
<h2 id="xcode-ide-install">Xcode IDE install</h2>
<p>There are two ways to install XCode:</p>
<ul>
<li>
<p><a href="#AppStoreInstall">Install from Apple Store</a> - the simplest way</p>
</li>
<li>
<p><a href="#TerminalInstall">Install using Terminal</a></p>
</li>
</ul>
<hr />
<p><a name="TerminalInstall"></a></p>
<h3 id="update-xcode-from-terminal-cli">Update XCode from Terminal CLI</h3>
<ol>
<li>Open a Terminal.app console window.</li>
<li>
<p>At any directory, invoke Apple’s Software Update Tool”:</p>
<pre><strong>softwareupdate --install -a
</strong></pre>
<p>If you see this:</p>
<pre>Finding available software
No updates are available.
</pre>
</li>
</ol>
<p><a name="AppStoreInstall"></a></p>
<h3 id="install-xcode-from-apples-web-app-store">Install XCode from Apple’s web App Store</h3>
<ol>
<li>
<p>In an internet browser, go to:</p>
<p><a target="_blank" href="https://developer.apple.com/download/">https://developer.apple.com/download</a></p>
</li>
<li>
<p>Sign in to Apple Developer with your email address, then click the arrow icon.</p>
</li>
<li>
<p>Enter your password, then click the arrow icon.</p>
<p>Below is the “Software Update” approach:</p>
<p>You’ll need to establish an Apple ID if you haven’t already.</p>
</li>
<li>
<p>Click the cloud icon <strong>Download</strong> and provide your Apple ID.</p>
</li>
<li>
<p>Go through Apple’s location verification if prompted.</p>
<p><a target="_blank" href="https://user-images.githubusercontent.com/300046/83388372-956e7280-a3ab-11ea-873c-1b8097fbe557.png">
<img width="667" alt="Xcode-select-ver" src="https://user-images.githubusercontent.com/300046/83388372-956e7280-a3ab-11ea-873c-1b8097fbe557.png" /></a></p>
</li>
<li>
<p>Confirm your account.</p>
</li>
<li>
<p>Click “Allow” to the pop-up “Do you want to download?”.</p>
</li>
<li>
<p>CAUTION: Make sure that your machine has enough free space available.</p>
<p>These are massive files that may take a while to download if you don’t have a fast internet connection.</p>
<p>NOTE: Each version of Xcode is related to a specific version of the Apple OS Mac operating system.</p>
<table>
<thead>
<tr>
<th style="text-align: left">File</th>
<th style="text-align: left">Date</th>
<th style="text-align: right">Download</th>
<th style="text-align: right">Unpacked</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">Xcode_12.1</td>
<td style="text-align: left">2020-10-01</td>
<td style="text-align: right">10.5 GB</td>
<td style="text-align: right">11.5 GB</td>
</tr>
<tr>
<td style="text-align: left">Xcode_11.5</td>
<td style="text-align: left">2020-06-01</td>
<td style="text-align: right">7.5 GB</td>
<td style="text-align: right">? GB</td>
</tr>
<tr>
<td style="text-align: left">Xcode_10.2.1</td>
<td style="text-align: left">2019-04-17</td>
<td style="text-align: right">? GB</td>
<td style="text-align: right">6.1 GB</td>
</tr>
<tr>
<td style="text-align: left">Xcode_9.0</td>
<td style="text-align: left">2017-09-19</td>
<td style="text-align: right">. ? GB</td>
<td style="text-align: right">? GB</td>
</tr>
<tr>
<td style="text-align: left">Xcode_8.2.1 8C1002</td>
<td style="text-align: left">2016-12-19</td>
<td style="text-align: right">? GB</td>
<td style="text-align: right">? GB</td>
</tr>
<tr>
<td style="text-align: left">Xcode_8_beta_2.xip</td>
<td style="text-align: left">2016-07-05</td>
<td style="text-align: right">5.9 GB</td>
<td style="text-align: right">12.32 GB</td>
</tr>
<tr>
<td style="text-align: left">Xcode_7.31</td>
<td style="text-align: left">2016-05-03</td>
<td style="text-align: right">3.8 GB</td>
<td style="text-align: right">?</td>
</tr>
<tr>
<td style="text-align: left">Xcode_4.1</td>
<td style="text-align: left">2014-</td>
<td style="text-align: right">2.9 GB</td>
<td style="text-align: right">?</td>
</tr>
<tr>
<td style="text-align: left">Xcode_3.2.4</td>
<td style="text-align: left">2014-</td>
<td style="text-align: right">2.? GB</td>
<td style="text-align: right">?</td>
</tr>
</tbody>
</table>
</li>
<li>
<p>Switch to Finder Downloads folder to watch progress on the file name ending with “Download”. The one with a clock icon which signifies downloading.</p>
</li>
<li>
<p>Return to the <a href="#versions">versions</a> instructions above to view the updated version.</p>
</li>
<li>
<p>Delete the installer after you’re done, to reclaim disk space.</p>
</li>
<li>
<p>In an internet browser, get to the “Mac App Store Preview” for Xcode at</p>
<p><a target="_blank" href="https://apps.apple.com/us/app/Xcode/id497799835?mt=12">https://apps.apple.com/us/app/Xcode/id497799835?mt=12</a></p>
<p><img width="683" alt="Xcode-web-preview.png" src="https://user-images.githubusercontent.com/300046/95787611-1e20e780-0c97-11eb-97b7-a4a6a70619be.png" /></p>
</li>
<li>
<p>Click <strong>View in Mac App Store</strong>, then “Open App Store.app” in the pop-up.</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1686927986/xcode-store-743x656_jltrsb.png"><img alt="xcode-store-743x656.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1686927986/xcode-store-743x656_jltrsb.png" /></a></p>
</li>
<li>
<p>Click the download icon at the upper-left corner.</p>
</li>
<li>
<p>Provide your Apple ID and password. Get one if you don’t already have one.</p>
<p>PROTIP: DO NOT install a beta version of Xcode.</p>
<p>The blue “OPEN” icon appears at the upper-right when the app is installed.
But don’t click it because we are done.</p>
</li>
<li>
<p>In Finder, look for <strong>Xcode.app</strong> in the <tt>/Applications</tt> folder.</p>
<p>Alternately, on the Touchpad pinch 4 fingers together to click the <strong>App Store</strong>.
Type enough of “Xcode” to filter out others.</p>
</li>
<li>
<p>To view the version, cursor to the top of the screen and click the program name next to the Apple icon to select “About Xcode”:</p>
<p><img src="https://cloud.githubusercontent.com/assets/300046/21987451/dc44154a-dbc0-11e6-90b6-4dce91b8c5d2.png" alt="Xcode about 271x48" /></p>
</li>
</ol>
<hr />
<p><a name="XcodeUpgrade"></a></p>
<h3 id="xcode-ide-upgrade">Xcode IDE Upgrade</h3>
<p>Over time, Apple updates Xcode and its command line utilities.</p>
<ol>
<li>
<p>Click the Apple icon, then click <strong>System Settings</strong>. Click “Continue” it that’s shown.
Here is an example notification:</p>
<p><img src="https://user-images.githubusercontent.com/300046/56460275-7e162680-635d-11e9-8d3c-0bb89457dcd8.jpg" alt="Xcode-cli-update-436x98-4795" /></p>
</li>
<li>Search for “Software Updates” or click the icon.</li>
<li>Click “Update Now” if that appears. (but first do a backup.)</li>
<li>Click “Agree” to the EULA.</li>
<li>When done, view the <a href="#versions">version numbers installed</a>.</li>
</ol>
<hr />
<p><a name="Swift"></a></p>
<h2 id="swift-version">Swift version</h2>
<p>Regardless of whether Command Line Utilities or Xcode.app is installed:</p>
<ol>
<li>
<p>Get the version of the Swift program used to develop iOS mobile apps:</p>
<pre><strong>swift -version</strong></pre>
<p>If you are on an ARM (M1/M2/M3) CPU, a sample response at time of this writing:</p>
<pre>Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.3.0
</pre>
<p>Previously:</p>
<pre>swift-driver version: 1.75.2 Apple Swift version 5.8.1 (swiftlang-5.8.0.124.5 clang-1403.0.22.11.100) Target: x86_64-apple-macosx13.0</pre>
<p>Previously:</p>
<pre>swift-driver version: 1.45.2 Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)
Target: arm64-apple-macosx12.0</pre>
<p>Alternately, if you are on an older Intel CPU, a sample response (at time of this writing):</p>
<pre>Apple Swift version 5.9 (swiftlang-5.9.0.114.6 clang-1500.0.27.1)
Target: x86_64-apple-darwin22.5.0</pre>
<p>Previously:</p>
<pre>Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)
Target: x86_64-apple-darwin21.4.0</pre>
<p>If jamf installed Xcode, you’ll also see:</p>
<p><tt>[1]+ Done sudo rm -rf /Library/Developer/CommandLineToolsjamfselfservice://content?entity=policy</tt></p>
</li>
</ol>
<hr />
<h2 id="xcode-filemerge-tool">Xcode FileMerge tool</h2>
<p>Xcode graphically compares files and directories.</p>
<ol>
<li>
<p>Open Xcode. This takes a few seconds.</p>
</li>
<li>
<p>Right-click on Xcode icon. Select “Open Developer Tool”. Select “FileMerge”.</p>
</li>
<li>
<p>Specify one file to compare.</p>
</li>
<li>
<p>Specify the other file to compare.</p>
</li>
<li>
<p>Click “Compare”.</p>
</li>
</ol>
<p><a name="ApplePlatforms"></a></p>
<h2 id="apple-platforms">Apple Platforms</h2>
<ol>
<li>
<p>Use an internet browser (such as Safari) to view Apple’s page for developers at:</p>
<p><a target="_blank" href="https://developer.apple.com/">
https://developer.apple.com/</a></p>
<p>Apple’s products and operating systems include:</p>
<ul>
<li>macOS on MacBook laptops</li>
<li>iOS to run iPhone mobile phones</li>
<li>iPadOS to run iPad tablets</li>
<li>watchOS to run Apple Watch wearable products</li>
<li>tvOS to run Apple TV devices</li>
<li>visionOS to run vision visors introduced in 2023
<br /><br /></li>
</ul>
</li>
</ol>
<hr />
<h2 id="xcode-ui-tricks">XCode UI Tricks</h2>
<p>https://augmentedcode.io/xcode-tips/</p>
<h2 id="testing-apps">Testing apps</h2>
<h2 id="references">References:</h2>
<ul>
<li>https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods</li>
<li>https://www.youtube.com/watch?v=_wLdNSvGPB8&list=PLvUWi5tdh92zaJIMa65f8G2aWTytY3rN3&index=1</li>
</ul>
<h2 id="more-on-macos">More on MacOS</h2>
<p>This is one of a series on macOS:</p>
<ul>
<li><a href="/mac-setup/">MacOS Setup step-by-step, with automation</a></li>
<li><a href="/apple-macbook-hardware/">MacOS Hardware and accessories</a></li>
<li><a href="/dotfiles/">MacOS dotfiles for System Preferences setup automation</a></li>
<li>
<p><a href="/macos-homebrew/">MacOS Homebrew installers</a></p>
</li>
<li><a href="/macos-bootup/">MacOS Boot-up</a></li>
<li>
<p><a href="/apple-mac-osx-versions/">MacOS Versions</a></p>
</li>
<li><a href="/apple-mac-osx-keyboard/">MacOS Keyboard tricks</a></li>
<li><a href="/mac-osx-terminal/">MacOS Terminal Tips and Tricks</a></li>
<li>
<p><a href="/find/">MacOS Find (files and text in files)</a></p>
</li>
<li><a href="/text-editors/">Text editors and IDEs on MacOS</a></li>
<li><a href="/xcode/">MacOS Xcode.app and CommandTools (gcc)</a></li>
<li><a href="/mac-utilities/">MacOS Command-line utilities</a></li>
<li>
<p><a href="/task-runners/">Task Runners Grunt and Gulp</a></p>
</li>
<li><a href="/macos-apps/">Applications on MacOS</a></li>
<li><a href="/1password/">1password on MacOS</a></li>
<li>
<p><a href="/apple-mac-osx-backup/">Data Backups on MacOS</a></p>
</li>
<li><a href="/mac-diskspace/">Manage Disk Space on MacOS</a></li>
<li><a href="/screen-capture-apple-mac-osx/">Screen capture on MacOS</a></li>
<li>
<p><a href="/printing/">Printing from macOS or Linux</a></p>
</li>
<li>
<p><a href="/ports-open/">Ports open</a></p>
</li>
<li><a href="/mac-iphone/">MacOS iPhone integration</a></li>
<li>
<p><a href="/macos-aws/">MacOS within AWS</a></p>
</li>
<li><a href="/windows-on-mac/">Linux and Windows on Apple MacOS</a></li>
<li><a href="/packer/">Packer create Vagrant Windows image</a></li>
<li>
<p><a href="/rdp/">Remote into Windows</a></p>
</li>
<li><a href="/python-install/">Python on MacOS</a></li>
<li><a href="/maven-on-macos/">Maven on MacOS</a></li>
<li><a href="/ruby-on-apple-mac-osx/">Ruby on MacOS</a></li>
<li><a href="/node-osx-install/">Node on MacOS installation</a></li>
<li>
<p><a href="/php-on-apple-mac-osx/">PHP on MacOS</a></p>
</li>
<li><a href="/java-on-apple-mac-osx/">Java on MacOS</a></li>
<li><a href="/scala-ecosystem/">Scala ecosystem</a></li>
</ul>
<p><a href="https://wilsonmar.github.io/xcode/">Xcode (install on MacOS)</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 13, 2025.</p>
https://wilsonmar.github.io/acronyms2025-12-11T00:00:00+00:002025-12-11T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Here in one page, are all 1,000+ acronyms covering Business, Finance, Marketing as well as: AI/Quantum/Web3 IT, Security, Networking, Amazon, Azure, GCP, OMG!</i></p>
<p><a href="#A">A</a> <a href="#B">B</a> <a href="#C">C</a> <a href="#D">D</a> <a href="#E">E</a> <a href="#F">F</a> <a href="#G">G</a> <a href="#H">H</a> <a href="#I">I</a> <a href="#J">J</a> <a href="#K">K</a> <a href="#L">L</a> <a href="#M">M</a> <a href="#N">N</a> <a href="#O">O</a> <a href="#P">P</a> <a href="#Q">Q</a> <a href="#R">R</a> <a href="#S">S</a> <a href="#T">T</a> <a href="#U">U</a> <a href="#V">V</a> <a href="#W">W</a> <a href="#X">X</a> <a href="#Y">Y</a> <a href="#Z">Z</a></p>
<hr />
<h3>#</h3>
<ul>
<li>2FA = Two-Factor Authentication (MFA)</li>
<li>2SA = Two-Step Authentication</li>
<li>3DES = Triple Digital Encryption Standard</li>
<li>4IR = Fourth Industrial Revolution (automation of business processes to make data the primary commodity in your business)</li>
<li>5IR = Fifth Industrial Revolution (introduction of AI agents to find patterns and suggest solutions to business problems)</li>
<li>86 = NSFW slang for kicking someone out</li>
</ul>
<p><a name="A"></a></p>
<h3 id="a">A</h3>
<ul>
<li>a11y = accessibility (numeronym of 11 letters between a and y)</li>
<li>AAC = Azure Architecture Center (Microsoft)</li>
<li>AAI = Autonomous Agent Interface (operating system instead of CLI or GUI)</li>
<li>ABAC = Attribute-Based Access Control</li>
<li>ABI = Application Binary Interface (on Apple operating systems)</li>
<li>AC = Alternating Current (as in electrical wall plugs)</li>
<li>ACE = Access Control Entries (determines which subjects - user accounts, host IP addresses, and so on - are allowed or denied access to the object and the privileges given)</li>
<li>ACI = Azure Container Instance (Microsoft)</li>
<li>ACL = Access Control List (defines CRUD permissions for an identity)</li>
<li>ACM = AWS Certificate Manager (Amazon)</li>
<li>ACR = Azure Container Registry (substitute for GitHub within Microsoft Azure cloud)</li>
<li>ACS = Azure Communication Service (to send emails)</li>
<li>AD = Active Directory (Microsoft’s branding for technologies that control access by users and groups)</li>
<li>ADC = Analog to Digital Converter (converts continuos analog to digital values on microprocessor boards)</li>
<li>ADC = AWS Direct Connect (Amazon)</li>
<li>ADE = Automated Device Enrollment (Microsoft 365 Intune auto configuration of macOS)</li>
<li>ADAS = Advanced Driver Assistance Systems</li>
<li>ADF = Azure Data Factory (part of Microsoft Fabric)</li>
<li>ADLS = Azure Data Lake Storage (Microsoft cloud Fabric storage)</li>
<li>ADR = Architectual Decision Record</li>
<li>AEAD = Authenticated Encryption with Associated Data (cipher used in TLS)</li>
<li>AES = Advanced Encryption Standard (symmetric encryption algorithm)</li>
<li>AFAIK = As Far As I Know (internet slang)</li>
<li>AFK = Away From Keyboard (gamer slang)</li>
<li>AFR = Annual Failure Rate</li>
<li>AGI = Artificial General Intelligence (AI that surpasses human intelligence)</li>
<li>AHOD = All Hands On Deck</li>
<li>AI = Artificial Intelligence</li>
<li>AIB = Azure Image Builder (to run within Azure VMs)</li>
<li>AIS = Automated Indicator Sharing (of threats, from cisa.gov)</li>
<li>AICPA = Association of International Certified Professional Accountants</li>
<li>AISIC = AI Safety Institute Consortium</li>
<li>AJAX = Asynchronous Javascript and XML</li>
<li>AKA = Also Known As (common vernacular)</li>
<li>AKE = Authenticated Key Exchange</li>
<li>AKS = Azure Kubernetes Service (Microsoft)</li>
<li>AKV = Azure Key Vault</li>
<li>ALB = Application Load Balancer (Amazon)</li>
<li>ALE = Annualized Loss Expectancy</li>
<li>ALEER = Adopt Land Expand Extend Renew (sales strategy)</li>
<li>ALM = Application Lifecycle Management (all that goes into managing building and maintaining software applications)</li>
<li>ALZ = Azure Landing Zones (Microsoft)</li>
<li>ALU = Arithmetic Logic Unit (within classical CPUs)</li>
<li>AM = Account Manager</li>
<li>AMA = Ask Me Anything (slang)</li>
<li>AMA = Azure Marketplace Application (such as HashiCorp Consul Service)</li>
<li>AMA = Azure Monitoring Agent (Microsoft)</li>
<li>AMBA = Azure Monitor Baseline Alerts (Microsoft)</li>
<li>AMI = Amazon Machine Image (Amazon and Azure image containing operating system and apps)</li>
<li>AMO = Atomic, Molecular, and Optical physics (Quantum IT)</li>
<li>AMQP = Advanced Message Queuing Protocol</li>
<li>AMSI = Antimalware Scan Interface (Windows logging mechanism)</li>
<li>AMZN = (Amazon corporation stock market symbol and URL shortener host name)</li>
<li>ANI = Artificial Narrow Intelligence</li>
<li>ANN = Artificial Neural Networks (emulating the 80 billion neurons in human brains)</li>
<li>AO = Authorizing Official (in RMF)</li>
<li>APFS = Apple File System (since macOS High Sierra in 2017, optimized for SSDs instead of Mac OS Extended HFS+ file system for HDDs)</li>
<li>API = Application Programming Interface</li>
<li>APJ = Asia + Pacific + Japan</li>
<li>APM = Application Performance Monitoring</li>
<li>APT = Advanced Persistent Threat</li>
<li>APT = Advanced Package Tool</li>
<li>ARG = Azure Resource Graph (of Microsoft Container Registry)</li>
<li>ARM = Advanced RISC Machine (type of computer chip)</li>
<li>ARM = Azure Resource Manager (Microsoft)</li>
<li>ARN = Amazon Resource Name (Amazon)</li>
<li>ARO = Annual Rate of Occurrence</li>
<li>ARP = Address Resolution Protocol (Networking)</li>
<li>ARR = Annual Recurring Revenue</li>
<li>ASAP = As Soon As Possible (can be an initialism where each letter is pronounced)</li>
<li>ASB = Azure Security Benchmarks (Microsoft)</li>
<li>ASC = Azure Security Center (Microsoft)</li>
<li>ASCII = American Standard Code Information Interchange (defined binary values to display letters and special characters)</li>
<li>ASG = Auto Scaling Group (AWS)</li>
<li>ASG = Application Security Group (Azure)</li>
<li>ASI = Artificial Super-Intelligence (sentient AI prioritizing of its own needs and desires)</li>
<li>ASIC = Application-Specific Integrated Circuit</li>
<li>ASIM = Advanced Security Information Model (schemas by Microsoft Sentinel)</li>
<li>ASM = AWS Secrets Manager (Amazon)</li>
<li>ASN = Autonomous System Number (AWS unique endpoint identifier)</li>
<li>ASO = Application Security Orchestration and Correlation (integrated security tools and processes)</li>
<li>ASOC = Azure Service Operator</li>
<li>ASPM = Application Security Posture Management</li>
<li>ASR = Automatic Speech Recognition (an AI capability)</li>
<li>ASR = Automated System Recovery</li>
<li>AST = Abstract Syntax Tree (a structured representation of source code used by compilers and tools to catch bugs and refactor code automatically)</li>
<li>ASVS = Application Security Verifiation Standard (levels defined by OWASP)</li>
<li>ATA = Advanced Threat Analytics (Microsoft)</li>
<li>ATARC = Advanced Technology Academic Research Center (non-profit collaborative forum on emerging technology challenges like zero trust)</li>
<li>ATO = Authority To Operate (FEDRAMP designation for production-ready state)</li>
<li>AUP = Acceptable Use Policy (for using company assets)</li>
<li>AuthN = Authentication (contraction)</li>
<li>AuthZ = Authorization (contraction)</li>
<li>AVM = Azure Verified Module (meets standards for good IaC)</li>
<li>AWS = Amazon Web Services (cloud services provider)</li>
<li>AZ = Availability Zone</li>
</ul>
<p><a name="B"></a></p>
<h3 id="b">B</h3>
<ul>
<li>B2B = Business to Business (marketing)</li>
<li>B2C = Business to Consumer (marketing)</li>
<li>BANT = Budget + Authority + Need + Timeframe (framework for buyer readiness)</li>
<li>BATNA = Best Alternative To a Negotiated Agreement</li>
<li>BAU = Business Administration Unit</li>
<li>BAU = Business As Usual (pejorative slang)</li>
<li>BBS = BitBucket Server (self-managed edition of BitBucket source version manager from Atlassian)</li>
<li>BCDR = Business Continuity and Disaster Recovery</li>
<li>BCI = Brain Computer Interface</li>
<li>BCP = Business Continuity Plan</li>
<li>BEC = Business Email Compromise</li>
<li>BDM = Business Decision Maker</li>
<li>BDR = Business Development Representative</li>
<li>BEC = Business Email Compromise (spoofing emails to impersonate managers, vendors, customers, govt)</li>
<li>BERT = Bidirectional Encoder Representations from Transformers (Google GenAI pre-trained model)</li>
<li>BFLA = Broken Function Level Authorization</li>
<li>BFS = Breadth-First Search</li>
<li>BFP = Bi-Directional Forwarding Detection (networking)</li>
<li>BGP = Border Gateway Protocol (networking)</li>
<li>BHAG = Big Hairy Audacious Goal</li>
<li>BIA = Business Impact Assessment</li>
<li>BIOS = Basic Input Output System</li>
<li>BJT = Single Bipolar Junction Transistor</li>
<li>BKM = Best Known Method</li>
<li>BLE = Bluetooth Low Energy</li>
<li>BLF = Business Logic Flaw</li>
<li>BNPL = Buy Now Pay Later (debit credit offering from Klarna, Affirm, etc.)</li>
<li>BOD = Board of Directors</li>
<li>BOLA = Broken Object Level Authorization</li>
<li>BOPLA = Broken Object Property Level Authorization</li>
<li>BOM = Bite Order Mark (used in Unicode to define which UTF page a grapheme is located)</li>
<li>BOM = Bill of Material (for manufacturing)</li>
<li><a target="_blank" href="https://borsh.io">Borsh</a> = Binary Object Representation Serializer for Hashing (faster alternative than <a target="_blank" href="https://serde.rs">Serde</a> for Rust)</li>
<li>BPM = Beats Per Minute (in music)</li>
<li>BPCS = Basic Process Control System (responsible for process control and monitoring of the industrial infrastructure)</li>
<li>BPMN = Business Process Model Notation</li>
<li>BPT = Business Process Technology (OutSystems workflow engine)</li>
<li>BRB = Be Right Back (internet slang)</li>
<li>BRG = Blue, Green, and Red (color space instead of RGB by OpenCV)</li>
<li>BRM = Business Requirements Management</li>
<li>BSI = Business-Sensitive Informatioin (used in TPM)</li>
<li>BSM = Basic Security Module (used in TPM)</li>
<li>BSOD = Blue Screen of Death (on Windows machines)</li>
<li>BSON = Binary JSON (used only within MongoDB)</li>
<li>BTP = Behavioral Threat Protection</li>
<li>BTP = Business Technology Platform (previously SAP Cloud Platform)</li>
<li>BTW = By The Way (internet slang)</li>
<li>BU = Business Unit</li>
<li>BVA = Business Value Assessment</li>
<li>BYOD = Bring Your Own Device</li>
<li>BYOK = Bring Your Own Key</li>
<li>BYOIP = Bring Your Own IP address</li>
<li>BYOK = Bring Your Own Key</li>
</ul>
<p><a name="C"></a></p>
<h3 id="c">C</h3>
<ul>
<li>C2 = Command and Control</li>
<li>C&C = Command and Control</li>
<li>C2E = Commercial Cloud Enterprise</li>
<li>C2PA = Coalition for Content Provenance and Authenticity (c2pa.org)</li>
<li>CA = Certificate Authority (issues cryptographic certificates)</li>
<li>CaaS = Container as a Service (such as AWS ECS or Azure AKS or Docker Cloud)</li>
<li>CaC = Configuration as Code</li>
<li>CAF = Cloud Adoption Framework (multi-cloud)</li>
<li>CAGR = Compound Annual Growth Rate</li>
<li>CAI = Cloud Asset Inventory (Google)</li>
<li>CAIQ = Consensus Assessments Initiative Questionnaire</li>
<li>CAM = Corporate Account Manager (role)</li>
<li>CARML = Common Azure Resource Modules Library (Open Source project)</li>
<li>CAP = Common Alerting Protocol (XEP-127)</li>
<li>CAP = Cybersecurity Assessment Plan (FISMA)</li>
<li>CAPEX = Capital Expenditures (impacts Asset Balance Statements and can be amortized over time)</li>
<li>CAPTCHA = Completely Automated Public Turing (test) to tell Computers and Humans Apart</li>
<li>CAR = Content Addressable aRchive (used in IPFS)</li>
<li>CASB = Cloud Access Security Broker (provides IAM services to mediate cloud service access)</li>
<li>CBC = Cipher Block Chaining (used by AES openssl encryption)</li>
<li>CBD = Component Based Development (by reusing pre-existing loosely-coupled modular components)</li>
<li>CBK = Common Body of Knowledge</li>
<li>CBRN = Chemical, Biological, Radiological, and Nuclear (risks)</li>
<li>CCB = Change Control Board (organization)</li>
<li>CCE = Critical Customer Escalation</li>
<li>CCM = Cloud Controls Matrix (from CSA)</li>
<li>CCM = Continuous Controls Monitoring</li>
<li>CCM = Customer Communications Management</li>
<li>CCMP = Cipher block Chaining Message authentication code Protocol (AES-based encryption mode with strong security)</li>
<li>CCP = Common Control Provider (per RMF)</li>
<li>CCP = Crisis Communication Plan</li>
<li>CCS = Complete Corresponding Source (code)</li>
<li>CCTV = Closed-circuit TeleVision</li>
<li>CD = Continuous Deployment (into Production for Productive use)</li>
<li>CDK = Cloud Development Kit (AWS)</li>
<li>CDM = Common Data Model (Microsoft Dataverse for their Power apps)</li>
<li>CDM = Continuous Diagnostics and Mitigation</li>
<li>CDN = Content Delivery Network (Amazon)</li>
<li>CDPI = Control Data-Plane Interface (between SDN Datapath and Controller)</li>
<li>CE = Community Edition</li>
<li>CEO = Chief Executive Officer (position title)</li>
<li>CF = CloudFormation (AWS IaC)</li>
<li>CFAA = Computer Fraud & Abuse Act (of 1986)</li>
<li>CfCT = Customizations for Control Tower (Amazon)</li>
<li>CFET = Complementary FET</li>
<li>CFS = Completely Fair Scheduler (Kubernetes CPU allocation among cgroups)</li>
<li>CFT = Cloud Foundation Toolkit (Google Forseti Config Validator managed by Scorecard CLI utility)</li>
<li>CFT = CloudFormation Templates (Amazon)</li>
<li>CG = Customer Gateway</li>
<li>CI = Continuous Integration</li>
<li>CIAN = Customer Identity and Access Management</li>
<li>CIDR = Classless Inter-Domain Routing (networking)</li>
<li>CIEM = Cloud Infrastructure and Entitlement Management (invented by Gartner)</li>
<li>CIM = Common Information Model (Splunk)</li>
<li>CID = Content Identifier (hash from content used in web3 IPFS)</li>
<li>CIP = Critical Infrastructure Protection (plan)</li>
<li>CIRP = Cyber Incident Response Plan</li>
<li>CIS = Center for Internet Security</li>
<li>CISA = Cybersecurity and Infrastructure Security Agency (US government organization)</li>
<li>CISO = Chief Information Security Officer</li>
<li>CKL = Compromised Key List</li>
<li>CKMS = Cryptographic Key Management System</li>
<li>CLI = Command Line Interface (used to run Linux shell scripts)</li>
<li>CLU = Conversational Language Understanding (Azure AI Language)</li>
<li>CMDB = Configuration Management Database (ITIL term for where all aspects of the system is defined)</li>
<li>CMK = Customer-Managed Key (for encryption)</li>
<li>CMO = Chief Marketing Officer</li>
<li>CMP = Cloud Management Platform (for easier use of multiple clouds)</li>
<li>CN = Common Name (a human-readable name of the subject in certificates)</li>
<li>CNAME = Canonical Name Record (DNS)</li>
<li>CNI = Container Network Interface (Kubernetes)</li>
<li>CNN = Convolutional Neural Networks (Machine Learning)</li>
<li>CNNS = Convolutional Neural Networks (Machine Learning)</li>
<li>CNSS = Committee on National Security Systems</li>
<li>COGS = Cost of Goods Sold (Financial Accounting)</li>
<li>COMINT = Command Intelligence (from intercepted SIGINT)</li>
<li>CMOS = Complimentary Metal Oxide Semiconductor (Type of metal–oxide–semiconductor field-effect transistor fabrication process using complementary and symmetrical pairs of p-type and n-type MOSFETs)</li>
<li>COOP = Continuity of Operations (plan)</li>
<li>CORS = Cross-Origin Resource Sharing (used by browsers to allow web apps to access resources from other origins)</li>
<li>COSO = Committee of Sponsoring Organization (of the Treadway Commission)</li>
<li>CoT = CoT (Chain of Thought - reasoning in AI)</li>
<li>COTS = Commercial Off-The-Shelf (Software vs. custom-built)</li>
<li>CPA = Certified Public Accountant</li>
<li>CPIC = Capital Planning Investment Controls</li>
<li>CPS = Customer Profitability Score</li>
<li>CPRA = California Privacy Rights Act</li>
<li>CRDT = Conflict-free Replicated Data Type (for local-first multi-user systems)</li>
<li>CPSM = Cloud Security Posture Management</li>
<li>CPE = Common Platform Enumeration (see <a target="_blank" href="https://en.wikipedia.org/wiki/Common_Platform_Enumeration">Wikipedia</a>)</li>
<li>CPU = Central Processing Unit</li>
<li>CQL = Cassandra Query Language</li>
<li>CRA = Cyber Resilience Act (EU security law that requires companies to report breaches and puts liability on software flaws)</li>
<li>CRD = Custom Resource Definition (Extends Kubernetes API)</li>
<li>CRDTs = Conflict-free Replicated Data Types (resolves concurrent changes in collaborative apps)</li>
<li>CRI = Container Runtime Interface (Kubernetes)</li>
<li>CRR = Cross-Region Replication</li>
<li>CRL = Certificate Revocation List</li>
<li>CRM = Customer Relationship Management</li>
<li>CRR = Cross-Region Replication (AWS S3 capability)</li>
<li>CRR = Cyber Resilience Review (defined by DHS)</li>
<li>CRT = Common Release Tooling (built on top of GitHub Actions CI/CD)</li>
<li>CRUD = Create Read Update Delete (basic operations)</li>
<li>CS = Customer Success (organization)</li>
<li>CSA = Cloud Security Alliance</li>
<li>CSAF = Common Security Advisory Framework (defined by OASIS)</li>
<li>CSB = Cloud Service Broker</li>
<li>CSC = Cloud Service Customer</li>
<li>CSC = Critical Security Controls</li>
<li>CSE = Customer Success Engineer</li>
<li>CSF = Cyber Security Framework (NIST ISO 27018)</li>
<li>CSI = Container Storage Interface (Kubernetes)</li>
<li>CSIRC = Computer Incident Response Center</li>
<li>CSIRT = Computer Incident Response Team</li>
<li>CSM = Customer Success Manager</li>
<li>CSO = Cloud Security Officer</li>
<li>CSP = Cloud Service Provider</li>
<li>CSP = Content Security Policy (defines which origins browsers are allowed to load resources)</li>
<li>CSP = Cryptographic Service Provider</li>
<li>CSPM = Cloud Security Posture Management (Azure Defender, Palo Alto Prisma Cloud, Qualys CloudView, Trend Micro Cloud One Conformity)</li>
<li>CSQL = Customer Success Qualified Lead (HashiCorp internal term)</li>
<li>CSR = Certificate Signing Request</li>
<li>CSRF = Cross-Site Request Forgery</li>
<li>CTA = Call To Action (marketing)</li>
<li>CTAP = Client To Authenticator Protocol</li>
<li>CTF = Capture The Flag (in a cybersecurity tournament)</li>
<li>CTF = Cyber Threat Framework</li>
<li>CTI = Cyber Threat Intelligence</li>
<li>CTO = Chief Technology Officer</li>
<li>CTS = Consul-Terraform Sync (HashiCorp product)</li>
<li>CUA = Computer Using Agent (OpenAI’s <a target="_blank" href="https://www.youtube.com/watch?v=9oED8PXJuKg"><em>working</em></a> AI agent <a target="_blank" href="https://www.youtube.com/watch?v=CSE77wAdDLg">Operator</a> controlling your computer)</li>
<li>CUDA = Compute Unified Device Architecture (parallel computing platform & API developed by NVIDIA)</li>
<li>CVD = Color Vision Deficiency (aka Color Blindness)</li>
<li>CVE = Common Vulnerabilities and Exposures (identified through the US CISA database)</li>
<li>CVRF = Common Vulnerability Reporting Framework (defined by OASIS)</li>
<li>CVSS = Common Vulnerability Scoring System</li>
<li>CWE = Common Weakness Enumerations (known in programming source code)</li>
<li>CWPP = Cloud Workload Protection Platform (Microsoft, Palo Alto)</li>
</ul>
<p><a name="D"></a></p>
<h3 id="d">D</h3>
<ul>
<li>DaaS = Data as a Service</li>
<li>DA = Developer Advocate</li>
<li>DAAT = Dangerous Asymmetric Advanced Technologies</li>
<li>DAC = Digital to Analog Converter</li>
<li>DAC = Discretionary Access Control (for Security)</li>
<li>DAG = Directed Acyclic Graph</li>
<li>DAO = Decentralized Autonomous Organization</li>
<li>Dapps = Decentralized Applications (run on peer-to-peer networks, such as a blockchain using smart contracts)</li>
<li>DART = Detection and Response Team (Microsoft)</li>
<li>DAX = Data Analysis Expressions (Microsoft formula language)</li>
<li>DAX = DynamoDB Accelerator (Amazon)</li>
<li>DB = Database</li>
<li>DBMS = DataBase Management System</li>
<li>DC = Data Center (in the context of Consul - a set of Consul nodes within a region)</li>
<li>DC = Domain Controller (Microsoft server that authenticates user identities and authorizes their access to resources)</li>
<li>DCAP = Data-Centric Audit Protection</li>
<li>DCL = Data Control Language (to GRANT, REVOKE SQL data)</li>
<li>DDP = Dual Data Plane (Cisco Digital Twin running CI/CD blue/green patching)</li>
<li>DDD = Domain Driven Design</li>
<li>DDL = Data Definition Language (to CREATE, ALTER, DROP SQL data)</li>
<li>DDoS = Distributed Denial of Service Attack</li>
<li>DDPM = Denoising Diffusion Probabilistic Models (Generative AI)</li>
<li>DDR4 = Double Data Rate generation 4 (at 2133-3200 MT/s, a type of SDRAM that each generation doubles the data transfer rate of traditional SDR memory, at lower voltage of 1.2V)</li>
<li>DEI = Diversity + Equity + Inclusion</li>
<li>DEK = Data Encryption Key (secret generated from Customer Managed keys to protect data)</li>
<li>DES = Digital Encryption Standard (56 bits)</li>
<li>DEX = Decentralized Exchanges (Blockchain)</li>
<li>DFC = Distributed Fragments Cryptography (by AKeyless.io)</li>
<li>DFIR = Digital Forensics and Incident Response</li>
<li>DFS = Depth-First Search (programming algorithm)</li>
<li>DGO = Data Governance Organization/Officer (for security)</li>
<li>DHCP = Dynamic Host Configuration Protocol (automatically assigns IP addresses to devices on a network)</li>
<li>DHS = Department of Homeland Security (US government organization)</li>
<li>DiFi = Distributed File Integrity</li>
<li>DiD = Defense in depth (for security)</li>
<li>DIR = Detection and Incident Response (security workflow)</li>
<li>DIY = Do It Yourself</li>
<li>DKIM = DomainKeys Identified Mail (provides public keys for signing of emails to prevent spoofing)</li>
<li>DLP = Data Loss Prevention</li>
<li>DMARC = Domain-based Message Authentication Reporting and Conformance (policies for VMC about what to do when SPF and DKIM fails)</li>
<li>DMCA = Digital Millennium Copyright Act</li>
<li>DMI = Direct Media Interface (the bus connecting the chipset and the CPU)</li>
<li>DML = Data Manipulation Language (to INSERT, UPDATE, DELETE SQL data)</li>
<li>DMS = Database Migration Service (AWS & Microsoft Azure)</li>
<li>DMZ = Demilitarized Zone (networking)</li>
<li>DMV = Dynamic management views (Microsoft SQL query lifecycle insights monitoring)</li>
<li>DNC = Do Not Connect</li>
<li>DNN = Deep Neural Network</li>
<li>DNS = Domain Name Service (networking)</li>
<li>DoD = Definition of Done</li>
<li>DOD = Department of Defense (US government organization)</li>
<li>DODAF = Department of Defense Architecture Framework</li>
<li>DoH = DNS over HTTPS</li>
<li>DoR = Definition of Ready</li>
<li>DPO = Direct Preference Optimization (technique to optimize models based on preference data or ranking)</li>
<li>DPIA = Data Protection Impact Assessment (<a target="_blank" href="https://ec.europa.eu/newsroom/article29/items/611236">required by EU GDPR</a>)</li>
<li>DPL = Data Protection Officer (job role required by GDPR)</li>
<li>DQL = Data Query Language (to SELECT SQL data)</li>
<li>DR = Disaster Recovery</li>
<li>DRAM = Dynamic Random Access Memory</li>
<li>DRI = Directly Responsible Individual (Coined by Apple for the person to make sure that a task is completed)</li>
<li>DPP = Digital Product Passport (a <a target="_blank" href="https://www.protokol.com/insights/what-is-the-ecodesign-for-sustainable-products-regulation-espr/">blockchain</a> to collect and share product sustainability, environmental, and recyclability attributes from raw material sourcing and manufacturing process to end-of-life disposal)</li>
<li>DRP = Disaster Recovery Plan (to transition from alternative business processes back to regular processes.)</li>
<li>DRPO = Defense Research & Development Organization</li>
<li>DRY = Don’t Repeat Yourself</li>
<li>DRDoS = Distributed Reflection Denial-of-Service</li>
<li>DSC = Digital Signature Algorithm (algorithm for signatures)</li>
<li>DSC = Desired State Configuration (declarative DevOps)</li>
<li>DSL = Domain-Specific Language (custom data structure to control processing such as Apache Kafka streams)</li>
<li>DSL = Digital Subscriber Line</li>
<li>DSP = Digital Signal Processing</li>
<li>DSSE = Dead Simple Signing Envelope (signing methods and formats used by Secure Systems Lab)</li>
<li>DSSS = Direct-Sequence Spread Spectrum</li>
<li>DST = Daylight Saving Time</li>
<li>DTLS = Datagram Transport Layer Security</li>
<li>DUT = Device Under Test</li>
<li>DVIA = Damn Vulnerable iOS Application (written in Swift, <a target="_blank" href="https://github.com/prateek147/DVIA-v2">on GitHub</a>)</li>
<li>DVWA = Damn Vulnerable Web Application (by OWASP)</li>
<li>DWaaS = Data Warehouse as a Service</li>
<li>DWeb = Decentralized Web</li>
<li>DWBH = Don’t Worry Be Happy (internet slang)</li>
<li>DX = Developer eXperience</li>
</ul>
<p><a name="E"></a></p>
<h3 id="e">E</h3>
<ul>
<li>E2E = End-to-End</li>
<li>E2EE = End-to-End Encryption</li>
<li>EA = Enterprise Architect</li>
<li>EAL = Evaluation Assurance Level (1-7 of Common Criteria)</li>
<li>EAM = Externalized Authorization Management</li>
<li>EAP = Extensible Authentication Protocol (a framework for port-based access control that uses the same three primary components that are used in the RADIUS standard)</li>
<li>EAR = Export Administration Regulations (US)</li>
<li>EBITDA = Earnings Before Interest, Taxes, Depreciation, and Amortization</li>
<li>EBS = Elastic Block Storage (Amazon)</li>
<li>EC2 = Elastic Cloud Compute (AWS)</li>
<li>ECR = Elastic Container Registry (Amazon service)</li>
<li>ECS = Elastic Container Service (Amazon service)</li>
<li>ECU = EC2 compute unit (Amazon)</li>
<li>EDA = Event Driven Architecture (Serverless)</li>
<li>EDA = Exploratory Data Analysis (an iterative process to understand data through investigative analysis of the data)</li>
<li>EDM = External Dependency Management (NIST)</li>
<li>EDPB = European Data Protection Board (EU GDPR)</li>
<li>EDR = Endpoint Detection and Remediation (Defender for endpoints)</li>
<li>ECDSA = Elliptic Curve Digital Signature Algorithm (algorithm for signatures)</li>
<li>ECU = Electronic Control Unit (Embedded system in autos)</li>
<li>EDA = Exploratory Data Analysis (Microsoft MLOps)</li>
<li>EDR = Endpoint Detection and Response (security)</li>
<li>EDI = Electronic Data Interchange</li>
<li>EE = Enterprise Edition</li>
<li>EEA = European Economic Area</li>
<li>EEC = European Economic Community</li>
<li>EIN = Employer Identification Number</li>
<li>EFA = Elastic Fabric Adapter (AWS)</li>
<li>EFF = Electronic Frontier Foundation</li>
<li>EFS = Elastic File System (Amazon file storage service for EC2 instances)</li>
<li>EFT = Electronic Funds Transfer</li>
<li>EiB = Exbibyte (exa binary byte)</li>
<li>EIP = Elastic IP</li>
<li>ELA = Enterprise License Agreement</li>
<li>ELB = Elastic Load Balancer (AWS)</li>
<li>EMR = Elastic Map Reduce (AWS)</li>
<li>EKM = Extensible Key Management (HashiCorp Vault feature)</li>
<li>EKS = Elastic Kubernetes Service (AWS)</li>
<li>ELB = Elastic Load Balancer</li>
<li>ELT = Extract Load Transform</li>
<li>EMCOMM = Emergency Communications</li>
<li>EMEA = Europe + Middle East + Africa</li>
<li>EMI = Electro-Magnetic Interference</li>
<li>EMP = Electro-Magnetic Pulse</li>
<li>EMR = Elastic Map Reduce (AWS ETL)</li>
<li>EMRFS = EMRFS (on AWS S3 encryption at rest)</li>
<li>ENA = Enhanced Networking Adapter (in AWS EC2 AMI instances)</li>
<li>ENIAC = Electronic Numeric Integrator And Computer (first general purpose computer)</li>
<li>ENI = Elastic Network Interface (AWS)</li>
<li>ENS = Ethereum Name Service (provides names to wallet addresses to simplify token transactions)</li>
<li>EPS = Earnings Per Share</li>
<li>ESPR = Ecodesign for Sustainable Products Regulation (European Green Deal launched December 2019)</li>
<li>ETL = Extract Transform and Load</li>
<li>EOF = End of File</li>
<li>EOQ = End of Quarter</li>
<li>EOM = End of Month</li>
<li>EO = Executive Order (from US White House)</li>
<li>EOP = Exchange Online Protection (Microsoft)</li>
<li>EOY = End of Year</li>
<li>EPSS = Exploit Prediction Scoring System (to predict the likelihood of a vulnerability being exploited)</li>
<li>ERM = Enterprise Risk Management</li>
<li>ERP = Enterprise Resource Planning (SAP does this)</li>
<li>ESB = ???</li>
<li>eSRAM = embedded Static Random-Access Memory (TSMC memory coupled with the GPU of Microsoft Xbox One gaming console’s architecture)</li>
<li>ESNI = Encrypted Server Name Indication (with TLS 1.3)</li>
<li>ETDR = Endpoint Threat Detection and Response (security)</li>
<li>ETW = Event Tracing for Windows (Microsoft EventPipe)</li>
<li>EU = European Union</li>
<li>EUC = End-User Computing (includes SSO, MFA, RBAC, IAM)</li>
<li>EUV = Extreme Ultraviolet (lithography to make semiconductor chips)</li>
<li>EV = Extended Validation (certificate)</li>
<li>EVM = Ethereum Virtual Machine (Ethereum)</li>
<li>EVMS = Ethereum Virtual Machine Suite (Ethereum)</li>
<li>EVMOS = Ethereum Virtual Machine Operating System (Ethereum)</li>
</ul>
<p><a name="F"></a></p>
<h3 id="f">F</h3>
<ul>
<li>FaaS = Functions as a Service</li>
<li>FAISS = <a target="_blank" href="https://github.com/facebookresearch/faiss">Facebook AI Similarity Search</a> (and clustering of dense vectors, implemented in C++ with Python wrappers using CUDA)</li>
<li>FAQ = Frequently Asked Questions</li>
<li>FBL = Feedback Loop</li>
<li>FCEB = Federal Civilian Executive Branch (US government departments and agencies)</li>
<li>FCI = Failover Cluster Instance (Microsoft SQL Server)</li>
<li>FDE = Full Disk Encryption</li>
<li>FEA = Federal Enterprise Architecture (by OMB)</li>
<li>FEDRAMP = Federal Risk and Authorization Management Program</li>
<li>FEA = Finite Element Analysis (generate a computer model of components within actual system to analyze response to stresses)</li>
<li>FEM = Finite Element Method (method for numerically solving differential equations)</li>
<li>FFB = Force Feedback (on gaming consoles)</li>
<li>FFT = Fast Fourier transform</li>
<li>FGAC = Fine-grained Access Control (AWS)</li>
<li>FHE = Fully Homomorphic Encryption</li>
<li>FHRP = First Hop Redundancy Protocol (for shared IP routing redundancy)</li>
<li>FHS = Filesystem Hierarchy Standard (directory structure of Linux distributions)</li>
<li>FIDO2 = Fast IDentity Online (Spec for web authorization using devices with PKI instead of passwords)</li>
<li>FIFO = First In - First Out</li>
<li>FIM = Federated Identity Management</li>
<li>FIM = File Integrity Monitoring (for Intrusion Detection)</li>
<li>FinFET = Fin (as in fish) FET</li>
<li>FIPS = Federal Information Processing Standards (aligns with ISO/IEC 19790 to specify encryption, key management, etc. to protect data over 4 levels)</li>
<li>FISMA = Federal Information Security Management Act (US government)</li>
<li>FLC = Fuzzy Logic Control</li>
<li>FM = Foundation Model (LLM for Generative AI)</li>
<li>FMCG = Fast-Moving Consumer Goods</li>
<li>FN = False Negative (test result that missed catching a bad/malicious sample)</li>
<li>FOMO = Fear Of Missing Out</li>
<li>FP = False Positive (test result that identified a legitimate sample as bad/malicious)</li>
<li>FPGA = <a target="_blank" href="https://en.wikipedia.org/wiki/Field-programmable_gate_array">Field Programmable Gate Array</a></li>
<li>FPS = Flexible Payments Service</li>
<li>FQDN = Fully-Qualified Domain Name</li>
<li>FPV = First Person View (in 3D games)</li>
<li>FRAP = Facilitated Risk Analysis Process (analyze impact of each individual org unit)</li>
<li>FSFET = ForkSheet Field-Effect Transistor</li>
<li>FTE = Full Time Employee/Equivalent</li>
<li>FTK = Forensic ToolKit (drive imager tool from AccessData to preserve evidence)</li>
<li>FQDN = Fully Qualified Domain Name</li>
<li>FSBP = Foundational Security Best Practices (defined by AWS)</li>
<li>FSD = Full Self-Driving (by autonomous vehicles)</li>
<li>FSM = Finite State Machine</li>
<li>FTW = For The Win (a big contributor to great success)</li>
<li>FYE = Fiscal Year End</li>
<li>FYI = For Your Information</li>
<li>FUD = Fear Uncertainty and Doubt</li>
</ul>
<p><a name="G"></a></p>
<h3 id="g">G</h3>
<ul>
<li>GAPP = Generally Accepted Privacy Principles (developed by accountants)</li>
<li>GA = General Availability</li>
<li>GAA = Gate All-Around (transitor technology used in FinFET & MBCFET)</li>
<li>GAI = Generative Artificial Intelligence</li>
<li>GAM = Global Account Manager (job role)</li>
<li>GANS = Generative Adversarial Networks (Generative AI)</li>
<li>GAR = Geoogle Artifact Registry (in GCP)</li>
<li>GB = Gigabytes (173741824 bytes or 1024 megabytes)</li>
<li>GCE = Google Compute Engine</li>
<li>GCN = Graph Neural Network</li>
<li>GCM = Galois/Counter Mode (mode of operation for symmetric-key cryptographic block ciphers)</li>
<li>GCP = Google Cloud Platform</li>
<li>GDPR = General Data Protection Regulation (EU Regulation 2016/679)</li>
<li>GEOINT = Geospatial Intelligence (from analysis and visualization of security activities on a map)</li>
<li>GG = Good Game (gamer digital handshake to convey sportsmanship)</li>
<li>GGML = GPT-Generated Model Language (Early Tensor library designed for machine learning large models at high performance)</li>
<li>GGUF = GPT-Generated Unified Format (model for sharing LLMs with Ollama or LM Studio using JSON-RPC)</li>
<li>GHA = GitHub Actions (SVM cloud purchased by Microsoft)</li>
<li>GID = Group Identifier (used in Kubernetes)</li>
<li>GIL = Global Interpreter Lock (removed in Python 3.13)</li>
<li>GKE = Google Kubernetes Engine (manages container images within Google cloud)</li>
<li>GKS = Google Kubernetes Service (runs container images within Google-managed Kubernetes)</li>
<li>GLB = Global Load Balancing</li>
<li>GLBA = Gramm-Leach-Bliley Act (US regulation of financial data privacy protection)</li>
<li>GNM = Global Network Manager (HashiCorp product feature)</li>
<li>GNU = GNU is Not Unix (a recursive acronym for the set of commands in Linux Bash scripts)</li>
<li>GPG = GNU Privacy Guard (software program to handle encryption)</li>
<li>GPIO = General Purpose Input/Output (on an Arduino board)</li>
<li>GPO = Group Policy Object</li>
<li>GPS = Global Positioning System</li>
<li>GPT = Generative Pre-trained Transformer (LLM used in ChatGPT by OpenAI for GenAI)</li>
<li>GPT = GUID Partition Table (used with UEFI)</li>
<li>GQA = Generalized Question Answering (a dataset for visual question answering tasks)</li>
<li>GRC = Governance and Risk and Compliance</li>
<li>gRPC = Global Remote Procedure Call (a protocol to connect services)</li>
<li>GRPO = Generalized Reinforcement Policy Optimization (advanced variant in reinforcement learning optimization)</li>
<li>GRS = Geo-Redundant Storage (replication of 3 copies in an Availability Zone in each of two Azure regions)</li>
<li>GSI = Global Secondary Index (AWS DynamoDB)</li>
<li>GSI = Global System Integrator</li>
<li>GTM = Go To Market</li>
<li>GUI = Graphical User Interface</li>
<li>GUID = Globally Unique Identifier (a code generated to be unique across space and time for use as an object identifier)</li>
<li>GW = Gateway</li>
<li>GZRS = Geo-Zone-Redundant Storage (replication synchronously to 3 Availability Zones in a primary and 3 copies asynchronously in one Availability within a secondary Azure region accessed only after a failover)</li>
</ul>
<p><a name="H"></a></p>
<h3 id="h">H</h3>
<ul>
<li>H2M = Human to Machine (interface)</li>
<li>HA = High Availability</li>
<li>HADR = High Availability Disaster Recovery</li>
<li>HAL = Hardware Abstraction Layer</li>
<li>HAML = HTML Abstraction Markup Language (a template used in Ruby Rails views to simplify writing HTML)</li>
<li>HANA = High-performance ANalytic Application (SAP’s in-memory column-oriented relational DBMS)</li>
<li>HBD = Happy Birth Day</li>
<li>HBI = High Business Impact (flag for Azure to add encryption and limit diagnostics collection on sensitive data)</li>
<li>HNSW = Hierarchical Navigable Small World (graphs)</li>
<li>HCL = HashiCorp Configuration Language</li>
<li>HD = High Definition</li>
<li>HDFS = Hadoop Distributed File System</li>
<li>HEC = HTTP Event Collector (Splunk)</li>
<li>HCM = Human Capital Management (system for HR processes)</li>
<li>HCP = HashiCorp Cloud Provider</li>
<li>HCS = HashiCorp Consul Service (SaaS on Azure)</li>
<li>HE = Homomorphic Encryption (Privacy-Preserving technology)</li>
<li>HIDS = Host-Based Intrusion Detection System</li>
<li>HIPAA = Health Insurance Portability and Accountability Act</li>
<li>HiPPO = Highest Paid Person’s Opinion (deference between high and low status employees)</li>
<li>HLS = HTTP Live Streaming (Apple video streaming protocol)</li>
<li>HMI = Human-Machine Interface</li>
<li>HMM = Hidden Markov Model (AI used for speech recognition)</li>
<li>HNDL = Harvest Now, Decrypt Later (store encrypted data for decrypting later using post-quantum computers)</li>
<li>HPA = Horizontal Pod Autoscaler (Kubernetes)</li>
<li>HPC = High-Performance Compute</li>
<li>HQL = Hibernate Query Language (object-oriented ORM SQL with inheritance polymorphism used by Java)</li>
<li>HR = Human Resources</li>
<li>HRMS = Human Resource Management System</li>
<li>HRU = High-Risk User(s)</li>
<li>HSM = Hardware Security Module</li>
<li>HSTS = HTTP Strict Transport Security (web security policy that protects HTTPS websites against MITM attacks)</li>
<li>HTAP = Hybrid Transaction and Analytics Processing (Microsoft Azure Synapse Link capability)</li>
<li>HTML = HyperText Markup Language</li>
<li>HTTPS = HyperText Transfer Protocol Secure (the protocol that uses port 443)</li>
<li>HUMINT = Human Intelligence (from human sources such as interviews or spying)</li>
<li>HVA = High-Value Asset</li>
<li>HVNC = Hidden Virtual Network Computing (used by ShadowVault malware to provide unauthorized access to vulnerable machines)</li>
<li>HVP = Hybrid Vault Platform (AKeyless Encryption as a Service)</li>
<li>HVM = Hardware Virtual Machine</li>
<li>HVN = HashiCorp Virtual Network</li>
<li>HXM = Human Management (SAP SuccessFactors HRMS suite)</li>
</ul>
<p><a name="I"></a></p>
<h3 id="i">I</h3>
<ul>
<li>i18n = Internationalization (numeronym - 18 letters between i and n)</li>
<li>IA = Interoperability Agreement (between enterprises)</li>
<li>IaaS = Infrastructure as a Service</li>
<li>IaC = Infrastructure as Code</li>
<li>IAB = Internet Architecture Board (maintains an ethics-related statement concerning the use of the Internet. A technical advisory group of researchers and technical professionals responsible for Internet growth and management strategy and standards oversight.)</li>
<li>IAM = Identity and Access Management</li>
<li>IAP = Identity-Aware Proxy (Google Cloud)</li>
<li>IASAE = Information Assurance Security Architecture and Engineering</li>
<li>IAST = Interactive Application Security Testing</li>
<li>IBN = Internet-based Networking (for SDN)</li>
<li>IC = Integrated Circuit</li>
<li>ICFR = Internal Control over Financial Reporting</li>
<li>ICMP = Internet Control Message Protocol (used by the Linux ping command)</li>
<li>ICS = Industrial Control System (aka Operational Technologies)</li>
<li>ICT = Information and Communication Technology</li>
<li>ICT = Ideal Cycle Time (maximum achievable performance for OEE Fully Productive Time)</li>
<li>ICYMI = In Case You Missed It</li>
<li>ID = Identifier</li>
<li>IDaaS = Identity as a Service (for central management of users and groups)</li>
<li>IDE = Integrated Development Environment</li>
<li>IDN = Unicode Domain Names</li>
<li>IDOR = Insecure Direct Object Reference</li>
<li>IdP = Identity Provider (such as Okta)</li>
<li>IDP = Internal Developer Platform</li>
<li>IDS = Intrusion Detection System (A detective control used to detect attacks after they occur. A signature-based IDS (also called definition-based) uses a database of predefined traffic patterns. An anomaly-based IDS (also called behavior-based) starts with a performance baseline of normal behavior and compares network traffic against this baseline. An IDS can be either host-based (HIDS) or network-based (NIDS)</li>
<li>IDS = Influencer Dynamics Simulator (predicts how followers react to influencers)</li>
<li>IEC = International Electrotechnical Commission (counterpart to the US NIST)</li>
<li>IEM = Infrastructure Event Management (AWS service to ensure high traffic can be accommodated)</li>
<li>IETF = Internet Engineering Task Force</li>
<li>IYDMMA = If you don’t mind me asking (chat slang)</li>
<li>IFS = Internal Field Separator (to define character used to split strings in Bash shell scripts)</li>
<li>IGA = Identity Governance and Administration</li>
<li>IGPT = Insulated Gate Bipolar Transistor</li>
<li>IGW = Internet Gateway</li>
<li>IIFE = Immediately Invoked Function Expression (by Webpack)</li>
<li>IIoT = Industrial Internet of Things</li>
<li>IKE = Internet Key Exchange</li>
<li>ILB = Internal Load Balancer (Microsoft)</li>
<li>ILT = Instructor-Led Training</li>
<li>IM = Internet Messaging</li>
<li>IMINT = Imagery (Photography) Intelligence (from satellite or drone photos)</li>
<li>IMHO = In My Humble Opinion</li>
<li>IMO = In My Opinion</li>
<li>IMSI = International Mobile Subscriber Identity (15-digit ID unique to each mobile phone)</li>
<li>IOA = Indicator of Attack</li>
<li>IOC = Indicator of Compromise</li>
<li>IOPS = Input Output Per Second (AWS)</li>
<li>iOS = (Mobile operating system for Apple iPhone)</li>
<li>IOT = Internet of Things</li>
<li>IP = Internet Protocol</li>
<li>IPAM = IP Address Manager (AWS feature that manages CIDR ranges)</li>
<li>IPFS = InterPlanetary File System (a decentralized, peer-to-peer file storage protocol to store and access content without a central server)</li>
<li>IPC = Inter-Process Communication</li>
<li>IPE = Information Produced by the Entity</li>
<li>IPS = Intrusion Protection System (detect or prevent brute force & other attacks on security)</li>
<li>IPsec = Internet Protocol security</li>
<li>IPO = Initial Public Offering</li>
<li>IR = Integration Runtime (compute infrastructure used by Microsoft’s Azure Data Factory)</li>
<li>IR = Incident Response (Security)</li>
<li>IRDP = ICMP Router Discovery Protocol</li>
<li>IRL = In Real Life (internet slang)</li>
<li>IRM = Information Rights Management</li>
<li>IRM = Insider Risk management (Microsoft 365 compliance solution)</li>
<li>IRT = Incident Response Team</li>
<li>ISAC = Information Analysis Sharing Centres (for threat intelligence)</li>
<li>ISCP = Information System Contingency Plan</li>
<li>ISBN = Intelligent Spend and Business Network (SAP offering)</li>
<li>ISA = Instruction Set Architecture (defines interface between software and different implementations of a processor)</li>
<li>ISD = Internet Service Provider</li>
<li>ISMS = Information Security Management System (ISO 27001)</li>
<li>ISO = International Standards Organization</li>
<li>ISP = Internet Service Provider (company providing access to the internet)</li>
<li>ISQ = International System of Quantities</li>
<li>ISSO = Information System Security Officer (in RMF)</li>
<li>ISV = Independent Software Vendor</li>
<li>IT = Information Technologies</li>
<li>ITAR = International Traffic in Arms Regulations (US)</li>
<li>ITIL = Information Technology Infrastructure Library</li>
<li>ITSM = IT Service Management (implemented of Service Now)</li>
<li>ITU = International Telecommunication Union (defined X.509 certificate format)</li>
</ul>
<p><a name="J"></a></p>
<h3 id="j">J</h3>
<ul>
<li>J2EE = Java Enterprise Edition</li>
<li>JIT = Just-In-Time (access for Zero Trust)</li>
<li>JEA = Just-Enough-Access (for Zero Trust)</li>
<li>JND = Just Noticeable Difference (The minimum amount of change or difference required for a change to be perceptible to the human eye)</li>
<li>JOSE = Javascript Object Signing and Encryption (standard)</li>
<li>JSON = JavaScript Notation (data format)</li>
<li>JWT = JSON Web Token (Internet standard for creating data with optional signature and/or optional encryption whose payload holds JSON that asserts some number of claims)</li>
</ul>
<p><a name="K"></a></p>
<h3 id="k">K</h3>
<ul>
<li>k8s = Kubernetes (numeronym of 8 letters between k and s)</li>
<li>kanban = Japanese word for visual signal (adopted for managing software workflow)</li>
<li>KCL = Kinesis Client Library (AWS)</li>
<li>KDC = Key Distribution Center</li>
<li>KEDA = Kubernetes-based Event Driven Autoscaler</li>
<li>KEK = Key Encryption Key (key to encrypt the DEK)</li>
<li>KMIP = Key Management Interoperability Protocol</li>
<li>KMS = Key Management Service (AWS)</li>
<li>KNOB = Key Negotiation of Bluetooth (MITM attack on paired Bluetooth devices’ security mechanisms)</li>
<li>KOL = Key Opinion Leader</li>
<li>KPI = Key Performance Indicator</li>
<li>KPL = Kinesis Python Library (AWS)</li>
<li>KPU = Kinesis Processing Units (AWS streaming memory and compute)</li>
<li>KQL = Kusto Query Language (to access Microsoft Azure Data Explorer)</li>
<li>KTLO = Keep/Keeping The Lights On (minimal necessary effort and income)</li>
<li>KTS = Kubernetes Threat Detection (Google service)</li>
<li>KRI = Key Recovery Information</li>
<li>KSAs = Knowledge, Skills, and Abilities (Work Roles)</li>
<li>KV = Key-Value (data storage format)</li>
<li>KYC = Know Your Customer (requiring identity verification)</li>
</ul>
<p><a name="L"></a></p>
<h3 id="l">L</h3>
<ul>
<li>l18n = Localization (numeronym of 18 letters between l and n)</li>
<li>LAM = Large Action Models (multihop & multimodal data type for agentic/action on LLMs)</li>
<li>LAMP = Linux OS + Apache web server + MySQL DB + PHP/Perl/Python (open-source web development technology stack)</li>
<li>LAN = Local Area Network</li>
<li>LCEL = LangChain Expression Language (chain series of AI models and parsers)</li>
<li>LCM = Large Concepts Model (Meta’s approach for reasoning)</li>
<li>LDAP = Lightweight Directory Access Protocol (used by Linux to manage user and group access)</li>
<li>LED = Light-Emitting Diode</li>
<li>LF-TBAC = Lake Formation tag-based access control (AWS)</li>
<li>LGPD = Lei Geral de Proteção de Dados Pessoais (privacy/data protection law in Brazil)</li>
<li>LGTM = Looks Good To Me</li>
<li>LGTM = Loki + Grafana + Tempo + Mimir (Grafana’s integrated stack for logs, metrics, and traces to be collected and visualized)</li>
<li>LI = Lead Implementer</li>
<li>LIFO = Last In - Last Out</li>
<li>LIMS = Laboratory Information Management System</li>
<li>LINDDUN = framework to ensure privacy</li>
<li>LLC = Limited Liability Company</li>
<li>LLM = Large Language Model (such as GPT-x for Generative AI)</li>
<li>LMM = Large Multimodal Model (Meta’s approach for reasoning)</li>
<li>LLMNR = Link-Local Multicast Name Resolution (Microsoft protocol for name resolution)</li>
<li>LMS = Learning Management System</li>
<li>LOL = Laughing Out Loud (internet slang)</li>
<li>LoRA = Low-Rank Adaptation (reducing the number of trainable parameters and enabling efficient adaptations by decomposing weight matrices into low-rank matrices)</li>
<li>LotL = Living off the Land (type of attack)</li>
<li>LPU = Language Processing Unit (<a target="_blank" href="https://www.youtube.com/watch?v=8wSH4XukcH8">AI Agent OS component</a>)</li>
<li>LRM = Large Reasoning Models</li>
<li>LRS = Locally-Redundant Storage (within same Azure Availability Zone)</li>
<li>LSD = Least Significant Digit</li>
<li>LSI = Local Secondary Index (AWS DynamoDB)</li>
<li>LTM = Last Twelve Months</li>
<li>LUKS = Linux Unified Key Setup (root + boot + swap partition encryption)</li>
<li>LUN = Logical Unit Number (within a physical storage device volume manager)</li>
<li>LVM = Logical Volume Management</li>
<li>LVM = Large Vision Model (such as Stable Difussion for Generative AI)</li>
<li>LWE = Learning with errors (cryptographic algorithm)</li>
</ul>
<p><a name="M"></a></p>
<h3 id="m">M</h3>
<ul>
<li>m8g = Monitoring (numeronym - 8 letters between m and g)</li>
<li>M&A = Mergers and Acquisitions (business)</li>
<li>MAC = Media Access Control (address of NIC card)</li>
<li>MAC = Message Authentication Code (a tag appended to a message to verify its authenticity)</li>
<li>MAE = Mean Absolute Error (to calculate the accuracy of a regression model)</li>
<li>MAGA = Make America Racist Again</li>
<li>MAP = Minimum Acceptable Product</li>
<li>MASINT = Measurement and Signatures Intelligence (of weapons capabilities and industrial activities)</li>
<li>MASTG = Mobile Application Security Testing Guide (defined by OWASP)</li>
<li>MASVS = Mobile Application Security Verification Standard (defined by OWASP)</li>
<li>MBR = Master Boot Record</li>
<li>MBCFET = Multi-Bridge Channel Field Effect Transister (Samsung)</li>
<li>MCSB = Microsoft Cybersecurity Security Benchmark (best-practice framework using Microsoft Defender for Cloud. Successor of Azure Security Benchmark v3)</li>
<li>MCR = Microsoft Container Registry</li>
<li>MCRA = Microsoft Cybersecurity Reference Architectures</li>
<li>MCU = Microprocessor Unit (integrated circuit that contains one or more CPUs and supporting electronics for general-purpose computing)</li>
<li>MDFC = Microsoft Defender for Cloud</li>
<li>MDP = Markov Decision Process</li>
<li>MDT = Microsoft Deployment Toolkit (to install Windows 11 from file shares)</li>
<li>MDTI = Microsoft Defender Threat Intelligence</li>
<li>MDM = Master Data Management (for a single source of truth about critical corporate data)</li>
<li>MDM = Mobile Device Management (for security)</li>
<li>MDW = Modern Data Warehouse (Microsoft)</li>
<li>MDR = Managed Detection and Response (for security)</li>
<li>MDX = Multidimensional Expressions (multi-axis formula language for Microsoft SSAS to retrieve OLAP cubes)</li>
<li>MEF = Mission Essential Functions</li>
<li>MEI = Merit, Excellence, and Intelligence (anti DEI)</li>
<li>MELT = Metrics + Errors + Traces + Logs (for Observability)</li>
<li>MES = Manufacturing Execution System (track material movement through the shop floor)</li>
<li>MFA = Multi-Factor Authentication (security)</li>
<li>MFS = Mutable File System (to read and write files on web3 IPFS)</li>
<li>MGT = Microsoft Graph Toolkit (to read the Outlook calendars and log of actions by each Microsoft user)</li>
<li>MHA = Multi-Head Attention (traditional mechanism to MQA in transformers where the model jointly attend to information from different representation subspaces)</li>
<li>MIG = Managed Instance Group (for autoscaling within Google Cloud)</li>
<li>MIP = Microsoft Information Protection (sensitivity labels)</li>
<li>MIT = Most Important Task</li>
<li>MitC = Man-in-the-Cloud (performed by abusing cloud file synchronization services such as Google Drive or DropBox for Data compromise, command and control (C&C), data exfiltration, and remote access)</li>
<li>MitB = Man-in-the-Browser (attack vector such as Port stealing that exploits the binding between a port and a media access control (MAC) address)</li>
<li>MitM = Man-in-the-Middle (an attack in the form of active interception allowing an attacker to intercept traffic and insert malicious code sent to other clients. Kerberos provides mutual authentication and helps prevent MITM attacks)</li>
<li>MISP = Malware Information Sharing Platform (open-source threat intelligence platform)</li>
<li>ML = Machine Learning</li>
<li>M-LAG = Multi-chassis Link AGgregation (synchronization protocols over a peer control link to enable multiple switches to aggregate links, for redundancy and load balancing, improving network performance and reliability<a target="_blank" href="https://docs.nvidia.com/networking/display/onyxv3104206/mlag">*</a>)</li>
<li>MLDR = Machine Learning Detection and Response</li>
<li>MLM = Masked Language Model (such as BERT for Natural Language Processing)</li>
<li>MLLP = Minimal Lower Layer Protocol (the leading and trailing delimiter HL7v2 healthcare data is transmitted using TCP/IP within VPNs)</li>
<li>MMU = Memory Management Unit (to manage VM memory)</li>
<li>MNC = Multi-National Corporation</li>
<li>MNO = Mobile Network Operator (ATT, Verizon, T-Mobile)</li>
<li>MOD = Manager on Duty (incident manager - security and hospitality industry)</li>
<li>MoE = Mixture of Experts (in AI)</li>
<li>MOSFET = Metal Oxide Field Effect Transitor</li>
<li>MPC = Model Predictive Control</li>
<li>MPP = Massively Parallel Processing (on databases)</li>
<li>MQA = Multi-Query Attention (a transformer encoding, used by PaLM and Falcon, that uses less memory and bandwidth than MHA, without sacrificing accuracy, by shareing Keys and Values across all heads but keeps separate transformations for each Query)</li>
<li>MRO = Method Resolution Order (in Python multiple inheritance hierarchy using C3 linearization algorithm which uses the method from the first parent class in the inheritance list)</li>
<li>MS = Microsoft</li>
<li>MSA = Master Service Agreement</li>
<li>MSK = Managed Streaming for Kafka (AWS)</li>
<li>MSI = Managed Service Identity</li>
<li>MTD = Month-To-Date</li>
<li>mTLS = Mutual TLS</li>
<li>MOR = Minimum Operating Requirements (describes the minimum environmental and connectivity requirements in order to operate computer equipment)</li>
<li>MOSFET = Metal Oxide Semiconductor Field Effect Transitor</li>
<li>MSI = Microsoft Software Installer (file extension for Microsoft Windows installer files)</li>
<li>MTD = Maximum Tolerable Downtime</li>
<li>MQTT = MQ Telemetry Transport</li>
<li>MSAL = Microsoft Authentication Libraries</li>
<li>MSD = Most Significant Digit</li>
<li>MSE = Mean Squared Error (to calculate the accuracy of a regression model)</li>
<li>MSK = Managed Streaming for Kafka (AWS using Apache)</li>
<li>MSP = Managed Service Provider</li>
<li>MSSP = Managed Security Service Provider (A provider of outsourced SOC services)</li>
<li>MTA = Mail Transfer Agent</li>
<li>MTBF = Mean Time Between Failures</li>
<li>MTTA = Mean Time To Acknowledge</li>
<li>MTTD = Mean Time To Detect (anomaly)</li>
<li>MTTI = Mean Total Time of Impact (to operations)</li>
<li>MTTR = Mean Time To Restore/Remediate</li>
<li>MTU = Maximum Transmission Unit (networking)</li>
<li>MVP = Minimum Viable Product</li>
<li>MVP = Most Valuable Professional (Microsoft)</li>
<li>MY = Multi-Year</li>
<li>MVNO = Mobile Virtual Network Operator</li>
<li>MYOB = Mind Your Own Business (internet slang)</li>
</ul>
<p><a name="N"></a></p>
<h3 id="n">N</h3>
<ul>
<li>NA = Not Applicable</li>
<li>NA = North America (United States)</li>
<li>NAC = Network Access Control</li>
<li>NAC = Network Admission Control/Controller (Cisco)</li>
<li>NAD = Network Access Devices</li>
<li>NAS = Network Attach Storage (device)</li>
<li>NAT = Network Address Translation (allows devices on a private network to communicate with a public network through a networking gateway)</li>
<li>NB = No Problem</li>
<li>NDA = Non-Disclosure Agreement</li>
<li>NDAA = National Defense Authorization Act of 2020 and 2021</li>
<li>NDE = Net Dollar Expansion</li>
<li>NER = Named Entity Recognition (identifying and extracting names of persons, organizations, locations, dates from text and media)</li>
<li>NeRF = Neural Radiance Fields (for generating 3D content from 2D images)</li>
<li>NHI = <a target="_blank" href="https://cloudsecurityalliance.org/search?s=NHI#">Non-Human Identities (security)</a></li>
<li>NDI = National Defense Information (classified secrets)</li>
<li>NDRR = Net Dollar Retention Rate</li>
<li>NER = Named Entity Recognition (AI)</li>
<li>NFR = Non-Functional Requirements</li>
<li>NFS = Network File System</li>
<li>NFT = Non-fungible Tokens (currently defined as investments rather than consumer goods)</li>
<li>NFV = Network Function Virtualization</li>
<li>NGC = NVIDIA GPU Cloud</li>
<li>NGFW = Next-Generation firewall (Originally from Palo Alto - it examines application data to filter traffic at the highest application layer of networks)</li>
<li>NIA = Network Interface (HashiCorp product feature)</li>
<li>NIACAP = National Information Assurance Certification and Accreditation Process</li>
<li>NIAP = National Information Assurance Partnership (Common Criteria)</li>
<li>NIC = Network Interface Card</li>
<li>NIM = NVIDIA Inference Microservices</li>
<li>NISQ = Noisy Intermediate-Scale Quantum (device)</li>
<li>NIST = National Institute of Standards and Technology (US)</li>
<li>NLB = Network Load Balancer (Amazon)</li>
<li>NLP = Natural Language Processing (interaction between computers and human language such as Alexa and Google Assistant)</li>
<li>NLU = Natural Language Understanding (Alexa & Generative AI)</li>
<li>NOC = Network Operations Center</li>
<li>NoSQL = (Nonrelational database system such as key-value pair document storage in DynamoDB)</li>
<li>NPD = Non-Production (vs PRD for production in keeping with a consistent number of letters)</li>
<li>NPS = Net Promoter Score (rating by customers willing to promote to others)</li>
<li>NPU = Neural Processing Unit (specialized for processing AI neural networks in parallel, especially on edge/hand-held devices and on Microft’s AI laptops)</li>
<li>NSA = National Security Agency (conducts SIGINT)</li>
<li>NSFET = Nanosheet Field-Effect Transistor</li>
<li>NSFW = Not Safe For Work (slang one should avoid repeating)</li>
<li>NSG = Network Security Group (Azure)</li>
<li>NSP = Next Sentence Prediction (GenAI for BERT Natural Language Processing)</li>
<li>NTA = Network Traffic Anomaly</li>
<li>NTM = Next Twelve Months</li>
<li>NTP = Network Time Protocol</li>
<li>NUI = Natural User Interface</li>
<li>NVIDIA = (the corporation which produces GPUs for AI and graphics)</li>
<li>NVMe = Non-Volatile Memory Express (protocol to connect SSDs to the CPU via high-speed PCIe bus)</li>
</ul>
<p><a name="O"></a></p>
<h3 id="o">O</h3>
<ul>
<li>o11y = Observability (numeronym - 11 letters between o and y)</li>
<li>O3DE = Open 3D Engine (open-source 3D game development engine from Amazon. Successor to Amazon Lumberyard)</li>
<li>OAC = Origin Access Control (for AWS CloudFront)</li>
<li>OAI = OpenAI (Microsoft’s partner in AI ChatGPT)</li>
<li>OAI = Origin Access Identity (virtual identity used to require users to access content via AWS CloudFront URl instead of S3 URL)</li>
<li>OASIS = Organization for the Advancement of Structured Information Standards (defined CSAF and CVRF)</li>
<li>OCI = Container Open Initiative (to replace Docker Compose and Docker containers)</li>
<li>OCSP = Online Certificate Status Protocol</li>
<li>OCM = Organizational Change Management</li>
<li>ODNI = Office of the Director of National Intelligence</li>
<li>OECD = Organization for Economic Cooperation and Development (published trans-border privacy guidelines in 1980)</li>
<li>OEE = Overall Equipment Effectiveness (the percentage metric of making only good parts as fast as possible (Good Count x Ideal Cycle Time) / Planned Production Time. OEE OEE does not provide information about loss-related factors in the preferred metric consisting of Availability, Performance, and Quality)</li>
<li>OEL = Oracle Enterprise Linux</li>
<li>OEM = Original Equipment Manufacturer</li>
<li>OEP = Occupant Emergency Plan</li>
<li>OFDM = Orthogonal Frequency-Division Multiplexing (method of digital modulation of data in which a signal, at a chosen frequency, is split into multiple carrier frequencies at right angles to each other)</li>
<li>OG = Original Gangster (slang to praise someone as exceptional, authentic, or old-school)</li>
<li>OIDC = OpenID Connect</li>
<li>OKR = Objectives and Key Results</li>
<li>OODA = Observe Orient Decide Act (decision making sequence used by US Air Force for agility)</li>
<li>OOM = Orders Of Magnatude (where 10x = 1 OOM)</li>
<li>OLA = Observe - Orient - Decide - Act (acrostic for the rapid decision-making strategy used by US fighter pilots during aerial combat)</li>
<li>OLAP = OnLine Analytical Processing (A business intelligence approach that allows users to analyze large amounts of data from different points of view)</li>
<li>OLTP = OnLine Transaction Processing</li>
<li>OMS = Operations Management Suite (Microsoft product for datacenter administration)</li>
<li>OOM = Out of Memory</li>
<li>OOP = Object Oriented Programming</li>
<li>OPA = Open Policy Agent (Policy as Code agent from Styra used in Kubernetes Admission Controller and Terraform)</li>
<li>OPEX = Operating Expenditures (impacts Profit and Loss statement for current periods)</li>
<li>ORC = Optimized Row Columnar (data format used within Apache Hadoop databases)</li>
<li>ORM = Object-Relational Mapping (to simplify interaction between OOP CRUD apps and SQL databases)</li>
<li>OOS = Out of Stock (when a retail store is out of inventory to sell of an item)</li>
<li>OOV = Out-Of-Vocabulary (words or terms that a LLM has not encountered during its training phase)</li>
<li>OS = Operating System</li>
<li>OSCAL = Open Security Controls Assessment Language (NIST-defined format for communicating CVEs)</li>
<li>OSCP = Online Certificate Status Protocol (used to obtain the revocation status of X.509 digital certificates)</li>
<li>OSI = Open Systems Interconnection</li>
<li>OSINT = Open Source Intelligence (from social media)</li>
<li>OSS = Open Source Software</li>
<li>OT = Operational Technology</li>
<li>OTA = Over The Air</li>
<li>OTCSA = Operational Technology Cyber Security Alliance</li>
<li>OTOH = On the Other Hand (chat slang)</li>
<li>OTP = One-Time Password (for security)</li>
<li>OTR = Off The Record (privacy)</li>
<li>OVAL = Open Vulnerability and Assessment Language</li>
<li>OU = Organizational Unit</li>
<li>
<table>
<tbody>
<tr>
<td>OUI = Organizational Unique Identifier</td>
<td>The first three bytes of the six-byte field of the MAC address the IEEE identifies as vendor of the network adapter.</td>
</tr>
</tbody>
</table>
</li>
<li>OWA = Outlook Web Application (Microsoft Exchange web interface)</li>
<li>OWASP = Open Web Application Security Project</li>
</ul>
<p><a name="P"></a></p>
<h3 id="p">P</h3>
<ul>
<li>P2P = Person to Person or Point to Point</li>
<li>PaC = Policy as Code</li>
<li>PaaS = Platform as a Service</li>
<li>PaLM = Pathways Language Model (built based on Google’s Pathways system as a dense decoder-only transformer LLM with 540 billion parameters for a wide range of AI tasks including reasoning, natural language understanding, text generation, multi-step logical inference reasoning, arithmetic, code generation, and translation)</li>
<li>PAM = Privileged Access Management</li>
<li>PAN = Primary Account Number (PCI DSS)</li>
<li>PAP = Permissible Actions Protocol (defines actions to avoid attackers detecting investigation - RED for non-detectable actions, AMBER for passive, GREEN for active, WHITE for no restrictions)</li>
<li>PASTA = Process for Attack Simulation and Threat Analysis</li>
<li>PAT = Personal Access Token (to authenticate GitHub static access)</li>
<li>PAT = Port Address Translation (networking)</li>
<li>PAW = Privileged Access Workstation (Microsoft)</li>
<li>PAYG = Pay-As-You-Go (such as for cloud services billing)</li>
<li>PBC = Printed Control Board</li>
<li>PBC = Provided By Client (SOC term)</li>
<li>PBL = Project-Based Learning</li>
<li>PC = Personal Computer (refers to a Microsoft Windows machine)</li>
<li>PCA = Principal Component Analysis (<a target="_blank" href="https://learning.oreilly.com/library/view/hands-on-machine-learning/9781098125967/ch08.html#id129">dimensionality reduction algorithm that identifies the hyperplane variance closest to the data to project data onto it</a>)</li>
<li>PCI = Peripheral Components Interconnect</li>
<li>PCI DSS = Payment Card Industry Data Security Standard (private regulation by credit card processors to prevent identity theft)</li>
<li>PCIe = Peripheral Component Interconnect Express (bus to connect solid-state drives directly to the CPU)</li>
<li>PDCA = Plan Do Check Act (created by Deming to iterate improvement, adopted for Agile development)</li>
<li>PDD = Project Delivery Document (containing IS project scope prerequisites scheduling info etc.)</li>
<li>PDF = Portable Document Format (the format created by Adobe to create a universally accessible file containing graphics and text)</li>
<li>PDW = Parallel Data Warehouse (Microsoft SQL 2012 Analytics Platform System that became Azure SQL Data Warehouse)</li>
<li>PE = Pre-installed Environment (a bootable image of Microsoft Windows used to automate install)</li>
<li>PEFT = Parameter-Efficient Fine-Tuning (techniques such as LoRA to update a small subset of an AI ML model’s parameters)</li>
<li>PEM = Privacy Enhanced Mail (AWS private key certificate encoding file type)</li>
<li>PEP = Python Enhancement Proposal</li>
<li>PEP = Policy Enforcement Point (filters requests and makes eXtensible Access Control Markup Language (XACML) to a Policy Decision Point (PDP)</li>
<li>PETM = Parameter-Efficient Tuning Methods (in Generative AI)</li>
<li>PF = Privacy Framework</li>
<li>PFAS = Per- and polyfluoroalkyl Substances (<a target="_blank" href="https://en.wikipedia.org/wiki/Per-_and_polyfluoroalkyl_substances">carcinogenic</a> forever chemicals)</li>
<li>PFS = Perfect Forward Secrecy</li>
<li>PHD = Personal Health Dashboard</li>
<li>PHE = Partially Homomorphic Encryption</li>
<li>PHI = Protected Health Information</li>
<li>PHP = (recursive acronym for PHP: Hypertext Preprocessor. A web scripting language used in WordPress)</li>
<li>PHS = Password Hash Synchronization (Microsoft Azure AD Connect)</li>
<li>PIA = Privacy Impact Assessment</li>
<li>PID = Process Identifier</li>
<li>PID = Proportional Integral Derivative (keeps a variable within a set of parameters/conditions, such as auto cruise control)</li>
<li>PII = Personally Identifiable Information</li>
<li>PIM = Privileged Identity Management</li>
<li>PIN = Personal Identification Number (a secret consisting of a small number)</li>
<li>PIO = Programmable Input Output (An Arduino feature to create hardware interfaces using GP IO pins)</li>
<li>PIOPS = Provisioned Input Output Operations Per Second</li>
<li>PIR = Passive Infra-Red (electronic sensor)</li>
<li>PIV = Personal Identity Verification (uses tokens like YubiKeys)</li>
<li>PKE = Public Key Encryption</li>
<li>PKI = Public Key Infrastructure (manages cryptographic certificates)</li>
<li>PM = Product Management/Manager</li>
<li>PLA = Polyactic Acid (filament for 3D printing. Made from organic materials. Has low melting point and absorbs moisture.)</li>
<li>PLC = Programmable Logic Controller</li>
<li>P&L = Profit and Loss</li>
<li>PMM = Product Marketing Manager (organizational role)</li>
<li>PMO = Program Management Office</li>
<li>PMS = Pantone Matching System (to select colors)</li>
<li>PNAC = Port-Based Network Attack</li>
<li>POA&M = Plan of Action and Milestones</li>
<li>PoC = Proof of Concept</li>
<li>POGIL = Process Oriented Guided Inquiry Learning</li>
<li>POLP = Principle of Least Privilege</li>
<li>POM = Production Operations Management</li>
<li>POR = Process of Record</li>
<li>PPE = Personal Protective Equipment</li>
<li>PPE = Poisoned Pipeline Execution (of CI/CD pipeline configuration files such as Jenkinsfile, .gitlab-ci.yml, makefile, etc.)</li>
<li>PPE = Pre-Production Enviornment</li>
<li>PPG = Point-to-Point Tunneling Protocol (networking)</li>
<li>PPG = Proximity Placement Group (Azure VMs)</li>
<li>PPK = Putty Private Key (AWS private key certificate encoding file type for Windows PuTTY SSH client)</li>
<li>PPO = Proximal Policy Optimization (A reinforcement learning algorithm that improves training stability and reliability)</li>
<li>PPTP = Point-to-Point Tunneling Protocol</li>
<li>PQC = Post-Quantum Cryptography (encryption resistant to crackers on fast quantum computers)</li>
<li>PR = Pull Request (GitHub feature for suggesting code changes and integrating them into the main code base)</li>
<li>PRD = Production (vs NPD for non-production in keeping with a consistent number of letters)</li>
<li>PS = Professional Services</li>
<li>PSD = Power Spectral Density (<a target="_blank" href="https://blog.endaq.com/why-the-power-spectral-density-psd-is-the-gold-standard-of-vibration-analysis">for vibration spectrum analysis</a>)</li>
<li>PSE = Professional Services Engineer</li>
<li>PSIRT = Product Security Incident Response Team (protects customers of products)</li>
<li>PSK = Pre-Shared Key</li>
<li>PTA = Pass-Through Authentication (agents in Microsoft Azure AD Connect)</li>
<li>PTAL = Please Take A Look</li>
<li>PTES = Penetration Testing Execution Standard</li>
<li>PTT = Platform Trust Technology (on Intel chips for Windows PCs)</li>
<li>PTZ = Pan-Tilt-Zoom (Cameras)</li>
<li>PUA = Potentially Unwanted Application</li>
<li>PV = Persistent Volume (Kubernetes)</li>
<li>PV = Paravirtual Virtualization (type of Linux AMI boot loader)</li>
<li>PVM = Python Virtual Machine</li>
<li>PVC = Persistent Volume Claim (Kubernetes)</li>
<li>PWA = Progressive Web Application (application intended to work on any platform with a standards-compliant browser, including desktop and mobile devices)</li>
<li>PWC = Price Waterhouse Coopers (International Global Integrator Consulting firm)</li>
<li>PWM = Pulse Widthe Modulation</li>
</ul>
<p><a name="Q"></a></p>
<h3 id="q">Q</h3>
<ul>
<li>QA = Quality Assurance</li>
<li>QBR = Quarterly Business Review</li>
<li>QEC = Quantum Error Correction (IT)</li>
<li>QFT = Quantum Field Theory (combines quantum mechanics, special relativity, and classical field theory to describe the mechanics of higher dimensional math)</li>
<li>QIR = Quantum Intermediate Representation (Microsoft)</li>
<li>QKD = Quantum Key Distribution (secures communication using a cryptographic protocol involving quantum computing with lasers)</li>
<li>QLDB = Quantum Ledger Database (AWS)</li>
<li>QML = Quantum Ledger Database (Microsoft)</li>
<li>QoQ = Quarter on Quarter</li>
<li>QoS = Quality of Service</li>
<li>QPU = Query Processing Unit (to bill CPU capacity in Microsoft Azure Analytics Services)</li>
<li>QPU = Quantum Processing Unit (Quantum IT)</li>
</ul>
<p><a name="R"></a></p>
<h3 id="r">R</h3>
<ul>
<li>RACI = Responsible + Accountable + Consulted + Informed (Responsibility Assignment Matrix)</li>
<li>RAD = Rapid Application Development (methodology)</li>
<li>RAG = Retrieval Augmented Generation (extension such as PostgreSQL pgvector to add proprietary knowledge to foundation models without retraining)</li>
<li>RAID = Redundant Array of Independent Disks</li>
<li>RAM = Random Access Memory</li>
<li>RAM = Resource Access Manager (AWS)</li>
<li>RAN = Radio Access Network</li>
<li>RASP = Runtime Application Self-Protection</li>
<li>RAT = Remote Access Trojan (malware)</li>
<li>RBAC = Role-Based Access Control</li>
<li>RBG = Random Bit Generator</li>
<li>RBVM = Risk-Based Vulnerability Management</li>
<li>RCA = Root Cause Analysis</li>
<li>RCS = Rich Communication Services (messaging, voice, video)</li>
<li>RCE = Remote Code Execution</li>
<li>RCE = Root Code Execution</li>
<li>RDD = Resilient Distributed Dataset (native data structure underlying Apache Spark Dataframes used by Pandas)</li>
<li>RDF = Resource Description Language (W3C standard for graph databases)</li>
<li>RDL = Report Definition Language (XML representation of a paginated report definition from Microsoft SQL Server Reporting Services)</li>
<li>RDMA = Remote Direct Memory Access (to share liquid-cooled memory in parallel connected by low-latency Ethernet fabric by SMCI)</li>
<li>RDP = Remote Desktop Protocol (Microsoft technology for users to access a Windows computer remotely)</li>
<li>RDS = Relational Database Service (AWS cloud SQL service to host databases)</li>
<li>REST = Representational State Transfer</li>
<li>REEs = Rare Earths Elements (mining and processing, mostly in China, for minerals needed in modern electronics)</li>
<li>RFI = Request for Information</li>
<li>RFP = Request for Proposal</li>
<li>RFQ = Request for Quote</li>
<li>RGB = Red Green Blue (colors)</li>
<li>RGDD = Reliable Group Data Delivery (SDN)</li>
<li>RRA = Rapid Risk Assessment (NIST)</li>
<li>RIP = Rest In Peace</li>
<li>RISC = Reduced Instruction Set Computing</li>
<li>RLAIF = Reinforcement Learning with AI/LLM Feedback (Anthropic’s Constitutional AI)</li>
<li>RLHF = Reinforcement Learning with Human Feedback (to fine-tune ML rates after initial training)</li>
<li>RLS = Row-Level Security (in SQL database tables)</li>
<li>ReLU = Rectified Linear Unit (in Artificial Intelligence)</li>
<li>RMF = Risk Management Framework (for controls defined in NIST SP 800-53)</li>
<li>RMM = Remote Monitoring and Management (utilities)</li>
<li>RMSE = Root Mean Squared Error (to calculate the accuracy of a regression model)</li>
<li>RNG = Random Number Generator</li>
<li>RNN = Recurrent Neural Network (in Deep Learning)</li>
<li>ROA = Return on Assets</li>
<li>ROC = Report on Compliance (issued by DCS PSI auditors)</li>
<li>ROE = Return on Equity</li>
<li>RoHS = Restriction of Hazardous Substances Directive (EU Feb 2003)</li>
<li>ROI = Return on Investment</li>
<li>ROIC = Return on Invested Capital</li>
<li>ROM = Read-only Memory</li>
<li>ROS = Return on Sales</li>
<li>ROSA = Red Hat OpenShift Service on AWS (containers)</li>
<li>RoT = Root of Trust</li>
<li>RPA = Robotic Process Automation</li>
<li>RPC = Remote Procedure Call</li>
<li>RPO = Recovery Point Objective</li>
<li>RPS = Requests Per Second</li>
<li>RRA = Rapid Risk Assessment</li>
<li>RRS = Reduced Redundancy Storage (AWS)</li>
<li>RSA = Resident System Engineer (role within HashiCorp)</li>
<li>RSA = Rivest + Shamir + Adleman (an encryption algorithm and company name based on the initials of its inventors)</li>
<li>RSS = Real Simple Syndication (web feed format)</li>
<li>RSVP = répondez s’il vous plaît (French for Respond Please - an initialism where each letter is pronounced)</li>
<li>RTC = Real Time Clock</li>
<li>RTFM = Read The Fine Manual (slang)</li>
<li>RTO = Recovery Time Objective</li>
<li>RTOS = Real-Time Operating System (for IoT/Edge Computing)</li>
<li>RTSP = Real-Time Streaming Protocol (AWS Kinesis)</li>
<li>RUM = Resources Under Management (HashiCorp Terraform at scale)</li>
<li>RUP = Rational Unified Process (phased software development methodology from 2003 using object UML)</li>
<li>RaMP = Rapid Modernization Plan (Microsoft Zero Trust)</li>
</ul>
<p><a name="S"></a></p>
<h3 id="s">S</h3>
<ul>
<li>S3 = Simple Storage Service (AWS file object service)</li>
<li>SaaS = Software as a Service</li>
<li>SAIF = Secure AI Framework (Google)</li>
<li>SAM = Serverless Application Model (Amazon CLI)</li>
<li>SAML = Security Assertion Markup Language (XML-based standard for authentication and authorization)</li>
<li>SAN = Storage Area Network</li>
<li>SAP = Systems Applications and Product (large German ERP software company)</li>
<li>SAP = System Assessment Plan</li>
<li>SAQ = Self-Assessment Questionaire (of DSS PCI)</li>
<li>SAR = Security Assessment Report</li>
<li>SARIF = Static Analysis Results Interchange Format (standard by OASIS for sharing static vulnerability analysis results)</li>
<li>SARs = System Assessment Results</li>
<li>SAS = Shared Access Signature (secure token URI to Azure accounts and storage resources)</li>
<li>SASE = Secure Access Service Edge (Microsoft & Trust Broker SaaS by Palo Alto Prisma zScaler Cato Cloudfare)</li>
<li>SAST = Static Application Security Testing</li>
<li>SBC = Single-Board Computer (like the ZimaBoard 832)</li>
<li>SBI = Service-Based Interface</li>
<li>SBOM = Software Bill of Materials</li>
<li>SCA = Software Composition Analysis (identify vulnerable components in containers)</li>
<li>SCADA = Supervisory Control And Data Acquisition</li>
<li>SCAP = Security Content Automation Protocol</li>
<li>SCC = Security Command Center (Google’s SOC service)</li>
<li>SCEP = Simple Certificate Enrollment Protocol</li>
<li>SCF = Secure Controls Framework (SEC)</li>
<li>SCIM = System for Cross-Domain Identity Management (IT security)</li>
<li>SCM = Source Control Manager (such as GitHub)</li>
<li>SCP = Service Control Policy (in AWS to govern the use of other IAM policies)</li>
<li>SCRM = Cyber Supply Chain Risk Management (defined by NIST)</li>
<li>SCSS = Sidecar Container Security Stack</li>
<li>SCT = Schema Conversion Tool (AWS)</li>
<li>SDD = Spec Driven Development (Vibe coding Kiro and Spec Kit platform from GitHub)</li>
<li>SDE = Standardized Development Environment</li>
<li>SDK = Software Development Kit</li>
<li>SDL = Schema Definition Language (in GraphQL)</li>
<li>SDN = Software-Defined Networking (used by AWS - an advancement to BGP used on public networks)</li>
<li>SDLC = System Development Life Cycle</li>
<li>SDMN = Software-defined Mobile Network (for SDN)</li>
<li>SDR = Single Data Rate (memory)</li>
<li>SDRAM = Synchronous Dynamic Random Access Memory</li>
<li>SDP = Software Defined Perimeter</li>
<li>SDP = Software Delivery Platform</li>
<li>SEB = Secure Enterprise Browsers</li>
<li>SEC = Security and Exchange Commission (regulates US financial markets)</li>
<li>SERP = Search Engine Results Page</li>
<li>SES = Simple Email Service (AWS)</li>
<li>SEU = Single Event Upset (a soft error caused by a random alpha particle flipping a bit)</li>
<li>SF = Service Fabric (Azure)</li>
<li>SFC = Sequential Function Charts</li>
<li>SFT = Supervised Fine Tuning (a pre-trained model on labeled data for a specific task)</li>
<li>SG = Security Group</li>
<li>SGD = Stochastic Gradient Descent (AI technique to iteratively optimize)</li>
<li>SHA = Secure Hash Algorithm (a method to identify whether a file has been altered - also used by GitHub to create an index)</li>
<li>SHD = Service Health Dashboard (AWS)</li>
<li>SI = Systems Integrator</li>
<li>SIA = Storage Infrequent Access (AWS)</li>
<li>SIEM = Security Information and Event Management</li>
<li>SIG = Special Interest Group</li>
<li>SIGINT = Signals Intelligence (of electronic transmissions)</li>
<li>SIP = Session Initiation Protocol (real-time multimedia communication sessions over IP networks)</li>
<li>SIRP = Security Incident Response Plan (for SOC2)</li>
<li>SIRT = Security Incident Response Team (work in a SOC department)</li>
<li>SIS = Safety Instrumented System (automated control system that safeguards manufacturing environment in case of any hazardous incident in the industry)</li>
<li>SKSKSKSK = (internet slang expressing excitement)</li>
<li>SLA = Service Level Agreement</li>
<li>SLAM = Simultaneous Localization and Mapping (of image file contents by OpenCV)</li>
<li>SLE = Single Loss Expectancy</li>
<li>SLI = Service Level Indicator</li>
<li>SLM = Small Language Model</li>
<li>SLO = Service Level Objective</li>
<li>SLR = Service Linked Role (in IAM for Amazon Lightsail)</li>
<li>SLSA = Supply chain Levels for Software Artifacts (<a target="_blank" href="https://slsa.dev/spec/">framework</a> of standards and controls for a secure supply chain to build secure resilient software)</li>
<li>SMB = Server Message Block (storage)</li>
<li>SMB = Small or Mid-sized Business</li>
<li>SME = Subject Matter Expert</li>
<li>SMF = Session Management Function</li>
<li>SNDL = Store Now Decrypt Later (for malicious decryption when quantum enables it)</li>
<li>SMI = Service Mesh Interface</li>
<li>SNMP = Simple Network Management Protocol</li>
<li>SMaaS = Service Mesh as a Service</li>
<li>SMTP = Simple Mail Transfer Protocol</li>
<li>SNI = Server Name Indication (SSL)</li>
<li>SNS = Simple Notification Service (to send and receive notifications in AWS)</li>
<li>SOA = Service Oriented Architecture</li>
<li>SOAP = Simple Object Access Protocol (uses XML)</li>
<li>SOAR = Security Orchestration Automation and Response</li>
<li>SOW = Statement of Work</li>
<li>SOC = Security Operations Center</li>
<li>SoC = System on a Chip</li>
<li>SOC2 = Systems and Organization Controls (AICPA ISO 27701)</li>
<li>SOP = Standard Operating Procedure</li>
<li>SORN = System of Record Notice</li>
<li>SOTA = State of the Art</li>
<li>SOX = Sarbanes-Oxley Act</li>
<li>SPA = Single Page Application</li>
<li>SPF = Sender Policy Framework (lists IP address of servers allowed to send email for a domain - for email authentication)</li>
<li>SPI = Service Provider Interface</li>
<li>SPI = Secure Personal Information</li>
<li>SPI = Serial Peripheral Interface (master/slave protocol that requires a clock signal to transmit any information)</li>
<li>SPICE = Super-fast, Parallel, In-memory Calculation Engine (used in AWS QuickSight)</li>
<li>SPIFFE = Secure Production Identity Framework for Everyone (spec used by Consul Connect service mesh for establishing service identities)</li>
<li>SPK = Spacecraft and Planet Kernel (files from NASA containing ephemeris data for solar system bodies, spacecraft, and other objects)</li>
<li>SPOC = Single Point of Contact</li>
<li>SPOF = Single Point of Failure</li>
<li>SPLK = Splunk’s stock ticker symbol</li>
<li>SPN = Service Principal Name (Unique identifier for a service instance within Kerberos)</li>
<li>SPSCR = Security, Privacy, and Supply Chain Risks (in RMF)</li>
<li>SPAN Port = Port configured to receive a copy of every packet that passes through a switch.</li>
<li>SQL = Structured Query Language</li>
<li>SQS = Simple Queue Service (AWS hosted queues of messages)</li>
<li>SRA = Security Reference Architecture</li>
<li>SRE = Site Reliability Engineer (job role)</li>
<li>SRG = Security Requirements Guides (general guidelines for STIGs, from DISA)</li>
<li>SRP = Single Responsibility Principle</li>
<li>SRTM = Software Requirements Traceability Matrix</li>
<li>SRUM = System Resource Utilization Monitor (on Windows machines)</li>
<li>SSAE = Statement on Standards for Attestation Engagements</li>
<li>SSAS = SQL Server Analysis Services (from Microsoft)</li>
<li>SSD = Solid-State Drive (data storage)</li>
<li>SSE = Server-Sent Events (A one-way channel from server to client. The client subscribes to a stream of events, and the server continuously sends updates as text-based messages.)</li>
<li>SSDT = SQL Server Data Tools (Microsoft SQL Server)</li>
<li>SSE = Security Service Edge (Microsoft conditional access mechanisms for Zero Trust)</li>
<li>SSE = Server Sent Events (machine-level protocol used between MCP components)</li>
<li>SSE = Server-Side Encryption</li>
<li>SSG = Static Site Generator</li>
<li>SSDLC = Secure Software Development Lifecycle</li>
<li>SSH = Secure Shell (a Linux feature to enable remote access of computers)</li>
<li>SSI = Sensitive Security Information</li>
<li>SSIS = SQL Server Integration Services (Microsoft)</li>
<li>SSL = Secure Sockets Layer (deprecated by TLS networking protocol)</li>
<li>SSML = Speech Synthesis Markup Language</li>
<li>SSMS = SQL Server Management Studio (Microsoft app)</li>
<li>SSN = Social Security Number (issued by the US government to unique identify an individual for taxes)</li>
<li>SSO = Single Sign On (IAM MFA)</li>
<li>SSoT = Single Source of Truth</li>
<li>SSP = System Security Plan</li>
<li>SSPR = Self-Service Password Reset (Security)</li>
<li>SSRF = Server Side Request Forgery</li>
<li>SSRM = Shared Security Responsibility Model</li>
<li>SSRS = SQL Server Reporting Services (Microsoft)</li>
<li>STA = State of The Art (most modern)</li>
<li>STAR = Security Test Audit Report</li>
<li>STIG = Security Technical Implementation Guide (specific to each product used by DoD, from DISA)</li>
<li>STIX = Structured Threat Information eXpression (XML API to share threat models by OASIS)</li>
<li>STRIDE = Spoofing of user identity; Tampering; Repudiation; Information disclosure (privacy breach or data leak); Denial of service (DoS); Elevation of privilege</li>
<li>SLD = Secondary Level Domain (the letters before the last dot on URLs processed by DNS)</li>
<li>STS = Security Token Service (AWS)</li>
<li>STS = StatefulSets (Kubernetes)</li>
<li>SUT = System Under Test</li>
<li>SVD = Singular Value Decomposition (standard matrix factorization NumPy function to decompose training set)</li>
<li>SVID = SPIFFE Verifiable Identity Document (cryptographic file used by a workload to prove its identity to a resource or caller)</li>
<li>SWF = Simple Workflow (service from AWS for developers to run tasks in parallel or sequentially)</li>
<li>SWG = Secure Web Gateway</li>
</ul>
<p><a name="T"></a></p>
<h3 id="t">T</h3>
<ul>
<li>TAED = Target Actual Efficiency Downtime</li>
<li>TAM = Technical Account Manager</li>
<li>TAM = Total Addressable Market (marketing)</li>
<li>TaS = Test as Service</li>
<li>TAXII = Trusted Automated eXchange of Intelligence Information (how to share)</li>
<li>TB = TerraByte</li>
<li>TBD = To Be Decided (common vernacular)</li>
<li>TBH = To Be Honest (Gen Z slang)</li>
<li>TCB = Trusted Computing Base (secure boot kernel and other isolation tech)</li>
<li>TCC = Trusted Cloud Computing (Microsoft)</li>
<li>TCC = Transparency, Consent, and Control (for user data protection within Apple OS)</li>
<li>TCO = Total Cost of Ownership</li>
<li>TDE = Transparent Data Encryption (encrypt database without altering app interactions by substituting encrypted values in the background outside apps)</li>
<li>TDIR = Threat Detection and Incident Response (security workflow)</li>
<li>TDP = Thermal Design Power (avg. max. power a processor dissipates heat while running)</li>
<li>TDM = Technical Decision Maker (vs. Business Decision Maker)</li>
<li>TEE = Trusted Execution Environments (to provide secure runtime)</li>
<li>TFC = Terraform Cloud (SaaS Terraform offering)</li>
<li>TFE = Terraform Enterprise (self-installed/managed Terraform)</li>
<li>TFW = The Feeling When</li>
<li>TIA = Thanks In Advance (chat slang)</li>
<li>TIC = Trusted Internet Connection</li>
<li>TIN = Tax Identification Number</li>
<li>TIP = Threat Intelligence Platform</li>
<li>TIPS = Treasury Inflation-Protected Securities (<a target="_blank" href="https://www.investopedia.com/articles/investing/080813/how-profit-inflation.asp">BLOG</a>)</li>
<li>TCSEC = Trusted Computer System Evaluation Criteria</li>
<li>TCO = Total Cost of Ownership</li>
<li>TDD = Test-Driven Development</li>
<li>TDM = Technical Decision Maker</li>
<li>TDS = Tabular Data Stream (network protocol for communication between Microsoft SQL Server and its clients)</li>
<li>TEEP = Total Effective Equipment Performance (the actual percentage of calendar hour asset utilization versus theoretical 24x365 maximum)</li>
<li>TEMPEST = (not an acronym for analyzing unshielded equipment emissions to steal information) <a target="_blank" href="https://www.nsa.gov/portals/75/documents/news-features/declassified-documents/cryptologic-spectrum/tempest.pdf">pdf</a></li>
<li>TFE = Terraform Enterprise</li>
<li>TLP = Traffic Light Protocol (defines levels of information sharing with contractors - CLEAR, GREEN, AMBER, RED)</li>
<li>TTFN = Ta Ta For Now (chat)</li>
<li>TGW = Transit GateWay (in AWS cloud)</li>
<li>TH = Threat Hunting</li>
<li>TIP = Threat Intelligence Platform</li>
<li>TLD = Top Level Domain (the letters after the last dot on URLs processed by DNS)</li>
<li>TLDR = Too Long Don’t Read</li>
<li>TLS = Transport Layer Security</li>
<li>TMI = Too Much Information (common vernacular)</li>
<li>TOE = Target of Evaluation (what is being evaluated by the Common Criteria EAL)</li>
<li>TOFU = Trust On First Use</li>
<li>TOML = Tom’s Obvious Minimal Language (config text file format)</li>
<li>TOON = Token-Oriented Object Notation (more compact than JSON for reading by models)</li>
<li>TOPI = Tensor Operator Inventory (pre-defined templates of common tensor operators e.g., conv2d, transpose)</li>
<li>TOPS = Tera Operations per Second (AI inference performance)</li>
<li>TOTP = Time-based One Time Password</li>
<li>TPISRM = Third Party Information Security Risk Management</li>
<li>TPM = Trusted Platform Module (on newer Microsoft Windows PCs)</li>
<li>TPRM = Third Party Risk Management</li>
<li>TSC = Trust Service Criteria</li>
<li>TSI = Trustworthy Software Initiative (UK)</li>
<li>TTE = Trusted Execution Environments (Microsoft Azure)</li>
<li>TTL = Time To Live</li>
<li>TTP = Trusted Third Party</li>
<li>TTP = Tactics + Techniques + Procedures (of security attack)</li>
<li>TTS = Text To Speech</li>
<li>TTT = Train the Trainer</li>
<li>TTV = Time to Value (marketing term)</li>
<li>TTX = TableTop eXercise (for security resilience)</li>
<li>TUI = Text-based User Interface (Command Line Interface)</li>
<li>TVM = Threat and Vulnerability Management (Microsoft)</li>
<li>TVM = Tensor Virtual Machine (fast Apache Python Deep Learning compilation framework)</li>
</ul>
<p><a name="U"></a></p>
<h3 id="u">U</h3>
<ul>
<li>U = yoU (chat slang)</li>
<li>UAC = User Account Control (on Windows)</li>
<li>UAT = User Acceptance Test</li>
<li>UART = Universal Asynchronous Receiver / Transmitter (protocol)</li>
<li>UCS = User</li>
<li>UDF = User-Defined Function</li>
<li>UDM = Unified Data Management</li>
<li>UDR = User-Defined Routes (used by Azure)</li>
<li>UDS = Unified Diagnostic Services (use in vehicles)</li>
<li>UDT = User-defined Data Types</li>
<li>UEBA = User and Entity Behavior Analytics (detect any anomalous behavior - deviations from normal patterns of usage which have security implications)</li>
<li>UEFI = Unified Extensible Firmware Interface (spec. replaces BIOS to boot-up disks larger than 2TB)</li>
<li>UEM = Unified Endpoint Management/Manager (Microsoft Intune and Config. Manager)</li>
<li>UDP = User Datagram Protocol (networking)</li>
<li>UML = Unified Modeling Language</li>
<li>UNS = Unified Namespace (for MQTT to integrate IIoT components)</li>
<li>UPF = User Plane Function</li>
<li>UPN = User Principal Name (Microsoft)</li>
<li>URI = Universal Resource Identifier</li>
<li>URL = Universal Resource Locator</li>
<li>URM = Under-Represented Minority</li>
<li>USB = Universal Service Bus</li>
<li>USDC = US Dollar Coin (digital stablecoin backed 1:1 with USD such as <a target="_blank" href="https://www.bitpay.com/blog/who-accepts-usdc">BitPay Card</a>)</li>
<li>USP = Unique Selling Proposition</li>
<li>UTC = Coordinated Universal Time (the new compromise term for GMT)</li>
<li>UTF = Unicode Transformation Format</li>
<li>UUID = Universally Unique Identifier (to identify information objects)</li>
<li>UVM = Unified Vulnerability Management (Armorcode: aggregate, correlate and prioritize findings from security tools)</li>
<li>UX = User eXperience</li>
</ul>
<p><a name="V"></a></p>
<h3 id="v">V</h3>
<ul>
<li>v12n = Virtualization (numeronym of 11 letters between v and n)</li>
<li>VAE = Variational Autoencoders (uses encoder-decoder architecture to generate new data for image and video generation)</li>
<li>VADER = Valence Aware Dictionary and sEntiment Reasoner (A lexicon that includes informal words used for sentiment analysis to determine emotional negativity)</li>
<li>VAR = Value-Added Reseller</li>
<li>VAT = Value-Added Tax</li>
<li>VBO = Value-Based Outcome</li>
<li>VCDM = Verifiable Credentials Data Model v2.0 (W3C Candidate Recommendation 2024 defines a schema for issuing, exchanging, and verifying credentials in a decentralized ecosystem using cryptographic primitives such as JSON-LD proofs and JWT-based verifiable presentations)</li>
<li>VCS = Version Control System</li>
<li>VDI = Virtual Desktop Infrastructure (from Citrix, Microsoft, AWS, etc. to share desktop infrastructure)</li>
<li>VDP = Vulnerability Disclosure Program</li>
<li>VEX = Vulnerability Exploitability Exchange</li>
<li>VGW = Virtual Gateway (Amazon AWS)</li>
<li>VHD = Virtual Hard Drive (holds Page Blobs in Azure Storage of up to 8TB in size)</li>
<li>VIF = Virtual InterFace (networking)</li>
<li>VIM = Virtualized Infrastructure Manager (AWS)</li>
<li>VIP = Virtual IP (address)</li>
<li>VLAN = Virtual Local Area Network</li>
<li>VM = Virtual Machine</li>
<li>VMC = Verified Mark Certificate (anti-spoofing logo validation DMARC from DigiCert)</li>
<li>VMSS = Virtual Machine Scale Set (Azure)</li>
<li>VMM = Virtual Machine Manager (aka Hypervisor)</li>
<li>VNC = Virtual Network Computing</li>
<li>VNF = Virtual Network Function</li>
<li>VoIP = Voice over Internet Protocol</li>
<li>VRRP = Virtual Router Redundancy Protocol</li>
<li>VRM = Vendor Risk Management</li>
<li>VPA = Vertical Pod Autoscaler (Kubernetes)</li>
<li>VPC = Virtual Private Cloud (AWS)</li>
<li>VPG = Virtual Private Gateway (AWS)</li>
<li>VPS = Virtual Private Server (AWS)</li>
<li>VDP = Vulnerability Disclosure Policy (<a target="_blank" href="https://www.cisa.gov/securebydesign/pledge">CISA Pledge</a>)</li>
<li>VLM = Vision-Language Model (AI models that jointly understand and generate both visual and language data)</li>
<li>VPN = Virtual Private Network</li>
<li>VRP = Vulnerability Research Program (way for organizations to receive security vulnerabilities found)</li>
<li>VSM = Value Stream Mapping</li>
<li>VSTS = Visual Studio Team Services (Microsoft)</li>
<li>VTA = Versatile Tensor Accelerator (an extension of Apache TVM)</li>
<li>VTFET = Vertical Transport Field Effect Transitor (IBM)</li>
<li>VTOC = Volatile Organic Compounds</li>
<li>VTL = Virtual Tape Library</li>
<li>vTPM = Virtual Trusted Platform Module</li>
<li>VUI = Voice User Interface (Amazon Alexa & Google Home)</li>
<li>VUCA = Volatile + Uncertain + Complex + Ambiguous</li>
<li>VXLAN = Virtual Extensible Local Area Network (enables scalability)</li>
</ul>
<p><a name="W"></a></p>
<h3 id="w">W</h3>
<ul>
<li>w/o = without (common vernacular)</li>
<li>W3C = World Wide Web Consortium (defines standards for JavaScript, HTML, XML, RDF, OWL, etc.)å</li>
<li>WAAP = Web application and API protection (a comprehensive security approach as an enhancement over web application firewalls)</li>
<li>WABD = Well Architected By Design</li>
<li>WAF = Web Application Firewall (AWS)</li>
<li>WAF = Well-Architected Framework</li>
<li>WAL = Write-Ahead Log</li>
<li>WAN = Wide Area Network</li>
<li>Wasm = WebAssembly (binary instruction coding for a stack-based virtual machine in browsers)</li>
<li>WBS = Work Breakdown Structure</li>
<li>WDYM = What Do You Mean? (chat slang)</li>
<li>WEP = Wired Equivalent Privacy (mobile security)</li>
<li>WFA = Work From Anywhere</li>
<li>WFH = Work From Home</li>
<li>WIP = Work In Process</li>
<li>WMI = Windows Management Instrumentation (Microsoft)</li>
<li>WMS = Warehouse Management System</li>
<li>WoL = Wake-on-LAN (BIOS/UEFI setting so device can save battery yet be worken from sleep from a static IP address)</li>
<li>WOT = Web of Trust (security)</li>
<li>WPA = Wi-Fi Protected Access</li>
<li>WPF = Windows Presentation Foundation (Microsoft)</li>
<li>WS = Workspace</li>
<li>WSDL = Web Services Description Language</li>
<li>WSFC = Windows Server Failover Clustering/Cluster (Microsft)</li>
<li>WTF = What The F*ck (internet slang)</li>
<li>WVD = Windows Virtual Desktop (Microsoft VDI was rebranded to Azure Virtual Desktop)</li>
</ul>
<p><a name="X"></a></p>
<h3 id="x">X</h3>
<ul>
<li>X.509 = (certificate format used for HTTPS on web servers digitally sign application code secure email and authenticate devices to corporate networks)</li>
<li>XaaS = Anything as a Service</li>
<li>XKX = External Key Store (Amazon service to store secrets outside of AWS)</li>
<li>XDR = Extended Detection and Response (formerly Microsoft Security Center)</li>
<li>XML = Extensible Markup Language</li>
<li>XMPP = Extensible Message and Presence Protocol</li>
<li>XOR = Exclusive-Or (Assembly language instruction and symmetric encryption algorithm)</li>
</ul>
<p><a name="Y"></a></p>
<h3 id="y">Y</h3>
<ul>
<li>YAML = YAML Ain’t Markup Language (Human-readable data-serialization text format)</li>
<li>YMMV = Your Mileage May Vary (chat slang)</li>
<li>YOLO = You Only Live Once (slang)</li>
<li>YTD = Year-To-Date</li>
</ul>
<p><a name="Z"></a></p>
<h3 id="z">Z</h3>
<ul>
<li>ZKP = Zero-Knowledge Proof (cryptographic protocols where a prover demonstrates knowledge of a secret to a verifier without disclosing the actual secret or other information)</li>
<li>ZOPA = Zone Of Possible Agreement (in a negotiation)</li>
<li>ZRS = Zone-Redundant Storage (across 3 Azure Availability Zones)</li>
<li>ZT = Zero Trust</li>
<li>ZTA = Zero Trust Architecture</li>
<li>ZTDA = Zero Trust Data Access</li>
<li>ZTNA = Zero Trust Network Access/Architecture</li>
<li>ZTS = Zero Trust Security</li>
</ul>
<hr />
<h2 id="other-glossaries-provide-definitions">Other Glossaries provide definitions:</h2>
<ul>
<li><a target="_blank" href="https://www.youtube.com/watch?v=GBHim0-CyzU">VIDEO of acronyms</a> takes 21 minutes</li>
<li>https://www.acronymfinder.com/</li>
<li>https://tryhackme.com/r/glossary</li>
<li>https://www.edglossary.org/</li>
<li>https://github.com/mikepound/tls-exercises/blob/master/glossary.pdf</li>
<li>https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html
<br /><br /></li>
</ul>
<p><sub>25-12-11 v082 OOS :2024-12-28-acronyms.md created 2024-12-28</sub></p>
<p><a href="https://wilsonmar.github.io/acronyms/">Acronyms</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 11, 2025.</p>
https://wilsonmar.github.io/git-custom-commands2025-12-10T00:00:00+00:002025-12-10T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Less typing means less mistakes, and more time on social media</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/git-custom-commands/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#on-a-mac" id="markdown-toc-on-a-mac">On a Mac:</a></li>
<li><a href="#on-windows" id="markdown-toc-on-windows">On Windows:</a></li>
<li><a href="#try-git-echo" id="markdown-toc-try-git-echo">Try git echo</a></li>
<li><a href="#try-git-c-message" id="markdown-toc-try-git-c-message">Try git c “message”</a> <ul>
<li><a href="#view-log" id="markdown-toc-view-log">View log</a></li>
<li><a href="#graphviz" id="markdown-toc-graphviz">Graphviz</a></li>
</ul>
</li>
<li><a href="#visualization-of-branches" id="markdown-toc-visualization-of-branches">Visualization of branches</a> <ul>
<li><a href="#ascii-art" id="markdown-toc-ascii-art">ASCII Art</a></li>
<li><a href="#flowchart-using-mermaidjs" id="markdown-toc-flowchart-using-mermaidjs">Flowchart using Mermaid.js</a></li>
</ul>
</li>
<li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
<li><a href="#more" id="markdown-toc-more">More</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>Here is a deep dive into how you can define custom commands for Git to use.</p>
<p>I’ve stored several examples in a <strong>git-custom-commands</strong> folder within my repo.</p>
<pre>
<a target="_blank" href="https://github.com/wilsonmar/git-utilities">https://github.com/wilsonmar/git-utilities</a>
</pre>
<ol>
<li>
<p>Fork it so you can make changes and add more files of your own.</p>
</li>
<li>
<p>Get my repo onto your machine using a Git UI or in a Git command line:</p>
<pre><strong>
git clone <a target="_blank" href="https://github.com/wilsonmar/git-utilities">https://github.com/wilsonmar/git-utilities</a>
</strong></pre>
<h3 id="on-a-mac">On a Mac:</h3>
</li>
<li>
<p>cd into the repo.</p>
<pre><strong>
cd git-custom-commands
</strong></pre>
<p>The contents of this folder needs to be within the path where the operating system searches for programs and scripts.</p>
</li>
<li>
<p>Optionally, create a folder on the operating system’s path
by copying the <strong>git-custom-commands</strong> folder from within the Git repository
into a folder in your home directory.</p>
<p>Creating your own folder enables you to add more files to that.</p>
<pre>
cd $HOME
mkdir git-custom-commands
</pre>
<p>Linux people often use <tt>/opt/bin</tt>, but on a Mac that is a protected area requiring sudo access.</p>
</li>
<li>
<p>Switch to a text editor to edit file <strong>~/.bash_profile</strong>.
For example, to use Sublime Text:</p>
<pre>
subl ~/.bash_profile
</pre>
</li>
<li>
<p>At the bottom or wherever, ADD the path to your git-custom-command files.</p>
<p>PROTIP: Git automatically make files available as a subcommand, just like regular executable scripts.</p>
<p>An example of referencing where I cloned:</p>
<pre><strong>
export PATH="$HOME/gits/wilsonmar/git-utilities/git-custom-commands:$PATH"
</strong></pre>
<p>This adds the folder to the front of the PATH.</p>
</li>
<li>
<p>View the PATH:</p>
<pre>
echo $PATH
</pre>
</li>
<li>
<p>So the changes “take”, exit terminal session windows or re-run Terminal initialization:</p>
<pre>
source ~/.bash_profile
</pre>
</li>
<li>
<p>cd into the git-custom-commands folder.</p>
</li>
<li>
<p>Set permissions to execute each file:</p>
<pre><strong>
chmod 555 *
</strong></pre>
</li>
<li>
<p>Skip to <a href="#TryEcho"> Try Git Echo</a> below.</p>
<h3 id="on-windows">On Windows:</h3>
</li>
<li>
<p>If you haven’t already, install Chocolatey, then</p>
<pre><strong>
choco install mysysgit
</strong></pre>
</li>
<li>
<p>Look for the libeexec\git-core folder:</p>
<pre><strong>
cd /
dir git-core /s
</strong></pre>
<p>What I see:</p>
<pre>
Directory of C:\Program Files\Git\mingw64\libexec
04/21/2016 11:09 AM <DIR> git-core
0 File(s) 0 bytes
Directory of C:\Program Files\Git\mingw64\share
04/21/2016 11:09 AM <DIR> git-core
0 File(s) 0 bytes
</pre>
</li>
<li>
<p>cd into the folder:</p>
<pre>
C:\Program Files\Git\mingw64\libexec\git-core
</pre>
<p>Older 32-bit machines would use:</p>
<pre>
C:\Program Files (x86)\Git\libexec\git-core
</pre>
</li>
<li>
<p>List files in git-core.</p>
<p>Notice several files do not have an *.exe file extension:</p>
<ul>
<li>git-bisect</li>
<li>git-cittool</li>
<li>git-cvsimport</li>
<li>git-cvsserver</li>
<li>git-difftool</li>
<li>git-gui</li>
<li>git-instaweb</li>
<li>git-merge-octopus</li>
<li>git-mergetool</li>
<li>git-rebase</li>
<li>git-request-pull</li>
<li>git-send-email</li>
<li>git-sh-setup</li>
<li>git-sh-i18n</li>
<li>git-stash</li>
<li>git-subtree
<br /><br /></li>
</ul>
<p>PROTIP: The first line of these files define them as shell files which Git can process
because Git executable on Windows has the bits to process shell files in sh.exe:</p>
<pre>
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
start "" "%SYSTEMDRIVE%\Program Files\Git\bin\sh.exe" --login
</pre>
</li>
<li>
<p>Copy the contents of git-custom-commands into Git client’s git-core folder found above:</p>
<p><a name="TryEcho"></a></p>
<h3 id="try-git-echo">Try git echo</h3>
</li>
<li>
<p>Try the command <strong>git-echo</strong>, created just so we can verify whether we have it working:</p>
<pre><strong>
git echo "hello world"
</strong></pre>
<p>You should see response:</p>
<pre>
hello world
</pre>
<p>Instead of “hello world”, you can type in any phrase. Double quotes are not necessary if you only type one word.</p>
<p>PROTIP: The git echo command is handled by a file named <strong>git-echo</strong>,
which has NO file extension (such as .sh).
Git knows to add the dash in the name when it looks for a custom command.</p>
<p>The $1 is the place-holder for the message typed into the command.</p>
<h2 id="try-git-c-message">Try git c “message”</h2>
</li>
</ol>
<p>The git-c custom command is the equivalent to typing this:</p>
<pre>
git add -A
git commit -m '@mac: message in command line'
</pre>
<p>The command to invoke it:</p>
<p><tt><strong>
git c “message in command line”
</strong></tt></p>
<p>A sample response:</p>
<p><tt><strong>
[master 181b537] @mac: message in command line
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 4
</strong></tt></p>
<p>The underlying code:</p>
<p><tt><strong>
git add -A
git commit –message=”@${PWD##*/} $1”
</strong></tt></p>
<p>The weird set of characters in the commit line
produces the Present Working Directory (PWD).</p>
<p>It is not really needed to add the username because</p>
<p>Troubleshoot your path if you see this error message:</p>
<pre>
git: 'c' is not a git command. See 'git --help'.
Did you mean one of these?
checkout
clone
commit
gc
</pre>
<h3 id="view-log">View log</h3>
<p>View the messages:</p>
<p><tt>
git log –oneline
</tt></p>
<h3 id="graphviz">Graphviz</h3>
<p>Seth House did several videos on Git and GitHub, in which he showed use of a utility to create a visualization
from the command line. He was nice enough to share it with me.</p>
<ol>
<li>
<p>Install GraphViz using a package manager. On a Mac:</p>
<pre><strong>
brew install graphviz
</strong></pre>
<p>This installs dependencies libtiff, webp, gd</p>
<ul>
<li>http://www.graphviz.org/Download_macos.php - graphviz-2.40.1.pkg</li>
<li>http://www.graphviz.org/Download_windows.php
<br /><br /></li>
</ul>
</li>
<li>
<p>Save the file from a text editor into folder</p>
<p>Alternately, copy the file graph-dag into that folder from the cloned folder.</p>
</li>
<li>
<p>Set permissions to execute the file:</p>
<pre><strong>
chmod a+x graph-dag
</strong></pre>
</li>
<li>
<p>Run the graph-dag that outputs a commit graph using the GraphViz “dot” tool:</p>
<pre><strong>
git graph-dag HEAD~10.. | dot -Tpng > mygraph.png
</strong></pre>
</li>
<li>
<p>Additionally, look at the other utilities at:</p>
<p>https://git.wiki.kernel.org/index.php/ExampleScripts</p>
<ul>
<li>Sorting commits by commit message line count / changed lines ratio</li>
<li>Copying all changed files from the last N commits</li>
<li>Setting the timestamps of the files to the commit timestamp of the commit which last touched them</li>
</ul>
</li>
</ol>
<p><a id="Viz"></a></p>
<h2 id="visualization-of-branches">Visualization of branches</h2>
<p>git log does a good job of illustrating branches,
but GitKraken provides this colorful branch graphics:</p>
<p><img src="https://cloud.githubusercontent.com/assets/300046/25506378/46065ecc-2b74-11e7-9a89-dd68be4832a3.png" alt="git-utilities gitkraken dag 579x279" /></p>
<ul>
<li>
<p>The master branch is the light-blue line on the left.</p>
</li>
<li>
<p>The Bug fix branch is the darker-blue line to the right of that.</p>
</li>
<li>
<p>The develop branch is the purple line to the right of that.</p>
</li>
</ul>
<h3 id="ascii-art">ASCII Art</h3>
<p>Make some ASCII art from (part of your) history</p>
<pre>
A - B - C
\ \
D - E - F
</pre>
<p><a name="Flowchart"></a></p>
<h3 id="flowchart-using-mermaidjs">Flowchart using Mermaid.js</h3>
<p>Text like this within GitHub Markdown (used by Azure DevOps project Wikis, GitLab, Notion, Obsidian):</p>
<pre>
graph TD;
A[Start] --> B(Process Input);
B --> C{Check Status?};
C -- Yes --> D[Finish];
C -- No --> B;
</pre>
<p>or created using <a target="_blank" href="https://mermaid.live/edit">an online editor</a>
are read by <a target="_blank" href="https://en.wikipedia.org/wiki/Mermaid_(software)">Mermaid.js</a> (open sourced at <a target="_blank" href="https://github.com/mermaid-js/mermaid">https://github.com/mermaid-js/mermaid</a>) to produce <a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#git-graph-experimental---live-editor">Git graphs</a> like this:</p>
<pre><code class="language-mermaid">gitGraph
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
</code></pre>
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
<script>
// Tell Mermaid to look inside elements with class 'language-mermaid':
mermaid.initialize({
// disable auto-scan:
startOnLoad: false,
theme: 'default', // Options: 'default', 'dark', 'forest', 'neutral'
securityLevel: 'loose'
});
// Process and render the diagrams after the page is loaded:
function initMermaid() {
// Find all the code blocks marked with 'language-mermaid':
document.querySelectorAll('.language-mermaid').forEach(function(codeElement) {
// Get the raw diagram text:
let graphDefinition = codeElement.textContent;
// Create a new div to hold the rendered diagram:
let wrapper = document.createElement('div');
wrapper.className = 'mermaid';
wrapper.textContent = graphDefinition;
// Replace the original code block with the new div:
codeElement.parentNode.replaceWith(wrapper);
});
// Render the diagrams found in the new divs:
mermaid.init(undefined, '.mermaid');
}
// Run the initialization function once the entire page is ready:
document.addEventListener('DOMContentLoaded', initMermaid);
</script>
<p>BTW Like Graphviz, Mermaid draws
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#flowchart-docs---live-editor">Flowcharts</a>,
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#gantt-chart-docs---live-editor">Gantt charts</a>,
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#bar-chart-using-gantt-chart-docs---live-editor">Bar charts</a>,
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#user-journey-diagram-docs---live-editor">User Journey diagrams</a>,
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#pie-chart-docs---live-editor">Pie charts</a>,
UML:
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#sequence-diagram-docs---live-editor">Sequence Diagrams</a>,
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#class-diagram-docs---live-editor">Class diagrams</a>,
<a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#state-diagram-docs---live-editor">State diagrams</a>,</p>
<p><a target="_blank" href="https://github.com/mermaid-js/mermaid?tab=readme-ov-file#c4-diagram-docs">C4 diagrams</a> (Context, Container, Component, and Code).
The four levels of C4 diagrams:</p>
<ul>
<li>
<p>Context Diagram: This is the highest-level overview, showing the entire software system as a single box and its interactions with people and other systems. It helps define the system’s scope and external integrations.</p>
</li>
<li>
<p>Container Diagram: This level zooms into the system and shows its containers (like a web application, mobile app, database, or microservice) and how they communicate with each other.</p>
</li>
<li>
<p>Component Diagram: This diagram drills down into a single container, detailing the components inside it and their interactions. For example, a web application container might be broken down into components for user authentication and account management.</p>
</li>
<li>
<p>Code Diagram: This is the most detailed level, showing the implementation details of a single component, often using a traditional UML class diagram or similar notation.</p>
</li>
</ul>
<h2 id="resources">Resources</h2>
<ul>
<li>http://mfranc.com/tools/git-custom-command/</li>
</ul>
<h2 id="more">More</h2>
<p>This is one of a series on Git and GitHub:</p>
<ol>
<li>
<p><a href="/git-github-videos/">Git and GitHub videos</a></p>
</li>
<li><a href="/why-git/">Why Git? (file-based backups vs Git clone)</a></li>
<li>
<p><a href="/markdown-text-for-github-from-html/">Git Markdown text</a></p>
</li>
<li><a href="/git-basics/">Git basics (script)</a></li>
<li><a href="/git-whoops/">Git whoops (correct mistakes)</a></li>
<li>
<p><a href="/git-messages/">Git messages (in commits)</a></p>
</li>
<li><a href="/git-shortcuts/">Git command shortcuts</a></li>
<li>
<p><a href="/git-custom-commands/">Git custom commands</a></p>
</li>
<li>
<p><a href="/git-flow/">Git-client based workflows</a></p>
</li>
<li>
<p><a href="/git-head/">Git HEAD (Commitish references)</a></p>
</li>
<li><a href="/git-imerge/">Git interactive merge (imerge)</a></li>
<li><a href="/git-patch/">Git patch</a></li>
<li>
<p><a href="/git-rebase/">Git rebase</a></p>
</li>
<li><a href="/git-utilities/">Git utilities</a></li>
<li>
<p><a href="/git-signing/">Git-signing</a></p>
</li>
<li><a href="/git-hooks/">Git hooks</a></li>
<li><a href="/github-data-security/">GitHub data security</a></li>
<li>
<p><a href="/tfs-vs-github/">TFS vs GitHub</a></p>
</li>
<li><a href="/github-actions/">GitHub actions for automation JavaScript</a></li>
<li><a href="/github-api/">GitHub REST API</a></li>
<li><a href="/github-graphql/">GitHub GraphQL API</a></li>
<li><a href="/powershell-github/">GitHub PowerShell API Programming</a></li>
<li><a href="/github-graphql-powershell/">GitHub GraphQL PowerShell Module</a></li>
</ol>
<p><a href="https://wilsonmar.github.io/git-custom-commands/">Git Custom Commands</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 10, 2025.</p>
https://wilsonmar.github.io/protect-credit2025-12-01T00:00:00+00:002025-12-01T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>How to block thieves from taking advantage of data leaks to steal your good credit and money.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/protect-credit/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#your-data-is-exposed" id="markdown-toc-your-data-is-exposed">Your data is exposed</a></li>
<li><a href="#proactive-defense" id="markdown-toc-proactive-defense">Proactive defense</a></li>
<li><a href="#block-credit" id="markdown-toc-block-credit">Block Credit</a> <ul>
<li><a href="#unblock-credit" id="markdown-toc-unblock-credit">UnBlock Credit</a></li>
<li><a href="#free-credit-report" id="markdown-toc-free-credit-report">Free credit report</a></li>
</ul>
</li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<h2 id="your-data-is-exposed">Your data is exposed</h2>
<p>Today, what used to be secrets that uniquely identify you (social security number, birth date, home address, etc.) are now exposed over the dark web.</p>
<p>Even the government agency (DISA) which processes applications for Top-Secret clearance for all branches of the US military has been hacked.</p>
<p>Yet, many companies still give anyone access to your information when given enough of your secrets.</p>
<p>Monitoring is not enough. What will you do if you find out if you’ve been exposed?</p>
<p>[_] Look yourself up at:</p>
<ul><a target="_blank" href="https://haveibeenpwned.com/">HaveIBeenPwned.com</a></ul>
<h2 id="proactive-defense">Proactive defense</h2>
<p>Here’s what can you do to guard your secrets:
I can help you.</p>
<ol>
<li>
<p>Avoid doing business with <a target="_blank" href="https://haveibeenpwned.com/PwnedWebsites">organizations which have been hacked</a> or does not offer MFA.</p>
</li>
<li>On your mac, install and use a <a target="_blank" href="https://www.pcmag.com/picks/stop-trackers-dead-the-best-private-browsers">secure internet browser</a>: <a target="_blank" href="https://torproject.org/">Tor</a> using <a target="_blank" href="https://formulae.brew.sh/cask/tor-browser"><tt>brew install –cask tor-browser</tt></a></li>
<li>Install a Password Manager/Generator (KeePassXC) to generate a new for each account.</li>
<li>Create a password database that works locally rather than over the internet cloud.</li>
<li>Store your password vault on a secure USB device.</li>
<li>
<p>Enable your trustee to access them if you are ever disabled or killed.</p>
</li>
<li>Install <a target="_blank" href="https://www.youtube.com/watch?v=JHIAIzOPz3I">Authenticator App</a> <a target="_blank" href="https://getaegis.app/">Aegis (Android)</a> or Authy on your mobile phone for MFA (Multi-Factor Authentication).</li>
<li>
<p>Get a USB Yubikey (with custom markings) on your physical keychain to protect key accounts (emails, Paypal, banking, etc.).</p>
</li>
<li>Create a different email for signing up to utilities (phone, trash, electric, etc.).</li>
<li><a href="Phone">Setup the phone number from your mobile carrier for Google Voice</a></li>
<li><a href="Phone">Give out your Google number rather than the phone number from your mobile carrier</a>.</li>
<li>
<p>Note in your Password Manager every account where you gave your private phone, so you can update them when that changes.</p>
</li>
<li>Generate random nonsense words as answers to account recovery, and write them in your Password Manager.</li>
<li>Give to medical personnel a birthdate that is a few days off because you’ll be asked to announce it publicly at medical offices.</li>
<li>
<p>Do not give out information to somone calling you.</p>
</li>
<li><a href="#LockSSN">Block thieves from using your social security number to apply for jobs</a>.</li>
<li>
<p><a href="#UnLockSSN">Unblock it before you submit an I-9 before starting work</a>.</p>
</li>
<li><a href="#BlockCredit">Block thieves from opening credit in your name</a>.</li>
<li>
<p><a href="#UnBlockCredit">Unblock your credit before applying for a credit card or loan</a>.</p>
</li>
<li>Open a POBOX to receive physical mail so your home address is not exposed.</li>
<li>Print bank checks with POBOX rather than your home address. Aoid writing paper checks.</li>
<li>
<p>Buy property using an Land Trust registed through a lawyer to avoid exposing your home address (but not jeopardizing Homestead protections).</p>
</li>
<li>Get a passport to show TSA during travel (both domestic and international).</li>
<li>Get a drivers license without your home address (not a Real ID).</li>
<li>Remove biometric capabilities before/while traveling.</li>
<li>
<p>Get a burner phone to use while traveling.</p>
</li>
<li>Open an email only for banks (so you can ignore emails about banking on your social email).</li>
<li>Create a different name and each account for social media.</li>
<li>
<p>Setup an alternative name and email address to make social media posts.</p>
</li>
<li>Setup blocks of calls from unknown numbers.</li>
<li>Add known callers to your allow list.</li>
<li>
<p>Ask those contacting you how they got your phone number.</p>
</li>
<li>Keep cash on hand for emergencies.</li>
<li>Hide valuables wisely.</li>
</ol>
<hr />
<p><a name="BlockCredit"></a></p>
<h2 id="block-credit">Block Credit</h2>
<p>In the US there are three companies that keep credit files which banks query before issuing credit:</p>
<p>WARNING: Do this at home rather than on an unsecure airport/hotel line.</p>
<p>[_] <strong>Equifax</strong>: Instructions at: https://www.equifax.com/personal/help/article-list/-/h/a/place-lift-remove-security-freeze/</p>
<ol>
<li>
<p>For information, see https://www.equifax.com/personal/credit-report-services/credit-freeze or call 888-298-0045 or send a registered letter to: Equifax Information Services LLC, P.O. Box 105788, Atlanta, GA, 30348-5788
https://www.equifax.com/personal/products/credit/credit-lock-alert/</p>
</li>
<li>Use a secure browser to sign Up for an account online at<br />https://my.equifax.com/consumer-registration/UCSC/#/personal-info</li>
<li>Give your POBOX and phone.</li>
<li>Equifax challenges you with confirming historical trivia from your credit history.</li>
</ol>
<p>QUESTION: Is there a PIN to make changes?</p>
<ol>
<li>Optionally install the Equifax mobile app on <a target="_blank" href="https://itunes.apple.com/us/app/lock-alert/id1325259833?ls=1&mt=8">iPhone</a> or <a target="_blank" href="https://play.google.com/store/apps/details?id=com.equifax.android.lockandalert">Android</a>.</li>
<li>In your email app, add a star for any email from the “from email”.
<br /><br /></li>
</ol>
<p>[_] <strong>Experian</strong> (used by Capital One)
https://www.experian.com/blogs/ask-experian/how-to-add-a-security-freeze-to-your-credit-file/</p>
<ol>
<li>Use a secure browser to sign Up for an account online at<br />https://www.experian.com/freeze or 888-397-3742 (8AM - 7PM CST) or send a registered letter to: Experian Security Freeze, P.O. Box 9554, Allen, TX 75013</li>
<li>Click “Create a free account”.</li>
<li>Click in “Last 4 of Social Security Number” and type it.</li>
<li>Type in your secure phone number.</li>
<li>From the text message, copy the URL and paste in your secure browser.</li>
<li>Switch to the form and fill out your birth date, SSN.</li>
<li>Enter your <strong>banking email, POBOX mailing address</strong></li>
<li>Generate a security question answer and random 4-digit PIN in your password manager.</li>
<li>Copy answers from the password manager and paste it in the form. Submit and Continue.</li>
<li>
<p>Call the company at 888-548-7878 if it cannot authenticate you.</p>
</li>
<li>
<p>Write down the confirmation number and PIN number in the mail. This is very important because even if people know all your info, they don’t know the PIN assigned to your account.</p>
</li>
<li>In your email app, copy the “from email” address and add a formula to star if when email comes from that email address.
<br /><br /></li>
</ol>
<p>[_] <strong>TransUnion</strong> (used by Capital One) 800-916-8800 M-F 8a-9p ET & SatSun 8a–5p ET. Instructions are at: https://www.transunion.com/credit-freeze/credit-freeze-faq#adding-freeze-0</p>
<ol>
<li>PROTIP: Avoid using a secure browser to Sign Up for an account online at<br />https://www.transunion.com/free-credit-monitoring</li>
<li>
<p>Click “Sign Up for Free”. BLAH: I got stuck at their “Validating information”.</p>
</li>
<li>PROTIP: Sign up by phone: 833-806-1627 because I got rejected by their website.</li>
</ol>
<p>QUESTION: Is there a PIN to make changes?</p>
<ol>
<li>In your email app, add a star for any email from the “from email”.</li>
</ol>
<p>“Although not required, including one proof of identity and two proofs of your current address with your request can help us locate your record more efficiently. If you include documents with your request, all documents should reflect your current name and be unexpired. Please only submit photocopies of your documents. These can include:</p>
<p><br /><br /></p>
<p>The above actions has no effect on credit cards you already own. A freeze does not block charges on your credit cards. You can still use the credit cards you have.</p>
<p><a name="UnBlockCredit"></a></p>
<h3 id="unblock-credit">UnBlock Credit</h3>
<p>If you forget to unfreeze you credit before applying, you will most likely be denied.</p>
<p>Credit agencies must lift the freeze within one hour of an unfreeze request made online or by phone,
or within three business days when made by mail.</p>
<ul>
<li>
<p>https://my.equifax.com/membercenter/#/home</p>
</li>
<li>
<p>Experian</p>
</li>
<li>
<p>https://service.transunion.com/dss/login.page?dest=freezeStatus</p>
</li>
</ul>
<h3 id="free-credit-report">Free credit report</h3>
<p>[_] Mark on your calendar a repeating appointment each year to request a credit report from each credit reporting agency.</p>
<p>According to https://consumer.ftc.gov/free-credit-reports
Extra free reports qualify if denied credit/employment, suspecting fraud, or unemployed.</p>
<ol>
<li>
<p>In a browser, go to <a target="_blank" href="https://www.AnnualCreditReport.com">AnnualCreditReport.com</a> and select which bureau’s report you want (or all three).</p>
<p>WARNING: Other sites offering this service are scams. https://consumer.ftc.gov/free-credit-reports</p>
</li>
<li>
<p>Verify your identity with details like name, address, SSN, and account info—no credit card needed.</p>
</li>
<li>
<p>View reports instantly online, or request by phone (1-877-322-8228) or mail (form to P.O. Box 105281, Atlanta, GA 30348-5281; expect 15 days).</p>
</li>
</ol>
<p><a href="https://wilsonmar.github.io/protect-credit/">Protect Your Credit</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on December 01, 2025.</p>
https://wilsonmar.github.io/jekyll-templates2025-11-24T00:00:00+00:002025-11-24T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>The most popular</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/jekyll-templates/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#jekyll-theme-shops" id="markdown-toc-jekyll-theme-shops">Jekyll Theme shops</a></li>
<li><a href="#jekylltips-templates" id="markdown-toc-jekylltips-templates">Jekyll.tips Templates</a></li>
<li><a href="#responsive" id="markdown-toc-responsive">Responsive?</a> <ul>
<li><a href="#themes-from-michael-rose" id="markdown-toc-themes-from-michael-rose">Themes from Michael Rose</a></li>
<li><a href="#feature-comparison-table" id="markdown-toc-feature-comparison-table">Feature Comparison Table</a></li>
<li><a href="#pagetoc" id="markdown-toc-pagetoc">PageTOC</a></li>
<li><a href="#installation-and-generation" id="markdown-toc-installation-and-generation">Installation and Generation</a></li>
<li><a href="#grunt-example" id="markdown-toc-grunt-example">Grunt example</a></li>
</ul>
</li>
<li><a href="#gulp-example" id="markdown-toc-gulp-example">Gulp example</a></li>
<li><a href="#more-on-front-end-styling" id="markdown-toc-more-on-front-end-styling">More on front-end styling</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>This article lists and evaluates templates for Jekyll,
which drives GitHub.io static websites.</p>
<p>The structure of content (.md files) created for display using
Jekyll makes it easy (with only a few edits)
to switch the site to use any number of
other Jekyll themes / templates.</p>
<h3 id="jekyll-theme-shops">Jekyll Theme shops</h3>
<p>My personal favorite is:</p>
<ul>
<li><a target="_blank" href="http://jekyll.tips/templates/">jekyll.tips/templates</a>
by Mike Neumegen (<a target="_blank" href="https://twitter.com/mikeneumegen">@mikeneumegen</a>,
CEO of @CloudCannonApp, a SaaS services provider for Jekyll)</li>
</ul>
<p>Within the Jekyll repository on GitHub:</p>
<ul>
<li><a target="_blank" href="https://github.com/jekyll/jekyll/wiki/Themes">
github.com/jekyll/jekyll/wiki/Themes</a></li>
</ul>
<p>Premium (paid) themes so you get updates and support, for less than $30.</p>
<ul>
<li><a target="_blank" href="http://jekyllthemes.io">jekyllthemes.io</a></li>
</ul>
<p>This is an affiliate for other sites offering the same themes for less.</p>
<ul>
<li><a target="_blank" href="http://jekyllthemes.org">jekyllthemes.org</a></li>
</ul>
<hr />
<h3 id="jekylltips-templates">Jekyll.tips Templates</h3>
<p><a target="_blank" href="http://jekyll.tips/templates/">jekyll.tips/templates</a>
lists templates available at
<a target="_blank" href="https://github.com/CloudCannon/">
https://github.com/CloudCannon</a>.</p>
<p><a target="_blank" href="https://github.com/CloudCannon/bakery-store/">
Bakery-store</a> is in GitHub but not shown in the gallery.</p>
<h2 id="responsive">Responsive?</h2>
<p>To see responsive websites, get to it quicker on your mobile smartphone QR code is provided for you.</p>
<p><a name="MichaelRoseThemes"></a></p>
<h3 id="themes-from-michael-rose">Themes from Michael Rose</h3>
<p>Content on this website was created by editing markdown text (index.md files)
stored on GitHub.com.
The HTML sent to your browser for display is generated from markdown using
Ruby running <a href="http://jekyllrb.com/">Jekyll</a> 3.0 rendering modifications of the
<a target="_blank" href="https://github.com/mmistakes/minimal-mistakes/">
minimal-mistakes theme from GitHub</a> by Michael Rose.</p>
<p>Michael also created the
<a target="_blank" href="https://github.com/mmistakes/skinny-bones-jekyll">
skinny-bones-jekyll theme demo</a> forkable
<a target="_blank" href="https://mmistakes.github.io/skinny-bones-jekyll/">
from GitHub</a>.
It features more use of graphics, and allows for localization.</p>
<p>Micheal blogs about his themes at
https://mademistakes.com/articles/using-jekyll-2016/</p>
<p><a name="FeaturesTable"></a></p>
<h3 id="feature-comparison-table">Feature Comparison Table</h3>
<p>Features by each template:</p>
<table>
<thead>
<tr>
<th style="text-align: left">P</th>
<th style="text-align: left">Feature</th>
<th style="text-align: center">HPSTR</th>
<th style="text-align: right">Minimal</th>
<th style="text-align: right">Skinny</th>
<th style="text-align: right">Simple</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">External links</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">C</td>
<td style="text-align: left">Floating menu</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Gallery layout</td>
<td style="text-align: center">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">YES</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">B</td>
<td style="text-align: left">I18n flags</td>
<td style="text-align: center">-</td>
<td style="text-align: right">YES+</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">B</td>
<td style="text-align: left">AutoLocalization</td>
<td style="text-align: center">-</td>
<td style="text-align: right">YES+</td>
<td style="text-align: right">YES</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">C</td>
<td style="text-align: left">Multiple authors</td>
<td style="text-align: center">-</td>
<td style="text-align: right">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left"><a href="#PageTOC">Page TOC</a></td>
<td style="text-align: center">-</td>
<td style="text-align: right">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Pages/Articles</td>
<td style="text-align: center">-</td>
<td style="text-align: right">*</td>
<td style="text-align: right">YES</td>
<td style="text-align: right">YES</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Amazon links</td>
<td style="text-align: center">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">B</td>
<td style="text-align: left">Posts</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">YES</td>
<td style="text-align: right">YES</td>
<td style="text-align: right">YES</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Pagination</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">C</td>
<td style="text-align: left">Rakefile.rb</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">B</td>
<td style="text-align: left">Reading time</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Tags list</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Site search</td>
<td style="text-align: center">+</td>
<td style="text-align: right">YES+</td>
<td style="text-align: right">-</td>
<td style="text-align: right">YES</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Social icons only</td>
<td style="text-align: center">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">YES</td>
</tr>
<tr>
<td style="text-align: left">A</td>
<td style="text-align: left">Social names</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">C</td>
<td style="text-align: left">Timezones</td>
<td style="text-align: center">YES</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">?</td>
<td style="text-align: left">Game</td>
<td style="text-align: center">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">?</td>
<td style="text-align: left">Clickable Map</td>
<td style="text-align: center">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
<tr>
<td style="text-align: left">?</td>
<td style="text-align: left">Shopping cart</td>
<td style="text-align: center">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
<td style="text-align: right">-</td>
</tr>
</tbody>
</table>
<p>All the themes feature:</p>
<ul>
<li>YAML front matter in index.md files processed by Jekyll</li>
<li>404.md</li>
<li>feed.xml generation</li>
<li>Disqus support</li>
<li>Use of SASS</li>
<li>Theme setup page from the main menu / tab</li>
<li>Links to major social sites
<br /><br /></li>
</ul>
<p><a name="PageTOC"></a></p>
<h3 id="pagetoc">PageTOC</h3>
<p>A Table of Contents is displayed as a drop-down</p>
<pre>\{\% include l18n.html \%\}</pre>
<h3 id="installation-and-generation">Installation and Generation</h3>
<p>Michael Rose presents a concise description of
<a target="_blank" href="https://mmistakes.github.io/minimal-mistakes/theme-setup/">
how to install the minimal-mistakes theme</a>.
This post augments and clarifies it.</p>
<p>Begin by making a folder and populating it on my local machine.</p>
<p>There is both a Master branch and a Develop branch.</p>
<p>I don’t care about all the change history, so I click “Download ZIP”
and unzip it into that folder rather than:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/mmistakes/minimal-mistakes.git
</code></pre></div></div>
<h3 id="grunt-example">Grunt example</h3>
<p>After downloading, have Maven pull in dependencies based on the Gemfile:</p>
<p>bundle install</p>
<p>This causes the list of dependencies in the Gemfile to be downloaded.</p>
<p>Behind the scenes is a running of the <strong>Gruntfie.js</strong> that comes with the theme.
It defines the parameters of various tasks that are downloaded:</p>
<ul>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-clean">clean</a>
clears files and folders.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-jshint">jshint</a>
validates files with JSHint, based on the <strong>.jshintrc</strong> configuration file at the root folder.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-uglify">uglify</a>
minfies files with UglifyJS.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-watch">watch</a>
runs tasks whenever watched files change.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-imagemin">imagemin</a>
minifies PNG graphics files.</li>
<li><a target="_blank" href="https://github.com/sindresorhus/grunt-svgmin">grunt-svgmin</a>
minifies SVG graphics files.</li>
</ul>
<p>NOTE: File names beginning with a dot are hidden.</p>
<h2 id="gulp-example">Gulp example</h2>
<ul>
<li><a target="_blank" href="https://github.com/kriasoft/static-site-starter">
https://github.com/kriasoft/static-site-starter</a>
uses a gulpfile.js</li>
</ul>
<h2 id="more-on-front-end-styling">More on front-end styling</h2>
<p>This is one of several topics:</p>
<ol>
<li><a href="/design-systems/">UI Design Systems</a></li>
<li><a href="/text-editors/">Text Editors</a></li>
<li><a href="/markdown-text-for-github-from-html/">Markdown text for GitHub from HTML</a></li>
<li>
<p><a href="/508-accessibility/">508 Accessibility</a></p>
</li>
<li><a href="/grpc/">gRPC (g___ Remote Procedure Call)</a></li>
<li>
<p><a href="/http2-transition-project-plan/">HTTP/2 Transition Project Plan</a></p>
</li>
<li><a href="/front-end/">Front-end UI creation options</a></li>
<li><a href="/docusaurus/">Docusaurus static website generator</a></li>
<li><a href="/static-websites/">Static websites</a></li>
<li><a href="/jam-stack-website-project-plan/">JAM Stack Website Project Plan</a></li>
<li><a href="/jekyll-site-development/">Jekyll Site Development</a></li>
<li>
<p><a href="/gatsbyjs/">Gatsby app generator</a></p>
</li>
<li><a href="/website-styles/">Website styles</a></li>
<li><a href="/website-style-programming/">Website Styling</a></li>
<li>
<p><a href="/vuejs/">VueJs front-end framework</a></p>
</li>
<li>
<p><a href="/protractor/">Protractor to automate testing of Angular and other web pages</a></p>
</li>
<li><a href="/email-from-website/">Email from website</a></li>
<li><a href="/jekyll-with-search/">Search within Hyde format Jekyll websites</a></li>
<li>
<p><a href="/windows-tile-pin-pictures-feed/">Windows Tile Pin Picture to Website Feed</a></p>
</li>
<li><a href="/data-visualization-using-tableau/">Data Visualization using Tableau</a></li>
</ol>
<p><a href="https://wilsonmar.github.io/jekyll-templates/">Jekyll templates</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 24, 2025.</p>
https://wilsonmar.github.io/first-aid2025-11-23T00:00:00+00:002025-11-23T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>What is in an ideal field (first-aid) medical kit to prevent and treat accidents and trauma.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/first-aid/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#common-medical-conditions" id="markdown-toc-common-medical-conditions">Common Medical Conditions</a></li>
<li><a href="#kit" id="markdown-toc-kit">Kit</a></li>
<li><a href="#medicines" id="markdown-toc-medicines">Medicines</a></li>
<li><a href="#medicinal-plants" id="markdown-toc-medicinal-plants">Medicinal plants</a></li>
<li><a href="#warmth-against-exposure--shock" id="markdown-toc-warmth-against-exposure--shock">Warmth (against Exposure & Shock)</a></li>
<li><a href="#comms" id="markdown-toc-comms">Comms</a></li>
<li><a href="#aed" id="markdown-toc-aed">AED</a></li>
<li><a href="#oxygen" id="markdown-toc-oxygen">Oxygen</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>HSA/FSA Approved</p>
<h2 id="common-medical-conditions">Common Medical Conditions</h2>
<p><a target="_blank" href="https://www.amazon.com/Survival-Medicine-Handbook-Essential-Guide/dp/0988872501">$28.29 The Survival Medicine Handbook</a> by Joseph and Amy Alton at <a target="_blank" href="https://www.doomandbloom.net/">doomandbloom.net</a> & <a target="_blank" href="https://www.youtube.com/user/drbonespodcast">YouTube</a> covers:</p>
<ul>
<li>Appendicitis and Conditions that Mimic It</li>
<li>Urinary Tract Infections (UTI)</li>
<li>Mosquito-Borne Illnesses</li>
<li>Allergic Reactions and Anaphylaxis</li>
<li>Head Injuries</li>
<li>Animal Bites</li>
<li>Snake Bites</li>
<li>Head injuries</li>
<li>Kidney Stones</li>
<li>Dislocations and Fractures</li>
<li>Nosebleeds</li>
<li>Pain Medications</li>
<li>Natural Pain Relief
<br /><br /></li>
</ul>
<h2 id="kit">Kit</h2>
<p><a target="_blank" href="https://www.youtube.com/watch?v=HuvDF9N71-E&list=PL7rpYtlPtK0X1cv9iII5ZnU9ZDOWTiYUB">Medium kit</a>.</p>
<p><a target="_blank" href="https://store.doomandbloom.net/first-aid-kit-large-size-stomp-supreme/">The Alton’s 30 lb. FIRST AID KIT LARGE SIZE STOMP SUPREME™ is $1,699</a> plus:</p>
<ul>
<li>$140 Full Dental Kit <a target="_blank" href="https://www.youtube.com/watch?v=EBBhXEB3mAE&list=PL7rpYtlPtK0X1cv9iII5ZnU9ZDOWTiYUB&index=4&pp=iAQB">VIDEO</a> and BOOK: “When There is No Dentist” by Murray Dickson.
<br /><br /></li>
</ul>
<p>We give large first aid kit as a house warming present.</p>
<p><a target="_blank" href="https://www.amazon.com/dp/B0861WT26L/ref=wilsonslifenotes">At $259.99</a>, the Scherber Fully-Stocked First Responder Professional Advanced EMT/EMS Trauma Kit Reflective Bag w/10+ Compartments, Zippered Pockets has 250+ items, including a neck brace, manual blood pressure cuff,</p>
<p><a target="_blank" href="https://www.amazon.com/Premium-Waterproof-Compact-Medical-Emergencies/dp/B096X2NK1B/ref=wilsonslifenotes">$45.99 for 333 items</a> in a waterproof bag.</p>
<p>bandages, CPR face shield, gloves, iodine prep pads, instant cold pack, tourniquet, etc. Meets international medical standards, 100% latex free.</p>
<p><a target="_blank" href="https://jase.com/products/jaseaid-trauma-kit">$200</a> Trauma kit</a> includes</p>
<ul>
<li>ETQ Wide Tourniquet, Gen 1</li>
<li>Israeli Compression Bandage 4” for hemorhage control</li>
<li>Hemostatic Gauze</li>
<li>Slishman Wrap</li>
<li>Z Fold Compressed Gauze</li>
<li>Hyfin Compact Chest Seal</li>
<li>28F Nasal Airway incl Lube Pkt</li>
<li>Emergency Thermal Blanket</li>
<li>Trauma Shears</li>
<li>Abdominal Pad 5”x9”</li>
<li>Eye Shield Aluminum</li>
<li>Mini Black Sharpie</li>
<li>LED Flashlight</li>
<li>
<p>4x4 Burn Dressing
<br /><br /></p>
</li>
<li>New Skin</li>
<li><a target="_blank" href="https://www.walmart.com/ip/Vermont-s-Original-Bag-Balm-Skin-Moisturizer-for-Dry-Skin-8oz-Tin/55050082">$7.98 Bag Balm</a> (Vermont) soothes and protects dry, cracked skin</li>
<li>Bug spray</li>
<li>Bug bite relief</li>
</ul>
<h2 id="medicines">Medicines</h2>
<p>https://store.doomandbloom.net/first-aid-kits-hsa-and-fsa-eligible/?page=2</p>
<p>Alton’s Antibiotic Book ($27.99)</p>
<p><a target="_blank" href="https://jasemedical.com/">jasemedical.com</a> sells medicines (antibiotics) from Canada. <a target="_blank" href="https://www.youtube.com/watch?v=RcIWM-6oY2c">VIDEO</a>:</p>
<p>Their $289.95 Jase case for those who complete a questionaire from ThomasLabs:</p>
<p>To treat bacterial infections of those without kidney conditions:</p>
<ul>
<li>Amoxicillin-Clavulanate (Clavamox generic Augmentin) antibiotic 875-125mg <a target="_blank" href="https://www.goodrx.com/amoxicillin-potassium-clavulanate">$15</a> for 14, <a target="_blank" href="https://www.chewy.com/amoxicillin-clavulanate-potassium/dp/397459">$17</a></li>
<li>Celecoxib (Generic Celebrex) 100mg capsules <a target="_blank" href="https://www.goodrx.com/celecoxib">$10.59</a></li>
<li>Doxycycline <a target="_blank" href="https://www.goodrx.com/doxycycline-hyclate">$11.51</a></li>
<li>Metronidazole (generic Metrocream, Metrogel, Metrogel-Vaginal, Metrolotion, Flagyl, Nuvessa) <a target="_blank" href="https://www.goodrx.com/metronidazole">$12.99 for 14</a> for Ghiadia.</li>
<li>
<p>Azithromycin (Generic Zithromax) 250mg (Pack of 6) <a target="_blank" href="https://www.goodrx.com/azithromycin">$3.49</a> 100mg (14 tabs)</p>
</li>
<li>
<p>Ciprofloxacin (Generic Cetraxal and Ciloxan and Cipro) <a target="_blank" href="https://www.goodrx.com/ciprofloxacin">$9.89 500mg (14 tabs)</a> has side effects weakness of muscles
<br /><br /></p>
</li>
<li>Clindamycin 150 mg (30 caps) = Fish Cin</li>
</ul>
<p>For other conditions:</p>
<ul>
<li>Loperamide (Imodium) <a target="_blank" href="https://www.goodrx.com/loperamide">$5.13 2mg x 30 caps</a> for diarrhea.</li>
<li>Ondansetron (Generic Zofran) 4mg tablet <a target="_blank" href="https://www.goodrx.com/ondansetron">$18.54</a> for nausea and vomiting caused by chemotherapy.</li>
<li>Triamcinolone 0.1% 30g cream <a target="_blank" href="https://www.goodrx.com/triamcinolone">$5.03</a> to reduce swelling and ulcers in the mouth.</li>
<li>Methylprednisolone (Generic Medrol) 4mg Dosepk (21 tablets) - US Only <a target="_blank" href="https://www.goodrx.com/methylprednisolone">$10.93 for 4mg x 21 tabs</a> to treat inflammation of the skin, joints, lungs, and other organs.</li>
</ul>
<p>Go bag:</p>
<ul>
<li>bacterial treatments above.</li>
<li>Trimethoprim-Sulfamethoxazole (Generic Bactrim and Septra and Sulfatrim) <a target="_blank" href="https://www.goodrx.com/sulfamethoxazole-trimethoprim">$8.67 800/160mg</a> = Bird Sulfa to prevent some bacterial skin infections.</li>
<li>Scopolamine (Generic Transderm Scop antiemetics) <a target="_blank" href="https://www.goodrx.com/scopolamine">$28.10 for 1 mg patch x3</a> to prevent nausea and vomiting.</li>
</ul>
<p>$379.95</p>
<ul>
<li>bacterial treatments above.</li>
<li>
<p>Acetaminophen (Generic Acephen and Mapap and Q-Pap and Tylenol) <a target="_blank" href="https://www.goodrx.com/acetaminophen">$2.61 325mg x 30 tabs</a> to treat mild to moderate pain and reduce fever.</p>
</li>
<li>Dextromethorphan (Generic Delsym, Mucinex) <a target="_blank" href="https://www.goodrx.com/dextromethorphan">$19.07</a> 15mg x 180 caps to calm cough reflex.</li>
<li>
<p>Diphenhydramine (Generic Benadryl and Diphenhist and Unisom and Zzzquil) <a target="_blank" href="https://www.goodrx.com/diphenhydramine">$2.70</a> 25mg x 30 caps</p>
</li>
<li>Ibuprofen (Motrin) 200mg</li>
<li>Loperamide (Imodium) 2mg</li>
<li>Loratadine (Claritin)</li>
<li>
<p>Lubricant Eye Drops
<br /><br /></p>
</li>
<li>Eye wash</li>
</ul>
<h2 id="medicinal-plants">Medicinal plants</h2>
<p><a target="_blank" href="https://www.youtube.com/watch?v=EYi5qSDy38M&5m47s">VIDEO</a>:</p>
<ul>
<li>Hemlock looks similar to carrots, but paralyzes breathing</li>
<li>Foxglove (purpose cups) stops hearts</li>
<li>
<p>Death Camas looks like onions</p>
</li>
<li>Willow bark tea (bitter) has siliclic acid like aspirin</li>
<li>Plantain crushed leaves reduce swelling and itching</li>
<li>Dandellion tea has vitimin C</li>
<li>Yarrow promotes blood clotting & microbacterial</li>
</ul>
<h2 id="warmth-against-exposure--shock">Warmth (against Exposure & Shock)</h2>
<ul>
<li>Tent</li>
<li>Cot</li>
<li>Sleeping bag</li>
<li>Wool blankets</li>
<li>Thick mylar to hide from UV cameras by hostiles.</li>
<li>
<p>Fire blanket</p>
</li>
<li>
<p>Tarps</p>
</li>
<li>Smoke Detector on ceiling</li>
<li>Carbon Mononxide Detector near the floor</li>
<li>Fire extinguisher (ABC rated)</li>
<li>
<p>Fire-Proof blanket</p>
</li>
<li>
<p>Fire escape ladder</p>
</li>
<li>
<p>Alcohol?</p>
</li>
<li>Pain killers</li>
</ul>
<h2 id="comms">Comms</h2>
<p>Get the frequency at https://noaaweatherradio.org has no Montana</p>
<ul>
<li>GPRS walkie-talkie</li>
<li>
<p>Yaesu Ham radio YouTube @HamRadioCrashCourse</p>
</li>
<li>Rechargeable batteries (AA, AAA, C, D, 9V)</li>
<li>USB power bank</li>
</ul>
<h2 id="aed">AED</h2>
<p>Survival from an heart attack drops from 100% in 2 minutes to 20% in 12 minutes. So call 911 before starting.</p>
<p>Automated External Defibrillators (AEDs) provide critical emergency response for cardiac events. Wall-mounted cabinets ensure visibility and accessibility, while portable units offer mobility.</p>
<p>PROTIP: Keep a cloth-cutting sizzors and razor with your AED, for use dry. A hairy chest can prevent the AED pads from properly attaching and could cause an incorrect reading of the heart rhythm.</p>
<p><a target="_blank" href="https://www.amazon.com/Philips-HeartStart-Home-Defibrillator-Carry/dp/B00064CED6/ref=wilsonslifenotes">For $1,600</a> from Phillip’s HeartStart store, the Phillips HeartStart (HS1) M5066A-C02 has a self-test before use. When you install the battery for the first time the unit runs through a series of self diagnostics and will guide you through the setup process.</p>
<p>The FRX is for rugged enviornments. Insert its Infant/Child key for 0-8 year children under 55lbs.</p>
<p>It runs a self-check every 24 hours and makes voice prompts.</p>
<p>It offers a 8-yr warranty for AED, 4-year warranty for battery, pads are warrantied until expiration date. The kit comes with sticker to note expiration dates. But also add to your calendar.</p>
<p>After use, replace pads. Medical devices require professional training and maintenance per local regulations.</p>
<p>https://www.amazon.com/VBEGIN-Replacement-Battery-Compatible-Defibrillator/dp/B0DTHB9RCZ/ref=wilsonslifenotes
$169.99 M5070A Replacement Battery Compatible with Philips Defibrillator, Replacement Battery for Models M5066A & M5068A - Made in USA (Model M5070-ABE)</p>
<p>An alternative is <a target="_blank" href="https://jase.com/products/zoll-aed-plus">$2,195</a> ZOLL AED Plus (Fully Automatic)</p>
<h2 id="oxygen">Oxygen</h2>
<p><a target="_blank" href="https://www.amazon.com/UQQU-001-Portable-Oxygen-Generator/dp/B0F6T82V6W/ref=wilsonslifenotes">$299.99</a> UQQU Portable Oxygen Generator-Stability Home Oxygen Generator,Easy to Operate. But only 1 year warranty.</p>
<p><a href="https://wilsonmar.github.io/first-aid/">First-aid</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 23, 2025.</p>
https://wilsonmar.github.io/weather-info2025-11-22T00:00:00+00:002025-11-22T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>How to capture weather-related readings and display those metrics for your microclimate.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/weather-info/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#measurements-and-instruments" id="markdown-toc-measurements-and-instruments">Measurements and Instruments</a> <ul>
<li><a href="#channels" id="markdown-toc-channels">Channels</a></li>
</ul>
</li>
<li><a href="#maps-of-neighborhood-variation" id="markdown-toc-maps-of-neighborhood-variation">Maps of Neighborhood Variation</a></li>
<li><a href="#trends-over-time" id="markdown-toc-trends-over-time">Trends Over Time</a></li>
<li><a href="#home-assistant" id="markdown-toc-home-assistant">Home Assistant</a></li>
<li><a href="#internet-weather-reports" id="markdown-toc-internet-weather-reports">Internet Weather Reports</a></li>
<li><a href="#python-program-code" id="markdown-toc-python-program-code">Python Program Code</a></li>
<li><a href="#latitudes--longitudes" id="markdown-toc-latitudes--longitudes">Latitudes & Longitudes</a></li>
<li><a href="#instrument-technologies" id="markdown-toc-instrument-technologies">Instrument Technologies</a></li>
<li><a href="#ambient-weather-instruments" id="markdown-toc-ambient-weather-instruments">Ambient Weather Instruments</a></li>
<li><a href="#weather-on-roads-in-each-state" id="markdown-toc-weather-on-roads-in-each-state">Weather on Roads in Each State</a></li>
<li><a href="#diy-weather-stations" id="markdown-toc-diy-weather-stations">DIY Weather Stations</a></li>
<li><a href="#cameras" id="markdown-toc-cameras">Cameras</a></li>
<li><a href="#weather-prediction" id="markdown-toc-weather-prediction">Weather Prediction</a></li>
<li><a href="#weather-forecasts" id="markdown-toc-weather-forecasts">Weather Forecasts</a></li>
<li><a href="#ambient-weather-api" id="markdown-toc-ambient-weather-api">Ambient Weather API</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p><em>Click “OVERVIEW” to minimize the Index</em></p>
<p>When a local weather station is installed, it needs <strong>primary and backup power</strong> and additional collector devices such as measurement of solar radiation.
Ambient Weather devices have channels 1-8 to which Arduino or Raspberry Pi DIY can be added locally. <strong>MAC</strong> addresses are used to <strong>configure</strong> internet
to the Ambient Weather Network service which displays a website.
There is also local <strong>dashboard</strong> from a <a href="#HomeAssistant">Home Assistant server</a>.
In a similar way, external websites display what Inductive Ignition, Palantir, and other enterprise-scale systems built with industrial-strength <a href="#weather-prediction">forecasting algorithms</a> and a wide set of <strong>alerts</strong>.
When alerts are sent to your local <strong>Listener</strong> service can <strong>trigger</strong> actuators to take physical action.
Such exposure to the external public internet requires a <strong>firewall</strong> to filter out suspicious senders.</p>
<h2 id="measurements-and-instruments">Measurements and Instruments</h2>
<p>This display above is from the <a target="_blank" href="https://ambientweather.com/support/ws-5000-weather-station-support/">Ambient Weather WS-5000 series</a> after <a target="_blank" href="https://www.youtube.com/watch?v=wyFh8edFZiA" title="VIDEO">installation/configuration</a>:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1742185185/weather-ws-5000-891x527_z7ypgc.png"><img alt="weather-481x271.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1742185185/weather-ws-5000-891x527_z7ypgc.png" /></a></p>
<p>(-) and (+) adjust values: <a target="_blank" href="https://ambientweather.com/glossary.html">Glossary</a><br /></p>
<table border="1" cellpadding="4" cellspacing="0"><tr valign="top"><td>(-)<br />Minus<br />Brightness </td><td>(+)<br />Plus<br />Brightness<br />Adjust </td><td> Backlight<br />On/Off<br />toggle </td><td> Background<br />On/Off<br />toggle </td><td> Pressure<br />Absolute<br />/Relative<br />toggle </td><td> Channel </td><td> History </td><td> Set<br />Mode </td></tr></table>
<ol>
<li>The icon is the <a target="_blank" href="https://ambientweather.net/dashboard/df920bc15d3b38069de0ddc5cc34b374">AmbientWeather.net dashboard for a sample location</a>. (<a target="_blank" href="https://ambientweather.com/support/ws-5000-weather-station-support/">FAQ</a>)</li>
<li>
<p>Wi-Fi signal strength icon. An exclamation point ! indicates the display is connected to Wi-Fi but not the Internet.</p>
</li>
<li>Outdoor Sensor Array Low Battery Indicator</li>
<li>
<p>Outdoor Sensor Array Signal Quality</p>
</li>
<li>
<p>Outdoor Temperature (shown with the larger ring) is measured in Centigrade or Fahrenheit by therometers. Above and below the current temp. in large numbers in the middle is the high of the day on top and low temp. of the day on the bottom. The time of day when that’s recalculated can be set in Settings.</p>
</li>
<li>
<p><strong>Humidity</strong> is the <strong>percentage</strong> of water vapor in the air divided by the <a href="#dewpoint">Dew Point</a>.</p>
<p>A manual psychrometer (aka “sling psychrometer”) uses two thermometers. One has a wet wick around the bulb. The thermometer with the wet wick becomes cooler when water evaporates. The temperature difference on the two thermometers provides the Dew Point.</p>
<p>Manual hygrometers use a polished mirror. As air within the hygrometer is cooled to the dew point, moisture forms on the mirror, which blocks some of the reflected light, indicating that the dew point temperature has been reached.</p>
<p><a target="_blank" href="https://en.wikipedia.org/wiki/Heat_index">The Heat Index</a> shows how humidity adds to the danger of high perceived temperature:<br />
<a target="_blank" href="https://www.noaa.gov/sites/default/files/2022-05/heatindex_chart_rh.pdf"><img alt="weather-heat-index-1510x960.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763878314/weather-heat-index-1510x960_ckptm8.png" /></a></p>
<p>These values are <a target="_blank" href="http://wpc.ncep.noaa.gov/html/heatindex.shtml">calculated</a> for shady locations only. Exposure to full sunshine can increase heat index values by up to 15°F. Also, strong winds, particularly with very hot, dry air, can be extremely hazardous as wind adds heat to the body. <a target="_blank" href="https://www.dir.ca.gov/dosh/heatillnessinfo.html">Know Heat Illness Prevention</a>.</p>
<p>“…your body starts to lose the ability to clot @ 95 degrees…”</p>
</li>
<li>Wind:
<ul>
<li>Wind direction (blue arrow) is measured in compass degrees by wind vanes (looks like an airplane)</li>
<li>Wind speed and Gust in mph is measured by anemometers within 10-minute average wind direction (larger gray arrow).</li>
<li>Old anemometers have spinning cups</li>
<li>New anemometers have ultrasonic technology that has no moving parts.</li>
</ul>
</li>
<li>Leak detector status (<a href="#Channels">channels 1-4</a>, if installed)</li>
<li>Soil moisture, leaf wetness CH4 (<a href="#Channels">Channel</a> 4 among channels 1-8 for each of 8 WH31 Temp/Humidity remote sensors that can be added).</li>
<li>Current date and time</li>
<li>
<p>Lighting detector last strike, last strike time and strikes per hour (if installed).</p>
<p><a name="Channels"></a></p>
<h3 id="channels">Channels</h3>
<p>PROTIP: Define you custom list if you install additional detectors:</p>
<p>Indoor<br />
T&H CH1 = Pool (hard-coded)<br />
T&H CH2 = unused<br />
T&H CH3 = unused<br />
T&H CH4 = unused<br />
T&H CH5 = Upstairs freezer<br />
T&H CH6 = unused<br />
T&H CH7 = Downstairs leak detector<br />
T&H CH8 = Downstairs freezer</p>
</li>
<li>Indoor, Channel 1-8 humidity</li>
<li>Indoor, Channel 1-8 temperature from <a target="_blank" href="#ambient-weather-instruments">additional instruments</a> such as Ambient Weather’s WH31PF Wireless Waterproof Floating Pool and Spa Thermometer</li>
<li>CH (Channel) scroll mode indicator</li>
<li>
<p>Channel indicator.</p>
</li>
<li>Rain icon: maximum is 1.4 inch.
<ul>
<li>“Rate”, daily, hourly, weekly, monthly and yearly rain inches</li>
</ul>
</li>
<li>Forecast icon based on rate of change of pressure</li>
<li>
<p><a name="Pressure"></a>“Barometer Reading”: <a target="_blank" href="https://blog.mensor.com/blog/adjusting-barometric-pressure-readings-for-aviation-and-meteorology">BLOG</a>: Atmospheric pressure is also called Barometric pressure because it’s measured by <a target="_blank" href="https://cumulus.hosiene.co.uk/viewtopic.php?t=8286">legacy</a> barometers that measure the compression of mercury due to the weight of air above a square inch. The <strong>absolute</strong> pressue measured at Mean Sea Level (MSL) is 14.696 PSI (pounds per square) inch of mercury (due to gravity). That’s a constant <strong>1013.25 hPa (hectoPascals)</strong> aka “millibars”, also designated as “1 ATM” by the International Standard Atmosphere (ISA) standard. That’s the equivalent of <strong>29.92 inHg</strong> (inches of mercury, symbol Hg).</p>
<p><a target="_blank" href="https://en.wikipedia.org/wiki/Atmospheric_pressure">Wikipedia</a> notes that the highest sea-level pressure on Earth occurs in Siberia, where record highs are 1,085 hPa (15.74 psi; 32.0 inHg). The lowest measurable sea-level pressure is found at the centres of tropical cyclones and tornadoes, with a record low of 870 hPa (12.6 psi; 26 inHg). The lowest place on Earth, the Dead Sea at 430 metres (1,410 ft) below sea level, has a typical atmospheric pressure of 1,065 hPa.</p>
<p><a target="_blank" href="https://crondallweather.co.uk/understanding-the-basics-relative-air-pressure-vs-absolute-air-pressure/">CALCULATOR</a>: Temperature and humidity also affect the density of the air, which in turn affects atmospheric pressure. Pressure is proportional to temperature and inversely related to humidity, and both of these are necessary to compute an accurate figure.</p>
<p><strong>Relative (REL)</strong> pressure readings decrease as you gain altitude AND as heavier clouds move away. To differentiate between altitude and weather impact, weather reports of locations are normalized relative to <strong>sea level</strong>. In the US, three digits are all that are transmitted: decimal points and the one or two most significant digits are omitted: 1,013.2 hPa (14.695 psi) is transmitted as 132; 1,000 hPa (100 kPa) is transmitted as 000; 998.7 hPa is transmitted as 987; etc.</p>
<p>REMEMBER: A system transmitting the last three digits transmits the same code (800) for 1080.0 hPa as for 980.0 hPa.</p>
<p>In technical terms, “Atmospheric pressure is thus proportional to the weight per unit area of the atmospheric mass above that location.”</p>
<p>BTW The weight of a column of freshwater of approximately 10.3 m (33.8 ft) is also “one atmosphere” (101.325 kPa or 14.7 psi). Thus, a diver 10.3 m under water experiences a pressure of about 2 atmospheres (1 atm of air plus 1 atm of water). Conversely, 10.3 m is the maximum height to which water can be raised using suction under standard atmospheric conditions.</p>
</li>
<li>“Max Daily Gust” of wind in MPH.</li>
<li>Moon Phase</li>
<li>
<p>“10 MinAvg” (10-minute average) wind speed and compass direction</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1727494071/compass-800x800_hvwmtu.webp"><img width="300" alt="compass-800x800_hvwmtu.webp" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1727494071/compass-800x800_hvwmtu.webp" /></a></p>
</li>
<li>
<p>“UV Index” (Ultraviolet Index) is measured by a UV meter (if installed).</p>
</li>
<li>
<p>Under arc: am: Sunrise, pm: sunset. On the website is this tile:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1742678815/weather-amb-web-sun-moon-540x572_ep3qfa.png"><img alt="weather-amb-web-sun-moon-540x572.png" width="300" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1742678815/weather-amb-web-sun-moon-540x572_ep3qfa.png" /></a></p>
<p>FUN FACT: About 5 minutes is lost or gained each day.</p>
</li>
<li>
<p><a target="_blank" href="https://ambientweather.com/solarradiation.html">Solar Radiation</a>, measured in <strong>W/m^2</strong> (Watts per square meter), aka Lux or FC (Foot Candles) by <a target="_blank" href="https://www.amazon.com/s?k=pyranometers">pyranometers</a> that have a dome-shaped sensor that can be seen from all angles, resembling a “UFO saucer”.</p>
<p>The measurement is used to calculate evapotranspiration - the potential for evaporation of moisture from the soil (or the reverse of rainfall) as a function of solar energy, wind, and temperature.</p>
<p><a target="_blank" href="https://power.larc.nasa.gov/data-access-viewer/">https://power.larc.nasa.gov/data-access-viewer</a></p>
<p>Solar Radiation is not displayed by default on Ambient Weather’s website.
<a target="_blank" href="https://www.perplexity.ai/search/how-to-obtain-stats-from-ambie-iIsLm3BkSZOA.UUU0RQ.4g#0">Can it be obtained from API</a>?</p>
<p>Historically, sunshine intensity is measured thru direct solar radiation using <strong>pyrheliometers</strong> which have a tubular structure that needs to be aimed at the sun, mounted on a <strong>solar tracker</strong>.
BTW Before electronic photoelectric sensors are used by computers, the Campbell-Stokes and Jordan Sunshine Recorders (in the UK) used a glass sphere to focus sunlight onto a recording card replaced each day, creating burn marks that indicate the duration of sunshine that day.</p>
</li>
<li>“IN “(Indoor) air quality in ug/m3 by a PM2.5 sensor (if installed)</li>
<li>
<p>“OUT” (Outdoor) Particulate monitor in ug/m3 by a PM2.5 sensor (if installed)</p>
</li>
<li>
<p><a name="dewpoint"></a><strong>Dewpoint</strong> is calculated for measuring the comfort level from moisture in the air. A Simplified version of the <a href="https://en.wikipedia.org/wiki/Magnus-Tetens_equation">Magnus-Tetens Formula</a> is:</p>
<p>AirTemp - ( ( 100 − RelHumidity ) / 5 )</p>
<p><a target="_blank" href="https://www.weather.gov/arx/why_dewpoint_vs_humidity">According to NOAA</a> at <a target="_blank" href="https://weather.gov">weather.gov</a>:</p>
<p>At 45 degrees or below, air feels “refreshing”.<br />
At 50, it’s “comfortable”. At 55, it’s “not bad”.<br />
At 60, it’s “muggy”. At 65 it’s “Very Humid”. At 70 it’s “tropical”.</p>
<p>Technically, Dew Point is the <strong>temperature</strong> to which air must be cooled (at constant pressure) in order for it to become saturated (have 100% relative humidity). Dewpoint is the maximum amount of water vapor air can hold at a given temperature. When air cools to its dew point, it reaches 100% relative humidity, and any further cooling causes water vapor to condense into droplets, forming dew or fog.</p>
<p>In <a target="_blank" href="https://ambientweather.com/dewpoint.html">other words</a>, “The dew point is the temperature at which a given parcel of humid air must be cooled, at constant barometric pressure, for water vapor to condense into water. The condensed water is called dew. The dew point is a saturation temperature.”</p>
<p>For example, if the temperature is 80 and the dew point 70, the relative humidity is 72%. Much more water is in the air at 100% humidity at a temperature of 70 degrees than at 30 degrees.</p>
</li>
<li>
<p>“Feels Like” will always be cooler than the air temperature because it is calculated based on the impact of wind speed (Wind Chill Factor in cold temperatures) or humidity (Heat Index in hot temperatures) on human skin. high humidity can intensify the sensation of cold by increasing heat loss from your body. Likewise, a cloudy sky prevents sunlight from providing even slight warmth, making the chill feel even sharper. <a target="_blank" href="https://www.weatherandradar.com/discover-the-app/understanding-the-feels-like-temperature-weather-and-radars-sophisticated-cold-measurement-tool--8ef4d0b3-5ae4-4e40-ad4c-ff233488a488">PROTIP</a>: On cold windy days, wear “wind-proof” coats instead of woven sweaters because wind whisks away the thin layer of warm air your body creates to stay cozy, leaving you feeling the full bite of winter’s chill.</p>
</li>
<li>The <strong>lightning icon</strong> appears when when conditions make it possible for lightning storms to form in the area. The dew point is the temperature at which air becomes saturated with moisture at a given pressure, leading to the formation of dew, fog, or frost. <a target="_blank" href="https://www.cbsnews.com/boston/news/what-is-dew-point-humidity-sticky-weather/">BLOG</a></li>
<li>Daily Rain Icon: Rainfall is measured by rain gauges. Modern ones use ultrasonic technology that has less moving parts.</li>
</ol>
<ul>
<li>Tide levels?</li>
<li>Soil moisture is measured by soil moisture sensors (if installed).</li>
</ul>
<!-- This is from the Ambient Weather WS-5000 series:<br />
<a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1742181715/weather-ws-5000-dash_bjmwjh.png"><img alt="weather-ws-5000-dash.png" width="546" height="390" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1742181715/weather-ws-5000-dash_bjmwjh.png" /></a>
-->
<h2 id="maps-of-neighborhood-variation">Maps of Neighborhood Variation</h2>
<p>This map of temperatue around a location shows the extent of variation among microclimates within just a mile or two
– generated by <a target="_blank" href="https://ambientweather.net/dashboard/df920bc15d3b38069de0ddc5cc34b374">AmbientWeather.net</a></p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1742904058/weather-neighbors-890x618_swk59c.png"><img alt="weather-neighbors-890x618.png" width="300" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1742904058/weather-neighbors-890x618_swk59c.png" /></a></p>
<p>Comparison vs. other weather stations (upwind, downwind, etc.).</p>
<h2 id="trends-over-time">Trends Over Time</h2>
<p>This <a target="_blank" href="https://www.weatherbriefing.com/weather-blog/2020/7/5/a-teaching-tool-relationship-between-temperature-relative-humidity-and-dew-point">meteograph</a> shows the relationship of changes among several metrics over time:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1742712550/weather-dew-temp-1019x312_zsq8kp.jpg"><img alt="weather-dew-temp-1019x312.jpg" width="1019" height="312" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1742712550/weather-dew-temp-1019x312_zsq8kp.jpg" /></a></p>
<p>The temperature (brown line) warms up (by the sun) during the day.
Temperature cools down at night.</p>
<p>As air cools, humidity (purple line) rises to condensate as morning fog or clouds.</p>
<p>Condensation is likely to occur when the air temperature reaches the <a href="#dewpoint">Dew point</a> (green line) rises to the temperature when air becomes saturated with moisture (at a given pressure).
That’s when rain and snow occurs.</p>
<p>But remember that temperature (brown line) and dew point (in green) change independently of each other. Each can change without affecting the value of the other.</p>
<p>To see metrics over time with multiple metrics overlaid together, click “Graphs & Tables” on the <a target="_blank" href="https://ambientweather.net/dashboard/df920bc15d3b38069de0ddc5cc34b374">AmbientWeather.net dashboard for a sample location</a>:</p>
<ul>
<li>Outdoor temperature, Dew Point, Feels like</li>
<li>Wind Speed with Wind Gusts overlaid</li>
<li>Wind direction (toward the direction of the wind</li>
<li>Daily Rain with Rain Rate</li>
<li>Relative Pressure: An upward trend indicates a high pressure system moving in with clear skies, while a downward trend indicates a low pressure sucking in bad weather.</li>
<li>Humidity</li>
<li>
<p>Sun Height (in yellow line) and Moon Height (in white line)</p>
<p>The highest point is not exactly Noon.</p>
</li>
<li>Air quality with Particulate matter overlaid</li>
<li>Rain with Snow overlaid</li>
<li>UV Index with Solar Radiation overlaid</li>
</ul>
<p><a target="_blank" href="https://ambientweather.com/awn-plus-annual-subscription">AWN+ subscription</a> unlocks premium features like degree day tiles, enhanced graphing, text alerts, and a 10-Day Hourly Forecast.</p>
<p>Advanced map layers are now free.</p>
<p><a target="_blank" href="https://d3js.org/">d3.js</a> is a JavaScript library for producing dynamic, interactive data visualizations in web browsers. <a target="_blank" href="https://learning.oreilly.com/videos/-/10000MNHV2021133/">VIDEO</a></p>
<p>Upwind locations on the map would experience weather patterns (such as rain) before you (n=in a downwind location).</p>
<p><a name="HomeAssistant"></a></p>
<h2 id="home-assistant">Home Assistant</h2>
<p><a target="_blank" href="https://www.home-assistant.io/integrations/ambient_station/">Home Assistant</a> integration.
for smart Home display trends.</p>
<h2 id="internet-weather-reports">Internet Weather Reports</h2>
<ul>
<li>Ambient Weather has its own cloud (AWN) Network to receive weather reports for its devices.
<ul>
<li>https://ambientweather.com/mwdownloads/download/link/id/1223</li>
</ul>
</li>
<li>
<p>WeatherUnderground.com also accepts video from Ambient Weather AirCams.</p>
</li>
<li>WeatherBug.com (USA)</li>
<li>pwsweather.com (USA) Weather For You</li>
<li>windfinder.com (USA)</li>
<li>wxqa.com (Citizens Weather Observation Program) USA</li>
<li>
<p>openweathermap.org USA</p>
</li>
<li>wow.metoffice.gov.uk</li>
<li>awekas.at (Austria)</li>
</ul>
<h2 id="python-program-code">Python Program Code</h2>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1753454155/ambient-weather-481x271_rrnlzt.png"><img alt="weather-481x271.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1753454155/ambient-weather-481x271_rrnlzt.png" /></a></p>
<p>I wrote a Python program to retrieve and format weather info from an API calls to openweather.com.</p>
<p>The program makes use of external modules, so can’t be run within ProgramWiz.</p>
<p>So run my program within Google’s Colab like the pros:</p>
<ol>
<li>Open a Terminal app.</li>
<li>
<p>Bring the <tt>openweather.py</tt> file to the Terminal.</p>
<p>Type an exclamation point character in front of each Bash CLI command such as git.</p>
<p>In Google CoLab???</p>
</li>
<li>To copy a file from your Google Drive:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>!cp /content/drive/My\ Drive/Importing\ Scripts\ as\ Modules/utils.py /content
</code></pre></div> </div>
<p>Alternately, you can manually select the file using:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>files.upload()
</code></pre></div> </div>
</li>
<li>Set permissions:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>chmod +x openweather.py
</code></pre></div> </div>
</li>
<li>Set .env file containing the API keys
???</li>
<li>
<p>Because T-Mobile does not correctly identify your physical location, provide your US Zip Code when requesting the weather there:</p>
<p><a target="_blank" href="https://github.com/wilsonmar/python-samples/blob/main/openweather.py">openweather.py</a> program:</p>
</li>
<li>Execute the program:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>!./openweather.py -z 59041
</code></pre></div> </div>
<p>The weather service converts your Zip Code to a latitude and longitude:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>openweather.org
id: 5661766 at: 06:29 PM (18:29:44) 2025-04-01 TZ: -21600
Sunrise: 06:55 AM (06:55:20) 2025-04-01 local time
Sunset: 07:43 PM (19:43:30) 2025-04-01
overcast clouds at Laurel , country=US "lat=45.4959619&lon=-108.9589351"
Latitude: 45.4959619° North of the Equator &
Longitude: -108.9589351° East of the Meridian at Greenwich, UK
comfortable Dew Point of 25.78°F vs. 45.91°F at 45% humidity
Feels like 39.42°F from Wind: 22.01 mph from NNW (313°)
Visibility to 10000 meters
low -16 pressure at 997 hPa (HectoPascals = 9.97 millibars)
vs. normal 1013.25 hPa at sea level
866 hPa at ground level
</code></pre></div> </div>
</li>
</ol>
<p><a target="_blank" href="https://www.youtube.com/shorts/QjTfk1OFCtk">VIDEO</a>:
Readings from outlying weather stations are combined to provide a more accurate reading.
During WWII, the Allies used stations in Iceland, and Ireland to forcast the weather for the Normandie Invasion on June 6, 1944.</p>
<p><a name="latlong"></a></p>
<h2 id="latitudes--longitudes">Latitudes & Longitudes</h2>
<p>A latitude and longitude make use of the <a target="_blank" href="https://en.wikipedia.org/wiki/Web_Mercator_projection">Web Mercator Projection</a> (EPSG:3857) which display spherical forms because it is much simpler to calculate than <a target="_blank" href="https://en.wikipedia.org/wiki/World_Geodetic_System#WGS_84">WGS 84</a> degrees (EPSG:4326) ellipsoidal datum. Land near the poles, such as Greenland, are distorted and appear larger than <a target="_blank" href="https://youtube.com/shorts/DjhZuN0woDY?si=TR7kQ-593O_4omVm">VIDEO: when moved to the equator for actual size</a>. Google Maps, which uses it since 2005, cut off coverage at 85.051129° north and south. But the United States Department of Defense through the National Geospatial-Intelligence Agency has declared to be unacceptable for any official use.</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1744354495/weather-greenland-proj-470x289_smuctb.png"><img alt="weather-greenland-proj-470x289.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1744354495/weather-greenland-proj-470x289_smuctb.png" /></a></p>
<p><a name="instrument-tech"></a></p>
<h2 id="instrument-technologies">Instrument Technologies</h2>
<p>There are several technologies to measure your weather:</p>
<ul>
<li>Build your own weather station on a Raspberry Pi, ESP32, etc.</li>
</ul>
<p>Instrument manufacturers:</p>
<ul>
<li><a target="_blank" href="https://www.acurite.com/">AcuRite</a> “fell apart after a year”
<ul>
<li><a target="_blank" href="https://www.youtube.com/watch?v=7cxNahFvGVU">VIDEO</a></li>
</ul>
</li>
<li>Ambient Weather</li>
<li>Davis Instruments</li>
<li>https://www.scientificsales.com/6252-Davis-Wireless-Vantage-Pro2-Weather-Station-p/6252.htm</li>
<li>
<p>$339 <a target="_blank" href="https://shop.tempest.earth/products/tempest">Tempest</a> <a target="_blank" href="https://tempestwx.com/map/40.7127/-74.0059/8">MAP</a></p>
</li>
<li>The <a target="_blank" href="https://www.amazon.com/Ambient-Weather-WEATHERBRIDGE-Universal-Compatible/dp/B00FPPYM7M?ref_=ast_sto_dp">$159.50</a> <a target="_blank" href="https://www.ambientweather.com/weather-bridge">Ambient Weather Bridge</a> updates (without the use of a PC or networking fees) weather servers real-time to Twitter, MySQL, EMail Summaries and Alerts, and aircams. See http://www.meteobridge.com/wiki/index.php/Push_Services</li>
</ul>
<p>Several locally-run servers receive and display weather information:</p>
<ul>
<li>The Ignition server</li>
<li>“Home Assistant”</li>
</ul>
<h2 id="ambient-weather-instruments">Ambient Weather Instruments</h2>
<p>Ambient Weather is a company that provides weather stations and data for consumer use.</p>
<ul>
<li><a target="_blank" href="https://www.amazon.com/dp/B087V6N5WZ/">$449.99</a> WS-5000 series has WiFi and no moving parts and a TFT color display <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1081">manual</a> <a target="_blank" href="https://www.youtube.com/watch?v=b8oQCBA6Tio">VIDEO</a> <a target="_blank" href="https://www.youtube.com/watch?v=I560_a3yPmE">User Observations</a></li>
<li>$299.99 WS-2000 has WiFi & display</li>
<li>$144.99 WS-1965 is a entry-level monitor has moving parts.</li>
</ul>
<p>Other Ambient Weather devices sold separately, with <a target="_blank" href="https://ambientweather.com/manuals.html">manuals online</a>:</p>
<ul>
<li>
<p><a target="_blank" href="https://www.amazon.com/Ambient-Weather-ObserverIP-Stations-separately/dp/B00XNMN2GG/">$77.99</a>
<a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1081">Network WeatherHub</a> to set up alerts, access your data remotely, and program your home based on weather conditions using IFTTT, Google Home, Alexa, and more. <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1192">manual</a> http://www.meteobridge.com/ using HTUhttps://angryip.org/download/</p>
</li>
<li>PM25 Particulate Monitor <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1095">manual</a></li>
<li>PM25IN Indoor Particulate Monitor <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1096">manual</a></li>
<li>
<p>AQIN Air Quality Monitor <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1097">manual</a></p>
</li>
<li>WH3ILA Leak Detector <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1098">manual</a></li>
<li>WH3ILC Infrared Motion Detector <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1099">manual</a></li>
<li>WH3ILM Lightning Detector <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1100">manual</a></li>
<li>WH315M Soil Monitor Sensor (part of garden bundle) <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1101">manual</a></li>
<li>Pool <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1102">manual</a></li>
<li>AirCam camera for feeding weather websites <a target="_blank" href="https://ambientweather.com/mwdownloads/download/link/id/1103">manual</a></li>
</ul>
<h2 id="weather-on-roads-in-each-state">Weather on Roads in Each State</h2>
<p>https://www.511mt.net/#&zoom=5.669649843806675&lon=-110.0832903124836&lat=45.86084166111809</p>
<p><a name="DIY"></a></p>
<h2 id="diy-weather-stations">DIY Weather Stations</h2>
<p>Others made their own weather stations using Raspberry Pi and other components that include sensors like wind, rainfall, UV Index, Lux Level.</p>
<p><a target="_blank" href="https://www.instructables.com/Solar-Powered-WiFi-Weather-Station-V20/">VIDEO:Solar-Powered WiFi Weather Station V20</a> follows the <a target="_blank" href="https://amzn.to/3UMpT9N">Book: on Off-Grid Solar Power from Amazon</a> by Debasish Dutta at @opengreenenergy. Features:</p>
<ol>
<li>Monitoring Weather parameters like Temperature, Pressure, Humidity, altitude and UV level, etc.</li>
<li>Connect to Wi-Fi, and upload the data to the web ( Blynk App and Thingspeak)</li>
<li>Extra ports to add more sensors</li>
<li>Remote Battery Status Monitoring</li>
<li>Uses a powerful Li-Ion Battery ( 3400 mAh ) and Solar Panel (1W) for independence from external power source</li>
</ol>
<p>Customers also bought books by</p>
<ul>
<li><a target="_blank" href="https://www.amazon.com/stores/Paul-Holmes/author/B0CN1JF8M4">Paul Holmes: Off-grid solar power</a></li>
<li><a target="_blank" href="https://www.amazon.com/stores/Nick-Seghers/author/B0844W9SJK">Nick Seghers</a>
<a target="_blank" href="https://www.amazon.com/Off-Grid-Solar-Power-Simplified-ebook/dp/B0844TX6ND">Off Grid Solar Power Simplified: For Rvs, Vans, Cabins, Boats and Tiny Homes</a></li>
<li><a target="_blank" href="https://www.amazon.com/Grid-Solar-Power-Bible-Blackout-Free-ebook/dp/B0C3RWGZTZ">Caleb Stone</a> The Off Grid Solar Power Bible: [7 in 1] Easy Illustrated DIY Guide + VIDEO COURSE to Safely Install and Maintain your Own Blackout-Free System. Go from Zero Know-How to Zero Electricity Bills.</li>
</ul>
<h2 id="cameras">Cameras</h2>
<p>https://www.youtube.com/live/8E84ogCRg8Y&t=1m
OpenMV cameras meetup</p>
<h2 id="weather-prediction">Weather Prediction</h2>
<p>NVIDIA provides a free 3-hour beginner tutorial: <a target="_blank" href="https://learn.nvidia.com/courses/course-detail?course_id=course-v1:DLI+S-FX-31+V1">“Applying AI Weather Models with NVIDIA Earth-2”</a>
to explore state-of-the-art FourCastNet AI weather prediction models and learn how to integrate them into custom workflows.</p>
<p>Weather forecasts suffer from two main sources of uncertainty</p>
<ul>
<li>Measurement uncertainty: Observations are sparse and noisy</li>
<li>Model uncertainty: Models are not an exact representation of reality</li>
</ul>
<p>This uncertainty is modeled through multiple forecast runs
Start from slightly perturbed initial conditions
<a target="_blank" href="https://www.arxiv.org/abs/2408.03100">Ensembles</a> of several models allow making probabilistic statements about the future.</p>
<p>In contrast to deterministic forecasts, probabilistic forecasts attempt to model the uncertainty of the future. For weather forecasting, we are facing two main sources of uncertainty. The first one is measurement uncertainty. Weather observations come from weather stations, balloons, buoys, satellites, radar stations, and so on. But these measurements are sparse and not perfect, which introduces uncertainties. The second source of uncertainty are our models, which are not a perfect representation of the physical processes. This is true for both AI and numerical models. Models are used for forecasting but also for assimilating observations into a consistent analysis or reanalysis dataset.</p>
<p>We can make probabilistic statements about the future with the help of ensemble forecasts. Ensembling is a Monte Carlo-like approach where multiple similar but slightly perturbed forecasts are run to produce a distribution of future weather trajectories. For example, if we run 100 forecasts and 23 of these 100 ensemble members predict rain, we can estimate the chance of rain to be 23%. The forecasts cover the same time horizon but are started from slightly different initial conditions. Furthermore, variance is introduced into the forecasting process by either using a probabilistic model or an ensemble of multiple independent models.</p>
<p>Large ensembles are a prime area of application for AI weather models. While numerical systems are usually limited to ensemble sizes of up to 50 or 100 members because of computational constraints, AI systems can easily produce thousands of ensemble members. This makes it possible to characterize high-impact, low-probability events like hurricanes and compound events like heat waves with high humidity.</p>
<p>https://github.com/NVIDIA/earth2studio provides an easy interface for AI weather and climate model inference - from initial testing to projection deployment. It comes with a range of pre-trained models for various applications. Its modular components – data sources, perturbation methods, models, and IO handlers – are combined into custom applications without having to touch any of the other parts.</p>
<p>Forecast Prediction Validation is a transferrable skill: Set up the model, fetch data from sources like GFS, and run deterministic forecasts efficiently.</p>
<p>https://github.com/NVlabs/FourCastNet is a global AI weather model based on <a target="_blank" href="https://arxiv.org/abs/2306.03838">Spherical Fourier Neural Operators (SFNO)</a> to create medium-range weather forecasts.</p>
<h2 id="weather-forecasts">Weather Forecasts</h2>
<p>Weather forecasts are indispensable for planning and decision-making in the public and private sector, with weather affecting anything from supply chain resiliency to energy production.</p>
<p>To conduct Monte Carlo probability analysis, we analyze the impact of intentional perturbations. Earth2Studio offers noise-based and model-based perturbation strategies to make this process easier.
sample of plausible values</p>
<ul>
<li>Noise-based perturbation e.g., Gaussian, Brownian, Perlin, Spherical Gaussian
Pure noise generated independent of data
Spatially correlated, with “natural” pattern
Ideally taking spherical geometry into</li>
<li>More sophisticated, model-based methods use the forecast model to determine the amount and spatial structure of noise to be added to the perturbed variables.
e.g., vector breeding, singular vectors
Apply model to unperturbed and noise-perturbed data
Iteratively calculate difference, use as new perturbation
Identifies variables showing fastest growth/instability</li>
</ul>
<p>For our exercise, we will perturb initial conditions and skip adding noise to the forecasting process. Initial condition perturbation captures the uncertainty inherent in the measurements and assimilation system.
The simpler class of methods adds noise from a defined distribution and of a certain amplitude to some or all of the atmospheric variables.</p>
<p>Downscaling with CorrDiff (and StormCast)</p>
<p>Traditional numerical weather prediction systems are difficult to operate and place heavy demands on time and compute resources. Recent advances in AI weather modeling enable non-expert practitioners to run forecasts tuned to their own needs, validating model outputs, and explore how super-resolution AI models can make fine-grained predictions.</p>
<p>To build a custom AI weather pipeline:</p>
<ul>
<li>Learn the fundamentals of AI weather simulation and understand the difference between AI-based and numerical weather prediction.</li>
<li>Gain hands-on experience running AI weather simulations with Earth2Studio for weather forecasting, historical analyses, and downscaling.</li>
<li>Get familiar with the individual parts of a weather inference pipeline: Data sources, perturbation, forecast and diagnostic models, and IO handling.</li>
<li>Validate the skill and calibration of weather forecasts with metrics commonly applied to deterministic and ensemble weather forecasts.</li>
<li>Build a custom AI weather model inference pipeline, using the example of coupling a global forecast model with a regional downscaling model.</li>
<li>Combine AI-generated weather data with downstream applications, following examples related to energy demand and production forecasts.</li>
</ul>
<p><a name="amapi"></a></p>
<h2 id="ambient-weather-api">Ambient Weather API</h2>
<p><a target="_blank" href="https://ambientweather.com/faqs/question/view/id/1811/">The API (Application Programming Interface)</a>
allows programmers to use RESTful interactions in applications.</p>
<ol>
<li>
<p>Get the MAC address of your model (such as “12:34:56:AB:CD:EF”) at:</p>
<p>https://ambientweather.com/faqs/question/view/id/1450/</p>
</li>
<li>
<p>Type the MAC address for your account at:</p>
<ul>
<li>https://ambientweather.net/devices</li>
<li>https://ambientweather.net/account
<br /><br /></li>
</ul>
</li>
<li>
<p>Get the AMBIENT_API_KEY value to authenticate all REST API requests.</p>
<pre>AMBIENT_API_KEY=1234567890abcdefb642b77c9d2c1b5df497a8c1f44f4b4e8fdf11c002ef2113
</pre>
<p>AMBIENT_API_KEY grants access to past/present data for a given user’s devices. A typical consumer-facing application will initially ask the user to create an apiKey on their AmbientWeather.net account page (https://ambientweather.net/account) and paste it into the app. Developers for personal or in-house apps will also need to create an apiKey on their own account page.</p>
</li>
<li>
<p>Get the AMBIENT_APPLICATION_KEY to identify the developer / application. To create an application key</p>
<pre>AMBIENT_APPLICATION_KEY='your-application-key-here'</pre>
</li>
<li>
<p>Enable the <a target="_blank" href="https://www.amazon.com/dp/B074PGCM1D/">Ambient Weather app</a> on your <a target="_blank" href="https://wilsonmar.github.io/alexa/">Amazon Alexa</a> devices for its voice-based interactions, such as:</p>
<ul>
<li>”Alexa, ask Ambient Weather for a weather report”</li>
<li>”Alexa, ask Ambient Weather the weather yesterday” (a specific day, month or year)</li>
<li>”Alexa, ask Ambient Weather for indoor conditions”</li>
</ul>
<p>However, at time of this writing, one cannot ask:</p>
<ul>
<li>… ask Ambient weather the outside temperature”</li>
<li>… ask Ambient weather the forecast”</li>
<li>… ask Ambient Weather about today’s rain”</li>
</ul>
</li>
<li>
<p>Adapt the Python Module for interacting with the Ambient Weather API.</p>
<p><a target="_blank" href="https://github.com/bachya/aioambient">github.com/bachya/aioambient</a>
by <a target="_blank" href="https://www.linkedin.com/in/aaronbach/" title="[email protected]">Aaron Bach</a>
is a clean, async-friendly library.</p>
<p>It’s preferred over the<br />
https://github.com/avryhof/ambient_api</p>
</li>
<li>
<p>This need not be a var because when it does change, program code will probably need to be tested if not changed as well:</p>
<pre>AMBIENT_ENDPOINT=https://rt.ambientweather.net/v1</pre>
</li>
<li>
<p>Device Data Specs Wiki lists all the parameters that a device might send.</p>
<p>https://github.com/ambient-weather/api-docs/wiki/Device-Data-Specs</p>
</li>
<li>
<p>Add code in the calling program to account for API requests being capped at 1 request/second for each user’s apiKey and 3 requests/second per applicationKey. When this limit is exceeded, the API will return a 429 response code. Please be kind to our servers :)</p>
<p>API requests are capped at 1 request/second for each user’s apiKey and 3 requests/second per applicationKey. When this limit is exceeded, the API will return a 429 response code. Please be kind to our servers :)</p>
<p>The devices returned from the /devices endpoint contain a lastData parameter that contains the most up-to-date data we have for the device. Most devices update every minute, some update less frequently. The timestamps are rounded to the nearest minute.</p>
<p>Queries for past data using the /devices/:macAddress endpoint are returned in 5 minute or 30 minute increments. There can be up to a 10 minute delay before the most recent data becomes available. If you need up-to-the-minute data please use the /devices endpoint or forthcoming realtime API.</p>
<p>https://ambientweather.docs.apiary.io/# is generated from
https://github.com/ambient-weather/api-docs</p>
</li>
</ol>
<hr />
<p><i>25-11-22 v044 + clot :2023-04-03-weather-info.md</i></p>
<p><a href="https://wilsonmar.github.io/weather-info/">Weather information</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 22, 2025.</p>
https://wilsonmar.github.io/flutter-dev2025-11-20T00:00:00+00:002025-11-20T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Use Google’s Dart language calling Firebase database & Riverpod to create Gemini apps on iOS, Android, SPAs, PWAs</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/flutter-dev/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#popularity-vs-competitors" id="markdown-toc-popularity-vs-competitors">Popularity vs Competitors</a></li>
<li><a href="#architectural-deep-dive" id="markdown-toc-architectural-deep-dive">Architectural Deep Dive</a></li>
<li><a href="#what" id="markdown-toc-what">what?</a></li>
<li><a href="#sample-flutter-apps" id="markdown-toc-sample-flutter-apps">Sample Flutter apps</a></li>
<li><a href="#smart-phone-features-in-apps" id="markdown-toc-smart-phone-features-in-apps">Smart Phone features in apps</a> <ul>
<li><a href="#ecosystem-apis" id="markdown-toc-ecosystem-apis">Ecosystem APIs</a></li>
</ul>
</li>
<li><a href="#get-social" id="markdown-toc-get-social">Get Social</a></li>
<li><a href="#dev-project-rolls-costs" id="markdown-toc-dev-project-rolls-costs">Dev Project Rolls Costs</a></li>
<li><a href="#professional-certifications" id="markdown-toc-professional-certifications">Professional Certifications</a></li>
<li><a href="#cloud-based-ide-tutorial" id="markdown-toc-cloud-based-ide-tutorial">Cloud-based IDE Tutorial</a></li>
<li><a href="#tutorial1" id="markdown-toc-tutorial1">Tutorial1</a> <ul>
<li><a href="#task-1-open-the-code-server-editor" id="markdown-toc-task-1-open-the-code-server-editor">Task 1: Open the Code Server editor</a></li>
<li><a href="#task-2-create-flutter-template-first_app" id="markdown-toc-task-2-create-flutter-template-first_app">Task 2. Create Flutter template “first_app”</a></li>
<li><a href="#task-4-running-the-flutter-web-application" id="markdown-toc-task-4-running-the-flutter-web-application">Task 4. Running the Flutter web application</a></li>
<li><a href="#task-5-flutter-hot-reload-libmaindart" id="markdown-toc-task-5-flutter-hot-reload-libmaindart">Task 5. Flutter Hot reload lib/main.dart</a></li>
<li><a href="#googles-dart-language" id="markdown-toc-googles-dart-language">Google’s Dart language</a></li>
</ul>
</li>
<li><a href="#install-for-local-development-on-macos" id="markdown-toc-install-for-local-development-on-macos">Install for local Development on MacOS</a></li>
<li><a href="#create-locally-step-by-step" id="markdown-toc-create-locally-step-by-step">Create locally step-by-step</a></li>
<li><a href="#testing-mobile-apps" id="markdown-toc-testing-mobile-apps">Testing mobile apps</a></li>
<li><a href="#agentic-vertex-ai" id="markdown-toc-agentic-vertex-ai">Agentic Vertex AI</a></li>
<li><a href="#svg--icon-fonts" id="markdown-toc-svg--icon-fonts">SVG & Icon Fonts</a></li>
<li><a href="#graphically-design-using-figma" id="markdown-toc-graphically-design-using-figma">Graphically Design using Figma</a></li>
<li><a href="#e-commerce" id="markdown-toc-e-commerce">E-commerce</a></li>
<li><a href="#ui-widgets" id="markdown-toc-ui-widgets">UI Widgets</a></li>
<li><a href="#smart-phone-app-features" id="markdown-toc-smart-phone-app-features">Smart Phone app features</a></li>
<li><a href="#database" id="markdown-toc-database">Database</a></li>
<li><a href="#web-apps" id="markdown-toc-web-apps">Web apps</a></li>
<li><a href="#calls-to-apis" id="markdown-toc-calls-to-apis">Calls to APIs</a></li>
<li><a href="#googles-firebase-backend" id="markdown-toc-googles-firebase-backend">Google’s Firebase Backend</a></li>
<li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
<li><a href="#jobs" id="markdown-toc-jobs">Jobs</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>Flutter offers a <strong>single codebase</strong> to build applications that run across many platforms:</p>
<ul>
<li>Desktop apps on Windows, Mac, Linux</li>
<li>Mobile (smart phone) apps on Google Android vs. Java</li>
<li>Mobile (smart phone) apps on Apple iOS vs. Swift programming</li>
<li>PWAs (Progressive Web Apps) and stand-alone SPAs (Single Page Apps such as products) on internet browsers
<br /><br /></li>
</ul>
<p>This is a complicated and difficult business because different technologies are used on each platform:</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=FzaVmw4u6O8&t=1m52s"><img alt="platforms-tech-801x337.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763635915/platforms-tech-801x337_bz4wa2.png" /></a></p>
<p>iPhone and Android smart phones have more hardware than PC laptops:</p>
<ul>
<li>Camera to take pictures (QR codes)</li>
<li>Audio (music app Topline by Abbey Road Studios)</li>
<li>Location (GPS)</li>
<li>Bluetooth to headphones and speakers</li>
<li>NFC</li>
<li>Sensors
<br /><br /></li>
</ul>
<p>But building with Flutter enables <strong>cross-device communication</strong>: control a browser from a phone app, or controllwhat plays on your TV from your phone. Play music on one device and controls the music on another.</p>
<p>CAUTION: Flutter is not as convenient to build for text-rich presentations on the web as static web page generators such as Jerkyll for github.io websites.</p>
<h2 id="popularity-vs-competitors">Popularity vs Competitors</h2>
<p>From v1.0 in 2017, the Flutter framework now has the largest share (and growing) in the cross-platform app development services market:</p>
<p><a target="_blank" href="https://www.miquido.com/blog/flutter-app-development-cost/"><img alt="flutter-growth-1536x1435.png.webp" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763523476/flutter-growth-1536x1435.png_mvxomo.webp" /></a></p>
<ul>
<li>The <a target="_blank" href="https://www.jetbrains.com/lp/devecosystem-2024/">JetBrains State of the Developer Ecosystem survey</a>, Flutter has been the most used multi-platform app framework, since 2021.</li>
<li>App intelligence provider AppTopia reports that, in 2024, Flutter accounts for nearly 30% of all new free iOS apps.</li>
<li><a target="_blank" href="https://www.youtube.com/shorts/YTLlpXDmh5o">VIDEO</a>: Flutter vs. React native by <a target="_blank" href="https://www.youtube.com/@romanjustcodes/shorts">@RomanJustCodes</a>
<br /><br /></li>
</ul>
<p>React Native (from Facebook/Meta) is based on the open <strong>JavaScript language</strong>, which more front-end (web) developers know.</p>
<p>It’s more difficult and expensive to hire and retain a developer to write native SwiftUI code on iPhones and Jetpack Compose code on Androids.</p>
<p>Despite the technical aspects, in the US, there seems to be a lot more jobs in Native Android coding than cross-platform:</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=FzaVmw4u6O8&t=9m7s"><img alt="mobile-jobs-2025-855x528.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763636907/mobile-jobs-2025-855x528_i7ecfn.png" /></a></p>
<p>WARNING: In 2019 Google also partnered with IDE developer JetBrains and made their Kotlin language (based on Java) the official language for Android JetPack Compose development. They then created the <a target="_blank" href="https://developer.android.com/kotlin/multiplatform">Kotlin Multiplatform (KMP)</a> for sharing business logic between Android and iOS. This has resulted in rumors of Google dropping Flutter like it has hundreds of their other offerings.</p>
<p>BEWARE: Multi-platform frameworks will always lag behind changes on native platforms. So <a target="_blank" href="https://www.youtube.com/watch?v=lPNXT-wQ8j4">Apple’s Liquid Glass UI cloud kill</a> cause more testing effort.</p>
<p>PROTIP: The amazing advance of vibe coding (on Claude Code, etc.) may make intermediate platforms irrelevant. But will AI be able to create complex apps? Those new to development may find debugging of KMP easier than native code.</p>
<h2 id="architectural-deep-dive">Architectural Deep Dive</h2>
<p>Reactive Native uses a “JavaScript Bridge” JNI to iOS on its V8 Engine, so <a target="_blank" href="https://www.youtube.com/watch?v=2OgLdOjuMm4&t=247s">VIDEO</a>: it doesn’t do smooth auto scrolling on iPhones, according to <a target="_blank" href="https://github.com/gaurav414u/flutter-rn-performance-benchmarks" title="2024 Natesh Bhat">a benchmark</a>.</p>
<p>Flutter’s Dart compiler has both a Dart VM with just-in-time (JIT) compilation and an ahead-of-time (AOT) to produce machine code native device code. <a target="_blank" href="https://www.youtube.com/watch?v=2OgLdOjuMm4&t=10m5s">VIDEO</a>: However, the APK file loaded on Android from Flutter and React Native are 2x the 6 MB from native-produced. Since 2022, React Native includes in downloads to the app its Hermes JavaScript engine.</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=2OgLdOjuMm4&t=11m1s">VIDEO</a> Nevertheless, amazingly, Flutter is 2X faster than Native on the Time to Full Display (TTFD) load.</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=2OgLdOjuMm4&t=4m13s">VIDEO</a> Flutter takes almost double the graphics memory than Android native code. This may not matter since modern mobile devices have a lot of memory.</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=2OgLdOjuMm4&t=8m35s">VIDEO</a>: Flutter renders basic animations at 120 frames-per-second, on par with Android native, but faster than 51 by KMP & 96 by React Native.</p>
<h2 id="what">what?</h2>
<ul>
<li>
<p><a target="_blank" href="https://firebase.google.com/codelabs/cross-device-controller?hl=en#0">HANDS-ON: Firebase Cross Device Codelab</a> <a target="_blank" href="https://firebase.google.com/docs/database/web/offline-capabilities#section-sample">The Presence API</a> on Firebase’s Realtime Database (RTDB) enables apps that let users see their device online/offline status. Use it with the Firebase Installations Service to track and connect all the devices where the same user has signed in.
<br /><br /></p>
<p>Get the music player app starter code:</p>
<pre>git clone https://github.com/FirebaseExtended/cross-device-controller.git
cd cross-device-controller/starter_code
<strong>flutter pub get</strong>
</pre>
</li>
</ul>
<h2 id="sample-flutter-apps">Sample Flutter apps</h2>
<ul>
<li>https://flutter.dev/showcase</li>
<li>https://github.com/fluttergems/awesome-open-source-flutter-apps</li>
<li>
<p>https://appgallery.io/</p>
</li>
<li>
<p>https://appgallery.io/walidashik</p>
</li>
<li>
<p>GE Appliances uses Flutter to display UIs on small LCD screens found on modern appliances.</p>
</li>
<li>
<p><a target="_blank" href="https://scaleupally.io/blog/flutter-apps-examples/">8 Must-See Flutter App Examples For Inspiration</a></p>
</li>
<li><a target="_blank" href="https://codecanyon.net/category/mobile/flutter/full-applications">CodeCanyon.net’s Flutter Full Applications</a>, some with live preview.
<ul>
<li>Xianyu (Alibaba) and Tencent QQ is big in China</li>
<li><a target="_blank" href="https://play.google.com/store/apps/details?id=com.hamilton.app&hl=en&gl=US">Hamilton Musical app</a></li>
<li><a target="_blank" href="https://ads.google.com/home/tools/mobile-app/">Google Ads</a></li>
<li><a target="_blank" href="https://www.groupon.com/">Groupon</a></li>
<li>Ebay & Ebay Motors</li>
<li>New York Times</li>
<li>BMW, Toyota</li>
<li>Phillips Hue</li>
<li>https://goodhabitz.com/
<br /><br /></li>
</ul>
</li>
<li><a target="_blank" href="https://www.miquido.com/blog/top-apps-made-with-flutter/">25 Top Apps Made with Flutter</a>
<ul>
<li>Selection Criteria for Top Apps: What makes an app not just good, but great?</li>
<li>Detailed Descriptions of Selected Apps: A close look at apps that are turning heads.</li>
<li>Flutter’s Advantages in App Development: Why Flutter is the go-to for developers.</li>
<li>Flutter’s Impact on Business Outcomes: How Flutter is rewriting the rules of business efficiency.</li>
<li>Flutter vs. Other Platforms: A side-by-side comparison with its contemporaries.
<br /><br /></li>
</ul>
</li>
<li>
<p>https://apps.apple.com/us/app/kodebook-notes-upgraded/id6739565636 KodeBook: Notes, upgraded by Mustaq Sameer at https://kodebook.io</p>
</li>
<li>https://kobe.io/ = Kobe Apps, a mobile app SaaS Platform built in Flutter, to design and build a proof of concept, in English and Portugese.</li>
</ul>
<h2 id="smart-phone-features-in-apps">Smart Phone features in apps</h2>
<p>PROTIP: The biggest benefit to using Flutter instead of native languages (such as Swift for iOS) is that <strong>no user action is needed to update the app</strong>. However, this <a href="#HotReload">“Hot Reload”</a> causes a little delay for Flutter users as code is updated.</p>
<p>Over the years, developers have grown weary of “Write Once, Work Everywhere” promises from Microsoft Xamarin, Cordova, Kivy, Kendo, PhoneGap, Unity, Ionic, Capacitor, etc.</p>
<p>Google’s “Material” and Apple’s “Capistrano” design systems have fundamentally conflicting design UI standards.</p>
<ol>
<li>
<p>Flutter is free and open sourced by Google at:</p>
<p><a target="_blank" href="https://github.com/flutter/flutter/blob/master/docs/README.md">https://github.com/flutter/flutter</a></p>
</li>
<li>
<p>REMEMBER: https://dart.dev/resources/glossary</p>
<ul>
<li>“Bottom type” is a type that has no values and is a subtype of all other types.</li>
<li>Closurization = The process of turning a method or function into a closure.</li>
<li>Code asset = Compiled native code that is bundled with a Dart app using a build hook and can be used through dart:ffi.
<br /><br /></li>
</ul>
</li>
<li>
<p>Documentation</p>
<p><a target="_blank" href="https://docs.flutter.dev">docs.flutter.dev</a></p>
<h3 id="ecosystem-apis">Ecosystem APIs</h3>
<p>Using Flutter means adopting Google’s entire ecosystem, which includes the <a href="#DartLang">Dart language code</a> Google invented.</p>
</li>
<li>
<p>API reference is at https://api.flutter.dev.
<a target="_blank" href="https://console.actions.google.com/">Actions on Google Console</a></p>
<p>Developing using Flutter involves mastering several technologies within Google’s development ecosystem:</p>
<ul>
<li><a href="DartLang">Google’s Dart language</a></li>
<li>Android</li>
<li>ARCore</li>
<li>ChromeOS</li>
<li><a href="#Firebase">Firebase database</a> & <a target="_blank" href="https://console.firebase.google.com/?pli=1">console</a></li>
<li>Flutter (this page)</li>
<li>Google Assistant</li>
<li><a target="_blank" href="https://wilsonmar.github.io/gcp">Google Cloud</a></li>
<li>Google Maps Platform</li>
<li>Google Pay & Google Wallet</li>
<li>Google Play <a target="_blank" href="https://play.google.com/apps/publish">console</a></li>
<li>TensorFlow
<br /><br /></li>
</ul>
<p>Other Google services:</p>
<ul>
<li>AdMob</li>
<li>AlloyDB</li>
<li>analytics</li>
<li>Android TV</li>
<li>Assistant</li>
<li>Cast</li>
<li>Cloud Key Management Service (KMS)</li>
<li>Cloud Run</li>
<li>Cloud SQL</li>
<li>GKE Enterprise</li>
<li>ML Kit</li>
<li>Google Workspace (Gmail)</li>
<li>TensorFlow</li>
<li>Wear OS
<br /><br /></li>
</ul>
<h2 id="get-social">Get Social</h2>
<p>https://flutter.dev/ecosystem</p>
</li>
<li>
<p>Follow:</p>
<p>https://blog.flutter.dev articles on Medium.com where new releases are explained with images.</p>
</li>
<li>
<p>Subscribe:</p>
<p>https://www.youtube.com/@flutterdev</p>
<p>https://www.reddit.com/r/FlutterDev/ for trolls</p>
<p>https://developers.google.com/community/experts
if you are an expert already, like <a target="_blank" href="https://www.linkedin.com/in/mtwichel/">Marcus Twichel</a> at Billings, United States</p>
</li>
<li>
<p>Sign up for the Flutter Community Forum:</p>
<p>https://forum.itsallwidgets.com/latest</p>
<p>PROTIP: Save the account name and password to your Password Manager.</p>
</li>
<li>
<p>Join the official Discord channel (and complete the intro) at
https://discord.com/invite/ht477J5PyH</p>
<p>https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md</p>
</li>
<li>
<p>Join Premium (for $24.99/monrh):</p>
<p>https://developers.google.com/program/plans-and-pricing</p>
</li>
</ol>
<h2 id="dev-project-rolls-costs">Dev Project Rolls Costs</h2>
<p>Online calculators like Estimate My App and Cleveroad help users calculate upfront costs of development by a team that consists of:</p>
<ul>
<li>Product owner – oversees app creation and serves as the link between the project team and organization.</li>
<li>Project manager – manages project progression, ensuring timely and on-budget delivery.</li>
<li>Business analyst – analyzes the project requirements to ensure it meets business goals.</li>
<li>UI designer – creates user experience, ensuring an attractive and user-friendly app.</li>
<li>Flutter app developers – build the application.</li>
<li>Quality Assurance specialists – test the app to ensure it meets project requirements.
<br /><br /></li>
</ul>
<p><a target="_blank" href="https://blog.burkharts.net/practical-flutter-architecture">Practical Flutter Architecture</a> (PFA)
by Thomas Burkhart: MVC, MVU, MVVM, RVMS (Reactive View Manager Services), PFA.</p>
<p><a name="ProCerts"></a></p>
<h2 id="professional-certifications">Professional Certifications</h2>
<p>https://developers.google.com/certification/associate-android-developer
has been retired.</p>
<p>Popular content creator are Google Experts:</p>
<p>https://cloud.google.com/learn/certification/cloud-architect
Google Professional Cloud Architect certification ?</p>
<p>https://androidatc.com/pages/Eng/Flutter-Certified-Application-Developer</p>
<p>https://www.youtube.com/watch?v=xWV71C2kp38</p>
<h2 id="cloud-based-ide-tutorial">Cloud-based IDE Tutorial</h2>
<ol>
<li>
<p>Install FlutterLab (Flutter Development course) by Hrishi Suthar for <a target="_blank" href="https://play.google.com/store/apps/details?id=com.techbajao.flutterlabpro&hl=en_US">$3.9 on Android</a> and <a target="_blank" href="https://apps.apple.com/us/app/flutterlab/id6464216661">on iPhones</a> provides a wealth of information. But the free version has annoying pop-ups.</p>
</li>
<li>
<p>Install Flutter Tips (from Andrea Bizotto) <a target="_blank" href="https://play.google.com/store/apps/details?id=com.codewithandrea.flutter_tips_and_tricks&hl=en_US">on Android</a> and <a target="_blank" href="https://apps.apple.com/us/app/flutter-tips/id6482293361">on iPhones</a></p>
</li>
<li>
<p>See list of Google’s tutorials at https://www.skills.google/catalog?keywords=flutter</p>
</li>
<li>
<p>Create your first app at <a href="#Tutorial1">Google Skills Tutorial below</a></p>
</li>
<li>
<p>https://www.geeksforgeeks.org/flutter/creating-a-simple-application-in-flutter/ 13 Mar, 2025</p>
</li>
<li>
<p>https://learning.oreilly.com/course/learn-flutter-and/9781805122029/
30-hour video course May 2023 by <a target="_blank" href="https://www.linkedin.com/in/maximilian-schwarzmueller/">Maximilian Schwarzmüller</a> from Germany (https://maximilian-schwarzmueller.com/)</p>
</li>
<li>
<p><a target="_blank" href="https://www.ffnext.io/blog/flutter-animations">Animations in Flutter - a developer’s guide</a>: Automated Carousel, Parallax effect, Animated button, Bouncing View, Animated Wave, Instagram Story.</p>
</li>
<li>
<p>https://learning.oreilly.com/library/view/-/9781098154752/</p>
</li>
</ol>
<p><a name="Tutorial1"></a></p>
<h2 id="tutorial1">Tutorial1</h2>
<p>Follow the steps below for my enhancements to steps (Nov 7, 2024 edition) at <a target="_blank" href="https://www.skills.google/course_templates/720">“Flutter Development” (GSP885)</a> 1.5-hour hands-on course.</p>
<ol>
<li>Install Chrome browser (after brew install google-chrome).</li>
<li>
<p>Start Lab. Click the IDE.</p>
</li>
<li>
<p>Click the three dots at the upper-right and select “New Incognito Window” to avoid conflicts with cookies.</p>
</li>
<li>Copy this url: https://console.cloud.google.com/</li>
<li>Press command + ` to switch to the Lab window.</li>
<li>Scroll down to click the icon to copy the Username, such as
[email protected]</li>
<li>
<p>Switch to the incognito window and paste the Email.</p>
</li>
<li>Switch to the Lab window.</li>
<li>Scroll down to click the icon to copy the Password, such as
[email protected]</li>
<li>Switch to the incognito window. Click “Enter the Password” and paste.</li>
<li>Click “I understand”, then check under “Terms of Service”, “Agree and continue”.</li>
<li>Click “Create or select a project”.</li>
<li>
<p>Notice:
Project number: 1030115194620 Project ID: qwiklabs-resources</p>
<p>If <a target="_blank" href="https://www.geeksforgeeks.org/flutter/creating-a-simple-application-in-flutter/#create-a-new-flutter-project-using-visual-studio-code">using VSCode IDE</a>, search for “Flutter: New Project”.</p>
</li>
<li>Click the Cloud Shell icon at the upper-right corner. Click Continue.</li>
<li>Click Authorize to see lines like this:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Welcome to Cloud Shell! Type "help" to get started, or type "gemini" to try prompting with Gemini CLI.
Your Cloud Platform project in this session is set to qwiklabs-resources.
Use `gcloud config set project [PROJECT_ID]` to change to a different project.
student_03_2e9edc111c72@cloudshell:~ (qwiklabs-resources)$
</code></pre></div> </div>
<h3 id="task-1-open-the-code-server-editor">Task 1: Open the Code Server editor</h3>
<p>In this lab, we will use a custom editor that includes the Flutter and Dart extensions.</p>
</li>
<li>Switch to the Lab window.</li>
<li>Click the copy icon for IDE.</li>
<li>
<p>Switch to the incognito window and paste the URL</p>
<h3 id="task-2-create-flutter-template-first_app">Task 2. Create Flutter template “first_app”</h3>
</li>
<li>Switch to the IDE window.</li>
<li>REMEMBER: Click control + shift + ` or click the menu at the upper-left to select “Terminal”.</li>
<li>Copy and paste for the “Welcome”
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>flutter create first_app
</code></pre></div> </div>
<p>The name should be all lowercase, with underscores to separate words, “just_like_this”.Use only basic Latin letters and Arabic digits: [a-z0-9_].</p>
<p>```
Creating project first_app…
Resolving dependencies in <code class="language-plaintext highlighter-rouge">first_app</code>… (1.1s)
Downloading packages…
Got dependencies in <code class="language-plaintext highlighter-rouge">first_app</code>.
Wrote 129 files.</p>
</li>
</ol>
<p>All done!
You can find general documentation for Flutter at: https://docs.flutter.dev/
Detailed API documentation is available at: https://api.flutter.dev/
If you prefer video documentation, consider: https://www.youtube.com/c/flutterdev</p>
<p>In order to run your application, type:</p>
<p>$ cd first_app
$ flutter run</p>
<p>Your application code is in first_app/lib/main.dart.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1. View the flutter app's commands: <pre>flutter</pre>
</code></pre></div></div>
<p>Manage your Flutter app development.</p>
<p>Common commands:</p>
<p>flutter create <output directory="">
Create a new Flutter project in the specified directory.</output></p>
<p>flutter run [options]
Run your Flutter application on an attached device or in an emulator.</p>
<p>Usage: flutter <command /> [arguments]</p>
<p>Global options:
-h, –help Print this usage information.
-v, –verbose Noisy logging, including all shell commands executed.
If used with “–help”, shows hidden options. If used with “flutter doctor”, shows additional diagnostic information. (Use “-vv” to force verbose logging in those cases.)
-d, –device-id Target device id or name (prefixes allowed).
–version Reports the version of this tool.
–enable-analytics Enable telemetry reporting each time a flutter or dart command runs.
–disable-analytics Disable telemetry reporting each time a flutter or dart command runs, until it is re-enabled.
–suppress-analytics Suppress analytics reporting for the current CLI invocation.</p>
<p>Available commands:</p>
<p>Flutter SDK
bash-completion Output command line shell completion setup scripts.
channel List or switch Flutter channels.
config Configure Flutter settings.
doctor Show information about the installed tooling.
downgrade Downgrade Flutter to the last active version for the current channel.
precache Populate the Flutter tool’s cache of binary artifacts.
upgrade Upgrade your copy of Flutter.</p>
<p>Project
analyze Analyze the project’s Dart code.
assemble Assemble and build Flutter resources.
build Build an executable app or install bundle.
clean Delete the build/ and .dart_tool/ directories.
create Create a new Flutter project.
drive Run integration tests for the project on an attached device or emulator.
gen-l10n Generate localizations for the current project.
pub Commands for managing Flutter packages.
run Run your Flutter app on an attached device.
test Run Flutter unit tests for the current project.</p>
<p>Tools & Devices
attach Attach to a running app.
custom-devices List, reset, add and delete custom devices.
devices List all connected devices.
emulators List, launch and create emulators.
install Install a Flutter app on an attached device.
logs Show log output for running Flutter apps.
screenshot Take a screenshot from a connected device.
symbolize Symbolize a stack trace from an AOT-compiled Flutter app.</p>
<p>Run “flutter help <command />” for more information about a command.
Run “flutter help -v” for verbose help output, including less commonly used options.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1. To disable reporting of telemetry, run this terminal command:
<pre>flutter --disable-analytics</pre>
1. Navigate to the app's folder and run:
<pre>cd first_app; flutter run</pre>
</code></pre></div></div>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Connected devices:
Linux (desktop) • linux • linux-x64 • Debian GNU/Linux 11 (bullseye) 5.10.0-30-cloud-amd64
Chrome (web) • chrome • web-javascript • Google Chrome 126.0.6478.61
[1]: Linux (linux)
[2]: Chrome (chrome)
Please choose one (or "q" to quit): ``` ### Task 3. Exploring the Flutter code
</code></pre></div></div>
<ol>
<li>Click the folder icon at the upper-left of the IDE window.</li>
<li>Click “Open Folder” at <tt>/home/ide-dev/</tt>.</li>
<li>Select “first_app” to see its folders.</li>
<li>Click “OK” to see its files and folders:</li>
<li>
<p>Click file <tt>pubspec.yaml</tt> to view it on the right-side pane.</p>
<h3 id="task-4-running-the-flutter-web-application">Task 4. Running the Flutter web application</h3>
</li>
<li>REMEMBER: Click control + shift + ` or click the menu at the upper-left to select “Terminal”.</li>
<li>REMEMBER: Set the directory to first_app:
<pre>fwr</pre>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Launching lib/main.dart on Web Server in debug mode...
Waiting for connection from debug service on Web Server... 25.5s
lib/main.dart is being served at http://0.0.0.0:8080
The web-server device requires the Dart Debug Chrome extension for debugging. Consider using the Chrome or Edge devices for an improved development workflow.
🔥 To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".
</code></pre></div> </div>
</li>
<li>
<p>Type R (for “r”) to reload, waiting until “Recompile” message appears.</p>
</li>
<li>
<p>Click “Open in Browser” pop-up at the lower-right to open a URL such as:
<tt>https://ide-service-6rqup7ut6q-uk.a.run.app/proxy/8080/</tt></p>
</li>
<li>Click Command+` to switch to the Lab window.
<img alt="flutter-tutorial1-538x300.png" width="300" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763520438/flutter-tutorial1-538x300_w6xcmp.png" /></a></li>
<li>Click the copy icon for “Live Server” at the left panel.</li>
<li>Click the “+” at the top to start another incognito window.</li>
<li>Switch to the incognito window and paste the URL. Rendering of the web application can take up to ten seconds. The view will show the application based on the code in the editor.
<a name="HotReload"></a></li>
<li>Right-click to select “View Page Source”. REMEMBER: Instead of a lot of HTML, when the <tt>flutter_bootstrap.js</tt> file loads, it looks into <tt>manifest.json</tt> to know what else to load:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code><link rel="manifest" href="manifest.json">
</head>
<body>
<script src="flutter_bootstrap.js" async></script>
</body>
</code></pre></div> </div>
<p>That is called “Hot Reload”.</p>
<h3 id="task-5-flutter-hot-reload-libmaindart">Task 5. Flutter Hot reload lib/main.dart</h3>
<p><a name="DartEdit"></a></p>
</li>
<li>In the EXPLORER menu click “lib”, then “main.dart”.</li>
<li>
<p>Mouse over the separator above the Terminal panel and drag it down.</p>
<p>IMPORTANT: Leave a line exposed so you can easily type R (“r”) to Reload (even though the instruction is no longer visible.</p>
</li>
<li>Press “Esc” to enter Edit mode, because this is VIM.</li>
<li>
<p>Click to highlight <tt>Flutter Demo</tt> and type in its place
<tt>Flutter is awesome</tt></p>
</li>
<li>
<p>REMEMBER: Click control + shift + ` or click the menu at the upper-left to select “Terminal”.</p>
</li>
<li>Switch to the browser tab displaying “https://browser-service-6rqup7ut6q-uk.a.run.app/</li>
<li>
<p>Press CTRL+R to reload the page</p>
</li>
<li>Click control + shift + ` or click the menu at the upper-left to select “Terminal”.</li>
<li>Click “End Lab”.</li>
<li>Close the Incognito browser window and Google Skills web page.</li>
</ol>
<p><a name="DartLang"></a></p>
<h3 id="googles-dart-language">Google’s Dart language</h3>
<ol>
<li>
<p>Confirm the version of the Dart language installed.</p>
<p>3.10 released on: November 12, 2025</p>
<p>Dart code files have an extension of “.dart”, introduced in 2011 and got to v1.0 in 2013.</p>
</li>
<li>
<p>List past versions at:</p>
<p>https://dart.dev/resources/whats-new</p>
<p><a target="_blank" href="https://blog.flutter.dev/dart-flutter-momentum-at-google-i-o-2025-4863aa4f84a4"><img alt="" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763557327/dartlang-evolution_mlow50.webp" /></a></p>
</li>
<li>
<p>Contributed code used for Google’s demos</p>
<p>https://github.com/flutter/demos</p>
</li>
<li>
<p>open source samples that illustrate best practices for Flutter</p>
<p>https://github.com/flutter/samples?tab=readme-ov-file</p>
</li>
<li>
<p>TODO: dart install tool.</p>
</li>
<li>
<p>Contents of <tt>/lib/main.dart</tt> from <a target="_blank" href="https://www.geeksforgeeks.org/flutter/creating-a-simple-application-in-flutter/#create-a-new-flutter-project-using-visual-studio-code">*</a></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> // Importing important packages require to connect
// Flutter and Dart
import 'package:flutter/material.dart';
// Main Function
void main() {
// Giving command to runApp() to run the app.
// The purpose of the runApp() function is to attach
// the given widget to the screen.
runApp(const MyApp());
}
// MyApp extends StatelessWidget and overrides its
// build method.
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
// title of the application
title: 'Hello World Demo Application',
// theme of the widget
theme: ThemeData(
primarySwatch: Colors.lightGreen,
),
// Inner UI of the application
home: const MyHomePage(title: 'Home page'),
);
}
}
// This class is similar to MyApp instead it
// returns Scaffold Widget
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
backgroundColor: Colors.green,
foregroundColor: Colors.white,
),
// Sets the content to the
// center of the application page
body: const Center(
// Sets the content of the Application
child: Text(
'Welcome to Visual Studio Code!',
)),
);
}
}
</code></pre></div> </div>
</li>
</ol>
<p><a name="MacOSInstall"></a></p>
<h2 id="install-for-local-development-on-macos">Install for local Development on MacOS</h2>
<p>https://docs.flutter.dev/get-started/custom#target-platform</p>
<ul>
<li>
<p><a target="_blank" href="https://www.geeksforgeeks.org/flutter/creating-a-simple-application-in-flutter/#create-a-new-flutter-project-using-android-studio">Create a New Flutter Project Using Android Studio IDE</a></p>
</li>
<li>
<p><a target="_blank" href="https://www.geeksforgeeks.org/flutter/creating-a-simple-application-in-flutter/#create-a-new-flutter-project-using-visual-studio-code">Create a New Flutter Project Using Visual Studio Code</a></p>
</li>
</ul>
<ol>
<li>Install Homebrew for Mac</li>
<li>Install git, XCode</li>
<li>Install Flutter for CLI with <tt>brew install –cask flutter</tt></li>
<li>Install Visual Studio Code with extras for Flutter:
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
<ol>
<li>Click “Install”.</li>
</ol>
<p>Alternately:</p>
<ol>
<li>In Go to View > Command Palette or press Command + Shift + P.</li>
<li>
<p>In the command palette, type flutter.</p>
</li>
<li>Select Flutter: New Project.</li>
</ol>
<p>VS Code prompts you to locate the Flutter SDK on your computer. Select Download SDK.</p>
<ol>
<li>
<p>When the Select Folder for Flutter SDK dialog displays, choose where you want to install Flutter.</p>
</li>
<li>
<p>Click Clone Flutter.</p>
</li>
<li>
<p>While downloading Flutter, VS Code displays this pop-up notification:</p>
</li>
<li>
<p>Downloading the Flutter SDK. This may take a few minutes.
This download takes a few minutes. If you suspect that the download has hung, click Cancel then start the installation again.</p>
</li>
<li>
<p>Click Add SDK to PATH.</p>
</li>
<li>
<p>When successful, a notification displays: “The Flutter SDK was added to your PATH. VS Code might display a Google Analytics notice.” If you agree, click OK.</p>
</li>
<li>
<p>To ensure that Flutter is available in all terminals: Close all terminal windows. Then Quit and Restart VS Code.</p>
</li>
</ol>
</li>
<li>Verify installation: <pre>flutter –version</pre>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Flutter 3.38.2 • channel stable •
https://github.com/flutter/flutter.git
Framework • revision f5a8537f90 (15 hours
ago) • 2025-11-18 09:27:21 -0500
Engine • hash
78c3c9557e50ee7c676fa37562558c59efd8406a
(revision b5990e5ccc) (6 days ago) •
2025-11-12 21:08:24.000Z
Tools • Dart 3.10.0 • DevTools 2.51.1
</code></pre></div> </div>
</li>
<li>
<p>To support Flutter plugins that use native macOS code, install the latest version of https://cocoapods.org/, following the <a target="_blank" href="https://guides.cocoapods.org/using/getting-started.html#installation">CocoaPods installation guide</a>
See https://flutter.dev/to/platform-plugins</p>
<pre>sudo gem install cocoapods</pre>
<p>Alternately, <a target="_blank" href="https://guides.cocoapods.org/using/getting-started.html#updating-cocoapods">CocoaPods update guide</a>.</p>
<pre>[sudo] gem install cocoapods</pre>
</li>
<li>Run <pre>flutter doctor -v</pre>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> [✗] Chrome - develop for the web (Cannot find
Chrome executable at /Applications/Google
Chrome.app/Contents/MacOS/Google Chrome)
[7ms]
! Cannot find Chrome. Try setting
CHROME_EXECUTABLE to a Chrome
executable.
</code></pre></div> </div>
</li>
<li>
<p>Check for macOS devices to ensure Flutter can find and connect to your macOS device correctly, run flutter devices in your preferred terminal:</p>
<pre>flutter devices</pre>
</li>
</ol>
<h2 id="create-locally-step-by-step">Create locally step-by-step</h2>
<p>View <a target="_blank" href="https://www.youtube.com/watch?v=8sAyPDLorek">Building your first Flutter App</a> within <a target="_blank" href="https://codelabs.developers.google.com/?text=flutter">https://codelabs.developers.google.com/?text=flutter</a> with code at:</p>
<ol>
<li>Install VSCode & Flutter (above)</li>
</ol>
<p><a name="Testing"></a></p>
<h2 id="testing-mobile-apps">Testing mobile apps</h2>
<p><a target="_blank" href="https://codelabs.developers.google.com/codelabs/flutter-app-testing/#0">How to Test a Flutter app</a></p>
<ol>
<li>
<p>Create an Android emulator, download Android Studio which also supports Flutter development, and follow the instructions in Create and manage virtual devices.</p>
</li>
<li>
<p>Create an iOS simulator, you will need a Mac environment. Download XCode, and follow the instructions in Simulator Overview > Use Simulator > Open and close a simulator.</p>
</li>
<li>
<p>TODO: dart build tool.</p>
</li>
</ol>
<h2 id="agentic-vertex-ai">Agentic Vertex AI</h2>
<ul>
<li>
<p><a target="_blank" href="https://flutter.dev/events/building-agentic-apps#flutter-vertex-ai">Flutter with Google Vertex AI in Firebase (ViF)</a> SaaS</p>
</li>
<li>
<p><a target="_blank" href="http://flutter.dev/events/building-agentic-apps#flutter-genkit">Google Genkit lives on a server</a></p>
</li>
<li>
<p>https://blog.flutter.dev/learn-how-to-build-agentic-apps-with-flutter-angular-firebase-and-vertex-ai-ad46b38b1adb</p>
</li>
<li>
<p>https://flutter.dev/events/building-agentic-apps#home</p>
</li>
<li>
<p>MCP server?</p>
</li>
</ul>
<h2 id="svg--icon-fonts">SVG & Icon Fonts</h2>
<p>.svg vector files look sharper and consume less space because they are treated like program code.</p>
<p>Search for images from stock photo sites:</p>
<ul>
<li>dribble.com</li>
<li>pinterest.com</li>
</ul>
<ol>
<li>Dart function declaration to let the LLM set colors in your app:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>FunctionDeclaration get setColorFuncDecl => FunctionDeclaration(
'set_color',
'Set the color of the display square based on red, green, and blue values.',
parameters: {
'red': Schema.number(description: 'Red component value (0.0 - 1.0)'),
'green': Schema.number(description: 'Green component value (0.0 - 1.0)'),
'blue': Schema.number(description: 'Blue component value (0.0 - 1.0)'),
},
);
</code></pre></div> </div>
</li>
</ol>
<h2 id="graphically-design-using-figma">Graphically Design using Figma</h2>
<p>Generate from visual designs in <a target="_blank" href="https://elements.envato.com/graphic-templates/compatible-with-figma">$20+/mo</a> <a target="_blank" href="https://help.figma.com/hc/en-us/articles/5601429983767-Guide-to-the-Figma-desktop-app">Figma Design Desktop app</a> based on <a target="_blank" href="https://elements.envato.com/graphic-templates/compatible-with-figma">templates from $16.50/mo Envato</a></p>
<p><a target="_blank" href="https://help.figma.com/hc/en-us/categories/360002042553">About Figma Design</a> to Design and prototype in one place.</p>
<p>Features</p>
<ul>
<li><a target="_blank" href="https://firebase.google.com/codelabs/firebase-auth-in-flutter-apps">User Authentication</a></li>
<li>Billing</li>
</ul>
<h2 id="e-commerce">E-commerce</h2>
<p><a target="_blank" href="https://github.com/googlecodelabs">https://github.com/googlecodelabs</a> shown using npm ployserve.</p>
<p>panoply store</p>
<ul>
<li>
<p><a target="_blank" href="https://docs.flutter.dev/reference/learning-resources">Samples and tutorials</a></p>
</li>
<li>
<p><a target="_blank" href="https://docs.flutter.dev/cookbook/networking/authenticated-requests">Make authenticated requests</a></p>
</li>
</ul>
<h2 id="ui-widgets">UI Widgets</h2>
<p>PROTIP: Split code into separate widget sections for faster performance.</p>
<p><img align="right" alt="flutter-widgets-hier-357x662.png" width="200" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763520045/flutter-widgets-hier-357x662_tyx0vr.png" /></p>
<p>Google Material Design and Cupertino support Flutter’s wide range of widgets.</p>
<ul>
<li>
<p><a target="_blank" href="https://www.youtube.com/live/YY-_yrZdjGc?si=4JjDyiuMCISniUJE">YouTube Live: Building scrolling experiences in Flutter | Workshop</a></p>
</li>
<li>
<p><a target="_blank" href="https://codelabs.developers.google.com/codelabs/flutter-next-gen-uis?hl=en">Building next generation UIs in Flutter</a> - animations, shaders, and particle effects that work across all of Flutter’s six platforms.</p>
</li>
</ul>
<h2 id="smart-phone-app-features">Smart Phone app features</h2>
<p>animations and transitions to make apps visually stunning.</p>
<p>Utilize device features such as the camera within your applications.</p>
<p><a target="_blank" href="https://medium.com/@kingrittik/mastering-emulators-in-vs-code-android-studio-google-fold-pro-pro-tips-4f11bd97fa6a"> Mastering Emulators in VS Code & Android Studio (Google Fold Pro & Pro Tips!)</a> (virtual devices)</p>
<p>Zoho Tables mobile apps are built using Flutter and has a million lines of code. All state management is done using BLoC, ValueNotifier, ValueListenableBuilder.</p>
<h2 id="database">Database</h2>
<p>https://github.com/amugofjava/anytime_podcast_player
uses Sembast, a NoSQL in-memory database but less suitable for a larger, more data-centric app.</p>
<h2 id="web-apps">Web apps</h2>
<p>Flutter’s Skia rendering engine runs 60 frames per second for visually stunning and responsive user interfaces.</p>
<p>Taking Flutter to the Web
By Damodar Lohani</p>
<h2 id="calls-to-apis">Calls to APIs</h2>
<p>Third-party integrations include cloud hosting, data storage, payment gateways, and SMS push notifications.</p>
<p>AI tools: Google Gemini, OpenAI (ChatGPT), Anthropic</p>
<p><a name="Firebase"></a></p>
<h2 id="googles-firebase-backend">Google’s Firebase Backend</h2>
<ol>
<li>
<p>Google Project Account to set up Firebase account.</p>
</li>
<li>
<p>Get on the FireBase Console at:</p>
<p><a target="_blank" href="https://console.firebase.google.com/">https://console.firebase.google.com/</a></p>
</li>
<li>
<p><a target="_blank" href="https://firebase.google.com/docs/flutter/setup?platform=ios">Add Firebase to your Flutter app</a></p>
</li>
</ol>
<ul>
<li>
<p><a target="_blank" href="https://firebase.google.com/codelabs/firebase-get-to-know-flutter?hl=en#0">Get to know Firebase for Flutter</a></p>
</li>
<li>
<p><a target="_blank" href="https://codelabs.developers.google.com/codelabs/flutter-codelab-first?hl=en">Your first Flutter app</a></p>
</li>
<li>
<p><a target="_blank" href="https://codelabs.developers.google.com/codelabs/flutter-gemini-colorist?hl=en">Build a Gemini powered Flutter app</a> generates random, cool-sounding names. April 17, 2025 with Craig Labenz and Andrew Brogdon of DevRel. This use Asynchronous programming - Futures, async/await, and streams.
Interprets the descriptions into precise RGB color values
Displays the color on screen in real-time
Provides technical color details and interesting context about the color
Maintains a history of recently generated colors</p>
<ol>
<li>Project setup - You’ll start with a basic Flutter app structure and the colorist_ui package</li>
<li>Basic Gemini integration - Connect your app to Firebase AI Logic and implement LLM communication</li>
<li>Effective prompting - Create a system prompt that guides the LLM to understand color descriptions</li>
<li>Function declarations - Define tools that the LLM can use to set colors in your application</li>
<li>Tool handling - Process function calls from the LLM and connect them to your app’s state</li>
<li>Streaming responses - Enhance the user experience with real-time streaming LLM responses</li>
<li>
<p>LLM Context Synchronization - Create a cohesive experience by informing the LLM of user actions</p>
</li>
<li>Configure Firebase AI Logic for Flutter applications</li>
<li>Craft effective system prompts to guide LLM behavior</li>
<li>Implement function declarations that bridge natural language and app features</li>
<li>Process streaming responses for a responsive user experience</li>
<li>Synchronize state between UI events and the LLM</li>
<li>Manage LLM conversation state using Riverpod</li>
<li>Handle errors gracefully in LLM-powered applications
<br /><br /></li>
</ol>
</li>
<li>
<p>Generate random dishes to cook and eat based on user criteria.</p>
</li>
<li>
<p><a target="_blank" href="https://firebase.google.com/codelabs/get-started-firebase-emulators-and-flutter?hl=en">Local development for your Flutter apps using the Firebase Emulator Suite</a></p>
</li>
<li>
<p><a target="_blank" href="http://firebase.google.com/codelabs/firebase-auth-in-flutter-apps?hl=en#0">Send and receive notifications for a Flutter app using Firebase Cloud Messaging</a></p>
</li>
<li>
<p><a target="_blank" href="https://firebase.google.com/codelabs/firebase-fcm-flutter?hl=en#0">FCM</a></p>
</li>
</ul>
<h2 id="resources">Resources</h2>
<h2 id="jobs">Jobs</h2>
<p>https://www.virtualemployee.com/da/hire-flutter-app-developers/</p>
<p><a href="https://wilsonmar.github.io/flutter-dev/">Flutter development</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 20, 2025.</p>
https://wilsonmar.github.io/jekyll-site-development2025-11-18T00:00:00+00:002025-11-18T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Getting started with Jekyll</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/jekyll-site-development/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#the-objective" id="markdown-toc-the-objective">The objective</a></li>
<li><a href="#upgrade-apple-xcode" id="markdown-toc-upgrade-apple-xcode">Upgrade Apple XCode</a></li>
<li><a href="#install-rbenv" id="markdown-toc-install-rbenv">Install rbenv</a></li>
<li><a href="#create-a-folder" id="markdown-toc-create-a-folder">Create a folder</a> <ul>
<li><a href="#install-jekyll-instead-of-homebrew" id="markdown-toc-install-jekyll-instead-of-homebrew">Install Jekyll (instead of Homebrew):</a></li>
</ul>
</li>
<li><a href="#bundle-install" id="markdown-toc-bundle-install">Bundle install</a></li>
<li><a href="#grunt-tasks" id="markdown-toc-grunt-tasks">Grunt tasks</a></li>
<li><a href="#serve-jekyll-landing-page" id="markdown-toc-serve-jekyll-landing-page">Serve Jekyll landing page</a> <ul>
<li><a href="#edit-indexhtml-author_profile" id="markdown-toc-edit-indexhtml-author_profile">Edit index.html author_profile</a></li>
</ul>
</li>
<li><a href="#change-readmemd-content" id="markdown-toc-change-readmemd-content">Change README.md content</a> <ul>
<li><a href="#edit-_configyml-and-reset-server" id="markdown-toc-edit-_configyml-and-reset-server">Edit _config.yml and reset server</a></li>
<li><a href="#edit-_configyml-author-info" id="markdown-toc-edit-_configyml-author-info">Edit _config.yml author info</a></li>
</ul>
</li>
<li><a href="#tabs-folders-and-indexmd-files-for-seo" id="markdown-toc-tabs-folders-and-indexmd-files-for-seo">Tabs, folders, and index.md files (for SEO)</a> <ul>
<li><a href="#indexmd-under-about-folders" id="markdown-toc-indexmd-under-about-folders">index.md under About folders</a></li>
<li><a href="#indexmd-under-folders" id="markdown-toc-indexmd-under-folders">index.md under folders</a></li>
<li><a href="#parsing-of-post-file-names" id="markdown-toc-parsing-of-post-file-names">Parsing of post file names</a></li>
<li><a href="#ui-text-translation" id="markdown-toc-ui-text-translation">UI Text Translation</a></li>
<li><a href="#metadata-within-md-files" id="markdown-toc-metadata-within-md-files">Metadata within .md files</a></li>
<li><a href="#layout-types" id="markdown-toc-layout-types">Layout types</a></li>
<li><a href="#liquid-engine" id="markdown-toc-liquid-engine">Liquid engine</a> <ul>
<li><a href="#collections" id="markdown-toc-collections">Collections</a></li>
</ul>
</li>
<li><a href="#link-icon-yaml" id="markdown-toc-link-icon-yaml">Link icon YAML</a></li>
<li><a href="#yml-metada" id="markdown-toc-yml-metada">.yml metada</a></li>
<li><a href="#sitemapxml-in-_site" id="markdown-toc-sitemapxml-in-_site">sitemap.xml in _site</a></li>
<li><a href="#bing-it-on" id="markdown-toc-bing-it-on">Bing it on</a></li>
<li><a href="#google-ownership" id="markdown-toc-google-ownership">Google Ownership</a></li>
<li><a href="#disqus-comments" id="markdown-toc-disqus-comments">Disqus comments</a></li>
<li><a href="#multiple-authors" id="markdown-toc-multiple-authors">Multiple authors</a></li>
<li><a href="#social-links-" id="markdown-toc-social-links-">Social links +</a></li>
<li><a href="#social-sharing" id="markdown-toc-social-sharing">Social sharing</a></li>
</ul>
</li>
<li><a href="#images" id="markdown-toc-images">Images</a> <ul>
<li><a href="#in-line-gfm-images" id="markdown-toc-in-line-gfm-images">In-line GFM images</a></li>
<li><a href="#clickable-images" id="markdown-toc-clickable-images">Clickable images</a> <ul>
<li><a href="#one-up" id="markdown-toc-one-up">One Up</a></li>
<li><a href="#halfthree-up" id="markdown-toc-halfthree-up">Half/Three Up</a></li>
<li><a href="#three-up" id="markdown-toc-three-up">Three Up</a></li>
</ul>
</li>
<li><a href="#layout-responsive-to-screen-size" id="markdown-toc-layout-responsive-to-screen-size">Layout responsive to screen size</a></li>
<li><a href="#image-sized-to-screen" id="markdown-toc-image-sized-to-screen">Image sized to screen?</a></li>
</ul>
</li>
<li><a href="#markdown-coding" id="markdown-toc-markdown-coding">Markdown coding</a> <ul>
<li><a href="#notice-boxes" id="markdown-toc-notice-boxes">Notice boxes</a></li>
<li><a href="#blockquotes" id="markdown-toc-blockquotes">Blockquotes</a></li>
<li><a href="#footnotes" id="markdown-toc-footnotes">Footnotes</a></li>
<li><a href="#button-colors-in-html" id="markdown-toc-button-colors-in-html">Button colors in HTML</a></li>
<li><a href="#sass" id="markdown-toc-sass">SASS</a></li>
<li><a href="#paragraph-indents" id="markdown-toc-paragraph-indents">Paragraph Indents</a></li>
<li><a href="#numbered-lists" id="markdown-toc-numbered-lists">Numbered lists</a></li>
<li><a href="#code-snippets" id="markdown-toc-code-snippets">Code Snippets</a></li>
<li><a href="#gists" id="markdown-toc-gists">Gists</a></li>
<li><a href="#standard-gfm-mark-up" id="markdown-toc-standard-gfm-mark-up">Standard GFM mark-up</a></li>
<li><a href="#custom-includes" id="markdown-toc-custom-includes">Custom Includes</a></li>
<li><a href="#tables" id="markdown-toc-tables">Tables</a></li>
</ul>
</li>
<li><a href="#affiliate-ads" id="markdown-toc-affiliate-ads">Affiliate Ads</a> <ul>
<li><a href="#amazon-affiliate-ads" id="markdown-toc-amazon-affiliate-ads">Amazon Affiliate Ads</a></li>
<li><a href="#google-affiliate-ads" id="markdown-toc-google-affiliate-ads">Google Affiliate Ads</a></li>
</ul>
</li>
<li><a href="#site-search" id="markdown-toc-site-search">Site Search</a></li>
<li><a href="#gitignore" id="markdown-toc-gitignore">.gitignore</a></li>
<li><a href="#additional-features" id="markdown-toc-additional-features">Additional features</a></li>
<li><a href="#deploy-to-server" id="markdown-toc-deploy-to-server">Deploy to server</a></li>
<li><a href="#questions" id="markdown-toc-questions">Questions</a></li>
<li><a href="#footnotes-1" id="markdown-toc-footnotes-1">Footnotes</a></li>
<li><a href="#jekyll-minimalmistake-users-in-the-wild" id="markdown-toc-jekyll-minimalmistake-users-in-the-wild">Jekyll MinimalMistake users in the wild</a></li>
<li><a href="#more-on-front-end-styling" id="markdown-toc-more-on-front-end-styling">More on front-end styling</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>NOTICE:
<a target="_blank" href="https://kubernetes.io/blog/2018/05/05/hugo-migration/">Kubernetes.io moved their docs to Hugo in 2018</a>.</p>
<p>This article contains notes on getting started with Jekyll and other static websites.</p>
<p>This is one in a series:</p>
<ol>
<li><a href="/static-websites/">Static website development</a></li>
<li><a href="/jekyll-site-development/">Jekyll site development</a></li>
<li><a href="/jekyll-templates/">Jekyll templates and themes</a></li>
<li><a href="/email-from-jekyll/">Email from Jekyll sites</a></li>
<li><a href="/jekyll-with-algolia-search/">Add search to Jekyll sites</a></li>
<li><a href="/authentication-on-static-site/">Authenticate on static sites</a></li>
<li><a href="/clickable-maps-in-jekyll-posts/">Clickable maps in Jekyll sites</a></li>
</ol>
<p><em>NOTE: Content here are my personal opinions, and
not intended to represent any employer (past or present).
“PROTIP:” here highlight information I haven’t seen elsewhere on the internet
because it is hard-won, little-know but significant facts
based on my personal research and experience.
</em></p>
<p>There is also <a target="_blank" href="https://wilsonmar.github.io/gatsby">Gatsby</a> and others.</p>
<p>But Jekyll is still currently the <a href="/static-websites/">most popular among static site builder options</a>.</p>
<h2 id="the-objective">The objective</h2>
<p>What we would like to do after going thrugh the below is to type this on a Terminal and a browser would open to show your Jekyll site locally.</p>
<ol>
<li>
<p>In the macOS <code class="language-plaintext highlighter-rouge">~/.bash_profile</code> add a shortcut, but substitute “wilsonmar” with your own GitHub account name:</p>
<pre>
alias js='cd ~/gits/wilsonmar/wilsonmar.github.io; \
bundle exec jekyll serve --config _config.yml'
</pre>
</li>
<li>
<p>Create the folder.</p>
</li>
</ol>
<h2 id="upgrade-apple-xcode">Upgrade Apple XCode</h2>
<ol>
<li>Install the latest XCode from Apple. See my tutorial at <a target="_blank" href="https://wilsonmar.github.io/xcode/">https://wilsonmar.github.io/xcode</a></li>
</ol>
<p>Jana Bergant’s <a target="_blank" href="https://www.udemy.com/static-website-generator-fast-secure-sites-blogs-with-jekyll/">
Udemy course</a> uses a mac install Jekyll 3.3.0 at last viewing:</p>
<h2 id="install-rbenv">Install rbenv</h2>
<ol>
<li>
<p>Get list of rbenv versions</p>
<table>
<tbody>
<tr>
<td>rbenv install -l</td>
<td>grep -E “^\s*3.[0-9]+.[0-9]+$”</td>
<td>tail -10</td>
</tr>
</tbody>
</table>
</li>
<li>
<p>Specify latest
rbenv install 3.4.7
rbenv global 3.4.7</p>
</li>
<li>
<p>Per https://github.com/rbenv/ruby-build/wiki#suggested-build-environment</p>
<pre><strong>brew install openssl libyaml libffi</strong></pre>
<pre><strong>brew install rbenv ruby-build</strong></pre>
</li>
<li>
<p>To avoid ???:</p>
<p>??? /usr/local/bin for Intel chips</p>
<pre><strong>sudo gem update --system -n /usr/local/bin --no-document</strong></pre>
<p><code class="language-plaintext highlighter-rouge">-n /usr/local/bin</code> ensures avoids “You don’t have write permissions for the /usr/bin directory.”</p>
<p><code class="language-plaintext highlighter-rouge">--no-document</code> to avoid installing documentation (which can be accessed online anyway)</p>
</li>
<li></li>
</ol>
<p>which ruby</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> /Users/johndoe/.rbenv/shims/ruby
</code></pre></div></div>
<h2 id="create-a-folder">Create a folder</h2>
<p>CAUTION: In 2019, GitHub changed <a target="_blank" href="https://github.com/pricing">their pricing policies</a> to begin charging for hosting websites (at $7/month). That $84 per year is less than what many hosting companies charge to provide a single machine. But GitHub also provides free scaling and a fast world-wide CDN for no additional cost.</p>
<ol>
<li>
<p>In GitHub create a <em>youraccount</em>.github.io repo.</p>
</li>
<li>
<p>Delete file .bundle from my Home folder (rm -rf ~/.bundle). You can check out your configuration running bundle env</p>
<p>https://jekyllrb.com/docs/</p>
</li>
<li>
<p>In Terminal, from any folder,</p>
<pre>sudo gem uninstall bundler
gem update --system
</pre>
<p>Response:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RubyGems system software updated
</code></pre></div> </div>
<p>If the latest version is not installed, you get a message like this:</p>
<pre>
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
</pre>
</li>
<li>
<p>Rehash:</p>
<pre>
rbenv rehash
sudo gem install bundler
</pre>
<p>A valid response I got:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Successfully installed bundler-2.0.1
Parsing documentation for bundler-2.0.1
Done installing documentation for bundler after 4 seconds
1 gem installed
</code></pre></div> </div>
<h3 id="install-jekyll-instead-of-homebrew">Install Jekyll (instead of Homebrew):</h3>
<pre><strong>gem install jekyll --no-document</strong></pre>
<p>The response:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Successfully installed jekyll-4.4.1
28 gems installed
</code></pre></div> </div>
<p>http://ryan.mcgeary.org/2011/02/09/vendor-everything-still-applies/</p>
</li>
<li>
<p>In _config.yml</p>
<pre>exclude: ["vendor", "lib", </pre<>
### Demo Site
</pre>
</li>
<li>
<p>Use or create an enclosing folder, such as “projects”.</p>
<pre>jekyll new demosite</pre>
<p>The response should be</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>New jekyll site installed ...
</code></pre></div> </div>
<p>BLAH: I’m getting this message:</p>
<pre>
Your user account isn't allowed to install to the system RubyGems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to RubyGems using sudo.
Password:
</pre>
</li>
</ol>
<h2 id="bundle-install">Bundle install</h2>
<p>After downloading, have Maven pull in dependencies based on the Gemfile:</p>
<p><tt><strong>bundle install</strong></tt></p>
<p>NOTE: Technically, “install” is not needed since it’s the default command for bundle.</p>
<p>Bundling makes the list of dependencies in the <strong>Gemfile</strong> to be downloaded.</p>
<pre>
Your user account isn't allowed to install to the system RubyGems.
You can cancel this installation and run:
bundle install --path vendor/bundle
</pre>
<h2 id="grunt-tasks">Grunt tasks</h2>
<p>Behind the scenes is a running of the <strong>Gruntfie.js</strong> that comes with the theme.
It defines the parameters of various tasks that are downloaded:</p>
<ul>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-clean">clean</a>
clears files and folders.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-jshint">jshint</a>
validates files with JSHint, based on the <strong>.jshintrc</strong> configuration file at the root folder.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-uglify">uglify</a>
minfies files with UglifyJS.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-watch">watch</a>
runs tasks whenever watched files change.</li>
<li><a target="_blank" href="https://github.com/gruntjs/grunt-contrib-imagemin">imagemin</a>
minifies PNG graphics files.</li>
<li><a target="_blank" href="https://github.com/sindresorhus/grunt-svgmin">grunt-svgmin</a>
minifies SVG graphics files.</li>
</ul>
<p>NOTE: File names beginning with a dot are hidden.</p>
<h2 id="serve-jekyll-landing-page">Serve Jekyll landing page</h2>
<p>Theme programming goes to work generating HTML files in folder <strong>_site</strong>
when this command is issued when the present working directory is the
site’s folder:</p>
<p><a name="invoke-server"></a></p>
<p>To see the site the way GitHub would generate it
(without additional plug-ins some templates provide):</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> bundle exec jekyll serve --safe
</code></pre></div></div>
<p>The precise version of plug-ins used by GitHub on-line is listed
<a target="_blank" href="https://pages.github.com/versions/">here</a>.</p>
<p>Otherwise:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> bundle exec jekyll serve --baseurl ''
</code></pre></div></div>
<p>Alternately, override local URLs:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> bundle exec jekyll serve --config _config.yml,_config_dev.yml
</code></pre></div></div>
<p>PROTIP: Define an alias, such as “bs” in <strong>~/.bash_profile</strong> file:</p>
<p><code class="language-plaintext highlighter-rouge">alias bs='bundle exec jekyll serve --config _config.yml,_config_dev.yml'</code></p>
<p>PROTIP: Leave this terminal instance running and open another Terminal
instance to work on the content of the site.</p>
<p>The generated HTML files can then be accessed from an internet browser
at this URL:</p>
<p><a target="_blank" href="http://localhost:4000">http://localhost:4000</a></p>
<p>The landing page of the site is defined in the <strong>index.md</strong> file at the root folder.</p>
<p>The theme by itself does not show much.
The template’s author assumes that technical people will be using his creation.</p>
<p>When the web server starts, it is industry standard for the <code class="language-plaintext highlighter-rouge">index.html</code> file to be rendered.</p>
<ol>
<li>Edit file index.html file. By default it contains this:</li>
</ol>
<figure class="highlight"><pre><code class="language-html" data-lang="html">---
layout: archive
author_profile: true
---
<span class="ni">&#217;</span>% include base_path %}
<span class="ni">&LT;</span>h3 class="archive__subtitle">Recent Posts<span class="ni">&LT;</span>/h3>
<span class="ni">&#217;</span>% for post in paginator.posts %}
<span class="ni">&#217;</span>% include archive-single.html %}
<span class="ni">&#217;</span>% endfor %}
<span class="ni">&#217;</span>% include paginator.html %}</code></pre></figure>
<p>Between the two triple-dash characters is the <strong>“front matter”</strong>
for Jekyll to interpret.</p>
<p>Jekyll uses the layout tag’s value <strong>archive</strong> to build out the page
according to the archive.html file within the _layouts folder.</p>
<p>Another layout type, splash, arranges the page with thumbnail pictures.</p>
<p>The other layout types are default, single, and compress.</p>
<p>Jekyll converts index.md files to index.html files.</p>
<h3 id="edit-indexhtml-author_profile">Edit index.html author_profile</h3>
<p>Having <code class="language-plaintext highlighter-rouge">author_profile: true</code> tells Jekyll to add the profile on the left side.</p>
<ol>
<li>If you would rather have text greet your visitors, add it.</li>
</ol>
<figure class="highlight"><pre><code class="language-text" data-lang="text">---
layout: home
excerpt: "By Wilson Mar"
tags: [Jekyll, theme, responsive, blog, template]
image:
feature: sunrise-1900x500.png
credit:
creditlink:
---</code></pre></figure>
<ol>
<li>If you would rather have text greet your visitors, add it.</li>
</ol>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><meta</span> <span class="na">name=</span><span class="s">"keywords"</span> <span class="na">content=</span><span class="s">"Jekyll, theme, responsive, blog, template"</span><span class="nt">></span></code></pre></figure>
<p>TODO: Substitute the image file name in the <strong>feature:</strong> variable
with an alternative file you placed in the <strong>images</strong> folder.</p>
<p>Return to this page from any other by clicking on the site’s title
presented at the upper left corner.</p>
<h2 id="change-readmemd-content">Change README.md content</h2>
<ol>
<li>
<p>Use a text editor program to open the README.md file at the root.</p>
<p>This file is not shown on the website.</p>
<p>It was written for those who work with the site’s code,
not readers of the resulting website.</p>
<p>So the content of this page should be changed from being about the theme
to about the website derived from the theme template, such as:</p>
<p>“I hope you’ll file an issue or send a Pull Request. I need the help.”</p>
</li>
<li>
<p>File mm-theme-post-600.jpg within the <strong>images</strong> folder can be deleted.</p>
</li>
</ol>
<h3 id="edit-_configyml-and-reset-server">Edit _config.yml and reset server</h3>
<ol>
<li>
<p>Use a text editor to edit <strong>_config.yml</strong>.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Site Settings
locale : "en-US"
title : "Home"
title_separator : "-"
name : "Wilson Mar"
description : "Hello. Hire me."
</code></pre></div> </div>
</li>
<li>
<p>Change the <code class="language-plaintext highlighter-rouge">title</code> text from “USER_” to <code class="language-plaintext highlighter-rouge">"Home"</code> or whatever you want.</p>
</li>
<li>
<p>Change the name value to your screen name.</p>
</li>
<li>Save and exit the file.</li>
<li>Stop the server so the changes take.</li>
<li>
<p>Start the server again.</p>
</li>
<li>When you view the page again, notice the heading has changed to your title value.</li>
</ol>
<h3 id="edit-_configyml-author-info">Edit _config.yml author info</h3>
<ol>
<li>
<p>Again use a text editor to edit the _config.yml file to change other values.</p>
</li>
<li>
<p>Scroll down the file to:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Site Author
author:
name : "Wilson Mar"
avatar : "bio-photo.jpg"
bio : "Hello."
location : "Everywhere"
</code></pre></div> </div>
</li>
<li>
<p>Change the default author name, bio text, and location.</p>
<p><a href=”#avatar>Change the avatar</a>.
PROTIP: Don’t change more than one or two values before you reset and view again
so you know what change break the system.</p>
</li>
</ol>
<h2 id="tabs-folders-and-indexmd-files-for-seo">Tabs, folders, and index.md files (for SEO)</h2>
<p>Links at the top of the page (“QUICK-START GUIDE”, “ABOUT”, etc.)
are specfied by the navigation.html file within the _data folder.</p>
<ol>
<li>
<p>Edit that file.</p>
<p>The <strong>title:</strong> key specifies the text of each tab, such as “About”.</p>
<p>NOTE: CSS in the theme automatically turns all letters into capital.</p>
</li>
<li>
<p>Change url values such as this:</p>
</li>
</ol>
<figure class="highlight"><pre><code class="language-text" data-lang="text">- title: About
url: /about/
- title: Sample Posts
url: /posts/
</code></pre></figure>
<ol>
<li>Save and restart the server.</li>
</ol>
<h3 id="indexmd-under-about-folders">index.md under About folders</h3>
<p>Next let’s use a text editor to look into that <strong>about</strong> folder specified in the .yml file.</p>
<p>github:
repo: https://github.com/user/Proj # “GitHub project” link on sidebar</p>
<h3 id="indexmd-under-folders">index.md under folders</h3>
<p>Jekyll converts the contents of each <strong>index.md</strong> file (containing markdown text)
into <strong>index.html</strong> files containing HTML.</p>
<p>Open the <strong>index.md</strong> file in the about folder.</p>
<p>HOORAY: The use of folders above an index.html file enables
calls using SEO-friendly links. For example, to reference the
about link:</p>
<p>http://localhost:4000/about</p>
<p>HOORAY: This technique does not require use of mechanisms in the underlying web server container
(such as IIS).</p>
<p>The text is added to page titles that appear in browser tabs through this HTML:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text"><title>All Posts &#8211; WilsonMar.GitHub.io</title></code></pre></figure>
<h3 id="parsing-of-post-file-names">Parsing of post file names</h3>
<p>The <strong>posts</strong> tab link to files within the <strong>_posts</strong> folder.
In the case of the sample file named “2011-03-10-sample-post.md”,
Jekyll programming parses the “sample-post” out of the file name and uses that
as if it’s named “sample-post.html”.</p>
<h3 id="ui-text-translation">UI Text Translation</h3>
<p>An addition</p>
<h3 id="metadata-within-md-files">Metadata within .md files</h3>
<p>At the top of each markdown file, between a set of 3 dashes,
are key-value pairs providing metadata about the page, such as this example
from the <strong>index.md</strong> file within folder <strong>about</strong>:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">---
layout: page
title: About
tags: [about, Jekyll, theme, responsive]
modified: 2014-08-08T20:53:07.573882-04:00
comments: true
image:
feature: pic pic blue black stars spin 1900x500.jpg
credit: Jeremy Thomas
creditlink: https://www.flickr.com/photos/132218932@N03/page2
---</code></pre></figure>
<p>EXTRA: Detailed YAML specifications are at:
http://www.yaml.org/spec/1.2/spec.html</p>
<p>HOORAY: Such metadata takes the place of a database referenced to dynamically generate pages (as WordPress does).
Jekyll’s lack of a database vastly simplies matters and speeds up processing.
This enables static page HTML to be distributed
in CDNs (Content Distribution Networks) around the world.
That maximizes download speed for visitors.</p>
<h3 id="layout-types">Layout types</h3>
<p>The various layout types are defined in files (with no extension) within the <strong>_templates</strong> folder:</p>
<ul>
<li>archive</li>
<li>page</li>
<li>post</li>
</ul>
<p>HOORAY: This approach enables additional types to be defined.</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">---
layout: {}
title:
modified:
categories:
excerpt:
tags: []
image:
feature:
---</code></pre></figure>
<p>Text within square braces define an array of several values.</p>
<h3 id="liquid-engine">Liquid engine</h3>
<p>Tags within { curly braces } are processed by the <strong>Liquid</strong> templating engine.</p>
<p>Liquid can perform if/then/else decisions and loops.</p>
<p>EXTRA: More detail about Liquid is at:
https://docs.shopify.com/themes/liquid/basics#If_.2F_Else_.2F_Unless</p>
<ul>
<li><a target="_blank" href="https://github.com/Shopify/liquid/wiki/Liquid-for-Designers"> List of Liquid commands</a></li>
</ul>
<h4 id="collections">Collections</h4>
<p>One of the most powerful features provided by Liquid is
Collections.</p>
<p>Collections is explained at:</p>
<ul>
<li><a target="_blank" href="https://jekyllrb.com/docs/collections/">
jekyllrb.com/docs/collections</a></li>
<li><a target="_blank" href="http://ben.balter.com/2015/02/20/jekyll-collections/">
2015/02/20/jekyll-collections</a>
by Ben Balter (product manager at GitHub).</li>
</ul>
<p>Collections refer to a custom folder containing many markdown files,
each having front-matter than can be parsed by Liquid code.</p>
<p>Ben has a great decision diagram:</p>
<p><img width="618" alt="fig white jekyll page post collection decision" src="https://cloud.githubusercontent.com/assets/300046/14328744/4c0fe5cc-fbf5-11e5-87a7-8a6002f2dc93.png" /></p>
<p>NOTE: site.categories and site.tags only works on _posts.</p>
<h3 id="link-icon-yaml">Link icon YAML</h3>
<p>In the list of posts, post titles with a link icon get that way because in its YAML is a line
link post line such as this:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">link: http://www.wilsonmar.com
---</code></pre></figure>
<h3 id="yml-metada">.yml metada</h3>
<p>Default values are specified in a <strong>_config.yml</strong> file at the root of the site folder.</p>
<p>EXTRA: All keys are detailed at http://jekyllrb.com/docs/configuration/</p>
<p>Here are the first few lines of a sample file:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text"># Site wide configuration
title: WilsonMar.GitHub.io
locale: en_US
url:
# Jekyll configuration
permalink: /:categories/:title/
markdown: kramdown
highlighter: rouge
sass:
sass_dir: _sass
style: compressed
gems:
- jekyll-sitemap
- jekyll-gist</code></pre></figure>
<p>PROTIP: Changes in the _config.yml file are applied only when the Jekyll service is recycled.
At the command terminal window where Jekyll was launched,
press control+C, then invoke the
<a href="#invoke-server">command to start the server again</a>.</p>
<p>Another theme (Poole Hyde) adds:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">---
github:
repo: https://github.com/user/Proj # "GitHub project" link on sidebar
---</code></pre></figure>
<h3 id="sitemapxml-in-_site">sitemap.xml in _site</h3>
<p>Theme programming also generates the <strong>_site</strong> folder and in it
generates <strong>feed.xml</strong> and <strong>sitemap.xml</strong> files for web crawlers to read.</p>
<h3 id="bing-it-on">Bing it on</h3>
<p>TODO: Get a value for the <strong>bing-verify:</strong> variable in your <strong>_config.yml</strong>.</p>
<ol>
<li>
<p>Open a Webmaster Tools account at
<a target="_blank" href="http://www.bing.com/toolbox/webmaster/">bing.com/toolbox/webmaster/</a></p>
</li>
<li>
<p>Sign In with a Windows Live ID. If you don’t have a Microsoft account already, get one.</p>
</li>
<li>
<p>Type in your Site Name (mine’s wilsonmar.github.io) and click Add a site.</p>
</li>
<li>
<p>Type in the URL to your Site Map. (mine’s http://wilsonmar.github.io/sitemap.xml).</p>
<p>The sitemap.xml file is generated in the <strong>_site</strong> folder,
but will be the root folder when deployed on a web server.</p>
</li>
<li>
<p>Fill out the other fields (contact info and preferences), then click Save.</p>
</li>
<li>
<p>In the Verify ownership page, copy the string from:</p>
</li>
</ol>
<figure class="highlight"><pre><code class="language-text" data-lang="text"> <meta name="msvalidate.01" content="73A60A207FC7D42B6F428E462079B001" />
</code></pre></figure>
<ol>
<li>
<p>Paste that string to the right of the <strong>bing-verify:</strong> variable.</p>
</li>
<li>Click the <strong>BingSiteAuth.xml</strong> link to save the file.</li>
<li>
<p>Move the file into the root folder where the _config.yml file is
(NOT in the _site folder, which gets deleted and repopulated automatically).</p>
</li>
<li>Recycle the Jekyll server to see the <strong>BingSiteAuth.xml</strong> in the _site folder.</li>
</ol>
<h3 id="google-ownership">Google Ownership</h3>
<p>This is explained in https://support.google.com/webmasters/answer/35179?hl=en</p>
<ol>
<li>
<p>Access <a target="_blank" href="https://www.google.com/webmasters/tools/home?pli=1">
Webmasters Tools</a> using your Google account.</p>
</li>
<li>
<p>Add a Property (such as http://wilsonmar.github.io).</p>
</li>
<li>
<p>Download the html file (such as google923b0745fb3293c1.html) to the Downloads folder.</p>
</li>
<li>
<p>Move the file into the root folder where the _config.yml file is
(NOT in the _site folder, which gets deleted and repopulated automatically).</p>
</li>
<li>
<p>Download the file.</p>
</li>
</ol>
<h3 id="disqus-comments">Disqus comments</h3>
<ol>
<li>Use an internet browser to get to:
<a target="_blank" href="https://disqus.com/">
Disqus.com</a>.</li>
</ol>
<p>This is about creating a publisher account such as “wilsonmarcom”.</p>
<ol>
<li>
<p>PROTIP: Create a separate personal commenter account (such as “wilsonmar”)
to track your responses on other websites.</p>
</li>
<li>
<p>Click the cog next to your picture to select <strong>Add Disqus To Site</strong>, or
https://publishers.disqus.com/engage?utm_source=Home-Nav</p>
</li>
<li>
<p>Click <strong>Install on your site</strong>.</p>
</li>
<li>
<p>Specify a site name such as “wilsonmar-github-io”.</p>
</li>
<li>
<p>Click Next and answer the demographic questions (how many visits, etc.).</p>
</li>
<li>
<p>You don’t need to
select installation for Universal code and copy
paste JavaScript because the theme has already done that in
file <strong>_disqus_comments.html</strong> within folder <strong>_includes</strong>.</p>
</li>
<li>
<p>Copy the <strong>site.owner.disqus-shortname</strong>, such as “wilsonmargithubio” from:</p>
</li>
</ol>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><script </span><span class="na">id=</span><span class="s">"dsq-count-scr"</span> <span class="na">src=</span><span class="s">"//wilsonmargithubio.disqus.com/count.js"</span> <span class="na">async</span><span class="nt">></script></span></code></pre></figure>
<ol>
<li>
<p>Open for edit file <strong>_config.yml</strong> in the root folder.</p>
</li>
<li>
<p>Paste the Disqus short name as the value to key <strong>disqus-shortname:</strong>.</p>
</li>
<li>
<p>Read more about configuration of Disqus at:
https://help.disqus.com/customer/en/portal/articles/2158629</p>
</li>
</ol>
<p><a target="_blank" href="https://disqus.com/admin/create/">
Disqus Setup Disqus on a New Site</a>.</p>
<hr />
<h3 id="multiple-authors">Multiple authors</h3>
<p>Lower in the file is information about the default author displayed on all pages.
This can be overridden in a particular index.md or post file by a line such as:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">author: billy_rick</code></pre></figure>
<p>“billy_rick” is a key to more information in the <strong>authors.yml</strong> file within the <strong>_data</strong> folder:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">billy_rick:
twitter: @billyrick</code></pre></figure>
<p>HOORAY: This mechanism presents the photo and links to multiple alternative authors to appear on the website.</p>
<h3 id="social-links-">Social links +</h3>
<p>If you’d like more links, add them in folder <strong>_includes</strong> file <strong>_author-bio.html</strong>:</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html"></code></pre></figure>
<h3 id="social-sharing">Social sharing</h3>
<p>On the bottom of every page of the minimal-mistakes theme are large buttons for sharing
tweets, Facebook, and Google.</p>
<p>Unlike links on the left pane of every page,
clicking on these links pops up a new browser window.</p>
<p>You can change that pre-populated text (the URL) by changing the
<strong>_social-share.html</strong> file withing folder <strong>_includes</strong>.
The default pulls in the value of variables:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">https://wilsonmar.github.io and /jekyll-site-development/</code></pre></figure>
<p>The pop-up relies on cookies previously created when the visitor signed into Twitter, Facebook, and Google
on the same browser used to access this site.</p>
<hr />
<h2 id="images">Images</h2>
<p>Images can be defined in GFM or standard HTML.</p>
<h3 id="in-line-gfm-images">In-line GFM images</h3>
<p>Positioning of GFM-specified images can be specified using a special tag.</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html">
{: .image-pull-right}</code></pre></figure>
<p>renders as:</p>
<p class="image-pull-right"><img src="https://wilsonmar.github.io/images/pic flood of daya 877x524.jpeg" alt="Smithsonian Image" /></p>
<p>NOTE: Most images are stored in the site’s <strong>images</strong> folder.</p>
<h3 id="clickable-images">Clickable images</h3>
<p>GFM is not yet able to handle code to specific clickable images,
either as HTML image maps nor as CSS.</p>
<h4 id="one-up">One Up</h4>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><figure></span>
<span class="nt"><a</span> <span class="na">href=</span><span class="s">"http://farm9.staticflickr.com/8426/7758832526_cc8f681e48_b.jpg"</span><span class="nt">><img</span> <span class="na">src=</span><span class="s">"http://farm9.staticflickr.com/8426/7758832526_cc8f681e48_c.jpg"</span><span class="nt">></a></span>
<span class="nt"><figcaption><a</span> <span class="na">href=</span><span class="s">"http://www.flickr.com/photos/80901381@N04/7758832526/"</span> <span class="na">title=</span><span class="s">"Morning Fog Emerging From Trees by A Guy Taking Pictures, on Flickr"</span><span class="nt">></span>Figure: Morning Fog Emerging From Trees by A Guy Taking Pictures, on Flickr<span class="nt"></a></span>.<span class="nt"></figcaption></span>
<span class="nt"></figure></span></code></pre></figure>
<p>renders to:</p>
<figure>
<a href="http://farm9.staticflickr.com/8426/7758832526_cc8f681e48_b.jpg"><img src="http://farm9.staticflickr.com/8426/7758832526_cc8f681e48_c.jpg" /></a>
<figcaption><a href="http://www.flickr.com/photos/80901381@N04/7758832526/" title="Morning Fog Emerging From Trees by A Guy Taking Pictures, on Flickr">Figure: Morning Fog Emerging From Trees by A Guy Taking Pictures, on Flickr</a>.</figcaption>
</figure>
<h4 id="halfthree-up">Half/Three Up</h4>
<p>The theme has a <code class="language-plaintext highlighter-rouge">half</code> class to split the available horizonatl space in half
to display two images side by side (and share the same caption).</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><figure</span> <span class="na">class=</span><span class="s">"half"</span><span class="nt">></span>
<span class="nt"><a</span> <span class="na">href=</span><span class="s">"/images/image-filename-1-large.jpg"</span><span class="nt">><img</span> <span class="na">src=</span><span class="s">"/images/image-filename-1.jpg"</span><span class="nt">></a></span>
<span class="nt"><a</span> <span class="na">href=</span><span class="s">"/images/image-filename-2-large.jpg"</span><span class="nt">><img</span> <span class="na">src=</span><span class="s">"/images/image-filename-2.jpg"</span><span class="nt">></a></span>
<span class="nt"><figcaption></span>Figure: Two images.<span class="nt"></figcaption></span>
<span class="nt"></figure></span></code></pre></figure>
<p>renders to:</p>
<figure class="half">
<a href="http://placehold.it/1200x600.JPG"><img src="http://placehold.it/600x300.jpg" /></a>
<a href="http://placehold.it/1200x600.jpeg"><img src="http://placehold.it/600x300.jpg" /></a>
<figcaption>Figure: Two images.</figcaption>
</figure>
<h4 id="three-up">Three Up</h4>
<p>The theme has a <code class="language-plaintext highlighter-rouge">third</code> class to split the available horizontal space in thirds
to display three images side by side (and share the same caption):</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><figure</span> <span class="na">class=</span><span class="s">"third"</span><span class="nt">></span>
<span class="nt"><img</span> <span class="na">src=</span><span class="s">"/images/image-filename-1.jpg"</span><span class="nt">></span>
<span class="nt"><img</span> <span class="na">src=</span><span class="s">"/images/image-filename-2.jpg"</span><span class="nt">></span>
<span class="nt"><img</span> <span class="na">src=</span><span class="s">"/images/image-filename-3.jpg"</span><span class="nt">></span>
<span class="nt"><figcaption></span>Figure: Three images.<span class="nt"></figcaption></span>
<span class="nt"></figure></span></code></pre></figure>
<p>is rendered as:</p>
<figure class="third">
<img src="http://placehold.it/600x300.jpg" />
<img src="http://placehold.it/600x300.jpg" />
<img src="http://placehold.it/600x300.jpg" />
<figcaption>Figure: Three images.</figcaption>
</figure>
<h3 id="layout-responsive-to-screen-size">Layout responsive to screen size</h3>
<p>The MadeMistakes themes make use of the
<a target="_blank" href="http://semantic.gs/">Semantic Grid System</a>
to define fluid grids for each major page layouts with a few lines of CSS code referencing
@media queries.
This makes the theme responsive – adapting to various size screens:</p>
<ul>
<li>
<p>Desktop default (up to the largest HD & 4XHD screen)</p>
<p>Min-width: 780px</p>
</li>
<li>
<p>Tablet Portrait (to landscape and desktop)</p>
<p>Min-width: 768px / Max-width: 979px</p>
</li>
<li>
<p>Smartphone (and all smaller screens)</p>
<p>Max-width: 480px</p>
</li>
</ul>
<h3 id="image-sized-to-screen">Image sized to screen?</h3>
<p>The size of screens.</p>
<p>The image for <strong>Twitter Cards</strong> is a square image around 120 x 120 pixels.</p>
<hr />
<h2 id="markdown-coding">Markdown coding</h2>
<p>The next few sections are based on</p>
<p>https://mmistakes.github.io/minimal-mistakes/sample-post/</p>
<h3 id="notice-boxes">Notice boxes</h3>
<p>To put text in a box, add <code class="language-plaintext highlighter-rouge">{: .notice}</code> under the text to be boxed:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">**CAUTION:** Invalid markup can crash the server.
{: .notice}</code></pre></figure>
<p>renders to:</p>
<p class="notice"><strong>CAUTION:</strong> Invalid markup can crash the server.</p>
<p>PROTIP: Make a small change (one phrase) then verify rendering.
Commit to git at every verified set.</p>
<h3 id="blockquotes">Blockquotes</h3>
<p>A leading <em>></em> marks a line as a blockquote:</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html">> Lorem ipsum</code></pre></figure>
<p>renders as:</p>
<blockquote>
<p>Lorem ipsum</p>
</blockquote>
<h3 id="footnotes">Footnotes</h3>
<p>A paragraph ending with the &Vcirc; “circumflex” character (upper case of the number 6 key)
between square brackets defines the footnote number:</p>
<p>Footnotes are Syntax Highighting<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p>
<p>A repeat of the sequence at the <strong>beginning</strong> of a paragraph defines the definition:</p>
<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="pi">[</span><span class="nv">^1</span><span class="pi">]</span><span class="err">:</span> <span class="s"><http://en.wikipedia.org/wiki/Syntax_highlighting></span></code></pre></figure>
<h3 id="button-colors-in-html">Button colors in HTML</h3>
<p>Use pre-defined classes:</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><div</span> <span class="na">markdown=</span><span class="s">"0"</span><span class="nt">><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">class=</span><span class="s">"btn"</span><span class="nt">></span>Primary Button<span class="nt"></a></div></span>
<span class="nt"><div</span> <span class="na">markdown=</span><span class="s">"0"</span><span class="nt">><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">class=</span><span class="s">"btn btn-success"</span><span class="nt">></span>Success Button<span class="nt"></a></div></span>
<span class="nt"><div</span> <span class="na">markdown=</span><span class="s">"0"</span><span class="nt">><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">class=</span><span class="s">"btn btn-warning"</span><span class="nt">></span>Warning Button<span class="nt"></a></div></span>
<span class="nt"><div</span> <span class="na">markdown=</span><span class="s">"0"</span><span class="nt">><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">class=</span><span class="s">"btn btn-danger"</span><span class="nt">></span>Danger Button<span class="nt"></a></div></span>
<span class="nt"><div</span> <span class="na">markdown=</span><span class="s">"0"</span><span class="nt">><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">class=</span><span class="s">"btn btn-info"</span><span class="nt">></span>Info Button<span class="nt"></a></div></span></code></pre></figure>
<p>renders to:</p>
<div><a href="#" class="btn">Primary Button</a></div>
<div><a href="#" class="btn btn-success">Success Button</a></div>
<div><a href="#" class="btn btn-warning">Warning Button</a></div>
<div><a href="#" class="btn btn-danger">Danger Button</a></div>
<div><a href="#" class="btn btn-info">Info Button</a></div>
<p>If you are viewing this on a desktop, mouse-over each button to see the color change.</p>
<h3 id="sass">SASS</h3>
<p>To change the colors, edit in folder <strong>_sass</strong> file <strong>variables.scss</strong>,
then compile the file to .css.</p>
<pre>
sass variables.scss variables.css
</pre>
<p>Sass, or Syntactically Awesome StyleSheets, is an extension language for CSS.</p>
<p>Nests</p>
<p>Variables:</p>
<pre>
$background-transparent :
</pre>
<p>Mixins</p>
<h3 id="paragraph-indents">Paragraph Indents</h3>
<p>By default, the theme assumes formatting is for books by removing extra lines and adds indents to
second and subsequent paragraphs. Well, we’re in the internet age where long paragraphs are the exception.</p>
<p>To disable the indents and add spacing between paragraphs,
edit in folder <strong>_sass</strong> file <strong>variables.scss</strong> to change:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$paragraph-indent: true !default;
</code></pre></div></div>
<p>To:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$paragraph-indent: false;
</code></pre></div></div>
<p>PROTIP: This change in the theme enables use of indented items using GFM.</p>
<h3 id="numbered-lists">Numbered lists</h3>
<p>As with GFM, numbers in front of ordered list items can be preceded by zeros since they are automatically numbered:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">0. Item one
0. sub item one
0. sub item two
0. Item two
some text after 3 spaces.
0. Item three</code></pre></figure>
<p>renders to:</p>
<ol>
<li>Item one</li>
<li>sub item one</li>
<li>sub item two</li>
<li>Item two</li>
</ol>
<p>some text after 3 spaces.</p>
<ol>
<li>Item three</li>
</ol>
<h3 id="code-snippets">Code Snippets</h3>
<p>Instead of a set of three back quotes, blocks of programming code are enclosed with special tags like this:</p>
<pre><code>
{% highlight css %}
#container {
float: left;
margin: 0 -240px 0 0;
width: 100%;
}
{% endhighlight %}
</code></pre>
<p>renders as:</p>
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nf">#container</span> <span class="p">{</span>
<span class="nl">float</span><span class="p">:</span> <span class="nb">left</span><span class="p">;</span>
<span class="nl">margin</span><span class="p">:</span> <span class="m">0</span> <span class="m">-240px</span> <span class="m">0</span> <span class="m">0</span><span class="p">;</span>
<span class="nl">width</span><span class="p">:</span> <span class="m">100%</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<h3 id="gists">Gists</h3>
<p>Snippets of code on Gist.com can be displayed on the web page with a simple line
containing the gist.com userid and snippet number:</p>
<pre><code>
{% gist <em>userid</em>/6589546 %}
</code></pre>
<h3 id="standard-gfm-mark-up">Standard GFM mark-up</h3>
<p>Several coding techniques ar the same as in GitHub Flavored Markdown.</p>
<ul>
<li>Asterisks precede text in unordered lists preceded with bullets.</li>
<li>The number of # characters preceding heading text specifies the level.</li>
<li>One asterisk enclosing text makes it <em>italics</em>.</li>
<li>Two asterisk enclosing text makes it <strong>bold</strong>.</li>
</ul>
<p>Just as with GFM, regular HTML is recognized and processed as such.</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><strong></span>bolded text<span class="nt"></strong></span></code></pre></figure>
<h3 id="custom-includes">Custom Includes</h3>
<p>Jekyll can process several special tags beyond what GFM can do.
An entire HTML file can be inserted:</p>
<pre><code>
{% include _toc.html %}
</code></pre>
<p>The tag is processed by <a target="_blank" href="http://kramdown.gettalong.org/converter/html.html#toc">
Kramdown</a> which generates the Table of Contents displayed on the right side of the screen.</p>
<p>A custom include can be coded within markdown like this:</p>
<pre><code>
{% include evangelist_links.html %}
</code></pre>
<p>Doing this takes some mental contortion because of the automatic processing.</p>
<p>The <strong>evangelist_links.html</strong> file referenced needs to be in the _includes folder.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> During processing, the folder "_includes" is automatically added to the link.
Therefore you can't put the include file anywhere else, or you'll get a message such as:
Error: Included file '_includes/includes/1loadrun_map.html' not found
</code></pre></div></div>
<p>However, there can be markdown in the <strong>evangelist_links.html</strong> file, such as:</p>
<figure class="highlight"><pre><code class="language-html" data-lang="html">In this series:
* [Budget](Budget)
<span class="c"><!--
* [Future1](Future1)
--></span></code></pre></figure>
<p>NOTE: HTML code above to ignore can be included in the file.</p>
<h3 id="tables">Tables</h3>
<p>A rule can be specified for formatting tables coded in GFM:</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">| Header1 | Header2 | Header3 |
|:--------|:-------:|--------:|
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
|----
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
|=====
| Foot1 | Foot2 | Foot3
{: rules="groups"}</code></pre></figure>
<p>renders to:</p>
<table rules="groups">
<thead>
<tr>
<th style="text-align: left">Header1</th>
<th style="text-align: center">Header2</th>
<th style="text-align: right">Header3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">cell1</td>
<td style="text-align: center">cell2</td>
<td style="text-align: right">cell3</td>
</tr>
<tr>
<td style="text-align: left">cell4</td>
<td style="text-align: center">cell5</td>
<td style="text-align: right">cell6</td>
</tr>
</tbody>
<tbody>
<tr>
<td style="text-align: left">cell1</td>
<td style="text-align: center">cell2</td>
<td style="text-align: right">cell3</td>
</tr>
<tr>
<td style="text-align: left">cell4</td>
<td style="text-align: center">cell5</td>
<td style="text-align: right">cell6</td>
</tr>
</tbody>
<tfoot>
<tr>
<td style="text-align: left">Foot1</td>
<td style="text-align: center">Foot2</td>
<td style="text-align: right">Foot3</td>
</tr>
</tfoot>
</table>
<hr />
<h2 id="affiliate-ads">Affiliate Ads</h2>
<h3 id="amazon-affiliate-ads">Amazon Affiliate Ads</h3>
<ol>
<li>
<p>https://affiliate-program.amazon.com/gp/associates/network/main.html</p>
</li>
<li>
<p>Search for a product to get its URL, such as:
http://www.amazon.com/gp/product/B00IR2VEUS/
So Amazon’s product code is “B00IR2VEUS”.</p>
</li>
<li>
<p>Specify the product code to get the HTML containing your affiliate tracking code, such as:</p>
</li>
</ol>
<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><a</span> <span class="na">target=</span><span class="s">"_blank"</span> <span class="na">href=</span><span class="s">"http://www.amazon.com/gp/product/B00IR2VEUS/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00IR2VEUS&linkCode=as2&tag=wilsonslifenotes&linkId=LGM2HVV7JYHE5QRS"</span><span class="nt">></span>Cabin Max Metz Backpack Flight Approved Carry on Bag 44 Litre Travel Hand Luggage - 55x40x20 (Black)<span class="nt"></a><img</span> <span class="na">src=</span><span class="s">"http://ir-na.amazon-adsystem.com/e/ir?t=wilsonslifenotes&l=as2&o=1&a=B00IR2VEUS"</span> <span class="na">width=</span><span class="s">"1"</span> <span class="na">height=</span><span class="s">"1"</span> <span class="na">border=</span><span class="s">"0"</span> <span class="na">alt=</span><span class="s">""</span> <span class="nt">/></span></code></pre></figure>
<p>Note the link has a one-pixel image link Amazon uses to track the number of impressions.</p>
<p>If you would like to list products you make on Amazon,
get an account Seller Account at <a target="_blank" href="https://sellercentral.amazon.com/gp/homepage.html">
sellercentral.amazon.com/gp/homepage.html</a>.</p>
<h3 id="google-affiliate-ads">Google Affiliate Ads</h3>
<p>Ideally, I would put a vertical ad under the table of contents.</p>
<h2 id="site-search">Site Search</h2>
<p>A Node.js library to add search functionality to any Jekyll blog
<a target="_blank" href="http://christian.fei.ninja/Simple-Jekyll-Search/">Demo here</a>
is available
from <a target="_blank" href="https://github.com/christian-fei/Simple-Jekyll-Search">
this repo</a>.</p>
<p>Theme http://mmistakes.github.io/so-simple-theme/theme-setup/#jekyll-search
activates each page using it with the <strong>search_omit: true</strong> front matter.</p>
<h2 id="gitignore">.gitignore</h2>
<p>This list of folders and files is about what processing occurs locally.</p>
<p>{$ endhighlight text %}
_site
.sass-cache
.DS_Store
*.sublime-project
*.sublime-workspace
codekit-config.json
node_modules
_asset_bundler_cache
.jekyll-metadata
{$ endhighlight %}</p>
<h2 id="additional-features">Additional features</h2>
<p><a href="https://www.sylvaindurand.org/about/">Make Jekyll multi-lingual</a></p>
<h2 id="deploy-to-server">Deploy to server</h2>
<ul>
<li>
<p>http://help.github.com/articles/using-jekyll-with-pages/</p>
</li>
<li>
<p>http://goo.gl/hE3Zj2 to
http://nicolasgallager.com/simple-git-deployment-strategy-for-static sites/</p>
</li>
<li>
<p>jekyllrb.com/docs/deployment-methods/</p>
</li>
</ul>
<h2 id="questions">Questions</h2>
<p>QUESTION: How to add regular .html files to the site.</p>
<p>TODO: Inspired by <a target="_blank" href="http://www.shamimeboodhoo.com/building-photomap/">
Shamime’s photomap building</a>, I added a Photomap tab and folder on my site.</p>
<p>http://loyc.net/2014/javascript-toc.html</p>
<p>QUESTION: Spell checking in GitHub?</p>
<hr />
<h2 id="footnotes-1">Footnotes</h2>
<p>There is no need to repeat excellent tutorials:</p>
<ul>
<li>
<p><a target="_blank" href="https://www.youtube.com/playlist?list=PLWjCJDeWfDdfVEcLGAfdJn_HXyM4Y7_k-">
Thomas Bradley’s videos on YouTube</a></p>
</li>
<li>
<p>Tutorial: http://jekyll.tips/jekyll-casts/</p>
</li>
<li>
<p>https://geekflare.com/cloud-storage-static-website/</p>
</li>
<li>
<p>https://snipcart.com/blog/static-site-e-commerce-part-2-integrating-snipcart-with-jekyll</p>
</li>
</ul>
<h2 id="jekyll-minimalmistake-users-in-the-wild">Jekyll MinimalMistake users in the wild</h2>
<ul>
<li>http://udaypal.com/jenkins-workflow-getting-started/</li>
<li>http://udaypal.com/2015-04-08-continuous-delivery-using-jenkins-workflow/</li>
<li>
<p>http://michaelcrump.net/running-jekyll-locally/</p>
</li>
<li>
<p>http://blog.christianposta.com/microservices/netflix-oss-or-kubernetes-how-about-both/</p>
</li>
<li>
<p><a target="_blank" href="https://www.youtube.com/playlist?list=PL58Wk5g77lF-UQ39pejLX2Zn5DxQyExBa">JAMstack Conf 2018 - San Francisco 19 videos</a></p>
</li>
<li>https://www.tomordonez.com/jekyll-text-expand-collapsible-markdown/ to hide text unless clicked</li>
<li>https://karttur.github.io/setup-theme-blog/blog/blog-hide-show-div/</li>
</ul>
<h2 id="more-on-front-end-styling">More on front-end styling</h2>
<p>This is one of several topics:</p>
<ol>
<li><a href="/design-systems/">UI Design Systems</a></li>
<li><a href="/text-editors/">Text Editors</a></li>
<li><a href="/markdown-text-for-github-from-html/">Markdown text for GitHub from HTML</a></li>
<li>
<p><a href="/508-accessibility/">508 Accessibility</a></p>
</li>
<li><a href="/grpc/">gRPC (g___ Remote Procedure Call)</a></li>
<li>
<p><a href="/http2-transition-project-plan/">HTTP/2 Transition Project Plan</a></p>
</li>
<li><a href="/front-end/">Front-end UI creation options</a></li>
<li><a href="/docusaurus/">Docusaurus static website generator</a></li>
<li><a href="/static-websites/">Static websites</a></li>
<li><a href="/jam-stack-website-project-plan/">JAM Stack Website Project Plan</a></li>
<li><a href="/jekyll-site-development/">Jekyll Site Development</a></li>
<li>
<p><a href="/gatsbyjs/">Gatsby app generator</a></p>
</li>
<li><a href="/website-styles/">Website styles</a></li>
<li><a href="/website-style-programming/">Website Styling</a></li>
<li>
<p><a href="/vuejs/">VueJs front-end framework</a></p>
</li>
<li>
<p><a href="/protractor/">Protractor to automate testing of Angular and other web pages</a></p>
</li>
<li><a href="/email-from-website/">Email from website</a></li>
<li><a href="/jekyll-with-search/">Search within Hyde format Jekyll websites</a></li>
<li>
<p><a href="/windows-tile-pin-pictures-feed/">Windows Tile Pin Picture to Website Feed</a></p>
</li>
<li><a href="/data-visualization-using-tableau/">Data Visualization using Tableau</a></li>
</ol>
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p><a href="http://en.wikipedia.org/wiki/Syntax_highlighting">http://en.wikipedia.org/wiki/Syntax_highlighting</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>
<p><a href="https://wilsonmar.github.io/jekyll-site-development/">Jekyll (JAM) site development</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 18, 2025.</p>
https://wilsonmar.github.io/machine-learning2025-11-15T00:00:00+00:002025-11-15T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Different ways to use data to create a model (program)</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/machine-learning/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#skill-building-from-games" id="markdown-toc-skill-building-from-games">Skill-building from games</a></li>
<li><a href="#use-cases-for-ai" id="markdown-toc-use-cases-for-ai">Use Cases for AI</a></li>
<li><a href="#algorithms" id="markdown-toc-algorithms">Algorithms</a></li>
<li><a href="#terminology" id="markdown-toc-terminology">Terminology</a></li>
<li><a href="#types-of-machine-learning" id="markdown-toc-types-of-machine-learning">Types of machine learning</a> <ul>
<li><a href="#supervised-learning" id="markdown-toc-supervised-learning">Supervised learning</a></li>
<li><a href="#unsupervised-learning" id="markdown-toc-unsupervised-learning">Unsupervised learning</a></li>
<li><a href="#reinforcement-learning" id="markdown-toc-reinforcement-learning">Reinforcement learning</a></li>
<li><a href="#transfer-learning" id="markdown-toc-transfer-learning">Transfer learning</a></li>
<li><a href="#one-shot-learning" id="markdown-toc-one-shot-learning">One-shot learning</a></li>
<li><a href="#deep-learning" id="markdown-toc-deep-learning">Deep Learning</a></li>
</ul>
</li>
<li><a href="#tools-for-machine-learning" id="markdown-toc-tools-for-machine-learning">Tools for Machine Learning</a> <ul>
<li><a href="#python" id="markdown-toc-python">Python</a></li>
<li><a href="#machine-learning-frameworks" id="markdown-toc-machine-learning-frameworks">Machine Learning frameworks</a></li>
<li><a href="#java-in-dl4j" id="markdown-toc-java-in-dl4j">Java in DL4j</a></li>
<li><a href="#deep-learning-frameworks" id="markdown-toc-deep-learning-frameworks">Deep Learning Frameworks</a></li>
</ul>
</li>
<li><a href="#data-representation" id="markdown-toc-data-representation">Data representation</a> <ul>
<li><a href="#axies-for-shape" id="markdown-toc-axies-for-shape">Axies for Shape</a></li>
<li><a href="#pandas" id="markdown-toc-pandas">Pandas</a></li>
</ul>
</li>
<li><a href="#metrics" id="markdown-toc-metrics">Metrics</a></li>
<li><a href="#gradient-boosting" id="markdown-toc-gradient-boosting">Gradient Boosting</a></li>
<li><a href="#introductory-resources" id="markdown-toc-introductory-resources">Introductory Resources</a></li>
<li><a href="#more" id="markdown-toc-more">More</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>The pervasiveness of AI and Machine Learning was recognized by Google CEO Sundar Pichai when he said in 2016:</p>
<blockquote>
<p>“Machine learning is a core, transformative way by which we’re rethinking how we’re doing everything. We are thoughtfully applying it across all our products, be it search, ads, YouTube, or Play. And we’re in early days, but you will see us — in a systematic way — apply machine learning in all these areas.”</p>
</blockquote>
<h2 id="skill-building-from-games">Skill-building from games</h2>
<p>In 1997, when Deep Blue beat world chess champion Gary Kasparov,
it did so by “brute force”, by using a supercomputer to
analyze the outcome of every possible move, looking further ahead than any human possibly could.
That wasn’t Machine Learning or AI.</p>
<p>But In 2016, IBM’s Watson software beat top Jeopardy game champions
by “learning” from books and encyclopedias.
IBM only created the program that enables the computer to learn.
The software makes use of a <strong>“model”</strong> from <strong>example</strong> vs. following strictly <strong>static program instructions</strong> (logic defined by human developers).</p>
<blockquote>
<p>Machine learning is a type of AI (Artificial Intelligence) that enables computers to do things <strong>without being explicitly programmed</strong> by human developers. Rather than explicit programming, Machine Learning algorithms identify rules through “training” based on many examples.</p>
</blockquote>
<p><a target="_blank" href="https://www.ted.com/talks/noriko_arai_can_a_robot_pass_a_university_entrance_exam">
<img alt="ai-todai-robot-441x441.jpg" src="https://user-images.githubusercontent.com/300046/29997360-3aeeac38-8fce-11e7-8913-fc600e6d13de.jpg" /></a><br />
The photo above is the <a target="_blank" href="http://21robot.org/">Todai Robot</a>, <a target="_blank" href="http://21robot.org/news/">
back in 2014</a>, scoring among the upper 20% of students in Japan’s university entrance exams – writing essays using a pen on paper. In Japanese. It knows 8,000 Japanese words, 2,000 mathematical axioms, and uses “symbolic computation” for “automatic reasoning” on 15 billion sentences.</p>
<p>In 2017, the top ranked player in the Chinese game Go was <a target="_blank" href="https://www.nytimes.com/2017/05/23/business/google-deepmind-alphago-go-champion-defeat.html">
defeated by Google’s AlphaGo</a>, which is based on Google’s DeepMind acquisition.
The software made moves that many human players considered illogical.
BTW, Go is considered the most complex game ever invented.
Whereas chess players have, at any given turn, an average of 35 possible moves,
on a Go board’s 19-by-19 grid, there are 250 possible moves.</p>
<p>Also in 2017, all top-ranked poker players were
<a target="_blank" href="http://time.com/4656011/artificial-intelligence-ai-poker-tournament-libratus-cmu/">
bested by software named Libratus from Tuomas Sandholm at CMU</a>.
The software adjusted its strategies during the tournament.
And its algorithms for strategy and negotiation are game-independent,
meaning they’re not just about poker, but a range of adversarial problems.</p>
<!-- Play all games, Texas Hold'em
-->
<blockquote>
<p>Rather than neat rows structured in fixed columns and rows within tables, AI computers deal with less structured data, such as (natural language text, images, and videos).</p>
</blockquote>
<p>21 August 2017, Elon Musk tweets: “OpenAI first ever to defeat world’s best players in competitive eSports [dota2]. Vastly more complex than traditional board games like Chess & Go”. <a target="_blank" href="https://www.youtube.com/watch?v=XbDmxEOj9OY">VIDEO</a>.</p>
<h2 id="use-cases-for-ai">Use Cases for AI</h2>
<p>What ordinary people might appreciate:</p>
<ul>
<li>Estimate the price of a house given real estate data (multiple regression), so you don’t waste time on properties that don’t fit your criteria.</li>
<li>Classify movie reviews from imdb.com into positive and negative categories (such as “revenge”), to spend time only on movies you want to see.</li>
<li>Classify news wire articles by topic (multi-class classification), to save time avoiding skimming articles not of interest to you specifically.
<br /><br /></li>
</ul>
<p>For small businesses:</p>
<ul>
<li>Sort vegetables using computer vision</li>
</ul>
<p>For enterprises:</p>
<ul>
<li>Data Security - identify malware by detecting minute variations in file signatures.</li>
<li>Fraud detection - fight money laundering by finding anomalies in transactions.</li>
<li>Financial trading</li>
<li>Health care - understand risk factors and spot patterns in medical info</li>
<li>Marketing - personalize ads based on interests identified for individuals</li>
<li>Smart cars</li>
<li>Insurance - identify risks in smaller populations
<br /><br /></li>
</ul>
<h2 id="algorithms">Algorithms</h2>
<p>Use of hard-coded (static) “rules” crafted by human programmers is
called “symbolic AI”, used in “expert systems” fashionable during the 1980s.</p>
<p>Machine learning <strong>algorithms</strong> identify information from data fed through
“generic” (general purpose) algorithms which <strong>build their own logic</strong> from detecting <em>patterns</em> within the data.</p>
<p>Patterns are recognized by neural network algorithms. This cycle of “learning” is implicit in a definition of Machine Learning by Mitchell (in 1997): “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E”.</p>
<p>The “network” in a neural network has multiple “layers” or data-processing modules that “distill” data.
Models using a small number of layers are called “shallow learning”.
GoogleNet in 2014 used 22 layers. In 2016, one network uses over 1,000 layers.</p>
<p>By contrast, the human brain has 300 million modules that recognize patterns,
each having 100 neurons.</p>
<p>At the input layer,
the network trains on a specific set of “features”
and then sends that information to the next layer.
That next layer combines previous conclusions with other features and passes it to the next layer, and so on, sequentially.</p>
<p><img src="https://user-images.githubusercontent.com/300046/30997127-ee8083b6-a482-11e7-8b7a-0dd4ea518fdc.jpg" alt="ml-model-google-878x356-61242" />
<a target="_blank" href="https://www.coursera.org/learn/serverless-machine-learning-gcp/lecture/3kcXm/what-is-machine-learning-ml">*</a></p>
<p>Models are trained using examples so they can be used to make predictions. The result of training is a mathematical <strong>model</strong> used to make <strong>predictions</strong>, such as taking an unlabled photo and deriving the label “cat”.</p>
<h2 id="terminology">Terminology</h2>
<p>An example of the last layer which presents the output/decision
(from recognizing what number is written down in a photo from the MNIST collection)
is a 10-way “softmax” layer returning an array of 10 probability scores (all summing to 1).
Each of the 10 contains the probability that the digit image belongs to one of
10 digit <strong>classes</strong>.</p>
<p>“Supervised” Machine Learning systems learn how to combine input to produce useful predictions on never-before-seen data.</p>
<p>Machine learning uses some terms that have alternate meanings for words also used by traditional programmers and statisticians:</p>
<ul>
<li>
<p>(In statistics, a “target” is called a dependent variable.)
In machine learning, a target is also called a label,
what a model should ideally have predicted,
according to an external source of data.</p>
</li>
<li>
<p>A <strong>“label”</strong> is a specific instance of a class.
A label can be an answer (target) for a prediction task –
either the <strong>answer</strong> produced by a machine learning
system, or the right answer supplied in training data.
It’s represented as “y” in mathematical notation.</p>
</li>
<li>
<p>Data points are called “samples” or “examples”, represented as “x” in mathematical notation.</p>
</li>
<li>
<p>Unlabeled examples are used for making predictions on new data.</p>
</li>
<li>
<p>A “category” of a classification problem is called a <strong>class</strong>.
For example, when classifying pictures, “puppy” and “muffin” are two of the classes.
Each class describes a set of possible labels to choose from.</p>
</li>
<li>
<p>A <strong>model</strong> maps examples to predicted labels.
It’s defined by internal parameters, which are learned.</p>
</li>
<li>
<p>The <strong>prediction error</strong>, also called <strong>loss value</strong>,
the measure of the distance between a model’s prediction and the target.</p>
<p>It’s a <strong>metric</strong> of measurements that you care about,
which may or may not be directly optimized.</p>
</li>
<li>
<p>An <strong>instance</strong> is the aspect about which you want to make a prediction.
(An instance is called an “objective” in other fields.)</p>
</li>
<li>
<p>A <strong>feature</strong> is a property of an instance used in a prediction task.
For example, a web page might
have a feature “contains the word ‘cat’”.</p>
<p>A feature in machine learning is called a “variable” in statistics.
A feature is an input variable—the x variable in simple linear regression.
(Feature creation in machine learning is called a “transformation” in statistics.)</p>
</li>
<li>
<p>A <strong>feature Column</strong> is a set of related features,
such as the set of all possible countries in which users might live.
An example may have one or more features present in a feature column. A
feature column is referred to as a “namespace” in the VW system (at Yahoo/Microsoft), or a field.
Example: An instance (with its features) and a label.</p>
</li>
<li>
<p>An <strong>objective</strong> is a metric that an algorithm is trying to optimize.</p>
</li>
<li>
<p>A <strong>pipeline</strong> is the infrastructure surrounding a machine learning algorithm. A particular pipeline can include:</p>
<ol>
<li>gathering the data from the front end,</li>
<li>putting it into training data files,</li>
<li>training one or more models, and</li>
<li>exporting the models to production.
<br /><br /></li>
</ol>
</li>
</ul>
<h2 id="types-of-machine-learning">Types of machine learning</h2>
<p><img alt="ml-types-1730x754.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1763267651/ml-types-1730x754_ftldp9.png" /></sub>–by <a target="_blank" href="https://www.linkedin.com/in/geenakim/">Geena Kim</a></sub)</p>
<h3 id="supervised-learning">Supervised learning</h3>
<p>The supervised learning approach predicts an output by making use of a <strong>labeled</strong> data set of training data(examples) which provide and “answer” or <strong>target</strong> giving feedback on what is correct or not.</p>
<ul>
<li>The training correlates features to outputs in order to predict outputs based on new inputs.</li>
</ul>
<p>For time series analysis, use a “recurrent net”.
Recurrent nets process data that changes with time,
using a feedback loop that acts as a forecasting engine.</p>
<p>Recurrent networks have a network topology in which data flow itself is recycled.
It is used, for example, to generate sequences of words from the vectors describing the “meaning” of pictures. Each word depends on all that have already been produced.</p>
<ul>
<li>For text processing (Sentiment Analysis)
and speech recognition: use a
Recurrent Net or a
RNTN (Recursive Neural Tensor Network)
that operates at individual character level. <br />
RNTNs were conceived by Richard Socher of
<a target="_blank" href="https://metamind.io/">
MetaMind.io</a> as part of his PhD thesis at Stanford.
In 2016 it became part of Salesforce Einstein Predictive Services at
https://metamind.readme.io/v1/docs</li>
</ul>
<p>RNTNs are better than feed-forward or recurrent nets with
data with a hierarchical structure (binary trees),
such as the parse trees of a group of sentences.</p>
<ul>
<li>For image (object) recognition is DBN (Deep Belief Network) or
Convolutional Net.</li>
</ul>
<p><strong>Convolution</strong> means use of the same filter (also called a “kernel”)
across the whole image, just like use of a filter in Photoshop.
<a target="_blank" href="https://clarifai.com/">
Clarifai</a> uses a convolutional net to recognize things and concepts in a digital image.
It then presents similar images.</p>
<p>Kernel methods are a group of algorithms for <strong>classification</strong>–<strong>Support Vector Machine (SVM)</strong>
being the best known from Vapnik and Cortes in the early 1990s at Bell Labs and Vapnik and Chervonenkis as early as 1963.
SVM classifies by finding in training data “decision boundaries” between sets of points belonging to different categories. Classifying new data points involves checking which side of the decision boundary they fall on.</p>
<p>Used in both feed-forward and (unrolled) recurrent networks is
<strong>
Backpropagation</strong> to update weights so networks learn (improve).
<a target="_blank" href="https://www.youtube.com/watch?v=gB_-LabED68">*</a>
The Deep Visualization Toolkit illustrates the intermediate process.</p>
<h3 id="unsupervised-learning">Unsupervised learning</h3>
<p>The “unsupervised” part of unsupervised learning
means it makes use of a dataset <strong>without labels</strong>.</p>
<p>It uses “feature extraction” to discover a good internal representation of the input.
It identifies the structure of data to solve some given task.</p>
<p>It uses “Pattern recognition” to <strong>classify</strong> patterns and clusters data.</p>
<ul>
<li>Autoencoders encode their own structure.
They are feature extractors with the same number of input and output nodes.</li>
</ul>
<p>A hidden layer in Autoencoders provides a bottleneck
of nodes reconstruction of input layer.
So they can be used for image compression.</p>
<ul>
<li>RBM (Restricted Boltzmann Machine) is an autoencoder
with one visible and one hidden layer.
Each visible node connects to all nodes in the hidden layer.</li>
</ul>
<p>The “restricted” is because there is no connection among nodes within its layer.</p>
<p>RBM is like a two-way translator.
RBM determines the relationship among input features.</p>
<p>In training loops,
RBM reconstructs inputs in the backward pass.</p>
<p>RBM uses a measure called “KL Divergence” that compares actual to recreation of data.
RBM makes decisions about what features are important based on weights and
overall bias.</p>
<p>All this means that data in
RBM does not need to be labeled.</p>
<p>As an example, to determine whether an animal is acerous or not acerous (has horns), it
look at features such as color, number of legs, horns.</p>
<p>“Principal Component Analysis” (PCA) is a linear method for finding a low-dimensional representation.</p>
<h3 id="reinforcement-learning">Reinforcement learning</h3>
<p>Reinforcement learning does not provide feedback until a goal is achieved.
Its objective is to select an action to maximize payoff.</p>
<p>In Dec 2013, Volodymyr Mnih and others at
<a target="_blank" href="https://www.deepmind.com/">
DeepMind.com</a> (a small company in London)
uploaded to Arxiv a paper titled
<a target="_blank" href="https://arxiv.org/abs/1312.5602">
“Playing Atari with Deep Reinforcement Learning”</a>.
The paper describes how a “convolutional neural network” program
learned to play several games on the Atari 2600 console (Pong, Breakout, SpaceInvaders, Seaquest, Beam Rider)
by observing raw screen pixels of 210 × 160.
The program learned by receiving a reward when the game score increased.
<a name="GeneralAI"></a>
This was hailed as “general AI” because the games and the goals in every game were very different but, without any change, learned seven different games, and performed better than some humans in three of them.
<a target="_blank" href="https://www.nervanasys.com/demystifying-deep-reinforcement-learning/">
*</a>
Their
<a target="_blank" href="http://www.nature.com/articles/nature14236">
Feb. 2015 article in Nature</a> gave them widespread attention.
Then Google bought DeepMind (for $400 million).</p>
<ul>
<li>
<p>https://www.youtube.com/watch?v=e3Jy2vShroE&index=17&list=PLjJh1vlSEYgvZ3ze_4pxKHNh1g5PId36-</p>
</li>
<li>
<p>https://www.nervanasys.com/demystifying-deep-reinforcement-learning/</p>
</li>
</ul>
<h3 id="transfer-learning">Transfer learning</h3>
<ul>
<li>https://www.youtube.com/watch?v=Yx6Wv_SCKjI&index=16&list=PLjJh1vlSEYgvZ3ze_4pxKHNh1g5PId36-</li>
</ul>
<h3 id="one-shot-learning">One-shot learning</h3>
<p>(aka Probabilistic Programming)
is where a neural network
learns from one (or a few) examples,
as opposed to a large amount of data.</p>
<p><a name="DeepLearning"></a></p>
<h3 id="deep-learning">Deep Learning</h3>
<p>“Deep learning” is a specific subfield of machine learning.
The “deep” in “deep learning” is not about “deeper” understanding, but
about the depth of various filters in a multi-stage information distillation operation.
Each stage extracts some meaning from different representations of the input.</p>
<p>Deep learning learns
all layers of representation “greedily”, in parallel at the same time,
rather than each layer in succession.
Intermediate incremental representations are learned jointly.
Each layer is updated to follow the representational needs of layers both
above and below itself.</p>
<p>See https://www.wikiwand.com/en/Deep_learning</p>
<hr />
<h2 id="tools-for-machine-learning">Tools for Machine Learning</h2>
<p>From http://www.infoworld.com/article/3163525/analytics/review-the-best-frameworks-for-machine-learning-and-deep-learning.html</p>
<p>Python or R is supported.</p>
<p>Many corporations have efforts using Machine Learning:</p>
<p><a target="_blank" href="https://www.sap.com/trends/machine-learning.html#solutions">
SAP’s “Leonardo” platform for ML</a>
<a target="_blank" href="https://open.sap.com/courses/ml1">
course</a>uses
the R language.</p>
<p>Tool:
<a target="_blank" href="http://bsft.io/x/115bvm?uid=89513dce-39c3-47ab-a0f6-a97f7825c62b&mid=cf8e63e2-44c8-4ae3-b033-41f708052cca">
Neural Network Playground</a>.</p>
<h3 id="python">Python</h3>
<p>Python is extended by libraries:</p>
<ul>
<li>for handling <a target="_blank" href="https://pypi.python.org/pypi/csv">csv</a>,
<a target="_blank" href="https://textblob.readthedocs.io/en/dev/">textblob</a> and other data formats</li>
<li>for visualization: Matplotlib, Seaborn, Bokeh, Yellowbrick</li>
<li>for matrix operations, <a target="_blank" href="http://www.numpy.org/">
Numpy</a> (<a target="_blank" href="https://docs.scipy.org/doc/numpy-dev/user/quickstart.html">Quickstart</a>)</li>
<li>for statistics and linear algebra: SciPy,
<a target="_blank" href="http://www.tweepy.org">tweepy</a></li>
<li>for vectorized computing: <a target="_blank" href="http://pandas.pydata.org/">Pandas</a> and <a target="_blank" href="https://github.com/dato-code/SFrame">
SFrame</a>, which is not limited to datasets that can fit in memory, so it can deal with large datasets, even on a laptop.</li>
<li>for Machine Learning, see below:</li>
</ul>
<h3 id="machine-learning-frameworks">Machine Learning frameworks</h3>
<p>Scikit-learn 0.18.1
from Scikit-learn</p>
<ul>
<li>
<p>http://www.infoworld.com/article/3158509/analytics/review-scikit-learn-shines-for-simpler-machine-learning.html</p>
</li>
<li>
<p>Mature documentation and libraries</p>
</li>
<li>
<p>Python-based, but does not support PyPy compiler</p>
</li>
</ul>
<p>Spark MLlib 2.01
from Apache Software Foundation</p>
<ul>
<li>
<p>http://www.infoworld.com/article/3141605/artificial-intelligence/review-spark-lights-up-machine-learning.html</p>
</li>
<li>
<p>Written in Scala and uses the linear algebra package Breeze which uses netlib-java.</p>
</li>
<li>
<p>Get data easily from Spark big-data clusters</p>
</li>
<li>
<p>Supported in the Databricks cloud</p>
</li>
</ul>
<p>Keras (at <a target="_blank" href="https://keras.io">https://keras.io</a>)
is not a library of its own but
is a high-level API to simplify the complexity of deep learning frameworks by
running on top of other deep learning APIs (TensorFlow, Theano and CNTK).</p>
<ul>
<li>
<p>Keras runs on both CPU and GPU through
backend engines Google’s TensorFlow
and Theano developed by the MILA lab at Universite de Montreal.</p>
</li>
<li>
<p>PROTIP: Bypass manual installation by using the Docker image for Keras at<br />
https://github.com/fchollet/keras/tree/master/docker
based on Ubuntu.</p>
</li>
</ul>
<p>In 2007, Nvidia launched CUDA, a C++ programming interface for its line of
GPUs (Graphic Processing Units) begins to replace clusters of less efficient CPUs.</p>
<ul>
<li>In 2017, NVIDIA provides GPU supercomputers used in many self-driving cars.</li>
</ul>
<p>In 2017, basic Python scripting skills suffice to do advanced deep learning research.</p>
<p>https://www.exxactcorp.com/blog/Deep-Learning/tensorflow-vs-pytorch-vs-keras-for-nlp</p>
<h3 id="java-in-dl4j">Java in DL4j</h3>
<p>Although Python is vastly more popular, there is a Java library
that can run on both Scala and Clojure.</p>
<p>Adam Gibson at
SkyMind
developed
Deeplearning4j (referred to as DL4j)
to be commercial-grade library to run on a distributed, multi-node setup.
It comes with GPU support for distributed training.</p>
<p>The DL4j team built a vectorization library called Canova.</p>
<p>In it one can select values for its hyper parameters.</p>
<p>DL4j supports most of the deep nets – RBM, DBN, Convolutional net, Recurrent net, RNTN, autoencoders, and vanilla MLP.</p>
<h3 id="deep-learning-frameworks">Deep Learning Frameworks</h3>
<p>The list of <a target="https://developer.nvidia.com/deep-learning-frameworks">frameworks today is NVIDIA to make</a> because <a target=”_blank” href=”<a target="_blank" href="https://docs.nvidia.com/deeplearning/frameworks/index.html">they optimize</a> for their NVIDIA GPU Cloud (NGC) at <a target="_blank" href="https://ngc.nvidia.com">ngc.nvidia.com</a>.</p>
<p>A ranking of Deep Learning frameworks based on GitHub star count in 2017:
<img src="https://user-images.githubusercontent.com/300046/30065446-164df49c-9212-11e7-88e9-95ba672fc9e2.jpg" alt="analysis-python-ml-650x248-53428" /></p>
<p>Since then, <a target="_blank" href="https://www.knowledgehut.com/blog/data-science/pytorch-vs-tensorflow#what-is%C2%A0tensorflow?%C2%A0">Google’s search history shows Pytorch overtaking Tensorflow</a>:
<a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1707285091/ml-PyTorch-vs-Tensorflow-2_dletll.png"><img src="https://res.cloudinary.com/dcajqrroq/image/upload/v1707285091/ml-PyTorch-vs-Tensorflow-2_dletll.png" /></a></p>
<p>Facebook/Meta’s PyTorch framework rising steadily from October, 2018 to become the one most people use:</p>
<ul>
<li><a target="_blank" href="https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch">On NVIDIA’s NGC</a></li>
<li>Based on Torch, another deep learning framework based on Lua</li>
<li>Easier to learn and debug its dynamic computational processes</li>
<li>TorchVision, TorchText, TorchAudio, PyTorch-XLA, PyTorch Hub, SpeechBrain, TorchX, TorchElastic and PyTorch Lightning</li>
<li><a target="_blank" href="https://www.alluxio.io/resources/modern-data-platform-excellence-series/pytorch-model-training-performance-tuning-a-comprehensive-guide/">Pytorch perf tuning</a> is easier due to its reliance on native support for asynchronous execution through Python means optimal performance in data parallelism</li>
<li>Poster projects: CycleGAN, FastAI, Netron
<br /><br /></li>
</ul>
<p>TensorFlow AI platform from Google</p>
<ul>
<li>TensorFlow 2.0 has Keras integrated, supports dynamic graphs using eager execution</li>
<li>When running on CPUs, TensorFlow wraps itself over a low-level library for tensor operations called Eigen. BLAS</li>
<li>When running on GPUs, TensorFlow wraps itself over a library of optimized deep learning operations called cuDNN (with CUDA drivers developed by NVIDIA).</li>
<li>TorchServe deployment</li>
<li>TensorFlow Serving, TensorFlow Extended, TF Lite, TensorFlow.js, TensorFlow Cloud, Model Garden, MediaPipe and Coral</li>
<li>Google TPU (Tensor Processing Units)</li>
<li>
<p>Poster projects: DeepSpeech, Magenta, StellarGraph</p>
</li>
<li><a target="_blank" href="https://developers.google.com/machine-learning/crash-course/ml-intro">
Google’s Machine Learning Crash Course</a></li>
</ul>
<p>Microsoft Cognitive Toolkit v2.0 Beta 1 (aka CNTK 2), as of 2017:</p>
<ul>
<li>http://www.infoworld.com/article/3138507/artificial-intelligence/review-microsoft-takes-on-tensorflow.html<br /></li>
<li>uses a declarative BrainScript neural network configuration language</li>
<li>No MacOS support yet</li>
<li>CNTK 2 models on GPU-equipped N-series family of Azure Virtual Machines.</li>
<li>Azure Machine Learning is part of the larger Microsoft Cortana Analytics Suite offering.</li>
</ul>
<p>Caffe 1.0 RC3
from Berkeley Artificial Intelligence…</p>
<ul>
<li>http://www.infoworld.com/article/3154273/analytics/review-caffe-deep-learning-conquers-image-classification.html</li>
</ul>
<p>MXNet v0.7
from Distributed Machine Learning Amazon…</p>
<ul>
<li>
<p>http://www.infoworld.com/article/3149598/artificial-intelligence/mxnet-review-amazons-scalable-deep-learning.html</p>
</li>
<li>
<p>Amazon’s DNN framework of choice, combines symbolic declaration of neural network geometries with imperative programming of tensor operations.</p>
</li>
<li>
<p>MXNet scales to multiple GPUs across multiple hosts with a near-linear scaling efficiency of 85 percent and boasts excellent development speed, programmability, and portability.</p>
</li>
<li>
<p>Its dynamic dependency scheduler allows mixing symbolic and imperative programming flavors:
Python, R, Scala, Julia, and C++</p>
</li>
<li>
<p>trained MXNet models can also be used for prediction in Matlab and JavaScript.</p>
</li>
<li>
<p>Ahead of TensorFlow with embed imperative tensor operations.</p>
</li>
</ul>
<h2 id="data-representation">Data representation</h2>
<p>Tensors generalize matrices to an arbitrary number of axes (3 or more “dimensions”).</p>
<p>A tensor that contains only one number is called a <strong>“scalar”</strong>
(aka “scalar tensor”), also called a <strong>“0D tensor”</strong> because
in Numpy the <code class="language-plaintext highlighter-rouge">ndim</code> attribute of a scalar tensor has 0 axis (ndim == 0).
(Yes, it confuses axis with dimensions)</p>
<p>An array (list) of several numbers is called a <strong>vector</strong>
or <strong>1D tensor</strong> having one axis.
As Lecun explains it:</p>
<p>A vector of 5 entries is called a “5-dimensional vector”.
Do not confuse a 5-dimensional vector with a 5D tensor!
A 5D vector has only one axis and has 5 dimensions along its axis,
while a 5D tensor has 5 axes (and may have any number of dimensions along each axis).</p>
<p>An array of vectors is a matrix, or <strong>2D tensor</strong> of two axes.</p>
<pre>
x = np.array([[1, 2, 3, 4, 5],
[10, 11, 12, 13, 14],
[100, 101, 102, 103, 104]])
</pre>
<p>Each vertical “column” is like a variable. The first one has values 1, 10, and 100 from the three lines (rows), which are akin to a set of observations for a particular point in time.</p>
<p>The “shape” of the above is (3,5) for 3 vectors each containing 5 values.</p>
<p>A <strong>3D tensor</strong> is defined as a “cube” of numbers.
The MNIST library of 60,000 sample images, each consisting of 28x28 black-and-white pixels
(each pixel represented by a number range from white to black),
has a <strong>shape</strong> of (60000,28,28).</p>
<p>4D tensors are used to process matrices of color pictures :<br />
(samples, width, height, channels)</p>
<p>5D tensors are used when processing video data:<br />
(samples, frames, width, height, color_depth).</p>
<p>In Python Numpy, a data type of “float32” or “float64” is a scalar tensor (or scalar array).</p>
<p>“Selecting” specific elements in a tensor is called “tensor slicing”.</p>
<h3 id="axies-for-shape">Axies for Shape</h3>
<p>2D tensors containing simple vector data of shape (samples, features)
are typically processed in “fully-connected” (“densely-connected” or “dense”) layers
using the Dense class in Keras.</p>
<p>3D tensors containing sequence data of shape (samples, timesteps, features)
are typically processed by “recurrent” layers such as a LSTM layer.</p>
<p>4D tensors containing image data is typically processed by Convolution2D layers.</p>
<p>5D tensors containing video data use the reshape layer.
See https://github.com/anayebi/keras-extra
for using Extra Layers for Keras to connect a RNN (Recurrent Neural Network)
to a Convolutional Neural Network (CNN) by allowing the CNN layers to be time distributed.</p>
<h3 id="pandas">Pandas</h3>
<p>The Padas Python library reads databases directly into
<a title="[38:15] Charles Givre at Metis 20170720" target="_blank" href="https://livestream.com/metis/events/7594894/videos/160063655">these Pandas structures</a>:</p>
<table>
<thead>
<tr>
<th>Dimensions</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>“Series”</td>
<td>Indexed 1 dimension data structure</td>
</tr>
<tr>
<td>2</td>
<td>“Timeseries”</td>
<td>Series using time stamps as an index</td>
</tr>
<tr>
<td>3</td>
<td>“DataFrame”</td>
<td>A two-dimensional table</td>
</tr>
<tr>
<td>4</td>
<td>“Panel”</td>
<td>A three-dimensional table data structure</td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>A <strong>scalar regression task</strong> is one where the target is a continuous scalar value.
For example, when predicting house prices, the different target prices form a continuous space.</p>
</li>
<li>
<p>A <strong>vector regression task</strong> is one where the target is a set of continuous values
(e.g. a continuous vector) while doing regression against multiple values (e.g. the coordinates of a bounding box in an image).</p>
</li>
</ul>
<h2 id="metrics">Metrics</h2>
<p>The goal is to derive models that generalize.</p>
<p>When using its training data, a <strong>“loss function”</strong>
is used to measure how well a neural network layer meets its objective.
Thus, some call it an “objective function”.</p>
<p>It is called a function because it’s the result of changes, and thus used to
determine whether changes are moving in the right direction.
Changes are made to minimize the loss function.</p>
<p>The number of data values is typically split into a
training set, a validation set, and a test set. This is so we don’t evaluate data
using what was used for training in order to avoid overfitting.</p>
<p>An <strong>“optimizer”</strong> is the mechanism a network uses to update itself
(based on data received and loss function values).
It implements a specific variant for <strong>stochastic gradient descent</strong>.</p>
<h2 id="gradient-boosting">Gradient Boosting</h2>
<p>To address shallow learning problems,
where structured data is available,
“gradient boosting machines” have been used.</p>
<p>Practitioners of gradient boosting make use of the XGB library,
which supports both the two most popular languages of data science: Python and R.</p>
<h2 id="introductory-resources">Introductory Resources</h2>
<p>YOUTUBE:
<a target="_blank" href="https://www.youtube.com/watch?v=BR9h47Jtqyw">
A friendly introduction to Deep Learning and Neural Networks</a>
by Luis Serrano</p>
<p><a target="_blank" href="https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471">
Machine Learning is Fun!</a> (article on Medium)
self-proclaimed “the world’s easiest introduction to Machine Learning”.</p>
<p>Adam Geitgy’s introduction of Machine Learning
https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471/
“for anyone who is curious about machine learning but has no idea where to start”</p>
<p>https://www.youtube.com/watch?v=dYT2LSuemgg
Apr 26, 2017 by Dr. Joseph Reger, CTO of Fujitsu Technology Solutions</p>
<p><a target="_blank" href="https://open.sap.com/courses/ml1/items/K1SvFgJiUIExvx0APIEc6">
Enterprise Machine Learning in a Nutshell</a>
free class from SAP.</p>
<p>Recommended by Elon Musk: Nick Bostrom “SuperIntelligence: Paths, Dangers, Strategies”</p>
<h2 id="more">More</h2>
<p>This is one of a series on AI, Machine Learning, Deep Learning, Robotics, and Analytics:</p>
<ol>
<li><a href="/ai-ecosystem/">AI Ecosystem</a></li>
<li><a href="/machine-learning/">Machine Learning</a></li>
<li>
<p><a href="/testing-ai/">Testing AI</a></p>
</li>
<li><a href="/microsoft-ai/">Microsoft’s AI</a></li>
<li><a href="/machine-learning-algorithms/">Microsoft’s Azure Machine Learning Algorithms</a></li>
<li><a href="/azure-machine-learning/">Microsoft’s Azure Machine Learning tutorial</a></li>
<li>
<p><a href="/azure-ml-cert/">Microsoft’s Azure Machine Learning certification</a></p>
</li>
<li><a href="/python-install/">Python installation</a></li>
<li>
<p><a href="/juypter/">Juypter notebooks processing Python for humans</a></p>
</li>
<li><a href="/image-processing/">Image Processing</a></li>
<li><a href="/tesseract/">Tessaract OCR using OpenCV</a></li>
<li>
<p><a href="/amazon-lex/">Amazon Lex text to speech</a></p>
</li>
<li>
<p><a href="/code-generation/">Code Generation</a></p>
</li>
<li><a href="/regression/">Multiple Regression calculation and visualization using Excel and Machine Learning</a></li>
<li><a href="/tableau/">Tableau Data Visualization</a></li>
</ol>
<p><a href="https://wilsonmar.github.io/machine-learning/">Machine Learning</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 15, 2025.</p>
https://wilsonmar.github.io/gaia-net2025-11-11T00:00:00+00:002025-11-11T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Monitize your knowledge in a blockchain exposed as AI Agents</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/gaia-net/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
</div>
</section>
<!-- /#table-of-contents -->
<p>At https://gaianet.ai, Gaia is the name of a decentralized blockchain combined with <a target="_blank" href="https://gaianet.ai/domain-explore">many AI Agents</a>.</p>
<ul>
<li>coder.gaia.domains is a collection of pure Qwen 2.5 33B models for developers to use.</li>
<li>pastor.gaia.domains is a Bible study agent that can explain biblical content.</li>
<li><a target="_blank" href="https://www.gaianet.ai/chat?domain=chemistry.gaia.domains&type=domain">chemistry.gaia.domains</a> is a collection of Llama 3.2-8b models with chemistry knowledge.
<br /><br />
Smart contracts of the blockchain interact with AI Agents.</li>
</ul>
<p>That enables Gaia to build “Living Knowledge Systems” for AI Agents.
– an decentralized ecosystem to support AI apps that learn, improve, and grow over time.</p>
<p>Power any LLM application
<a target="_blank" href="https://gaianet.ai/llm-library">many LLMs</a>.</p>
<p><a target="_blank" href="https://gaianet.ai/domain-explore">many AI Agents</a>.
To fuel the growth and development of the Gaia network,
the Gaia Reward Program ///</p>
<p>Although Gaia has an API compatible with OpenAI,
Unlike OpenAI ???</p>
<p>When Gaia Nodes connect to a Gaia Domain, it adds reasoning capabilities.</p>
<p>Nodes can be <a target="_blank" href="https://docs.gaianet.ai/getting-started/quick-start/">installed on macOS, Linux, Azure/AWS</a>:</p>
<ol>
<li>Make a folder to hold
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mkdir -p gaianetper; cd gaianet
</code></pre></div> </div>
</li>
<li>Download
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
</code></pre></div> </div>
</li>
<li>Check both shell and running process:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>if [[ $SHELL == *"zsh"* ]] || [[ $(ps -p $$ -o comm=) == *"zsh"* ]]; then
source ~/.zshrc"
else
source ~/.bash_profile"
fi
</code></pre></div> </div>
</li>
<li>Initialize <tt>$HOME/gaianet/config.json</tt>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gaianet init
</code></pre></div> </div>
</li>
<li>Start node:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gaianet start
</code></pre></div> </div>
</li>
<li>wasmedge is the process running in the background:
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ps -al
</code></pre></div> </div>
</li>
</ol>
<p>Gaia Domains are linked dirctly from a web browser as a personal AI Agent portal.</p>
<p>Instead of complex wallet addresses, Gaia domains are shared in a human readable format.</p>
<p>Domain stGAIA (Auto-deploy to domain when TGE)</p>
<ul>
<li>https://decrypt.co/297060/gaia-is-building-living-knowledge-systems-for-ai-agents</li>
<li>https://gist.github.com/kwunyeung/bfc3a6c9f8e5ad2566f12e69419c64e6</li>
<li>https://hub.cosmos.network/main/getting-started/installation</li>
<li>
<p>https://medium.com/@Gaianet.ai/gaianet-node-installation-guide-7572718eadf2</p>
</li>
<li>https://github.com/GaiaNet-AI/awesome-gaia is a collection point for resources that extend and enrich Gaia’s capabilities.</li>
<li>https://medium.com/@Gaianet.ai/step-by-step-guide-to-minting-your-gaia-domain-name-and-package-b6bb54654385</li>
</ul>
<p>Among videos at https://www.youtube.com/@GaiaAI</p>
<ul>
<li>https://www.youtube.com/watch?v=oTRuc5QXCBI Gaia Domains under 5 minutes</li>
</ul>
<p><a href="https://wilsonmar.github.io/gaia-net/">GaiaNet</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 11, 2025.</p>
https://wilsonmar.github.io/python-features2025-11-08T00:00:00+00:002025-11-08T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><a target="_blank" href="https://bomonike.github.io/python-features"><img align="right" width="100" height="100" alt="python-features.png" src="https://github.com/bomonike/bomonike.github.io/blob/master/images/python-features.png?raw=true" /></a></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/python-features/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#execution-environment" id="markdown-toc-execution-environment">Execution Environment</a></li>
<li><a href="#version-control" id="markdown-toc-version-control">Version Control</a></li>
<li><a href="#linting-ruff" id="markdown-toc-linting-ruff">Linting: Ruff</a></li>
<li><a href="#logging" id="markdown-toc-logging">Logging</a></li>
<li><a href="#colorized-print-output" id="markdown-toc-colorized-print-output">Colorized print output</a></li>
<li><a href="#traceback-for-debugging" id="markdown-toc-traceback-for-debugging">traceback for debugging</a></li>
<li><a href="#async-api-fastapi" id="markdown-toc-async-api-fastapi">Async API FastAPI</a></li>
<li><a href="#cli-ui" id="markdown-toc-cli-ui">CLI UI</a></li>
<li><a href="#subprocess" id="markdown-toc-subprocess">Subprocess</a></li>
<li><a href="#databases" id="markdown-toc-databases">Databases</a></li>
<li><a href="#dashboards-to-present-analytics" id="markdown-toc-dashboards-to-present-analytics">Dashboards to present analytics</a></li>
<li><a href="#analytics" id="markdown-toc-analytics">Analytics</a></li>
<li><a href="#gui" id="markdown-toc-gui">GUI</a></li>
<li><a href="#brew-search" id="markdown-toc-brew-search">brew search</a></li>
<li><a href="#references" id="markdown-toc-references">References</a></li>
<li><a href="#pythonista-mobile-ide" id="markdown-toc-pythonista-mobile-ide">Pythonista mobile IDE</a></li>
<li><a href="#ai-vision" id="markdown-toc-ai-vision">AI Vision</a></li>
<li><a href="#workflow-orchestration" id="markdown-toc-workflow-orchestration">Workflow orchestration</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p><i>How to automate Python</i></p>
<p>The design choices faced by enterprise Python language users (click for more):</p>
<ul>
<li><a href="#VersionControl">Version Control: git/github, Google jj</a></li>
<li>
<p><a href="#Linting">Linting: Ruff</a></p>
</li>
<li><a href="#CLI">CLI</a></li>
<li><a href="#GUI">GUI</a> & <a href="#Analytics">Analytics</a> & <a href="#Dashboard">Dashboards</a></li>
<li><a href="#AsyncAPI">Async API (FastAPI)</a></li>
<li><a href="#Databases">Databases</a>
<br /><br /></li>
</ul>
<ol>
<li>Specify first line and main to run program directly.</li>
<li>Define docstring on latest change, STATUS of program</li>
<li>
<p>Define github URL where program is located in docstring</p>
</li>
<li>Get parameter values from argument specified in call within CLI</li>
<li>Read secrets from .env file outside the program and GitHub, cloud (akeyless.com)</li>
<li>Positive and negative unit tests for each function (PyTest?)</li>
<li>
<p>Read CSV file for multiple iterations</p>
</li>
<li>Define OpenTelemetry (OTel) spans for tracing</li>
<li>Define a code for each message</li>
<li>Measure duration of each function with scope processed</li>
<li>Output log entries with duration and process scope</li>
</ol>
<hr />
<p><a name="VersionControl"></a></p>
<h2 id="execution-environment">Execution Environment</h2>
<p><a target="_blank" href="https://wilsonmar.github.io/jupyter/">My article on Jupyter Notebooks</a> covers:</p>
<ul>
<li>Google Colab</li>
<li>Kaggle</li>
<li>AWS</li>
</ul>
<p><a name="VersionControl"></a></p>
<h2 id="version-control">Version Control</h2>
<p>git/github, Google jj</p>
<p><a name="Linting"></a></p>
<h2 id="linting-ruff">Linting: Ruff</h2>
<p>To run several in one command, <tt>ruff</tt> combines the rules from several previous utilities (black, etc.).
And it runs fast due to it being written in Rust.</p>
<p>To identify whether libraries referenced has been flagged as vulnerable, we use <tt>safety</tt>.
It’s free but it has an annoying habit of making users type a password every run.
So I took it out of the <strong>git-commit</strong> hooks script run on every commit.</p>
<h2 id="logging">Logging</h2>
<p>loguru — Logging with zero boilerplate and built-in rotation
Why: Instead of logging.getLogger() setup, you get a one-line log tool with colors, file rotation, and context info.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from loguru import logger
logger.add("file_{time}.log", rotation="500 MB")
logger.info("Start processing {n} items", n=10)
</code></pre></div></div>
<p>Minimal setup, instantly usable output, fewer config hassles — productivity win.</p>
<h2 id="colorized-print-output">Colorized print output</h2>
<p>The click library avoids the need to add color to print output by define global variables in every program file.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import click
import rich_click as rc
rc.rich_click.MODERN = True
@click.command()
@click.option('--name', prompt='Your name')
def hello(name):
click.echo(f"Hello, [bold cyan]{name}[/]!")
if __name__ == '__main__':
hello()
</code></pre></div></div>
<h2 id="traceback-for-debugging">traceback for debugging</h2>
<p>Default tracebacks are messy. Rich’s tracebacks give color, local vars, context, and you spend less time digging.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from rich.traceback import install
install(show_locals=True)
def broken():
a = [1,2,3]
return a[5]
broken()
</code></pre></div></div>
<p>Instant clarity — especially when your automation fails in production and you need answers fast.</p>
<p><a name="AsyncAPI"></a></p>
<h2 id="async-api-fastapi">Async API FastAPI</h2>
<p>https://www.codecademy.com/article/fastapi-vs-flask-key-differences-performance-and-use-cases</p>
<p><a name="CLI"></a></p>
<h2 id="cli-ui">CLI UI</h2>
<p>Python comes with the <tt>print()</tt> function.</p>
<p>The <tt>typer</tt> library makes it easier to define code to recognize parameters.</p>
<h2 id="subprocess">Subprocess</h2>
<p>To execute OS commands within Python, instead of shell scripts:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from invoke import task
@task
def clean(ctx):
ctx.run("rm -rf build dist __pycache__")
@task(pre=[clean])
def build(ctx):
ctx.run("python setup.py sdist bdist_wheel")
# CLI:
# > invoke build
</code></pre></div></div>
<p><a name="Databases"></a></p>
<h2 id="databases">Databases</h2>
<p>Local databases:</p>
<ul>
<li>SQLite comes built into Python, so is a popular choice.</li>
<li>Postgres</li>
<li>MySQL is open source, but its ownership by Oracle makes its future suspect.
<br /><br />
Cloud-based databases are convenient, but expensive.</li>
<li>Snowflake</li>
<li>Databricks</li>
<li>Microsoft SQL & Azure Cosmos DB
<br /><br />
The question about database is its architectural data organization:</li>
<li>traditional SQL</li>
<li>Graph databases</li>
<li>DAG (Directed Acyclic Graph) like in blockchains and within Git</li>
<li>Semantic vector databases used by AI to augment foundation LLMs with private data
<br /><br />
Python ORM frameworks include:</li>
<li>Django ORM</li>
<li>sqlalchemy ORM: [<a target="_blank" href="https://www.datacamp.com/tutorial/sqlalchemy-tutorial-examples">Datacamp.com</a>]</li>
<li>https://www.planeks.net/django-orm-vs-sqlalchemy/</li>
</ul>
<p><a name="Dashboards"></a></p>
<h2 id="dashboards-to-present-analytics">Dashboards to present analytics</h2>
<p>Dashboard visually present metrics (statistics) for “situational awareness” (many in real-time):</p>
<ul>
<li>At an individual level, health stastics such as weight from scales, blood/oxigen, blood pressure, Glucouse from Continous Glucose Monitors, etc.</li>
<li>Families install Home Assistant to display sensor history, temperature fluctuations, and other weather conditions.</li>
<li>Families and teams have a common calendar.</li>
<li>Factories install operational status boards such as <a target="_blank" href="https://bomonike.github.io/plc#visibility-from-each-and-every-location">Ignition from Inductive Automation</a>.</li>
<li>Citizens use world and <a target="_blank" href="https://blog.streamlit.io/crafting-a-dashboard-app-in-python-using-streamlit/">US Population</a> dashboards to better understand the past and prepare for the future (such as inbound and outbound migration).
<br /><br /></li>
</ul>
<p>Python Frameworks:</p>
<ul>
<li>Matplotlib-based dashboards.</li>
<li>
<p>Streamlit: Simple and fast for data apps with less coding. [<a target="_blank" href="https://blog.streamlit.io/crafting-a-dashboard-app-in-python-using-streamlit/">tutorial</a> to build a US Population Dashboard app]</p>
</li>
<li>Panel by Holoviz: For powerful dashboards customized by pros, especially with Jupyter Notebook.</li>
<li>
<p>Voila turns Jupyter notebooks into dashboards. Save this example as a .ipynb file, then run it with voila script_name.ipynb:</p>
</li>
<li>Bokeh</li>
<li>
<p>Taipy</p>
</li>
<li>LightningChart features GPU acceleration.</li>
<li>HoloViews puts the focus on describing data, and it decides how best to visualize it by auto-links with Bokeh, Matplotlib, and Plotly. Netflix’s internal data teams have used HoloViews-style pipelines for rapid analytics dashboards.
<br /><br /></li>
</ul>
<p>Resources:</p>
<ul>
<li>https://realpython.com/python-dash/</li>
<li>https://medium.com/codrift/7-python-libraries-that-make-data-visualization-addictive-f657bf98d595</li>
<li><a target="_blank" href="https://www.linkedin.com/learning/python-for-data-visualization-2023/using-the-exercise-files?autoSkip=true&resume=false">Python for Visualization</a></li>
</ul>
<p><a name="Analytics"></a></p>
<h2 id="analytics">Analytics</h2>
<p>You may be familiar with the phrase “A picture is worth a thousand words”.</p>
<p>There are expensive enterprise-level system Tableau, SAS, Matlab, etc.</p>
<p>For Python:</p>
<ul>
<li>
<p>Seaborn runs on top of Matplotlib to provide more flexibility and a more elegant look.</p>
</li>
<li>Plotly (for interactivity and modern UI) [<a target="_blank" href="https://realpython.com/python-dash/">Dash Tutorial</a>]
<ul>
<li>https://dash.plotly.com/tutorial shows recreation of a GapMinder 4D interface from https://raw.githubusercontent.com/plotly/datasets/master/gapminder2007.csv</li>
<li><a target="_blank" href="https://plotly.com/python/choropleth-maps/?ref=blog.streamlit.io">choropleth-maps</a> displays a map which use gradations of colors to highlight differences between locations (such as the most and least populated states).</li>
</ul>
</li>
<li>Altair (for quick, declarative, grammar-based plots)</li>
<li>Polars + hvPlot (if you’re moving toward faster, Arrow-native workflows)</li>
</ul>
<p>Resources:</p>
<ul>
<li><a target="_blank" href="https://www.planeks.net/python-dashboard-development-framework/">“What is the best Python dashboard framework?”</a></li>
</ul>
<p><a name="GUI"></a></p>
<h2 id="gui">GUI</h2>
<p>Python GUIs (Graphical User Interfaces) are everything you see and interact with on the computer screen, from buttons and windows to menus, icons, etc., on any device – computer, phone, or other. You don’t have to type out all commands anymore; a GUI allows you to mouse click, tap, or use any other input, with all such actions becoming visual.</p>
<p>To provide front-end GUI such as a clickable dashboard, many enterprises use NodeJs (with ReactJs, etc.) or game engines (such as UnReal, etc.).</p>
<p>SUMMARY: Libraries to create Python GUI have a fragmented among these choices:</p>
<ul>
<li>
<p>Tkinter: The default (built-in) Python GUI library is for simple, portable, and quick-to-build interfaces. So it is beginner-friendly, with many tutorials. However, it “looks like 1994” and has more limited widgets.</p>
</li>
<li>
<p>PySide (Qt for Python): The most powerful and professional GUI toolkit with extensive features, good documentation, native look and cross-platform support. Suitable for complex and commercial apps without much licensing worry unless modifying the core. Each version requires different coding.</p>
</li>
<li>
<p>PyQt require a commercial license for professional and complex applications because it is feature-rich with tools like <strong>Qt Designer</strong>.</p>
</li>
<li>
<p>Kivy is for modern touch and multi-touch apps on <strong>smart phones</strong> (iPhones, Androids, and Raspberry Pi). It provides custom UI elements. However, it is not native-looking but visually modern and flexible.</p>
</li>
<li>
<p>PySimpleGUI is good for small utilities or quick tools for rapid, simple GUI creation with a lightweight abstraction over Tkinter, Qt, or wxPython. But it’s less customizable.</p>
</li>
<li>
<p>wxPython (at https://wxpython.org/index.html) is open source and <strong>cross-platform</strong> - run with little or no modifications on Windows, Macs and Linux or other unix-like systems. It is implemented as a set of Python modules that wrap <strong>native-looking</strong> GUI components due to use of low-level super fast wxWidgets cross platform GTK2 or GTK3 libraries written in C++ which means tricky to learn with complex documentation.</p>
</li>
</ul>
<p>wxPython’s Project Phoenix is a new from-the-ground-up implementation of wxPython, created with the intent of making wxPython “better, stronger, faster than he was before.”</p>
<ul>
<li>
<p>PyGObject (GTK-based, good for Linux)</p>
</li>
<li>
<p>FLTK is a lightweight, cross-platform GUI library designed for speed and efficiency. Using its Python bindings, you get the performance and stability of its C++ core. Key features include a simple interface, lightweight design, and fast performance for GUI apps. While FLTK is quick, lightweight, and works well on many platforms, it has fewer widgets and a less modern interface than other libraries. It’s a good choice for simple graphics applications or projects needing good performance without a complex or fancy interface.</p>
</li>
<li>
<p>Toga is a <strong>cross-platform</strong> GUI library that uses each operating system’s <strong>native APIs</strong> to deliver a native look and feel. So it enables Python developers to build apps with consistent and natural interfaces across all platforms. Its “least common denominator” means fewer fancy widgets and a smaller community than older libraries.</p>
</li>
<li>
<p>Dear PyGui is a open-source GUI library that provides high performance and ease of use, especially for creating <strong>real-time graphics</strong> tools and applications. Dear PyGui provides fast graphics rendering, a node-based user interface, and supports a lot of interactive features. But, its community is still small, and it might not have as many features as some of the more established libraries. Dear PyGui is a good fit for real-time applications, graphics editors, data analysis tools, and apps with high graphics performance.</p>
</li>
<li>
<p>Pygame, while not a pure GUI library, is popular for developing 2D games. It makes mp3 audio processing easy on macOS.</p>
</li>
</ul>
<p>https://stepmediasoftware.com/blog/best-gui-library-for-python/</p>
<h2 id="brew-search">brew search</h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>brew search python
==> Formulae
boost-python3 python-setuptools
bpython python-tabulate
brewsci/bio/[email protected][email protected]
cyclonedx-python [email protected]
ipython [email protected] ✔
libvirt-python [email protected] ✔
micropython [email protected]
ptpython python-yq
python-argcomplete [email protected]
python-build [email protected] ✔
python-freethreading [email protected] ✔
[email protected][email protected] ✔
[email protected][email protected][email protected][email protected]
python-launcher reorder-python-imports
python-lsp-server wxpython
python-markdown pythran
python-matplotlib cython
python-packaging ✔ jython
</code></pre></div></div>
<h2 id="references">References</h2>
<p><a target="_blank" href="https://www.amazon.com/Python-Tricks-Buffet-Awesome-Features/dp/1775093301?">BOOK:
“Python Tricks: A Buffet of Awesome Python Features “ from October 25, 2017</a>
<a target="_blank" href="https://learning.oreilly.com/library/view/python-tricks/9781492069522/">on OReilly</a>
by Dan Bader (of RealPython.com) recommends assertions</p>
<p>https://learning.oreilly.com/library/view/data-structures/9780134855912/
Data Structures & Algorithms in Python
By John Canning, Alan Broder, Robert Lafore</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=NiUK4G_jgdE">VIDEO</a>:
22:43 AI-generated podcast about book
<a target="_blank" href="https://www.amazon.com/Python-Basics-Practical-Introduction/dp/1775093328?">
BOOK: “Python Basics: A Practical Introduction to Python 3rd Edition”</a>
by David Amos (Author), Dan Bader (Author), Joanna Jablonski (Author), Fletcher Heisler (Author)</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=DhA4a3xS0Vo">VIDEO</a>
<a target="_blank" href="https://www.amazon.com/Kubernetes-Bible-definitive-deploying-platforms/dp/1838827692">$55</a>
“The Kubernetes Bible: The definitive guide to deploying and managing Kubernetes across major cloud platforms” by by Nassim Kebbani (Author), Piotr Tylenda (Author), Russ McKendrick (Author)</p>
<h2 id="pythonista-mobile-ide">Pythonista mobile IDE</h2>
<p>https://apps.apple.com/us/app/pythonista-3/id1085978097
Pythonista 3 ($9.99 by <a target="_blank" href="https://omz-software.com/pythonista/">omz:software</a>) Python IDE for iPad (and iPhone)</p>
<h2 id="ai-vision">AI Vision</h2>
<p>OpenCV</p>
<p>https://www.raspberrypi.com/documentation/accessories/ai-camera.html
AI Camera from Raspberry Pi.
https://www.youtube.com/watch?v=aoYfHlbNxGQ
Get started with Raspberry Pi AI Camera with Object Detection under 5 Minutes #raspberrypi</p>
<p>https://www.ultralytics.com/events/yolovision YOLO vision by Ultralytics.</p>
<p>https://core-electronics.com.au/guides/raspberry-pi/custom-object-detection-models-without-training-yoloe-and-raspberry-pi/</p>
<p>https://docs.firialabs.com/codeair/radio.html</p>
<h2 id="workflow-orchestration">Workflow orchestration</h2>
<p>The prefect library enables scripts with orchestration involving flows, tasks, retry logic, scheduling by providing visibility through multiple stages and task breakdown, without heavy infrastructure.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from prefect import flow, task
@task
def fetch_data():
return [1,2,3]
@task
def process(data):
return [x*2 for x in data]
@flow
def my_flow():
data = fetch_data()
result = process(data)
print(result)
if __name__ == '__main__':
my_flow()
</code></pre></div></div>
<p><a href="https://wilsonmar.github.io/python-features/">Python Features (and tools/utilities)</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 08, 2025.</p>
https://wilsonmar.github.io/python-ray2025-11-03T00:00:00+00:002025-11-03T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Run Python for AI Machine Learning in parallel distributed within a cluster of Kubernetes machines across AWS, GCP, Azure, and Anyscale cloudds.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/python-ray/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#competition" id="markdown-toc-competition">Competition</a></li>
<li><a href="#ray-clusters" id="markdown-toc-ray-clusters">Ray Clusters</a></li>
<li><a href="#install-using-docker" id="markdown-toc-install-using-docker">Install using Docker</a> <ul>
<li><a href="#port" id="markdown-toc-port">Port</a></li>
<li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
</ul>
</li>
<li><a href="#ecosystem" id="markdown-toc-ecosystem">Ecosystem</a></li>
<li><a href="#glossary" id="markdown-toc-glossary">Glossary</a></li>
<li><a href="#installation-scopes" id="markdown-toc-installation-scopes">Installation scopes</a></li>
<li><a href="#monitoring" id="markdown-toc-monitoring">Monitoring</a></li>
<li><a href="#dashboard" id="markdown-toc-dashboard">Dashboard</a></li>
<li><a href="#cluster-launcher" id="markdown-toc-cluster-launcher">Cluster Launcher</a></li>
<li><a href="#ray-serve" id="markdown-toc-ray-serve">Ray Serve</a></li>
<li><a href="#mcp" id="markdown-toc-mcp">MCP</a></li>
<li><a href="#beginner-info" id="markdown-toc-beginner-info">Beginner Info</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>https://www.ray.io/#why-ray</p>
<p>https://github.com/wilsonmar/python-ray</p>
<p>Ray enables parallel processing to Machine Learning <a target="_blank" href="https://docs.ray.io/en/latest/ray-overview/use-cases.html">use cases</a>, each a Python program:</p>
<ul>
<li><a target="_blank" href="https://docs.ray.io/en/latest/ray-overview/examples/mcp-ray-serve/README.html">Deploy MCP servers</a> to report weather</li>
<li><a target="_blank" href="https://docs.ray.io/en/latest/ray-core/examples/web_crawler.html">ray-crawler.py</a>for crawling the web to scrape content.</li>
<li>
<p><a target="_blank" href="">ray-data.py</a></p>
</li>
<li><a target="_blank" href="ray-learn.py">ray-learn.py</a> for Reinforcement learning</li>
<li><a target="_blank" href="ray-batch.py">ray-batch.py</a> for Batch inference</li>
<li><a target="_blank" href="ray-train.py">ray-train.py</a> for Model training</li>
<li><a target="_blank" href="ray-tune.py">ray-tune.py</a> for Hyperparameter tuning</li>
<li><a target="_blank" href="ray-serve.py">ray-serve.py</a> for Model serving
<br /><br />
The above are based on https://docs.ray.io/en/latest/ray-overview/examples.html</li>
</ul>
<p>Among End-to-End ML Workflows</p>
<ul>
<li>[Example] Text classification with Ray</li>
<li>[Example] Object detection with Ray</li>
<li>[Example] Machine learning on tabular data
<br /><br /></li>
</ul>
<p>https://docs.ray.io/en/latest/train/examples.html</p>
<p>https://github.com/ray-project/ray/tree/master</p>
<p>Running a job involves specifying the number of nodes.
Ray abstracts away the complexity of managing scaling clusters, task scheduling, inter-node cmmunications, handling failures with retries and restarts.</p>
<p>https://github.com/ray-project/ray/blob/master/doc/source/ray-security/index.md
Ray provides fault-tolerance, optimized scheduling, task orchestration, and auto-scaling to run a given workload.
If you expose these services (Ray Dashboard, Ray Jobs, Ray Client), anybody who can access the associated ports can execute arbitrary code on your Ray Cluster. This can happen:</p>
<ul>
<li>Explicitly: By submitting a Ray Job, or using the Ray Client</li>
<li>Indirectly: By calling the Dashboard REST APIs of these services</li>
<li>Implicitly: Ray extensively uses cloudpickle for serialization of arbitrary Python objects. See the pickle documentation for more details on Pickle’s security model.</li>
</ul>
<p>Within a cluster are stateless CPU Tasks and stateful Actions in a pool of GPUs.</p>
<p>Results are returned as futures.</p>
<p>https://docs.ray.io/en/latest/cluster/key-concepts.html#cluster-key-concepts</p>
<p>At the Ray.io marketing page notes, several of the “Magnificient Seven” stocks use Ray (an Apache project) owned by Anyscale.com. Here’s why:</p>
<p>Ray deploys to:</p>
<ul>
<li>Workspaces on Anyscale.com managed cloud. https://docs.anyscale.com/platform/workspaces/</li>
<li>Docker images from https://hub.docker.com/r/rayproject/ray comes with anaconda</li>
<li><a target="_blank" href="https://docs.ray.io/en/latest/cluster/vms/getting-started.html#vm-cluster-quick-start">VMs</a> within hyperscale cloud providers:
<ul>
<li>AWS,</li>
<li>GCP within https://docs.cloud.google.com/tpu/docs/ray-guide
<br /><br /></li>
</ul>
</li>
<li>QUESTION: What is Community-supported Azure?</li>
<li>
<p>Community-supported Aliyun and vSphere integrations also exist.</p>
<p>https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/ray-integration/</p>
</li>
<li><a target="_blank" href="https://docs.ray.io/en/latest/cluster/kubernetes/getting-started.html#kuberay-quickstart">Ray Kubernetes</a>
<br /><br /></li>
</ul>
<h2 id="competition">Competition</h2>
<ul>
<li>Spark</li>
<li>Dask</li>
<li>pytorch monarch the new distributed AI framework by meta? It looks much alike ray APIs.
if torch-native distributed usages are enough for most cases, it will definitely attract lots of users. Meanwhile, ray is just donated to pytorch foundation.</li>
</ul>
<p>https://orbstack.dev/”>orbstack</p>
<p>https://www.youtube.com/watch?v=aJe7CvQ-aM8</p>
<p><a name="Clusters"></a></p>
<h2 id="ray-clusters">Ray Clusters</h2>
<p>Ray runs on any machine, <a href="https://docs.ray.io/en/latest/cluster/getting-started.html">cluster</a>.</p>
<p>Multi-node Ray clusters are only supported on Linux. At your own risk, you may deploy Windows and OSX clusters by setting the environment variable RAY_ENABLE_WINDOWS_OR_OSX_CLUSTER=1 during deployment.</p>
<p><a target="_blank" href="https://docs.ray.io/en/latest/cluster/running-applications/job-submission/quickstart.html#jobs-quickstart">apps are submitted as Jobs</a> to existing Ray clusters.</p>
<h2 id="install-using-docker">Install using Docker</h2>
<h3 id="port">Port</h3>
<ol>
<li>
<p>Start the <strong>Head Node</strong> of a cluster:</p>
<pre>ray start --head --port=6379</pre>
<p>If a <tt>–port</tt> argument is omitted, Ray chooses port 6379, and then fall back to a random port if in 6379 is in use.</p>
<p>The command will print out the Ray cluster address, which can be passed to ray start on other machines to start the worker nodes (see below). If you receive a ConnectionError, check your firewall settings and network configuration.</p>
</li>
<li>
<p>Start Worker (Compute) Nodes on each of the other nodes:</p>
<pre>ray start --address=<em>head-node-address:port</em></pre>
<p>Replace head-node-address:port with the value printed by the command on the head node (it should look something like 123.45.67.89:6379).</p>
<h3 id="resources">Resources</h3>
<p>Ray auto-detects the resources (e.g., CPU) available on each node, but can be manually overriden by passing flags resources to the ray start command. For example, to specify that a machine has 10 CPUs and 1 GPU available for use by Ray, you can do this with the flags –num-cpus=10 and –num-gpus=1. See the Configuration page for more information.</p>
<p>If your compute nodes are on their own subnetwork with Network Address Translation, the address printed by the head node will not work if connecting from a machine outside that subnetwork. You will need to use a head node address reachable from the remote machine. If the head node has a domain address like compute04.berkeley.edu, you can simply use that in place of an IP address and rely on DNS.</p>
</li>
</ol>
<h2 id="ecosystem">Ecosystem</h2>
<p>Support by a growing ecosystem of <a target="_blank" href="https://docs.ray.io/en/latest/ray-overview/ray-libraries.html">community Integrations</a></p>
<p>https://docs.ray.io/en/latest/_images/air-ecosystem.svg</p>
<p>https://github.com/ray-project/ray
“Ray is an AI compute engine.</p>
<ul>
<li>
<p><a target="_blank" href="https://docs.ray.io/en/latest/ray-core/tasks.html">Tasks</a> - Stateless functions executed in the cluster.</p>
</li>
<li>
<p><a target="_blank" href="https://docs.ray.io/en/latest/ray-core/actors.html">Actors</a> - Stateful worker processes created in the cluster.</p>
</li>
<li>
<p><a target="_blank" href="https://docs.ray.io/en/latest/ray-core/objects.html">Objects</a> - Immutable values accessible across the cluster.</p>
</li>
</ul>
<h2 id="glossary">Glossary</h2>
<p>See https://docs.ray.io/en/latest/ray-references/glossary.html</p>
<h2 id="installation-scopes">Installation scopes</h2>
<p>This article is a rewrite of https://docs.ray.io/en/latest/ray-overview/installation.html</p>
<p>There are several scopes:</p>
<p>A. If you’re just getting started and not using <a href="#Dashboard">Ray Dashboard</a> or <a href="#Cluster_Launcher">Cluster Launcher</a>, install Ray with minimal dependencies: <a target="_blank" href="https://www.youtube.com/watch?v=i33b1DYjYRQ">VIDEO</a></p>
<pre>pip install -U "ray"</pre>
<p>B. To run <a href="#MLApps">machine learning apps</a>:</p>
<pre>pip install -U "ray[data,train,tune,serve]"</pre>
<p><a name="MLApps"></a></p>
<p>### Machine Learning Ray Apps</p>
<p>Ray consists of a Core distributed runtime plus:</p>
<ul>
<li>
<p>RaySGD - a library for distributed deep learning, which provides wrappers around PyTorch and TensorFlow</p>
</li>
<li>
<p><a target="_blank" href="https://docs.ray.io/en/latest/data/data.html">data</a> - Scalable Datasets for ML</p>
</li>
<li>
<p><a target="_blank" href="https://docs.ray.io/en/latest/train/train.html">train</a> - Distributed Training</p>
</li>
<li>
<p><a target="_blank" href="https://docs.ray.io/en/latest/tune/index.html">tune</a> - Scalable Hyperparameter Tuning. The Tuner is the top level Ray Tune API used to configure and run an experiment with many trials. A hyperparameter optimization framework, most commonly used for deep and reinforcement learning.</p>
</li>
<li>
<p><a target="_blank" href="https://docs.ray.io/en/latest/serve/index.html">serve</a> - Scalable and Programmable model-Serving</p>
</li>
</ul>
<p>B. For reinforcement learning support, install <a target="_blank" href="https://docs.ray.io/en/latest/rllib/index.html">RLlib</a> for Scalable Reinforcement Learning:</p>
<pre>pip install -U "ray[rllib]"</pre>
<ul>
<li>RLib</a> -</li>
</ul>
<p>C. To run general Python applications:</p>
<pre>pip install -U "ray[default]"</pre>
<ol>
<li>Test if the installation was successful:</li>
</ol>
<pre>python -m pytest -v python/ray/tests/test_mini.py</pre>
<p><a name="Monitoring"></a></p>
<h2 id="monitoring">Monitoring</h2>
<p>Install on every machine and configure for Prometheus.</p>
<p>https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/ray-integration/</p>
<p><a name="Dashboard"></a></p>
<h2 id="dashboard">Dashboard</h2>
<ul>
<li>Monitor Ray apps and clusters with the <a target="_blank" href="https://docs.ray.io/en/latest/ray-core/ray-dashboard.html">Ray Dashboard</a>.</li>
<li>Debug Ray apps with the <a target="_blank" href="https://docs.ray.io/en/latest/ray-observability/ray-distributed-debugger.html">Ray Distributed Debugger</a>.</li>
</ul>
<ol>
<li>Identify the head_ip.</li>
</ol>
<p><a name="Cluster_Launcher"></a></p>
<h2 id="cluster-launcher">Cluster Launcher</h2>
<ol>
<li>
<p>Edit the cluster config file <a target="_blank" href="https://github.com/ray-project/ray/blob/master/python/ray/autoscaler/aws/example-full.yaml">>example-full.yaml</a> to create a Ray cluster with a list of nodes.</p>
</li>
<li>
<p>Fill in the head_ip, a list of worker_ips, and the ssh_user field.</p>
</li>
<li>
<p>Test that it works by running the following commands from your local machine:</p>
<pre>
# Download the example-full.yaml
wget https://raw.githubusercontent.com/ray-project/ray/master/python/ray/autoscaler/local/example-full.yaml
# Update the example-full.yaml to update head_ip, worker_ips, and ssh_user.
# vi example-full.yaml
# Create or update the cluster. When the command finishes, it will print
# out the command that can be used to SSH into the cluster head node.
ray up example-full.yaml
# Get a remote screen on the head node.
ray attach example-full.yaml
# Try running a Ray program.
# Tear down the cluster.
ray down example-full.yaml
</pre>
</li>
</ol>
<h2 id="ray-serve">Ray Serve</h2>
<p>https://docs.ray.io/en/latest/ray-overview/examples/mcp-ray-serve/README.html
decribes an end-to-end example as a Notebook for running within Google Colab
to setup within the Anyscale cloud an MCP FastAPI server having a tool to
serve weather info from the US National Weather Service.</p>
<p>Ray’s example specifies older Python versions:</p>
<pre>pip install mcp==1.11.0 asyncio==3.4.3 pydantic==2.9.2</pre>
<p><a target="_blank" href="https://github.com/ray-project/ray/blob/master/doc/source/ray-overview/examples/mcp-ray-serve/01%20Deploy_custom_mcp_in_streamable_http_with_ray_serve.ipynb"><img src="https://res.cloudinary.com/dcajqrroq/image/upload/v1761745262/mcp-anyscale-weather_fggh4r.png" /></a></p>
<ul>
<li>
<p>Autoscaling: Dynamically adjusts replica count to match traffic peaks and maintain responsiveness. Ray Serve automatically adjusts the number of replicas based on traffic demand, ensuring your service handles increased load while maintaining responsiveness during peak usage periods.</p>
</li>
<li>
<p>Observability: Exposes real‑time metrics on request rates, resource usage & system health. Built-in monitoring capabilities provide visibility into your service’s performance, including request metrics, resource utilization, and system health indicators.</p>
</li>
<li>
<p>Load balancing: Intelligently distributes incoming requests across all replicas for steady throughput. Ray Serve intelligently distributes incoming requests across available replicas, preventing any single instance from becoming overwhelmed and maintaining consistent performance.</p>
</li>
<li>
<p>Fault tolerance: Detects failures, restarts components, and reroutes traffic to healthy replicas for continuous availability. Ray Serve automatically detects and recovers from failures by restarting failed components and redistributing requests to healthy replicas, ensuring continuous service availability.</p>
</li>
<li>
<p>Composition: Chains deployments—pre‑process, infer, post‑process, and custom logic—into a single seamless pipeline. Build complex services by orchestrating multiple deployments into a single pipeline, allowing you to chain preprocessing, model inference, postprocessing, and custom logic seamlessly.</p>
</li>
<li>
<p>Production ready: Enterprise‑grade infrastructure management and automated deployments for real‑world MCP traffic</p>
</li>
<li>
<p>Logging and tracing: Comprehensive logs, distributed tracing, and real‑time dashboards for end‑to‑end observability</p>
</li>
<li>
<p>High availability: Availability‑Zone‑aware scheduling and zero‑downtime rolling updates to maximize uptime</p>
</li>
<li>
<p>Head node fault tolerance: Managed head‑node redundancy to eliminate single points of failure in the Ray cluster coordination layer.</p>
</li>
<li>
<p>RayTurbo optimizations</p>
</li>
</ul>
<p>01-Deploy_custom_mcp_in_streamable_http_with_ray_serve.ipynb: Deploys a custom Weather MCP server in streamable HTTP mode behind FastAPI + Ray Serve, illustrating autoscaling, load‑balancing, and end‑to‑end testing on Anyscale.</p>
<p>MCP Python library</p>
<p>It uses Podman to deploy MCP tools with existing Docker images for notebooks 3 through 5.</p>
<p>A Brave API key set in your environment (BRAVE_API_KEY) for notebooks 3 and 4</p>
<p>02-Build_mcp_gateway_with_existing_ray_serve_apps.ipynb: Shows how to stand up a single MCP gateway that multiplexes requests to multiple pre‑existing Ray Serve apps under one unified /mcp endpoint, requiring no code changes in the underlying services.</p>
<p>03-Deploy_single_mcp_stdio_docker_image_with_ray_serve.ipynb: Wraps a stdio‑only MCP Docker image, for example Brave Search, with Ray Serve so it exposes /tools and /call HTTP endpoints and scales horizontally without rebuilding the image.</p>
<p>04-Deploy_multiple_mcp_stdio_docker_images_with_ray_serve.ipynb: Extends the previous pattern to run several stdio‑based MCP images side‑by‑side, using fractional‑CPU deployments and a router to direct traffic to the right service.</p>
<p>05-(Optional)_Build_docker_image_for_mcp_server.ipynb: Builds and pushes a lightweight Podman‑based Docker image for a Weather MCP server with uv in an Anyscale workspace.</p>
<h2 id="mcp">MCP</h2>
<p>https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http</p>
<p>SSE (legacy, deprecated): HTTP+Server-Sent events, now deprecated in favor of a unified HTTP transport.</p>
<p>Streamable HTTP: A single HTTP endpoint that handles both client→server POSTs and server→client GET/SSE streams.</p>
<p>https://support.anthropic.com/en/articles/11175166-about-custom-integrations-using-remote-mcp
integrate the Claude APP with remote MCP server</p>
<h2 id="beginner-info">Beginner Info</h2>
<p>https://www.youtube.com/watch?v=FhXfEXUUQp0
Beginner’s Guide to Ray! Ray Explained
The Data Guy</p>
<p>https://domino.ai/blog/ray-tutorial-for-accessing-clusters</p>
<p><a href="https://wilsonmar.github.io/python-ray/">Python Ray</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on November 03, 2025.</p>
https://wilsonmar.github.io/museums-roadtrip-usa2025-10-26T00:00:00+00:002025-10-26T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Visual, architectural, and culinary art in every state and major city, mapped by Machine Learning</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/museums-roadtrip-usa/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#journeys" id="markdown-toc-journeys">Journeys</a></li>
<li><a href="#references-websites" id="markdown-toc-references-websites">References (Websites)</a></li>
<li><a href="#extreme-corners" id="markdown-toc-extreme-corners">Extreme corners</a></li>
<li><a href="#just-touching-each-state" id="markdown-toc-just-touching-each-state">Just Touching Each State</a></li>
<li><a href="#the-us-rain-shadow-divide" id="markdown-toc-the-us-rain-shadow-divide">The US Rain Shadow Divide</a></li>
<li><a href="#us-interstate-highways" id="markdown-toc-us-interstate-highways">US interstate highways</a></li>
<li><a href="#refueling-and-recharging" id="markdown-toc-refueling-and-recharging">Refueling and ReCharging</a></li>
<li><a href="#taxes" id="markdown-toc-taxes">Taxes</a></li>
<li><a href="#coast-to-coast-trails" id="markdown-toc-coast-to-coast-trails">Coast-to-Coast Trails</a></li>
<li><a href="#us-national-parks" id="markdown-toc-us-national-parks">US National Parks</a></li>
<li><a href="#civil-war-confederates" id="markdown-toc-civil-war-confederates">Civil War Confederates</a></li>
<li><a href="#down-the-atlantic-eastern-seaboard" id="markdown-toc-down-the-atlantic-eastern-seaboard">Down the Atlantic Eastern Seaboard</a></li>
<li><a href="#freedom-ride" id="markdown-toc-freedom-ride">Freedom Ride</a> <ul>
<li><a href="#boston" id="markdown-toc-boston">Boston:</a></li>
<li><a href="#cambridge-north-of-boston" id="markdown-toc-cambridge-north-of-boston">Cambridge (North of Boston):</a></li>
<li><a href="#western-mass-turnpike-90" id="markdown-toc-western-mass-turnpike-90">Western Mass Turnpike 90:</a></li>
<li><a href="#northward-mass-up-95" id="markdown-toc-northward-mass-up-95">Northward Mass up 95:</a></li>
<li><a href="#southeast-of-boston-on-3-to-the-tip" id="markdown-toc-southeast-of-boston-on-3-to-the-tip">SouthEast of Boston on 3 to the tip:</a></li>
<li><a href="#western-mass-up-91" id="markdown-toc-western-mass-up-91">Western Mass up 91:</a></li>
<li><a href="#southern-mass" id="markdown-toc-southern-mass">Southern Mass:</a></li>
<li><a href="#new-york-city-manhattan" id="markdown-toc-new-york-city-manhattan">New York City (Manhattan)</a></li>
<li><a href="#new-york-city-brooklyn" id="markdown-toc-new-york-city-brooklyn">New York City (Brooklyn)</a></li>
<li><a href="#philadelphia" id="markdown-toc-philadelphia">Philadelphia:</a></li>
<li><a href="#pittsburgh" id="markdown-toc-pittsburgh">Pittsburgh:</a></li>
<li><a href="#williamsburg" id="markdown-toc-williamsburg">Williamsburg:</a></li>
<li><a href="#atlanta" id="markdown-toc-atlanta">Atlanta:</a></li>
<li><a href="#st-petersberg-northwest-on-75-up-the-gulf-coast" id="markdown-toc-st-petersberg-northwest-on-75-up-the-gulf-coast">St. Petersberg Northwest on 75 up the Gulf coast</a></li>
<li><a href="#south-down-the-east-coast" id="markdown-toc-south-down-the-east-coast">South down the East coast</a></li>
<li><a href="#miami" id="markdown-toc-miami">Miami:</a></li>
</ul>
</li>
<li><a href="#down-the-mississippi-river" id="markdown-toc-down-the-mississippi-river">Down the Mississippi River</a> <ul>
<li><a href="#chicago" id="markdown-toc-chicago">Chicago:</a></li>
<li><a href="#kansas-city" id="markdown-toc-kansas-city">Kansas City:</a></li>
<li><a href="#st-louis" id="markdown-toc-st-louis">St. Louis:</a></li>
<li><a href="#nashville" id="markdown-toc-nashville">Nashville:</a></li>
<li><a href="#memphis" id="markdown-toc-memphis">Memphis:</a></li>
</ul>
</li>
<li><a href="#northward-on-cattle-drives" id="markdown-toc-northward-on-cattle-drives">Northward on Cattle Drives</a></li>
<li><a href="#journey-down-the-pan-american-highway" id="markdown-toc-journey-down-the-pan-american-highway">Journey down the Pan American Highway</a></li>
<li><a href="#westward-on-land" id="markdown-toc-westward-on-land">Westward on land</a> <ul>
<li><a href="#the-pony-express" id="markdown-toc-the-pony-express">The Pony Express</a></li>
</ul>
</li>
<li><a href="#westward-from-vermont-to-kentucky" id="markdown-toc-westward-from-vermont-to-kentucky">Westward from Vermont to Kentucky</a> <ul>
<li><a href="#albanyrochester" id="markdown-toc-albanyrochester">Albany/Rochester:</a></li>
<li><a href="#adirondacks" id="markdown-toc-adirondacks">Adirondacks</a></li>
<li><a href="#buffalo" id="markdown-toc-buffalo">Buffalo:</a></li>
<li><a href="#detroit" id="markdown-toc-detroit">Detroit</a></li>
<li><a href="#cincinnati" id="markdown-toc-cincinnati">Cincinnati:</a></li>
<li><a href="#cleveland" id="markdown-toc-cleveland">Cleveland:</a></li>
<li><a href="#indianapolis" id="markdown-toc-indianapolis">Indianapolis:</a></li>
</ul>
</li>
<li><a href="#down-the-pacific-west-coast" id="markdown-toc-down-the-pacific-west-coast">Down the Pacific West Coast</a> <ul>
<li><a href="#spokane" id="markdown-toc-spokane">Spokane:</a></li>
<li><a href="#seattle" id="markdown-toc-seattle">Seattle:</a></li>
<li><a href="#san-francisco-bay" id="markdown-toc-san-francisco-bay">San Francisco Bay:</a></li>
<li><a href="#san-jose" id="markdown-toc-san-jose">San Jose:</a></li>
<li><a href="#santa-barbara-central-coast" id="markdown-toc-santa-barbara-central-coast">Santa Barbara (Central Coast):</a></li>
<li><a href="#west-side-los-angeles" id="markdown-toc-west-side-los-angeles">West Side, Los Angeles:</a></li>
<li><a href="#downtown-los-angeles" id="markdown-toc-downtown-los-angeles">Downtown Los Angeles:</a></li>
<li><a href="#east-los-angeles" id="markdown-toc-east-los-angeles">East Los Angeles:</a></li>
<li><a href="#south-bay-long-beach" id="markdown-toc-south-bay-long-beach">South Bay, Long Beach:</a></li>
<li><a href="#orange-county" id="markdown-toc-orange-county">Orange County:</a></li>
<li><a href="#inland-empire" id="markdown-toc-inland-empire">Inland Empire:</a></li>
<li><a href="#san-diego" id="markdown-toc-san-diego">San Diego:</a></li>
</ul>
</li>
<li><a href="#westward-through-northern-states" id="markdown-toc-westward-through-northern-states">Westward through Northern states</a> <ul>
<li><a href="#northern-rail" id="markdown-toc-northern-rail">Northern Rail</a></li>
<li><a href="#lewis-and-clark-trail-westward-ho" id="markdown-toc-lewis-and-clark-trail-westward-ho">Lewis and Clark Trail Westward Ho</a></li>
<li><a href="#oregon-trail-to-the-pacific" id="markdown-toc-oregon-trail-to-the-pacific">Oregon Trail to the Pacific</a></li>
<li><a href="#milwaukee" id="markdown-toc-milwaukee">Milwaukee:</a></li>
<li><a href="#duluth-north-coast-of-lake-superior" id="markdown-toc-duluth-north-coast-of-lake-superior">Duluth (North coast of Lake Superior)</a></li>
<li><a href="#minneapolis" id="markdown-toc-minneapolis">Minneapolis:</a></li>
<li><a href="#st-paul" id="markdown-toc-st-paul">St. Paul:</a></li>
</ul>
</li>
<li><a href="#westward-through-the-southwest" id="markdown-toc-westward-through-the-southwest">Westward through the Southwest</a> <ul>
<li><a href="#route-66" id="markdown-toc-route-66">Route 66</a></li>
<li><a href="#chisolm-trail" id="markdown-toc-chisolm-trail">Chisolm Trail</a></li>
<li><a href="#dallas" id="markdown-toc-dallas">Dallas:</a></li>
<li><a href="#austin" id="markdown-toc-austin">Austin:</a></li>
<li><a href="#houston" id="markdown-toc-houston">Houston:</a></li>
<li><a href="#santa-fe" id="markdown-toc-santa-fe">Santa Fe:</a></li>
<li><a href="#taos" id="markdown-toc-taos">Taos:</a></li>
<li><a href="#denver" id="markdown-toc-denver">Denver:</a></li>
</ul>
</li>
<li><a href="#all-the-sights" id="markdown-toc-all-the-sights">All the sights</a></li>
<li><a href="#technical-footnote" id="markdown-toc-technical-footnote">Technical Footnote</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p>This page lists where one can visit, see, and eat near the most significant cultural artifacts in America.
I created this page as a “bucket list” so that even if I can’t visit each one and perhaps enjoy on-site, I can still visit their web pages. Someday soon everyone can see treasures from anywhere using VR (Virtual Reality) glasses providing 360-degree views in High Definition.</p>
<blockquote>
<p>Do you have a road trip map or story? Share it! I’d love to know.</p>
</blockquote>
<p><em>NOTE: Content here are my personal opinions, and
not intended to represent any employer (past or present).
“PROTIP:” here highlight information I haven’t seen elsewhere on the internet
because it is hard-won, little-know but significant facts
based on my personal research and experience.
</em></p>
<h2 id="journeys">Journeys</h2>
<p>It’s a large country, so cites are listed by each <a href="#CivilWar">state of the union</a>, along natural geography East-to-West:</p>
<p>Journeys on water as she flows toward the Equator:</p>
<ul>
<li><a href="#DownEastCoast"> Down the Atlantic Eastern Seaboard</a> (<a href="#FreedomRide">Freedom Ride</a>)</li>
<li><a href="#DownMississippi"> Down the Mississippi River</a> (on a riverboat?)</li>
<li><a href="#DownWestCoast"> Down the Pacific West Coast</a></li>
</ul>
<p>Journeys Northward on <a href="#CattleDrives">Cattle Drives</a> in the 1880s.</p>
<p><a href="#PanAm">Journey South down the Pan American Highway</a>.</p>
<p><a href="#Westward">Journeys Westward on land</a> (<a href="#PonyExpress">The Pony Express</a>):</p>
<ul>
<li><a href="#WestwardVermont"> Westward from Vermont to Kentucky</a></li>
<li><a href="#NorthernMiddleAmerica">Westward through Northern states</a> (like <a href="#LewisAndClark">Lewis and Clark</a> and on the <a href="#OregonTrail">Oregon Trail)</a></li>
<li><a href="#Southwestward"> Westward through the Southwest (on Route 66)</a></li>
</ul>
<p>BTW, finding where each site is located resulted in a great geography and historical lesson for me.</p>
<h2 id="references-websites">References (Websites)</h2>
<p>Since July 4, 1776, the US has grown from 13 colonies with 2.5 million people to 50 states and 14 territories with over <a target="_blank" href="https://www.census.gov/popclock/">342 million</a> people connected by roughly 5,000 airports, 140,000 miles of train tracks, 4 million miles of roads, and 5.5 million miles of power lines.</p>
<ul>
<li><a target="_blank" href="https://www.hmdb.org/">hmdb.org = Historical Marker Database</a></li>
<li><a target="_blank" href="https://www.movie-locations.com/">movie-locations.com</a></li>
<li><a target="_blank" href="https://www.flixist.com/a-rundown-of-every-major-theater-chains-premium-screen-options/">Premium screens in the US</a> (Imax, <a target="_blank" href="https://www.sprocketschool.org/wiki/List_of_70mm_film_exhibitors">70mm</a>, etc.)</li>
<li><a target="_blank" href="https://rs.locationshub.com/Home/Index?page=1">locationshub.com/#featured-filming-locations</a></li>
<li><a target="_blank" href="https://www.wikiwand.com/en/List_of_World_Heritage_Sites_in_the_United_States">24 UNESCO World Heritage Sites in the United State</a></li>
<li><a target="_blank" href="https://www.wikiwand.com/en/List_of_National_Historic_Landmarks_in_the_United_States">2,500 National Historic Landmarks in the United States</a>
<br /><br /></li>
</ul>
<h2 id="extreme-corners">Extreme corners</h2>
<p><a target="_blank" href="https://ironbutt.org/rides/">Iron Butt</a> motocyle rallies award bonus points for reaching the four corners of the nation:</p>
<ul>
<li>NorthWest: <a target="_blank" href="https://en.wikipedia.org/wiki/Blaine%2C_Washington">Blaine, Washington</a> (where the Peace Arch international monument straddles the border of US and Canada)</li>
<li>NorthEast: <a target="_blank" href="https://en.wikipedia.org/wiki/Madawaska%2C_Maine">Madawaska, Maine</a> (87% speak French at home in this most northeastern town in the contiguous United States, next to the province of Quebec, Canada)</li>
<li>SouthEast: <a target="_blank" href="https://en.wikipedia.org/wiki/Key_West">Key West, Florida</a> (“Home of the Sunset” where you can see the <a target="_blank" href="https://eclipsewise.com/lunar/LEprime/2001-2100/LE2029Jun26Tprime.html">total lunar eclipse on June 26, 2029</a> [<a target="_blank" href="https://en.wikipedia.org/wiki/June_2029_lunar_eclipse">Wikipedia</a>])</li>
<li>SouthWest: <a target="_blank" href="https://en.wikipedia.org/wiki/San_Ysidro%2C_San_Diego">San Ysidro, California</a> (the busiest border crossing in the Western Hemisphere)
<br /><br /></li>
</ul>
<p><a name="Google_route_map"></a></p>
<h2 id="just-touching-each-state">Just Touching Each State</h2>
<p><a target="_blank" href="http://goo.gl/maps/ZdUYQ">This Google route map</a> was actually used by <a target="_blank" href="http://www.datapointed.net/2012/08/fastest-route-to-visit-all-fifty-united-states/">recent finishers</a> to go around the 48 states in 6 days:</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1660661005/ThomasCannonandJustinMorrisRoute-589x301_g6ygsm.jpg">
<img alt="6 days" width="750" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1660661005/ThomasCannonandJustinMorrisRoute-589x301_g6ygsm.jpg" /></a></p>
<p>To deter reckless driving among Extreme Road-trippers, the <a target="_blank" href="https://www.guinnessworldrecords.com/news/2015/8/60-years-on-the-categories-that-guinness-world-records-no-longer-monitors-393758">Guinness World Records discontinued listing speed records in 1996</a>. But that didn’t stop the <a target="_blank" href="https://allfiftyclub.com/members/record-holders-fast-to-50/">All Fifty States Club</a> website.</p>
<h2 id="the-us-rain-shadow-divide">The US Rain Shadow Divide</h2>
<blockquote>
<p><a target="_blank" href="https://youtube.com/shorts/mOmpn0m7pxk?si=6c6Rfj-s0q5HftEp">VIDEO</a>: Notice the transition between <strong>yellow to green</strong> down the middle of the country?</p>
</blockquote>
<p><a target="_blank" href="https://www.youtube.com/watch?v=ki-hoy-3ea8&t=7m50s">VIDEO</a>: 80% of Americans live East of the (vertical) <strong>98th Meridian</strong>, as shown by a green straight line overlaid this map from <a target="_blank" href="https://blackmarble.gsfc.nasa.gov/">NASA’s BlackMarble satellite images of the nigh sky worldwide</a>:<br />
<a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1672456116/usa-frontier-1920x1080_a2urp2.jpg"><img alt="usa-frontier-1920x1800.jpg" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1672456116/usa-frontier-1920x1080_a2urp2.jpg" /></a></p>
<p>When geologist John Westly Powell identified this phenomenon across the “pairies” in 1890, that natural line was at the 100th Meridian (vs. 98th today).
Since then, “Climate change” continues to shift to the East. So expect less rain from Winnapeg (Canada) to Forth Worth, Ausin, and San Antonio Texas.
Also impacted will be agriculture around Winnipeg (Manitoba, Canada), Fargo, Sioux Falls, Omaha, Lincoln, Wichita, Oklahoma City.</p>
<p>That green line down the middle of America defines the extent wet storms reach from the East. West of that is the “Rain Shadow” of limited moisture from the Pacific West blocked by the tall Cascade Mountains in Washington state housing Leavenworth, Washington and Rocky Mountains housing Aspen, Vail, Breckenridge, Telluride, <a target="_blank" href="https://www.google.com/maps/place/Denver,+CO/@39.7584783,-113.8531857,5z/">Denver, Colorado</a>), Park City, Utah, California.</p>
<p>The East coast also has quaint <a target="_blank" href="https://www.travelandleisure.com/holiday-travel/americas-best-towns-for-the-holidays/">towns well decorated for Christmas </a>:</p>
<ul>
<li>Ogunquit, Maine</li>
<li>Portsmouth, New Hampshire</li>
<li>Nantucket, Massachusetts</li>
<li>Newport, Rhode Island</li>
<li>Christmas Village, Philadelphia</li>
<li>Cape May, New Jersey</li>
<li>Atlantic City, New Jersey</li>
<li>
<p>New York, New York</p>
</li>
<li>Annapolis, Maryland</li>
<li>Charlottesville, Virginia</li>
<li>Lewisburg, West Virginia</li>
<li>Beaufort, North Carolina</li>
<li>Myrtle Beach, South Carolina</li>
<li>Natchitoches, Louisiana</li>
<li>Santa Rosa Beach, Florida
<br /><br /></li>
</ul>
<p><a name="freeways"></a></p>
<h2 id="us-interstate-highways">US interstate highways</h2>
<p>East-west interstate highway numbers end with 0.<br />
North-South interstate highway numbers end with 5.</p>
<p><img alt="East-West" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1660663003/roadtrip-usa-east-west-hwy_dovluc.jpg" /></p>
<p><img alt="North-South" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1660662994/roadtrip-usa-north-south-hwy_sontf7.jpg" /></p>
<h2 id="refueling-and-recharging">Refueling and ReCharging</h2>
<p>The number of <a target="_blank" href="https://www.tesla.com/supercharger">Tesla Supercharger locations</a> jumped to <a target="_blank" href="https://en.wikipedia.org/wiki/Tesla_Supercharger">2,966 in Q2 2021 from 1,587 at Q1 2019:<br />
<img alt="map tesla charging stations 650x334-c59" width="650" height="334" src="https://cloud.githubusercontent.com/assets/300046/17037278/538ea0f8-4f4d-11e6-907a-6a0b65a807e5.jpg" /></a></p>
<p>In 2023 Ford and GM agreed to enable their electric cars to use Tesla’s charging ports and stations.</p>
<p>A map of stations offering <strong>Ethanol-free</strong> premium gasoline (at higher prices) is at <a target="_blank" href="https://www.pure-gas.org/extensions/map.html">pure-gas.org/extensions/map.html</a>. My wife used it to figure out where I should stop along a route from Florida to Montana. It was difficult because we had to figure out where I was on the website’s map. She also had to calculate how much further I could go with remaining gas. Somehow we managed to stay married after that.</p>
<p><a name="taxes"></a></p>
<h2 id="taxes">Taxes</h2>
<p>No sales tax is collected from residents within the states of Alaska, Delaware, Montana, New Hampshire, and Oregon.
<a target="_blank" href="https://www.salestaxinstitute.com/sales_tax_faqs/out_of_state_retailer_collect_sales_tax">The Sales Tax Institute</a> notes: Residents from other states are often required by laws in their home state to pay out-of-state sales tax. Sellers in tax-free states still collect the sales tax for visitors and remit it to the buyer’s home state if the vendor has a presence in the buyer’s home state. Otherwise, out-of-state buyers are required to pay use tax themselves.
Many don’t pay the use tax to their home state even though there can be significant fines, on top of paying the tax, for not doing so.</p>
<p><a target="_blank" href="https://9to5mac.com/2023/07/24/sales-tax-holiday-apple-products/">Some states offer sales tax-free holidays</a> (for a limited time) to encourage spending on products that are considered to be of benefit to the state’s economy. This typically occurs in August and early September for back-to-school supplies, books, computers, and clothing.</p>
<h2 id="coast-to-coast-trails">Coast-to-Coast Trails</h2>
<p><a target="_blank" href="https://www.youtube.com/watch?v=xljpEbTh1ds/">VIDEO</a>:
The American Discovery Trail (https://discoverytrail.org/) spans 6,800 miles from coast to coast, with two options in the middle states. The route across rural and urban areas, wilderness, desert mountains and forests.</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1707778533/museums-us-am-disc-trail-1688x1018_snp2gt.png"><img alt="museums-us-am-disc-trail-1688x1018.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1707778533/museums-us-am-disc-trail-1688x1018_snp2gt.png" /></a></p>
<p>NERDY TRIVIA: How fast would one need to drive to see a sunset continuously?<br />
If you were at 89.9 degrees North near a Pole, you could walk across all time zones in the world.<br />
The formula is: v = circumference * cos(ϕ) where ϕ = latitude.<br />
At the equator, the circumferance of the earth is 40,075 km, so the earth rotates at
40,075 km / 24 h ≈ <strong>1670 km/h (1038 mph)</strong>.<br />
At Denver, Colorado, its 40 degrees latitude = 0.77 radians, so <strong>1279 km/h (795 mph)</strong>.
See my Python program that calculates it at
https://github.com/wilsonmar/python-samples/blob/main/sunset-speed.py</p>
<h2 id="us-national-parks">US National Parks</h2>
<p>Among America’s greatest treasures are the <a target="_blank" href="https://www.wikiwand.com/en/National_Park_Service">63</a> <a target="_blank" href="https://www.nps.gov/index.htm">national parks managed by the U.S. National Park Service.</a></p>
<p><img alt="us-nps-ma-1500x938.jpeg" width="1500" height="938" src="https://user-images.githubusercontent.com/300046/133946844-809c6182-2763-45ba-8d29-217ea2eb28cc.jpeg" />
The <a target="_blank" href="https://www.amazon.com/US-National-Parks-Map-22-5/dp/B072ZWHL8V">map above</a> is missing White Sands National Park (New Mexico), Indiana Dunes, and Gateway Arch (St. Louis).</p>
<p><a target="_blank" href="https://tbandjtravel.com/the-u-s-map/">One couple visited the most significant parks in this order</a>:
<a target="_blank" href="https://cloud.githubusercontent.com/assets/300046/25560224/6b14fde6-2d1c-11e7-952e-52e883844808.jpg">
<img alt="us-tour-natl-park-route" width="650" src="https://cloud.githubusercontent.com/assets/300046/25560224/6b14fde6-2d1c-11e7-952e-52e883844808.jpg" /></a></p>
<p><a target="_blank" title="Route around the US on Google map" href="https://wilsonmar.github.io/US_Landmarks_Roadtrip_v01.html">
<img alt="map us_landmarks_roadtrip_v01_683x396" width="683" height="396" src="https://cloud.githubusercontent.com/assets/300046/14229554/5531ac58-f8f3-11e5-8ce4-c01a5289358e.png" /></a></p>
<p>The above route through major landmarks in the lower 48 states was optimized for least driving time across 6,813 miles, using Google Maps API driven by <a target="_blank" href=" https://github.com/wilsonmar/Data-Analysis-and-Machine-Learning-Projects/blob/master/optimal-road-trip/Computing%20the%20optimal%20road%20trip%20across%20the%20U.S..ipynb">Machine Learning algorithms run in a Python Jupyter Notebook</a> as <a target="_blank" href="http://www.randalolson.com/2015/03/08/computing-the-optimal-road-trip-across-the-u-s/">described by Randal S. Olson</a>. See <a target="_blank" href="https://www.upwork.com/resources/ai-road-trip">How to USE AI to Plan a Road Trip</a>.</p>
<p><a target="_blank" href="https://rvlife.com/national-park-camping-reservations/">CAUTION</a>: as COVID lockdowns relax, reservations are at all-time highs at <a target="_blank" href="https://www.recreation.gov/">recreation.gov/</a>, <a target="_blank" href="https://koa.com/">KOA</a>, <a target="_blank" href="https://www.reserveamerica.com/">ReserveAmerica.com</a>, and state camping sites.</p>
<p><a name="Mighty5"></a></p>
<p>Many “Western” movies were filmed in iconic “Mighty 5” parks below Salt Lake City in Utah: <a target="_blank" href="https://www.google.com/maps/d/u/0/viewer?msa=0&mid=16KbY2hCvDQEAAPsK6bwyEDjPZyc&ll=37.542383125235986%2C-110.57365010534873&z=8">Las Vegas from the South and Denver from the North <img width="841" alt="us-might5-route-1682x1014" src="https://user-images.githubusercontent.com/300046/134821783-60f33b47-ccea-4ab0-a12f-69505411c763.png" />322 miles in 5 hours without stopping (click for Google Map)</a>. But you’ll want to stop and marvel the views at each park:</p>
<ol>
<li><a target="_blank" href="https://www.youtube.com/results?search_query=zion+national+park++360+4k">4K 360 VIDEO</a>: <a target="_blank" href="https://www.nps.gov/zion/index.htm">Zion</a> (Utah’s first National Park)</li>
<li><a target="_blank" href="https://www.youtube.com/results?search_query=4k+360+bryce+canyon">4K 360 VIDEO</a>: <a target="_blank" href="https://www.nps.gov/brca/index.htm">Bryce Canyon</a> <a target="_blank" href="https://www.youtube.com/brycecanyonnps">VIDEO</a></li>
<li><a target="_blank" href="https://www.youtube.com/results?search_query=capital+reef+national+park++360+4k">4K 360 VIDEO</a>: Capital Reef</li>
<li><a target="_blank" href="https://www.youtube.com/results?search_query=Arches+national+park++360+4k">4K 360 VIDEO</a>: Arches</li>
<li><a target="_blank" href="https://www.youtube.com/results?search_query=Canyonlands++360+4k">4K 360 VIDEO</a>: Canyonlands
<br /><br /></li>
</ol>
<p><a name="CivilWar"></a></p>
<h2 id="civil-war-confederates">Civil War Confederates</h2>
<p>When the Civil War ended in 1865, The Confederacy included the 11 Southern states of Texas, Arkansas, Louisiana, Tennessee, Mississippi, Alabama, Georgia, Florida, South Carolina, North Carolina, and Virginia.</p>
<p><a target="_blank" href="https://www.nps.gov/civilwar/facts.htm">
<img width="600" height="300" alt="map-us-states-civil-war-323x227-c64.jpg" src="https://cloud.githubusercontent.com/assets/300046/16953089/fc8c99ba-4d88-11e6-9845-7b4120243ea4.jpg" /></a></p>
<p>The 5 “Border States” were Maryland, Delaware, West Virginia, Kentucky, and Missouri (where “brother fought brother”). <a target="_blank" href="https://youtube.com/shorts/JuWB9qyVmIs?si=9xw1rg581fglgHYT">VIDEO</a>: Although Kentucky’s legislature voted to be neutral, the state was represented as a star in both Confederate and Union flags and was occupied by both Confederate and Union troops. Four times more Kentucky citizens fought for the Union than for the Confederacy.</p>
<p>States in white (Oklahoma) did not fight for either side.
Idaho <a target="_blank" href="https://www.wikiwand.com/en/Idaho_in_the_American_Civil_War">
volunteers did not fight against the Confederacy</a>.
<a target="_blank" href="https://www.wikiwand.com/en/Confederate_Arizona">
Areas in Arizona and New Mexico were claimed by both sides</a>.</p>
<hr />
<p><a name="DownEastCoast"></a></p>
<h2 id="down-the-atlantic-eastern-seaboard">Down the Atlantic Eastern Seaboard</h2>
<p>This is where the United States of America began as colonies of England.</p>
<p><a name="FreedomRide"></a></p>
<h2 id="freedom-ride">Freedom Ride</h2>
<p>The planned route of the courageous <a target="_blank" href="https://www.history.com/topics/black-history/freedom-rides">Freedom Ride</a> May 1961 through the “Jim Crow” South to test a Supreme Court ruling against “whites-only” restrooms and lunch counters at bus stations:</p>
<p><a target="_blank" href="https://user-images.githubusercontent.com/300046/86551553-8fb40180-bf02-11ea-88f3-8b070e22aec6.png"><img width="1314" alt="map-freedom-ride" src="https://user-images.githubusercontent.com/300046/86551553-8fb40180-bf02-11ea-88f3-8b070e22aec6.png" /></a></p>
<p>The Woolworth lunch counter in downtown Greensboro, NC is now a <a target="_blank" href="https://www.sitinmovement.org/">museum</a>.</p>
<p>The ride stopped on May 14 in Anniston, Alabama where their bus was burnt by segregationists.</p>
<hr />
<p><a name="ME"></a></p>
<blockquote>
<p><strong> Maine </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.bates.edu/museum/">Bates Museum of Art</a>, Lewiston</li>
<li><a target="_blank" href="https://www.bowdoin.edu/art-museum/">Bowdoin College Museum of Art</a>, Brunswick</li>
<li><a target="_blank" href="https://www.colby.edu/museum/">Colby College Museum of Art</a>, Waterville</li>
<li><a target="_blank" href="https://www.farnsworthmuseum.org/">Farnsworth Art Museum</a>, Rockland</li>
<li><a target="_blank" href="https://umaine.edu/hudsonmuseum/">Hudson Museum at the University of Maine</a>, Orono</li>
<li><a target="_blank" href="https://www.portlandmuseum.org/">Portland Museum of Art</a></li>
<li><strike>University of Maine Museum of Art</strike>, Orono</li>
<li><a target="_blank" href="https://www.mainememory.net/artifact/8707">Artemus Ward House</a>, Waterford Maine</li>
<li type="circle">Maple syrup creamies!</li>
</ul>
<p><a name="NH"></a></p>
<blockquote>
<p><strong> New Hampshire </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.almagilbert.com/">Cornish Colony Gallery and Museum</a></li>
<li><a target="_blank" href="https://www.sgnhs.org/">Saint-Gaudens National Historic Site</a>, Cornish</li>
<li><a target="_blank" href="https://www.currier.org/">Currier Gallery of Art</a>, Manchester</li>
<li><a target="_blank" href="https://hoodmuseum.dartmouth.edu/">Hood Museum of Art</a>, Hanover</li>
<li><a target="_blank" href="https://www.keene.edu/tsag/">Thorne-Sagendorph Art Gallery at Keene State College</a></li>
<li>Robert Frost House, Franconia</li>
</ul>
<p><a name="MA"></a></p>
<blockquote>
<p><strong> Massachusettes</strong></p>
</blockquote>
<h3 id="boston">Boston:</h3>
<p>Boston is among the safest large cities in the US.</p>
<ul>
<li><a target="_blank" href="https://www.umb.edu/in_the_community/arts/arts_on_the_point/">Arts on the Point Sculpture Park</a>, Boston</li>
<li><a target="_blank" href="https://www.bu.edu/art/">Boston University Art Gallery</a></li>
<li><a target="_blank" href="https://www.bostonathenaeum.org/">Boston Athenaeum</a></li>
<li><a target="_blank" href="https://www.icaboston.org/">Institute of Contemporary Art</a>, Boston</li>
<li><a target="_blank" href="https://www.gardnermuseum.org/">Isabella Stewart Gardner Museum</a>, Boston</li>
<li><a target="_blank" href="https://www.mfa.org/"><strong>Museum of Fine Arts</strong></a></li>
<li><a target="_blank" href="https://www.mos.org/planetarium">Museum of Science and Hayden Planetarium</a></li>
<li><a target="_blank" href="https://ussconstitutionmuseum.org/">USS Constitution Museum</a>, Boston</li>
<li><a target="_blank" href="https://www.archives.gov/presidential-libraries/visit#">
John F. Kennedy Presidential Library and Museum</a>, Columbia Point, Boston</li>
</ul>
<h3 id="cambridge-north-of-boston">Cambridge (North of Boston):</h3>
<ul>
<li><a target="_blank" href="https://www.harvardartmuseums.org/"><strong>Harvard University Art Museums</strong></a>, Cambridge</li>
<li><a target="_blank" href="https://www.peabody.harvard.edu/">Peabody Museum of Archaeology and Ethnology at Harvard University</a>, Cambridge</li>
<li>Fogg Art Museum</li>
<li>MIT Museum</li>
<li>Arthur M. Sackler Museum</li>
<li><a target="_blank" href="https://www.brandeis.edu/rose/">Rose Art Museum at Brandeis University</a>, Waltham</li>
<li type="square">Henry Wadsworth Longfellow House, Cambridge, Massachusetts</li>
</ul>
<h3 id="western-mass-turnpike-90">Western Mass Turnpike 90:</h3>
<ul>
<li>Edith Wharton's The Mount, Lenox</li>
<li><a target="_blank" href="https://www.museumofbadart.org/">Museum of Bad Art</a>, Dedham</li>
<li><a target="_blank" href="https://www.bc.edu/bc_org/avp/cas/artmuseum/">McMullen Museum of Art at Boston College</a>, Chestnut Hill</li>
<li><a target="_blank" href="https://www.wellesley.edu/DavisMuseum/">Davis Museum and Cultural Center at Wellesley College</a>, in Wellesley, MA</li>
<li><strike>Danforth Museum of Art</strike>, Framingham</li>
<li><a target="_blank" href="https://www.worcesterart.org/">Worcester Art Museum</a></li>
<li><a target="_blank" href="https://www.osv.org/"><strong>Old Sturbridge Village</strong></a></li>
<li><a target="_blank" href="https://www.nrm.org/"><strong>Norman Rockwell Museum</strong></a>, Stockbridge</li>
<li><a target="_blank" href="https://artmuseum.mtholyoke.edu/">Mount Holyoke College Art Museum</a>, South Hadley</li>
<li><a target="_blank" href="https://www.berkshiremuseum.org/">Berkshire Museum</a>, Pittsfield</li>
<li type="square">Herman Melville's Arrowhead, Pittsfield</li>
<li><a target="_blank" href="https://springfieldmuseums.org/">The Springfield Museums at the Quadrangle</a></li>
<li><a target="_blank" href="https://springfieldmuseums.org/about/dr-seuss-museum/">Dr. Seuss Memorial</a>, Springfield</li>
<li type="square">Site of Thoreau's Cabin, Walden Pond, Concord</li>
<li type="square">Wayside (home of Nathaniel Hawthorne, Louisa May Alcott, and Margaret Sidney), Concord</li>
<li type="square">Ralph Waldo Emerson Home, Concord</li>
<li><a target="_blank" href="https://louisamayalcott.org/">Louisa May Alcott's Orchard House</a>, Concord</li>
</ul>
<h3 id="northward-mass-up-95">Northward Mass up 95:</h3>
<ul>
<li><a target="_blank" href="https://www.griffinmuseum.org/">Griffin Museum of Photography</a>, Winchester</li>
<li><a target="_blank" href="https://artgalleries.tufts.edu/">Tufts University Gallery</a>, Medford</li>
<li><a target="_blank" href="https://www.whistlerhouse.org/">Whistler House Museum Of Art</a>, Lowell</li>
<li><a target="_blank" href="https://addison.andover.edu/"><strong>Addison Gallery of American Art</strong></a>, Andover</li>
<li><a target="_blank" href="https://www.pem.org/">Peabody Essex Museum</a>, Salem</li>
</ul>
<h3 id="southeast-of-boston-on-3-to-the-tip">SouthEast of Boston on 3 to the tip:</h3>
<ul>
<li><a target="_blank" href="https://fullercraft.org/">Fuller Craft Museum</a>, Brockton</li>
<li><a target="_blank" href="https://www.artcomplex.org/">The Art Complex Museum</a>, Duxbury</li>
<li><a target="_blank" href="https://www.plimoth.org/">Plimoth Plantation, Plymouth</a></li>
<li><a target="_blank" href="https://www.pilgrimhall.org/">Pilgrim Hall Museum</a>, Plymouth</li>
<li><a target="_blank" href="https://www.ccmoa.org/">Cape Code Museum of Fine Arts</a>, Dennis</li>
<li><a target="_blank" href="https://www.heritagemuseumsandgardens.org/">Heritage Museums and Gardens</a>, Sandwich</li>
<li><a target="_blank" href="https://www.whalingmuseum.org/">Kendall Whaling Museum</a>, New Bedford</li>
<li><a target="_blank" href="https://www.cahoonmuseum.org/">Cahoon Museum of American Art</a>, Cotuit</li>
</ul>
<h3 id="western-mass-up-91">Western Mass up 91:</h3>
<ul>
<li><a target="_blank" href="https://www.decordova.org/">DeCordova Museum and Sculpture Park</a>, Lincoln</li>
<li><a target="_blank" href="https://www.amherst.edu/~mead/">Mead Art Museum at Amherst College</a>, Amherst</li>
<li><a target="_blank" href="https://www.picturebookart.org/">Eric Carle Museum of Picture Book Art</a>, Amherst</li>
<li>Emily Dickinson's Home, Amherst</li>
<li><a target="_blank" href="https://www.smith.edu/artmuseum/">Smith College Museum of Art</a>, Northampton</li>
<li><a target="_blank" href="https://www.clarkart.edu/"><strong>Clark Art Institute</strong></a>, Williamstown</li>
<li><a target="_blank" href="https://www.wcma.org/">Williams College Museum of Art</a>, Williamstown</li>
<li><a target="_blank" href="https://www.massmoca.org/">Massachusetts Museum of Contemporary Art</a>, North Adams</li>
</ul>
<h3 id="southern-mass">Southern Mass:</h3>
<ul>
<li><a target="_blank" href="https://attleboroartsmuseum.org/">Attleboro Museum and Center for the Arts</a></li>
<li><a target="_blank" href="https://www.newbedfordartmuseum.org/">New Bedford Art Museum</a></li>
<li><a target="_blank" href="https://www.clarkart.edu/">Sterling and Francine Clark Art Institute</a>, Williamstown</li>
</ul>
<p><a name="RI"></a></p>
<blockquote>
<p><strong>Rhode Island </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.brown.edu/Facilities/David_Winton_Bell_Gallery/">David Winton Bell Gallery at Brown University</a>, Providence</li>
<li><a target="_blank" href="https://risdmuseum.org/"><strong>Rhode Island School of Design Museum of Art</strong></a> Providence</li>
<li><a target="_blank" href="https://www.newportartmuseum.org/">Newport Art Museum</a></li>
<li><a target="_blank" href="https://americanillustration.org/">National Museum of American Illustration</a>, Newport</li>
</ul>
<p><a name="CT"></a></p>
<blockquote>
<p><strong>Connecticut</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.loomischaffee.org/page.cfm?p=30249">Mercy Gallery at the Loomis Chaffee School</a>, Windsor</li>
<li><a target="_blank" href="https://benton.uconn.edu/">Benton Museum of Art at the University of Connecticut</a>, Storrs</li>
<li><a target="_blank" href="https://www.marktwainhouse.org/">Mark Twain House and Museum</a>, West Hartford [1]</li>
<li>Harriet Beecher Stowe Home, West Hartford</li>
<li><a target="_blank" href="https://www.wadsworthatheneum.org/"><strong>Wadsworth Atheneum</strong></a>, Hartford
<li><a target="_blank" href="https://www.hillstead.org/">Hill-Stead Museum</a>, Farmington</li>
<li><a target="_blank" href="https://www.nbmaa.org/"><strong>New Britain Museum of American Art</strong></a></li>
<li><a target="_blank" href="https://www.wesleyan.edu/dac/">Davison Art Center at Wesleyan University</a>, Middletown</li>
<li><a target="_blank" href="https://www.flogris.org/">Florence Griswold Museum</a>, Old Lyme</li>
<li><a target="_blank" href="https://mattatuckmuseum.org/">Mattatuck Museum</a>, Waterbury</li>
<li><a target="_blank" href="https://www.norwichfreeacademy.com/slater_museum/">Slater Museum at Norwich Free Academy</a></li>
<li><a target="_blank" href="https://britishart.yale.edu/">Yale Center for British Art</a>, New Haven</li>
<li><a target="_blank" href="https://artgallery.yale.edu/">Yale University Art Gallery</a>, New Haven</li>
<li><a target="_blank" href="https://www2.housatonic.edu/artmuseum/">Housatonic Museum of Art</a>, Bridgeport</li>
<li><a target="_blank" href="https://www.aldrichart.org/">Aldrich Museum of Contemporary Art</a>, Ridgefield</li>
<li><a target="_blank" href="https://www.stamfordmuseum.org/">The Stamford Museum and Nature Center</a></li>
<li><a target="_blank" href="https://www.brucemuseum.org/">Bruce Museum of Arts and Science</a>, Greenwich</li>
</li>
</ul>
<p><a name="NJ"></a></p>
<blockquote>
<p><strong>New Jersey</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.jerseycitymuseum.org/">Jersey City Museum</a> across the Hudson from Manhattan</li>
<li><a target="_blank" href="https://www.newarkmuseum.org/">Newark Museum</a></li>
<li><a target="_blank" href="https://www.state.nj.us/state/museum/">New Jersey State Museum</a>, Trenton</li>
<li><a target="_blank" href="https://www.zimmerlimuseum.rutgers.edu/">Jane Voorhees Zimmerli Art Museum at Rutgers University</a>, Brunswick</li>
<li><a target="_blank" href="https://www.princetonartmuseum.org/">Art Museum at Princeton University</a>, Princeton</li>
<li type="circle"><a target="_blank" href="https://www.opentable.com/rats-restaurant-grounds-for-sculpture">Rats</a> [restaurant with gardens]</li>
<br />
<li><a target="_blank" href="https://thebergenmuseum.com/">Bergen Museum</a>, Hackensack</li>
<li><a target="_blank" href="https://www.groundsforsculpture.org/">Grounds For Sculpture</a>, Hamilton</li>
<li><a target="_blank" href="https://www.montclairartmuseum.org/">Montclair Art Museum</a></li>
<li><a target="_blank" href="https://morrismuseum.org/">Morris Museum</a>, Morristown</li>
<li><a target="_blank" href="https://www.noyesmuseum.org/">Noyes Museum of Art</a>, Oceanville</li>
<li><a target="_blank" href="https://www.wheatonvillage.org/">Wheaton Village Museum of American Glass</a>, Millville</li>
</ul>
<p><a name="NY"></a></p>
<blockquote>
<p><strong> New York </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.fdrlibrary.marist.edu/">
Franklin D. Roosevelt Presidential Library and Museum</a>, Hyde Park</li>
</ul>
<p><a name="NYC"></a></p>
<h3 id="new-york-city-manhattan">New York City (Manhattan)</h3>
<ul>
<li><a target="_blank" href="https://www.bxma.org/">Bronx Museum of Art</a></li>
<li><strong>Metropolitan Museum of Art</strong> and the Cloisters</li>
<li><a target="_blank" href="https://www.alternativemuseum.org/">Alternative Museum</a></li>
<li><a target="_blank" href="https://www.folkartmuseum.org/">American Folk Art Museum</a></li>
<li><a target="_blank" href="https://www.amnh.org/">American Museum of Natural History</a></li>
<li><a target="_blank" href="https://chelseaartmuseum.org/">Chelsea Art Museum</a></li>
<li><a target="_blank" href="https://ndm.si.edu/">Cooper-Hewitt, National Design Museum</a></li>
<li><a target="_blank" href="https://www.daheshmuseum.org/">Dahesh Museum</a></li>
<li><a target="_blank" href="https://www.diacenter.org/">Dia Center for the Arts</a></li>
<li><a target="_blank" href="https://www.diachelsea.org/">Dia: Chelsea</a></li>
<li><a target="_blank" href="https://www.icp.org/">International Center of Photography</a></li>
<li><a target="_blank" href="https://www.thejewishmuseum.org/"><strong>Jewish Museum</strong></a></li>
<li><a target="_blank" href="https://ca80.lehman.cuny.edu/gallery/">Lehman College Art Gallery</a></li>
<li><a target="_blank" href="https://www.morganlibrary.org/">Morgan Library</a></li>
<li><a target="_blank" href="https://www.elmuseo.org/">El Museo del Barrio</a></li>
<li><a target="_blank" href="https://www.africanart.org/">Museum for African Art</a></li>
<li><a target="_blank" href="https://www.moma.org/"><strong>Museum of Modern Art (MOMA)</strong></a></li>
<li><a target="_blank" href="https://www.mcny.org/"><strong>Museum of the City of New York</strong></a></li>
<li><a target="_blank" href="https://www.nationalacademy.org/">Museum of the National Academy of Design</a></li>
<li><a target="_blank" href="https://www.nmai.si.edu/">National Museum of the American Indian</a></li>
<li><a target="_blank" href="https://www.neuegalerie.org/">Neue Galerie Museum for German and Austrian Art</a></li>
<li><a target="_blank" href="https://www.newmuseum.org/">New Museum of Contemporary Art</a></li>
<li><a target="_blank" href="https://www.nyhistory.org/">New-York Historical Society</a></li>
<li><a target="_blank" href="https://www.roerich.org/">Nicholas Roerich Museum</a></li>
<li><a target="_blank" href="https://www.queensmuseum.org/">Queens Museum of Art</a></li>
<li><a target="_blank" href="https://www.rmanyc.org/">Rubin Museum of Art: Art of the Himalayas</a></li>
<li><a target="_blank" href="https://www.siiasmuseum.org/">Staten Island Institute of Arts and Sciences</a></li>
<li><a target="_blank" href="https://www.studiomuseuminharlem.org/">Studio Museum in Harlem</a></li>
<li><a target="_blank" href="https://www.ukrainianmuseum.org/">Ukrainian Museum</a></li>
<li><a target="_blank" href="https://www.whitney.org/"><strong>Whitney Museum of American Art</strong></a></li>
<li> American Museum of Natural History</li>
<li> Gallery of Modern Art</li>
<li> GONE: Museum of Holography</li>
<li><a target="_blank" href="https://www.metmuseum.org/">Metropolitan Museum of Art (the Met)</a></li>
<li><a target="_blank" href="https://www.guggenheim.org/new_york_index.shtml"><strong>Guggenheim Museum</strong></a></li>
<li>Solomon R. Guggenheim Museum, with
<a target="_blank" href="https://www.Guggenheim.com/"> Guggenheim.com</a> for motorcycles and
<a target="_blank" href="https://www.Guggenheim.org/">Guggenheim.org</a> for environmental art</li>
<li> Museum of the American Indian</li>
<li><a target="_blank" href="https://www.nyu.edu/greyart/">Grey Art Gallery at New York University</a></li>
<li><a target="_blank" href="https://www.frick.org/"> <strong>Frick Collection</strong></a></li>
<li><a target="_blank" href="https://hispanicsociety.org/">Hispanic Society of America</a></li>
</ul>
<p><a name="Brooklyn"></a></p>
<h3 id="new-york-city-brooklyn">New York City (Brooklyn)</h3>
<p><em>DUMBO = Down Under the Manhattan Bridge Overpass</em> is home to 25% of New York based tech firms, including Etsy.
<a target="_blank" href="https://freetoursbyfoot.com/things-to-do-dumbo/">[tour]</a></p>
<ul>
<li> Walk the Brooklyn Bridge</li>
<li type="circle"><a target="_blank" href="https://www.opentable.com/river-cafe-brooklyn">River Cafe</a> (Jackets required of men) </li>
<li><a target="_blank" href="https://www.brooklynmuseum.org/">Brooklyn Museum of Art</a></li>
<li><a target="_blank" href="https://www.brooklynx.org/rotunda/default.asp">Rotunda Gallery</a></li>
</ul>
<p><a name="PA"></a></p>
<blockquote>
<p><strong>Pennsylvania</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.allentownartmuseum.org/">Allentown Art Museum</a></li>
<li><a target="_blank" href="https://www.lvc.edu/gallery/">Arnold Art Gallery at Lebanon Valley College</a>, Annville</li>
<li><a target="_blank" href="https://www.barnesfoundation.org/">Barnes Foundation</a>, Merion</li>
<li><a target="_blank" href="https://www.brandywinemuseum.org/">Brandywine River Museum</a>, Chadds Ford</li>
<li><a target="_blank" href="https://www.demuth.org/">Charles Demuth Foundation and Museum</a>, Lancaster</li>
<li><a target="_blank" href="https://www.erieartmuseum.org/">Erie Art Museum</a>, Erie</li>
<li><a target="_blank" href="https://Everhart-Museum.org/">Everhart Museum</a>, Scranton</li>
<li><a target="_blank" href="https://www.glencairnmuseum.org/">Glencairn Museum</a>, Bryn Athyn</li>
<li><a target="_blank" href="https://www.michenerartmuseum.org/">James Michener Art Museum</a>, Doylestown</li>
<li><a target="_blank" href="https://services.juniata.edu/museum/">Juniata College Museum of Art</a>, Huntingdon</li>
<li><a target="_blank" href="https://www.psu.edu/dept/palmermuseum/">Palmer Museum of Art at Pennsylvania State University</a>, University Park</li>
<li><a target="_blank" href="https://www.readingpublicmuseum.org/">Reading Public Museum</a>, Reading</li>
<li><a target="_blank" href="https://www.bucknell.edu/SamekArtGallery/">Samek Art Gallery at Bucknell University</a>, Lewisburg</li>
<li><a target="_blank" href="https://www.sama-art.org/">Southern Alleghenies Museum of Art</a>, Johnstown</li>
<li><a target="_blank" href="https://www.statemuseumpa.org/">State Museum of Pennsylvania</a>, Harrisburg</li>
<li><a target="_blank" href="https://www.widener.edu/?pageId=60">Widener University Art Gallery and Collection</a>, Chester</li>
<li><a target="_blank" href="https://www.rrmuseumpa.org/">Railroad Museum of Pennsylvania</a>, Ronks (Lancaster)</li>
</ul>
<p><a name="Philadelphia"></a></p>
<h3 id="philadelphia">Philadelphia:</h3>
<ul>
<li> Franklin Institute Science Museum</li>
<li><a target="_blank" href="https://muttermuseum.org/">Mütter Museum</a> [weird] 19 S. 22nd St. 19103</li>
<li><a target="_blank" href="https://www.libertymuseum.org/"><strong>National Liberty Museum</strong></a></li>
<li><a target="_blank" href="https://www.pafa.org/">Pennsylvania Academy of the Fine Arts</a></li>
<li><a target="_blank" href="https://www.thegalleriesatmoore.org/">Moore College of Art and Design Galleries</a></li>
<li><a target="_blank" href="https://www.museum.upenn.edu/">University of Pennsylvania Museum of Archaeology and Anthropology</a></li>
<li><a target="_blank" href="https://www.tju.edu/eakins/">The Eakins Gallery at Thomas Jefferson University</a></li>
<li><a target="_blank" href="https://www.lasalle.edu/services/art-mus/">La Salle University Art Museum</a></li>
<li><a target="_blank" href="https://www.icaphila.org/">Institute of Contemporary Art</a></li>
<li><a target="_blank" href="https://www.arthurrossgallery.org/">Arthur Ross Gallery at the University of Pennsylvania</a></li>
<li>Academy of Natural Sciences</li>
<li><a target="_blank" href="https://www.rosenbach.org/main.html">Rosenbach Museum and Library</a></li>
<li><a target="_blank" href="https://www.philamuseum.org/"><strong>Philadelphia Museum of Art</strong></a></li>
<li><a target="_blank" href="https://www.rodinmuseum.org/">Rodin Museum at the Philadelphia Museum of Art</a></li>
<li> Barnes Foundation Collection, Merion</li>
<li> Museum of American Art</li>
<li> University Museum of Archaeology and Anthropology</li>
<li><a target="_blank" href="https://www.woodmereartmuseum.org/">Woodmere Art Museum</a></li>
<br />
<li type="circle">Ristorante Pesto</li>
<li type="circle"><a target="_blank" href="https://www.thedailymeal.com/vetri">Vetri Cucina</a> <a target="_blank" href="https://www.thedailymeal.com/101-best-restaurants-america-2019/slide-50">[#50]</a></li>
<li type="circle">Zahav restaurant of Israeli cuisine, Philadelphia</li>
</ul>
<p><a name="Pittsburgh"></a></p>
<h3 id="pittsburgh">Pittsburgh:</h3>
<ul>
<li><a target="_blank" href="https://www.cmoa.org/">Carnegie Museum of Art</a></li>
<!-- <a href="scripts/allr.pl?&c=c&search=11063"><font COLOR="#FF0000">Posters from this museum</font></a></li -->
<li><a target="_blank" href="https://www.warhol.org/">Andy Warhol Museum</a></li>
<li><a target="_blank" href="https://www.frickart.org/home/">Frick Art and Historical Center</a></li>
<li><a target="_blank" href="https://www.mattress.org/">Mattress Factory Museum of Contemporary Art</a></li>
<li> Carnie Museum of Natural History</li>
</ul>
<p><a name="DE"></a></p>
<blockquote>
<p><strong>Delaware</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.biggsmuseum.org/">Biggs Museum of American Art</a>, Dover</li>
<li><a target="_blank" href="https://www.delart.org/">Delaware Art Museum</a>, Wilmington</li>
<li><a target="_blank" href="https://www.museums.udel.edu/">University of Delaware Gallery</a>, Newark</li>
<li><a target="_blank" href="https://www.winterthur.org/">Winterthur Museum, Garden and Library</a></li>
</ul>
<p><a name="MD"></a></p>
<blockquote>
<p><strong>Maryland</strong></p>
</blockquote>
<p>Baltimore had the #3 rate of crime among all cities in the US (2,027/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.art-academy.org/">Academy Art Museum</a>, Easton</li>
<li><a target="_blank" href="https://www.africanartmuseum.org/">African Art Museum of Maryland</a>, Columbia</li>
<li><a target="_blank" href="https://www.avam.org/">American Visionary Art Museum</a>, Baltimore</li>
<li><a target="_blank" href="https://www.artgallery.umd.edu/">Art Gallery at the University of Maryland</a>, College Park</li>
<li><a target="_blank" href="https://www.artbma.org/"><strong>Baltimore Museum of Art</strong></a></li>
<!-- <a href="scripts/allr.pl?&c=c&search=11069"><font COLOR="#FF0000">Posters from this museum</font></a></li -->
<li><a target="_blank" href="https://www.contemporary.org/">Contemporary Museum</a>, Baltimore</li>
<li><a target="_blank" href="https://www.mdarchives.state.md.us/msa/speccol/sc4600/sc4680/html/intro_peabody.html">Peabody Gallery of Art</a>, Baltimore</li>
<li><a target="_blank" href="https://www.thewalters.org/"><strong>Walters Art Gallery</strong></a>, Baltimore</li>
<li><a target="_blank" href="https://www.wardmuseum.org/">Ward Museum of Wildfowl Art</a>, Salisbury</li>
<li><a target="_blank" href="https://www.washcomuseum.org/">Washington County Museum of Fine Arts</a>, Hagerstown</li>
</ul>
<p><a name="DC"></a></p>
<blockquote>
<p><strong>Washington DC</strong></p>
</blockquote>
<ul>
<li> Dumbarton Oaks Collection</li>
<li> Freer Gallery of Art</li>
<li> National Air and Space Museum</li>
<li> <a target="_blank" href="https://www.nara.gov/">National Archives</a>, 700 Pennsylvania Ave. 202-357-5000
See the US Constitution, Bill of Rights and the Declaration of Independence.
But the Emancipation Proclamation is open to the public just 4 days a year around MLK Holiday Jan. 13-16 Friday-Monday 10 a.m.-5:30 p.m. </li>
<li><a target="_blank" href="https://www.si.edu/organiza/museums/artsack/start.htm">
The Smithsonian Institution: The Freer Gallery of Art and The Arthur M. Sackler Gallery</a></li>
<li><a target="_blank" href="https://www.asia.si.edu/"><strong>Sackler/Freer Galleries</strong></a></li>
<li><a target="_blank" href="https://www.museum.oas.org/">Art Museum of the Americas</a></li>
<li><a target="_blank" href="https://www.corcoran.org/"><strong>Corcoran Gallery of Art</strong></a></li>
<li><a target="_blank" href="https://www.gwu.edu/~dimock/">Dimock Gallery at George Washington University</a></li>
<li><a target="_blank" href="https://www.doaks.org/">Dumbarton Oaks Research Library and Collection</a></li>
<li><a target="_blank" href="https://www.hillwoodmuseum.org/">Hillwood Museum and Gardens</a></li>
<li><a target="_blank" href="https://hirshhorn.si.edu/"><strong>Hirshhorn Museum and Sculpture Garden</strong></a></li>
<li><a target="_blank" href="https://www.howard.edu/library/art@Howard/">Howard University Gallery of Art</a></li>
<li><a target="_blank" href="https://www.kreegermuseum.com/">Kreeger Museum</a></li>
<li><a target="_blank" href="https://www.nga.gov/home.htm"><strong>U.S. National Gallery of Art</strong></a></li>
<!-- <a href="scripts/allr.pl?&c=c&search=11007"><font COLOR="#FF0000">Posters from this museum</font></a></li -->
<li><a target="_blank" href="https://www.nmafa.si.edu/">National Museum of African Art</a></li>
<li><a target="_blank" href="https://americanart.si.edu/"><strong>Smithsonian American Art Museum</strong></a></li>
<li><a target="_blank" href="https://www.nmwa.org/"><strong>National Museum of Women in the Arts</strong></a></li>
<li><a target="_blank" href="https://www.npg.si.edu/"><strong>National Portrait Gallery</strong></a></li>
<li><a target="_blank" href="https://www.aoc.gov/the-national-statuary-hall-collection">National Statuary Hall</a></li>
<li><a target="_blank" href="https://www.phillipscollection.org/"><strong>Phillips Collection</strong></a> 1600 21st Street, NW 20009 Closed Mondays </li>
<!-- <a href="scripts/allr.pl?&c=c&search=11046"><font COLOR="#FF0000">Posters from this museum</font></a></li -->
<li><a target="_blank" href="https://www.si.edu/"><strong>Smithsonian Institution</strong></a></li>
<!-- <a href="scripts/allr.pl?&c=c&search=11791"><font COLOR="#FF0000">Posters from this museum</font></a></li -->
<li><a target="_blank" href="https://www.textilemuseum.org/">Textile Museum</a></li>
<li><a target="_blank" href="https://www.uschs.org/04_history/subs_collection/04b.html">U.S. Capital Art Collection</a></li>
<li><a target="_blank" href="https://www.history.navy.mil/branches/nhcorg6.htm">U.S. Navy Art Collection</a></li>
<li><a target="_blank" href="https://www.ushmm.org/">
US Holocost Memorial Museum</a> 10-5:30 every day, but timed passes are necessary for visiting the permanent exhibit (20 each day from tickets.com for $1.75)</li>
<li type="square"><a target="_blank" href="https://www.whitehouse.gov/">White House</a>, 1900 Pennsylvania Avenue</li>
</ul>
<p><a name="WA"></a></p>
<blockquote>
<p><strong>West Virginia</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.hmoa.org/">Huntington Museum of Art</a></li>
<li><a target="_blank" href="https://members.aol.com/wvmuseumofglass/">West Virginia Museum of American Glass</a>, Weston</li>
</ul>
<p><a name="VA"></a></p>
<blockquote>
<p><strong>Virginia</strong></p>
</blockquote>
<p>Richmond is the capital of Virginia, and the capital of the Confederacy during the Civil War. In 2022 it was the 3rd most dangerous city in the US (2,027/100,000).</p>
<ul>
<li><a target="_blank" href="https://www.pubinfo.vcu.edu/artweb/gallery/">Anderson Gallery at the VCU School for the Arts</a>, Richmond</li>
<li><a target="_blank" href="https://www.artmuseumroanoke.org/">Art Museum of Western Virginia</a>, Roanoke</li>
<li><a target="_blank" href="https://www.umw.edu/belm/">Belmont, The Gari Melchers Estate and Memorial Gallery</a>, Fredericksburg</li>
<li><a target="_blank" href="https://www.chrysler.org/">Chrysler Museum</a>, Norfolk</li>
<li><a target="_blank" href="https://www.hamptonu.edu/museum/">Hampton University Museum</a></li>
<li><a target="_blank" href="https://www.hermitagefoundation.org/">Hermitage Foundation Museum</a>, Norfolk</li>
<li><a target="_blank" href="https://www.lynchburgarts.com/">Lynchburg Fine Arts Center</a></li>
<li><a target="_blank" href="https://maiermuseum.rmwc.edu/">Maier Museum of Art at Randolph-Macon Woman's College</a>, Lynchburg</li>
<li><a target="_blank" href="https://xroads.virginia.edu/~MUSEUM/front.html">Museum for American Studies at the University of Virginia</a>, Charlottesville</li>
<li><a target="_blank" href="https://www.virginia.edu/artmuseum/">University of Virginia Art Museum</a>, Charlottesville</li>
<li><a target="_blank" href="https://www.artgallery.sbc.edu/">Sweet Briar College Art Galleries</a></li>
<li><a target="_blank" href="https://www.richmond.edu/cultural/museums/">University of Richmond Museums</a></li>
<li><a target="_blank" href="https://www.vmfa.state.va.us/">Virginia Museum of Fine Arts</a>, Richmond</li>
<li><a target="_blank" href="https://www.wkrac.org/">William King Regional Arts Center</a>, Abingdon</li>
</ul>
<p><a name="Williamsburg"></a></p>
<h3 id="williamsburg">Williamsburg:</h3>
<ul>
<li><a target="_blank" href="https://www.wm.edu/muscarelle/">Muscarelle Museum of Art at the College of William and Mary</a></li>
<li> Abby Aldrich</li>
<li> Rockefeller Folk Art Collection</li>
<li><a target="_blank" href="https://www.colonialwilliamsburg.org/">Colonial Williamsburg Villege</a> reenacts 18th centry American village</li>
</ul>
<p><a name="NC"></a></p>
<blockquote>
<p><strong>North Carolina</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://ashevilleart.org/">Asheville Art Museum</a></li>
<li><a target="_blank" href="https://www.biltmore.com/our-story/">Biltmore Estate</a>, the largest privately-owned house in America, built by George Vanderbilt, Asheville</li>
<li type="circle">In Asheville, the fanciest McDonald's in America (with a piano and fireplace)</li>
<li><a target="_blank" href="https://www.ackland.org/">Ackland Art Museum at the University of North Carolina</a>, Chapel Hill</li>
<li type="circle">Lantern restaurant, Chapel Hill</li>
<li><a target="_blank" href="https://www.duke.edu/web/duma/">Duke University Museum of Art</a>, Durham</li>
<li><a target="_blank" href="https://www.guilford.edu/original/libraryart/artgallery/Art.html">Guilford College Art Gallery</a>, Greensboro</li>
<li><a target="_blank" href="https://www.hickorymuseumofart.org/">Hickory Museum of Art</a></li>
<li><a target="_blank" href="https://www.mintmuseum.org/">Mint Museum of Art</a>, Charlotte</li>
<li><a target="_blank" href="https://www.ncmoa.org/">North Carolina Museum of Art, Raleigh</a></li>
<!-- <a href="scripts/allr.pl?&c=c&search=11248"><font COLOR="#FF0000">Posters from this museum</font></a></li -->
<li><a target="_blank" href="https://www.camnc.org/">Contemporary Art Museum</a>, Raleigh</li>
<li><a target="_blank" href="https://www.ncsu.edu/gad/">North Carolina State University Gallery of Art and Design</a>, Raleigh</li>
<li><a target="_blank" href="https://www.reynoldahouse.org/">Reynolda House Museum of American Art</a>, Winston-Salem</li>
<li><a target="_blank" href="https://www.secca.org/">Southeastern Center for Contemporary Art (SECCA)</a>, Winston-Salem</li>
<li><a target="_blank" href="https://www.wfu.edu/academics/art/main.htm">Wake Forest University Art Collections</a>, Winston-Salem</li>
</ul>
<p><a name="SC"></a></p>
<blockquote>
<p><strong>South Carolina</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.bjumg.org/">Bob Jones University Museum and Gallery</a>, Greenville</li>
<li><a target="_blank" href="https://www.greenvillemuseum.org/">Greenville County Museum of Art</a></li>
<li><a target="_blank" href="https://www.colmusart.org/">Columbia Museum of Art</a></li>
<li><a target="_blank" href="https://www.museum.state.sc.us/">South Carolina State Museum</a>, Columbia</li>
<li><a target="_blank" href="https://www.gibbesmuseum.org/">Gibbes Museum of Art</a>, Charleston</li>
<li><a target="_blank" href="https://www.brookgreen.org/bridge.html">Huntington Sculpture Garden</a>, Pawleys Island</li>
<li><a target="_blank" href="https://www.spartanburgartmuseum.org/">Spartanburg County Museum of Art</a></li>
<li><a target="_blank" href="https://www.nps.gov/fosu/">Fort Sumter National Monument</a>, Sullivan's Island</li>
<li type="circle">FIG restaurant, Charleston</li>
<li type="circle">Husk restaurant (Southern food), Charleston</li>
</ul>
<p><a name="GA"></a></p>
<blockquote>
<p><strong>Georgia</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.albanymuseum.com/">Albany Museum of Art</a></li>
<li><a target="_blank" href="https://www.boothmuseum.org/">Booth Western Art Museum</a>, Cartersville</li>
<li><a target="_blank" href="https://www.columbusmuseum.com/">Columbus Museum</a></li>
<li><a target="_blank" href="https://www.uga.edu/gamuseum/">Georgia Museum of Art at the University of Georgia</a>, Athens</li>
</ul>
<p><a name="Atlanta"></a></p>
<h3 id="atlanta">Atlanta:</h3>
<ul>
<li><a target="_blank" href="https://carlos.emory.edu/">Carlos Museum at Emory University</a></li>
<li><a target="_blank" href="https://www.worldofcoca-cola.com/">World of Coca Cola</a></li>
<li><a target="_blank" href="https://www.high.org/">High Museum of Art</a></li>
<li><a target="_blank" href="https://museum.oglethorpe.edu/">Oglethorpe University Museum</a>, Atlanta</li>
<li><a target="_blank" href="https://www.jimmycarterlibrary.gov/">Jimmy Carter Presidential Library and Museum</a>, Atlanta</li>
<li type="center" href="https://www.staplehouse.com/staplehouseabout">Staplehouse restaurant (<a target="_blank" href="https://www.toasttab.com/staplehouse-market-541-edgewood-avenue-southeast/v3/">menu</a>)</li>
</ul>
<ul>
<li><a target="_blank" href="https://www.themorris.org/">Morris Museum of Art</a>, Augusta</li>
<li><a target="_blank" href="https://www.telfair.org/">Telfair Museum of Art</a>, Savannah</li>
<li type="circle">The Grey, Savannah</li>
</ul>
<p><a name="FL"></a></p>
<blockquote>
<p><strong> Florida</strong></p>
</blockquote>
<h3 id="st-petersberg-northwest-on-75-up-the-gulf-coast">St. Petersberg Northwest on 75 up the Gulf coast</h3>
<ul>
<li type="square"><a target="_blank" href="https://www.ringling.org/">John and Mable Ringling Museum of Art</a>, Sarasota</li>
<li type="square"> Fort Myers Edison Winter Home</li>
<li><a target="_blank" href="https://www.tampagov.net/dept_Museum/">Tampa Museum of Art</a></li>
<li><a target="_blank" href="https://cam.arts.usf.edu/">University of South Florida Contemporary Art Museum</a>, Tampa</li>
<li type="circle">Bern's Steak House, Tampa</li>
<li><a target="_blank" href="https://floridamuseum.org/">Florida International Museum</a>, St. Petersburg</li>
<li><a target="_blank" href="https://www.fine-arts.org/">Museum of Fine Arts</a>, St. Petersburg</li>
<li><a target="_blank" href="https://salvadordalimuseum.org/">Salvador Dalí Museum</a>, St. Petersburg</li>
<li> Florida State Museum, Gainsville </li>
<li><a target="_blank" href="https://www.harn.ufl.edu/">Harn Museum at the University of Florida</a>, Gainesville</li>
<li><a target="_blank" href="https://www.appletonmuseum.org/">Appleton Museum of Art</a>, Ocala
</li>
<li><a target="_blank" href="https://www.thebrogan.org/">Mary Brogan Museum of Art and Science</a>, Tallahassee</li>
<li><a target="_blank" href="https://www.pensacolamuseumofart.org/">Pensacola Museum of Art</a></li>
<li><a target="_blank" href="https://www.mofa.fsu.edu/">Florida State University Museum of Fine Arts</a>, Tallahassee</li>
<li target="_blank" href="https://www.kennedyspacecenter.com/">NASA Kennedy Center, Merritt Island</li>
</ul>
<h3 id="south-down-the-east-coast">South down the East coast</h3>
<ul>
<li><a target="_blank" href="https://www.cummer.org/">Cummer Museum of Art and Gardens</a>, Jacksonville</li>
<li><a target="_blank" href="https://www.jmoma.org/">Jacksonville Museum of Modern Art</a></li>
<li>St. Augustine?</li>
<li><a target="_blank" href="https://www.ormondartmuseum.org/">Ormond Memorial Art Museum and Gardens</a>, Ormond Beach</li>
<li><a target="_blank" href="https://www.moas.org/">Museum of Arts and Sciences</a>, Daytona Beach</li>
<li><a target="_blank" href="https://www.smponline.org/">Southeast Museum of Photography</a>, Daytona Beach</li>
<li><a target="_blank" href="https://www.rollins.edu/cfam/">Cornell Fine Arts Museum at Rollins College</a>, Winter Park</li>
<li><a target="_blank" href="https://www.morsemuseum.org/">Morse Museum of American Art</a>, Winter Park</li>
<li>Disneyworld EPCOT, Orlando</li>
<li><a target="_blank" href="https://omart.org/">Orlando Museum of Art</a></li>
<li><a target="_blank" href="https://www.artandscience.org/">Brevard Museum of Art and Science</a>, Melbourne</li>
<li><a target="_blank" href="https://www.vbmuseum.org/">Vero Beach Museum of Art</a></li>
<li><a target="_blank" href="https://cartoon.org/">International Museum of Cartoon Art</a>, Boca Raton</li>
<li><a target="_blank" href="https://mods.org/visit/">Museum of Discovery and Science</a>, Fort Lauderdale</li>
<li><a target="_blank" href="https://www.palmbeachica.org/">Palm Beach Institute of Contemporary Art</a>, Lake Worth</li>
<li><a target="_blank" href="https://www.hibel.com/museum.htm">Hibel Museum of Art</a>, Lake Worth</li>
<li><a target="_blank" href="https://www.morikami.org/">Morikami Museum and Japanese Gardens</a>, Delray Beach</li>
<li><a target="_blank" href="https://www.polkmuseumofart.org/">Polk Museum of Art</a>, Lakeland</li>
</ul>
<p><a name="Miami"></a></p>
<h3 id="miami">Miami:</h3>
<ul>
<li><a target="_blank" href="https://www.latinartmuseum.org/">Miami Art Center</a></li>
<li><a target="_blank" href="https://www.miamiartmuseum.org/">Miami Art Museum</a></li>
<li><a target="_blank" href="https://www.mocanomi.org/">Museum of Contemporary Art (MoCA)</a>, North Miami</li>
<li><a target="_blank" href="https://www.fiu.edu/~museum/">Art Museum at Florida International University</a>, Miami</li>
<li><a target="_blank" href="https://www.bassmuseum.org/">Bass Museum of Art</a>, Miami Beach</li>
<li><a target="_blank" href="https://www.vizcayamuseum.org/">Vizcaya Museum and Gardens</a>, Miami</li>
<li><a target="_blank" href="https://www.wolfsonian.fiu.edu/">The Wolfsonian at Florida International University</a>, Miami Beach</li>
<li><a target="_blank" href="https://www.bocamuseum.org/">Boca Raton Museum of Art</a></li>
<li><a target="_blank" href="https://www.norton.org/"><strong>Norton Museum of Art</strong></a>, West Palm Beach</li>
<li><a target="_blank" href="https://www.lowemuseum.com/">Lowe Art Museum at the University of Miami</a>, Coral Gables</li>
<br />
<li><a target="_blank" href="https://www.nps.gov/ever/planyourvisit/svdirections.htm">Shark Valley Observation Tower</a>, E of Miami</li>
<li><a target="_blank" href="https://www.trumanlittlewhitehouse.com/">Harry S. Truman Little White House</a>, Key West</li>
<li><a target="_blank" href="https://www.gulfcoastmuseum.org/">Gulf Coast Museum of Art</a>, Largo (the southern most point in the continental US)</li>
</ul>
<hr />
<p><a name="DownMississippi"></a></p>
<h2 id="down-the-mississippi-river">Down the Mississippi River</h2>
<p>At <a target="_blank" href="https://www.nps.gov/miss/riverfacts.htm" title="US National Park Service">2,300 miles, the Mississippi River is the 4th longest in the world (after Nile, Amazon, Yangtze). It’s part of the largest watershed in the world.<br />
<img alt="us-watershedbg" width="650" src="https://cloud.githubusercontent.com/assets/300046/25560325/ff5f8ab4-2d1e-11e7-9b96-f34d6aa0d902.jpg" /></a>
<br />
<a target="_blank" href="https://www.youtube.com/watch?v=BubAF7KSs64&t=3m2s">VIDEO</a>: “It’s inevitable that the US emerged as a global superpower”: the Missisippi is the longest <strong>navigable</strong> river in the world, enabling inland cities to be oceanic ports serving world markets by boat (10-39X cheaper than by road).<br />
<a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1672416011/usa-mississippi-1920x1080_ipjcqr.jpg"><img alt="usa-mississippi-1920x1080.jpg" width="650" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1672416011/usa-mississippi-1920x1080_ipjcqr.jpg" /></a>
<br /><br />
It takes <a target="_blank" href="https://www.vikingrivercruises.com/cruise-destinations/mississippi/americas-heartland/2023-st-louis-to-st-paul/resources.html">8 days for the “America Heartland” cruise between St. Louis and to St. Paul (waterfalls at the head of the Mississipi):<br />
<img width="377" alt="roadtrip-usa-viking.png" src="https://user-images.githubusercontent.com/300046/90310441-86796580-deae-11ea-8738-2ac6e5bf7669.png" /></a>
<br />
Cruise on a riverboat between New Orleans and Memphis, with stops in the Vicksburg battlegrounds.
on <a target="_blank" href="https://www.vikingrivercruises.com/cruise-destinations/mississippi/heart-of-the-delta/2023-new-orleans-memphis/resources.html">Viking</a> or <a target="_blank" href="https://www.adventure-life.com/cruises/633/american-countess#departures">the “American Countess”</a>.
<br /><br /></p>
<p><a target="_blank" href="https://www.adventure-life.com/mississippi-river/cruises/16107/illinois-river-chicago-to-st-louis#itinerary">Cruise from Chicago to St. Louis</a> down the Illinois River.</p>
<p><a name="IL"></a></p>
<blockquote>
<p><strong> Illinois </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.blockmuseum.northwestern.edu/">Block Museum of Art at Northwestern University</a>, Evanston</li>
<li><a target="_blank" href="https://www.elmhurstartmuseum.org/">Elmhurst Art Museum</a></li>
<li><a target="_blank" href="https://www.art.uiuc.edu/galleries/kam/">Krannert Art Museum</a>, Champaign</li>
<li><a target="_blank" href="https://www.cedarhurst.org/">The Mitchell Museum and Cedarhurst Sculpture Park</a>, Mt. Vernon</li>
<li><a target="_blank" href="https://www.niu.edu/artmuseum/">Northern Illinois University Art Museum</a>, DeKalb</li>
<li><a target="_blank" href="https://www.rockfordartmuseum.org/">Rockford Art Museum</a></li>
<li><a target="_blank" href="https://www.museum.siu.edu/">Southern Illinois University Museum</a>, Carbondale</li>
<li><a target="_blank" href="https://www.eiu.edu/~tarble/">Tarble Arts Center at Eastern Illinois University</a>, Charleston</li>
</ul>
<p><a name="Chicago"></a></p>
<h3 id="chicago">Chicago:</h3>
<p>Chicago had the #20 rate of crime among all cities in the US (1,099/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://mcachicago.org/Home"> Museum of Contemporary Art (MCA)</a>, Chicago</li>
<li><a target="_blank" href="https://www.artic.edu/aic/"><strong>Art Institute of Chicago</strong></a></li>
<li><a target="_blank" href="https://museums.depaul.edu/artwebsite/">DePaul University Museum</a></li>
<li><a target="_blank" href="https://www.dusablemuseum.org/">DuSable Museum of African American History</a></li>
<li><a target="_blank" href="https://darcy.luc.edu/">Martin D'Arcy Museum of Art at Loyola University</a></li>
<li><a target="_blank" href="https://www.mfacmchicago.org/">Mexican Fine Arts Center Museum</a></li>
<li><a target="_blank" href="https://www.mcachicago.org/">Museum of Contemporary Art</a></li>
<li><a target="_blank" href="https://www.mocp.org/">Museum of Contemporary Photography at Columbia College</a></li>
<li><a target="_blank" href="https://www.nvvam.org/">National Vietnam Veterans Art Museum</a></li>
<li><a target="_blank" href="https://oi.uchicago.edu/OI/MUS/OI_Museum.html">Oriental Institute Museum at the University of Chicago</a></li>
<li><a target="_blank" href="https://smartmuseum.uchicago.edu/">Smart Museum of Art at the University of Chicago</a></li>
<li><a target="_blank" href="https://www.uima-art.org/">Ukrainian Institute of Modern Art</a></li>
<li><a target="_blank" href="https://www.obamalibrary.gov/">Barack Obama Presidential Library</a>, Hoffman Estates</li>
<li type="square"><a target="_blank" href="https://www.farnsworthhouse.org/">Farnsworth House (1951)</a>, 14520 River Road, Plano, IL 60545</li>
<br />
<li type="circle">Purple Pig</li>
<li type="circle"><a target="_blank" href="https://www.zahavrestaurant.com/">Zahav</a> [Israeli restaurant]</li>
<li type="circle"><a target="_blank" href="https://www.thedailymeal.com/au-cheval">Au Cheval burgers</a> <a target="_blank" href="https://www.thedailymeal.com/eat/101-best-casual-restaurants-america-2018-gallery/slide-6">[#29]</a></li>
<li type="circle"><a target="_blank" href="https://www.thedailymeal.com/fat-rice">Fat Rice</a>, Chicago <a target="_blank" href="https://www.thedailymeal.com/eat/101-best-casual-restaurants-america-2018-gallery/slide-74">[#58]</a></li>
<li type="circle"><a target="_blank" href="https://www.thedailymeal.com/red-apple-1">Red Apple Buffet</a></li>
<li type="circle"><a target="_blank" href="https://www.alinearestaurant.com/">Alinea</a> (3-star Michelin & rated the Best Restaurant in the US)</li>
</ul>
<p><a name="MO"></a></p>
<blockquote>
<p><strong> Missouri </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.trumanlibrary.org/">
Harry S. Truman Presidential Library and Museum</a>, Independence</li>
<li><a target="_blank" href="https://www.cmc.edu/ashby/">Ashby-Hodge Gallery of American Art</a>, Fayette</li>
<li><a target="_blank" href="https://www.daummuseum.org/">Daum Museum of Contemporary Art</a>, Sedalia</li>
<li><a target="_blank" href="https://www.mham.org/">Margaret Harwell Art Museum</a>, Poplar Bluff</li>
<li><a target="_blank" href="https://museum.research.missouri.edu/">Museum of Art and Archaeology at the University of Missouri</a>, Columbia</li>
<li>Mark Twain Museum, Hanibal</li>
</ul>
<p><a name="KC"></a></p>
<h3 id="kansas-city">Kansas City:</h3>
<ul>
<li><a target="_blank" href="https://www.albrecht-kemper.org/">Albrecht-Kemper Museum of Art</a>, St. Joseph</li>
<li><a target="_blank" href="https://www.kemperart.org/">Kemper Museum of Contemporary Art and Design</a>, Kansas City</li>
<li><a target="_blank" href="https://www.nelson-atkins.org/"><strong>Nelson-Atkins Museum of Art</strong></a>, Kansas City</li>
</ul>
<p><a name="StLouis"></a></p>
<h3 id="st-louis">St. Louis:</h3>
<p>St. Louis had the #1 rate of crime among all cities in the US (2,082/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.contemporarystl.org/">Contemporary Art Museum St. Louis</a></li>
<li><a target="_blank" href="https://kemperartmuseum.wustl.edu/">Mildred Lane Kemper Art Museum at Washington University</a></li>
<li><a target="_blank" href="https://www.laumeier.org/">Laumeier Sculpture Park</a>, </li>
<li><a target="_blank" href="https://www.umsl.edu/~woodcock/">Woodcock Museum</a>, </li>
<li><a target="_blank" href="https://www.pulitzerarts.org/">Pulitzer Foundation for the Arts</a>, </li>
<li><a target="_blank" href="https://www.sheldonconcerthall.org/galleries.asp">Sheldon Art Galleries</a>, </li>
<li><a target="_blank" href="https://www.slam.org/">Saint Louis Art Museum</a></li>
<li><a target="_blank" href="https://sluma.slu.edu/">Saint Louis University Museum of Art</a></li>
</ul>
<p><a name="TN"></a></p>
<blockquote>
<p><strong> Tennessee </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://cass.etsu.edu/museum/">Carroll Reece Museum at East Tennessee State University</a>, Johnson City</li>
<li><a target="_blank" href="https://www.huntermuseum.org/">Hunter Museum of American Art</a>, Chattanooga</li>
<li><a target="_blank" href="https://www.knoxart.org/">Knoxville Museum of Art</a></li>
<li><a target="_blank" href="https://mcclungmuseum.utk.edu/">McClung Museum at the University of Tennesse</a>, Knoxville</li>
<li><a target="_blank" href="https://www.dollywood.com/">Dollywood</a> (amusement park), Pigeon Forge</li>
<li type="circle">The Barn at Blackberry Farm, Walland, Tennessee</li>
</ul>
<p><a name="Nashville"></a></p>
<h3 id="nashville">Nashville:</h3>
<p>Nashville had the #16 rate of crime among all cities in the US (1,138/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.cheekwood.org/art.html">Cheekwood Museum of Art</a>, Nashville</li>
<li><a target="_blank" href="https://www.parthenon.org/">The Parthenon</a>, Nashville</li>
<li><a target="_blank" href="https://www.tnmuseum.org/">Tennessee State Museum</a>, Nashville</li>
<li><a target="_blank" href="https://sitemason.vanderbilt.edu/gallery">Vanderbilt University Fine Arts Gallery</a>, Nashville</li>
</ul>
<p><a name="Memphis"></a></p>
<h3 id="memphis">Memphis:</h3>
<p>Memphis had the #4 rate of crime among all cities in the US (2,003/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.people.memphis.edu/~artmuseum/amhome.html">Art Museum of the University of Memphis</a></li>
<li><a target="_blank" href="https://www.dixon.org/">Dixon Gallery and Gardens</a></li>
<li><a target="_blank" href="https://www.brooksmuseum.org/">Memphis Brooks Museum of Art</a></li>
<li><a target="_blank" href="https://www.memphis.edu/egypt/">University of Memphis Institute of Egyptian Art and Archaeology</a></li>
<li><a target="_blank" href="https://www.graceland.com/">Elvis Prestly's Graceland</a></li>
<li>Sun Records</li>
<li type="circle"><a target="_blank" href="https://www.tripadvisor.com/Restaurant_Review-g55197-d1409484-Reviews-Flight_Restaurant_and_Wine_Bar-Memphis_Tennessee.html">Flight restaurant</a>, Memphis</li>
</ul>
<p><a name="AR"></a></p>
<blockquote>
<p><strong> Arkansas </strong></p>
</blockquote>
<p>Little Rock had the #5 rate of crime among all cities in the US (1,634/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.garvangardens.org/">Anthony Chapel in Garvan Woodland Gardens at U of Arkansas</a></li>
<li><a target="_blank" href="https://crystalbridges.org/"><strong>Crystal Bridges Museum of American Art</strong></a>, Bentonville</li>
<li><a target="_blank" href="https://www.ozarkheritage.org/">Ozark Heritage Arts Center and Museum</a>, Leslie</li>
<li><a target="_blank" href="https://www.uca.edu/cfac/baum/">Baum Gallery of Fine Art at the University of Central Arkansas</a>, Conway</li>
<li><a target="_blank" href="https://www.clintonlibrary.gov/">Clinton Presidential Library and Museum</a>, Little Rock</li>
<li><a target="_blank" href="https://www.arkansasstateparks.com/toltecmounds/">Toltec Mounds</a>, Scott [site]</li>
</ul>
<p><a name="MS"></a></p>
<blockquote>
<p><strong> Mississippi </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.georgeohr.org/">George E. Ohr Arts and Cultural Center</a>, Biloxi</li>
<li><a target="_blank" href="https://www.lrma.org/">Lauren Rogers Museum of Art</a>, Laurel</li>
<li><a target="_blank" href="https://www.msmuseumart.org/">Mississippi Museum of Art</a>, Jackson</li>
<li><a target="_blank" href="https://www.olemiss.edu/depts/classics/museums.html">University Museums at the University of Mississippi</a>, Oxford</li>
<li><a target="_blank" href="https://www.walterandersonmuseum.org/">Walter Anderson Museum of Art</a>, Ocean Springs</li>
</ul>
<p><a name="LA"></a></p>
<blockquote>
<p><strong> Louisiana </strong></p>
</blockquote>
<p><a name="NewOrleans"></a></p>
<p>New Orleans had the #18 rate of crime among all cities in the US (1,121/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.themuseum.org/">Alexandria Museum of Art</a></li>
<li><a target="_blank" href="https://www.cacno.org/">Contemporary Arts Center New Orleans</a></li>
<li><a target="_blank" href="https://lsm.crt.state.la.us/">Louisiana State Museum</a>, New Orleans</li>
<li><a target="_blank" href="https://www.mardigrasworld.com/">Mardi Gras World</a>, New Orleans</li>
<li><a target="_blank" href="https://appl003.lsu.edu/museum/moa.nsf/index/">Louisiana State University Museum of Art</a>, Baton Rouge</li>
<li><a target="_blank" href="https://www.centenary.edu/meadows/">Meadows Museum of Art at Centenary College</a>, Shreveport</li>
<li><a target="_blank" href="https://www.noma.org/">New Orleans Museum of Art</a></li>
<li><a target="_blank" href="https://www.softdisk.com/comp/norton/">R.W. Norton Art Gallery</a>, Shreveport</li>
<li><a target="_blank" href="https://www.ogdenmuseum.org/">Ogden Museum of Southern Art</a>, New Orleans</li>
<li><a target="_blank" href="https://www.crt.state.la.us/dataprojects/archaeology/povertypoint/mound-a.html">Mounds at Poverty Point</a></li>
<li> Delgado Museum of Art</li>
<li> Louisiane State Museum</li>
</ul>
<p><a name="AL"></a></p>
<blockquote>
<p><strong> Alabama </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.hsvmuseum.org/">Huntsville Museum of Art</a></li>
<li><a target="_blank" href="https://www.ARTSbma.org/">Birmingham Museum of Art</a></li>
<li type="circle">Highlands Bar & Grill, Birmingham</li>
<li><a target="_blank" href="https://www.fineartsmuseum.com/">Montgomery Museum of Fine Arts</a></li>
<li type="center">Acre, Auburn</li>
<li><a target="_blank" href="https://www.asama.org/">American Sport Art Museum and Archives</a>, Daphne</li>
<li><a target="_blank" href="https://www.wiregrassmuseumoart.org/">Wiregrass Museum of Art</a>, Dothan</li>
<li><a target="_blank" href="https://www.mobilemuseumofart.com/">Mobile Museum of Art</a></li>
</ul>
<hr />
<p><a name="CattleDrives"></a></p>
<h2 id="northward-on-cattle-drives">Northward on Cattle Drives</h2>
<p>The <a target="_blank" href="https://www.paramountplus.com/shows/1883/">TV series “1883”</a> is about one of the cattle drives that brought Texas back from economic collapse after the end of the Civil War in 1865. The drive went from Fort Worth North toward Montana and Portland. Although a fictional story, the script mentions real locations: <a target="_blank" href="https://www.frontiertimesmagazine.com/blog/doans-store-red-river">Doan’s Store</a> Red River Crossing, established 1878 along the Western Trail to Dodge City, Kansas where trains carried cattle East.</p>
<p><a target="_blank" href="https://user-images.githubusercontent.com/300046/152900517-ff8c03db-325d-4c27-b225-36a50da6ad3b.png"><img alt="museum-us-1883-great-cattle-750x782" src="https://user-images.githubusercontent.com/300046/152900517-ff8c03db-325d-4c27-b225-36a50da6ad3b.png" /></a></p>
<p>In 1881 the Doan’s Cross reached a peak of 301,000 cattle driven by to Kansas shipping points. This was before the “Chisolm Trail”.</p>
<p>In 1884 an annual picnic, celebrating the cattle drives and cowboy tradition, began near Doan’s Store.</p>
<p>In 1885 long cattle drives was eliminated by both the construction of railroads across north Texas and the fencing of the West using newly invented barbed wire.</p>
<p>The <a target="_blank" href="https://www.wikiwand.com/en/Lonesome_Dove_(miniseries)">TV series “Lonesome Dove”</a>, is set in late 1870s. Just like the “1883” TV series, it is also about cowboys seeking to drive cattle North to settle along Montana’s Yellowstone River. Several other movies have characters doing the same.</p>
<p><a name="PanAm"></a></p>
<h2 id="journey-down-the-pan-american-highway">Journey down the Pan American Highway</h2>
<p><a target="_blank" href="https://www.wikiwand.com/en/Pan-American_Highway"><img align="right" width="200" src="https://upload.wikimedia.org/wikipedia/commons/f/f3/Pan-american-hwy-north-1.jpg" /></a>
<a target="_blank" href="https://www.youtube.com/watch?v=oS7cKjBjQCQ">VIDEO</a>:
The longest road in the world is the 30,000 km (19,000 miles) of the Pan American Highway.</p>
<p>It starts from the North in Prudhoe Bay, Alaska through Fairbanks, into Canada’s Whitehorse, Edmonton, Calgary.
It crosses into the United States down highway 15 and 87 into Billings, Montana.
Then down 90, 25, into Denver.
285 into Albuquerque, New Mexico.
40 and 285 to Roswell, then 385 to Browfield. 87 to Eden. 83 to Junction. 10 to San Antonio and 85 to Loredo, Texas.
285 into Mexico to Monterrey and Mexico City.</p>
<p>Except for a break flying over the swamps of the Darian Gap between two continents at Yaviza, Panama and Turbo, Antioquia, Colombia,
the <em>Vía Panam or Vía Panamericana</em> goes all the way down to Tierra del Fuego, Chile.</p>
<p><a target="_blank" href="https://www.wikiwand.com/en/Pan-American_Highway"><img align="right" width="200" src="https://www.wikiwand.com/en/Pan-American_Highway#Media/File:PanAmericanHwy.png" /></a></p>
<p><a name="Westward"></a></p>
<h2 id="westward-on-land">Westward on land</h2>
<p>“Go West, young Man, and grow up with the country!” is the advice widely <a target="_blank" href="https://blog.newspapers.library.in.gov/go-west-young-man-the-mystery-behind-the-famous-phrase/">(but wrongly)</a> attributed to New York Tribune Publisher Horace Greeley, who visited the West only once.</p>
<p><a name="PonyExpress"></a></p>
<h3 id="the-pony-express">The Pony Express</h3>
<p><a target="_blank" href="https://en.wikipedia.org/wiki/Pony_Express#Pony_Express_route">
80 Pony Express riders</a> (who include <a target="_blank" href="https://en.wikipedia.org/wiki/Calamity_Jane">Calamity Jane</a>) traveled day and night to deliver mail from St. Joseph, Missouri on the Missouri River to San Francisco, California in only 10 days rather than the previous 24 days. They carried news of the volatile time leading up to the Civil War.</p>
<p><a target="_blank" href="https://cloud.githubusercontent.com/assets/300046/14632396/b725f60a-05d5-11e6-8b45-7babd7649ae8.jpg">
<img alt="map of Pony Express route" src="https://cloud.githubusercontent.com/assets/300046/14632487/35bdb3e0-05d6-11e6-9e8f-3293fe2ffa5b.jpg" width="649" height="221" /></a><br />
<em>Photo source: <a target="_blank" href="https://commons.wikimedia.org/w/index.php?curid=10111804">Wikimedia</a>.</em></p>
<p>The riders can run at full gallop along their 1,900-mile (3,100 km) route because they switch horses waiting at each of 184 stations, each about 10-15 miles apart.</p>
<p>But their service lasted for less than 2 years – from April 3, 1860 to October 24, 1861 – due to the availability of the electric telegraph along railroads.</p>
<p><a id="WestwardVermont"></a></p>
<h2 id="westward-from-vermont-to-kentucky">Westward from Vermont to Kentucky</h2>
<p><a name="VT"></a></p>
<blockquote>
<p><strong> Vermont</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.benningtonmuseum.org/">Bennington Museum</a></li>
<li><a target="_blank" href="https://www.brattleboromuseum.org/">Brattleboro Museum and Art Center</a></li>
<li><a target="_blank" href="https://www.uvm.edu/~fleming/">Fleming Museum at the University of Vermont</a>, Burlington</li>
<li><a target="_blank" href="https://www.middlebury.edu/arts/museum/">Middlebury College Museum of Art</a></li>
<li><a target="_blank" href="https://www.normanrockwellvt.com/"><strong>Norman Rockwell Museum</strong></a>, Rutland Town</li>
<li><a target="_blank" href="https://www.stjathenaeum.org/"> St. Johnsbury Athenaeum</a></li>
<li><a target="_blank" href="https://www.shelburnemuseum.org/">Shelburne Museum</a></li>
<li><a target="_blank" href="https://ArkEncounter.com/">Ark Encounter</a>, Williamstown</li>
</ul>
<p><a name="NY-Upstate"></a></p>
<blockquote>
<p><strong>Upstate New York</strong></p>
</blockquote>
<h3 id="albanyrochester">Albany/Rochester:</h3>
<ul>
<li><a target="_blank" href="https://www.albanyinstitute.org/">Albany Institute of History and Art</a></li>
<li><a target="_blank" href="https://www.niagara.edu/cam/">Castellani Art Museum at Niagara University</a>, Niagara Falls</li>
<li><a target="_blank" href="https://www.eastmanhouse.org/">George Eastman House International Museum of Photography and Film</a>, Rochester</li>
<li><a target="_blank" href="https://mag.rochester.edu/">Memorial Art Gallery at the University of Rochester</a></li>
<li><a target="_blank" href="https://www.strongmuseum.org/">Strong Museum</a>, Rochester</li>
<li><a target="_blank" href="https://www.albany.edu/museum/">University Art Museum</a>, Albany</li>
</ul>
<h3 id="adirondacks">Adirondacks</h3>
<ul>
<li><a target="_blank" href="https://www.adkmuseum.org/">The Adirondack Museum</a>, Blue Mountain Lake</li>
<li><a target="_blank" href="https://www.ammi.org/">American Museum of the Moving Image</a>, Astoria</li>
<li><a target="_blank" href="https://www.clag.org/">Canajoharie Library and Art Gallery</a></li>
<li><a target="_blank" href="https://www.cmog.org/">Corning Museum of Glass</a>, Corning</li>
<li><a target="_blank" href="https://www.diabeacon.org/">Dia: Beacon</a>, Beacon City</li>
<li><a target="_blank" href="https://www.newpaltz.edu/museum/">Samuel Dorsky Museum of Art at SUNY New Paltz</a></li>
<li><a target="_blank" href="https://www.hamilton.edu/college/emerson_gallery/">Emerson Gallery at Hamilton College</a>, Clinton</li>
<li><a target="_blank" href="https://www.everson.org/">Everson Museum of Art</a>, Syracuse</li>
<li><a target="_blank" href="https://www.fenimoreartmuseum.org/">Fenimore Art Museum</a>, Cooperstown</li>
<li><a target="_blank" href="https://www.fredericremington.org/">Frederic Remington Art Museum</a>, Ogdensburg</li>
<li><a target="_blank" href="https://www.gcv.org/">Genesee Country Village and Museum</a>, Mumford</li>
<li><a target="_blank" href="https://thehamptons.com/guild_hall/">Guild Hall</a>, East Hampton</li>
<li><a target="_blank" href="https://www.hammondmuseum.org/">Hammond Museum and Japanese Stroll Garden</a>, North Salem</li>
<li><a target="_blank" href="https://www.Heckscher.org/">Heckscher Museum of Art</a>, Huntington</li>
<li><a target="_blank" href="https://www.hofstra.edu/COM/Museum/index_Museum.cfm">Hofstra University Museum</a>, Hempstead</li>
<li><a target="_blank" href="https://www.hrm.org/">Hudson River Museum</a>, Yonkers</li>
<li><a target="_blank" href="https://www.hydecollection.org/">Hyde Collection Art Museum</a>, Glens Falls</li>
<li><a target="_blank" href="https://www.noguchi.org/">Isamu Noguchi Garden Museum</a>, Long Island City</li>
<li><a target="_blank" href="https://www.islipartmuseum.org/">Islip Art Museum</a>, East Islip</li>
<li><a target="_blank" href="https://www.museum.cornell.edu/">Johnson Museum of Art at Cornell University</a>, Ithaca</li>
<li><a target="_blank" href="https://www.katonah-museum.org/">Katonah Museum of Art</a></li>
<li><a target="_blank" href="https://fllac.vassar.edu/">Loeb Art Center at Vassar College</a>, Poughkeepsie</li>
<li><a target="_blank" href="https://www.longislandmuseum.org/">Long Island Museum of American Art, History and Carriages</a>, Stony Brook</li>
<li><a target="_blank" href="https://www.morrisville.edu/pages/library/">Morrisville College Library</a></li>
<li><a target="_blank" href="https://www.nassaumuseum.com/">Nassau County Museum of Art</a>, Roslyn Harbor</li>
<li><a target="_blasincnk" href="https://www.neuberger.org/">Neuberger Museum of Art at Purchase College</a>, Purchase</li>
<li><a target="_blank" href="https://www.nysm.nysed.gov/">New York State Museum</a>, Albany</li>
<li><a target="_blank" href="https://www.newingtoncropsey.com/">Newington-Cropsey Foundation</a>, Hastings on Hudson</li>
<li><a target="_blank" href="https://www.nycmediaarts.org/">NY Center for Media Arts</a>, Long Island City</li>
<li><a target="_blank" href="https://thehamptons.com/museum/">Parrish Art Museum</a>, Southampton</li>
<li><a target="_blank" href="https://picker.colgate.edu/">Picker Art Gallery at Colgate University</a>, Hamilton</li>
<li><a target="_blank" href="https://clubs.plattsburgh.edu/museum/">Plattsburgh State University Art Museum</a></li>
<li><a target="_blank" href="https://www.ps1.org/">P.S. 1 Museum</a>, Long Island City</li>
<li><a target="_blank" href="https://www.stny.com/rockwellmuseum/">Rockwell Museum</a>, Corning</li>
<li><a target="_blank" href="https://ceramicsmuseum.alfred.edu/">Schein-Joseph International Museum of Ceramic Art</a>, Alfred</li>
<li><a target="_blank" href="https://www.skidmore.edu/academics/art/">The Schick Art Gallery and The Tang Museum at Skidmore College</a>, Saratoga Springs</li>
<li><a target="_blank" href="https://www.shakermuseumandlibrary.org/">Shaker Museum and Library</a>, Old Chatham</li>
<li><a target="_blank" href="https://www.stormkingartcenter.org/">Storm King Art Center</a>, Mountainville</li>
<li><a target="_blank" href="https://sumweb.syr.edu/suart/">Syracuse University Art Collection</a></li>
</ul>
<p><a name="Buffalo"></a></p>
<h3 id="buffalo">Buffalo:</h3>
<ul>
<li><a target="_blank" href="https://www.albrightknox.org/">Albright-Knox Art Gallery</a>, Buffalo</li>
<li><a target="_blank" href="https://www.artgallery.buffalo.edu/">State University at Buffalo Art Gallery</a></li>
<li><a target="_blank" href="https://www.burchfield-penney.org/">The Burchfield Penney Art Center</a>, Buffalo</li>
</ul>
<p><a name="MI"></a></p>
<blockquote>
<p><strong> Michigan </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.thehenryford.org/">Henry Ford Museum</a></li>
<li><a target="_blank" href="https://www.thehenryford.org/visit/greenfield-village">Greenfield village</a></li>
<li><a target="_blank" href="https://cranbrook.art.museum/">Cranbrook Art Museum</a>, Bloomfield Hills</li>
<li><a target="_blank" href="https://www.dennosmuseum.org/">Dennos Museum Center</a>, Traverse City</li>
<li><a target="_blank" href="https://www.flintarts.org/">Flint Institute of Arts</a></li>
<li><a target="_blank" href="https://www.gramonline.org/">Grand Rapids Art Museum</a></li>
<li><a target="_blank" href="https://www.umich.edu/~kelseydb/">Kelsey Museum of Archaeology at the University of Michigan</a>, Ann Arbor</li>
<li><a target="_blank" href="https://artmuseum.msu.edu/">Kresge Art Museum at Michigan State University</a>, East Lansing</li>
<li><a target="_blank" href="https://www.muskegonartmuseum.org/">Muskegon Museum of Art</a></li>
<li><a target="_blank" href="https://www.saginawartmuseum.org/">Saginaw Art Museum</a></li>
<li><a target="_blank" href="https://www.shianet.org/~sac/sac.htm">Shiawassee Arts Center</a>, Owosso</li>
<li><a target="_blank" href="https://www.umma.umich.edu/">University of Michigan Museum of Art</a>, Ann Arbor</li>
<li><a target="_blank" href="https://www.uica.org/">Urban Institute for Contemporary Arts</a>, Grand Rapids</li>
<li><a target="_blank" href="https://www.fordlibrarymuseum.gov/">Gerald R. Ford Presidential Library</a>, Ann Arbor</li>
</ul>
<h3 id="detroit">Detroit</h3>
<p>Detroit had the #2 rate of crime among all cities in the US (2,057/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.dia.org/">Detroit Institute of Art</strong></a></li>
<li><a target="_blank" href="https://www.diamondial.org/">Detroit Institute of Arts Image Database</a></li>
<li type="circle"><a target="_blank" href="https://www.thedailymeal.com/lafayette-coney-islandt">Lafayette vs. American Coney Island</a> hot dogs <a target="_blank" href="https://www.thedailymeal.com/eat/101-best-casual-restaurants-america-2018-gallery/slide-6">[#97]</a></li>
</ul>
<p><a name="OH"></a></p>
<blockquote>
<p><strong> Ohio </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.toledomuseum.org/"> Toledo Museum of Art</a></li>
<li type="center"><a target="_blank" href="https://www.opentable.com/table-128-bistro-and-bar">Table 128 Bistro</a>, Toledo</li>
</ul>
<p><a name="Cincinnati"></a></p>
<h3 id="cincinnati">Cincinnati:</h3>
<ul>
<li><a target="_blank" href="https://www.cincinnatiartmuseum.org/"> Cincinnati Art Museum</a></li>
<li><a target="_blank" href="https://www.cincymuseum.org/union-terminal"> Museum Center of Union Terminal</a></li>
<li>American Neon Sign Museum</a></li>
<li><a target="_blank" href="https://www.creationmuseum.org/">Creation Museum</a> (is closest to the Cincinnati airport)</li>
<li><a target="_blank" href="https://arkencounter.com//">Ark Encounter</a> (44 miles South in Kentucky from the Creation Museum)</li>
</ul>
<p><a name="Cleveland"></a></p>
<h3 id="cleveland">Cleveland:</h3>
<p>Cleveland had the #8 rate of crime among all cities in the US (1,557/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.rockhall.com/"> Rock and Roll Hall of Fame</a> by the Lake Erie shore</li>
<li><a target="_blank" href="https://www.clevelandart.org/"> Cleveland Museum of Art</a></li>
</ul>
<p><a name="IN"></a></p>
<blockquote>
<p><strong> Indiana </strong></p>
</blockquote>
<p><a name="Cleveland"></a></p>
<h3 id="indianapolis">Indianapolis:</h3>
<ul>
<li>Indianapolis Children's Museum</li>
<li><a target="_blank" href="https://www.eiteljorg.org/">Eiteljorg Museum of American Indians and Western Art</a></li>
<li><a target="_blank" href="https://www.herron.iupui.edu/new_web/galleries/herron_gallery.html">Herron School of Art Gallery</a></li>
<li><a target="_blank" href="https://www.state.in.us/ism/">Indiana State Museum</a></li>
<li><a target="_blank" href="https://www.ima-art.org/">Indianapolis Museum of Art</a></li>
<li><a target="_blank" href="https://www.namos.iupui.edu/">National Art Museum of Sport at Indiana University</a>, Indianapolis</li>
<li><a target="_blank" href="https://www.richmondartmuseum.org/">Richmond Art Museum</a></li>
<li type="center">Alewife restaurant, Richmond</li>
<li><a target="_blank" href="https://www.indplsartcenter.org/">Indianapolis Art Center</a></li>
<li> Indianapolis Museum of Art</li>
</ul>
<ul>
<li><a target="_blank" href="https://www.bsu.edu/artmuseum/general.asp">Ball State University Museum of Art</a>, Muncie</li>
<li><a target="_blank" href="https://www.valpo.edu/brauer-museum-of-art/">Brauer Museum of Art at Valparaiso University</a></li>
<li><a target="_blank" href="https://www.emuseum.org/">Evansville Museum of Arts and Science</a></li>
<li><a target="_blank" href="https://www.fwmoa.org/">Fort Wayne Museum of Art</a></li>
<li><a target="_blank" href="https://www.glmart.org/">Greater Lafayette Museum of Art</a></li>
<li><a target="_blank" href="https://www.eastern.k12.in.us/gpl/greentownglassmuseum.htm">Greentown Glass Museum</a></li>
<li><a target="_blank" href="https://www.indiana.edu/~iuam/">Indiana University Art Museum</a>, Bloomington</li>
<li><a target="_blank" href="https://www.nd.edu/~sniteart/">Snite Museum of Art at the University of Notre Dame</a>, South Bend</li>
<li><a target="_blank" href="https://www.swope.org/">Swope Art Museum</a>, Terre Haute</li>
<li><a target="_blank" href="https://web.indstate.edu/turman/">Turman Gallery at Indiana State University</a>, Terre Haute</li>
</ul>
<p><a name="KY"></a></p>
<blockquote>
<p><strong> Kentucky </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.imh.org/imh/imhmain.html">International Museum of the Horse</a>, Lexington</li>
<li><a target="_blank" href="https://www.kentuckycrafts.org/">Kentucky Art and Craft Foundation</a>, Louisville</li>
<li><a target="_blank" href="https://www.wku.edu/Library/museum/">Kentucky Museum at Western Kentucky University</a>, Bowling Green</li>
<li><a target="_blank" href="https://www.speedmuseum.org/">Speed Art Museum</a>, Louisville</li>
<li><a target="_blank" href="https://www.uky.edu/ArtMuseum/">University of Kentucky Art Museum</a>, Lexington</li>
<li><a target="_blank" href="https://www.nps.gov/maca/">Mammoth Cave National Park</a></li>
</ul>
<hr />
<p><a name="DownWestCoast"></a></p>
<h2 id="down-the-pacific-west-coast">Down the Pacific West Coast</h2>
<ul>
<li><a target="_blank" href="https://www.amtrak.com/coast-starlight-train">The Coast Starlight line on Amtrak</a> has coastal portions between Seattle and Portland, and along the middle of California.</li>
</ul>
<p><a name="AK"></a></p>
<blockquote>
<p><strong>Alaska</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.alaskamuseum.org/">Alaska State Museum</a>,
Juneau</li>
<li><a target="_blank" href="https://www.anchoragemuseum.org/">Anchorage Museum of History and Art</a></li>
<li><a target="_blank" href="https://www.uaf.edu/museum/">University of Alaska Museum</a>, Fairbanks</li>
</ul>
<p>NOTE: Driving from Alaska to Washington state requires travel through Canada.</p>
<p><a name="WA"></a></p>
<blockquote>
<p><strong>Washington</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.tacomaartmuseum.org/">Tacoma Art Museum</a></li>
<li><a target="_blank" href="https://www.maryhillmuseum.org/">Maryhill Museum of Art</a>, Goldendale</li>
<li><a target="_blank" href="https://www.museumofnwart.org/">Museum of Northwest Art</a>, La Conner</li>
</ul>
<p><a name="Spokane"></a></p>
<h3 id="spokane">Spokane:</h3>
<ul>
<li><a target="_blank" href="https://www.northwestmuseum.org/">Northwest Museum of Arts and Culture</a></li>
<li><a target="_blank" href="https://www.gonzaga.edu/Campus-Resources/Museums-and-Libraries/Jundt-Art-Museum/">
Jundt Art Center and Museum at Gonzaga University</a></li>
</ul>
<p><a name="Seattle"></a></p>
<h3 id="seattle">Seattle:</h3>
<ul>
<li><a target="_blank" href="https://www.cocaseattle.org/">Center on Contemporary Art</a></li>
<li><a target="_blank" href="https://www.henryart.org/">Henry Art Gallery at the University of Washington</a></li>
<li><a target="_blank" href="https://www.seattleartmuseum.org/">Seattle Art Museum</a></li>
<li><a target="_blank" href="https://www.wingluke.org/">Wing Luke Asian Museum</a></li>
<li><a target="_blank" href="https://empmuseum.org/">EAP Museum (Music Project rock 'n' roll museum)</a></li>
</ul>
<ul>
<li><a target="_blank" href="https://www.bellevueart.org/">Bellevue Art Museum</a></li>
</ul>
<p><a name="OR"></a></p>
<blockquote>
<p><strong>Oregon</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.coosart.org/">Coos Art Museum</a>, Coos Bay</li>
<li><a target="_blank" href="https://www.caclbca.org/">Corvallis Arts Center</a></li>
<li><a target="_blank" href="https://www.willamette.edu/museum_of_art/">Hallie Ford Museum of Art at Willamette University</a>, Salem</li>
<li><a target="_blank" href="https://www.pam.org/">Portland Art Museum</a></li>
<li><a target="_blank" href="https://www.pica.org/">Portland Institute for Contemporary Art</a></li>
<li type="circle">Le Pigeon (Le Pigeon burger), Portland</li>
<li><a target="_blank" href="https://www.sou.edu/sma/">Schneider Museum of Art at Southern Oregon University</a>, Ashland</li>
<li><a target="_blank" href="https://uoma.uoregon.edu/">University of Oregon Museum of Art</a>, Eugene </li>
</ul>
<p> </p>
<p><a name="CA"></a></p>
<blockquote>
<p><strong>California</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.crockerartmuseum.org/">Crocker Art Museum</a>, Sacramento</li>
<li type="center">The Kitchen Restaurant, Sacramento</li>
<li><a target="_blank" href="https://www.hagginmuseum.org/">Stockton - Haggin Museum</a></li>
<li><a target="_blank" href="https://www.svma.org/">Sonoma Valley Museum of Art</a>, Sonoma</li>
<li><a target="_blank" href="https://www.sonoma.edu/ArtGallery/default.html">Sonoma State University Art Gallery</a>, Rohnert Park</li>
<li><a target="_blank" href="https://www.dirosapreserve.org/">di Rosa Preserve</a>, Napa</li>
</ul>
<p><a name="SF"></a></p>
<h3 id="san-francisco-bay">San Francisco Bay:</h3>
<ul>
<li><a target="_blank" href="https://www.yerbabuenaarts.org/">Yerba Buena Center for the Arts</a>, San Francisco</li>
<li><a target="_blank" href="https://www.sfmoma.org">San Francisco Museum of Modern Art</a></li>
<li><a target="_blank" href="https://www.asianart.org/">Asian Art Museum of San Francisco</a></li>
<li><a target="_blank" href="https://www.sfsu.edu/~gallery/">San Francisco State University Fine Arts Gallery</a></li>
<li><a target="_blank" href="https://www.usfca.edu/library/thacher/">Thacher Gallery at the University of San Francisco</a></li>
<li> California Academy of Science</li>
<li><a target="_blank" href="https://www.famsf.org/legion/">California Museum of the Legion Of Honor</a></li>
<li><a target="_blank" href="https://www.sfmoma.org/">San Francisco Museum of Modern Art</a></li>
<li><a target="_blank" href="https://www.famsf.org/">M H de Young Museum</a>, San Francisco </li>
<li><a target="_blank" href="https://www.friendsofphotography.org/">Friends of Photography/Ansel Adams Center</a>, San Francisco</li>
<li><a target="_blank" href="https://www.jmsf.org/">The Jewish Museum</a>, San Francisco</a></li>
<li><a target="_blank" href="https://www.mocfa.org/">Museum of Craft and Folk Art</a> </li>
<li><a target="_blank" href="https://www.cablecarmuseum.org/">Cable Car Museum</a> </li>
<li>Alcatraz island [ferry]</li>
</ul>
<ul>
<li><a target="_blank" href="https://www.stmarys-ca.edu/arts/art_gallery/">Art Museum at Saint Mary's College</a>, Moraga</li>
<li><a target="_blank" href="https://www.museumca.org/">Oakland Museum of California</a></li>
<li><a target="_blank" href="https://www.judahmagnesmuseum.org/">Judah L. Magnes Museum</a>, Berkeley</li>
<li><a target="_blank" href="https://www.bampfa.berkeley.edu/">Berkeley Art Museum + Pacific Film Archive at U.C. Berkeley</a></li>
</ul>
<p><a name="SanJose"></a></p>
<h3 id="san-jose">San Jose:</h3>
<ul>
<li><a target="_blank" href="https://www.sjmusart.org/">San Jose Museum of Art</a></li>
<li><a target="_blank" href="https://www.scu.edu/SCU/Departments/deSaisset/">de Saisset Museum at Santa Clara University</a></li>
<li><a target="_blank" href="https://www.stanford.edu/dept/SUMA/">Cantor Center for Visual Arts at Stanford University</a></li>
<li><a target="_blank" href="https://www.stanford.edu/~mjpeters/png/">New Guinea Sculpture Garden at Stanford University</a></li>
<li><a target="_blank" href="https://www.art-tech.org/">Art-Tech (Silicon Valley Institute for Art and Technology)</a></li>
<li><a target="_blank" href="https://www.santacruzmah.org/">Museum Of Art And History</a>, Santa Cruz</li>
<li><a target="_blank" href="https://www.egyptianmuseum.org/">Rosicrucian Egyptian Museum</a></li>
<li><a target="_blank" href="https://www.tritonmuseum.org/">Triton Museum of Art</a>, Santa Clara</li>
<li><a target="_blank" href="https://www.stowitts.org/">Hubert Julian Stowitts Museum and Library</a>, Pacific Grove</li>
<li><a target="_blank" href="https://www.montereyart.org/">Monterey Museum of Art</a></li>
</ul>
<p><a name="SantaBarbara"></a></p>
<h3 id="santa-barbara-central-coast">Santa Barbara (Central Coast):</h3>
<ul>
<li><a target="_blank" href="https://hearstcastle.org/">Hearst Castle</a>, San Simeon</li>
<li><a target="_blank" href="https://www.oma-online.org/">Oceanside Museum of Art</a></li>
<li><a target="_blank" href="https://www.uam.ucsb.edu/">Art Museum at U.C. Santa Barbara</a></li>
<li><a target="_blank" href="https://www.sbmuseart.org/">Santa Barbara Museum of Art</a></li>
<li><a target="_blank" href="https://www.wildlingmuseum.org/">Wildling Art Museum</a>, Los Olivos</li>
<li><a target="_blank" href="https://www.artcenter.org/">California Center for the Arts</a>, Escondido</li>
<li><a target="_blank" href="https://www.vcnet.com/carnart/">Carnegie Art Museum</a>, Oxnard</li>
<li><a target="_blank" href="https://www.shermanleeinstitute.org/">Lee Institute for Japanese Art</a>, Hanford</li>
<li><a target="_blank" href="https://www.vcmha.org/">Ventura County Museum of History and Art</a>, Ventura</li>
</ul>
<p><a name="WLA"></a></p>
<h3 id="west-side-los-angeles">West Side, Los Angeles:</h3>
<ul>
<li><a target="_blank" href="https://www.getty.edu/museum/"><strong>J. Paul Getty Museum</strong></a>, Malibu</li>
<li><a target="_blank" href="https://www.smmoa.org/">Santa Monica Museum of Art</a></li>
<li><a target="_blank" href="https://www.fowler.ucla.edu/incEngine/">UCLA Fowler Museum of Cultural History</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.hammer.ucla.edu/">Armand Hammer Museum of Art at UCLA</a>, Los Angeles</li>
</ul>
<ul>
<li><a target="_blank" href="https://www.mtr.org/">Museum of Television and Radio</a>, Beverly Hills</li>
<li><a target="_blank" href="https://www.skirball.org/">Skirball Cultural Center</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.lacma.org/">Los Angeles County Museum of Art</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.caam.ca.gov/">California African-American Museum</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.moca-la.org/">Museum of Contemporary Art</a></li>
</ul>
<p><a name="LA"></a></p>
<h3 id="downtown-los-angeles">Downtown Los Angeles:</h3>
<ul>
<li><a target="_blank" href="https://www.corita.org/">Corita [Kent] Art Center</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.neonmona.org/">Museum of Neon Art</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.kamuseum.org/">Korean American Museum</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.usc.edu/org/fishergallery/">Fisher Gallery at the University of Southern California</a>, Los Angeles</li>
<li><a target="_blank" href="https://www.thebroad.org/">The Broad</a>, then <a target="_blank" href="https://otiumla.com/menus/">Otium restaurant</a>, downtown Los Angeles</li>
<li><a target="_blank" href="https://southwestmuseum.org/">Southwest Museum</a>, Los Angeles</li>
</ul>
<p><a name="WLA"></a></p>
<h3 id="east-los-angeles">East Los Angeles:</h3>
<ul>
<li><a target="_blank" href="https://www.autry-museum.org/">Autry Museum of Western Heritage</a></li>
<li><a target="_blank" href="https://www.reagan.utexas.edu/">Ronald Reagan Presidential Library and Museum</a>, Simi Valley</li>
<li><a target="_blank" href="https://www.huntington.org/">Huntington Library</a>, San Marino</li>
<li><a target="_blank" href="https://www.nortonsimon.org/">Norton Simon Museum</a>, Pasadena</li>
<li><a target="_blank" href="https://www.pacificasiamuseum.org/">Pacific Asia Museum</a>, Pasadena</li>
</ul>
<h3 id="south-bay-long-beach">South Bay, Long Beach:</h3>
<ul>
<li><a target="_blank" href="https://www.molaa.com/">Museum of Latin American Art</a>, Long Beach</li>
<li><a target="_blank" href="https://www.lbma.org/">Long Beach Museum of Art</a></li>
<li><a target="_blank" href="https://www.csulb.edu/~uam/">California State University Art Museum</a>, Long Beach</li>
<li><a target="_blank" href="https://www.csulb.edu/library/arts/">California State University Library</a>, Long Beach</li>
</ul>
<p><a name="OC"></a></p>
<h3 id="orange-county">Orange County:</h3>
<ul>
<li><a target="_blank" href="https://www.nixonlibrary.gov/">Richard Nixon Presidential Library and Museum</a>, Yorba Linda</li>
<li><a target="_blank" href="https://www.ci.fullerton.ca.us/museum/">Fullerton Museum Center</a></li>
<li><a target="_blank" href="https://disneyland.disney.go.com/">Disneyland</a>, Anaheim</li>
<li><a target="_blank" href="https://www.bowers.org/">Bowers Museum of Cultural Art</a>, Santa Ana</li>
<li><a target="_blank" href="https://www.irvinemuseum.org/">Irvine Museum</a></li>
<li><a target="_blank" href="https://www.ocma.net/">Orange County Museum of Art</a>, Newport Beach</li>
<li><a target="_blank" href="https://www.lagunaartmuseum.org/">Laguna Art Museum</a>, Laguna Beach</li>
</ul>
<h3 id="inland-empire">Inland Empire:</h3>
<ul>
<li><a target="_blank" href="https://www.scrippscollege.edu/dept/gallery/">Ruth Chandler Williamson Gallery at Scripps College</a>, Claremont</li>
<li><a target="_blank" href="https://www.pomona.edu/museum/">Pomona College Museum of Art</a>, Claremont</li>
<li><a target="_blank" href="https://www.lamoa.net/">Latino Art Museum</a>, Pomona</li>
<li><a target="_blank" href="https://historicalglassmuseum.com/">Historical Glass Museum</a>, Redlands</li>
<li><a target="_blank" href="https://cmp1.ucr.edu/">California Museum of Photography at U.C. Riverside</a></li>
<li><a target="_blank" href="https://sweeney.ucr.edu/">Sweeney Art Gallery at U.C. Riverside</a></li>
<li><a target="_blank" href="https://www.riversideartmuseum.org/">Riverside Art Museum</a></li>
<li><a target="_blank" href="https://www.bmoa.org/">Bakersfield Museum of Art</a></li>
<li><a target="_blank" href="https://www.psmuseum.org/">Palm Springs Desert Museum</a></li>
</ul>
<p><a name="SanDiego"></a></p>
<h3 id="san-diego">San Diego:</h3>
<ul>
<li><a target="_blank" href="https://www.mopa.org/">Museum of Photographic Arts</a></li>
<li><a target="_blank" href="https://www.mingei.org/">Mingei International Museum of Folk Art</a></li>
<li><a target="_blank" href="https://www.timkenmuseum.org/">Timken Museum of Art</a>, San Diego</li>
<li><a target="_blank" href="https://www.mcasd.org/">Museum of Contemporary Art</a></li>
<li><a target="_blank" href="https://www.sandiego-art.org/">San Diego Art Institute</a></li>
<li><a target="_blank" href="https://stuartcollection.ucsd.edu/">Stuart Collection of Sculpture at U.C. San Diego</a></li>
<li><a target="_blank" href="https://www.sdmart.org/">San Diego Museum Of Art</a></li>
<li type="circle"><a target="_blank" href="https://www.opentable.com/addison-restaurant">Addison (restaurant)</a>, Del Mar, San Diego</li>
</ul>
<p><a name="HI"></a></p>
<blockquote>
<p><strong> Hawaii </strong></p>
</blockquote>
<p>Honolulu and Hawaii as a whole had the lowest crime rate among all US cities and states.</p>
<ul>
<li><a target="_blank" href="https://www.tcmhi.org/">Contemporary Museum</a>, Honolulu</li>
<li><a target="_blank" href="https://www.honoluluacademy.org/">Honolulu Academy of Arts</a></li>
<li><a target="_blank" href="https://www.hookele.com/hccm/">Hana Cultural Center and Museum</a>, Hana, Maui</li>
</ul>
<hr />
<p><a name="NorthernMiddleAmerica"></a></p>
<h2 id="westward-through-northern-states">Westward through Northern states</h2>
<p>Going from New York City to Seattle takes 2,852-miles on Interstates 80 and 90, crossing 11 states.</p>
<h3 id="northern-rail">Northern Rail</h3>
<p><a target="_blank" href="https://www.amtrak.com/empire-builder-train">
Amtrak’s Empire Builder train</a> between Chicago to Seattle and Portland takes 46 hours.</p>
<p><a target="_blank" title="Amtrak's Empire Builder route" href="https://www.amtrak.com/empire-builder-train"><img alt="click on red dots in travel train glasgow empire builder 650x365.png" width="650" height="365" src="https://cloud.githubusercontent.com/assets/23631541/21246999/7d230200-c2e9-11e6-9fca-1a460dac2399.png" /></a></p>
<p><a target="_blank" href="https://www.amtrak.com/california-zephyr-train">Amtrak’s California Zephyr</a> (named after the Greek god of the Western wind). <a target="_blank" href="https://www.youtube.com/watch?v=m1gRPEZdKyI">VIDEO: from Chicago to Emeryville (San Franciso)</a> – 2 nights through 7 states: Naperville, Galesburg, Omaha, Denver (a one hour stop) over the mountains to Grand Junction, Reno, Truckee, Salt Lake City. With no wi-fi between stations.</p>
<p><a name="LewisAndClark"></a></p>
<h3 id="lewis-and-clark-trail-westward-ho">Lewis and Clark Trail Westward Ho</h3>
<p>The <a target="_blank" href="https://lewisandclark.org/learn/story.php">Lewis and Clark</a> Expedition of 1804 to 1806 is an 8,000-mile trip to the Pacific (Portland, Oregon) returned with maps and scientific specimens for President Thomas Jefferson.</p>
<p>The <a target="_blank" href="https://lewisandclark.org/wiki/index.php?title=Main_Page">Lewis and Clark Trail</a> today is a set of hiking trails. “Wm Clark” carved “July 25, 1806” <a target="_blank" href="https://lewis-clark.org/the-trail/clark-on-the-yellowstone/trail-graffiti/">on “Pompey’s Pillar” 30m miles East of Billings, Montana</a>.</p>
<p><a target="_blank" href="https://lewisandclarktrail.com/">
<img alt="Lewis and Clark Discovery Trail" width="568" height="249" src="https://cloud.githubusercontent.com/assets/300046/14081970/a9188ca6-f4ca-11e5-9c83-aebeb0aff6f6.jpg" /></a></p>
<p>The “Corps of Discovery” emboldened wagon trains traveling Westward through Northern United States.</p>
<p><a name="OregonTrail"></a></p>
<h3 id="oregon-trail-to-the-pacific">Oregon Trail to the Pacific</h3>
<p>The <a target="_blank" href="https://en.wikipedia.org/wiki/Oregon_Trail#/media/File:Wpdms_nasa_topo_oregon_trail.jpg">
Oregon Trail</a>
was established during the 1830s by mountain men in their fur trade, before motorized transportation. It favors valleys to minimize going over mountains:</p>
<p><a target="_blank" href="https://en.wikipedia.org/wiki/Oregon_Trail">
<img alt="Oregon Trail Topo map NASA" width="500" height="310" src="https://cloud.githubusercontent.com/assets/300046/14081576/a8c6f05a-f4c8-11e5-92d6-61cbf9b8ce0e.jpg" /></a></p>
<p>The trail begins from St. Louis and Independence, Missouri through Kansas and Nebraska to <a target="_blank" href="https://www.nps.gov/fola/index.htm">Fort Laramie, Wyoming (1834-1890)</a>.
It then goes through Boise, Idaho to Portland, Oregon.
A map of the trail in 1907:</p>
<p><a target="_blank" href="https://upload.wikimedia.org/wikipedia/commons/1/19/Oregontrail_1907.jpg">
<img alt="Oregon Trail 1907" width="1595" height="561" src="https://cloud.githubusercontent.com/assets/300046/14081352/93a3a5fc-f4c7-11e5-8b37-e37be9d713a0.jpg" /></a></p>
<p><a name="KS"></a></p>
<blockquote>
<p><strong> Kansas </strong></p>
</blockquote>
<ul>
<li> Boot Hill Museum, Dodge City</li>
<li><a target="_blank" href="https://www.k-state.edu/bma/">Beach Museum of Art at Kansas State University</a>, Manhattan</li>
<li><a target="_blank" href="https://www.sandzen.org/">Birger Sandzen Memorial Gallery</a>, Lindsborg</li>
<li><a target="_blank" href="https://skyways.lib.ks.us/kansas/museums/coutts/">Coutts Memorial Museum of Art</a>, El Dorado</li>
<li><a target="_blank" href="https://www.washburn.edu/mulvane/">Mulvane Art Museum at Washburn University</a>, Topeka</li>
<li><a target="_blank" href="https://www.spencerart.ku.edu/">Spencer Museum of Art at the University of Kansas</a>, Lawrence</li>
<li><a target="_blank" href="https://webs.wichita.edu/?view=ulrich">Ulrich Museum of Art at Wichita State University</a></li>
<li><a target="_blank" href="https://www.wichitaartmuseum.org/">Wichita Art Museum</a></li>
<li><a target="_blank" href="https://ozmuseum.com/">Oz museum</a>, Wamego</li>
</ul>
<p><a name="IA"></a></p>
<blockquote>
<p><strong> Iowa </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.avalon.net/~artsic/">Arts Iowa City</a></li>
<li><a target="_blank" href="https://www.blanden.org/">Blanden Memorial Art Museum</a>, Fort Dodge</li>
<li><a target="_blank" href="https://www.museums.iastate.edu/BrunnierFrames.htm">Brunnier Art Museum at Iowa State University</a>, Ames</li>
<li><a target="_blank" href="https://www.crma.org/">Cedar Rapids Museum of Art</a></li>
<li><a target="_blank" href="https://www.art-dma.org/">Davenport Museum of Art</a></li>
<li><a target="_blank" href="https://www.desmoinesartcenter.org/">Des Moines Art Center</a></li>
<li><a target="_blank" href="https://www.uiowa.edu/uima/">University of Iowa Museum of Art</a>, Iowa City</li>
<li><a target="_blank" href="https://www.wplwloo.lib.ia.us/waterloo/arts/">Waterloo Museum of Art</a></li>
<li> Des Moines: Living History Farms (at Urbandale)</li>
<li><a target="_blank" href="https://hoover.archives.gov/">Herbert Hoover Presidential Library and Museum</a>, West Branch</li>
<li><a target="_blank" href="http://www.iowa80truckingmuseum.com/">Walcott Trucking Museum</a>is next to Iowa 80, the largest truck stop in the world (<a target="_blank" href="https://www.youtube.com/watch?v=sCcl-dU9a2Y">VIDEO</a>)</li>
</ul>
<p><a name="WI"></a></p>
<blockquote>
<p><strong> Wisconsin </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.lvm.wisc.edu/">Elvehjem Museum of Art at the University of Wisconsin</a>, Madison</li>
<li><a target="_blank" href="https://www.fairfieldartmuseum.com/">Fairfield Public Gallery</a>, Sturgeon Bay</li>
<li><a target="_blank" href="https://jmkac.com/">John Michael Kohler Arts Center</a>, Sheboygan</li>
<li><a target="_blank" href="https://www.lywam.org/">Leigh Yawkey Woodson Art Museum</a>, Wausau</li>
<li><a target="_blank" href="https://www.mmoca.org/">Madison Museum of Contemporary Art</a></li>
<li><a target="_blank" href="https://www.focol.org/~paineart/">Paine Art Center and Arboretum</a>, Oshkosh</li>
<li><a target="_blank" href="https://www.ramart.org/">Racine Art Museum</a></li>
<li><a target="_blank" href="https://www.wbartmuseum.com/">West Bend Art Museum</a></li>
<li><a target="_blank" href="https://www.beloit.edu/~museum/wright/">Wright Museum of Art at Beloit College</a>, Beloit</li>
</ul>
<p><a name="Milwaukee"></a></p>
<h3 id="milwaukee">Milwaukee:</h3>
<p>Milwaukee had the #6 rate of crime among all cities in the US (2,082/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.eisnermuseum.org/">William F. Eisner Museum of Advertising and Design</a>, Milwaukee</li>
<li><a target="_blank" href="https://www.marquette.edu/haggerty/">Haggerty Museum of Art at Marquette University</a>, Milwaukee</li>
<li><a target="_blank" href="https://www.mam.org/">Milwaukee Art Museum</a></li>
<li type="circle"><a target="_blank" href="https://www.thedailymeal.com/restaurants/ristorante-bartolotta">Ristorante Bartolotta</a> <a target="_blank" href="https://www.thedailymeal.com/101-best-restaurants-america-2019/slide-4">[#94]</a></li>
</ul>
<p><a name="MN"></a></p>
<blockquote>
<p><strong> Minnesota </strong></p>
</blockquote>
<h3 id="duluth-north-coast-of-lake-superior">Duluth (North coast of Lake Superior)</h3>
<ul>
<li><a target="_blank" href="https://maps.roadtrippers.com/trips/17520840?lng=-103.03900847280016&lat=42.950891540446264&z=4.526513924866736">North shore scenic drive</a></li>
<li><a target="_blank" href="https://www.d.umn.edu/tma/">Tweed Museum of Art at the University of Minnesota</a>, Duluth</li>
</ul>
<p><a name="Minneapolis"></a></p>
<h3 id="minneapolis">Minneapolis:</h3>
<p>Minneapolis had the #19 rate of crime among all cities in the US (1,101/100,000 in 2022).</p>
<ul>
<li><a target="_blank" href="https://www.mtn.org/MIA/">The Minneapolis Institute of Arts</a></li>
<li><a target="_blank" href="https://www.artsmia.org/">Minneapolis Institute of Arts</strong></a></li>
<li><a target="_blank" href="https://www.walkerart.org/">Walker Art Center</a>, Minneapolis</li>
<li><a target="_blank" href="https://www.weisman.umn.edu/">Weisman Art Museum at the University of Minnesota</a>, Minneapolis</li>
<li type="circle">Spoon and Stable restaurant, Minneapolis</li>
</ul>
<p><a name="StPaul"></a></p>
<h3 id="st-paul">St. Paul:</h3>
<ul>
<li><a target="_blank" href="https://www.nwc.edu/academic/art/denler/denler.htm">Denler Art Gallery at Northwestern College</a> St. Paul</li>
<li><a target="_blank" href="https://www.asmat.org/">American Museum of Asmat Art</a> St. Paul</li>
<li><a target="_blank" href="https://goldstein.che.umn.edu/">Goldstein Museum of Design at the University of Minnesota</a> St. Paul</li>
<li><a target="_blank" href="https://www.mmaa.org/">Minnesota Museum of American Art</a>, St. Paul</li>
<li type="square">Green Giant statue, Blue Earth 56013 (off hwy 90)</li>
</ul>
<p><a name="NB"></a></p>
<blockquote>
<p><strong> Nebraska </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.unl.edu/plains/gallery/gallery.html">Great Plains Art Collection at the University of Nebraska</a>, Lincoln</li>
<li><a target="_blank" href="https://www.joslyn.org/">Joslyn Art Museum</a>, Omaha</li>
<li><a target="_blank" href="https://monet.unk.edu/mona/">Museum of Nebraska Art at the University of Nebraska</a>, Kearney</li>
<li><a target="_blank" href="https://www.sheldonartgallery.org/">Sheldon Memorial Art Gallery at the University of Nebraska</a>, Lincoln</li>
</ul>
<p><a name="SD"></a></p>
<blockquote>
<p><strong> South Dakota </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.nps.gov/moru/">Mount Rushmore National Memorial</a>, Keystone</li>
<li><a target="_blank" href="https://www.historichotels.org/hotels-resorts/hotel-alex-johnson/">Hotel Alex Johnson</a>, Rapid City</li>
<li><a target="_blank" href="https://www.redlinart.com/">Redlin Art Center</a>, Watertown</li>
</ul>
<p><a name="ND"></a></p>
<blockquote>
<p><strong> North Dakota </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.ndmoa.com/">North Dakota Museum of Art</a>, Grand Forks</li>
<li><a target="_blank" href="https://www.plainsart.org/">Plains Art Museum</a>, Fargo</li>
<li><a target="_blank" href="https://www.thedailymeal.com/restaurants/passage-india">Passage to India lunch buffet</a>, Fargo</li>
</ul>
<p><a name="MT"></a></p>
<blockquote>
<p><strong> Montana </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.holtermuseum.org/">Holter Museum of Art</a>, Helena</li>
<li><a target="_blank" href="https://www.nps.gov/glac/">Glacier National Park</a> "Crown of the Continent"</li>
<li><a target="_blank" href="https://www.cmrussell.org/">C.M. Russell Museum</a>, Great Falls</li>
<li><a target="_blank" href="https://www.artmissoula.org/">Art Museum of Missoula</a></li>
<li><a target="_blank" href="https://www.umt.edu/partv/famus/">University of Montana Museum of Fine Arts</a>, Missoula</li>
<li><a target="_blank" href="https://www.museumoftherockies.org/">Museum of the Rockies</a>, Bozeman</li>
<li><a target="_blank" href="https://www.compustory.com/">American Computer & Robotics Museum</a>, Bozeman</li>
<li><a target="_blank" href="https://www.tippetrise.org/">Tippet Rise Art Center</a>, near Bozeman</li>
<li><a target="_blank" href="https://yellowstone.artmuseum.org/">Yellowstone Art Museum</a>, Billings</li>
<li>The only known markings by the <a href="#LewisAndClark">Lewis and Clark Corp</a>, Billings</li>
</ul>
<p><a name="ID"></a></p>
<blockquote>
<p><strong> Idaho </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="http://www.boiseartmuseum.org/">Boise Art Museum</a></li>
</ul>
<hr />
<p><a name="Southwestward"></a></p>
<h2 id="westward-through-the-southwest">Westward through the Southwest</h2>
<h3 id="route-66">Route 66</h3>
<p><a target="_blank" href="https://www.amazon.com/Passport-World-Route-Donna-Bouche/dp/B088DZ79NH/">VIDEO</a>:
<a target="_blank" href="https://en.wikipedia.org/wiki/U.S._Route_66#/media/File:Map_of_US_66.svg">Route 66</a> was one of the original highways within the U.S. starting in 1924.
Thus its colloqual name the “Mother Road”. It served as a military transport corridor during WWII.
In post-war years, motels, diners, and gas stations along Route 66 became popular vacaction destinations.</p>
<p><a target="_blank" href="https://cloud.githubusercontent.com/assets/300046/14080916/1a0a42ca-f4c5-11e5-8230-cb0b95dde974.jpg"><img alt="!map beige route-66 600x200.jpg" width="600" height="200" src="https://cloud.githubusercontent.com/assets/300046/14080916/1a0a42ca-f4c5-11e5-8230-cb0b95dde974.jpg" /></a></p>
<p>Route 66 begins on Michigan Avene in Chicago, where you can eat at Lou Mitchell’s diner.
The route goes to St. Louis, Missouri, then through smaller road-side towns on the way to Tulsa and Oklahoma City, Amarillo TX, Alberquque New Mexico, then over mountains to Flagstaff AZ before ending on the Santa Monica pier in Los Angeles, California.</p>
<p>However, <a href="#freeways">interstate freeways</a> built from 1956 enabled travel without the need to slow down through towns. That bypassed small businesses along Route 66.</p>
<h3 id="chisolm-trail">Chisolm Trail</h3>
<p>The <a target="_blank" href="https://en.wikipedia.org/wiki/Chisholm_Trail">Chisolm Trail</a> was used between 1867-1884 to drive cows to market from various cowtowns in Texas through Oklahoma Indian Territory to Abilene and other railheads in Kansas. The Lonesome Dove TV series depicts that time.</p>
<p><em>Since <a href="#IL">Illinos</a> and <a href="#MO">Missouri</a> are already listed in our <a href="#DownMississippi">Mississippi route</a>,
here we begin from Oklahoma and take a long detour North to avoid too much desert along the way.</em></p>
<p><a name="OK"></a></p>
<blockquote>
<p><strong> Oklahoma </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.ou.edu/fjjma/">Fred Jones Jr. Museum of Art at the University of Oklahoma</a>, Norman</li>
<li><a target="_blank" href="https://www.gilcrease.org/">Gilcrease Museum</a>, Tulsa</li>
<li><a target="_blank" href="https://www.cowboyhalloffame.org/">National Cowboy Hall of Fame and Western Heritage Museum</a>, Oklahoma City</li>
<li><a target="_blank" href="https://www.philbrook.org/">Philbrook Museum of Art (Philbrook Art Centre)</a>, Tulsa</li>
</ul>
<p><a name="TX"></a></p>
<blockquote>
<p><strong> Texas </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.amarilloart.org/">Amarillo Museum of Art</a></li>
<li><a target="_blank" href="https://www.facebook.com/1974cadillacranch/">Cadillac Ranch</a> near Amarillo</li>
<li><a target="_blank" href="https://www.arlingtonmuseum.org/">Arlington Museum of Art</a></li>
<li><a target="_blank" href="https://www.amset.org/">Art Museum of Southeast Texas</a>, Beaumont</li>
<li><a target="_blank" href="https://Beeville.net/BeevilleArtMuseum/">Beeville Art Museum</a></li>
<li><a target="_blank" href="https://www.chinati.org/">Chinati Foundation</a>, Marfa</li>
<li><a target="_blank" href="https://lib-oldweb.tamu.edu/cushing/">Cushing Memorial Library at Texas A&M University</a>, College Station</li>
<li><a target="_blank" href="https://www.elpasoartmuseum.org/">El Paso Museum of Art</a></li>
<li><a target="_blank" href="https://www.thegracemuseum.org/">Grace Museum</a>, Abilene</li>
<li><a target="_blank" href="https://www.lmfa.org/">Longview Museum of Fine Arts</a></li>
<li><a target="_blank" href="https://www.mcnayart.org/">McNay Art Museum</a>, San Antonio</li>
<li><a target="_blank" href="https://museumsw.org/">Museum of the Southwest</a>, Midland</li>
<li><a target="_blank" href="https://www.depts.ttu.edu/museumttu/">Museum of Texas Tech University</a>, Lubbock</li>
<li><a target="_blank" href="https://www.noelartmuseum.org/">Ellen Noel Art Museum</a>, Odessa</li>
<li><a target="_blank" href="https://saalm.org/">San Antonio Art League Museum</a></li>
<li><a target="_blank" href="https://www.sa-museum.org/">San Antonio Museum of Art</a></li>
<li><a target="_blank" href="https://www.stia.org/">South Texas Institute for the Arts</a>, Corpus Christi</li>
<li><a target="_blank" href="https://www.starkmuseum.org/">Stark Museum of Art</a>, Orange</li>
<li><a target="_blank" href="https://www.art.unt.edu/gallery/">University of North Texas Art Galleries</a>, Denton</li>
</ul>
<p><a name="Dallas"></a></p>
<h3 id="dallas">Dallas:</h3>
<ul>
<li><a target="_blank" href="https://www.crowcollection.org/">Crow Collection of Asian Art</a></li>
<li><a target="_blank" href="https://www.the-mac.org/">The McKinney Avenue Contemporary (MAC)</a></li>
<li><a target="_blank" href="https://www.meadowsmuseumdallas.org/">Meadows Museum at Southern Methodist University</a>, Dallas</li>
<li><a target="_blank" href="https://www.cartermuseum.org/">Amon Carter Museum</a>, Fort Worth</li>
<li><a target="_blank" href="https://dmaws.dallasmuseumofart.org/">Dallas Museum of Art</strong></a></li>
<li><a target="_blank" href="https://www.kimbellart.org/">Kimbell Art Museum</strong></a>, Fort Worth</li>
<li><a target="_blank" href="https://www.artcenterwaco.org/">Art Center Waco</a></li>
<li><a target="_blank" href="https://www.mamfw.org/">Modern Art Museum of Fort Worth</a></li>
<li><a target="_blank" href="https://www.sidrmuseum.org/">Sid Richardson Collection of Western Art</a>, Fort Worth</li>
<li><a target="_blank" href="https://www.baylor.edu/Art/index.php?id=5310">Baylor University Art Galleries</a>, Waco</li>
<li><a target="_blank" href="https://bush41library.tamu.edu/">George Bush Presidential Library and Museum</a>, College Station</li>
<li><a target="_blank" href="https://www.archives.gov/presidential-libraries/visit#">George W. Bush Presidential Library and Museum</a>, Dallas</li>
</ul>
<p><a name="Austin"></a></p>
<h3 id="austin">Austin:</h3>
<ul>
<li><a target="_blank" href="https://www.hrc.utexas.edu/">Ransom Humanities Research Center at the University of Texas</a>, Austin</li>
<li><a target="_blank" href="https://www.amoa.org/">Austin Museum of Art</a></li>
<li><a target="_blank" href="https://www.utexas.edu/cofa/bma/">Blanton Museum of Art at the University of Texas</a>, Austin</li>
<li><a target="_blank" href="https://www.main.org/mexic-arte/">Mexic-Arte Museum</a>, Austin</li>
<li><a target="_blank" href="https://www.georgewbushlibrary.smu.edu/">
Lyndon Baines Johnson Presidential Library and Museum</a>, Austin</li>
</ul>
<p><a name="Houston"></a></p>
<h3 id="houston">Houston:</h3>
<ul>
<li> Baker Planetarium</li>
<li><a target="_blank" href="https://www.ricegallery.org/">Rice University Art Gallery</a>, Houston</li>
<li><a target="_blank" href="https://www.hfac.uh.edu/blaffer/">Blaffer Gallery at the University of Houston</a></li>
<li><a target="_blank" href="https://mfah.org/">Museum of Fine Arts</strong></a>, Houston</li>
<li><a target="_blank" href="https://www.camh.org/">Contemporary Arts Museum, Houston</a></li>
<li> Museum of Medical Science</li>
<li> The Contemporary Arts Museum</li>
<li><a target="_blank" href="https://www.menil.org/">Menil Collection</a></li>
<li><a target="_blank" href="https://www.artcarmuseum.com/">The Art Car Museum</a></li>
</ul>
<p><a name="NM"></a></p>
<blockquote>
<p><strong> New Mexico </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.cabq.gov/museum/">Albuquerque Museum</a></li>
<li><a target="_blank" href="https://www.millicentrogers.org/">Millicent Rogers Museum of Northern New Mexico</a></li>
<li><a target="_blank" href="https://www.roswellmuseum.org/">Roswell Museum and Art Center</a></li>
<li><a target="_blank" href="https://www.nps.gov/CAVE/">Carlsbad Caverns National Park</a></li>
</ul>
<p><a name="SantaFe"></a></p>
<h3 id="santa-fe">Santa Fe:</h3>
<ul>
<li><a target="_blank" href="https://www.okeeffemuseum.org/">Georgia O'Keeffe Museum</a></li>
<li><a target="_blank" href="https://www.moifa.org/">Museum of International Folk Art</a></li>
<li><a target="_blank" href="https://www.museumofnewmexico.org/">Museum of New Mexico</a></li>
<li><a target="_blank" href="https://www.nmlegis.gov/">New Mexico Legislature Art Gallery</a></li>
</ul>
<p><a name="Taos"></a></p>
<h3 id="taos">Taos:</h3>
<ul>
<li><a target="_blank" href="https://harwoodmuseum.org/">Harwood Museum at the U. of New Mexico</a></li>
<li><a target="_blank" href="https://www.vvltam.org/">Van Vechten-Lineberry Taos Art Museum</a></li>
</ul>
<p><a name="CO"></a></p>
<blockquote>
<p><strong> Colorado </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.aspenartmuseum.org/">Aspen Art Museum</a></li>
<li><a target="_blank" href="https://www.BMoCA.org/">Boulder Museum of Contemporary Art</a></li>
<li><a target="_blank" href="https://www.leanintreemuseum.com/">Leanin' Tree Museum of Western Art</a>, Boulder</li>
<li><a target="_blank" href="https://www.fine-art.com/museum/moa.html">The Museum of Outdoor Arts</a>, Englewood</li>
<li><a target="_blank" href="https://www.usbr.gov/lc/hooverdam/">Hoover Dam</a>, Boulder City</li>
<li type="circle">Frasca Food & Wine, Boulder</li>
</ul>
<p><a name="Denver"></a></p>
<h3 id="denver">Denver:</h3>
<ul>
<li><a target="_blank" href="https://www.denverartmuseum.org/">Denver Museum of Art</a></li>
<li> Denver Museum of Natural History</li>
<li><a target="_blank" href="https://www.kirklandmuseum.org/">Kirkland Museum</a>, Denver</li>
<li><a target="_blank" href="https://www.museo.org/">Museo de las Americas</a>, Denver</li>
<li><a target="_blank" href="https://www.mcartdenver.org/">Museum of Contemporary Art/Denver</a></li>
</ul>
<p><a name="WY"></a></p>
<blockquote>
<p><strong> Wyoming </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.bbhc.org/">Buffalo Bill Historical Center</a>, Cody</li>
<li><a target="_blank" href="https://thebrintonmuseum.org/">Briton Museum</a>, Big Horn</li>
<li><a target="_blank" href="https://uwadmnweb.uwyo.edu/artmuseum/">University of Wyoming Art Museum</a>, Laramie</li>
<li><a target="_blank" href="https://www.wildlifeart.org/">National Museum of Wildlife Art</a>, Jackson Hole</li>
</ul>
<p>(Southern Idaho)</p>
<p><a name="UT"></a></p>
<blockquote>
<p><strong> Utah </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.byu.edu/moa/">Brigham Young University Museum of Art</a>, Provo</li>
<li><a target="_blank" href="https://www.sma.nebo.edu/">Springville Museum of Art</a></li>
<li> The Museum of (Mormon) Church History and Art, Salt Lake City</li>
<li><a target="_blank" href="https://www.umfa.utah.edu/">Utah Museum of Fine Arts at the University of Utah</a>, Salt Lake City</li>
<li><a target="_blank" href="https://www.suu.edu/museums/">Braithwaite Arts Gallery at Southern Utah University</a>, Cedar City</li>
</ul>
<p><a name="AZ"></a></p>
<blockquote>
<p><strong> Arizona</strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.grandcanyonlodges.com/lodging/el-tovar-hotel/">El Tovar Hotel</a> on the North Rim has a formal dress code!</li>
<li type="disc"><a target="_blank" href="https://www.nps.gov/grca/">Grand Canyon Village</a></li>
<li><a target="_blank" href="https://asuartmuseum.asu.edu/">Arizona State University Art Museum</a>, Tempe</li>
<li><a target="_blank" href="https://dizzy.library.arizona.edu/branches/ccp/ccphome.html">Center for Creative Photography at the University of Arizona</a>, Tuscon</li>
<li><a target="_blank" href="https://westernmuseum.org/">Desert Caballeros Western Museum</a>, Wickenburg</li>
<li><a target="_blank" href="https://www.fleischer.org/">Fleischer Museum of American and Russian Impressionism</a>, Scottsdale</li>
<li><a target="_blank" href="https://www.heard.org/">Heard Museum</a>, Phoenix</li>
<li><a target="_blank" href="https://www.musnaz.org/">Museum of Northern Arizona</a>, Flagstaff</li>
<li><a target="_blank" href="https://www.phippenartmuseum.org/">Phippen Art Museum</a>, Prescott</li>
<li><a target="_blank" href="https://www.phxart.org/">Phoenix Art Museum</a></li>
<li><a target="_blank" href="https://www.smoca.org/">Scottsdale Museum of Contemporary Art</a></li>
<li><a target="_blank" href="https://www.tucsonarts.com/">Tucson Museum of Art</a></li>
<li><a target="_blank" href="https://artmuseum.arizona.edu/art.html">University of Arizona Museum of Art</a>, Tucson</li>
<li><a target="_blank" href="https://www.wvam.org/">West Valley Art Museum</a>, Surprise</li>
<li><a target="_blank" href="https://www.mim.org/">Musical Instrument Museum</a>, Phoenix</li>
</ul>
<p><a name="NV"></a></p>
<blockquote>
<p><strong> Nevada </strong></p>
</blockquote>
<ul>
<li><a target="_blank" href="https://www.guggenheimlasvegas.org/">Guggenheim Hermitage Museum</a>, Las Vegas</li>
<li><a target="_blank" href="https://www.lasvegasartmuseum.org/">Las Vegas Art Museum</a></li>
<li><a target="_blank" href="https://www.neonmuseum.org/">The Neon Museum</a></li>
</ul>
<ul>
<li><a target="_blank" href="https://www.nevadaart.org/">Nevada Museum of Art</a>, Reno</li>
<li>Harrah's Auto Collection, Reno</li>
</ul>
<p><br /><br /></p>
<h2 id="all-the-sights">All the sights</h2>
<p>In addition to “museums”, also included here are grand natural sights:</p>
<ul>
<li><a target="_blank" href="https://www.historichotels.org/hotels-resorts/?search=top-nav">historic landmark hotels</a></li>
<li>Restaurants with unique interiors/art</li>
<li>
<p><a target="_blank" href="https://www.bedandbreakfast.com/info/travelers/awards/breakfast-tournament/2018">Breakfasts at B&Bs</a></p>
</li>
<li>Cool Architecture - churches</li>
<li>
<p><a target="_blank" href="https://en.wikipedia.org/wiki/List_of_botanical_gardens_and_arboretums_in_the_United_States">Gardens</a> and <a target="_blank" href="https://www.farmstayus.com/map">Farms</a></p>
</li>
<li>National Monuments</li>
<li>
<p><a target="_blank" href="https://www.archives.gov/presidential-libraries/visit">US Presidential libraries</a>, museums, and birth places</p>
</li>
<li>
<p><a target="_blank" href="https://en.wikipedia.org/wiki/List_of_new_media_art_festivals">New Media</a> art <a target="_blank" href="https://www.artfaircalendar.com/">festivals</a> and notable galleries</p>
</li>
<li><a target="_blank" href="https://www.themarysue.com/film-locations-map/">Iconic movie locations</a> of note [<a target="_blank" href="https://www.boxofficequant.com/100-years-of-set-locations/full_screen.htm">map</a>]</li>
<li>Caverns</li>
<li>
<p>Zoos</p>
</li>
<li><a target="_blank" href="https://factorytoursusa.com/">Factory tours</a></li>
<li>
<p>Experiences sold by Viator, <a target="_blank" href="https://www.huffingtonpost.com/2014/07/04/to-do-in-america_n_4775300.html">The ONE Thing You Must Do In Each U.S. State</a></p>
</li>
<li>Amusement parks</li>
<li>State Fairs</li>
<li><a target="_blank" href="https://www.tripadvisor.com/TravelersChoice">Tripadvisor Excellence award winners</a></li>
<li>Most scenic restaurants according to <a target="_blank" href="https://www.opentable.com/lists/most-scenic-restaurants-2018">OpenTable</a>, Zagat, Michelin</li>
</ul>
<h2 id="technical-footnote">Technical Footnote</h2>
<p>This rather large list was originally created to be intentionally large in order to test how well the system handles a large file
(how quickly it can download and display).</p>
<p>This is an upgrade of my terrible <a target="_blank" href="https://wilsonmar.com/1usa.htm">
Roadtrips to visit museums across the USA</a> from 2005.</p>
<p>Next, I’d like to display a Google map of coordinates from a public Google spreadsheet
like Jessica Lord’s
<a target="_blank" href="https://jlord.github.io/hack-spots">
hack-spots site</a> implemented from a
<a target="_blank" href="https://github.com/jlord/hack-spots">
github repo</a> which
uses the
<a target="_blank" href="https://github.com/jlord/sheetsee.js">
sheetsee.js</a> and
<a target="_blank" href="https://www.mapbox.com/mapbox.js/api/v2.4.0/">
Mapbox</a>
libraries.</p>
<blockquote>
<p>“I haven’t been everywhere, but it’s on my list.” – <a target="_blank" href="https://en.wikipedia.org/wiki/Susan_Sontag">Susan Sontag</a></p>
</blockquote>
<p><a href="https://wilsonmar.github.io/museums-roadtrip-usa/">Museums Roadtrip USA</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on October 26, 2025.</p>
https://wilsonmar.github.io/flood-the-internet2025-10-25T00:00:00+00:002025-10-25T00:00:00+00:00Wilson Marhttps://wilsonmar.github.io[email protected]
<p><i>Prove that tools emulating users (Playwright, JMeter, Selenium, etc.) can recognize the gamut of controls on a challenging web app.</i></p>
<p align="right">
<a target="_blank" href="https://wilsonmar.github.io/flood-the-internet/"><img alt="US (English)" width="20" height="14" src="../images/flags/us.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=no&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Norsk (Norwegian)"><img alt="Norsk (Norwegian)" width="20" height="14" src="../images/flags/no.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=es&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Español (Spanish)"><img alt="Español (Spanish)" width="20" height="14" src="../images/flags/es.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=fr&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Français (French)"><img alt="Français (French)" width="20" height="14" src="../images/flags/fr.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Deutsch (German)"><img alt="Deutsch (German)" width="20" height="14" src="../images/flags/de.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=it&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Italiano"><img alt="Italiano" width="20" height="14" src="../images/flags/it.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=pt&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Português"><img alt="Português" width="20" height="14" src="../images/flags/pt.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=et&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Estonian"><img alt="Estonian" width="20" height="14" src="../images/flags/estonia-24x16.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ar&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="اَلْعَرَبِيَّةُ (Egypt Arabic)"><img alt="اَلْعَرَبِيَّةُ (Egypt Arabic)" width="20" height="14" src="../images/flags/eg.gif" /></a>
<!-- <a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ru&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Cyrillic Russian"><img alt="Cyrillic Russian" width="20" height="14" src="../images/flags/ru.png"></a> -->
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ne&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="Napali"><img alt="Napali" width="20" height="14" src="../images/flags/ne.png" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=zh-CN&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="中文 (简体) Chinese (Simplified)"><img alt="中文 (简体) Chinese (Simplified)" width="20" height="14" src="../images/flags/cn.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ja&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="日本語 Japanese"><img alt="日本語 Japanese" width="20" height="14" src="../images/flags/jp.gif" /></a>
<a target="_blank" href="https://translate.google.com/translate?sl=auto&tl=ko&u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F" title="한국어 Korean"><img alt="한국어 Korean" width="20" height="14" src="../images/flags/ko.gif" /></a>
</p>
<section id="table-of-contents" class="toc">
<header>
<h3><i class="fa fa-book"></i> Overview</h3>
</header>
<div id="drawer">
<ul id="markdown-toc">
<li><a href="#challenges-on-the-internet-app" id="markdown-toc-challenges-on-the-internet-app">Challenges on The-Internet app</a></li>
<li><a href="#video-introduction" id="markdown-toc-video-introduction">Video introduction</a> <ul>
<li><a href="#app-build" id="markdown-toc-app-build">App Build</a></li>
<li><a href="#emulate-using-playwright" id="markdown-toc-emulate-using-playwright">Emulate using PlayWright</a></li>
<li><a href="#instrumentation" id="markdown-toc-instrumentation">Instrumentation</a></li>
</ul>
</li>
<li><a href="#recap-architectural-components" id="markdown-toc-recap-architectural-components">Recap: Architectural components</a> <ul>
<li><a href="#project-folders-from-github" id="markdown-toc-project-folders-from-github">Project folders from GitHub</a></li>
</ul>
</li>
<li><a href="#how-to-manual-steps" id="markdown-toc-how-to-manual-steps">How To Manual Steps</a></li>
<li><a href="#automating-the-internet-using-selenium" id="markdown-toc-automating-the-internet-using-selenium">Automating the-internet using Selenium</a></li>
<li><a href="#coding-flood-element-typescript" id="markdown-toc-coding-flood-element-typescript">Coding Flood Element Typescript</a></li>
<li><a href="#run-element-script-from-client-cli" id="markdown-toc-run-element-script-from-client-cli">Run Element script from client CLI</a> <ul>
<li><a href="#setup-aws-manually" id="markdown-toc-setup-aws-manually">Setup AWS manually</a></li>
<li><a href="#script-a--instantiate-aws-docker-in-ec2-build-script" id="markdown-toc-script-a--instantiate-aws-docker-in-ec2-build-script">Script A : Instantiate AWS Docker in EC2 build script</a></li>
<li><a href="#terminal---aws-key-pair" id="markdown-toc-terminal---aws-key-pair">Terminal - AWS Key Pair</a></li>
<li><a href="#terminal---aws-key-pair-1" id="markdown-toc-terminal---aws-key-pair-1">Terminal - AWS Key Pair</a></li>
<li><a href="#setup-newrelic-in-a-ec2-ubuntu-containing-docker" id="markdown-toc-setup-newrelic-in-a-ec2-ubuntu-containing-docker">Setup “NewRelic” in a EC2 Ubuntu containing Docker</a></li>
<li><a href="#save-newrelic-license-key" id="markdown-toc-save-newrelic-license-key">Save NewRelic License Key</a></li>
<li><a href="#install-newrelic-instrumentation-agent" id="markdown-toc-install-newrelic-instrumentation-agent">Install NewRelic instrumentation agent</a></li>
<li><a href="#install-newrelic-agent-in-running-the-internet-app" id="markdown-toc-install-newrelic-agent-in-running-the-internet-app">Install NewRelic agent in running “the-internet-app”</a></li>
<li><a href="#script-b--add-in-serverrb-and-create-new-docker-image" id="markdown-toc-script-b--add-in-serverrb-and-create-new-docker-image">Script B : Add in server.rb and create new Docker image</a></li>
<li><a href="#update-element-ts-script-for-floodio" id="markdown-toc-update-element-ts-script-for-floodio">Update Element .ts script for flood.io</a></li>
<li><a href="#instrument-script-for-newrelic" id="markdown-toc-instrument-script-for-newrelic">Instrument script for NewRelic</a></li>
<li><a href="#script-c--save-instrumented-docker-image-to-dockerhub-for-reuse" id="markdown-toc-script-c--save-instrumented-docker-image-to-dockerhub-for-reuse">Script C : Save instrumented Docker image to DockerHub for reuse</a></li>
</ul>
</li>
<li><a href="#perpare-for-flood" id="markdown-toc-perpare-for-flood">Perpare for Flood</a></li>
<li><a href="#run-flood-against-app-in-aws-under-instrumentation" id="markdown-toc-run-flood-against-app-in-aws-under-instrumentation">Run flood against app in AWS under instrumentation</a></li>
<li><a href="#config-new-relic-dashboard" id="markdown-toc-config-new-relic-dashboard">Config New Relic Dashboard</a></li>
<li><a href="#other-apm" id="markdown-toc-other-apm">Other APM</a></li>
<li><a href="#security-scans" id="markdown-toc-security-scans">Security scans</a></li>
<li><a href="#playwright" id="markdown-toc-playwright">Playwright</a></li>
<li><a href="#python-scripting" id="markdown-toc-python-scripting">Python scripting</a></li>
<li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
</ul>
</div>
</section>
<!-- /#table-of-contents -->
<p><em>NOTE: Content here are my personal opinions, and
not intended to represent any employer (past or present).
“PROTIP:” here highlight information I haven’t seen elsewhere on the internet
because it is hard-won, little-know but significant facts
based on my personal research and experience.
</em></p>
<p><a name="ManualActions"></a></p>
<h2 id="challenges-on-the-internet-app">Challenges on The-Internet app</h2>
<p>The table below presents several icons associated with each page of the sample app’s UI on-line at<br /></p>
<ul>
<a target="_blank" href="https://the-internet.herokuapp.com/"><strong>https://the-internet.herokuapp.com</strong></a>
</ul>
<blockquote>
<p>“An example application that captures prominent and ugly functionality found on the web. Perfect for writing automated acceptance tests against.”</p>
</blockquote>
<p>Ruby code to create “the-internet” was at account saucelabs but forked to:</p>
<ul><a target="_blank" href="https://github.com/bomonike/the-internet">https://github.com/bononike/the-internet</a>
</ul>
<p>The website was originally created at <a target="_blank" href="https://github.com/tourdedave/the-internet">https://github.com/tourdedave/the-internet</a> by Dave Haeffner since 2015 <a target="_blank" href="https://www.youtube.com/watch?v=cIevkkD_LB4&t=19m14s">part 1</a> and <a target="_blank" href="https://www.youtube.com/watch?v=w0pYTX2t0pg">part 2</a> of “Selenium Test Automation: Practical Tips & Tricks” presentation recorded in Israel. In his May 2016 <a target="_blank" href="https://www.youtube.com/watch?v=Zf_qsXK6YdM">“How to use Selenium successfully”</a> <a target="_blank" href="http://se.tips/sf-se-meetup-2016">slidedeck</a> he said:</p>
<p>Click on <a target="_blank" href="https://the-internet.herokuapp.com/"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> to see the sample app’s GUI. The website was created by Dave Hoeffner to present <a href="#Controls">43 controls</a> which provide challenges to those learning to code <a href="#CodeSelenium">Selenium scripts</a> that automate <a href="#ManualActions">manual actions</a> real users perform on an <strong>internet browser</strong> (such as Google Chrome). Dave created the site as the basis for his tutorials at <a target="_blank" href="https://ElementalSelenium.com/">ElementalSelenium.com</a> and <a target="_blank" href="https://SeleniumGuidebook.com/">SeleniumGuidebook.com</a>.</p>
<p>Click on <img width="21" alt="Playright" src="https://playwright.dev/img/playwright-logo.svg" /> to view <a target="_blank" href="https://github.com/bomonike/playwright-scripts/tree/main/the-internet/">Playwright emulation scripts</a>.</p>
<p>Click on <img width="21" alt="JMeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /> to view <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/">JMeter XML scripts for the control</a>.</p>
<p>Click on <a target="_blank" href="https://www.youtube.com/watch?v=cIevkkD_LB4&t=19m14s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> to view a video about manual actions and analysis of the UI page source code as the basis for test script creation.<br /></p>
<p>Additional columns of icons may be added to show <strong>sample run results</strong> for each test item.</p>
<ol>
<li><a target="_blank" href="https://the-internet.herokuapp.com/abtest"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE01_TheInternet_ABTesting_wJM5.4.1_v02.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://www.youtube.com/watch?v=w0pYTX2t0pg&t=31m52s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> A/B Test Control (also known as split testing)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/add_remove_elements/"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/02-Add_Remove.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Add/Remove Elements</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/basic_auth"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE03_TheInternet_BasicAuth_wJM5.4.1_v03.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/03-Basic_Auth.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Basic Auth (Sign in Username and Password: admin)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/broken_images"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE04_TheInternet_BrokenImages_wJM5.4.1_v03.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/04-Broken_Images.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Broken Images</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/challenging_dom"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/05-Challenging_DOM.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Challenging DOM - this is the one impacting server resource</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/checkboxes"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://github.com/bomonike/playwright-scripts/blob/main/the-internet/AE06_CheckBox.js"><img width="21" alt="Playwright" src="https://playwright.dev/img/playwright-logo.svg" /></a> Checkboxes</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/context_menu"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://github.com/flood-io/element/pull/46"><img width="21" alt="flood.io Element issue" src="https://playwright.dev/img/playwright-logo.svg" /></a> Context Menu</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/digest_auth"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE08_TheInternet_DigestAuthentication_wJM5.4.1_v03.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/08-Digest_Auth.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Digest Authentication (user and pass: admin)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/disappearing_elements"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/09-Disappearing_Elements.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Disappearing Elements</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/drag_and_drop"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://github.com/flood-io/element/pull/46"><img width="21" alt="flood.io Element issue" src="https://playwright.dev/img/playwright-logo.svg" /></a> Drag and Drop</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/dropdown"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/11-Dropdown.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Dropdown</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/dynamic_content"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/12-Dynamic_Content.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Dynamic Content</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/dynamic_controls"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/13-Dynamic_Controls.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Dynamic Controls</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/dynamic_loading "><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/14-Dynamic_Loading.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a><a target="_blank" href="https://www.youtube.com/watch?v=cIevkkD_LB4&t=29m30s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> Dynamic Loading (using explicit wait for resilency)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/entry_ad"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/15-Entry_Ad.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Entry Ad</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/exit_intent"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://github.com/flood-io/element/pull/46"><img width="21" alt="flood.io Element issue" src="https://playwright.dev/img/playwright-logo.svg" /></a> Exit Intent</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/download"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/17-File_Download.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a><a target="_blank" href="https://www.youtube.com/watch?v=w0pYTX2t0pg&t=34m16s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> File Download (query HTTP HEADER first to make sure file contains something)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/upload"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE18_TheInternet_FileUpload_wJM5.4.1_v03.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/18-File_Upload.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> File Upload (issue in Element handling Windows vs Linux, also in Selenium)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/floating_menu"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/19-Floating_Menu.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Floating Menu</li>
<li>
<p><a target="_blank" href="https://the-internet.herokuapp.com/forgot_password"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/20-Forgot_Password.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a><a target="_blank" href="https://www.youtube.com/watch?v=w0pYTX2t0pg&t=30m16s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> Forgot Password</p>
</li>
<li>
<p><a target="_blank" href="https://the-internet.herokuapp.com/login"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE21_TheInternet_FormAuthentication_wJM5.4.1_v03.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/21-Form_Authentication.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a><a target="_blank" href="https://www.youtube.com/watch?v=cIevkkD_LB4&t=19m14s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> Form Authentication (Login)
<br /><a target="_blank" href="https://www.youtube.com/watch?v=cIevkkD_LB4&t=20m38s"><img alt="assertion on message" width="21" height="21" src="../images/youtube-21x21.png" /></a> Logout (appears after login, not listed in the app’s menu)</p>
</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/frames"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/22-Frames-Nested_Frames.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Frames (Nested)<br /><a target="_blank" href="https://the-internet.herokuapp.com/frames"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/22-Frames-iFrames.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Frames (iFrames)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/geolocation"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/23-Geolocation.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Geolocation</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/horizontal_slider"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/24-Horizontal_Slider.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Horizontal Slider</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/hovers"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/25-Hovers.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Hovers</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/infinite_scroll"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/26-Infinite_Scroll.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Infinite Scroll</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/inputs"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/27-Inputs.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Inputs</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/jqueryui/menu"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/28-JQueryUI.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> JQuery UI - Menus</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/javascript_alerts"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://github.com/flood-io/element/pull/76"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> JavaScript Alerts</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/javascript_error"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://github.com/flood-io/element/pull/76"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> JavaScript onload event error</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/key_presses"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/31-Key_Presses.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Key Presses</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/large"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/32-Large_DOM.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a><a target="_blank" href="https://www.youtube.com/watch?v=w0pYTX2t0pg&t=37m57s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> Large & Deep DOM</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/windows"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/33-Multiple_Windows.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Multiple Windows</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/nested_frames"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/34-Nested_Frames.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Nested Frames</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/notification_message"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/35-Notification_Message.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a><a target="_blank" href="https://www.youtube.com/watch?v=w0pYTX2t0pg&t=37m43s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> Notification Messages (Growl listener)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/redirector"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE36_TheInternet_Redirect Link_wJM5.4.1_v03.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/36-Redirect_Link.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Redirect Link</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/download_secure"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/37-Secure_File_Download.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Secure File Download</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/shifting_content"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/38-Shifting_Content.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Shifting Content</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/slow"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/39-Slow_Resources.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a><a target="_blank" href="https://www.youtube.com/watch?v=w0pYTX2t0pg&t=25m40s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> Slow Resources (blacklist slow resource with proxy server)</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/tables"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/blob/main/the-internet/AE40_TheInternet_Slow Resources_wJM5.4.1_v02.jmx"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/40-Data_Tables.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> (Sortable) Data Tables</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/status_codes"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/41-Status_Codes.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Status Codes</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/typos"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/42-Typos.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> Typos</li>
<li><a target="_blank" href="https://the-internet.herokuapp.com/tinymce"><img width="21" src="https://user-images.githubusercontent.com/300046/60136601-daccfd80-9761-11e9-8641-3bd7489f0afd.png" /></a> <a target="_blank" href="https://github.com/wilsonmar/jmeter-scripts/tree/main/the-internet/"><img width="21" alt="jmeter" src="https://user-images.githubusercontent.com/300046/124912784-965cd500-dfab-11eb-9dd1-d23966aeed48.png" /></a><a target="_blank" href="https://raw.githubusercontent.com/flood-io/element/master/examples/internet-herokuapp/43-WYSIWYG_Editor.ts"><img width="21" alt="flood.io Element script" src="https://playwright.dev/img/playwright-logo.svg" /></a> WYSIWYG Editor</li>
</ol>
<p><a name="ScriptIssues"></a></p>
<p>NOTE: Some scripts are under development.</p>
<hr />
<p><a name="IntroVideo"></a></p>
<h2 id="video-introduction">Video introduction</h2>
<amp-youtube data-videoid="ps--j4ePPbA" layout="responsive" width="480" height="270"></amp-youtube>
<p><br /></p>
<p><em>Below is the narration (transcript) of the video above.</em></p>
<p>Selenium makes use of older <strong>“Web Driver”</strong> APIs that control browsers from code written in a variety of programming languages.</p>
<p>But the new Google <strong>“Lighthouse”</strong> API exposes a comprehensive set of metrics that include performance <strong>timings</strong> for every manual action. They’ve been added to the “Audits” section of <strong>Chrome Developer Tools</strong> UI we’ve been using to figure out the classes and identifiers we code into Selenium scripts.</p>
<p>But since these <a target="_blank" href="https://developers.google.com/web/tools/lighthouse/">“Lighthouse” diagnostics</a> require manual effort each time, it can be tedious to keep repeating manual actions during each regression test. So we create <strong>scripts</strong> to automate manual actions in the Python (or JavaScript) programming language <strong>run</strong> by the <strong>PlayWright program</strong>. The program is <a href="#FloodLocalInstall">installed locally using instructions in the README.md file</a>.</p>
<p>There is currently no Docker image containing PlayWright. So it needs to be installed.</p>
<p>Typescript is a superset of the JavaScript programming language that control browsers.
Typescript is used because its <a href="#ElementCoding">transpiler</a> checks for errors sooner than JavaScript.</p>
<p>After scripts are <strong>git pushed</strong> to a remote <a href="#ScriptsInGitHub">GitHub</a> repository, others can <strong>git clone</strong> onto their machine to run.</p>
<p>Both PlayWright and Selenium control a <strong>single user</strong> GUI at a time. But we also want to see what happens when <strong>many users on many browser instances</strong> run at the same time exercising the website. We want to see how much each JavaScript control can impact both the client and server environment’s <strong>memory, CPU, and other resources</strong>. «<</p>
<h3 id="app-build">App Build</h3>
<p>But we don’t want our experiments to overload Dave’s public site for everyone else.</p>
<p>So we run the app as a <strong>Docker container</strong> within the <strong>AWS</strong> or other cloud.
The container and environment under test is built by invoking a <strong>build script</strong> that retrieves files from GitHub which makes use of a <strong>Docker image</strong> housed in Docker Hub and uses it to instantiate an app server for testing. It uses <strong>credentials</strong> for an AWS account associated with the appropriate groups with applicable permissions and roles needed.</p>
<p><a href="PlayWright"></a></p>
<h3 id="emulate-using-playwright">Emulate using PlayWright</h3>
<p>We use the <strong>PlayWright?</strong> service in the cloud (or on-premises) to emulate those many users by running automation scripts pulled from a <a href="#ScriptsInGitHub">GitHub repository</a>.</p>
<p>PlayWright scripts are a new innovation because it emulates <a href="#ManualActions">manual actions</a> within each user’s browser.</p>
<p>Historically, Java code used by <strong>JMeter</strong> or Scala code used by <strong>Gatling</strong> emulate load by simply emulating just the exchange of what is sent between client browser and server. But a lot of work now occur inside the client browser.</p>
<p>Multi-user Flood runs are controlled by <strong>run parameters</strong> such as the number of virtual users being emulated. <strong>Run shell scripts</strong> can be used to manage various runs, test data, and results over various <strong>variations</strong> in run conditions.</p>
<h3 id="instrumentation">Instrumentation</h3>
<p>It’s important to have a <strong>metrics dashboard</strong> that helps people make sense of measurements collected over time. This article talks about use of <strong>New Relic</strong>.</p>
<p>We have an <a href="#NewRelicInstrAWS">instrumentation script</a> which installs an <strong>agent</strong> (newrelic-infra) to run alongside the app. Because the sample app under test was written in the Ruby language, the agent is installed as a rpm file (<strong>newrelic.rpm</strong>) specified in the <strong>Gemfile</strong> referenced during installation.</p>
<p>During runs, the agent sends notifications about <strong>events</strong> to a process installed using a <strong>Docker image in Docker Hub from New Relic</strong>. The <strong>monitoring process</strong> transfers events collected by agents
to a metrics <strong>dashboard</strong> at <a target="_blank" href="https://www.newrelic.com/">newrelic.com</a>.</p>
<p>To validate communications, a <strong>license key</strong> obtained manually from the New Relic website is installed when the agent is installed.</p>
<p>The license key, plus <strong>IP address and port number</strong> of the metrics collector are provided to Flood so that it can add its metrics to New Relic over time. These metrics include the number of users, transaction response times, the rate of transactions per second processed, network bandwidth throughput, and transaction pass/fail error rates.</p>
<p>When we also add the <strong>cost</strong> of each run, we would be able to identify which configurations would provide the most profitable number of <strong>transactions per dollar</strong>.</p>
<!-- We don't create an <strong>instrumented Docker image</strong> that has the agent already installed because the license differs for each installation.
-->
<hr />
<p><a name="Architecture"></a></p>
<h2 id="recap-architectural-components">Recap: Architectural components</h2>
<p><a target="_blank" href="https://user-images.githubusercontent.com/300046/60763986-3be7b180-a03d-11e9-9002-2e9f3512c589.jpg"><img alt="flood-the-internet-v12-1900x959.jpg" width="1900" src="https://user-images.githubusercontent.com/300046/60763986-3be7b180-a03d-11e9-9002-2e9f3512c589.jpg" /></a></p>
<p>While learning on a local machine such as a Mac, Linux laptop, or Windows PC:</p>
<ol>
<li>
<p>Chrome Developer Tools is used to extract identifiers, classess, and selectors in HTML and CSS to programmatically reach each GUI control used in each TypeScript.</p>
</li>
<li>
<p>The setup.sh CLI shell script is installed to run scripts to emulate a <strong>single user</strong>’s manual actions on a Google’s Chrome browser.</p>
</li>
</ol>
<p>The system under (load) test (SUT) instantiated using Docker:</p>
<ol>
<li>The “the-internet” web app from a Docker image</li>
<li>The <strong>monitoring process</strong>, which can be in another container or as another pod within the same container as the web app.</li>
</ol>
<p>Additionally, the GUI of two cloud services:</p>
<ol>
<li>
<p><a target="_blank" href="https://www.flood.io/">https://flood.io</a> which runs TypeScript to emulate the browsers for multiple users, which imposes an artificial load.</p>
</li>
<li>
<p><a target="_blank" href="https://blog.newrelic.com/product-news/steal-this-dashboard/">A New Relic dashboard</a> which provides visualization (line graphs) of metrics collected during runs over time and under various configurations.</p>
</li>
</ol>
<p><a name="ScriptsInGitHub"></a></p>
<h3 id="project-folders-from-github">Project folders from GitHub</h3>
<p>These steps are done manually on your local machine.</p>
<ol>
<li>Create or navigate to a project <strong>folder</strong> for this effort.</li>
<li>
<p>Clone automation scripts:</p>
<pre><strong>git clone <a target="_blank" href="https://github.com/flood-io/element/tree/master/examples/internet-herokuapp">https://github.com/flood-io/element/tree/master/examples/internet-herokuapp</a></strong></pre>
</li>
<li>Review script coding.</li>
</ol>
<hr />
<p><a name="HowTo"></a></p>
<h2 id="how-to-manual-steps">How To Manual Steps</h2>
<p>Here are the manual steps to make use of instructions in this tutorial:</p>
<p>NOTE: This assumes that you know how to open and use a <a target="_blank" href="https://wilsonmar.github.io/mac-finder/">Terminal program on a Mac</a> or a Git Bash on Windows.</p>
<ol>
<li>
<p>Clone the PlayWright script.</p>
</li>
<li>
<p>Get an AWS service account linked to AWS Roles assigned to Groups with Permissions.
See <a target="_blank" href="https://wilsonmar.github.io/aws-onboarding">https://wilsonmar.github.io/aws-onboarding</a>, which describes editing files which store credentails (UserName and Password) in environment files which are invoked during runs to populate environment variables referenced by automation scripts.</p>
</li>
<li>
<p>Install within AWS “the-internet” app under test from DockerHub
<a href="#FloodScriptUpdate">Flood Script Update-aws-ec2</a></p>
<p>NOTE: Automation for installation within the Azure cloud is on our Roadmap.</p>
</li>
<li>Obtain logins to accounts for <a target="_blank" href="https://newrelic.com/products/application-monitoring">New Relic APM</a>, <a target="_blank" href="https://newrelic.com/products/browser-monitoring">New Relic Browser</a>, and <a target="_blank" href="https://newrelic.com/products/infrastructure">New Relic Infrastructure</a>.</li>
<li>
<p>Install <strong>NewRelic’s monitoring process</strong></p>
<p><a href="#NewRelicAgentInstall">NewRelicAgentInstall-aws-ec2.sh</a></p>
</li>
<li>Define <strong>initial run parameters</strong> to control runs of flood.io in the cloud (Flood.io account, etc.) in <a href="#flood-run-e2e">flood-run-e2e.sh</a>.</li>
<li>
<p><a href="#flood-run-e2e">Run “flood-run-e2e” to launch runs in flood.io</a> at scheduled times to take advantage of AWS Spot Rates.</p>
<p>PROTIP: Automation (shell or Python) scripts to bring up servers and conduct runs are designed to minimize spend (not waste money on idle resources). Services are deleted after each run.</p>
</li>
<li><a href="#ConfigNewRelic">Configure New Relic dashboard</a></li>
<li>Review warning and error messages. Analyze statistics collected by the Chrome Browser’s Lighthouse and sent to NewRelic’s dashboard in the cloud.</li>
<li>
<p>Identify the <strong>fastest realistic ramp-up</strong> time (without causing errors) by re-running with different rates which running users are added.</p>
</li>
<li>Experiment with changes to JavaScript, HTML, and CSS in client application code in attempts to reduce timings and resource usage on browsers.</li>
<li>
<p>Modify TypeScript accordingly to identify the <strong>impact</strong> of changes made to the application before reruns.</p>
<p>NOTE: Concern about metrics is more about what is happening in client browsers than in the application server. The application under test here (“the-internet”) does not make use of separate <strong>authentication servers</strong>, a <strong>database</strong>, nor other back-end services.</p>
</li>
<li>
<p>Run separate <strong>isolated scenarios</strong> to isolate transactions to study:</p>
<ol>
<li>
<strike>Registration (to establish new users)</strike>
</li>
<li>Login (to load authentication)</li>
<li>Menus and static pages (when users are exploring)</li>
<li>User data entry filling out forms (editing <strike>and saving form data into a database</strike>)</li>
<li>
<strike>Client-side performance during batch reporting, backup, restore, or other back-end processing</strike>
<p><br /></p>
</li>
</ol>
</li>
<li>
<p>Identify the <strong>mix of transactions</strong> in a standardized run of different transactions at a time.</p>
<p>PROTIP: This exercise stands up <strong>only one instance</strong> each and not multiple instances in a cluster for High Availability (HA).
<!-- These shell scripts install and call <a target="_blank" href="https://wilsonmar.github.io/terraform">Terraform</a> to instantiate, and Ansible to configure. Python is used to customize.
TODO: Autoscaling be done so that developers habitually use workflows needed for production usage.
--></p>
</li>
<li>
<strike>Identify optimal scale-up and scale-down (instance type) configurations</strike>
</li>
<li>
<strike>Identify optimal scale-out and scale-in configurations</strike>
</li>
</ol>
<p><a name="CodeSelenium"></a></p>
<h2 id="automating-the-internet-using-selenium">Automating the-internet using Selenium</h2>
<p>T.J. Myer wrote in <a target="_blank" href="http://www.tjmaher.com/p/programming-projects.html">his website</a> June - July 2015 a series describing his adventures coding Selenium on Dave’s website:</p>
<ol>
<li><a target="_blank" href="http://www.tjmaher.com/2015/06/simple-manipulation-of-login-page.html">
Sketch out the simple manipulation of a Login page</a></li>
<li><a target="_blank" href="http://www.tjmaher.com/2015/06/creating-common-utilities-for-webdriver.html">
Draft Common Utilities</a></li>
<li><a target="_blank" href="http://www.tjmaher.com/2015/07/how-java-stores-constants-static-final.html">
Storing Constants: static finals vs enums</a></li>
<li><a target="_blank" href="http://www.tjmaher.com/2015/07/storing-locators-for-web-elements.html">
Storing Locators for Web Elements</a></li>
<li><a target="_blank" href="http://www.tjmaher.com/2015/07/the-internet-page-object-model-examples.html">
The Page Object Model</a></li>
<li><a target="_blank" href="http://www.tjmaher.com/2015/07/the-internet-writing-automated-test.html">
Writing the Automated Test</a></li>
</ol>
<p>References:</p>
<ul>
<li><a target="_blank" href="http://bit.ly/se-exceptions-java">http://bit.ly/se-exceptions-java</a> list of exceptions in Selenium (2015)</li>
<li><a target="_blank" href="http://bit.ly/se-exceptions-howto">http://bit.ly/se-exceptions-howto</a> exception handling in Selenium (2015)</li>
</ul>
<p>Many of the issues addressed above also need to be addressed by any app automation tool.</p>
<p><a name="ElementCoding"></a></p>
<h2 id="coding-flood-element-typescript">Coding Flood Element Typescript</h2>
<p>Typescript is a superset of the JavaScript programming language that control browsers.
Flood Element makes use of the Typescript language, which transpiles to JavaScript.
Typescript is used because its <a href="#ElementCoding">transpiler</a> checks for errors sooner than with JavaScript.</p>
<p>QUESTION: <a target="_blank" href="https://www.geeksforgeeks.org/difference-between-typescript-and-javascript/">Typescript</a></p>
<ul>
<li>Typescript variables are statically typed (not dynamic as in JavaSript)</li>
<li>Typescript can be coded using object-oriented constructs</li>
</ul>
<p>Rather than directly referencing application control IDs,
so that when an app changes, just one change is needed to make all tests pass again.
This is like Selenium <a target="_blank" href="https://www.youtube.com/watch?v=cIevkkD_LB4&t=23m41s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> <strong>page object helpers</strong> from http://bit.ly/po-html-elements Yandex and http://bit.ly/po-page-factory built into Selenium. <a target="_blank" href="https://www.youtube.com/watch?v=cIevkkD_LB4&t=28m05s"><img alt="YouTube" width="21" height="21" src="../images/youtube-21x21.png" /></a> Similarly, Base Page Object library to migrate commands from one version to another.</p>
<h2 id="run-element-script-from-client-cli">Run Element script from client CLI</h2>
<p>An example summary report:</p>
<p><tt>This flood simulated up to 1 users across 1 grid in us-east-1 for 7 minutes. The mean response time was 916ms with a standard deviation of 1,285 ms. The median was 169 ms and the 90th percentile was 3,010 ms. The maximum was 3,014 ms. A maximum of 12 rpm with a mean of 4 rpm was observed. 101 transactions passed with 0 failed.
</tt></p>
<p><a name="SetupAWS"></a></p>
<h3 id="setup-aws-manually">Setup AWS manually</h3>
<p>Based on <a target="_blank" href="https://wilsonmar.github.io/aws-onboarding">https://wilsonmar.github.io/aws-onboarding</a></p>
<p>On an internet browser such as Google Chrome, Apple Safari, or Microsoft Edge:</p>
<ol>
<li>To limit financial exposure (to like $25 or whatever), buy a <a target="_blank" href="https://usa.visa.com/pay-with-visa/cards/prepaid-cards.html">pre-paid reloadable Visa</a> gift <a target="_blank" href="https://aws.amazon.com/premiumsupport/knowledge-center/accepted-payment-methods/">(debit) card</a> <a target="_blank" href="https://usa.visa.com/pay-with-visa/find-card/get-prepaid-card">pre-paid online</a> (which has an expiration date and some have a monthly service fee). The <a target="_blank" href="https://www.drawpayvisa.com/">Drawpay card</a> provides a 1% refund on purchases. Others provide fee-Free cash withdrawal at over 25,000 MoneyPass ATMs</li>
<li>Open AWS master account with email.</li>
<li>In IAM, lock down master account.</li>
<li>Create Security Group.</li>
<li>In IAM, create service account.</li>
<li>Define service account with permissions.</li>
<li>Store key pair (credentials) for service account locally.</li>
<li>
<p>Select your AWS region.</p>
<h3 id="script-a--instantiate-aws-docker-in-ec2-build-script">Script A : Instantiate AWS Docker in EC2 build script</h3>
</li>
<li>Get to AWS EC2.</li>
<li>Choose and AMI - Ubuntu 16.04 LTS</li>
<li>Select EC2 instance type (t2.micro Free Tier eligible can handle up to 50 users), or “m5axlarge”.</li>
<li>[10:23] Define Security Group add “All TCP Traffic”.</li>
<li>Assign Key Pair name ___</li>
<li>[2:29] Download Key Pair</li>
<li>Save to file ???</li>
<li>[2:37] Launch Instance</li>
<li>
<p>PROTIP: Name instance “the-internet-app” so that files referring to this name (such as newrelicc-infra.yml) don’t have to be changed.</p>
<h3 id="terminal---aws-key-pair">Terminal - AWS Key Pair</h3>
</li>
<li>In Terminal store .pem file downloadd</li>
<li>
<p>SSH into instance.</p>
<h3 id="terminal---aws-key-pair-1">Terminal - AWS Key Pair</h3>
<p>Inside “the-internet” terminal:</p>
</li>
<li>
<p>[4:08] Within app server to hold “the-internet”, install prerequisites (GPG certs, Docker):</p>
<pre>
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
# verify:
sudo systemctl status docker
sudo docker --version
DOCKER_IMAGE="gprestes/the-internet"
sudo docker pull "$DOCKER_IMAGE"
sudo docker run -d -p 7080:5000 "$DOCKER_IMAGE"
CONTAINER_ID=$( docker ps | grep "$DOCKER_IMAGE" | cut -d " " -f 1 )
WANIP4=$( curl http://canhazip.com" ) # public IP4 address.
</pre>
</li>
<li>
<p>[12:04] On a browser, verify external access to “the-internet” app using the external IP address from AWS, such as:</p>
<p><a target="_blank" href="http://52.91.73.157:7080/">http://52.91.73.157:7080/</a></p>
<p><a name="NewRelicAgentInstall"></a></p>
<h3 id="setup-newrelic-in-a-ec2-ubuntu-containing-docker">Setup “NewRelic” in a EC2 Ubuntu containing Docker</h3>
<p>In a browser:</p>
</li>
<li>Login to AWS using your service account.</li>
<li>Get to AWS EC2.</li>
<li>Choose and AMI - Ubuntu 16.04 LTS</li>
<li>Select EC2 instance type (t2.micro Free Tier eligible can handle up to 50 users), or “m5axlarge”.</li>
<li>[10:23] Define Security Group add “All TCP Traffic”.</li>
<li>Assign Key Pair name ___</li>
<li>[2:29] Download Key Pair</li>
<li>Save to file ??? [15:07] ssh -i “ubuntu.pem” [email protected]</li>
<li>[2:37] Launch Instance</li>
<li>
<p>Name instance “NewRelic”</p>
<h3 id="save-newrelic-license-key">Save NewRelic License Key</h3>
<p>Based on <a target="_blank" href="https://www.ctl.io/developers/blog/post/tutorial-protecting-sensitive-info-docker">*</a></p>
</li>
<li>
<p>[8:13] On the NewRelic web page Account Settings, highlight and save the License Key text</p>
</li>
<li>
<p>Open file <code class="language-plaintext highlighter-rouge">./secrets.env</code></p>
<p>NOTE: The secrets.env file is referenced in the <code class="language-plaintext highlighter-rouge">docker-compose.yml</code> file cloned from GitHub.</p>
<pre>
docker-compose build
docker-compose up
</pre>
</li>
<li>
<p>[15:29] Update <code class="language-plaintext highlighter-rouge">newrelicc-infra.yml</code> with license_key value.</p>
<p><a name="NewRelicInstrAWS"></a></p>
<h3 id="install-newrelic-instrumentation-agent">Install NewRelic instrumentation agent</h3>
</li>
<li>[8:13] Switch back to the terminal</li>
<li>
<p>TODO: Script to do this:</p>
<pre>
# TODO: Replace with reference to secrets.env by docker-compose
echo "license_key: a46bf7d3b4043cdfffcab3aaef677d29cc60d6be" | sudo tee -a /etc/newrelic-infra.yml
curl https://download.newrelic.com/infrastructure_agent/gpg/newrelic-infra.gpg | sudo apt-key add -
cat /etc/lsb-release
# [13:33] Based on NewRelic web page
# https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/installation/
printf "deb [arch=amd64] https://download.newrelic.com/infrastructure_agent/linux/apt bionic main" \
| sudo tee -a /etc/apt/sources.list.d/newrelic-infra.list
sudo apt-get update
sudo apt-get install newrelic-infra -y
# Verify: more /etc/newrelic-infra.yml
# TODO: automate this:
vi /etc/newrelic-infra.yml
sudo vi /etc/newrelic-infra.yml
# TODO: Identify the Docker ID to a variable:
$CONTAINER_ID=$(sudo docker ps)
# (value such as ba965ff40ef7)
sudo docker exec -i -t "$CONTAINER_ID" /bin/bash
# TODO: From inside NewRelic process:
sudo docker cp ba965ff40ef7:/app/server.rb .
# [19:31] Reboot:
sudo systemctl restart newrelic-infra
</pre>
</li>
<li>
<p>[19:57] Verify that NewRelic recognizes events from “the-internet-app” (subsituting the account number), such as:</p>
<p>https://infrastructure.newrelic.com/accounts/2256749/hosts</p>
<h3 id="install-newrelic-agent-in-running-the-internet-app">Install NewRelic agent in running “the-internet-app”</h3>
</li>
<li>
<p>[20:38] Get inside Docker container:</p>
<pre>
# TODO: Identify the Docker ID to a variable:
$CONTAINER_ID=$(sudo docker ps)
# (value such as ba965ff40ef7)
sudo docker exec -i -t "$CONTAINER_ID" /bin/bash
</pre>
<p>Based on https://docs.newrelic.com/docs/agents/ruby-agent/installation/install-new-relic-ruby-agent</p>
</li>
<li>
<p>[23:17] Add <code class="language-plaintext highlighter-rouge">gem 'newrelic_rpm'</code> in Gemfile.</p>
<pre>
# TODO: From inside NewRelic process (example root@ba965ff40ef7):
sudo docker cp "$CONTAINER_ID:/app/server.rb" .
sudo docker cp server.rb "$CONTAINER_ID:/app/"
# Backup existing
cp Gemfile Gemfile.backup
# TODO: Automate
??? gem 'newrelic_rpm
# For the server.rb which is larger it’s not possible to echo and cat the file,
# so I copied it locally and edit it to include the require 'newrelic_rpm'
sudo docker cp ba965ff40ef7:/app/server.rb .
# And copy it back to the container:
sudo docker cp server.rb ba965ff40ef7:/app/
</pre>
</li>
<li>
<p>Verify</p>
<h3 id="script-b--add-in-serverrb-and-create-new-docker-image">Script B : Add in server.rb and create new Docker image</h3>
<p>This is so the Docker image can be used for scaling.</p>
<pre>
sudo docker run -d -p 7080:5000 ruby-bundle-update
# TODO: Identify the Docker ID to a variable:
$CONTAINER_ID=$(sudo docker ps)
# (value such as 363ddc8f7439)
sudo docker exec -i -t "$CONTAINER_ID" /bin/bash
# Save updated files:
sudo docker cp server.rb "$CONTAINER_ID:/app/"
sudo docker cp Gemfile "$CONTAINER_ID:/app/"
# Get inside:
sudo docker exec -i -t "$CONTAINER_ID" /bin/bash
sudo docker ps
sudo docker commit "$CONTAINER_ID" ruby-bundle-update
sudo docker stop "$CONTAINER_ID"
sudo docker ps
sudo docker run -d -p 7080:5000 ruby-bundle-update
sudo docker ps
# TODO: copy file newrelic.yml from external
touch 1
vi q
vi 1
mv 1 newrelic.yml
vi newrelic.yml
ls -lart # to verify manually
# TODO: Identify the Docker ID to a variable:
$CONTAINER_ID=$(sudo docker ps)
# (value such as 178e6dc45ab7)
sudo docker cp newrelic.yml "$CONTAINER_ID:/app/"
sudo docker commit "$CONTAINER_ID" final-version
sudo docker stop "$CONTAINER_ID"
# Verify:
sudo docker images
# Restart:
sudo docker run -d -p 7080:5000 final-version
sudo docker ps
history > /tmp/history.file
</pre>
<p><a name="FloodScriptUpdate"></a></p>
<h3 id="update-element-ts-script-for-floodio">Update Element .ts script for flood.io</h3>
</li>
<li>
<p>Update the IP address in the script (several locations):</p>
<pre>await browser.visit('http://18.208.170.2:7080/')</pre>
<h3 id="instrument-script-for-newrelic">Instrument script for NewRelic</h3>
</li>
<li>Get license from newrelic.com</li>
<li>
<p>Insert license into script</p>
<p>NOTE: <a target="_blank" href="https://github.com/ThyWoof/geek-movie-shop">https://github.com/ThyWoof/geek-movie-shop</a></p>
<h3 id="script-c--save-instrumented-docker-image-to-dockerhub-for-reuse">Script C : Save instrumented Docker image to DockerHub for reuse</h3>
</li>
<li>Docker save</li>
</ol>
<p><a name="PrepFlood"></a></p>
<h2 id="perpare-for-flood">Perpare for Flood</h2>
<ol>
<li>If you don’t have a <a target="_blank" href="https://www.flood.io/">flood.io</a> account, get one (manually).</li>
<li>Confirm your account via email.</li>
<li>Log into Flood.io.</li>
<li>Get license token.</li>
</ol>
<p><a name="flood-run-e2e"></a></p>
<h2 id="run-flood-against-app-in-aws-under-instrumentation">Run flood against app in AWS under instrumentation</h2>
<p>This step runs a shell script file at<br />
<a target="_blank" href="https://github.com/wilsonmar/DevSecOps/master/flood-io/flood-run-e2e.sh">https://github.com/wilsonmar/DevSecOps/master/flood-io/flood-run-e2e.sh</a></p>
<p>It is customized from an example in <a target="_blank" href="https://docs.flood.io/#end-to-end-example">Flood docs</a>.</p>
<ol>
<li>If you don’t have a GitHub account, get one.</li>
<li>
<p>Use an internet browser to view:</p>
<p><a target="_blank" href="https://github.com/wilsonmar/DevSecOps/">
https://github.com/wilsonmar/DevSecOps/</a></p>
</li>
<li>
<p>Click “Fork” button to copy the repository under your own account.</p>
</li>
<li>Open a Terminal.</li>
<li>
<p>Navigate to the containing folder where GitHub creates folders.
Make a folders as necessary.</p>
</li>
<li>
<p>Clone the whole DevSecOps repo:</p>
<pre>git clone <a target="_blank" href="https://github.com/wilsonmar/DevSecOps/">https://github.com/wilsonmar/DevSecOps/</a> </pre>
</li>
<li>
<p>Navigate into the folder:</p>
<pre>cd DevSecOps
cd flood-io</pre>
</li>
<li>
<p>Edit the environment file using your favorite editor, such as:</p>
<pre>nano flood-env.sh</pre>
</li>
<li>Insert the license token from flood.io.</li>
<li>Save the file</li>
<li>
<p>Run the environment file to load variables into memory.</p>
</li>
<li>
<p>Edit the script using your favorite editor, such as:</p>
<pre>nano flood-run-e2e.sh</pre>
</li>
<li>Define other parameters: run conditions.</li>
<li>
<p>Validate run pre-conditions.</p>
</li>
<li>Initiate run.</li>
<li>Stop run.</li>
<li>Collect run results.</li>
<li>Analyze run results / Generate visualizations.</li>
<li>
<p>Display summary statistics.</p>
</li>
<li>Git add, commit, and push the changed script to GitHub.</li>
</ol>
<p><a name="ConfigNewRelic"></a></p>
<h2 id="config-new-relic-dashboard">Config New Relic Dashboard</h2>
<p>Questions about several other dimensions, such as:</p>
<ul>
<li>What is the impact on the cloud bill (costs) of that cool JavaScript UI code?</li>
<li>What is the capacity of a chosen instance type (such as the free tier t2.micro)?</li>
<li>How much more is needed to run the anticipated peak load?</li>
<li>What happens when that peak load is exceeded?
<br /><br /></li>
</ul>
<p>https://docs.newrelic.com/docs/insights/use-insights-ui/manage-dashboards
https://learn.newrelic.com/get-started-with-apm
https://learn.newrelic.com/dashboards-and-data-apps
https://docs.newrelic.com/docs/plugins/plugins-new-relic/custom-dashboards-custom-views
https://blog.newrelic.com/product-news/steal-this-dashboard/</p>
<h2 id="other-apm">Other APM</h2>
<p>A full list of APM tools:</p>
<ul>
<li>New Relic</li>
<li>Dynatrace OneAgent</li>
<li>Dynatrace AppMon</li>
<li>AppDynamics</li>
<li>NudgeAPM</li>
</ul>
<p><a name="VerifySecurity"></a></p>
<h2 id="security-scans">Security scans</h2>
<p>In today’s ransomware environment, we all need to be extra vigilant to ensure security.</p>
<ol>
<li>
<p>Install <a target="_blank" href="https://inspec.io/">https://inspec.io</a>
(created by Chef)</p>
</li>
<li>
<p>Install <a target="_blank" href="https://github.com/docker/doccker-bench-security">https://github.com/docker/doccker-bench-security</a></p>
</li>
<li>
<p>Install CIS (Center for Internet Security) benchmarks for specific distributions and versions of Linux. For example:</p>
<ul>
<li>Distribution independent Linux</li>
<li>Debian Linux 8</li>
<li>Ubuntu Linux 16.04 LTS</li>
<li>Amazon Linux 2</li>
<li>Centos Linux 7</li>
<li>Oracle Linux 7</li>
<li>Red Hat Enterprise Linux 7</li>
<li>SUSE Linux Enterprise 12</li>
</ul>
</li>
</ol>
<p>The Linux Audit Framework is used to identify potential security weaknesses or policy violations</p>
<ol>
<li>
<p>Install</p>
<pre>sudo apt install auditd
pidof auditd</pre>
</li>
<li>
<p>Add rules and list them</p>
<pre>sudo auditctl -w /usr/bin/dockerd -k docker
sudo auditctl -l</pre>
</li>
<li>Turn auditing on.</li>
<li>
<p>Analyze report</p>
<pre>sudo aureport</pre>
</li>
</ol>
<p><a target="_blank" href="https://app.pluralsight.com/library/courses/securing-docker-platform/table-of-contents">Securing the Docker Platform</a>
by Nigel Brown Released 21 Jun 2018</p>
<hr />
<p><a name="Playwright"></a></p>
<h2 id="playwright">Playwright</h2>
<p><img align="right" width="150" alt="microsoft" src="https://raw.githubusercontent.com/microsoft/playwright/main/packages/recorder/public/playwright-logo.svg" />
Under development are our emulation (test) scripts that call the <strong>Playwright API</strong> that controls Chromium, Firefox, and WebKit internet browsers on macOS, Linux, and Windows machines.</p>
<p>Playwright’s marketing home page is at:<br /></p>
<ul><a target="_blank" href="https://playwright.dev/"><strong>https://playwright.dev</strong></a><br />
</ul>
<p>Playwright was open-sourced by Microsoft on April 16, 2016, with first tag on<br />
<a target="_blank" href="https://github.com/microsoft/playwright/tags?after=v0.11.1">Jan 31, 2020 at <a target="_blank" href="https://github.com/microsoft/playwright">https://github.com/microsoft/playwright</a>.</a></p>
<p>The library maintained by <a target="_blank" href="https://github.com/microsoft/playwright/graphs/contributors">several active contributors</a>:</p>
<ul>
<li><a target="_blank" href="https://www.linkedin.com/in/pavel-feldman-24b0041/">Pavel Feldman at MS SF</a></li>
<li><a target="_blank" href="https://www.linkedin.com/in/dgozman/">Dmitry Gozman</a></li>
<li><a target="_blank" href="https://www.linkedin.com/in/aslushnikov/">Andrey Lushnikov</a> (<a target="_blank" href="https://playwright.dev/python/community/conference-videos">videos</a>)
<br /><br /></li>
</ul>
<ol>
<li>
<p>Subscribe to the product’s social media, led by <a target="_blank" href="https://www.linkedin.com/in/debbie-obrien/">Debbie O’Brien, Sr. Tech PM @Microsoft</a></p>
<ul>
<li><a target="_blank" href="https://discord.com/servers/playwright-807756831384403968">discord.com/servers/playwright</a></li>
<li><a target="_blank" href="https://twitter.com/playwrightweb">Twitter/x @playwrightweb</a></li>
<li><a target="_blank" href="https://dev.to/playwright">dev.to/playwright</a></li>
<li><a target="_blank" href="https://www.youtube.com/Playwrightdev">youtube.com/Playwrightdev</a></li>
<li><a target="_blank" href="https://playwright.dev/community/conference-videos">playwright.dev/community/conference-videos</a></li>
<li><a target="_blank" href="https://stackoverflow.com/questions/tagged/playwright">stackoverflow.com/questions/tagged/playwright”></a></li>
<li><a target="_blank" href="https://testguild.me/zcgcga">testguild.me/zcgcga</a></li>
<li><a target="_blank" href="https://playwright.dev/docs/writing-tests">https://playwright.dev/docs/writing-tests</a>.
<br /><br /></li>
</ul>
</li>
<li>
<p>Create an environment for Node to run.</p>
</li>
<li>
<p><a target="_blank" href="https://www.youtube.com/watch?v=4-LwodVujTg&list=PLQ6Buerc008ed-F9OksF7ek37wR3y916p">View Debbie’s YouTube series</a> to get started.</p>
<ol>
<li><a target="_blank" href="https://www.youtube.com/watch?v=JdMkZUePkSE&list=PLQ6Buerc008ed-F9OksF7ek37wR3y916p&index=2">VIDEO</a>: Install Playwright within VSCode (instead of CLI git clone)</li>
<li>Add GitHub Actions in file <tt>playwrite.yml</tt> created within repo folder <tt>.github/workflows</tt>
<br /><br /></li>
</ol>
</li>
<li>Each language that calls the API has its own documentation:
<ul>
<li><a targete="_blank" href="https://playwright.dev/python/docs/intro">Python using PyTest</a></li>
<li><a targete="_blank" href="https://playwright.dev/docs/intro">Node.js (JavaScript) running dotnet installing NUnitof MSTest</a></li>
<li><a targete="_blank" href="https://playwright.dev/dotnet/docs/intro">.NET C#</a></li>
<li><a targete="_blank" href="https://playwright.dev/java/docs/intro">Java installed using mvn</a>
<br /><br /></li>
</ul>
<h2 id="python-scripting">Python scripting</h2>
<p>The PlayWright documention talks about a <tt>test-sample.py</tt> script.</p>
<p>PROTIP: You can save hours of headache by using the repo I created after getting the <tt>uv</tt> package to work.</p>
</li>
<li>Open a Bash scripting CLI such as Terminal or, better yet, Warp CLI from <a target="_blank" href="https://warp.dev/">https://warp.dev</a>.</li>
<li>Create a folder where Git will create a folder using these commands:
<pre>
git clone https://github.com/bomonike/playwright-scripts; cd playwright-scripts
</pre>
</li>
<li>Create a folder where Git will create a folder using these commands:
<pre>
cd test-example
python -m venv .venv
source .venv/bin/activate
uv pip install pytest pytest-playwright playwright -U
playwright install # browser binaries: Chromium, Firefox, WebKit, FFMPEG
# NOTE: cached in /Users/johndoe/Library/Caches/ms-playwright/ to run Playwright tests.
pytest test_example.py --browser chromium --headed --debug
</pre>
</li>
<li>Run a sample test in the language of your choice from above. For Python:
<pre>pytest test_example.py --browser chromium --headed --debug
</pre>
</li>
<li>
<p>Generate emulation (test) scripts by recording actions as a human user.</p>
<p>Accelerate test creation and insights with AI-powered tooling.</p>
</li>
<li>
<p>Setup Microsoft’s <a target="_blank" href="https://azure.microsoft.com/en-us/products/playwright-testing/">Playwright Testing Service in the Azure cloud</a> (<a target="_blank" href="https://techcommunity.microsoft.com/blog/AppsonAzureBlog/introducing-azure-app-testing-scalable-end-to-end-app-validation/4440496">Part of “Azure App Testing”) at:</a></p>
<p><a target="_blank" href="https://azure.microsoft.com/en-us/products/playwright-testing/">https://azure.microsoft.com/en-us/products/playwright-testing</a>
(formerly at<br />
<a target="_blank" href="https://playwright.microsoft.com/"><strong>https://playwright.microsoft.com</strong></a>)</p>
<p>Within https://portal.azure.com/#home : Azure Web Tesing at https://portal.azure.com/#view/HubsExtension/AssetMenuBlade/~/overview/assetName/AzureAppTesting/extensionName/Microsoft_Azure_CloudNativeTesting which consists of two services:</p>
<ul>
<li>Playwright Workspaces for functional QA testing</li>
<li>Azure Load Testing for performance testing</li>
</ul>
</li>
<li>
<p>Read the documentation at https://learn.microsoft.com/en-us/azure/app-testing/</p>
<p>Under your subscription, create a globally unique <strong>workspace</strong> of up to 64 alphanumeric characters (no dashes, etc.).</p>
<p><a target="_blank" href="https://res.cloudinary.com/dcajqrroq/image/upload/v1712692112/playwright-cloud-init-2450x1554_vutu4i.png"><img alt="playwright-cloud-init-2450x1554.png" src="https://res.cloudinary.com/dcajqrroq/image/upload/v1712692112/playwright-cloud-init-2450x1554_vutu4i.png" /></a></p>
</li>
<li>
<p>pricing</p>
<p>The same price is charged across the limited number of regions where the service is available during preview (East US, West US 3, East Asia, West Europe).</p>
<p>See the Pricing page at
https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account?icid=playwright-testing</p>
<p>The choice is embedded in the URL used to call the service, CLI variable used within test script code:</p>
<p><tt>export PLAYWRIGHT_SERVICE_URL=wss://eastus.api.playwright.microsoft.com/api/authorize/connectSession
echo PLAYWRIGHT_SERVICE_URL=”$PLAYWRIGHT_SERVICE_URL”</tt></p>
<p>Generate the API Access token <tt>PLAYWRIGHT_SERVICE_ACCESS_TOKEN=</tt> and store it securely in an encrypted vault until needed.</p>
<p>The service provides browser and OS combinations (up to 50 in parallel, at scale).
To run 50 Playwright tests:</p>
<pre><strong>npx playwright test --workers=50 --config=playwright.service.config.ts</strong></pre>
<p>For example: <a target="_blank" href="https://github.com/microsoft/playwright-testing-service/blob/main/samples/get-started/playwright.service.config.ts">this playwright.service.config.ts file</a>.</p>
<p>If each of 50 takes 12 seconds on average, you’ll be billed for 10 “test minutes”, calculated as 50 tests x 12 seconds ÷ 60 seconds in a minute. Each “Test minute” is when a Playwright test runs in the service’s cloud browsers.</p>
<p>After 100 test minutes during a <a target="_blank" href="https://learn.microsoft.com/en-us/azure/playwright-testing/how-to-try-playwright-testing-free">free 30-day trial</a>, <a target="_blank" href="https://azure.microsoft.com/en-us/pricing/details/playwright-testing/">pricing</a> is $0.01/test minute on Linux and $0.01/test minute on Windows, billed by the second.</p>
<p>QUESTION: Would running apps hosted within Azure remove variability in time going through the public internet?</p>
<ul>
<li><a target="_blank" href="https://azure.microsoft.com/en-us/blog/announcing-microsoft-playwright-testing-scalable-end-to-end-testing-for-modern-web-apps/">Announcement Oct 4, 2023</a></li>
<li><a target="_blank" href="https://learn.microsoft.com/en-us/azure/playwright-testing/quickstart-run-end-to-end-tests?wt.mc_id=mpt_azblog20231004_blog_cnl&tabs=playwrightcli">Quickstart</a></li>
<li><a target="_blank" href="https://learn.microsoft.com/en-us/azure/playwright-testing/">https://learn.microsoft.com/en-us/azure/playwright-testing</a>
<br /><br /></li>
</ul>
</li>
<li>
<p><a target="_blank" href="https://checksum.ai/blog/the-engineering-of-an-llm-agent-system">build AI agents to generate Playwright tests</a></p>
</li>
<li>
<p>QUESTION: Use Playwright scripts to perform load testing?</p>
<p>We need to control <a target="_blank" href="https://portal.azure.com/">https://portal.azure.com</a>, particularly to create an AI Cognitive group in order to check the “Microsoft Responsible AI Agreement”. That is needed before automation such as Terraform and Bicep are allowed to create AI-related resources.</p>
</li>
</ol>
<p>In response to https://www.reddit.com/r/QualityAssurance/comments/1cq4ja8/learning_playwright/</p>
<p>A tutorial by Artem is provided at https://www.bondaracademy.com/course/sdet-with-playwright
(and on his Udemy class) for $139 for a quiz, or $499 for test case coding and code reviews using JavaScript (not Python).</p>
<p><a target="_blank" href="https://www.youtube.com/watch?v=pq20Gd4LXeI&t=29s">VIDEO course</a> by Mukesh Otwani.</p>
<hr />
<h2 id="resources">Resources</h2>
<p>PlayWright.</p>
<p><a href="https://wilsonmar.github.io/flood-the-internet/">Flood the Internet (control JavaScript API)</a> was originally published by Wilson Mar at <a href="https://wilsonmar.github.io">Index</a> on October 25, 2025.</p>