{"title":"Index","generator":"Jekyll","link":[{"@attributes":{"rel":"self","type":"application\/atom+xml","href":"https:\/\/wilsonmar.github.io\/feed.xml"}},{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io"}}],"updated":"2025-12-21T06:51:31+00:00","id":"https:\/\/wilsonmar.github.io\/","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io\/","email":"wilsonmar@gmail.com"},"entry":[{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/food\/"}},"id":"https:\/\/wilsonmar.github.io\/food","published":"2025-12-20T00:00:00+00:00","updated":"2025-12-20T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>How to eat deliciously with less salt, potassium, glucose.<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/food\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"Italiano\"><img alt=\"Italiano\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/it.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"Napali\"><img alt=\"Napali\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ne.png\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffood%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <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>\n  <li><a href=\"#food-apps\" id=\"markdown-toc-food-apps\">Food apps<\/a><\/li>\n  <li><a href=\"#purines-uric-acid-and-gout\" id=\"markdown-toc-purines-uric-acid-and-gout\">Purines, Uric Acid, and Gout<\/a><\/li>\n  <li><a href=\"#minerals\" id=\"markdown-toc-minerals\">Minerals<\/a><\/li>\n  <li><a href=\"#calcium--pth-testing\" id=\"markdown-toc-calcium--pth-testing\">Calcium &amp; PTH Testing<\/a>    <ul>\n      <li><a href=\"#sodium\" id=\"markdown-toc-sodium\">Sodium<\/a><\/li>\n      <li><a href=\"#potassium\" id=\"markdown-toc-potassium\">Potassium<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <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>\n      <li><a href=\"#low-potassium-vegetables\" id=\"markdown-toc-low-potassium-vegetables\">Low-potassium vegetables:<\/a><\/li>\n      <li><a href=\"#canning-leaching-out-potassium\" id=\"markdown-toc-canning-leaching-out-potassium\">Canning, Leaching out potassium<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#cooking\" id=\"markdown-toc-cooking\">Cooking<\/a>    <ul>\n      <li><a href=\"#cooking-eggs\" id=\"markdown-toc-cooking-eggs\">Cooking eggs<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#dairy\" id=\"markdown-toc-dairy\">Dairy<\/a><\/li>\n  <li><a href=\"#sugar--carbs-glucose\" id=\"markdown-toc-sugar--carbs-glucose\">Sugar &amp; Carbs: Glucose<\/a><\/li>\n  <li><a href=\"#uric-acid\" id=\"markdown-toc-uric-acid\">Uric Acid<\/a><\/li>\n  <li><a href=\"#dash-diet\" id=\"markdown-toc-dash-diet\">Dash Diet<\/a><\/li>\n  <li><a href=\"#maple-syrup\" id=\"markdown-toc-maple-syrup\">Maple Syrup<\/a><\/li>\n  <li><a href=\"#grow-your-own\" id=\"markdown-toc-grow-your-own\">Grow your own<\/a><\/li>\n  <li><a href=\"#can--glass-jars\" id=\"markdown-toc-can--glass-jars\">Can = glass jars<\/a><\/li>\n  <li><a href=\"#chocolates\" id=\"markdown-toc-chocolates\">Chocolates<\/a><\/li>\n  <li><a href=\"#big-on-line-stores\" id=\"markdown-toc-big-on-line-stores\">Big on-line stores<\/a><\/li>\n  <li><a href=\"#specialty-on-line-stores\" id=\"markdown-toc-specialty-on-line-stores\">Specialty on-line stores<\/a><\/li>\n  <li><a href=\"#waters\" id=\"markdown-toc-waters\">Waters<\/a>    <ul>\n      <li><a href=\"#glass-bottles\" id=\"markdown-toc-glass-bottles\">Glass bottles:<\/a><\/li>\n      <li><a href=\"#plastic-bottles\" id=\"markdown-toc-plastic-bottles\">Plastic bottles:<\/a><\/li>\n      <li><a href=\"#not-recommended-acidic\" id=\"markdown-toc-not-recommended-acidic\">Not recommended acidic:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#meats\" id=\"markdown-toc-meats\">Meats<\/a><\/li>\n  <li><a href=\"#veggies\" id=\"markdown-toc-veggies\">Veggies<\/a><\/li>\n  <li><a href=\"#bread-from-live-yeast\" id=\"markdown-toc-bread-from-live-yeast\">Bread from live yeast<\/a><\/li>\n  <li><a href=\"#quinoa\" id=\"markdown-toc-quinoa\">Quinoa<\/a><\/li>\n  <li><a href=\"#butter\" id=\"markdown-toc-butter\">Butter<\/a><\/li>\n  <li><a href=\"#caffeine\" id=\"markdown-toc-caffeine\">Caffeine<\/a><\/li>\n  <li><a href=\"#resources\" id=\"markdown-toc-resources\">Resources<\/a><\/li>\n  <li><a href=\"#articles\" id=\"markdown-toc-articles\">Articles<\/a><\/li>\n  <li><a href=\"#rodent-resistant-containers\" id=\"markdown-toc-rodent-resistant-containers\">Rodent-resistant containers<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<h2 id=\"do-you-control-your-food-intake\">Do you control your food intake?<\/h2>\n\n<p>It\u2019s 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>\n\n<p>Foods from covenience stores and markets are manufactured for shelf life, which means unhealthy levels of salt, sugar, and other presevatives.<\/p>\n\n<h2 id=\"food-apps\">Food apps<\/h2>\n\n<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 &amp; compare over 3 million food products.\nProvides Nutri-score of healthiness and impact on planet.\nFor Android and iOS, crafted with Flutter and Dart and open-sourced at https:\/\/github.com\/openfoodfacts\/smooth-app\nSince 2012.\nDocs at https:\/\/openfoodfacts.github.io\/smooth-app\/<\/p>\n\n<p>For $100\/year, <a target=\"_blank\" href=\"https:\/\/www.prepear.com\/\">prepear.com<\/a>\npresents a tagline \u201cDeals to Meals\u201d which covers the entire workflow of eating:<\/p>\n<ul>\n  <li>Identify money-saving deals<\/li>\n  <li>Design meals based on those deals<\/li>\n  <li>Structure how to prepare those meals.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<hr \/>\n\n<h2 id=\"purines-uric-acid-and-gout\">Purines, Uric Acid, and Gout<\/h2>\n\n<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.\n<strong>Uric acid<\/strong> is carried in the blood to the kidneys, which filters it out in urine.<\/p>\n\n<p>Uric acid levels can also rise when taking diuretics (\u201cwater pills\u201d), low\u2011dose aspirin, some blood pressure drugs, and anti\u2011rejection drugs after transplants.<\/p>\n\n<p>If too much uric acid is created or kidneys do not clear enough of it, uric acid builds up (hyperuricemia) and forms needle\u2011like monosodium urate crystals in joints, causing gout attacks (often in the big toe). Dehydration can also trigger gout attacks.<\/p>\n<ul>\n  <li>https:\/\/www.mayoclinic.org\/diseases-conditions\/gout\/symptoms-causes\/syc-20372897<\/li>\n  <li>https:\/\/www.niams.nih.gov\/health-topics\/gout<\/li>\n  <li>https:\/\/medlineplus.gov\/gout.html<\/li>\n  <li>https:\/\/www.webmd.com\/diet\/foods-high-in-purines<\/li>\n  <li>https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC9459802\/<\/li>\n<\/ul>\n\n<h2 id=\"minerals\">Minerals<\/h2>\n\n<p>Magnesium maintains nerve and muscle function, a healthy immune system and strong bones.\nIn Blood tests for Magnesium, the normal range is 1.6 to 2.6 mg\/dL.<\/p>\n\n<p>Iron makes hemoglobin for healthy red blood cells, from red beans, liver (high in colesterol), ???<\/p>\n\n<p>Phospherous<\/p>\n\n<h2 id=\"calcium--pth-testing\">Calcium &amp; PTH Testing<\/h2>\n\n<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>\n\n<p>The \u201cPTH, Intact\u201d 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>\n\n<p>Normal PTH range is 18.4 to 80.1 picograms per milliliter (pg\/mL).<\/p>\n\n<p>Install the <a target=\"_blank\" href=\"https:\/\/calciumpro.com\/\">free Calcium Pro app<\/a> (by \u201cCalcium Science\u201d) on <a target=\"_blank\" href=\"https:\/\/apps.apple.com\/us\/app\/calcium-pro\/id587386613\">iPhone<\/a> or Android.\nDeveloped 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>\n<ul>\n  <li>PTH triggers the release of small amounts of calcium from your bones into your bloodstream.<\/li>\n  <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>\n  <li>PTH signals small intestine to absorb more calcium from food eaten.\n   <br \/><br \/>\nThe test identifies parathyroid disorders such as severe osteoporosis, or mineral\/bone disorders.<\/li>\n<\/ul>\n\n<p>Hyperparathyroidism (too high) can indicate not enough Vitamin D or chronic kidney disease (which cause the parathyroid glands to become overactive).<\/p>\n\n<p>Symptoms of hyperparathyroidism include bone and joint pain, constipation, nausea, vomiting, kidney stones, lack of appetite, and fatigue.<\/p>\n\n<p>Hypoparathyroidism (too low) can be from excessive calcium or Vitamin D intake.<\/p>\n\n<p>Resources:<\/p>\n<ul>\n  <li>https:\/\/www.parathyroid.com\/parathyroid-disease.htm<\/li>\n  <li>https:\/\/www.niddk.nih.gov\/health-information\/endocrine-diseases\/primary-hyperparathyroidism<\/li>\n  <li>https:\/\/www.ucsfbenioffchildrens.org\/medical-tests\/parathyroid-hormone-(pth)-blood-test<\/li>\n  <li>https:\/\/medlineplus.gov\/lab-tests\/parathyroid-hormone-pth-test\/<\/li>\n  <li>https:\/\/testdirectory.questdiagnostics.com\/test\/test-detail\/35202\/pth-intact-without-calcium?cc=MASTER\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"Sodium\"><\/a><\/p>\n\n<h3 id=\"sodium\">Sodium<\/h3>\n\n<p>Food labels percentages are based on <strong>2300mg (one teaspoon)<\/strong> of Sodium as the recommended consumption per day.<\/p>\n\n<p>CAUTION: Many products (such a bullion) sold as \u201cLow Sodium\u201d merely replace sodium with Potassium.<\/p>\n\n<p><a name=\"Potassium\"><\/a><\/p>\n\n<h3 id=\"potassium\">Potassium<\/h3>\n\n<p>kidney.com notes that I can protect my kidneys by watching how much I consume potassium, which affects blood pressure.<\/p>\n\n<p>A potassium level of 5 or higher detected in the blood, called hyperkalemia,\nmeans the kidneys are not able to remove excess potassium. That can cause irregular heartbeat or a heart attack.<\/p>\n\n<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>\n\n<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>\n<ul>\n  <li>Instead of red meats (beef), eat eggs, chicken, turkey, vegetarian dishes\n    <ul>\n      <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>\n      <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/chicken-fajitas\">Chicken Fajitas<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/chicken-salad\">Chicken Salad<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/chicken-noodle-soup\">Chicken Noodle Soup<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li>Instead of tomatos, <a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/tomato-free-bbq-sauce\">BBQ sauce<\/a><\/li>\n  <li>Instead of bananas,<\/li>\n  <li>Instead of mushrooms,<\/li>\n  <li>Instead of black tea and coffee, Postum,<\/li>\n  <li>Instead of molassas, maple syrup,<\/li>\n  <li>Instead of oranges, citrus<\/li>\n  <li>Instead of avocados,<\/li>\n  <li>Instead of potatos, consider cauliflour, jacima\n    <ul>\n      <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/gingered-sweet-potato-apple-salad\">Gingered Sweet Jacima-Apple Salad<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li>Instead of dairy, rice milk\n<br \/><br \/><\/li>\n<\/ul>\n\n<h2 id=\"low-potassium-fruits-fresh-or-dried\">Low potassium fruits (fresh or dried):<\/h2>\n<ul>\n  <li>Apple\t1 medium<\/li>\n  <li>Applesauce\t\u00bd cup<\/li>\n  <li>Apricots, canned in juice\t\u00bd cup (drain liquid first)<\/li>\n  <li>Blackberries\t\u00bd cup<\/li>\n  <li>Blueberries\t\u00bd cup<\/li>\n  <li>Cherries\t\u00bd cup<\/li>\n  <li>Cranberries\t\u00bd cup<\/li>\n  <li>Fruit cocktail\t\u00bd cup (drain liquid first)<\/li>\n  <li>Grapes or grape juice\t\u00bd cup<\/li>\n  <li>Grapefruit\t\u00bd whole<\/li>\n  <li>Mandarin oranges\t\u00bd cup<\/li>\n  <li>Peaches\t1 small fresh or \u00bd cup canned<\/li>\n  <li>Pears\t1 small fresh or \u00bd cup canned<\/li>\n  <li>Pineapple\t\u00bd cup<\/li>\n  <li>Pineapple juice\t4 ounces<\/li>\n  <li>Plums\t1 whole<\/li>\n  <li>Raspberries\t\u00bd cup<\/li>\n  <li>Strawberries\t\u00bd cup<\/li>\n  <li>Tangerines\t1 whole<\/li>\n  <li>\n    <p>Watermelon\tLimit to one cup\n<br \/><br \/><\/p>\n\n    <ul>\n      <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/very-berry-tofu-smoothie\">Very Berry Tofu Smoothies<\/a><\/li>\n      <li>STORE: <a target=\"_blank\" href=\"https:\/\/sunnyfruit.com\/products\/organic-dried-persimmons\">Sunnyfruit dried persimmons $7.69<\/a><\/li>\n    <\/ul>\n  <\/li>\n<\/ul>\n\n<h3 id=\"low-potassium-vegetables\">Low-potassium vegetables:<\/h3>\n<ul>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/grilled-vegetables\">Grilled Vegetables<\/a><\/p>\n  <\/li>\n  <li>Alfalfa sprouts\t\u00bd cup<\/li>\n  <li>Asparagus\t6 spears<\/li>\n  <li>Beans, green or wax\t\u00bd cup<\/li>\n  <li>Broccoli (raw or cooked from frozen)\t\u00bd cup<\/li>\n  <li>Green cabbage\t\u00bd cup<\/li>\n  <li>Red cabbage\t\u00bd cup<\/li>\n  <li>Carrots, cooked\t\u00bd cup<\/li>\n  <li>Cauliflower\t\u00bd cup<\/li>\n  <li>Celery\t1 stalk<\/li>\n  <li>Corn?\n    <ul>\n      <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/birthday-popcorn\">Birthday Popcorn<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li>Cucumber\t\u00bd cup<\/li>\n  <li>Eggplant\t\u00bd cup<\/li>\n  <li>Kale\t\u00bd cup<\/li>\n  <li>Lettuce<\/li>\n  <li>White mushrooms, raw\t\u00bd cup ???<\/li>\n  <li>Onions\t\u00bd cup<\/li>\n  <li>Peas, green\t\u00bd cup<\/li>\n  <li>Peppers\t\u00bd cup<\/li>\n  <li>Yellow squash\t\u00bd cup<\/li>\n  <li>Zucchini squash\t\u00bd cup<\/li>\n  <li>Radish\t\u00bd cup<\/li>\n  <li>\n    <p>Water chestnuts, canned\t\u00bd cup\n<br \/><br \/><\/p>\n  <\/li>\n  <li>Beets ???<\/li>\n  <li>Watercress ???<\/li>\n  <li>Pumpkin ???<\/li>\n  <li>Tofu?<\/li>\n<\/ul>\n\n<h3 id=\"canning-leaching-out-potassium\">Canning, Leaching out potassium<\/h3>\n\n<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>\n\n<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>\n\n<p>American supermarkets such as Walmart and Albertsons display isles and isles of packages from the industrial food complex of over-processed food.<\/p>\n\n<p>I get the \u201cNo salt\u201d or \u201cLightly Salted\u201d.<\/p>\n\n<p>References:<\/p>\n<ul>\n  <li>https:\/\/estore.uga.edu\/C27063_ustores\/web\/product_detail.jsp?PRODUCTID=4495&amp;SINGLESTORE=true<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/youtube.com\/shorts\/qZUCBlPVTWo?si=WDDmiVcF5PUy_--X\">Fry chicken<\/a> without adding salt.<\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"Cooking\"><\/a><\/p>\n\n<h2 id=\"cooking\">Cooking<\/h2>\n\n<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>\n\n<p>https:\/\/based.cooking\/\nhttps:\/\/github.com\/binabh\/based-cooking-app<\/p>\n\n<ul>\n  <li>Instead of Chicken McNuggets from McDonalds or Chick-Fil-A,\n    <ul>\n      <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/healthy-chicken-nuggets\">Healthy Chicken Nuggets<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/glazed-carrots\">Glazed Carrots<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/eggplant-dip\">Eggplant dip<\/a><\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/grilled-veggie-kabobs\">Grilled Veggie Kabobs<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/cauliflower-herb-soup\">Cauliflower Herb Soup<\/a><\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/chef-duane-vegan-african-stew\">Vegan African Stew<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/vegetable-spanish-paella\">Vegetable Spanish Paella<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/bibimbap-oatmeal\">Korean Bibimbap Oatmeal<\/a><\/li>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/chickpea-tikka-masala\">Chickpea Tikka Masala<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/curry-ginger-pea-dip\">Curry Ginger Pea Dip<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/maple-balsamic-chicken\">Maple-Balsamic Chicken<\/a><\/li>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/mexican-style-stuffed-peppers\">Mexican Style Stuffed Peppers<\/a><\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/bbq-pineapple-chicken\">BBQ Pineapple Chicken<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/es\/nutrition\/recipes\/pad-thai-de-pollo\">Pad Thai de pollo<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/chicken-broccoli-stir-fry\">Chicken Broccoli Stir Fry<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/stuffed-pumpkin-meatloaf\">Stuffed Pumpkin Meatloaf<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/creamy-curry-rice-apple-salad\">Creamy Curry Rice &amp; Apple Salad<\/a><\/li>\n  <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>\n  <li><a traget=\"_blank\" href=\"https:\/\/www.kidney.org\/nutrition\/recipes\/smoked-chicken-and-apple-soup\">Smoked Chicken and Apple Soup<\/a><\/li>\n<\/ul>\n\n<p>From among <a target=\"_blank\" href=\"https:\/\/www.amazon.com\/s?k=low+potassium+cookbook\">On Amazon: Low-Potassium cookbooks<\/a>:<\/p>\n<ul>\n  <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 &amp; Easy Low-Sodium, Low-Potassium Recipes with a 14-Day Meal Plan, Grocery Lists &amp; Full Nutrition Facts to Help Manage CKD [Print Replica] Kindle Edition<\/a><\/li>\n<\/ul>\n\n<h3 id=\"cooking-eggs\">Cooking eggs<\/h3>\n\n<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>\n\n<p>Rapid cooling in an ice bath halts the cooking process, preserving the ideal texture and preventing overcooking.<\/p>\n\n<p>Remove shell under a thin stream of running water. (The water helps get under the shell and lift it off the egg.)<\/p>\n\n<h2 id=\"dairy\">Dairy<\/h2>\n\n<p>Get all 3 in <a target=\"_blank\" href=\"https:\/\/www.carrollsirishgifts.com\/usa\/search\/?q=kerrygold&amp;lang=en_US\">Kerry Gold Butter buscuits<\/a>, mailed from Caroll\u2019s Gifts in Ireland. $10 US for two boxes.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/cougarcheese.wsu.edu\/DirectionsWEB\/webcart_category.php#CHEESE\">\nWashington State Univerity\u2019s Cougar Cheese<\/a> got a <a target=\"_blank\" href=\"https:\/\/www.bonappetit.com\/story\/cougar-gold-cheddar-cheese\">Highly Recommend\u201d rating on Bon Appetit<\/a>! \u201cRefrigerate upon arrival\u201d \n$25.00 per 30-ounce can (plus shipping) in 8 flavors: \n   Cougar Gold\u00ae (aged 14 months),\n   Natural Cheddar (aged at least a year),\n   Smoky Cheddar,\n   Viking (similar to a Monterey Jack),\n   Dill Garlic,\n   Sweet Basil,\n   Hot Pepper,\n   Crimson Fire<\/p>\n\n<h2 id=\"sugar--carbs-glucose\">Sugar &amp; Carbs: Glucose<\/h2>\n\n<p>Our bodies convert carbohydrates to sugar.<\/p>\n\n<p>The \u201cHemoglobin A1C (HbA1c)\u201d blood test at a doctor\u2019s 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>\n\n<ul>\n  <li>Normal: below 5.7%<\/li>\n  <li>Prediabetes: 5.7% to 6.4%<\/li>\n  <li>Diabetes: 6.5% or above\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>A1C of 7% roughly corresponds to an average blood sugar level of 154 mg\/dL (8.6 mmol\/L).<\/p>\n\n<p>Our pancreas produces insulin that travels through our blood to break down sugar. \nType 1 Diabetes is when the pancreas does not make enough insulin. \nThose with Type 1 Diabetes need to take insulin several times during the day.\nThere 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>\n\n<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>\n\n<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.\nx\nTxhe glucose test at the doctor\u2019s 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>\n\n<p>After you identify a baseline  \u2013 about 104 mg\/dL (milligrams per deciliter)after fasting (waking up after 8 hours sleep), I\u2019m 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>\n\n<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>\n\n<ul>\n  <li>A can of water-washed peaches took me to <strong>140<\/strong> mg\/dL.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<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>\n\n<p>Normally, two hours after eating, levels should be back to baseline.<\/p>\n\n<p>REMEMBER: Eating protein before sugar intake and exercise after eating helps to reduce levels.<\/p>\n\n<p>The pancreas does not differentiate between natural vs. artificial sugar (Sucralose).<\/p>\n\n<p>\u201cRegular\u201d canned fruit:<\/p>\n\n<ul>\n  <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>\n<\/ul>\n\n<p>\u201cNo Sugar Added\u201d and \u201c100% Juice\u201d does not mean \u201clow-sugar\u201d!<\/p>\n\n<ul>\n  <li>\n    <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 \u00a2\/oz) Del Monte \u201c<strong>100% Juice<\/strong>\u201d 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>\n  <\/li>\n  <li>\n    <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 \u201c<strong>No Sugar Added<\/strong>\u201d Sliced Peaches has <strong>6g<\/strong> of carbs (when drained of juice).<\/p>\n  <\/li>\n  <li>\n    <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 \u201cimmersed in artificially sweetened water\u201d.<\/p>\n  <\/li>\n  <li>\n    <p>Costco peaches\n   <br \/><br \/><\/p>\n  <\/li>\n<\/ul>\n\n<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>\n\n<p>References:<\/p>\n<ul>\n  <li>https:\/\/www.ynhhs.org\/articles\/what-is-healthy-blood-sugar<\/li>\n<\/ul>\n\n<h2 id=\"uric-acid\">Uric Acid<\/h2>\n\n<p>Normal value: 3.7 - 9.2 mg\/dL<\/p>\n\n<p>Too much leads to painful gout and damaged to kidneys.<\/p>\n\n<h2 id=\"dash-diet\">Dash Diet<\/h2>\n\n<p>They say blood pressure is low by eating lots of whole grains, fruits, vegetables, and low-fat dairy. Look for foods that don\u2019t 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\u2019s also high in protein and fiber and avoids sugary drinks, sweets, and red meats.<\/p>\n\n<p>NEW: The amount of <strong>potassium<\/strong> is now required to be on food labels.<\/p>\n\n<h2 id=\"maple-syrup\">Maple Syrup<\/h2>\n\n<p>Producers in both Vermont and Quebec claim their\u2019s is best.\n<a target=\"_blank\" href=\"https:\/\/www.thekitchn.com\/best-maple-syrup-brands-23437077\">Blind taste tests<\/a>:\nNo synthetic colors\nNo high-fructose corn syrup\nNo artificial sweeteners\nNo artificial flavors<\/p>\n\n<p>NOTE: Serving sizes are \u201c30ml\u201d (2 teaspoons), which is way less than what we really pour.<\/p>\n\n<ul>\n  <li>\n    <p>Target\u2019s own \u201cGood &amp; Gather\u201d 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\u201d<\/p>\n  <\/li>\n  <li>\n    <p>Costco\u2019s <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) \u201cKirkland Signature Organic Pure Maple Syrup\u201d<\/p>\n  <\/li>\n  <li>\n    <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&amp;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)\n   <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>\n  <\/li>\n  <li>\n    <p>Anderson\u2019s Pure Maple Syrup $5.28 for 8 ounces at Walmart \u2013 praised for being darker, thicker, and very \u201cmaple\u2011y\u201d without weird aftertastes.\u200b caramel-y flavor<\/p>\n  <\/li>\n  <li>\n    <p>Runamok (Vermont) \u2013 recommended by chefs for high\u2011quality single\u2011origin syrups and interesting infused versions.\u200b<\/p>\n  <\/li>\n  <li>\n    <p>Escuminac Late Harvest Maple Syrup (Quebec Canada) \u2013 often called out as a top \u201cluxury\u201d 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>\n  <\/li>\n<\/ul>\n\n<h2 id=\"grow-your-own\">Grow your own<\/h2>\n\n<p>When you grow veggies from seen, you\u2019re assured of the lack of pesticides (because you didn\u2019t put it there).<\/p>\n\n<p>(But what about the dirt?)<\/p>\n\n<p>Here are the veggies:<\/p>\n\n<ul>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>Snow peas<\/p>\n  <\/li>\n  <li>\n    <p><strong>Potatoes<\/strong><\/p>\n  <\/li>\n  <li>\n    <p>Red Bell Peppers<\/p>\n  <\/li>\n  <li>\n    <p>Bush beans<\/p>\n  <\/li>\n  <li>\n    <p>Snap peas<\/p>\n  <\/li>\n  <li>\n    <p>Beets. Its leaves takes like spinich.<\/p>\n  <\/li>\n  <li>\n    <p>Cucumbers<\/p>\n  <\/li>\n  <li>\n    <p>Catelupe<\/p>\n  <\/li>\n  <li>\n    <p>Corn<\/p>\n  <\/li>\n  <li>\n    <p>Carrots<\/p>\n  <\/li>\n  <li>\n    <p>Mushrooms<\/p>\n  <\/li>\n  <li>\n    <p>Watermelon<\/p>\n  <\/li>\n  <li>\n    <p>Stinging Nettle<\/p>\n  <\/li>\n  <li>\n    <p>Bok choy (Chinese cabbage)<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"can--glass-jars\">Can = glass jars<\/h2>\n\n<p>https:\/\/canninglids.com\/<\/p>\n\n<h2 id=\"chocolates\">Chocolates<\/h2>\n\n<p>Chocolates are made from fermented cocoa. \nCocoa is indiginous as a spicy drink in Latin America and brought to the New World.<\/p>\n\n<p>During the second half of the 19th century, Swiss chocolatiers created the dense, sweet chocolate that is popular today.<\/p>\n\n<p>In the United States, chocolate manufactuers prioritize a long shelf life.\nSo 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>\n\n<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>\n\n<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 \u2014 usually under inhumane conditions.\nGhana is the world\u2019s largest cocoa producer after Cote d\u2019Ivoire. West Africa is the world\u2019s largest producer of cocoa.<\/p>\n\n<h2 id=\"big-on-line-stores\">Big on-line stores<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.Amazon.com\/\">Amazon.com<\/a> has a \u201cgourmet\u201d 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>\n\n<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>\n\n<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>\n\n<ul>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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\u2019s<\/a><\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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)\n   <br \/><br \/><\/p>\n  <\/li>\n<\/ul>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.target.com\/\">Target<\/a>, surprisingly, has great prices on many items despite their \u201cbougy\u201d vibe. They have a <a target=\"_blank\" href=\"https:\/\/www.target.com\/s?searchTerm=gluten+free+food\">gluten free food section online<\/a>.<\/p>\n\n<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>\n\n<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>\n\n<ul>\n  <li>Dark chocolate with coconut (individually wrapped)<\/li>\n  <li>real Cylon Cinnemon<\/li>\n  <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>\n  <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>\n  <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>\n<\/ul>\n\n<h2 id=\"specialty-on-line-stores\">Specialty on-line stores<\/h2>\n\n<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>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.goldbelly.com\/robertas-pizza\/16940-brick-oven-pizza-6-pack\">$20 each<\/a> - Roberta\u2019s Wood Fired Pizza \u2014 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 \u201cthe best frozen pizza\u201d<\/a>)\n   <br \/><br \/><\/li>\n<\/ul>\n\n<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>\n\n<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 &amp; cauliflower meal kits<\/a>, tomato-free salsas, pasta, pasta sauce, pesto, <a target=\"_blank\" href=\"https:\/\/www.cucinaandamore.com\/collections\/all?system_collections=artichokes&amp;q=\">artichokes<\/a>, fruit jams, balsamic vinegar, wafer rolls.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.shopmove.co\">ShopMove.co<\/a> offers cooked meals and snacks \u201cfrom Michelin chefs and celebrity bakers\u201d. Free shipping over $35.\nTheir $6 Lemon Rice is lemoney. I think there\u2019s too much dough for me on ther $6 Hong Kong Pineapple Buns. Their $12 Chicken Tikka Masala has a bit of hot spice.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.JustAsianFood.com\">JustAsianFood.com<\/a> has snacks from China, Japan, Thailand, etc.<\/p>\n\n<ul>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/collections\/snacks\/products\/michelles-golden-sana-banana-chips-12-35oz?_pos=1&amp;_sid=639376dfe&amp;_ss=r\">Michelle\u2019s Golden Sana Banana Chips 12.35oz<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/collections\/snacks\/products\/regent-labzter-3-5oz?_pos=1&amp;_sid=b85bece52&amp;_ss=r\">Regent Labzter 3.5oz<\/a> chips<\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/collections\/southeast-asian-snacks\/products\/dragonfly-lobster-crackers-1-76oz?_pos=1&amp;_sid=d1fb914b4&amp;_ss=r\">Dragonfly Lobster Crackers 1.76oz<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/products\/liyuan-roasted-organic-chestnuts-5-3oz?_pos=18&amp;_sid=7e67092b6&amp;_ss=r\">Liyuan Roasted Organic Chestnuts 5.3oz<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/collections\/snacks\/products\/liyuan-organic-chestnuts-8-8oz?_pos=1&amp;_sid=026e8013d&amp;_ss=r\">Liyuan Organic Chestnuts 8.8oz<\/a><\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/products\/homei-roasted-chestnuts-organic-3-6oz?_pos=17&amp;_sid=99ca967fc&amp;_ss=r\">Homei Roasted Chestnuts - Organic 3.6oz<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/products\/golden-coins-almond-tofu-agar-mix-6-2oz?_pos=1&amp;_sid=4d0299e66&amp;_ss=r\">Golden Coins Almond Tofu Agar Mix 6.2oz<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/products\/asian-best-lychee-in-syrup-20oz?_pos=28&amp;_sid=7b2d7df28&amp;_ss=r\">Asian Best Lychee In Syrup 20oz<\/a> $3.39<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/products\/companion-lychee-in-heavy-syrup-20oz?_pos=3&amp;_sid=2dae5e8b0&amp;_ss=r\">Companion Lychee In Heavy Syrup 20oz<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/justasianfood.com\/products\/ming-river-lychees-in-syrup-20oz-567g?_pos=1&amp;_sid=2dae5e8b0&amp;_ss=r\">Ming River Lychees In Syrup 20oz<\/a> $3.39\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.Balduccis.com\">Balduccis.com<\/a> offers top brands from Europe<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.igourmet.com\/\">igourmet.com<\/a><\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.mouth.com\/\">mouth.com<\/a> snacks, drinks, bacon, jerkey<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.foodzie.com\">foodzie.com<\/a><\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.MarketHallFoods.com\">MarketHallFoods.com<\/a><\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.ImportFood.com\">ImportFood.com<\/a><\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.Zingermans.com\/\">Zingermans.com<\/a> tinned fish, $200 packaged DIY ruben sandwich (too expensive)<\/p>\n\n<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>\n\n<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>\n\n<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\u2019s Central Coast. no fillers or artificial preservatives. Founder Aishwarya Iyer\u2019s ancestors were salt farmers in South India. A drizzle of \u201cAwake\u201d accentuates pasta, roast chicken, and crusty bread. \u201cAlive\u201d evokes a vibrancy in vinaigrettes, raw vegetables, and, something sweet and bitter like dark chocolate.<\/p>\n\n<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\">\u201champers\u201d (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 &amp; Nut Flapjack and Chocolate Pearl (a cut above your regular chocolate chip). $25 for delivery to the US.<\/p>\n\n<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>\n\n<hr \/>\n\n<h2 id=\"waters\">Waters<\/h2>\n\n<p>Good water makes for better-tasting tea, coffee, rice, etc.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.healthline.com\/health\/food-nutrition\/alkaline-water-benefits-risks#where-to-get-it\">\nAlkaline water<\/a> (above neutral pH of 7) is better for you than acidic water.<\/p>\n\n<p>NOTE: There are 33.814 fluid ounces in a liter. 25.36 fluid ounces in a pint = 750 ml.\nA half-liter bottle contains 16.9 fluid ounces.<\/p>\n\n<p>Among <a target=\"_blank\" href=\"https:\/\/www.aquamaestro.com\/all-brands\">all brands<\/a>:<\/p>\n\n<h3 id=\"glass-bottles\">Glass bottles:<\/h3>\n\n<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\u2019s described as \u201cmedium bubbly\u201d, which is supposed to enhance taste. It\u2019s offered at many fine (especially Italian) restaurants because it\u2019s 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>\n\n<ul>\n  <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>\n  <li>Costco ?<\/li>\n  <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>\n  <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>\n  <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> \n   <br \/><\/li>\n<\/ul>\n\n<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 \u201cBordeaux\u201d bottles. Its pH is a neutral 7.2.<\/p>\n<ul>\n  <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>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.hildon.com\/collections\">16.90 pounds per liter (still or sparking), from their website<\/a>\n   <br \/><\/li>\n<\/ul>\n\n<h3 id=\"plastic-bottles\">Plastic bottles:<\/h3>\n\n<p><strong>Icelandic<\/strong> I think is best due to its naturally <strong>highest (most alkaline) pH of 8.4<\/strong> from the pristine \u00d6lfus Spring in vulcanic Iceland.<\/p>\n<ul>\n  <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>\n  <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>\n   <br \/><\/li>\n<\/ul>\n\n<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>\n<ul>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.hildon.com\/collections\">16.90 pounds per liter (still or sparking), from their website<\/a>\n   <br \/><\/li>\n<\/ul>\n\n<h3 id=\"not-recommended-acidic\">Not recommended acidic:<\/h3>\n\n<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>\n\n<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>\n\n<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 \u201cThe Queen of Mineral Waters\u201d, has been bottled since Roman days. While the water contains carbonic acid, its sparkling water is not overpowering.<\/p>\n<ul>\n  <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.\n   <br \/><\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"meats\"><\/a><\/p>\n\n<h2 id=\"meats\">Meats<\/h2>\n\n<p>Many wild game meats (venison, pheasant, quail, rabbit, etc.) are known to be high in purines which cause gout inflammation.<\/p>\n\n<p>That\u2019s also the case with organ meats (\u201csweetbreads\u201d) such as liver, kidney, tongue, heart.<\/p>\n\n<p>Salmon seems to be an exception to fish with high purine levels, in that most gout sufferers don\u2019t have a problem with it.<\/p>\n\n<ul>\n  <li>\n    <p>Korean BBQ Bulgogi \u201cfire meat\u201d (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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>Lamb from <a target=\"_blank\" href=\"https:\/\/www.LavaLakeLamb.com\/\">LavaLakeLamb.com<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Scottish grouse, and other wild game meat from <a target=\"_blank\" href=\"https:\/\/www.DArtagnan.com\/\">DArtagnan.com<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Seafoods from <a target=\"_blank\" href=\"https:\/\/www.vitalchoice.com\/\">vitalchoice.com<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Iberico ham (popular in Barcelona), cheeses, and condiments from <a target=\"_blank\" href=\"https:\/\/www.FormaggioKitchen.com\/\">FormaggioKitchen.com<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Applewood-smoked meats from <a target=\"_blank\" href=\"https:\/\/www.Nueskes.com\/\">Nueskes.com<\/a><\/p>\n  <\/li>\n<\/ul>\n\n<p><a name=\"Veggies\"><\/a><\/p>\n\n<h2 id=\"veggies\">Veggies<\/h2>\n\n<p>REMEMBER: Beets, okra, rhubarb, turnips contain high levels of oxalates (which increase uric acid levels that trigger gout).<\/p>\n\n<ul>\n  <li>Heirloom beans, herbs, spices from <a target=\"_blank\" href=\"https:\/\/www.RanchoGordo.com\/\">RanchoGordo.com<\/a><\/li>\n  <li>Spices and seasonings from <a target=\"_blank\" href=\"https:\/\/www.TheSpiceHouse.com\/\">TheSpiceHouse.com<\/a><\/li>\n  <li>\n    <p>Indian food from <a target=\"_blank\" href=\"https:\/\/www.Kalustyans.com\/\">Kalustyans.com<\/a><\/p>\n  <\/li>\n  <li>Scandanavian meatballs, limpa, pickled herring from <a target=\"_blank\" href=\"https:\/\/www.scandiaFood.com\/\">scandiaFood.com<\/a><\/li>\n  <li>Greek baklavas, spanakopitas, and other filo-based pastries from <a target=\"_blank\" href=\"https:\/\/www.KatinasGreekCafe.com\">KatinasGreekCafe.com<\/a><\/li>\n  <li>Italian Proscitutto, EVOO, etc. from <a target=\"_blank\" href=\"https:\/\/www.Eataly.com\/\">Eataly.com<\/a><\/li>\n  <li>\n    <p>Spanish paella, sausage, etc. from <a target=\"_blank\" href=\"https:\/\/www.Tienda.com\/\">Tienda.com<\/a> (Williamsburg, VA)<\/p>\n  <\/li>\n  <li>\n    <p>Fair trade from around the world at <a target=\"_blank\" href=\"https:\/\/www.EqualExchange.com\/\">EqualExchange.com<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.LaQuercia.us\/\">LaQuercia.us<\/a><\/li>\n  <li>Freeze-dried fruits from <a target=\"_blank\" href=\"https:\/\/www.thive.com\">thive.com<\/a><\/li>\n  <li>Fresh fruit from <a target=\"_blank\" href=\"https:\/\/www.HarryAndDavid.com\/\">HarryAndDavid.com<\/a> fruit-of-the-month<\/li>\n  <li>\n    <p>Fresh California peaches, plums, nectarines, cherries, graham crackers, tarlets from <a target=\"_blank\" href=\"https:\/\/www.FrogHollow.com\/\">FrogHollow.com<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Sour cream coffee cake, buttery rum cake, quiches from <a target=\"_blank\" href=\"https:\/\/www.RedTruckBakery.com\/\">RedTruckBakery.com<\/a><\/p>\n  <\/li>\n  <li>Baked goods and many others from <a target=\"_blank\" href=\"https:\/\/www.goldbelly.com\/\">goldbelly.com<\/a><\/li>\n  <li>Jams and Salsas from <a target=\"_blank\" href=\"https:\/\/www.Stonewalkkitchen.com\/\">Stonewalkkitchen.com<\/a><\/li>\n  <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>\n  <li>Pies from <a target=\"_blank\" href=\"https:\/\/www.GTPie.com\">GTPie.com<\/a> of Michigan<\/li>\n<\/ul>\n\n<h2 id=\"bread-from-live-yeast\">Bread from live yeast<\/h2>\n\n<p>DEFINITIONS: <a target=\"_blank\" href=\"https:\/\/pleasanthillgrain.com\/baking-glossary\">pleasanthillgrain.com\/baking-glossary<\/a><\/p>\n\n<p>If you regularly consume bread, consider growing live yeast from wheat for sourdough bread.<\/p>\n\n<p>Both yeast and baking powder will cause your bread dough to rise. \nBut both yeast and baking powder have relatively short shelf lives.<\/p>\n\n<p>Proofing Directions: In a 1 cup liquid measuring cup, mix 1 teaspoon sugar into 1\/2 cup of warm water (110\u00b0 to 115\u00b0 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>\n\n<p>Make your own baking powder by mixing together ingredients with an indefinite shelf life if properly stored.<\/p>\n<ul>\n  <li>1 part baking soda.<\/li>\n  <li>1 part corn starch.<\/li>\n  <li>2 parts cream of tartar.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>Grounded \u201cwhite flour\u201d bought from stores consists only of the starchy <strong>endosperm<\/strong> of the wheat kernel \u2013 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>\n\n<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>\n\n<p>Freshly ground wheat is tastier.<\/p>\n\n<p>But ground wheat needs to be sifted.<\/p>\n\n<p>To make your own \u201cwhole grain cake flour\u201d, 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>\n\n<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%\u2014the 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>\n\n<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\u2019s little gluten development in soft wheat flour.<\/p>\n\n<p>Soft wheat is typically a winter wheat \u2013 planted in the autumn, grows a few inches tall before it\u2019s 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\u2019s ready to be harvested.<\/p>\n\n<p>In the U.S., soft wheat is mainly grown east of the Mississippi, although some is grown in the Pacific Northwest.<\/p>\n\n<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>\n<ul>\n  <li>teff combine well with wheat flour though and has something of a sweetish flavor. It\u2019s the smallest grain, with kernels only about 1\/32nd inch in diameter. The name means \u201clost\u201d because if dropped on the ground, it\u2019s too small to recover. It\u2019s been been a staple in Ethiopia for nearly five millennia in making Ethiopian flat bread \u201cinjera\u201d. 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>\n  <li>Khorasan,<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/pleasanthillgrain.com\/buy-organic-einkorn-for-sale-bulk\">Einkorn<\/a>,<\/li>\n  <li>emmer<\/li>\n<\/ul>\n\n<p>Some specialty bread types call for semolina flour. May also be known as \u201calimentary flour\u201d, \u201cmacaroni flour\u201d, or \u201cpasta\nflour.\u201d 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>\n\n<p>oxidation begins to occur as soon as grain is ground, exposing the cell\u2019s contents to oxygen in the air.<\/p>\n\n<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>\n\n<p>From https:\/\/pleasanthillgrain.com\/search?search=wheat+berries (Nebraska, (866) 467-6123 )\nbuy Golden 86 or White Wheat in a Mylar bag with O2 absorbers within a six-gallon pail. \nA <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>\n\n<p>The 41 lbs net yields about 72,000 calories.<\/p>\n<ul>\n  <li>$150.12 ($3.66\/lb) from Zone 2 (CT, FL, ME, MA, NH, RI, VT)<\/li>\n  <li>$150.12 ($3.53\/lb) from Zone 1 (from other states)<\/li>\n<\/ul>\n\n<h2 id=\"quinoa\">Quinoa<\/h2>\n\n<p>Quinoa, pronounced \u201ckeen-wah\u201d, 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>\n\n<p>Quinoa is often referred to as a supergrain because it is high in protein \u2013 a complete protein possessing all the essential amino acids in the balanced amounts that our bodies require.<\/p>\n\n<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\u2019s best to used when a recipe specifically calls for it as it\u2019s not a good substitute for red or white quinoa.<\/p>\n\n<p>Unless prewashed quinoa is purchaed, quinoa needs to be thoroughly washed before cooking to remove its bitter protective coating, called saponin.<\/p>\n\n<ul>\n  <li>Toast the quinoa before simmering it to further emphasize its nutty flavor.<\/li>\n<\/ul>\n\n<p>Simple Quinoa Pilaf\nIngredients:<\/p>\n<ul>\n  <li>3 tablespoons extra-virgin olive oil<\/li>\n  <li>1\u00bc cups white quinoa, rinsed<\/li>\n  <li>\u00bc teaspoon table salt<\/li>\n  <li>2 cups chicken broth instead of water to add extra savoriness and flavor.<\/li>\n  <li>1 stalk celery, finely chopped<\/li>\n  <li>2 carrots, sliced<\/li>\n  <li>1 small onion, minced<\/li>\n  <li>1 clove garlic, minced<\/li>\n<\/ul>\n\n<ol>\n  <li>Heat oil in large saucepan over medium-high heat until shimmering.<\/li>\n  <li>Stir in vegetables and garlic.<\/li>\n  <li>Cook and stir until onion has softened and turned translucent, about 5 minutes.<\/li>\n  <li>Stir in broth add quinoa.<\/li>\n  <li>To add earthiness, golden color, and bright acidity:\n    <ul>\n      <li>\u00bc teaspoon dried basil<\/li>\n      <li>1 teaspoon ground turmeric<\/li>\n    <\/ul>\n  <\/li>\n  <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>\n  <li>Remove saucepan from heat and let sit, covered, for 5 minutes.<\/li>\n  <li>Stir in\n    <ul>\n      <li>1 teaspoon lime juice<\/li>\n    <\/ul>\n  <\/li>\n  <li>Fluff quinoa with fork. Season with salt to taste, and serve.<\/li>\n<\/ol>\n\n<p><a name=\"Butter\"><\/a><\/p>\n\n<h2 id=\"butter\">Butter<\/h2>\n\n<p>Among <strong>canned butter<\/strong>:<\/p>\n\n<p>From New Zealand, the Red Feather brand, which claims <strong>eighteen months<\/strong> of shelf-stable storage, is<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.walmart.com\/ip\/6-pack-Red-Feather-Brand-Pure-Creamery-Butter-12-oz-Can\/5323228170\">\n$0.79\/oz for 6x12-oz cans from Walmart<\/a>\nAlthough salted, it\u2019s not as heavily salted as most salted butter in the U.S.<\/p>\n\n<p>H.J. Wijsman &amp; Zonen Preserved Dutch Butter is<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.amazon.com\/Preserved-Dutch-Butter-Salted-7-05oz\/dp\/B07JH6TX9N\/ref=wilsonslifenotes\">\n$1.42\/oz from $49.99 for 5x7.05oz cans<\/a>.<\/p>\n\n<p>Beurdell French Salted Real Canned Butter 100% Natural Pasteurized Butter A real butter from France 3% salt<br \/>\n<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>\n\n<h2 id=\"caffeine\">Caffeine<\/h2>\n\n<p>400 mg of caffeine.<\/p>\n\n<p>Drinks which have no caffeine include: 7-Up, Fanta, Fresca, Orange Crush, Sprite, Tonic Water,\nVerners Ginger Ale,\nand Root Beer from A&amp;W, IBC, Diet Barq, Mug.<\/p>\n\n<h2 id=\"resources\">Resources<\/h2>\n\n<p>https:\/\/farmstress.us for Farmers and ranchers, to cultivate rural resilience.<\/p>\n\n<h2 id=\"articles\">Articles<\/h2>\n\n<p>https:\/\/www.mofad.org\/events\/2020\/0820\/chopsueysupperclub<\/p>\n\n<p>http:\/\/www.oprah.com\/food\/the-best-online-grocery-shopping-websites\/all\n2010<\/p>\n\n<p>https:\/\/www.bonappetit.com\/story\/online-specialty-food-stores<\/p>\n\n<p>https:\/\/www.thespruceeats.com\/gourmet-specialty-food-shops-1666059<\/p>\n\n<p>http:\/\/www.tullabs.com\/cicadaworld\/cicadarecipes.pdf\nRecipies for Cicadas InsertSpaces<\/p>\n\n<h2 id=\"rodent-resistant-containers\">Rodent-resistant containers<\/h2>\n\n<p>Rodents spread bacteria harmful to humans and pets.<\/p>\n\n<p>Food needs to be kept in rodant-resistant containers such as metal, glass, or thick plastic.<\/p>\n\n<p>To repel rodants, some use a device that emits a noise humans can\u2019t hear.\nBut they might annoy dogs and cats.<\/p>\n\n<p>Some place around their home packets of plant-based essential oils containing cornmint, citronella, and linseed oil.\nEach Vamoose pouch is $9.43 (in packs of 3) from https:\/\/www.bugmd.com\/. They last 30 days.<\/p>\n\n<hr \/>\n\n<p><sub>25-12-20 v018 Purines :2020-08-13-food.md created 2020-08-13<\/sub><\/p>\n\n<p>Sodium 2000\nlow red meat (including pork) 2oz serving (the size of a deck of playing cards).\n48-64 oz (a gallon) of non-caffinated fluid\/day.\nquinoa has fiber &amp; protein \neichorn ancient (non-GMO) wheat berries more fiber &amp; B vites. breaks down better. but more potassium.\nRenal Diet Cookbook. \nPreserving Kidney Function with plant-based eating. (Vegitarian Diet) \neach carbs with protein\nBoiling apples and drinking the juice reduces the amount of minerals.\nhttps:\/\/www.youtube.com\/watch?v=Bs9MwpXRxTg\nnvidia<\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/mlflow\/"}},"id":"https:\/\/wilsonmar.github.io\/mlflow","published":"2025-12-18T00:00:00+00:00","updated":"2025-12-18T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Get full visibility and versioning of models, their metadata, and compare metrics from runs.<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/mlflow\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"Italiano\"><img alt=\"Italiano\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/it.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"Napali\"><img alt=\"Napali\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ne.png\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmlflow%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <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>\n  <li><a href=\"#competition-to-mlflow\" id=\"markdown-toc-competition-to-mlflow\">Competition to MLflow<\/a><\/li>\n  <li><a href=\"#mlflow-components\" id=\"markdown-toc-mlflow-components\">MLflow Components<\/a>    <ul>\n      <li><a href=\"#backend-sql-store\" id=\"markdown-toc-backend-sql-store\">Backend SQL Store<\/a><\/li>\n      <li><a href=\"#enterprise-mlflow-on-databricks-unitydb\" id=\"markdown-toc-enterprise-mlflow-on-databricks-unitydb\">Enterprise MLflow on Databricks UnityDB<\/a><\/li>\n      <li><a href=\"#mlflow-artifact-store\" id=\"markdown-toc-mlflow-artifact-store\">MLflow Artifact store<\/a><\/li>\n      <li><a href=\"#tracking-ui-server\" id=\"markdown-toc-tracking-ui-server\">Tracking UI Server<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#end-to-end-capabilities-flowchart\" id=\"markdown-toc-end-to-end-capabilities-flowchart\">End-to-end capabilities Flowchart<\/a><\/li>\n  <li><a href=\"#two-sided-product\" id=\"markdown-toc-two-sided-product\">Two sided product<\/a><\/li>\n  <li><a href=\"#docker-compose\" id=\"markdown-toc-docker-compose\">Docker Compose<\/a><\/li>\n  <li><a href=\"#manual-install-locally\" id=\"markdown-toc-manual-install-locally\">Manual Install locally<\/a>    <ul>\n      <li><a href=\"#vulnerability-scans\" id=\"markdown-toc-vulnerability-scans\">Vulnerability Scans<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#download-and-start-server\" id=\"markdown-toc-download-and-start-server\">Download and Start Server<\/a>    <ul>\n      <li><a href=\"#start-mlflow\" id=\"markdown-toc-start-mlflow\">Start MLflow<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#ide\" id=\"markdown-toc-ide\">IDE<\/a><\/li>\n  <li><a href=\"#custom-mlflow-extensions\" id=\"markdown-toc-custom-mlflow-extensions\">Custom MLflow Extensions<\/a><\/li>\n  <li><a href=\"#github-repos\" id=\"markdown-toc-github-repos\">GitHub repos<\/a>    <ul>\n      <li><a href=\"#mlproject-file\" id=\"markdown-toc-mlproject-file\">MLproject file<\/a><\/li>\n      <li><a href=\"#mlflows-sample-python-code\" id=\"markdown-toc-mlflows-sample-python-code\">MLflow\u2019s Sample Python code<\/a><\/li>\n      <li><a href=\"#sample_ml_modelpy\" id=\"markdown-toc-sample_ml_modelpy\">Sample_ML_model.py<\/a><\/li>\n      <li><a href=\"#azure-sample-genai-python-code\" id=\"markdown-toc-azure-sample-genai-python-code\">Azure Sample GenAI Python code<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#python-libraries\" id=\"markdown-toc-python-libraries\">Python Libraries<\/a><\/li>\n  <li><a href=\"#scoring-guidelines-in-python\" id=\"markdown-toc-scoring-guidelines-in-python\">Scoring Guidelines in Python<\/a><\/li>\n  <li><a href=\"#mlflow-activation-in-python\" id=\"markdown-toc-mlflow-activation-in-python\">MLflow activation in Python<\/a><\/li>\n  <li><a href=\"#mlflow-workflows\" id=\"markdown-toc-mlflow-workflows\">MLFlow workflows<\/a><\/li>\n  <li><a href=\"#aliases\" id=\"markdown-toc-aliases\">Aliases<\/a>    <ul>\n      <li><a href=\"#metrics-for-each-experiment\" id=\"markdown-toc-metrics-for-each-experiment\">Metrics for each experiment:<\/a><\/li>\n      <li><a href=\"#metrics-classification-report\" id=\"markdown-toc-metrics-classification-report\">Metrics Classification Report<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#compare-metrics-from-selected-experiments\" id=\"markdown-toc-compare-metrics-from-selected-experiments\">Compare metrics from selected experiments<\/a><\/li>\n  <li><a href=\"#dagshub\" id=\"markdown-toc-dagshub\">Dagshub<\/a><\/li>\n  <li><a href=\"#references\" id=\"markdown-toc-references\">References:<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<h2 id=\"why-mlflow-run-metadata-and-metrics\">Why MLflow? Run Metadata and Metrics<\/h2>\n\n<p>Machine Learning (ML) engineers not using MLflow need to track their <strong>run metadata<\/strong> perhaps using a spreadsheet such as this:<\/p>\n\n<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>\n\n<p><a name=\"RunMetadata\"><\/a>\nMetadata about runs include: Run ID, Run Start\/End time, User, Model type, Parameters, Dataset version, etc.<\/p>\n\n<p><a name=\"RunMetrics\"><a><\/a><\/a><\/p>\n\n<p>Run metrics include: F Score, Precision, Recall, Accuracy.<\/p>\n\n<p>The above doesn\u2019t provide versioning and is a clumsy way to share data.<\/p>\n\n<p>MLflow provides a GUI to share and visualize data many different ways.<\/p>\n\n<p><a name=\"Competition\"><\/a><\/p>\n\n<h2 id=\"competition-to-mlflow\">Competition to MLflow<\/h2>\n\n<p>Kubeflow is run within Kubernetes.<\/p>\n\n<p>NVIDIA\u2019s reinforcement learning environments (NeMo Gym and NeMo RL) run with \n<a target=\"_blank\" href=\"https:\/\/lmstudio.ai\/\">https:\/\/lmstudio.ai<\/a>\nto run LLMs privately (like Hugging Face).<\/p>\n\n<p>LangSmith:<\/p>\n<ul>\n  <li>Debugging<\/li>\n  <li>Playground<\/li>\n  <li>Prompt Management<\/li>\n  <li>Annotation<\/li>\n  <li>Testing<\/li>\n  <li>Monitoring\n<br \/><br \/><\/li>\n<\/ul>\n\n<p>Airflow focuses on using a DAG (Directed Asysclic Graph, like GitHub uses) to version data changes.<\/p>\n\n<p><a name=\"Components\"><\/a><\/p>\n\n<h2 id=\"mlflow-components\">MLflow Components<\/h2>\n\n<p>MLflow provides \u201cEnterprise worthy\u201d features in each of its \u201cpluggable\u201d components:<\/p>\n\n<p>The menu that appears lists the data artifacts MLflow works with:<\/p>\n\n<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>\n\n<ul>\n  <li>Experiments are run based on input prompts (referencing tags)<\/li>\n  <li>Models are artifacts (e.g. a pickled scikit-learn model)<\/li>\n  <li>Prompts are store in a backend SQL store\n<br \/><br \/><\/li>\n<\/ul>\n\n<p>Architecture:<\/p>\n\n<ul>\n  <li><a href=\"#Backend\">Backend SQL Store<\/a> to store metadata about runs, models, traces, and experiments<\/li>\n  <li><a href=\"#ArtifactStore\">(Binary object file) Artifact store<\/a><\/li>\n  <li><a href=\"#TrackingServer\">Tracking UI Server<\/a>\n<br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"Backend\"><\/a><\/p>\n\n<h3 id=\"backend-sql-store\">Backend SQL Store<\/h3>\n\n<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>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.databricks.com\/product\/managed-mlflow\">\u201cmanaged cloud services\u201d<\/a> from cloud vendors provide enterprises the fine-grained user and network access controls they need.<\/p>\n\n<ul>\n  <li>Databricks<\/li>\n  <li>AWS Sagemaker<\/li>\n  <li>Azure Machine Learning<\/li>\n  <li>GCP (GKE)<\/li>\n  <li>Nebius\n<br \/><br \/><\/li>\n<\/ul>\n\n<p>MLflow software managing the MLflow Backend Store makes use of <strong>SQLAlchemy Engine library&lt;\/a&gt;\nwhich implements OS environment variables controlling <a target=\"_blank\" href=\"https:\/\/docs.sqlalchemy.org\/en\/20\/core\/pooling.html\">SQLAlchemy\u2019s QuePool connection pooling options<\/a> referenced to manage a pool of long running database connections in memory for efficient re-use:<\/strong><\/p>\n\n<table>\n  <tbody>\n    <tr>\n      <td>OS System Environment Variable<\/td>\n      <td>SQLAlchemy QueuePool option<\/td>\n      <td>Default<\/td>\n    <\/tr>\n    <tr>\n      <td>MLFLOW_SQLALCHEMYSTORE_POOL_SIZE<\/td>\n      <td>pool_size<\/td>\n      <td>5<\/td>\n    <\/tr>\n    <tr>\n      <td>MLFLOW_SQLALCHEMYSTORE_MAX_OVERFLOW<\/td>\n      <td>max_overflow<\/td>\n      <td>10<\/td>\n    <\/tr>\n    <tr>\n      <td>MLFLOW_SQLALCHEMYSTORE_POOL_RECYCLE<\/td>\n      <td>pool_recycle<\/td>\n      <td>True<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>These setting can be instantiated with the sqlachemy engine:<\/p>\n<pre><code class=\"language-Python\">engine = create_engine(\n    config.SQLALCHEMY_DATABASE_URI, pool_pre_ping=True, pool_size=32, max_overflow=64\n)\n<\/code><\/pre>\n\n<p>\u201cpool size\u201d is the total number of concurrent DBAPI connections an application may use simultaneously.<\/p>\n\n<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>\n\n<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>\n\n<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>\n<ul>\n  <li>WSGI servers are created before the worker processes are forked.<\/li>\n  <li>Several processes will use the same connection concurrently, and the reponses could get mixed up.<\/li>\n  <li>One process will close the connection, and the other will try to use it, leading to an exception raised.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<h3 id=\"enterprise-mlflow-on-databricks-unitydb\">Enterprise MLflow on Databricks UnityDB<\/h3>\n\n<p>For example, when MLflow runs on a Databricks\u2019 \u201cUnity\u201d database in the cloud, Databricks\u2019 \u201cLakehouse\u201d architecture holds multiple versions of the same data to enable \u201cfall back\u201d to the state of the whole database at previous points in time.<\/p>\n\n<p>https:\/\/www.mlflow.org\/docs\/latest\/self-hosting\/architecture\/overview\/<\/p>\n\n<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>\n\n<p><a name=\"ArtifactStore\"><\/a><\/p>\n\n<h3 id=\"mlflow-artifact-store\">MLflow Artifact store<\/h3>\n\n<ul>\n  <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>\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>MLflow objects (binary-format files) containing model weights, container images (.png files), etc. are housed in an <strong>Artifact Store<\/strong>.<\/p>\n\n<p>The legacy default was storing those artifacts in a local folder path specified one of two ways:\n    * <tt>MLFLOW_TRACKING_URI=\u201d.\/mlruns\u201d<\/tt> is set in CLI or \n    * <tt>--backend-store-uri .\/mlruns<\/tt> in CLI parameters when starting the server.\n    <br \/><br \/><\/p>\n\n<p><tt>Path: mlflow-artifacts:\/\u2026<\/tt><\/p>\n\n<p>For Logistic Regression:<\/p>\n<ul>\n  <li>MLmodel (Parquet file)<\/li>\n  <li>conda.yaml (if you\u2019re using Conda environment)<\/li>\n  <li>model.pkl (\u201cpikle\u201d files containing Scikit-learn model data)<\/li>\n  <li>python_env.yaml<\/li>\n  <li>requirements.txt\n<br \/><br \/><\/li>\n<\/ul>\n\n<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>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>* NFS (Network File System) such as mount point &lt;tt&gt;\/mnt\/nfs&lt;\/tt&gt;\n* Amazon S3 at MLFLOW_S3_ENDPOINT_URL\n* Azure Blob Storage,\n* Google Cloud Storage,\n* SFTP server, \n&lt;br \/&gt;&lt;br \/&gt;\n<\/code><\/pre><\/div><\/div>\n\n<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>\n\n<p><tt>export MLFLOW_S3_UPLOAD_EXTRA_ARGS=\u2019{\u201cServerSideEncryption\u201d: \u201caws:kms\u201d, \u201cSSEKMSKeyId\u201d: \u201c1234\u2026\u201d}\u2019<\/tt><\/p>\n\n<p><a name=\"TrackingServer\"><\/a><\/p>\n\n<h3 id=\"tracking-ui-server\">Tracking UI Server<\/h3>\n\n<p><a href=\"#StarServer\">Tracking Server<\/a> is the lightweight FastAPI server that serves the MLflow UI and API.<\/p>\n\n<ol>\n  <li>\n    <p>Click \u201cOpen Source\u201d under \u201cModel Training\u201d at:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/www.mlflow.org\/docs\/latest\/ml\/\">https:\/\/www.mlflow.org\/docs\/latest\/ml\/<\/a><\/p>\n\n    <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>\n\n    <ul>\n      <li>https:\/\/docs.databricks.com\/aws\/en\/mlflow\/<\/li>\n      <li>\n        <p>https:\/\/docs.databricks.com\/aws\/en\/getting-started\/free-edition\n   <br \/><br \/><\/p>\n      <\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=2ABNr-IJNsM&amp;t=1m36s\">VIDEO<\/a>: Databricks\u2019 MLflow 3 product managers Eric Peter and Corey Zumar  Nov 7, 2025.<\/li>\n    <\/ul>\n  <\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"Flowchart\"><\/a><\/p>\n\n<h2 id=\"end-to-end-capabilities-flowchart\">End-to-end capabilities Flowchart<\/h2>\n\n<p><img alt=\"mlflow-lifecycle-1870x798.png\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1765916820\/mlflow-lifecycle-1870x798_lv8hej.png\" \/><\/p>\n\n<p>TODO: Text<\/p>\n\n<hr \/>\n\n<h2 id=\"two-sided-product\">Two sided product<\/h2>\n\n<p>Our question about MLFlow\u2019s \u201cOpen Source\u201d 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>\n\n<ol>\n  <li>\n    <p>In an internet browser, visit where MLflow is open-sourced:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/github.com\/mlflow\/mlflow\">https:\/\/github.com\/mlflow\/mlflow<\/a><\/p>\n\n    <p>\u201cThe 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.\u201d<\/p>\n\n    <p>\u201cMLflow is the only platform that provides a unified solution for all your AI\/ML needs, including LLMs, Agents, Deep Learning, and traditional machine learning.\u201d<\/p>\n  <\/li>\n  <li>\n    <p>Visit the MLflow marketing website:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/www.mlflow.org\">https:\/\/www.mlflow.org<\/a><\/p>\n\n    <p>Notice there are two sides to the MLflow product:<\/p>\n\n    <p>A. Classic\/Traditional Machine Learning <strong>Model Training runs<\/strong> which create LLMs used to respond to prompts.<\/p>\n\n    <p>B. New <strong>GenAI Apps &amp; Agents<\/strong> to evaluate and optimize AI applications and agentic workflows of prompts which use LLMs to plan actions and call APIs.<\/p>\n\n    <p>Either way, MLflow\u2019s <a href=\"#Flowchart\">\u201cend-to-end\u201d capabilities<\/a> led to make it the most popular framework enterprises use for \u201cindustrial scale\u201d operation and <strong>governance<\/strong> in the lifecycle of LLM creation and usage (from dev to production use).<\/p>\n  <\/li>\n  <li>\n    <p>Visit MLflow\u2019s Docs website:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/www.mlflow.org\/docs\/latest\/index.html\">https:\/\/www.mlflow.org\/docs\/latest\/index.html<\/a><\/p>\n\n    <p>Notice that to each side there is an \u201cOpen Source\u201d option and \u201cMLflow on Databricks\u201d option.<\/p>\n  <\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"DockerCompose\"><\/a><\/p>\n\n<h2 id=\"docker-compose\">Docker Compose<\/h2>\n\n<p>All components can be setup using a single <strong>docker compose<\/strong> CLI command which instantiates 3 docker containers:<\/p>\n\n<p>A. MLflow<br \/>\n   B. MinIO artifact (object) server (port 9000)<br \/>\n   C. MySQL backend on port 5000<br \/><\/p>\n\n<ol>\n  <li>\n    <p>TODO:<\/p>\n\n    <p>based on https:\/\/github.com\/sachua\/mlflow-docker-compose<\/p>\n  <\/li>\n<\/ol>\n\n<p><a name=\"ManualInstall\"><\/a><\/p>\n\n<h2 id=\"manual-install-locally\">Manual Install locally<\/h2>\n\n<p>PROTIP: Using uv rather than pip:<\/p>\n\n<ol>\n  <li>Python\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>python --version\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Ensure you have the latest uv utilities installed, including the\nglobal uv configuration directory <tt>~\/.config\/uv\/<\/tt> and uv.toml file:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>uv config --show\nuv --version\n<\/code><\/pre><\/div>    <\/div>\n    <pre>\nuv 0.9.13 (Homebrew 2025-11-26)\n<\/pre>\n  <\/li>\n  <li>PROTIP: Create a folder to receive files, populate with .git folder, .gitignore, pyproject.toml, README.md, .python-version\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>uv init mlflow1\ncd mlflow1\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>PROTIP: To install MLflow as a CLI tool (instead of using pip):\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>pipx install mlflow\nmlflow --version\n<\/code><\/pre><\/div>    <\/div>\n    <pre>mlflow, version 3.7.0<\/pre>\n\n    <p>Databricks reports 5,000 users.<\/p>\n  <\/li>\n  <li>\n    <p>NOTE: MLflow describes its releases at:\n<a target=\"_blank\" href=\"https:\/\/github.com\/mlflow\/mlflow\/releases\">https:\/\/github.com\/mlflow\/mlflow\/releases<\/a><\/p>\n\n    <h3 id=\"vulnerability-scans\">Vulnerability Scans<\/h3>\n  <\/li>\n  <li>PROTIP: Scan for vulnerabilities:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>pipx runpip mlflow list --format=freeze | safety scan --stdin\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Research CVEs found, such as:\n    <pre>\nThe 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:\n\n\u2022  CVE-2024-37057: TensorFlow models\n\u2022  CVE-2024-37055: pmdarima models  \n\u2022  CVE-2024-37053 &amp; CVE-2024-37052: scikit-learn models\n\u2022  CVE-2024-37054: PyFunc models\n\u2022  CVE-2024-37056: LightGBM scikit-learn models\n\u2022  CVE-2024-37059: PyTorch models\n\u2022  CVE-2024-37060: Recipes\n\nNo 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.\n<\/pre>\n  <\/li>\n  <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>\n<\/ol>\n\n<p><a name=\"StarServer\"><\/a><\/p>\n\n<h2 id=\"download-and-start-server\">Download and Start Server<\/h2>\n\n<ol>\n  <li>Download modules for server:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>mlflow ui\n<\/code><\/pre><\/div>    <\/div>\n    <p>Without configuration means these warning message appear:<\/p>\n    <pre>\nBackend store URI not provided. Using sqlite:\/\/\/mlflow.db\nRegistry store URI not provided. Using backend store URI.\n<\/pre>\n    <p>Look for:<\/p>\n    <pre>\nINFO:     Uvicorn running on http:\/\/127.0.0.1:5000 (Press CTRL+C to quit)\n...\nINFO:     Application startup complete.\n<\/pre>\n\n    <h3 id=\"start-mlflow\">Start MLflow<\/h3>\n  <\/li>\n  <li>Optionally: Open another CLI Terminal window and:\n    <pre><code class=\"language-Bash\">mlflow server --port 5000\n<\/code><\/pre>\n  <\/li>\n  <li>Open your default browser:\n    <pre><code class=\"language-Bash\">open http:\/\/127.0.0.1:5000\n<\/code><\/pre>\n\n    <h2 id=\"ide\">IDE<\/h2>\n\n    <ul>\n      <li>VSCode vs. PyCharm vs.<\/li>\n      <li>AI browsers Comet, etc.<\/li>\n    <\/ul>\n\n    <h2 id=\"custom-mlflow-extensions\">Custom MLflow Extensions<\/h2>\n\n    <p>To extend MLflow\u2019s core with new flavors, UI tabs, or artifact stores, \nbuild custom functionality, see <a target=\"_blank\" href=\"https:\/\/www.mlflow.org\/docs\/latest\/ml\/plugins\/#developing-custom-plugins\">Write &amp; Use MLflow Plugins<\/a>. It shows how to package your plugin, register it, and test it locally before pushing to production.<\/p>\n\n    <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>\n\n    <h2 id=\"github-repos\">GitHub repos<\/h2>\n\n    <p>Spam Classification, Time Series Analysis, Text Classification using Random Forest, Deep Learning<\/p>\n\n    <h3 id=\"mlproject-file\">MLproject file<\/h3>\n\n    <p>https:\/\/github.com\/mlflow\/mlflow-example\/blob\/master\/MLproject<\/p>\n\n    <pre>\nname: tutorial\nconda_env: conda.yaml\nentry_points:\nmain:\n    parameters:\n    alpha: {type: float, default: 0.5}\n    l1_ratio: {type: float, default: 0.1}\n    command: \"python train.py {alpha} {l1_ratio}\"\n<\/pre>\n\n    <h3 id=\"mlflows-sample-python-code\">MLflow\u2019s Sample Python code<\/h3>\n\n    <p>https:\/\/github.com\/mlflow\/mlflow-example\nwine quality. Uses Conda.<\/p>\n\n    <h3 id=\"sample_ml_modelpy\">Sample_ML_model.py<\/h3>\n\n    <p>https:\/\/github.com\/c17hawke\/mlflow-introduction\/blob\/main\/mlflow-codebase\/simple-ML-model\/simple_ML_model.py<\/p>\n\n    <h3 id=\"azure-sample-genai-python-code\">Azure Sample GenAI Python code<\/h3>\n\n    <p>https:\/\/github.com\/Azure-Samples\/azure-databricks-mlops-mlflow\nAzure Databricks MLOps sample for Python based source code using MLflow without using MLflow Project.<\/p>\n\n    <h2 id=\"python-libraries\">Python Libraries<\/h2>\n  <\/li>\n  <li>\n    <p>Python \u2013version<\/p>\n  <\/li>\n  <li>\n    <p>mlflow, etc. in requirements.txt<\/p>\n  <\/li>\n  <li>Although the Conda library is not secure for having too many modules that can go rogue, create  and activate the conda environment:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>conda create --prefix .\/env python=3.12 -y\nconda actiavate .\/env\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>\n    <p>Although not scalable, install pandas for dataframe handling:<\/p>\n\n    <h2 id=\"scoring-guidelines-in-python\">Scoring Guidelines in Python<\/h2>\n\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>import mlflow\nfrom mlflow.genai.scores import Guidelines\ncustom_guidelines = [{\n    \"name\" : \"accuracy\",\n    \"guideline\": \"\"\"The response correctly references ...\n    ...\n    \"name\" : \"personalized\",\n    ...\n    ]\ncustom_scorers = [{\n    Guidelines(name=g[\"name\"], guidelines=g[\"guideline\"])\n    for g in custom_guidelines  # above.\n<\/code><\/pre><\/div>    <\/div>\n\n    <h2 id=\"mlflow-activation-in-python\">MLflow activation in Python<\/h2>\n  <\/li>\n  <li>Add these lines of Python code to activate MLflow instrumentation:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code> from openai import OpenAI\n mlflow.openai.autolog()\n<\/code><\/pre><\/div>    <\/div>\n\n    <h2 id=\"mlflow-workflows\">MLFlow workflows<\/h2>\n\n    <ol>\n      <li>Log traces<\/li>\n      <li>Train models<\/li>\n      <li>Run evaluation<\/li>\n      <li>Register prompts<\/li>\n    <\/ol>\n\n    <h2 id=\"aliases\">Aliases<\/h2>\n\n    <p>Aliases can be associated with specific runs, such as \u201c@Challenger\u201d.<\/p>\n\n    <p><a name=\"Metrics\"><\/a><\/p>\n\n    <h3 id=\"metrics-for-each-experiment\">Metrics for each experiment:<\/h3>\n\n    <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>\n\n    <p>recall_class_0 ???<\/p>\n\n    <p>recall_class_1 ???<\/p>\n\n    <p><a name=\"Classification\"><\/a><\/p>\n\n    <h3 id=\"metrics-classification-report\">Metrics Classification Report<\/h3>\n\n    <p>A sample <tt>print(classifaction_report(y_test, y_pred_xgb)<\/tt> after an experiment run yields:<\/p>\n\n    <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>\n\n    <p>Adapted from https:\/\/scikit-learn.org\/stable\/modules\/generated\/sklearn.metrics.classification_report.html#sklearn.metrics.classification_report<\/p>\n\n    <p>Among Per-Class Metrics:<\/p>\n\n    <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>\n\n    <ul>\n      <li>Class 0: Precision 0.98 means that when the model predicts 0, it is correct 98% of the time.<\/li>\n      <li>Class 1: 81% of predicted 1s were correct\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <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>\n\n    <ul>\n      <li>Class 0: Recall 0.98 means it finds 98% of all true 0\u2019s.<\/li>\n      <li>Class 1: 83% of actual 1s were found\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <p><strong>F1-score<\/strong>: The weighted harmonic mean of precision and recall, balancing both metrics:<\/p>\n\n    <ul>\n      <li>Class 0: 0.98 (excellent)<\/li>\n      <li>Class 1: 0.82 (good)\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <p><strong>Support<\/strong>: The count of actual instances of each class in the dataset:<\/p>\n\n    <ul>\n      <li>Class 0: 270 instances (90% of data)<\/li>\n      <li>Class 1: 30 instances (10% of data)\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <p>The model performs better on class 0 than class 1, which is common when there\u2019s class imbalance (270 vs 30 samples). The weighted average of 0.96 is closer to class 0\u2019s performance because that class dominates the dataset.<\/p>\n\n    <p>Among Aggregate Metrics near the bottom:<\/p>\n\n    <p><strong>Accuracy<\/strong>: Overall correctness across all predictions = F1 score of 96%<\/p>\n\n    <p><strong>Macro avg<\/strong>: Simple average of metrics across classes (treats each class equally).<\/p>\n\n    <p>Doesn\u2019t account for class imbalance<\/p>\n\n    <p><strong>Weighted avg<\/strong>: Average weighted by support (accounts for class imbalance).<\/p>\n\n    <p>More representative of overall performance given the 270:30 class distribution.<\/p>\n\n    <h2 id=\"compare-metrics-from-selected-experiments\">Compare metrics from selected experiments<\/h2>\n\n    <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>\n\n    <h2 id=\"dagshub\">Dagshub<\/h2>\n\n    <p>https:\/\/github.com\/code\/mlflow_dagshub_demo<\/p>\n  <\/li>\n<\/ol>\n\n<h2 id=\"references\">References:<\/h2>\n\n<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>\n\n<p>https:\/\/mlflow.github.io\/mlflow-website\/blog\/deep-learning-part-2\/\nDeep Learning with MLflow (Part 2)\nuses dataset https:\/\/huggingface.co\/datasets\/coastalcph\/lex_glue\/viewer\/unfair_tos<\/p>\n\n<p>https:\/\/medium.com\/@mohsenim\/tracking-machine-learning-experiments-with-mlflow-and-dockerizing-trained-models-germany-car-price-e539303b6f97\nTracking Machine Learning Experiments with MLflow and Dockerizing Trained Models: Germany Car Price Prediction Case Study<\/p>\n\n<p>https:\/\/aws.amazon.com\/blogs\/machine-learning\/securing-mlflow-in-aws-fine-grained-access-control-with-aws-native-services\/<\/p>\n\n<p>https:\/\/mlflow.org\/docs\/latest\/ml\/tracking\/tutorials\/remote-server\nRemote Experiment Tracking with MLflow Tracking Server<\/p>\n\n<p>https:\/\/viso.ai\/deep-learning\/mlflow-machine-learning-experimentation\/\nMLflow: Simplifying Machine Learning Experimentation<\/p>\n\n<p>https:\/\/arxiv.org\/pdf\/2202.10169\nMACHINE LEARNING OPERATIONS: A SURVEY ON MLOPS TOOL SUPPORT\nby Nipuni Hewage and Dulani Meedeniya<\/p>\n\n<p>https:\/\/learning.oreilly.com\/library\/view\/-\/9781098179625\/\u201d&gt;BOOK: \u201cData Governance with Unity Catalog on Databricks\u201d September 2025&lt;\/a&gt; By Kiran Sreekumar and Karthik Subbarao<\/p>\n\n<p>https:\/\/www.linkedin.com\/in\/jun-shan-8332221\/\u201d&gt;\nJun Shan<\/p>\n\n<hr \/>\n\n<p><sub>25-12-18 v014 + SQLAlchemy :2025-01-16-mlflow.md created 2025-01-16<\/sub><\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/ai-benchmarks\/"}},"id":"https:\/\/wilsonmar.github.io\/ai-benchmarks","published":"2025-12-16T00:00:00+00:00","updated":"2025-12-16T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Let\u2019s get to know the benchmarks AI companies use to compare each others\u2019 versions.<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/ai-benchmarks\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fai-benchmarks%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <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>\n      <li><a href=\"#llm-highlights\" id=\"markdown-toc-llm-highlights\">LLM Highlights:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#list-of-benchmarks\" id=\"markdown-toc-list-of-benchmarks\">List of benchmarks<\/a><\/li>\n  <li><a href=\"#show-your-work-get-famous\" id=\"markdown-toc-show-your-work-get-famous\">Show your work. Get famous.<\/a><\/li>\n  <li><a href=\"#llms-by-subject-category\" id=\"markdown-toc-llms-by-subject-category\">LLMs by subject category<\/a>    <ul>\n      <li><a href=\"#humanitys-last-exam\" id=\"markdown-toc-humanitys-last-exam\">Humanity\u2019s Last Exam<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#agi--asi\" id=\"markdown-toc-agi--asi\">AGI &amp; ASI?<\/a>    <ul>\n      <li><a href=\"#agieval\" id=\"markdown-toc-agieval\">AGIEval<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#sneaky-tricks-with-benchmarks\" id=\"markdown-toc-sneaky-tricks-with-benchmarks\">Sneaky Tricks with Benchmarks<\/a>    <ul>\n      <li><a href=\"#claude-37-sonnet\" id=\"markdown-toc-claude-37-sonnet\">Claude 3.7 Sonnet<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#math-benchmarks\" id=\"markdown-toc-math-benchmarks\">Math Benchmarks<\/a>    <ul>\n      <li><a href=\"#math-notations\" id=\"markdown-toc-math-notations\">Math notations<\/a><\/li>\n      <li><a href=\"#mathjax\" id=\"markdown-toc-mathjax\">Mathjax<\/a><\/li>\n      <li><a href=\"#aime\" id=\"markdown-toc-aime\">AIME<\/a><\/li>\n      <li><a href=\"#math-hmmt-feburary-2025\" id=\"markdown-toc-math-hmmt-feburary-2025\">Math HMMT Feburary 2025<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#science-benchmarks\" id=\"markdown-toc-science-benchmarks\">Science benchmarks<\/a><\/li>\n  <li><a href=\"#gpqa\" id=\"markdown-toc-gpqa\">GPQA<\/a>    <ul>\n      <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>\n      <li><a href=\"#basis\" id=\"markdown-toc-basis\">BASIS<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#coding-lcb-live-code-bench\" id=\"markdown-toc-coding-lcb-live-code-bench\">Coding LCB (Live Code Bench)<\/a><\/li>\n  <li><a href=\"#swe-bench-benchmark\" id=\"markdown-toc-swe-bench-benchmark\">SWE-Bench benchmark<\/a>    <ul>\n      <li><a href=\"#codeclash\" id=\"markdown-toc-codeclash\">CodeClash<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#creative-writing\" id=\"markdown-toc-creative-writing\">Creative Writing<\/a><\/li>\n  <li><a href=\"#instruction-following\" id=\"markdown-toc-instruction-following\">Instruction Following<\/a><\/li>\n  <li><a href=\"#language-translations\" id=\"markdown-toc-language-translations\">Language Translations<\/a><\/li>\n  <li><a href=\"#evaluation-quality-metrics\" id=\"markdown-toc-evaluation-quality-metrics\">Evaluation Quality Metrics<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>In AI Computer Science, a benchmark is a way to determine how well each LLM model can solve problems. \nSeveral benchmarks have been created, mostly by academics and giant frountier LLM producers.<\/p>\n\n<h2 id=\"ai-vendors-and-their-llm-brands\">AI Vendors and their LLM Brands<\/h2>\n\n<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>\n\n<table border=\"1\" cellpadding=\"4\" cellspacing=\"0\">\n<tr><th>Country<\/th><th>Vendor<\/th><th>LLM brand<\/th><th>app<\/th><\/tr>\n<tr valign=\"top\"><td>China<\/td><td>Alibaba<\/td><td>Qwen<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>Allen AI<\/td><td><a target=\"_blank\" href=\"https:\/\/allenai.org\/olmo\">Olmo<\/a><\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>Amazon<\/td><td>Nova<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>Anthropic<\/td><td>Claude<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>Apple<\/td><td>MM1, ReALM<\/td><\/tr>\n<tr valign=\"top\"><td>China<\/td><td>DeepSeek<\/td><td>R1,R2,V3<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td><a target=\"_blank\" href=\"#Fireworks.ai\">Fireworks.ai<\/a><\/td><td>KwaiKAT-Coder<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>Google<\/td><td>Gemini<\/td><\/tr>\n<tr valign=\"top\"><td>China<\/td><td>Zhipu (Z.Ai)<\/td><td>Kimi K2<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>Meta<\/td><td>Llama<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>Microsoft<\/td><td>Phi<\/td><\/tr>\n<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>\n<tr valign=\"top\"><td>France<\/td><td>Mistral<\/td><td>Medium, Large<\/td><\/tr>\n<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>\n<tr valign=\"top\"><td>US<\/td><td>OpenAI<\/td><td>GPT<\/td><td>ChatGPT<\/td><\/tr>\n<tr valign=\"top\"><td>US<\/td><td>xAI<\/td><td>Grok<\/td><\/tr>\n<\/table>\n\n<h3 id=\"llm-highlights\">LLM Highlights:<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.interconnects.ai\/p\/2025-open-models-year-in-review\">Nathan Lambert\u2019s 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>\n\n<ul>\n  <li>Frontier: DeepSeek, Qwen, Moonshot AI (Kimi)<\/li>\n  <li>Close competitors: Zhipu (Z.Ai), Minimax<\/li>\n  <li>Noteworthy: StepFun, InclusionAI \/ Ant Ling, Meituan Longcat, Tencent, IBM, NVIDIA, Google, Mistral<\/li>\n  <li>Specialists: OpenAI, Ai2, Moondream, Arcee, RedNote, HuggingFace, LiquidAI, Microsoft, Xiaomi, Mohamed bin Zayed University of Artificial Intelligence<\/li>\n  <li>On the rise: ByteDance Seed, Apertus, OpenBMB, Motif, Baidu, Marin Community, InternLM, OpenGVLab, ServiceNow, Skywork<\/li>\n  <li>Honorable mentions: TNG Group, Meta, Cohere, Beijing Academy of Artificial Intelligence, Multimodal Art Projection, Huawei\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>No US company currently appears in their top tier.\nBut NVIDIA\u2019s response is to compete on efficiency and openness. <a target=\"_blank\" href=\"https:\/\/research.nvidia.com\/labs\/nemotron\/Nemotron-3\/\">NVIDIA\u2019s Nemotron 3 claims to be the Intelligence vs. Output Speed king:\n<img alt=\"nano-3-aa-5112x2220.png\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1765896478\/nano-3-aa-5112x2220_zrxxf5.png\" \/><\/a><\/p>\n\n<p>OpenRouter<\/p>\n\n<p><a name=\"Fireworks.ai\"><\/a><\/p>\n<ul>\n  <li>\n    <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\u2019s for coding and \u201cagentic\u201d work. Founded by leads from Meta PyTorch &amp; Google Vertex at San Mateo.<\/p>\n  <\/li>\n  <li>Anthropic\u2019s Claude<\/li>\n  <li>Microsoft\u2019s 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\u2019s focus is on edge devices<\/a>.<\/li>\n<\/ul>\n\n<h2 id=\"list-of-benchmarks\">List of benchmarks<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/betterbench.stanford.edu\/\">https:\/\/betterbench.stanford.edu<\/a>\nis a repository of AI benchmark assessments for informed benchmark selection through quality evaluation and best practice analysis.<\/p>\n\n<p>Huggingface.co is the internet\u2019s repository of LLMs. For example:<\/p>\n\n<p>https:\/\/huggingface.co\/datasets\/cais\/hle\/viewer\/default\/test?p=24&amp;views%5B%5D=test<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=aOjgPJ94-aM\">VIDEO<\/a>:\nHuggingface accelerate library to run<\/p>\n\n<p>The biggest one is \u201cHumanity\u2019s Last Exam\u201d,<\/p>\n\n<h2 id=\"show-your-work-get-famous\">Show your work. Get famous.<\/h2>\n\n<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\u2019re not lazy enough to blindly let AI rot your brain. And it others notice you can defend against false charges of plagerism.<\/p>\n\n<p>Making YouTube videos may get you some money. And if you find issues with a problem\u2019s autograder, even better. File an issue on the benchmark problem GitHub repo.<\/p>\n\n<p>PROTIP: Suggest new problems. File a PR and get listed as a contributor.<\/p>\n\n<p>BTW I\u2019m working on a website to encourage such evaluations and contributions, \nby giving out rewards and recognition (including cash). \nLet me know if you\u2019re interested.<\/p>\n\n<p>A concern about AI benchmarks is data contamination, where test questions leak into training data, enabling models to \u201cmemorize\u201d answers instead of reasoning that connect concepts rather than just recalling facts.\nThus, 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. \nIts <a target=\"_blank\" href=\"https:\/\/huggingface.co\/spaces\/TIGER-Lab\/MMLU-Pro\">Leaderboard<\/a> now exceeds 90%\nover 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>\n\n<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>\n\n<h2 id=\"llms-by-subject-category\">LLMs by subject category<\/h2>\n\n<p>Language:<\/p>\n<ul>\n  <li>HELLASWAG (Harder Endings Longer context Low-shot Activities Situations With Adversarial Generations) to finish sentences<\/li>\n  <li><a href=\"#MMLU\">MMLU<\/a> (Massive Multitask Language Understanding) 15K questions<\/li>\n  <li><a href=\"#Creative_Writing\">Creative Writing<\/a><\/li>\n  <li><a href=\"#TRUTHFULQA\">TRUTHFULQA<\/a> to test whether the LLM recognises 800 unhinged conspiracy theories as false<\/li>\n<\/ul>\n\n<p>General safety:<\/p>\n<ul>\n  <li><a href=\"#IFEval\">IFEval<\/a> (Instruction Following)<\/li>\n  <li><a href=\"#Instruction_Following\">Instruction Following<\/a><\/li>\n  <li><a href=\"#HarmBench\">HarmBench<\/a> of prompts to jail-break out of content moderation controls by LLMs<\/li>\n  <li>Mind2Web and AITW benchmark of GUI screen object recognition to evaluate OMNIPARSER vs GPT-4V<\/li>\n<\/ul>\n\n<p>Reasoning:<\/p>\n<ul>\n  <li>ARC (AI2 Reasoning Challenge) from the Allen Institute for AI<\/li>\n  <li>ARC is \u201cAbstraction and Reasoning Corpus\u201d. The best models solves 30% of the tasks.<\/li>\n<\/ul>\n\n<p>Science:<\/p>\n<ul>\n  <li><a href=\"#MT-bench\">MT-bench<\/a> as a judge of 160 questions in 8 categories of knowledge<\/li>\n  <li><a href=\"#GPQA\">Science (GPQA Diamond)<\/a> of 198 questions<\/li>\n<\/ul>\n\n<p>Composite:<\/p>\n<ul>\n  <li><strong>Humanity\u2019s 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>\n<\/ul>\n\n<p><a href=\"#Math\">Math benchmarks<\/a>:<\/p>\n<ul>\n  <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>\n  <li><a href=\"#MMMU\">MMMU<\/a> (Massive Multitask Math Understanding) Visual Reasoning<\/li>\n  <li><a href=\"#GSM8K\">GSM8K<\/a> (Grade School Math 8K) word problems which take 2-8 steps to solve, from OpenAI<\/li>\n  <li><a href=\"#Math500\">Math 500<\/a> Math Problem Solving<\/li>\n  <li><a href=\"#AIME\">Math (AIME)<\/a> Math competition<\/li>\n<\/ul>\n\n<p>Coding\/Programming:<\/p>\n<ul>\n  <li>WINOGRADE 44K<\/li>\n  <li><a href=\"#LCB\">Coding LCB (Live Code Bench)<\/a><\/li>\n  <li><a href=\"#SWE\">SWE-Bench (Agentic SoftWare Engineering)<\/a>\n    <ul>\n      <li>SWE-bench Lite - curated to make evaluation less costly and more accessible<\/li>\n      <li>SWE-bench Multimodal featuring issues with visual elements (images, videos) from JavaScript repositories<\/li>\n      <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>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#TAU\">TAU-Bench (Task Analysis Unit)<\/a> to test agentic tool use<\/li>\n  <li>humaneval, humaneval+ and taco to cover the current programming benchmarks.<\/li>\n<\/ul>\n\n<h3 id=\"humanitys-last-exam\">Humanity\u2019s Last Exam<\/h3>\n\n<p>https:\/\/huggingface.co\/datasets\/cais\/hle<\/p>\n\n<p>The data folder (in parquet format) can be downloaded from:\nhttps:\/\/huggingface.co\/datasets\/cais\/hle\/tree\/main<\/p>\n\n<p>Create an account at https:\/\/agi.safe.ai\/ and click \u201cContributors\u201d to see submissions in the fields of Math, Physics, Computer Science, Biology\/Medicine, Chemistry, Engineering, Humanities\/Social Science<\/p>\n\n<hr \/>\n\n<h2 id=\"agi--asi\">AGI &amp; ASI?<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?time_continue=1430&amp;v=om5KAKSSpNg\">VIDEO<\/a>:\nIn 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>\n\n<p><a target=\"_blank\" href=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1737377788\/agi-sit-1375x901_vsc5af.png\">\n<img alt=\"\" width=\"300\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1737377788\/agi-sit-1375x901_vsc5af.png\" \/><\/a><\/p>\n\n<p><i>Click image to enlarge to full frame.<\/i><\/p>\n\n<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>\n\n<p>ASI (Artificial Super Intelligence) will be reached when \u201cproto-automated\u201d researchers automate research (within massive AI datacenters).<\/p>\n\n<p><a name=\"AGIEval\"><\/a><\/p>\n\n<h3 id=\"agieval\">AGIEval<\/h3>\n\n<p>Introduced 16 Dec 2023 on <a target=\"_blank\" href=\"https:\/\/openreview.net\/forum?id=fGfCsqVZ_hfq\">ARVIX<\/a> \n(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)\nas \u201cA Human-Centric Benchmark for Evaluating Foundation Models\u201d for AGI (Artificial General Intelligence) development.<\/p>\n<ul>\n  <li>5m58s -<\/li>\n<\/ul>\n\n<p>AGIEVal is called \u201chuman-centric\u201d 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>\n\n<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>\n\n<ul>\n  <li>A top score in the low 70% by GPT-4o means a low \u201cpass\u201d for humans?<\/li>\n  <li>Providing examples (Few Shot and Few Shot-COT) improved accuracy by 3.1 points (AGIEval-en).<\/li>\n  <li>The newer GPT-4o with reasoning capabilities improved accuracy over GPT-3.5 by an average of 1.2 points (AGIEval-en).<\/li>\n  <li>Because AGIEval is uniquely bilingual, it provides insight on the \u201carms race\u201d 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>\n<\/ul>\n\n<p><a target=\"_blank\" href=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1740893682\/ai-bench-agi-results-v1.1-png_q73hi9.png\">\n<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>\n\n<p>An example is https:\/\/github.com\/ruixiangcui\/AGIEval\nJSONL (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>\n\n<p>Shown below: \nhttps:\/\/github.com\/ruixiangcui\/AGIEval\/blob\/main\/data\/v1_1\/math.jsonl<\/p>\n\n<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 &gt; 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} &gt; 0,$ both roots are positive.  Also,\\n\\\\[\\\\frac{\\\\lambda^2 + \\\\lambda}{\\\\lambda} = 1 + \\\\frac{1}{\\\\lambda} &lt; \\\\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\"}}\n<\/code><\/pre><\/div><\/div>\n\n<p>TODO: Utility to display jsonl files for human consumption.<\/p>\n\n<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> \nand <a target=\"_blank\" href=\"https:\/\/konbert.com\/convert\/json\/to\/jsonl\">Konbert.com<\/a><\/p>\n\n<h2 id=\"sneaky-tricks-with-benchmarks\">Sneaky Tricks with Benchmarks<\/h2>\n\n<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>\n\n<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>\n\n<p>This table compares specific scores on specific benchmarks:<\/p>\n\n<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>\n\n<p>That resulted in some crying that xAI neglected to include in the comparison results of OpenAI\u2019s o3 December results:<\/p>\n\n<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>\n\n<h3 id=\"claude-37-sonnet\">Claude 3.7 Sonnet<\/h3>\n\n<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>\n\n<p>The above is from Anthropic\u2019s Claude 3.7 Sonnet announcement on Feb 25, 2025.\nDubbed the first hybrid AI reasoning model, it is a groundbreaking AI model because it allows users to control how long it \u201cthinks\u201d before responding to deliver real-time answers or take extra time to provide more complex, well-reasoned responses.\nIt\u2019s available to premium Claude users.\nPricing: $3 per million input tokens and $15 per million output tokens\u2014higher than OpenAI\u2019s o3-mini.<\/p>\n\n<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>\n\n<hr \/>\n\n<p><a name=\"Math\"><\/a><\/p>\n\n<h2 id=\"math-benchmarks\">Math Benchmarks<\/h2>\n\n<p>There are several mathematics competitions: AIME, HMMT, Mandelbrot, ARML.<\/p>\n\n<p>Additionally, each US state:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.montanamath.org\/mctm-math-contest\/math-contest\">MCTM<\/a> (Montana Council of Teachers of Mathematics)\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"MathNotation\"><\/a><\/p>\n\n<h3 id=\"math-notations\">Math notations<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=BNI5r-A2V8E\">VIDEO<\/a>:\nAnswers of specific (discrete) values can be represented between commas within <strong>curly braces<\/strong> (keyed by Shift + [ and Shift + ]) in \u201cRoster Notation (aka Roster Form)\u201d such as this to enumerate (list) a set of elements. <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=tyDKR4FG3Yw&amp;list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz\">VIDEO<\/a>:<\/p>\n\n<p>Within curly braces <tt>{ }<\/tt> is a \u201cset,\u201d i.e., a collection of elements without order or repetition rules. Commas separate elements within the set.<\/p>\n\n<p><tt>A = {1, 2, 3, 4,\u2026,999}<\/tt><\/p>\n\n<p>On Macs, to open the Character Viewer, press Control + Command + Space to type in a search term:<\/p>\n\n<ul>\n  <li>\u2115 means Natural numbers (positive integers)<\/li>\n  <li>2\u2124 means even integers (positive or negative integers)<\/li>\n  <li>\u211a means rational numbers (fractions)<\/li>\n  <li>\u211d<\/li>\n  <li>\u2102<\/li>\n  <li>Three dots between elements represents intermediate values between 4 and 999.<\/li>\n  <li>Three dots at the end of the list represents infinite number of elements.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>With Roster Notation, the order of elements does not matter. \nThere is no order in a set.\nAll elements are written in any order and only once.<\/p>\n\n<p>An alternative is \u201cSet Builder Form\u201d, which defines the unique <strong>properties or conditions<\/strong> satisfied by all the elements of the set, using symbols:<\/p>\n\n<p><tt>{ x | -1 \u2264 x &lt; 6 }<\/tt><\/p>\n\n<ul>\n  <li><tt>\u201d|\u201d<\/tt> is read \u201csuch that\u201d.<\/li>\n  <li>\u201c\u2264\u201d is less than or equal symbol  <tt>\\leq<\/tt><\/li>\n  <li>\u201d&lt;\u201d is less than or not equal to  <tt>\\leq<\/tt>.<\/li>\n  <li>\u201d&gt;\u201d is greater than or not equal to <tt>\\geq<\/tt>.\n   <br \/><br \/>\n   Thus: All values of x such that X is less than or equal to -1 or less than 6.<\/li>\n<\/ul>\n\n<p><tt>{ 2x | x \u2208 \u2124<sup>+<\/sup> }<\/tt><\/p>\n\n<ul>\n  <li>\u201cx\u201d is <tt>\\times<\/tt> multiplier.<\/li>\n  <li>\u2208 (epsilon, set by Option+E or \\in) in (belongs to) \u201cx \u2208 \u2124<sup>+<\/sup>\u201d is read: x among positive integers.<\/li>\n  <li>\u2209 (not element of)\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>DEFINITION: \u201cCardinality\u201d is the number of elements in a set, represented as |N|.<\/p>\n<ul>\n  <li>\n    <p>n(A)<\/p>\n  <\/li>\n  <li><tt>|\u2205|<\/tt> (null, set by Option + O) means an empty set.<\/li>\n  <li>\u00f8 means similar<\/li>\n  <li>\n    <p><tt>|{\u2205}|<\/tt> means the size of an empty set = 1 for the empty set itself.<\/p>\n  <\/li>\n  <li>\u2282 (subset) is set by \\subset<\/li>\n  <li>\u2286 (subset or equal)<\/li>\n  <li>\u222a (union = \\cup)<\/li>\n  <li>\u2229 (intersection), as is \u201cFish n Chips\u201d<\/li>\n  <li>\u0394 or \u03b4 (delta symbol for difference, keyed by Option + J or Option + D)<\/li>\n  <li>\u00b0 (degree symbol keyed by Option + Shift + 8<\/li>\n  <li>\u221d (proportional symbol \u221d)<\/li>\n  <li>\u2248 is approximately equal <tt>\\approx<\/tt>, keyed by Option + X. <tt>\u2248<\/tt>\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>About mathematical set notation, see:<\/p>\n<ul>\n  <li>https:\/\/www.purplemath.com\/modules\/setnotn.htm<\/li>\n  <li>https:\/\/www.geeksforgeeks.org\/maths\/set-notation\/\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"Mathjax\"><\/a><\/p>\n\n<h3 id=\"mathjax\">Mathjax<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=6Ii_9H0tpvg\">VIDEO<\/a>:\nMathematical 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>\n\n<pre>\\$$\\frac{4}{9} \\left( 17 - 8\\cos(2\\sqrt{3}) \\right)$$<\/pre>\n\n<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>\n\n<script>\n  window.MathJax = {\n    tex: {\n      inlineMath: [['$', '$'], ['\\\\(', '\\\\)']]\n    },\n    svg: {\n      fontCache: 'global'\n    }\n  };\n<\/script>\n\n<script id=\"MathJax-script\" async=\"\" src=\"https:\/\/cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-mml-chtml.js\"><\/script>\n\n<p>\\(\\frac{4}{9} \\left( 17 - 8\\cos(2\\sqrt{3}) \\right)\\)<\/p>\n\n<ul>\n  <li><tt>\\frac<\/tt> specifies the fraction \u201c4\/9\u201d.<\/li>\n  <li><tt>\\left<\/tt> specifies left parentheses.<\/li>\n  <li><tt>\\right<\/tt> specifies right parentheses.<\/li>\n  <li><tt>\\sqrt<\/tt> specifies square root.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<pre>$$x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}.$$<\/pre>\n\n<p>specifies the quadratic equation:<\/p>\n\n<p>\\(x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}\\)<\/p>\n\n<ul>\n  <li><tt>\\pm<\/tt> specifies the \u2a26 plus or minus symbol.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>Others:<\/p>\n<ul>\n  <li><tt>\\ne<\/tt> specifies the \u2260 not equal symbol.<\/li>\n  <li>\u03c0 is the symbol for Pi (3.14\u2026), written as <tt>\\pi<\/tt> or <tt>\u03c0<\/tt><\/li>\n  <li>\u221e is the infinity symbol \u221e written as <tt>\\infty<\/tt><\/li>\n  <li>\n    <p><tt>e^<\/tt> of P(???) specifies exponentiation to the power of <tt>{-1\/3}<\/tt>, presented as a superscript.<\/p>\n  <\/li>\n  <li>_ (underline) define subscript as in <tt>\\log_2(x)<\/tt>\n   <br \/><br \/><\/li>\n<\/ul>\n\n<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>\n\n<p><a name=\"AIME\"><\/a><\/p>\n\n<h3 id=\"aime\">AIME<\/h3>\n\n<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>\n\n<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>\n\n<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>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/artofproblemsolving.com\/wiki\/index.php\/2025_AIME_I_Problems\">2025 AIME_I Problems<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/artofproblemsolving.com\/wiki\/index.php\/2025_AIME_II_Problems\">2025 AIME_II Problems<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/artofproblemsolving.com\/wiki\/index.php\/2024_AIME_I_Problems\">2024 AIME_I Problems<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/artofproblemsolving.com\/wiki\/index.php\/2024_AIME_II_Problems\">2024 AIME_II Problems<\/a><\/li>\n<\/ul>\n\n<p>All answers are a single integer between 0 and 999. Click the \u201cSolution\u201d link for explanations.<\/p>\n\n<p>In 2025, the AIME was held February 6th, with problems and answers published immediately afterwards on various YouTube channels, forums, and blogs:<\/p>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/@PiAcademyOfficial\/videos\">Pi Academy<\/a><\/li>\n  <li>MathProblemSolvingSkills.com<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/@levoniananton\/videos\">Anton Levonian<\/a><\/li>\n  <li>https:\/\/areteem.org\/blog\/2025-aime-i-answer-key-released\/<\/li>\n<\/ul>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/pulse\/deepseeks-abysmal-performance-aime-2025-math-annie-cushing-mpdge\">BLOG<\/a>:\nAnnie Cushing (author of Making Data Sexy), notes that \u201cThe MathArena team \u2026 worked against the clock to run evaluations using the \u2026 problems before models could start training on it.\u201d\nbecause the challenging math problems \u201cmakes 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\u2019t multiple choice like many benchmarks.\u201d<\/p>\n\n<p>For use by AI, Lex code for the first of 15 problems in AIME 2025 II are at:<br \/>\nhttps:\/\/github.com\/eth-sri\/matharena\/blob\/main\/data\/aime\/aime_2025_II\/problems\/1.tex\nQUESTION: Print properly formatted Lex files using <tt>wlect cat ???.lex<\/tt><\/p>\n\n<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.\nAs of Feb 20, 2025:<br \/>\n<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>\n\n<p>Each green box indicates the AI solved the problem &gt;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>\n\n<p><a target=\"_blank\" href=\"https:\/\/maa.edvistas.com\/eduview\/report.aspx?self=&amp;view=1561&amp;mode=6&amp;timestamp=20250220005530203\">Stats<\/a>: 150 is the highest score.<\/p>\n\n<h3 id=\"math-hmmt-feburary-2025\">Math HMMT Feburary 2025<\/h3>\n\n<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.\nIt remains <a target=\"_blank\" href=\"https:\/\/www.randommath.com\/register-tournaments\/hmmt\">organized<\/a> by students.<\/p>\n\n<p>Each tournament draws close to 1000 students from around the globe.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/HMMT#:~:text=The%20difficulty%20of%20the%20February,problems%20of%20the%20February%20tournament.\">WIKIPEDIA<\/a>:\nThe 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>\n\n<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>\n\n<p>The November tournament is easier than the February tournament, with problems similar to the AMC 10 and 12, and the AIME.<\/p>\n\n<p>Calculus is not required for most of the problems, but it may be needed to solve some of the more difficult problems.<\/p>\n\n<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\u2019 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>\n\n<hr \/>\n\n<h2 id=\"science-benchmarks\">Science benchmarks<\/h2>\n\n<p><a name=\"GPQA\"><\/a><\/p>\n\n<h2 id=\"gpqa\">GPQA<\/h2>\n\n<p>GPQA (Google-Proof Q&amp;A) is a challenging dataset of 448 multiple-choice questions written by domain experts in biology, physics, and chemistry.<\/p>\n\n<p>\u201cGoogle Proof\u201d means that the answer is not discoverable by a query on Google.com (or Perplexity.ai).\nThe answer requires \u201creasoning\u201d through several intermediate queries to a panel of \u201cexperts\u201d.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/arxiv.org\/pdf\/2311.12022\">PDF<\/a> of\nhttps:\/\/arxiv.org\/abs\/2311.12022 says \u201cWe 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 \u201cGoogle-proof\u201d).<\/p>\n\n<p>\u201cThe 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>\n\n<p>The GPQA Leaderboard at https:\/\/klu.ai\/glossary\/gpqa-eval<\/p>\n\n<p>The GPQA Dataset at \n<a target=\"_blank\" href=\"https:\/\/github.com\/idavidrein\/gpqa\/\">https:\/\/github.com\/idavidrein\/gpqa<\/a>\nwas created by <a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/idavidrein\/\">I. David Rein<\/a> \nwhile 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>\nFAR.AI<\/p>\n\n<p>https:\/\/sofworld.org\/pattern-questions-and-marking-scheme<\/p>\n<ul>\n  <li>SOF ICSO - International Computer Science Olympiad<\/li>\n  <li>SOF NSO - National Science Olympiad<\/li>\n  <li>SOF IMO - International Mathematics Olympiad<\/li>\n  <li>SOF IEO - International English Olympiad<\/li>\n  <li>SOF ICO - International Commerce Olympiad<\/li>\n  <li>SOF IGKO - International General Knowledge Olympiad<\/li>\n  <li>SOF ISSO - International Social Studies Olympiad<\/li>\n  <li>SOF International Hindi Olympiad\n   <br \/><br \/><\/li>\n<\/ul>\n\n<h3 id=\"gaia-real-world-ai-assistant-assessment\">GAIA Real-World AI Assistant Assessment<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=vSxX2L-YffU\">VIDEO<\/a>:\n<a target=\"_blank\" href=\"https:\/\/arxiv.org\/abs\/2311.12983\">https:\/\/arxiv.org\/abs\/2311.12983<\/a>\n[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>\n\n<p>Despite being conceptually simple for humans, who achieve 92% accuracy, GAIA\u2019s 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\u2019s effectiveness in benchmarking AI systems\u2019 robustness and adaptability across diverse, everyday scenarios, emphasizing the need for AI to match or exceed average human performance on practical tasks.<\/p>\n\n<h3 id=\"basis\">BASIS<\/h3>\n\n<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>\n\n<hr \/>\n\n<p><a name=\"LCB\"><\/a><\/p>\n\n<h2 id=\"coding-lcb-live-code-bench\">Coding LCB (Live Code Bench)<\/h2>\n\n<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>\n\n<ul>\n  <li>Model names beginning with \u201cO\u201d such as \u201cO3\u201d are from <a target=\"_blank\" href=\"https:\/\/openai.com\">OpenAI.com<\/a><\/li>\n  <li>Model name \u201cKimi\u201d is at <a target=\"_blank\" href=\"https:\/\/kimi.moonshot.cn\">https:\/\/kimi.moonshot.cn<\/a> from China.<\/li>\n  <li>Model name \u201cDeepSeek\u201d is <a target=\"_blank\" href=\"https:\/\/chat.deepseek.com\/sign_in\">DeepSeek.com<\/a> from China.<\/li>\n  <li>Model names \u201cGemini\u201d are from <a target=\"_blank\" href=\"https:\/\/gemini.google.com\/app\">chat.google.com<\/a><\/li>\n  <li>Model names \u201cClaude\u201d are from Anthropic at <a target=\"_blank\" href=\"https:\/\/claude.ai\/new\">https:\/\/claude.ai\/new<\/a> where it proclaims its \u201cemphasis on what\u2019s called \u201cconstitutional AI\u201d - an approach to developing AI systems with built-in safeguards and values.<\/li>\n  <li>Model names \u201cDracarys\u201d 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>\n  <li>LLama3-70b-Ins from Meta at https:\/\/huggingface.co\/meta-llama\/Meta-Llama-3-8B-Instruct<\/li>\n  <li>\n    <p>DSCodder at https:\/\/huggingface.co\/deepseek-ai\/deepseek-coder-1.3b-base<\/p>\n  <\/li>\n  <li>Where is IBM WatsonX in this list?<\/li>\n<\/ul>\n\n<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>\n\n<p><a target=\"_blank\" href=\"https:\/\/livecodebench.github.io\/\">https:\/\/livecodebench.github.io<\/a> says\nLCB (Live Code Bench) collects problems from periodic contests on<\/p>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.leetcode.com\/\">LeetCode<\/a>,<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.atcoder.com\">AtCoder<\/a>, and<\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.codeforces.com\">Codeforces<\/a> (ELO). <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=K1p3-PP4Qv4&amp;list=PLcXpkI9A-RZLUfBSNp-YQBCOezZKbDSgB\">VIDEO<\/a><\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=7LTks_tOosk\">VIDEO<\/a>:\n Build a game usong ChatGPT 03 Mini\n O3-mini achieved a perfect 10\/10 on pylint for a Hangman game project.<\/p>\n  <\/li>\n<\/ul>\n\n<p>LLM platforms use them for constructing a holistic benchmark for evaluating Code LLMs across variety of code-related scenarios continuously over time.<\/p>\n\n<p>The livecodebench runner is <a target=\"_blank\" href=\"\">Naman Jain<\/a> CS Ph.D. Berkeley.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/kingh0730\/\">Shangdian (King) Han<\/a> living in Berkeley, California. Previously Microsoft Research.<\/p>\n\n<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>\n\n<p>LiveCodeBench.com publishes <a target=\"_blank\" href=\"https:\/\/livecodebench.github.io\/leaderboard.html\">four Leaderboards<\/a>:\nFor each leadershboard provides a time slider. As of this writing:<\/p>\n<ul>\n  <li>880 Code Generation<\/li>\n  <li>713 Self Repair<\/li>\n  <li>442 Test Output Prediction<\/li>\n  <li>\n    <p>479 Code Execution<\/p>\n  <\/li>\n  <li>Not Kaggle competitions?<\/li>\n<\/ul>\n\n<p>Models submitted for evaluation are at https:\/\/github.com\/LiveCodeBench\/submissions<\/p>\n\n<p>For a more nuanced evaluation of LLM performance across different difficulty levels,<br \/>\n\u201cPass@1\u201d measures the percentage of problems a model can solve correctly on its <strong>first attempt<\/strong> across all difficulty levels.<br \/>\n\u201cEasy Pass@1\u201d refers to the Pass@1 performance on problems categorized as \u201cEasy\u201d.\nSee https:\/\/openreview.net\/forum?id=chfJJYC3iL<\/p>\n\n<p>At https:\/\/github.com\/LiveCodeBench\/LiveCodeBench\/blob\/main\/lcb_runner\/prompts\/code_execution.py<br \/>\nprompts begin with:<\/p>\n<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.\"\n``\n<\/code><\/pre><\/div><\/div>\n<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.\n```<\/p>\n\n<p>Its dataset of \u201c448\u201d multiple-choice questions is in the password-protected 2.2MB dataset.zip file at\nhttps:\/\/github.com\/idavidrein\/gpqa\/blob\/main\/dataset.zip<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=0or_0JbMaFc&amp;t=2m51s\">VIDEO<\/a>:\nHere\u2019s a question about use of hour glasses that Grok3 cannot solve in 3 minutes.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=0or_0JbMaFc&amp;t=5m11s\">VIDEO<\/a>\n\u201cWrite a chess engine using the UCI (Universal Chess Interface) protocol\u201d<\/p>\n\n<hr \/>\n\n<p><a name=\"SWE\"><\/a><\/p>\n\n<h2 id=\"swe-bench-benchmark\">SWE-Bench benchmark<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.swebench.com\/\">SWE-Bench (Software Engineering Benchmark) at https:\/\/www.swebench.com<\/a>\ninvolves giving agents a code repository and issue description, and challenging them to generate a patch that resolves the problem described by the issue.<\/p>\n\n<p>https:\/\/www.swebench.com\/#verified<\/p>\n\n<p>https:\/\/github.com\/swe-bench\/sb-cli\/\nprovides the CLI to run the benchmarks.<\/p>\n\n<p>SWE-Bench has been used as the way to compare how well LLM offerings tests systems\u2019 ability to automatically <strong>solve GitHub issues<\/strong> in a dataset containing 2,294 Issue-Pull Request pairs from 12 popular Python repositories:<\/p>\n\n<ul>\n  <li>astropy (95)<\/li>\n  <li>Django (850)<\/li>\n  <li>Flask (11)<\/li>\n  <li>matplotlib (184)<\/li>\n  <li>pylint (57)<\/li>\n  <li>pytest (119)<\/li>\n  <li>requests (44)<\/li>\n  <li>scikit-learn (229)<\/li>\n  <li>seaborn (22)<\/li>\n  <li>sphinx (187)<\/li>\n  <li>sympy (386)<\/li>\n  <li>xarray (110)\n   <br \/><br \/><\/li>\n<\/ul>\n\n<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>\n\n<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>\n\n<p>Those working on it include  carlosej@princeton.edu and johnby@stanford.edu<\/p>\n\n<h3 id=\"codeclash\">CodeClash<\/h3>\n\n<p>https:\/\/codeclash.ai\/<\/p>\n\n<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>\n\n<p>An LLM\u2019s success over several \u201crounds\u201d is measured by relative scores like income, territory control, survival in 6 \u201carenas\u201d:<\/p>\n\n<ol>\n  <li>\n    <p>Battlesnake: Snake AIs compete to survive and grow in a grid<\/p>\n  <\/li>\n  <li>\n    <p>Core War : Redcode warriors battle to control a virtual computer<\/p>\n  <\/li>\n  <li>\n    <p>Halite : Distribute resources wisely to conquer territory<\/p>\n  <\/li>\n  <li>\n    <p>Poker : No Limit Texas Hold\u2019em with 2+ players<\/p>\n  <\/li>\n  <li>\n    <p>RoboCode - Tank combat - outlast and outgun opponents<\/p>\n  <\/li>\n  <li>\n    <p>RobotRumble : Program swarms to overwhelm opponents\n   <br \/><br \/><\/p>\n  <\/li>\n<\/ol>\n\n<p>https:\/\/viewer.codeclash.ai\/\nshows the leader \u2013 Anthropic Sonnet 4 and 4.5 \u2013 score between 30 to 70.<\/p>\n\n<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>\n\n<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 \u2013 whatever helps.<\/p>\n\n<p>In each round, the LLM analyzes gigabytes of logs, adapt strategies, implement algorithms, and make all high- to low-level decisions.<\/p>\n\n<p>Competition logs are then copied back to each model\u2019s codebase and the next round begins.<\/p>\n\n<p>https:\/\/github.com\/CodeClash-ai\/CodeClash<\/p>\n\n<hr \/>\n\n<p><a name=\"Creative_Writing\"><\/a><\/p>\n\n<h2 id=\"creative-writing\">Creative Writing<\/h2>\n\n<p>Coming soon.<\/p>\n\n<hr \/>\n\n<p><a name=\"Instruction_Following\"><\/a><\/p>\n\n<h2 id=\"instruction-following\">Instruction Following<\/h2>\n\n<p>Coming soon.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=a6bPt9oyoa8&amp;t=1m32s\n\u201cretirement will come for most people sooner than they think\u201d.\nBrandage: Ex OpenAI Employee Gives Warning About The Economy\nTheAIGRID<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=REjFL9hkkL4\nAnthropic\u2019s Chilling 18-Month Warning: AI Apocalypse in 18 Months\nTheAIGRID<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=379s4W_EaTk<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=379s4W_EaTk&amp;t=9m3s\nLLM Engineer\u2019s Handbook (from Packt)\nby Paul Lustzien,<\/p>\n\n<p>OmniParser\nhttps:\/\/microsoft.github.io\/OmniParser\/<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=kkZ4-xY7oyU&amp;t=2m11s\nPersonaQA for Hallucination Evaluation<\/p>\n\n<hr \/>\n\n<p><a name=\"Translations\"><\/a><\/p>\n\n<h2 id=\"language-translations\">Language Translations<\/h2>\n\n<p>COMET, BLEU, and CHRF are widely used metrics for evaluating machine translation (MT) quality.<\/p>\n\n<p>https:\/\/www.perplexity.ai\/search\/what-is-the-comet-score-for-tr-9RkzS6rsRr6R9oyBwYZvag<\/p>\n\n<hr \/>\n\n<p><a name=\"Evaluation\"><\/a><\/p>\n\n<h2 id=\"evaluation-quality-metrics\">Evaluation Quality Metrics<\/h2>\n\n<p>It depends on what you are trying to achieve.<\/p>\n\n<ul>\n  <li>Classification tasks are measured using the \u201cAccuracy\u201d metric.<\/li>\n  <li>Regression tasks are measured using mean squared error (MSE).<\/li>\n  <li>\n    <p>Generation tasks are measured using mean squared error (MSE).<\/p>\n  <\/li>\n  <li>Task allocation tasks are measured using the F1 score.<\/li>\n  <li>Text summarization tasks are measured using the ROUGE score.<\/li>\n  <li>Question answering tasks are measured using the BLEU score.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/bomonike.github.io\/ai-benchmarks\">https:\/\/bomonike.github.io\/ai-benchmarks<\/a><\/p>\n\n<hr \/>\n\n<p><sub>25-12-16 v030 Nemotron :2024-12-28-ai-benchmarks.md created 2024-12-28<\/sub><\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/foody-christmas\/"}},"id":"https:\/\/wilsonmar.github.io\/foody-christmas","published":"2025-12-14T00:00:00+00:00","updated":"2025-12-14T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Eat your way through Christmas films.<\/i><\/p>\n\n<h2 id=\"christmas-movies\">Christmas movies<\/h2>\n\n<ol>\n  <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>\n  <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>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <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>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/national-lampoons-christmas-vacation\">National Lampoon\u2019s Christmas Vacation (1989)<\/a> - Eggnog in moose cups and a very dry roast turkey.<\/li>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/how-the-grinch-stole-christmas\">How the Grinch Stole Christmas (2000)<\/a> - \u201cRoast beast\u201d at the Whoville feast.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/frank-capras-its-a-wonderful-life\">It\u2019s a Wonderful Life (1946)<\/a> - roast chicken and other comfort foods.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/the-holiday\">The Holiday (2006)<\/a> - Braised brisket and festive coffee drinks).<\/li>\n  <li>Meet Me in St. Louis (1944)&lt;\/a&gt; - Ketchup, corned beef.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/last-christmas\">Last Christmas (2019)<\/a> - sauerkraut, sausage, Krempita, tiramisu.<\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/the-holdovers\">The Holdovers (2023)<\/a> -<\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/die-hard-1988\">Die Hard (1988)<\/a> - Hostess Twinkies.<\/li>\n  <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>\n  <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>\n  <li>&lt;a target=\u201d_blank\u201d href=https:\/\/www.justwatch.com\/us\/movie\/home-alone-2-lost-in-new-york\u201d&gt;Home Alone 2:Lost in New York (1992)&lt;\/a&gt; - Huge ice cream sundaes via room service.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/elf\">Elf (2003)<\/a> - Buddy\u2019s candy-loaded maple-syrup spaghetti and the \u201cfour main food groups\u201d: candy, candy canes, candy corn, and syrup.<\/li>\n  <li>\n    <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>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/the-man-who-invented-christmas\">The Man Who Invented Christmas (2017)<\/a><\/li>\n  <li>A Christmas Story Christmas (2022)<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/white-christmas\">White Christmas (1954)<\/a><\/li>\n  <li>\n    <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>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/little-women-2019\">Little Women (2019)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/little-women-1994\">Little Women (1994)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/miracle-on-34th-street-1994\">Miracle on 34th Street (1947)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/the-nightmare-before-christmas\">Tim Burton\u2019s The Nightmare Before Christmas (1993)<\/a><\/li>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/arthur-christmas\">Arthur Christmas (2011)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/tokyo-godfathers\">Tokyo Godfathers (2003)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/jingle-jangle-a-christmas-journey\">Jingle Jangle: A Christmas Journey (2020)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/edward-scissorhands\">Edward Scissorhands (1990)<\/a><\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/while-you-were-sleeping\">While You Were Sleeping (1995)<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/journey-to-bethlehem\">Journey to Bethlehem (2023)<\/a> - figs \u201cfat juicy ones\u201d.<\/li>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/a-christmas-tale\">A Christmas Tale ( Un conte de No\u00ebl, 2008)<\/a> - When their regal matriarch falls ill, the troubled Vuillard family come together for a hesitant Christmastime reunion. Among them is rebellious ne\u2019er-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>\n  <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\u2026<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/better-watch-out\">Better Watch Out (2016)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/search?q=Spoiler%20Alert\">Spoiler Alert (2022)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/happiest-season\">Happiest Season (2020)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.justwatch.com\/us\/movie\/anna-and-the-apocalypse\">Anna and the Apocalypse (2017)<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/play.hbomax.com\/movie\/ac61604a-3831-4f32-b6c2-8f70cdedb216\">Four Chirstmases (2008)<\/a><\/li>\n  <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>\n<\/ol>\n\n<hr \/>\n\n<p><sub>25-12-14 v009 eof :2025-09-02-foody-christmas.md created 2025-09-02<\/sub><\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/history\/"}},"id":"https:\/\/wilsonmar.github.io\/history","published":"2025-12-13T00:00:00+00:00","updated":"2025-12-13T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <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>\n\n<p><em>NOTE: Content here are my personal opinions, and \nnot intended to represent any employer (past or present).\n\u201cPROTIP:\u201d here highlight information I haven\u2019t seen elsewhere on the internet\nbecause it is hard-won, little-know but significant facts \nbased on my personal research and experience.\n<\/em><\/p>\n\n<h2 id=\"periods-of-history\">Periods of History:<\/h2>\n<ul>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#PreHistory\"> Pre\/virtual History (Geologic Time)<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#EarlyHistory\"> Early Biblical History<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#Moses\"> Age of Law<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#InterTestament\"> Inter-testament<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#ChristTime\"> Time of Christ<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#AgeGrace\"> Apostolic Early Christian<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#Persecu\"> Roman Persecutions<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#Byzantine\"> Byzantine\/Constantine<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#MiddleAgez\"> Middle Ages<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#Medieval\"> Medieval Period<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#Renaissance\"> Renaissance\/Reformation<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#ModernHist\"> Modern Times<\/a><\/li>\n\t<li class=\"Itemsep\"><a class=\"TopicChoice\" href=\"#Predictions\"> Predictions about the Future<\/a><\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"Future\"><\/a><\/p>\n\n<h2 id=\"about-the-future\">About the Future<\/h2>\n\n<blockquote>\n  <p>\u201c\u2026 the sons of Issachar had understanding of the times, to know what Israel ought to do,\u201d <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/1ch\/12\/32\/s_350032\"><nobr>--1 Chronicles 12:32<\/nobr> (KJV)<\/a><\/p>\n<\/blockquote>\n\n<blockquote>\n  <p>\u201cI like the dreams of the future better than the history of the past.\u201d<\/p>\n<\/blockquote>\n<nobr>--Thomas Jefferson<\/nobr>\n\n<blockquote>\n  <p>\u201cWe celebrate the past to awaken the future.\u201d<nobr>--John F. Kenedy, August 14, 1960<\/nobr><\/p>\n<\/blockquote>\n\n<blockquote>\n  <p>\u201cTrying to plan for the future without regard for the past is like trying to plant cut flowers.\u201d<nobr>--Daniel Boorstin, Historian<\/nobr><\/p>\n<\/blockquote>\n\n<h2 id=\"jokes-and-quotes\">Jokes and Quotes<\/h2>\n\n<p>\u201c<strong>War <\/strong> is God\u2019s way of teaching us <strong>geography<\/strong>\u201d \u2013Comedian Paul Rodriguez<\/p>\n\n<p>\u201c<strong>Coincidence <\/strong>is just God protecting his <strong>anonymity<\/strong>.\u2013anonymous<\/p>\n\n<p>\u201cGod cannot alter the past, though historians can.\u201d \u2013Samuel Butler<\/p>\n\n<p>\u201cYou can\u2019t understand who we <strong>are<\/strong>, unless you understand who we <strong>were<\/strong>.\u201d\u2013David McCullough, Historian<\/p>\n\n<p>\u201cThose who cannot remember the past are condemned to repeat it.\u201d\u2013George Santayana (1863-1052), in \u201cThe Life of Reason\u201d<\/p>\n\n<p>\u201cHistory is the sum total of things that could have been avoided.\u201d\u2013Konrad Adenauer (1876-1967), first chancellor of West Germany<\/p>\n\n<p>\u201cIt is easier to fool people than to convince them that they have been fooled.\u201d Mark Twain<\/p>\n\n<hr \/>\n\n<h2 id=\"a-panorama-of-history\">A Panorama of History?<\/h2>\n\n<p>What are the most significant events in world history, and what do they tell us about the future?<\/p>\n\n<ul>\n  <li>BC = B.C.=B.C.E. (Before Christ = Before the Common Era)<\/li>\n  <li>AD = A.D.=C.E. (Anno Domini = Common Era)\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>It turns out I found one ancient book that has been proven to be a reliable chronicle: the \u201cJudeon-Christian\u201d 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>\n\n<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>\n\n<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>\n\n<h3 id=\"timeline-of-history\">Timeline of History?<\/h3>\n\n<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>\n\n<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>\n\n<p>The above diagram got wrong the beginning of \u201c70th Week of Daniel\u201d (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>\n\n<p>But I show it for its illustration of past events, many which have archeological evidence.\nThe most significant events in world history are:<\/p>\n\n<ul>\n  <li><a href=\"#Creation\">Creation 4005 BC<\/a><\/li>\n  <li><a href=\"#SinEvent\">Sin event<\/a> (of Adam and Eve) 3971\/3970 BC<\/li>\n  <li>Noah\u2019s (global) Flood 2353 BC<\/li>\n  <li>Promised land from Egypt 1408 BC<\/li>\n<\/ul>\n\n<p><a name=\"Sieges\">Sieges:<\/a><\/p>\n<ul>\n  <li>First Seige of Jerusalem 701 BC<\/li>\n  <li>Second Seige of Jerusalem 589 BC<\/li>\n  <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>\n  <li>\n    <p>Third Siege of Jerusalem (by Roman Emperor Titus in 70 AD)<\/p>\n  <\/li>\n  <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>)\n    <ul>\n      <li>Ancient cities rebuilt and inhabited (Ez 36:1-5, 8-10)<\/li>\n      <li>Muslim \u201cArab\u201d 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>\n      <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>\n      <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>\n      <li>War between Confederacy &amp; Israel (<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/jer\/49\/2\/s_794002\">Jer 49:2, 8, 19<\/a>)<\/li>\n      <li>Title regained: \u201cMy people Israel\u201d (Hos 1:8-10; Rom 9:25,26; Ez 36:8-12)<\/li>\n      <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>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#Rapture\">Rapture of the Church<\/a> \u201cbrides\u201d and the Holy Spirit \u201crestrainer\u201d 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>\n  <li>\n    <p>Damascus, Syria destroyed (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/isa\/17\/1\/s_696001\">Isa 17:1<\/a>)<\/p>\n  <\/li>\n  <li>Anti-Christ is revealed<\/li>\n  <li>UN? activates the \u201cCovenant with Many\u201d (<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>\n  <li>\n    <p>The Ark of the Covenant discovered <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=hHI1Gcq4E4Y&amp;t=34m38s\">(by the Madhi?)<\/a>  (Zach 6) (Rev 11:19)<\/p>\n  <\/li>\n  <li>\n    <p>2025? The \u201cAbomination of Desolation\u201d (<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>\n  <\/li>\n  <li>\n    <p>Rebuilding of The Temple: \u201cAnd it shall come to pass in the last days, that the mountain of the LORD\u2019S house shall be established in the top of the mountains, and shall be exalted above the hills; and all nations shall flow unto it.\u201d (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/isa\/2\/2\/s_681002\">Isaiah 2:2<\/a>)<\/p>\n  <\/li>\n  <li>\n    <p>As previously, <em>Rosh ha Shanan<\/em> (Tishri 10, the Day of Atonement), the \u201cAbomination of Desolation\u201d is set up in the Temple (Rev 13:14-15) <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=1M080SzkDUw\">VIDEO<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Second Return of Christ, to begin the Millenium Reign of Christ<\/p>\n  <\/li>\n  <li>2000th anniversary of Christ\u2019s resurrection.<\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"Other+Timelines\"><\/a><\/p>\n\n<h2 id=\"other-timelines\">Other Timelines<\/h2>\n\n<ul>\n  <li>\n    <p><a target=\"_blank\" href=\"http:\/\/simile.mit.edu\/timeline\/examples\/religions\/religions.html\">MIT\u2019s Google Map-like (AJAX-based) Simile Timeline of Jewish History + Christianity History<\/a>, scrolling 2000 years side-by-side.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"http:\/\/www.apocalyptic-theories.com\/timeline\/zmainframe.htm\">apocalytic-theories.com Timeline<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"http:\/\/www.artsales.com\/ARTistory\/ark_covenant\/timeline.html\">\nBiblical vs. Egyptian Timeline at artsales.com<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/grammarsaurus.co.uk\/portal\/2019\/11\/ks2-history-key-events-in-history-1900-present-day\/\">Grammarsaurus<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/History_of_Israel\">WIKIPEDIA: History of Israel<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=nDu4K8kroNw\">VIDEO:\nb  37 Bible Characters Found Through Archaeology<\/a><\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"contextual-principles\">Contextual Principles<\/h2>\n\n<p>To understand the various events in world history, it helps to have some context:<\/p>\n\n<ol>\n  <li>\n    <p>One day is as a thousand years<\/p>\n\n    <p>\u201c\u2026 one day is with the Lord as a thousand years, and a thousand years as one day\u201d \u2014<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/psa\/90\/4\/s_568004\">Psalm 90:4 (NKJ)<\/a> &amp; <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/2pe\/3\/8\/s_1159008\">2nd Peter 3:8 (NKJ)<\/a><\/p>\n  <\/li>\n  <li>\n    <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 \u2013 when daytime and nighttime are of equal duration.<\/p>\n\n    <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 \u201choly city shall they tread under foot forty and two months\u201d 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 \u201ca thousand two hundred and threescore days\u201d (where \u201cthreescore\u201d is 60) in the next paragraph <a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/11\/3\/s_1178003\">11:3<\/a>. That\u2019s not 1278 days of 3.5 years by a 365-day calendar with some 31-day months.<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <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>\n\n    <p>\u201cFor 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.\u201d<\/p>\n  <\/li>\n  <li>\n    <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 \u201cPray for the peace of Jerusalem: they shall prosper that love thee.\u201d<\/p>\n\n    <p>Some analysts look to the \u201cJubilee\u201d 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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>To the \u201celect\u201d of Christians, the New Testament fulfills predictions in the Old Testament \u2013 that of redemption from Adam\u2019s sin through Jesus Christ, applicable to all people. Isaiah 11:11-12<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>The 70th week of Daniel (7 years of Tribulation). See <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=JyZkvtjGOh8\">Ron Wyatt\u2019s 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>\n  <\/li>\n  <li>\n    <p>A pivotal basis for an important prediction is \u201cwhen the sacrifice cease\u201d. <a target=\"_blank\" href=\"\">This video<\/a> points out that it refers not in the plural (sacrifices of the Tabernacle system), but singluar \u2013 of Christ\u2019s sacrifice.<\/p>\n  <\/li>\n  <li>\n    <p>Many are concerned about the \u201cMark of the Beast\u201d (666) an how those who take it will be condemned to hell.<\/p>\n\n    <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>\n\n    <p>Romans 10:9  \u2026 believe in thine heart that God hath raised him from the dead, thou shalt be saved.<\/p>\n  <\/li>\n  <li>\n    <p>The \u201cFour Horsemen\u201d mentioned in Revelation 6 and 1 Thessalonians 5.<\/p>\n  <\/li>\n<\/ol>\n\n<ul>\n  <li>\n    <p><strong>Killer Talking Mind-Control Robots?<\/strong> - \u201cAnd 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>\n  <\/li>\n  <li>\n    <p><strong>Wallet Implant<\/strong> - \u201cAnd 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.\u201d (<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/13\/16-17\/s_1180016\">Rev 13:16-17<\/a>)<\/p>\n  <\/li>\n<\/ul>\n\n<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&amp;t=350s\">Koran: Sur 9:29<\/a> \u201cfight 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.\u201d<\/p>\n\n<h2 id=\"countries--people-groups\">Countries &amp; People Groups<\/h2>\n\n<p>Here\u2019s what I\u2019ve been able to figure out so far about the locations of people groups in the Bible and their modern names:<\/p>\n\n<ul>\n  <li>Ashkenaz = Germany<\/li>\n  <li>Amalek = Arabs of the Sinai Peninsula<\/li>\n  <li>Ammon = Palestinians &amp; central\/northern Jordan <a href=\"#[A]\">[A]<\/a><\/li>\n  <li>Assyria = Syria and Northan Iraq <a href=\"#[A]\">[A]<\/a><\/li>\n  <li>Assur = Assyria = Syria <a href=\"#[A]\">[A]<\/a><\/li>\n  <li>Beth Togarmah = T\u00fcrkiye (Turkey)<\/li>\n  <li>Chub = Libya <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Children of Lot = Syrians &amp; Northern Jordanians <a href=\"#[A]\">[A]<\/a> ???<\/li>\n  <li>Cush = Ethiopia <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Dedan = <a target=\"_blank\" href=\"https:\/\/maps.app.goo.gl\/hR9sRyPTzs865SVJ9\">AlUla<\/a>, Saudi Arabia<\/li>\n  <li>\u201cTents of Edom\u201d = 100,000 refugees in Southern Lebanon <a href=\"#[A]\">[A]<\/a> (Rev 2:9,3:9)<\/li>\n  <li>Egypt (Muslim Brotherhood?)<\/li>\n  <li>Ethopia = Sudan <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Elam = West-Central Iran<\/li>\n  <li>Gebal = Hezbollah &amp; Northern Lebanon <a href=\"#[A]\">[A]<\/a><\/li>\n  <li>Gog = Russia (person) <span lang=\"ru\">Pamyat<\/span><\/li>\n  <li>Gomer = Turkey <a href=\"#[B]\">[B]<\/a><\/li>\n  <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.\u201d (Boice)<\/li>\n  <li>Ishmaelites = Palestinians &amp; Southern Jordanians <a href=\"#[A]\">[A]<\/a><\/li>\n  <li>Inhabitants of Lebanon = Hezbollah<\/li>\n  <li>Kedar = Saudi Arabia <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Kittim = Cyprus [War Scroll]<\/li>\n  <li>\u201cchildren of Lot\u201d = Moab and Ammon <a href=\"#[A]\">[A]<\/a><\/li>\n  <li>Magog = Russia <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Media = Eastern Iran (Persia)  (Judges 6-8)<\/li>\n  <li>Meshech = T\u00fcrkiye (Turkey) <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Moab = Central Jordan &amp; Palestinians <a href=\"#[A]\">[A]<\/a> \u201cshall be like Sodam\u201d \u2013 (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/zep\/2\/9\/s_908009\">Zephaniah 2:9<\/a>)<\/li>\n  <li>Philistia = Hamas of the Gaza Strip <a href=\"#[A]\">[A]<\/a><\/li>\n  <li>Persia = Iran <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Put = Libya <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Rosh = Russia<\/li>\n  <li>Sheba = Yemen<\/li>\n  <li>Tarshish = Cornwall UK and its \u201cyoung lions\u201d = USA? &amp; <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&amp;t=1m55s\">VIDEO<\/a>: (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/eze\/38\/13\/s_840013\">Ezekiel 38:13<\/a>) \u201cwill bless Israel\u201d<\/li>\n  <li>Togarmah = T\u00fcrkiye (Turkey) <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Tubal = T\u00fcrkiye (Turkey) <a href=\"#[B]\">[B]<\/a><\/li>\n  <li>Tyre = Hezbollah &amp; Southern Lebanon <a href=\"#[A]\">[A]<\/a>\n<br \/><br \/><\/li>\n<\/ul>\n\n<p>References:<\/p>\n<ul>\n  <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>\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"[A]\"><\/a><\/p>\n\n<p>[A] marks the \u201cinner circle\u201d 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 \u201cwipe Israel off the face of the Earth\u201d): Lebanon, Jordan, Syria, [<a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/Psalm_83\">Wikipedia<\/a>]\n<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=n_Klsb6fxpc&amp;t=17m30s\">VIDEO<\/a><\/p>\n\n<p><a name=\"[B]\"><\/a><\/p>\n\n<p>[B] marks the \u201couter circle\u201d 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&amp;t=17m40s\">VIDEO<\/a><\/p>\n\n<ul>\n  <li>Sisera = Judges 4 Deborah &amp; Barak [A]<\/li>\n  <li>Jabin, at the brook of Kison: Which perished at Endor:<\/li>\n  <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>\n<\/ul>\n\n<hr \/>\n\n<p><a id=\"PreHistory\"><\/a><\/p>\n\n<h2 id=\"prehistory-geologic-time\">PreHistory (Geologic Time)<\/h2>\n\n<table border=\"1\" cellpadding=\"4\" cellspacing=\"0\">\n<tr valign=\"top\"><td>Precambrian<\/td><td>-4.6 Billion years<\/td><\/tr>\n<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>\n<tr valign=\"top\"><td>Mesozoic<\/td><td>-225 million years (dinosaurs)<\/td><\/tr>\n<tr valign=\"top\"><td>Holocene<\/td><td>-10,000 BC<\/td><\/tr>\n<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 &amp; Japan,<br \/>27,000 Siberia<\/td><\/tr>\n<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>\n<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>\n<br \/>4500 BC in India,<br \/>3000 BC throughout Mediterranean<\/td><\/tr>\n<tr valign=\"top\"><td>Broze Age (Copper+Tin from Cornwall, England)<\/td><td>3000 BC in Greece &amp; China,<br \/>1900 BC in Britain (source of Tin)<\/td><\/tr>\n<tr valign=\"top\"><td>Iron Age<\/td><td>From 1200 BC in the Middle East,<br \/>600 BC in China<\/td><\/tr>\n<\/table>\n\n<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>\n\n<ul>\n  <li>Martin Anstey\u2019s 1913 \"Romance of Bible Chronology\".<\/li>\n  <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>\n<\/ul>\n\n<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>\n\n<p>Additional information:\n<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>\n\n<p><br \/> 3.8-4 million BC ? First bipedal human in Ethiopia\n<br \/> 35,000 Upper Paleolithic Period, when first humans are believed to arrive in North America and Asia.\n<br \/> Nephilim (Genesis 6:4-6)<\/p>\n\n<p><a name=\"Creation\"><\/a><\/p>\n\n<h3 id=\"year-of-creation\">Year of Creation<\/h3>\n\n<p><br \/> 5762 according to Alan D. Corr\u00e9. Alternately:\n<br \/> 5176(+\/-26) as estimated by <a target=\"_blank\" href=\"http:\/\/www.biblicalchronologist.org\/correspondence\/virtual_history.php\">Gerald E. Aardsma<\/a>\n<br \/> <strong> 4114 <\/strong> based on analysis of Bible text, as explained in <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=D9b9h5mCgAc&amp;t=11m12s\">this video by usefulcharts.com<\/a>\n<br \/> 4004 [October 23] according to \"Annals of the World\" (1600 pages in Latin) by Irish Archbishop James Ussher (1581-1656)\n<br \/><\/p>\n\n<p><br \/> <em>No date?<\/em> Earth\u2019s 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>\n\n<p><a name=\"SinEvent\"><\/a>\n<br \/> ? [4043] Adam created by God (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/gen\/2\/1\/s_2001\">Gen 2<\/a>)\n<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>\n\n<p><br \/> __ Enoch translated (midway between Adam &amp; Abraham)<\/p>\n\n<p><a id=\"EarlyHistory\"><\/a><\/p>\n\n<h2 id=\"early-history\">Early History<\/h2>\n\n<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\u2019s 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.\n<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>)\n<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>)\n<br \/> <strong> Oct 7, 3761 BC<\/strong>, Hebrew (lunar) calendar starts on a New Moon (<em>Molad<\/em>)\non 1 Tishrei (New Year)\n<br \/>\n<br \/> 3520(+\/-21) [Usher 2348] Methuselah dies at 969 years old (Gen 7:27),\n\this death shall bring the one-year <strong>flood<\/strong> of Noah on\n\t<strong> 17th Nisan<\/strong>.\n\tThis begins 427-year Dispensation of Human Government.\n<br \/> <em> Post-diluvian times: <\/em>\n<br \/>\n<br \/> 3167 Abram (father of many) born in Ur, Assyria Mesopotamia (modern day Iraq) (Gen 11:26-32; Gen 12:4; Acts 7:4)\n<br \/>\n<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>)\n<br \/> 3100 First war recorded (in Egyptian hieroglyphics) about Pharaoh Narmer \"Menes the Fighter\" uniting Upper and Lower Egypt.\n<br \/>\n<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.\n<br \/> 3067 Issac born (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/gen\/25\/26\/s_25026\">Gen 25:26<\/a>)\n<br \/> ? Ishmael cast out (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/gen\/21\/8-10\/s_21008\">Gen 21:8-10<\/a>)\n<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)\n<br \/> ? Semite <a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/Sodom_and_Gomorrah\">Sodom &amp; Gomorrah<\/a> destroyed by\nfire and brimstone\u201d (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/gen\/19\/24-25\/s_19024\">Gen 19:24-25<\/a>)\n<br \/> 3007 Jacob (=by might) born (Gen 47:9) (Gen. 28:10-12, 32 &amp; 35:1-7)\n<br \/> 2916 Joseph born (<a target=\"_blank\" href=\"https:\/\/www.blueletterbible.org\/kjv\/gen\/41\/46\/s_41046\">Gen 41:46<\/a>)\n<br \/>\n<br \/> 2952(+\/-51) Egypt\u2019s Early Dynastic period ends with Dynasty 3.\n<br \/> 2879-2872 (Transition from Early Broze age I and II)\n\thigh residue radioactivity in tree rings of the time indicate\n\tlower solar activity, which causes drought and thus famine in the Near East.\n<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>\n\n<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.\n<br \/> 2590 Great Pyramid of Khufu at Giza begins to be built.\n<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)\n<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\n<br \/><\/p>\n\n<h3 id=\"ancient-egypt\">Ancient Egypt<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.metmuseum.org\/toah\/hd\/phar\/hd_phar.htm\">From the Met<\/a>:\nOur 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>\n\n<ul>\n  <li>3100 BC Unification of Upper and Lower Egypt by Narmer during the Early Dynastic Period<\/li>\n  <li>2649\u20132150 BC Old Kingdom: Dynasty 3-6<\/li>\n  <li>2150\u20132030 BC First Intermediate Period: Dynasty 7\u201311 first half<\/li>\n  <li>2040\u20131640 BC Middle Kingdom: Dynasty 11 second half - Dynasty 13<\/li>\n  <li>1550\u20131070 BC New Kingdom: Dynasty 18\u201320 (Ramesses II the Great)<\/li>\n  <li>1070\u2013713 BC Third Intermediate Period: Dynasty 21\u201324<\/li>\n  <li>712\u2013332 BC Late Period: Dynasty 25\u201330<\/li>\n  <li>332\u2013304 BC Macedonian Period: Alexander the Great<\/li>\n  <li>304\u201330 BC Ptolemaic Period: Dynasty 31\u201334<\/li>\n  <li>30 BC\u2013395 AD Roman Period: Ptolemy\n<br \/><br \/><\/li>\n<\/ul>\n\n<p>The word pharaoh is not from the Egyptian language but is the Hebrew word for the King of Egypt\u2019s 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.\nthe \u201cNew Chronology\u201d proposed in the 1990s, which lowers New Kingdom dates by as much as 350 years, or the \u201cGlasgow Chronology\u201d (proposed 1978\u20131982), which lowers New Kingdom dates by as much as 500 years.<\/p>\n\n<p><a id=\"Moses\"><\/a><\/p>\n\n<h2 id=\"mosaic-age-of-law\">Mosaic Age of Law<\/h2>\n\n<p>? Egyptian pharaoh Phiops II subjugates Isrealistes.\n<br \/> Moses rescued from the Nile to become <a target=\"_blank\" href=\"https:\/\/youtube.com\/shorts\/YQWX1VEVhIA?si=MXcmN8PMXPCpx_kL\"><em>Senenmut<\/em><\/a> (\u201cmother\u2019s brother\u201d) [marked on empty tomb in the temple of Egyptian princess Hatshepsut 1503-1482 BC, first female Egyptian pharaoh]\n<br \/> PROPOSED: <a target=\"_blank\" href=\"http:\/\/www.biblicalchronologist.org\/qa\/adb\/millennium.htm\">\n2447(+\/-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>)\n<br \/> 2152 BC The 6th Dynasty of Egypt\u2019s Old Kingdom under Pharoah Merenre Antyemsaf II\n\t(Greek name Niocris) collapses (putting Egypt into Dynasty 7 of the First Intermediate period),\n\tby parting and closing of the <em>Yam suth<\/em> (modern day <em>Lak Yahablah<\/em> - the Red Sea).\n<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> \u201cIn the 480th year after the Israelites came out of Egypt), in the 4th year of Solomon\u2019s reign\u201d) in 966 BC. That\u2019s during the reign of Ahmenhotep II (1450-1425 BC) during the 18th Dynasty of Egypt.\nin the jubilee of jubilees (50 x 50 years or 2500 years after the fall of Adam)\n<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>\n\n<p><br \/> Ten commandments given <em>apodictic<\/em> Normative, the beginning of Judaism<\/p>\n\n<ul>\n  <li>\n    <p><strong>Mount Sinai<\/strong> of Moses (<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=uQW5SmSjrY8\">VIDEO<\/a>: \u201cJabal Al Laws\u201d [<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>\n  <\/li>\n  <li>\n    <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>] (\u201cplace of-mouth of canyon\/channel\/canal\u201d 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\u2019s 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>\n  <\/li>\n<\/ul>\n\n<p><br \/> 2407 Hebrews (under Joshua, without Moses) enter Canaan, destroying Jericho and Ai\n\t(confirmed by radiocarbon dating of <em>et-Tell<\/em> digs found in 1934 by Marquet-Krause).\n<br \/> Hebrew occupation ends the Early Broze III period of Palestine.<\/p>\n\n<hr \/>\n\n<p><a id=\"Casuistic\"><\/a><\/p>\n\n<h2 id=\"casuistic-case-law-in-late-bronze-age\">Casuistic (case) Law in Late Bronze Age<\/h2>\n\n<p><br \/> 2350 Akkadian kingdom in Mesopotamia established by Sargon lasts 146 years by\n\tdescendants Rimush, Manishtusu, Naram-Sin, and Shar-kali-sharri.\n\tone of them is the <em>Cushan-rishathaim<\/em>, the first oppessor of Isreal,\n\tlater delivered by judge Othniel (Judges 3:10)\n<br \/> 2205-1765 Hsia dynasty in China.\n<br \/> 2000 BC Mayan civilization forming to reach peak 250-900 CE.\n<br \/> [not 1375] Judges rule: Othniel, Ehud, Deborah, Gideon,\n<br \/> 1977-1957 [not 1075] Samson in Gaza, the last judge in the book of Judges.\n<br \/> Ruth &amp; Boaz (=by his counsel)\n<br \/> ? Elijah translated (midway between Abraham &amp; Christ)\n<br \/> (800 year) Biblically quiet period of more Judges of Isreal<\/p>\n\n<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.\n<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\n<br \/> 1628 Volcano erupts in Thesus (modern day Satorini, Greece)\n\tdestroys the Minoan civilization on the island of Crete, an art-loving culture Homer calls Atlantis.\n<br \/> 1590 <a tartet=\"_blank\" href=\"http:\/\/www.wsu.edu:8080\/~dee\/MESO\/KASSITES.HTM\">\n\tKassites<\/a> take power in Mesopotamia and Palestine.\n<br \/> 1550(+\/-15) <strong>Egypt begins New Kingdom period <\/strong>Dynasty 18.\n<br \/> 1500 Hinduism begins in India.\n<br \/>\n<br \/> [1525] Moses saved by princess Nefure, only child of Tutmoses I (Exodus 2:1-10),\n\tand lives in the palace as <em>Senmut<\/em>.\n<br \/> Nefure becomes Queen Hapsepsut with half-brother Tusmoses II after Moses refused it.\n<br \/> <a target=\"_blank\" href=\"http:\/\/www.pbs.org\/empires\/egypt\/tuthmosis.html\">\n1458<\/a> Tuthmosis III (1516-1426) <a target=\"_blank\" href=\"http:\/\/www.eyelid.co.uk\/k-q3.htm\">\nseiges Meggiddo<\/a> (among 350 cities) during his 1504-1450 reign of Egypt\u2019s 18th dynasty.\n<br \/>\t<em> [1445\/7-1336] Early date for the Exodus<\/em>, when Tutmoses IV (Amenhotep III) ruled Egypt.\n<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.\n<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>\n\n<p><br \/> 1300 Temple of Abu Simbel built in Nubia for Ramesses II.\n<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.\n<br \/> 1236 - 1203 Merneptah\u2019s campaigns into Palestine via sea.\n<br \/> 1200 Trojan War between Greeks and Trojans, as described in Homer\u2019s <em>Illiad<\/em>.<\/p>\n\n<p><br \/> 1200-1000 Rig Vedas composed in India\n<br \/> 1198 - 1153 Ramesses III campaigns with chariots into Peleset (Philistines) in Palestine.\n<br \/> 1191 Zen Buddhism introduced to Japan by Chinese monk <em>Eisai<\/em>\n<br \/> 1185 Samurai wrest power from aristocracy in Japan<\/p>\n\n<p><br \/> 1177 <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=bRcu-ysocX4\">VIDEO: Civilization Collapsed<\/a> by invasion from running \u201cSea Peoples\u201d invading the Eastern Mediterranian among Greek Mycenaeans, Cyprus, Egypt, Hittie, Assyria, Babylon.\n<br \/> 1122-225 Chou dynasties reign in China<\/p>\n\n<p><br \/> 1070(+\/-15) Egypt begins Third Intermediate period Dynasty 21.\n<br \/> <strong>1051(+\/-16) Samuel born<\/strong>, ending age of Judges.<\/p>\n\n<p><a id=\"UnitedKingdomz\"><\/a><\/p>\n\n<h2 id=\"united-and-divided-kingdoms\">United and Divided Kingdoms<\/h2>\n\n<p><br \/> 1051(+\/-16) Saul unites kingdom of Isreal and begins to reign in the Biblical age of Monarchy.\n<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)\n\testabishes New Troy in Britain (later to be renamed London).<\/p>\n\n<p><br \/> 980 (within 40 year rule 1010-970) David king (Psalms, 1st Chronicles) establishes Jerusalem\n<br \/> 965 Solomon begins building the temple\n<br \/> 940 Solomon king with 700 wives (Songs, Proverbs, 2nd Chronicles, 1 Kings)\n<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>)\n<br \/> 925\/900 Jeroboam 10 tribes split to North from Rehoboam\n<br \/> Omri\u2019s son Ahab &amp; Jezebel hunt Elijah to Mt. Carmel (<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/1ki\/18\/1\/s_309001\">1 Kings 18<\/a>)\n<br \/> 871 [RC14 dating at Tel Rehov says not 925] <strong> Shishak invasion <\/strong> in year 39 of Solomon\/Year 5 of Rehoboam\n<br \/> 880 Asa king of Southern Kingdom of Judah; Joehoshaphat, 7 yr. old Joash\n<br \/> 842 Elijah outs Ahab and Jezebel for their worship of false gods\n<br \/> 814 Jeroboam II king of Israel after Yahwist Jehu coup\n<br \/> 800-600 Upanishads composed in India\n<br \/> 785? Amittai Jonah (=Dove) prophet to Assyrian Ninevah (Greek <em lang=\"gr\">Ionas<\/em>)\n<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/mat\/12\/38\/s_941038\">Matthew 12:38<\/a>)\n<br \/> 776 Greeks hold first Olympics in town of Olympia \u2014 the first year of the Greek Calendar.\n<br \/> Northern Prophets: 760-750 Amos, 753 Hosea (harlot wife Gomer)\n<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\u2019s captue of Jerusalem on 701 BC<\/a> and Exodus at 1446 BC.\n<br \/> 753 Foundation of Rome.\n<br \/> Southern Jotham &amp; Ahaz &amp; Hezekiah: 742 Micah, 740-681 Isaiah\n<br \/> 731 Ukinzer (a Chaldean) becomes king of Babylon (modern-day Iraq) to begin Chaldean rule.\n<br \/> 730 Sparta conquers Messene.\n<br \/> 722 Ten Northern tribes of Israel taken as slaves to Assyra by Shalmaneser on <strong> 9th of Az <\/strong>\n<br \/> 710 Hezekiah (715-686) repels Sennacerib (the death angel) from Jerusalem\n<br \/> <strong> 753 <\/strong> year 1 AUC (Ab Urbe Condita, meaning \u201cfrom the foundation of Rome\u201d)\non the \u201cKalends of March\u201d (March 1st)\n<br \/> 722 Samaria completely destroyed by Assyrian king Shalmanesar V (727-722BC) 2 Kings 17-18.\n<br \/> <strong> 701 calendars adjusted <\/strong> (for planetary ressonance with Mars?)\n<br \/> 697 Manasseh bad king of Judah (2 Kgs 21 &amp; 2 Chron. 33)\n<br \/> 669 Babylon destroyed by Assyrians.\n<br \/> 660 Shinto religion defined in Japan during rein of Jimmu, first Japanese emperor.\n<br \/> 640 Zephaniah prophet, 635 Xephaniah, 626 Jeremiah, 620 Nahum, 612 Habakkuk\n<br \/> 630-550 Life of Zoroaster\n<br \/> 621 Josiah (640-609 son Amon) discovers the Law Book of Deuteronomy in the Temple and begins monotheistic practice\n<br \/> 621 The Laws of Dracon become the first written laws of Athens, Greece. The adjective \u201cdraconian\u201d describes its harshness.\n\"We need the death penalty to prevent small crimes, and for bigger ones I can\u2019t think of any greater punishment.\"<\/p>\n\n<p><br \/> 614 Fall of Assyria.\n<br \/> 608-597 Jehoiakim, 597 Ezekiel captive, 593-571 Ezekiel prophesizes\n<br \/> 605 Jehoachin\/Jeconiah &amp; Zedekiah exiled, Daniel captured by Medes &amp; Persians.<\/p>\n\n<p><a id=\"Bablyonz\"><\/a>\n<br \/> 604-562 Nebuchadnezzar II rules Neo-Babylonian (Chaldean) Empire and builds the Hanging Gardens of Babylon,\n\tone of the \"Seven Wonders of the Ancient World\".\n<br \/> 600 Taoism religion defined in China by Lao-Tse (604-531) writing Tao-te-Ching (\u201cThe Way of Power\u201d) which describes the nature of life, the way to peace and how a ruler should lead his life.\n<br \/> 597-8 First Babylonian conquest of Jerusalem\n<br \/> 594 Solon establishes a constitutional democracy in Athens, and wipes out all debts.\n<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>)\nNebuchadnezzar destroys <strong> Soloman\u2019s temple<\/strong> in Jerusalem\n during his 2nd Babylonian conquest. This date is an anchor for chronologies.\n<br \/>583 BC Jeremiah (with Baruch) marries Tea Tephi, a daughter of King Zedekiah, to Eochaidh II (Eremhon), High Zarahite King of Ireland.\n\tThis exalts the Zarah line from which all the kings and queens of Britain and northwest Europe descend.\n<br \/> 563-483? Siddhartha Gautama, founder of Buddhism (later enlighten to Buddha), born in Napal.\n<br \/> 561 Pisistratus, leader of the poor, becomes the tyrant of Athens.\n<br \/> 560 Lao-Tze writes his philosophy.\n<br \/> 551-479 Confucious writes fortune cookie sayings in China (Analects).<\/p>\n\n<h3 id=\"ancient-persians\">Ancient Persians<\/h3>\n\n<p><br \/> 550 King Cyrus II of Persia founds Persian empire.\n<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).\n<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>)\n<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>\n\n<p><a id=\"Medo-Persiaz\"><\/a>\n<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>)\n<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>).\n<br \/> 512 <strong> Second Temple of Isreal finished.<\/strong>\n<br \/> 510 Cleisthenes, with exiled Athenian nobles and an army from Sparta, liberates Athenians from Pisistratus and his sons.\n<br \/> 505 Democracy established in Athens.<\/p>\n\n<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>)\n<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>)\n<br \/> 424 BC Xerxes II\n<br \/> 424 - 423 BC Sognianus\n<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>)\n<br \/> 404 - 358 BC Artaxerxes II (Mnemon) of Persia\n<br \/> 358 - 338 BC Artaxerxes III (Ochus) of Persia\n<br \/> 338 - 336 BC Arses of Persia\n<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>\n\n<p>A \u201cdiadem\u201d (crown) is a blue band marked with white which Persian kings used to bind on the turban or tiera.<\/p>\n\n<p><br \/> 477 Athens assumed leadership of the Delian League alliance of the city-states and islands of Greece against the Persians.\n<br \/> 464 Earthquake in Sparta; helots revolt.\n<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\u2019 death on 1 Nisan (Friday April 15) AD 33.\n<br \/> 434 Dedication of the wall of Jerusalem by Ezra and Nehemiah (Nehemiah 12:27)\n<br \/>\n<br \/> 434 [not 490] Battle of Marathon, (coast of Attica) Greece won by Athenians\n\tafter Persian king Darius I is killed by a Greek beauty.\n<br \/> 424 [not 480] Xerxes (aka Artaxerxes, son of Darius) destroys an empty Athens after\n\tovercoming the heroic 300 Spartans at the Battle of Thermopylae.\n<br \/> Xerxes leaves the war to Mardonius after defeat by the more nimble Greek navy at the Battle of Salamis.\n<br \/> 425 [not 479] Persians under Mardonius are defeated by allied Greeks at the Battle of Plataea.<\/p>\n\n<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>\n\n<p><br \/> 403- [according to Thucycides] Sparta defeats Athens in the 27 year Peloponnesian War.<\/p>\n\n<p><a id=\"InterTestament\"><\/a><\/p>\n\n<h2 id=\"inter-testament-times\">Inter-Testament Times<\/h2>\n\n<p>753 Romulus &amp; Remus (Castor &amp; Pollux) saved by wolves, start of Roman <em>Anno Urbis (ab urbe condita)<\/em> calendar.\n<br \/> 630 Egyptians ransack the Temple in Jerusalem\n<br \/> 606 Babylon captures Jerusalem, the <strong>beginning of \u201ctimes of the Gentiles\u201d <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/luk\/21\/24\/s_994024\">Luke 21:24<\/a>)\n<br \/> 604 Lao-tzu, founder of Taoism, born in China.<\/strong><\/p>\n\n<p><br \/> 328 AD Nammara inscription is among earliest written evidence of Nabataean script Old Arabic.\n<br \/> 470 AD oldest known inscription, a composite of Nabataean and Arabic writing, found near Najran in Saudi Arabia.<\/p>\n\n<p><br \/> 410-322 Age of Socrates (the first to recognize a one true, but unknown, G-d), Plato, and Aristotle in Greece\n<br \/> 403 Start of \"Waring States\" period in China.<\/p>\n\n<p><br \/> 356 Alexander born to Phillip II of Macedonia, tutored by Aristotle (384-322)\n<br \/> 338 Philip II of Macedonia conquers other Greek city-states in Battle of Chaeronea.\n<br \/> 335 Alexander begins in Thebes the conquest of the known world.\n<br \/> 334 BC Battle of Granicus (now the Biga River in modern-day Turkey) is Alexander the Great\u2019s first major victory against the Persian Empire<\/p>\n\n<p><a id=\"Greecez\"><\/a><\/p>\n\n<h3 id=\"greece\">Greece<\/h3>\n\n<p>333 At the Battle of Issus, Alexander defeats the army of Persia to control the western Persian empire.\n<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>\n<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.\n<br \/> 326 Alexander\u2019s invasion of India ends after the Battle of the Hydaspes.\n<br \/> 323 Alexander dies in Babylon. Land distributed among his 4 Greek generals during the Hellenistic age:<\/p>\n<ul>\n  <li>Cassander rules Macedonia &amp; Greece in the West<\/li>\n  <li>Ptolemy rules Egypt &amp; Palestine in the South<\/li>\n  <li>Lysimachus rules Thrace &amp; Asia Minor (Byzantium) in the North<\/li>\n  <li>Seleucus rules Antioch, Syria (Seleucia) &amp; Mesopotamia in the East\n   <br \/><br \/>\n<br \/> 322 Chandragupta founds Mauryan Empire in India.\n<br \/> 312 Greek Seleucid dynasty reigns in Mesopotamia, with Seleucia as capital, infusing Hellenistic culture.<\/li>\n<\/ul>\n\n<p><br \/> 304 Egypt becomes independent under Roman general Ptolemy I.\n<br \/> 301 Alexander\u2019s successors fight at the Battle of Ipsus.\n<br \/> 290 Foundation of library at Alexandria, Egypt.\n<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>\n<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.\n(Korea and Japan still call Chinese glyphs \u201cHan\u201d)<\/p>\n\n<p><br \/> 281-275 Pyrrhus fights in Italy and Sicily.<\/p>\n\n<p><a id=\"Romanz\"><\/a><\/p>\n\n<h3 id=\"roman-empire\">Roman Empire<\/h3>\n\n<p><br \/> <a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/List_of_Roman_emperors\">List of Roman Emporers<\/a><\/p>\n\n<p><br \/> 264-146 <strong> Punic Wars <\/strong> between Rome and Carthage.\n<br \/> 264-241 Rome wins control of Sicily from Carthagians under Hannibal in First Punic War.<\/p>\n\n<p><br \/> 262 Mauryan emperor Asoka becomes a Buddhist and sets up stupas containing a part of the Buddha\u2019s body.\n<br \/> 245 Agis attempts reform in Sparta.\n<br \/> 241 Agis is executed by the rich of Sparta.<\/p>\n\n<p><br \/> 221 Qin Shi Huangdi unites China and becomes its first emperor.\n<br \/> 222 Royal lines of Sparta ends.\n<br \/> 218-202 Roman general Scipio wins Second Punic Wars against Hannibal.\n<br \/> 214 Great Wall of China begins construction.\n<br \/> 202 China reunited under Han dynasty.\n<br \/> 198 Syrian Seleucid Antichus III rules.\n<br \/> 197 Rome defeats Macedonia.\n<br \/> 192-188 War between the Seleucids and the Romans.\n<br \/> 168 Greece ends its dominance to Rome (two feet in Rev.).\n<br \/> 167 Syrian Antiochus Epiphanes IV defiles temple with pig &amp; statue of Zeus (<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/dan\/8\/9-12\/s_858009\">Daniel 8:9-12<\/a>)\n<br \/> 164 (168-165) Judas Maccabee revolt, <a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/Hanukkah\"> Hanukkah<\/a> begins priestly Hasmonean dynasty<\/p>\n\n<p><br \/> 149-6 Rome destroys Carthage in Third Punic Wars.\n<br \/> 146 Rome obliterates Corinth. All Greece becomes conquered territory.\n<br \/> 135 Total exile of the Jewish people from Jerusalem by the Romans.\n<br \/> 129 Jerusalem becomes an independent Jewish capital\n<br \/> 112-106 Rome destroys Juguertia, King of Numidia\n<br \/> 112 \"Silk Road\" opens from China to the West.\n<br \/> 111 Han annexes North Vietnam.\n<br \/> 100 Anasazi, Hohokam, and Mogollon people populate Southwestern North America.\n<br \/> 100 BCE-250AD <em>Yayoi<\/em> (metal) period in Japan\n<br \/> 84 Rome (Agricola) repeled by Scottish tribes in Battle of Mons Graupius.\n<br \/> 74 Julius Caesar defeats Pharnakes, king of Pontus (now northeastern Turkey), son of Mithridates\n<br \/> 73-71 Revolt of slave Spartacus vs. Rome\n<br \/> 64 Roman general Pompey conquers Syria.\n<br \/> 63 Roman general Pompey renames Judea &amp; Palestine after subjecting them.\n<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\nconquer Gaul and Britain.\n<br \/> 53 Parthians prevent further eastward expansion of Romans.\n<br \/> Jan. 10, 49 Julius Caesar crosses the Rubicon from Gaul into Italy with his army\n\tto establish himself as a dictator over Pompey and the Roman nobility.\n<br \/> 48 Julius Caesar defeats Pompey in the Battle of Pharsalus\n<br \/> 46 BC, called the \"Year of Confusion\" because it consisted of 445 days\ndue to an intercalary month being inserted to get public Roman feasts back to the correct seasons.\nThis calendar change also moved the first day of the year from March 15 (the \"Ides of March\")\nwhen new Roman consuls take office (see Shakespear\u2019s Julius Ceasar).\n<br \/> <a target=\"_blank\" href=\"http:\/\/users.chariot.net.au\/~gmarts\/calfacts.htm\">\n\t45<\/a> <strong>Julian calendar<\/strong> of 12 months and 365.25 days per year (with a leap year every 4 years)\ninstituted by Roman Julius Ceasar.\n<br \/> 40 Jimmu Tenno, first emperor of Japan\n<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>\n<br \/> 31 Octavius defeats Mark Anthony and Cleopatra of Egypt, ending Roman civil wars at the Battle of Actium, Greece.\n<br \/> 27 Octavius (Julius Ceasar\u2019s adopted son) is renamed Augustus Ceasar and replaces Republic.\n<br \/> 19 <strong>Herod <\/strong>finishes construction on <strong> Temple<\/strong> in Jerusalem.\n<br \/> 15 (Ides of) March, <strong> 44<\/strong> Assassination of Julius Caesar by Brutus marks the end of the Roman Republic\n<a href=\"http:\/\/tech-two.mit.edu\/Shakespeare\/Tragedy\/juliuscaesar\/juliuscaesar.html\" target=\"_blank\">See Shakespeare\u2019s play<\/a>.\n<br \/> 14 Augustus deified by the Roman Senate\u2013the first Roman ruler to be <strong> worshipped <\/strong> as a son of a god (<em>divi filius<\/em>).\n<br \/>  4 Death of Herod the Great, Rome-appointed ruler of Judea, Samaria, Galilee, and surrounding territories.\nHis son, Herod Antipas, took lands north of the Galilee and east of the Jordan River.\nPhillip took the areas east of the Sea of Galilee (the area now called the Golan Heights).\nThird son, Archelaeus, took the central portion which includes Jerusalem.<\/p>\n\n<p><br \/> __ Pontius Pilot comes from Rome to be a military \u201cPrefect\u201d over Judea.\n<br \/> __ John the Baptist born (<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/isa\/40\/3\/s_719003\">Isaiah 40:3<\/a> &amp; <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/mal\/3\/1\/s_928001\">Malachi 3:1<\/a>)\n<br \/> __ Mary conceives after the Annunciation\n<br \/> __ Mary stays at cousin Zacharia &amp; Elizabeth\n<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\u2019s between Aug - Sep 29 AD according to numismatic and inscriptional evidence.<\/p>\n\n<p><a id=\"ChristTime\"><\/a><\/p>\n\n<h2 id=\"time-of-christ\">Time of Christ<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=zQw-_uzMnR4&amp;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>]\n<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\u2019s Fall)\n<br \/> Jesus\u2019 family in Egypt (<a target=\"_blank\" herf=\"https:\/\/www.blueletterbible.org\/kjv\/mat\/2\/13-15\/s_931013\">Matthew 2:13-15<\/a>)<\/p>\n\n<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)\n<br \/> (27\/28) Jesus rides into Jerusalem (on a donkey) as Messiah the prince\n\t(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>\n\n<p><a id=\"JesusCrucified\"><\/a>\n<br \/> April 6 (Nizon 13), 29\/30 AD Christ crucified (&lt;\/a&gt;<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/dan\/9\/26\/s_859026\">Daniel+9:26 \u201ccut off\u201d<\/a>) as Passover (Pesach) lambs were slain.<\/p>\n\n<p><a id=\"Jesus Ressurect\"><\/a>\n<br \/> (Nisan 16) Ressurection (Easter) on the Feast of Unleavened Bread<\/p>\n\n<hr \/>\n\n<p><a id=\"AgeGrace\"><\/a><\/p>\n\n<h2 id=\"apostolic-age-of-grace---the-early-church\">Apostolic Age of Grace - The Early Church<\/h2>\n\n<p><a class=\"OfferText\" target=\"_blank\" href=\"http:\/\/www.gospelcom.net\/rbc\/ds\/q0907\/\">\nNOTE: The time periods to follow are split based on John (and Jesus Christ\u2019s) Letters to the seven churches in the Book of Revelation.<\/a><\/p>\n\n<blockquote>\n  <p>To the church in Ephesus \u2013<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/2\/1\/s_1169001\">Revelation 2:1<\/a><\/p>\n<\/blockquote>\n\n<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\u2019 resurrection). Beginning of the Dispensation of Grace.<\/p>\n\n<p><br \/> 17-24 AD\/CE Tacfarinas leads African Numidians in revolt against Romans.\n<br \/> 35-36 AD\/CE Saul of Tarsus, a Jew, comes to believe in Jesus as the Messiah and subsequently becomes the apostle Paul\n<br \/> 42 Mark Anthony defeats Caius in Battle of Phillipi.\n<br \/> 43 Romans invade Britain.\n<br \/> 45 Julius Ceasar introduces the 12 month Julian calendar with leap years on advice of Alexandrian astronomer Sosigenes.<\/p>\n\n<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\">\u2013Acts 15:28<\/a><\/p>\n\n<p><br \/> 50 Paul leaves Antioch to begin his Aegean Mission. His letters to these congregations are the earliest documents in the New Testament.\n<br \/> 50-52 Paul\u2019s 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>.\n<br \/> 50 jew Philo writes\n<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>.\n<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&amp;t=KJV#s=s_primary_0_1\">Corinthians<\/a>\nand 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>.\n<br \/> 56 First church Council - formed the <a target=\"_blank\" href=\"http:\/\/www.gty.org\/~phil\/creeds\/apostles.htm\">Apostle\u2019s Creed<\/a>\n<br \/> 57 Paul\u2019s 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)\n<br \/> 58-60 Paul is imprisoned in Rome.\n<br \/> 61-63 Roman forces move into Sudan.\n<br \/> 64 Nero Claudius Ceasar (Lucius Domitius Ahenobarbus) persecutes Christians after Fire of Rome.\nSome believe he is <a target=\"_blank\" href=\"http:\/\/www.jf.org\/papers\/beast.htm\">\nthe \u201cbeast\u201d<\/a> described in the book of <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/1\/1\/s_1168001\">Revelation<\/a>.\n<br \/> 64 (60-68) Peter martyred in Rome under Nero.\n<br \/> 68 (60-65) Paul martyred in Rome under Nero.\n<br \/> 69-79 Roman emporor Vespasian reigns.\n<br \/> 70 (on 9th Av) Temple destroyed by Roman general Titus (eldest son of Vespasian)\n\u2013 as predicted by <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/dan\/9\/26\/s_859026\">Daniel 9:26<\/a> \u201cThe people of the prince that shall come shall destroy the city and the sanctuary\u201d) and <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/luk\/21\/1\/s_994001\">Luke 21:24,27<\/a>\n<br \/> 70 Council at Jamnia codifies canon (books) of the Hebrew Bible.\n<br \/> 100 Buddhism Spreads to China - 4th Council precipitates split of\n\t<em>Theravada (hinayana)<\/em> and <em>Mahayana<\/em> traditions.\n<br \/> 70-100 Gospels of Mark, Matthew, and Luke written.\n<br \/> 79 In Southern Italy, Mount Vesuvius erupts and destroys the town of Pompeii.\n<br \/> 79-81 Reign of Titus.\n<br \/> 81-96 Reign of the emperor Domitian (Vespasian\u2019s younger son and the object of the anti-Roman attack in the Book of Revelation).\n<br \/> 85 \u201cCurse against Heretics\u201d <em> (Birkath ha-minim) <\/em> added to Jewish synagogue benedictions, with the intent of excluding Christians.\n<br \/> 90 Council of Jamnia produces Jewish scriptures in Greek.\n<br \/> 94 jewish historian Flavius Josephus (37-100) publishes \u201cAntiquities of the Jews\u201d.<\/p>\n\n<p><br \/> 96 (90-110) John, the last apostle alive, while exiled on the island <strong lang=\"el\">Patmos<\/strong> (Greek word for \u201cmortal\u201d), pens Book of <strong>Revelation<\/strong> (Greek word <em lang=\"el\">apocalypse<\/em> which means disclosure, appearing, coming, uncovering, unveiling, and revealing).\n<br \/> 96-98 Roman emperor Nerva reigns.\n<br \/> 98-117 Roman Emperor Trajan reigns. In Dante\u2019s Divine Comedy, Trajan is the only emperor allowed into heaven.\nHe is so celebrated that all other Roman emperors are honored by the Roman Senate with <em>felicior Augusto, melior Traiano<\/em> (\u201cmay he be more fortunate than Augustus and better than Trajan\u201d).<\/p>\n\n<p><a id=\"Persecu\"><\/a><\/p>\n\n<h2 id=\"roman-persecutions\">Roman Persecutions<\/h2>\n\n<blockquote>\n  <p>Smyrna in <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/2\/8\/s_1169008\">Revelation 2:8<\/a><\/p>\n<\/blockquote>\n\n<p>107-117 Ignatius (bishop of Antioch) is martyred.\n<br \/> 117-138 Roman emperor Hadrian reigns.\n<br \/> 112 Cornelius Tacitus, Pliny the Younger writes about Jesus.\n<br \/> 120 Suetonicus writes about Jesus in Life of Claudius\n<br \/> 132-135 Second Jewish revolt (the \u201cBar Cochba\u201d revolt) against Rome.\n<br \/> 136 Second Roman (Hadrian) conquest of Jerusalem.\n<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>\ndefending Christianity as a \u201cphilosophy\u201d worthy of the respect of the educated and as the only legitimate heir to the Israelite scriptures.\n<br \/> Irenaeus writes <a target=\"_blank\" href=\"http:\/\/www.ccel.org\/fathers\/ANF-01\/iren\/index.html\"> Against Heresies<\/a>\n<br \/> 119 Tertullian writes oldest Christian works in Latin\n<br \/> 150 Invention of triangular lateen sails allow Mediterranean ships to tack into the wind.<br \/>\n 156? Polycarp, bishop of Smyrna and younger colleague and admirer of Ignatius of Antioch,  martyred.\n<br \/> 161-180 Ceasar Aurelius persecutes and executes Christians.\n<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\n<a target=\"_blank\" href=\"http:\/\/www.ccel.org\/fathers2\/ANF-04\/anf04-44.htm\"> De Principiis<\/a><\/p>\n\n<p><br \/> 200-258 Novation caused split in Rome over what to do with Christians who avoided persecution.\n<br \/> 220 Jewish <strong> Mishnah<\/strong> (commentary on the Bible) completed\n<br \/> 200 Indian epics of Rmayana and Mahabharata composed.  Creation of Hindu scripture <em>Bhagavad Gita<\/em>.\n<br \/> 224 Sassanids come to power in Persia.\n<br \/> 249-251 Persecution of the church by Decius.\n<br \/> 265-420 The Qin (Ch\u2019in) dynasty unifies China and standardized currency, weights, and measures.\n<br \/> 251-356 Antony of Egypt, founder of monasticism, becomes the earliest hermit monk.\n<br \/> 258 Bishop Cyprian, Catholic theologian, martyred<\/p>\n\n<p><br \/> 293 Diocletian divides Roman Empire in two.\n<br \/> 303 Severe persecution of the church by Roman emperor Diocletian.\n<br \/> 304 Invasion of Huns divide China.\n<br \/> October 27, 312 Battle of Rome\u2019s Milvain Bridge leads to the succession of Constantine to the throne and conversion to Christianity.\n<br \/> 320 Chandragupta I founds Gupta Empire in Northern India.\n<br \/> 320 Pachomius, a hermit, starts communal monasticism.\n<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>)\n<br \/> (260-340) Eusebius, Bishop of Caesarea, writes geography\n<br \/> 372 Buddhism in Pyonyang, Korea\n<br \/> Athanasius (293-373), Bishop in Egypt, defends Christian Orthodoxy against Arianism.\n<br \/> 391 First Japanese invasion of Korea.\n<br \/> 420-589 Six Dynasties in China.<\/p>\n\n<p><a id=\"Byzantine\"><\/a><\/p>\n\n<h2 id=\"313-600-byzantine-era--age-of-constantine-dark-ages\">313-600 Byzantine Era \/ Age of Constantine (Dark Ages)<\/h2>\n\n<blockquote>\n  <p>Pergamum in <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/2\/12\/s_1169012\">Revelation 2:12<\/a><\/p>\n<\/blockquote>\n\n<p><br \/>324 Constantine\u2019s <a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/Edict_of_Milan\">Edict of Milan<\/a> ends Roman persecution with toleration of Christians.\n<br \/> <a target=\"_blank\" href=\"http:\/\/en.wikipedia.org\/wiki\/Theodosius_I\">Flavius Theodosius<\/a> (January 11, 347-January 17, 395)\nafter reunited East and west fractions of the Roman empire as the last emperor of all Rome,\ndeclared Christianity the official state religion of the Roman Empire.\n<br \/> 325 Lactantius tutors the son of Constantine.\n<br \/> 325 <a href=\"http:\/\/iclnet93.iclnet.org\/pub\/resources\/text\/history\/creed.church.txt\">\n\tNicea Council<\/a> issues <a target=\"_blank\" href=\"http:\/\/www.gty.org\/~phil\/creeds\/nicene.htm\">\n\tNicean Creed<\/a> adopted 381\n<br \/> 330 Constantine (280-337) establishes Roman capital in Byzantium (modern Istanbul, Turkey)\n<br \/> 335 Queen Helena builds Church of the Holy Sepulcher\n<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>)\n<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>\n\n<p><br \/> 378 Goths (Germanic tribes) defeat Romans in Adrianople, Turkey.\n<br \/> (389-461) Patrick, a missionary to Ireland, encouraged <a target=\"_blank\" href=\"http:\/\/www.ccel.org\/patrick\/confession\/confession.html\">\nasceticism<\/a>.\n<br \/> 391-2 Pagan worship (including the Olympics) outlawed throughout Roman empire.\n<br \/> 395 The will of Theodosius I officially splits Roman Empire into Eastern and Western legs.\n<br \/> 397 Council of Carthage defines Canon of 27 NT books; Jerusalem Talmud\n<br \/> 382-405 Jerome completes Latin Vulgate (common) Bible in Jerusalem\n<br \/> 399-414 <em>Fa Hsien<\/em> travels to India to recover Vinaya\n<br \/> 401 Introduction of writing (kanji) to Japan\n<br \/> 410 Rome sacked by Visigoths from the North\n<br \/> 451 <a target=\"_blank\" href=\"http:\/\/iclnet93.iclnet.org\/pub\/resources\/text\/history\/creeds.chalcedon.txt\">\n\tThe 4th Council at Chalcedon<\/a> clarifies orthodox Christology -<\/p>\n<ul><em> Christ as truly man AND truly divine without Monophysite confusion, mixture; or Nestorian separation.<\/em>\n<\/ul>\n<p><strong> 476 Fall of last Roman Emperor;<\/strong>\n\tRoman monk Dionysius establishes <strong> Before Christ\/Anno Domini calendar <\/strong>\n<br \/> 476 Romulus Augustulus, the last Roman emperor, is overthrow.\n\tApostles are scattered (Acts 8:1)\n<br \/> 491 Armenian church founded.<\/p>\n<p>520 Guptas of India invent the decimal system.\n<br \/>527-529 <a href=\"http:\/\/iclnet93.iclnet.org\/pub\/resources\/text\/history\/council.orange.txt\">\n\tCanons of the Council of Orange<\/a>\n<br \/> 533 Ananthemas of the 2nd Council of Constantinople\n<br \/> 533 Roman Emperor Justian retakes northern Africa.\n<br \/>\n<a id=\"Dividedz\"><\/a>\n       <strong>538<\/strong> Bishop Silverius of Rome allows Justian's army into Rome (fighting against Goths), and gets banished.\n\t\tVigilus is appointed Pope (and the seat of Caesar) by Belisarius, Justinian's general.\n\t\t(Daniel 7:24) Popes begins 1260 year rule until 1928.\n<br \/> 539 War between Persians and Byzantines\n<br \/> 540-604 Gregory the Great, a monk, is Pope\n<br \/> (480-550) Bendict founds Benedictine monasticism\n<br \/> 552 Buddhism brought to Nara, Japan\n<br \/> 552 Justian restores Italy to Roman control\n<br \/> 587 Visigoths convert to Christianity\n<br \/> 589 Reunification of China under Sui dynasty\n<br \/> 618-906 T'ang dynasty reunifies China\n<br \/> 600 Babalonia Talmud codified\n<br \/> 605 Augustine is sent by Pope to be a missionary to Celtic England.<\/p>\n<p><br \/> 604 Prince Shotoku establishes rule of law in Japan<\/p>\n\n<p><a id=\"MiddleAgez\"><\/a><\/p>\n\n<h2 id=\"middle-ages\">Middle Ages<\/h2>\n\n<blockquote>\n  <p>Thyatira in <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/2\/18\/s_1169018\">Revelation 2:18<\/a><\/p>\n<\/blockquote>\n\n<p>614 Persians massacre jews in Jerusalem\n<br \/> 610-June 7 During his annual monthly retreat within a desert cave on Mount\nHira in Arabia, prophet <a target=\"_blank\" href=\"http:\/\/www.sim.org\/islam\/man.html\">\n\tMohammed<\/a> (PBUH), a camel driver from the <em>Quraysh <\/em> tribe asked to recite the\n<em>Qur\u2019an<\/em> (recitation) from <em>Jibril<\/em> (the angel Gabriel). This is remembered during\nthe 9th month each year with day-time fasting during <em>Ramadan<\/em>.\n<br \/> 617? 618-906 T\u2019ang dynasty in China\n<br \/> July 16, 622 Muhammad PBUH and his followers start a 200 mile <em>Hijrah <\/em> (migration) from Mecca\/Makkah to\nMadina (now Saudi Arabia), an event marked as the first day of each Islamic new year (epoch)<\/p>\n<p>627 Byzantine Emperor Heracles defeats the Persian army.\n<br \/> 629-645 Chinese pilgrim Xuanzang collects Buddhist teachings in China, Cambodia, and India,\n\tthen translates many of the surviving Sutra of the Mahayana Canon into Middle Chinese.\n<br \/>630 (Without a battle) Muhammad's 10,000 man army <em> Jihad <\/em> (struggle) restores the Ka'bah (first mosque) in Mecca.\n<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.\nIt contains the Five Pillars of Islam (submission). These events are celebrated on <a target=\"_blank\" href=\"http:\/\/alummah.net\/texteng\/isra.htm\">Isra'<\/a>\n\n632 Muhammad PBUH dies in Mecca, and ascends to <em>Mi'raj<\/em> (heaven) from the temple mount.\nHis father-in-law, Abu Bakr, is elected by Sunni tribal leaders as the Rightly-Guided <em>caliph<\/em> (successor).\n<br \/> 634 Abu Bakr dies after appointing Umar I caliph, who then conquers Jerusalem, Byzantine Damascus, and Syria.\n<br \/> 635 Buddhism spreads to Tibet\n<br \/> 636 Arabs under <em>Kalid ib-al Walid<\/em> defeat Byzantines in desert sandstorm at Yarmul (now Isreal).\n<br \/> 644 On his deathbed, Umar names a council which chose Uthman the next caliph, who conquers Persia (Iran).\n<br \/> 656 Ali (cousin\/son-in-law to Mohammed PBUH) named first Iman by <strong> Shiites <\/strong> (party\nof Ali) in <strong>Iraq<\/strong>.\n<br \/> <strong> 657 <\/strong> Al Aksa Mosque construction begins in Jerusalem. <strong> &#8220;Desolation of abomination\" <\/strong> is placed in the Holy Place.\n<br \/> 661 Muawiya takes over as a Sunni caliph after Ali is murdered, beginning the <em><strong>Ummayad<\/strong><\/em>\ndynasty which advanced into Africa.\n<br \/> 665 Muslims conquer Arabs in the Battle of Basra, Iraq.\n\n<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.\n<br \/> 670 Silla Kingdom defeats other kingdoms in Korea.\n<br \/> 687-714 Pepin II rules after uniting the Franks.\n<br \/> 688-691 Dome of the Rock built in Jerusalem's Temple Mount by caliph Abd al-Malik (9th Caliphate 685-705),\n\twho also mints purely Muslim coins and declares Arabic the official language.\n\n<br \/> 700 Masorites divide <em>Tanache<\/em> (Old Testament) into chapters\n<br \/> 711-715 Muslims Conquor Spain\n<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).\n<br \/> 732 Muslims reach their limit of European expansion when defeated by Charles Martel (&#8220;The Hammer&#8221;) and his army of French Franks in the \"Battle of Tours\" at the Loire River.\n<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>).\n<br \/>756 After escaping, Abbasid general Abdullah reunites the Umayyad government in Spain;\n\t<em>Abd al Rahman<\/em> begins to build The Great Mosque and libraries in Cordoba, Spain.\n<br \/>768 Germanic leader <strong>Charlemagne <\/strong> named emperor of the former Western Roman empire.\n<br \/>787 Second Council of Nicea (Seventh Ecumenical Council)\n<br \/> 800 Charlemagne crowned Emperor by Roman Pope at Aachen.\n<br \/> <strong> July 16, 869<\/strong> \"Great Filoque Schism\" of Roman &amp; Byzantine Church (1054?)\n<br \/> 844 Defeat of Picts unites Scotland.\n<br \/> 861 end of Abbasids empire.\n\n\n<a id=\"Medieval\"><\/a>\n\n## 500-1500 Medieval History\n\n868 The first printed book, the Diamond Sutra, is made in China using wood blocks.\n<br \/> 878 Egyptian Ign Tulum rules\n<br \/> 907-960 Five dynasties and Ten Kingdoms in China\n<br \/> 925 Shisak of Egypt destroys Jerusalem\n<br \/>960-1129 Northern\/Southern Sung dynasties in China\n<br \/> 939 Chinese rule in Vietnam ends\n<br \/> 960 Founding of Sung Dynasty in China\n<br \/> 962 Coronation by Pope of Otto I as Emporor of the Roman Empire.\n<br \/> 969 Descendents of Fatimid (a daughter of Mohammed) conquer Jerusalem from Cairo and North Africa.\n<br \/> 982 Viking warrior Erik the Red settles Greenland.\n<br \/> 1003 Leif Eriksson (son of Erik the Red) sails down North America and names it \"Vinland.\"\n<p> In Dalmatia (Yugolavia) Croats use Roman alphabet, Serbs loyal\n\tto Eastern Constantinople church use Cyrillic alphabet invented by missionary brothers Cyril and Methodius.\n<br \/> 1008-1020 Tale of Genji written in Japan\n<br \/> Inquisitions by Pope Innocent.\n<br \/> 1044 Gunpowder invented in China.\n<br \/> 1053 Western Church insists on the celibacy of its higher clergy.  50 years later church excommunicates all married priests.\n<br \/> <strong>1054 <\/strong> Orthodox Eastern church and Roman Catholic church separate after\nexcommunicating each other in a <strong>Great Schism<\/strong>.\n<br \/> 1055 Seljuk Turks from central Asia conquer Baghdad.\n<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\">\nNorman, England<\/a>\n\n<br \/>1071 Byzantine era when muslims defeat Islamic Ottomans at Anatolia (now Western Turkey).\n<br \/>1085 Spanish Alfonso VI takes Muslim city Toledo.\n<br \/> 1086 English Doomsday Book published.\n<br \/> <strong> 1095 <\/strong> Roman Pope Urban II calls for a holy crusade to protect Christians against muslims on pilgrimages to Jerusalem,\n\tAnd help Italy capture trade through Constatinopole Byzytine (Greek Orthodox) church territory.\n<br \/> 1096 First crusades begin.\n<br \/> July 15, 1099 Crusaders enter Jerusalem.\n<br \/> 1104 Crusaders take Acre in Isreal from muslims referred derisively as <em> saracen<\/em> (roughly meaning \"Easterners\").\n<br \/> 1169 Muslim Saladin becomes King of Cairo, Egypt.\n<br \/> 1170 Thomas Becket (born 1162), Archbishop of Canterbury, is murdered for standing up against the English King.\n<br \/>\n<br \/> 1187 After luring Crusaders to a waterless plateu in July and decimating them,\nSaladin (&quot;rectifier of the faith&quot;) captures Jerusalem from crusaders led by consort Guy de Lusignan\n(after he was expelled by the Duke of Aquitane, who later became Richard I).\n<br \/> 1187 Medieval Knights restore Jerusalem during 2nd crusade.\n<br \/> 1189 Jews in England massacred during the coronation of Richard I.\n<br \/> 1191 Zen Buddhism introduced to Japan by Chinese monk Eisai.\n<br \/> 1200 Inca civilization forms to peak in the 15th century.\n<br \/> 1204 Constantinople sacked by crusaders during the 4th Crusade.\n<br \/> 1206-1227 Genghis Khan establishes the <strong>Mongol Empire<\/strong>\n<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.\n<br \/> (1182-1226) Francis of Assisi establishes the Franciscan order.\n<br \/> 1228 Stephen Langston divides the New Testament Bible into chapters.\n<br \/> (1225-1274) Thomas Aquinas' Scholasticism separates Grace from Nature\n<br \/> 1234 Sun Diata founds the Mali Empire in West Africa.\n<br \/> 1235 Mali defeats Ghana to become the major power in West Africa.\n<br \/> 1236 Cordoba, Spain falls to Christian forces, leaving Berbers in Granada.\n<br \/> 1241 King Bela IV of Hungary defeated by Mongolian Golend Horde in the Battle of Mohi.\n<br \/> Marco Polo (1254-1324) at age 16 journeys from Venice, Italy to China.\n<br \/> Feb 10, 1258 Abbasid-Seljuk Baghdad (and its libraries)\nfalls to cavalry of Yuan dynasty (1271-1368) (Tartars) commanded by nomadic Mongols\n\tKublai Khan (1215-1294), grandson of Genghis Khan. Paper currency first instituted.\n<br \/> 1274 Mogol invade Japan\n<br \/> 1275-1292 Marco Polo in China\n<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>\n<br \/><strong> 1291 Crusades end after 8 wars.<\/strong><\/p>\n<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>\"\n<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>\n<br \/> 1345 Black Plague wipes out 30%-50% of Europe\n<br \/> 1345-1521 Aztec civilization in central Mexico peaks, just when the Spanish conquistadors arrived.\n<br \/> Dominican nun Catherine of Siena (1347-1380) works miracles.\n<br \/> 1356 Koreans overthrow Mongols\n<br \/> John Wycliffe (1329-1384) translates Latin Bible into English &amp; converts England\n<br \/> Timur the Lame (1369-1405)\n<br \/> 1368-1408 Yoshimitsu is third Shogun of Japan\n<br \/> 1368-1611 Ming (&#8220;brilliant&#8221;) dynasty in China\n<br \/> July 6, 1415 Bohemian pastor John Hus, singing, burns for heresy in Prague.\n<br \/> 1453 Ottoman Mehmet II of Turkey captures Constanopole and ends the Byzantine empire.\n<br \/> 1467-1477 Onin War burns everything in Japan\n\n<a id=\"Renaissance\"><\/a>\n\n## 1517-1648 Renaissance\/Reformation\n\nSardis in <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/3\/1\/s_1170001\">Revelation 3:1<\/a> (nothing good about them)\n\n<br \/> 1429 French heroine Joan of Arc lifts English seige of Orleans, France.\n<br \/> 1448 Russians under Jonas become <em>autosepholis<\/em> - self governing religiously.\n<br \/> 1453 Turks capture Constantinople (in T\u00fcrkiye) to end the Byzantine empire.\n<br \/> 1455-1485 30-year <strong> War of the Roses <\/strong> between Houses of York and Lancaster for the English throne\n<br \/> 1456 Gutenberg produces German Bibles using movable type\n<br \/>1462 Russian Grand prince Ivan, in marrying Sophia, niece of Constantine, unites church and state\n<br \/> 1469 Sikhism (monotheistic non-ceremonial) religion formed by Guru Nanek in India.\n<br \/> 1473 First book printed in English, a translation of French stories about the Trojan Wars.\n<br \/> 1492 Sulan Muhammad XI surrenders Muslim rule in Alhambra, Spain to Ferdinand of Aragon and Isabella of Castile.\n<br \/> 1492\tColumbus 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.\n<br \/> 1497 John Cabot explores the coast of Newfoundland.\n<br \/> 1497 Vasco da Gama voyages around the Cape of Good Hope for a sea route to India.\n<br \/> 1499 Amerigo Vespucci locates mouth of the River Amazon.\n<p> 1512 Michelangelo completes Sistine Chapel frescoes in the Vatican Palace of Pope Julius II (1443-1513), who reigned from 1503 to 1513.\n<br \/> 1513 Vasco Nunez de Balboa crosses the Panama Isthmus to discover the Pacific Ocean.\n<br \/> 1516 Desiderium Erasmus of Holland is first to publish Greek New Testament.\n<br \/> 1517 Ottoman Selim I captures Jerusalem\n<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\">\n\t95 Theses<\/a> on the door of his church in Wittenberg, Germany.<br \/>\n1519 Ferdinand Magellan leaves Spain to make the first sea voyage around the world.\n<br \/> 1525 Led by students of Urich Zwingli in Zurich, Brethren (nicknamed \"Anabaptists\" for their insistance on adult rather than infant baptism)\nbreak from the state-controlled churches in Germany and the Netherlands.\nThose who follow one of their leaders, Menno Simons (1496-1561), called \"Mennonites\".\n<br \/> 1526 Babur conquers Delhi, India Battle of Panipat establishing the Mughal empire.\n<br \/> 1527 Sack of Rome by Imperial troops\n<br \/> 1529 September <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=e-hiNtAjxqI&amp;list=PLmuzcvcol_uMOvbja-FtdbGFYCQzNMdNp&amp;index=8\">VIDEO<\/a>: The First Siege of Vienna by 120,000 men led by Suleiman the Magnificent stopped by 16,000 Christians\n<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.\n<br \/> 1535 Miles Coverdale finishes the first complete, printed Bible in English.\n<br \/> 1536 John Calvin (1509-1504) writes <a target=\"_blank\" href=\"http:\/\/www.smartlink.net\/~douglas\/calvin\/\"> Institutes of The Christian Religion<\/a>\n<br \/> 1534 Martin Luther translates the entire <a href=\"1bible.htm\">Bible<\/a> into German.\n<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\n(from Greek manuscripts). His last words: \"Lord! open the King of England's eyes.\"\n<br \/> 1537 King Henry VIII of England authorizes the \"Matthew's Bible\" and allows it to be sold and read.\n<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)\n\ta theory that the Earth is not the center of the universe\n<br \/> 1538-41 Sultan Suleiman the Magnificent occupies Jerusalem.\n<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,\nincluding the pope as \"Vicar\" of Christ on Earth.\n<br \/> 1549, 2 years after the death of Henry VIII, Thomas Cranmer, before being burned as a heretic in 1556,\ndefines 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.\n<br \/> 1551 Robert Stephens Estienne of France divides New Testament verses in the Bible.\n<br \/> 1555 Peace of Augsberg reached by Catholic Charles V with Lutherans.\n<br \/> 1557 Portuguese establish settlement in Macao, China\n<br \/> 1565, on St. Augustine's Day, Pedro Menendez de Aviles arrived to establish America's first city on Florida's Atlantic coast.\n<br \/> 1557 first Index of Forbidden Books officially issued under Catholic Pope Paul IV\n<br \/> 1556-1605 Mughal Empire prospers in India under Akbar (the Great).\n<br \/> 1571 Battle of Lepanto in Greece ends Turkish seapower in the Mediterranean.\n<br \/> 4-15 Oct. 1582 Based on a committee led by Naples astronomer Aloysius Lilius,\n\tPope Gregory XIII issues bull <em>&quot;Inter Gravissimus&quot;<\/em>\n\tto implement the <strong> Gregorian calendar<\/strong>,\n\tfixing vernal equinoxes at 21 March each year and\n\ttaking 10 days out of the Julian calendar.\n<br \/> 1588 Spanish Armada of 130 ships defeated by storms and the British fleet.\n<br \/> 1598 French Hugonaughts retreat after Edict of Nant\n<br \/> 1590 Hideyoshi Toyotomi (1536-1598) unifies Japan\n<br \/> 1565-1616 Shakespeare, <a target=\"_blank\" href=\"http:\/\/www.crinos.com\/users\/aforte\/features\/shakespear\/shakespear.insult.html\">\n\tthe Bard<\/a>, writes!\n<br \/><strong> 1611 \"Authorized\" King James Version of Bible published in English<\/strong>\n<br \/> Galileo (1564-1642) proposes earth not center of universe\n<br \/> Isaac Newton (1642-1727)\n<br \/> 1603 Tokugawa Ieyasu takes feudal control. Makes Edo political center of Japan, beginning 300 years of peace.\n<br \/> <strong>Sep 11<\/strong>, 1609 Henry Hudson arrives on Manhattan Island and meets the indigenous people living there.\n<br \/> 1610 Henry Hudson claims New York Hudson Bay for England.\n<br \/> 1618-1648 <strong> Thirty Years War <\/strong> between German Catholics and Protestants.\n<br \/> 1619 a Dutch ship brings the first African slaves to the English colony of Virginia.\n<br \/> 16xx upon Iaysu's death, grandson Imaitsu begins parades to Edo by regional daimyos.\n<br \/> 1620 <a target=\"_blank\" href=\"http:\/\/www.infoplease.com\/ipa\/A0101029.html\">\nMayflower Compact<\/a> drafted by <a target=\"_blank\" href=\"http:\/\/www.gty.org\/~phil\/puritans.htm\">Puritan<\/a>\n<a target=\"_blank\" href=\"http:\/\/www.autopenhosting.org\/mayflowerhistory\/passenger.html\"> Pilgrims<\/a>\nupon their landing at Provincetown on Cape Cod, Mass.<br \/>\n1623 William Shakespeare's plays are published in book form for the first time.\n<br \/> (1624-1691) <a target=\"_blank\" href=\"http:\/\/search.biography.com\/print_record.pl?id=8623\"> George Fox<\/a> establishes the Quaker church.\n<br \/> 1644-1911 Ch'ing dynasty rules into a republic\n<br \/> 1640 John Harvard establishes university to educate clergy in Boston.\n<br \/> 1648 Peace of Westphalia ends 30 Year War.\n<br \/> 1649 King Charles I executed. England is a Republic until monarchy is restoed in 1660.\n<br \/> 1663 Puritan John Eliot translates a Bible for the Massachusetts Indians.\n<br \/> (1628-1688) John Bunyan, English minister and preacher, writes <a target=\"_blank\" href=\"http:\/\/www.ccel.org\/b\/bunyan\/pilgrims_progress\/title.html\">\nPilgrim's Progress<\/a>.\n<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.\n<br \/> 1693 Jacob Ammon and his followers in Old Order Amish break from Mennonites.\n<br \/> 1699 Guru Gobind Singh organizes Sikhs into the <em>Khalsa<\/em> (brotherhood of man).\n\n\n<a id=\"Awakening\"><\/a>\n\n## Awakening 1648-1844\n\n&gt; Philadelphia in <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/3\/7-13\/s_1170007\">Revelation 3:7-13<\/a>\n\n\tIsrael ben Eliezer (1700-1760) the Ba'al Shem Tov (Master of the Good Name) Hasidism from the Ukraine\n<br \/> 1704 British Duke of Marlborough limits French power in Battle of Blenheim, Germany.\n<br \/> 1709 Peter the Great of Russia defeat Swedes under Charles XII to control the Baltic Sea in the Battle of Poltava, Ukraine.\n<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.\n<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\n8 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\">\nother sermons<\/a>\n<br \/> Easter, 1742, Handel's Messiah first performed in Dublin, Ireland.\n<br \/> 1752 England and the American colonies had 354 days becuase of a calendar change lost 11 days.\n<br \/> 1756-1763 England and Prussia wins Seven Years War against Austria and France over control of Germany.\n<br \/> 1759 Britain gains control of Canada in the Battle of Quebec.\n<br \/> April 1, 1775 &quot;Boston Tea Party&quot; rebellion for British Stamp Act under King George III.\n<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 &quot;the Regulars&quot; (English army, 700 strong) are coming.\nOver a 1,000 militia poured onto the Battle Road killed over 270 British soldiers vs. 95 colonists.\n<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.\n<br \/> July 4, 1776 <a target=\"_blank\" href=\"http:\/\/www.house.gov\/house\/Declaration.html\"> Declaration of Independence<\/a>\n\tis read from the Old State House in <a target=\"_blank\" href=\"2boston.htm\"> Boston<\/a>.\n<br \/> October 17, 1777 British Gen. Burgoyne surrenders 5,800 men to Americans after the Battle of Saratoga, New York.\n\tThis turning point convinced the French of U.S. strength.\n<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.\n<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>\n<br \/>\n<br \/> 1788 William Carey starts the India Missionary movement.\n<br \/> 1788 The Constitution of the United States is ratified by the states with the Bill of Rights.\n<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.\n<br \/> 1792-1815 Napoleonic Wars are fought by Napoleon's France against Austria, Britain, Russia, Prussia, and Sweden.\n<br \/> 1793 American Eli Whitney invents the cotton gin.\n<br \/>\n<a id=\"PopeStoppedz\"><\/a>\n\t1798 Nepolean's general enters Rome to depose pope (Rev. 13:15, 17:10), ending 42 months=years (Ezekiel 4:6) of papal supremecy.\n<br \/> 1797 Napoleon conquers Venice\n<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).\n\n<br \/> 1805 Unitarians take over Harvard University board\n<br \/> 1805 British admiral Nelson destroys French and Spanish fleet in battle of Trafalgar (South of Spain).\n<br \/> Feb. 23 1807 Wm. Wilberforce gets Brit. Parliament to abolish slave trade.\n<br \/> 1806 Frances II renounces the title of Roman Empire.\n<br \/> 1808 importation of slaves from other countries banned by U.S. Congress\n<br \/> 1821-1829 Greek War of Independence from Turkey.\n<br \/> June 18, 1815 Napoleon defeated by British Duke Wellington at Waterloo, Belgium. ;)\n<br \/> 1821 <a target=\"_blank\" href=\"http:\/\/search.biography.com\/print_record.pl?id=14752\">\nCharles Finney<\/a> (1792-1875) conducts evangelist campaigns through New England before pastoring Oberlin, Ohio.\n<br \/> 1825-1830 Java War of Indonesians against Dutch.\n<br \/> 1830 Mormon church is organized by Joseph Smith at Nauvoo, Illinois.\n<br \/> 1839 The first <a target=\"_blank\" href=\"http:\/\/www.baseballhalloffame.org\/\">\nbaseball game is played in Cooperstown, NY<\/a>.\nPhtography invented.\n<br \/> 1839-1842 Opium War in China results in Britain taking Hong Kong and Portugal taking Macao.\n<br \/> 1840 Horace Mann establishes Unitarian public school in Massachusetts.\n<br \/> 1841 Dr. David Livingstone (1813-1873) <a target=\"_blank\" href=\"http:\/\/www.christianitytoday.com\/ch\/56h\/56h010.html\">\nevangelizes southern Africa<\/a>\n<br \/> 1844 The Turkish Empire's Edict of Toleration\n\tallow Jews to live in their original homeland.\n\n1844+ <br \/> &quot;Modern&quot; History of <a target=\"_blank\" href=\"http:\/\/www.5loaves2fishes.org.nz\/Sign.htm\">Apostasy<\/a> and Lukewarm Church\nLaodicea in <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/rev\/3\/14-19\/s_1170014\">Revelation 3:14-19<\/a><\/p>\n\n<a id=\"TheBab\"><\/a> May 23, 1844 (Islamic year 1260) young Persian Mirza Ali Muhammad (later executed July 1850),\n\tdeclares himself the promised Qa'im of Shi'ah Islam and\n\tassumes the title of The B\u00e1b (Gate) and initiates the unifying <a target=\"_blank\" href=\"http:\/\/www.bahai.org\/\">Baha'i<\/a> faith.\n<br \/> 1844 Brigham Young becomes president of the 'Quorum of Twelve Apostles' after Smith is killed by a mob.\n<br \/> 1845-6 fungus on potatoes from America (and British rule) creates a famine in Ireland.\n<br \/> 1846-1848 Mexican-American War.\n<br \/> June 19, 1846 first baseball game played at Elysian Fields in Hoboken, New Jersey\n<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\n<br \/> 1848 Gold discovered at Sutter's Mill (Sacramento, CA)\n<br \/> 1850 U.S. Congress passed the Fugitive Slave Law. The Underground Railroad is formed in response.\n<br \/> 1853-1856 Crimean War in the Black Sea. Turkey, Britain, France, and Sardinia fight Russia.\n<br \/> 1853 American Admiral Matthew Perry's black ships (kunefune) enter forbidden Tokyo Bay to demand terms.\n<br \/> Feb. 1854 Perry returns to demand regulated trade with Japan\n<br \/> 1858 The 15th shogunate steps down in Japan.\n<br \/> Jan 1, 1859 - First Modified Julian Date\n<br \/> 1859 Darwin publishes The Origin of Species with forward by Karl Marx\n<br \/> Apr. 12, 1861 Charleston's Fort Sumter in S.C. starts the American Civil War.\n<br \/> October 24, 1861 Western Union completes the transcontinental telegraph service\n<br \/> July 21, 1861 Confederates under Irvin McDowell lose at the first Battle of Bull Run.\n<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.\n<br \/> Summer, 1862 The Union's Paninsula Campaign in the Shenandoah Valley and Williamsburg toward Richmond, VA fails.\nGeneral John Pope is sent West to deal with a Sioux uprising.\n<br \/> 17th September, 1862 Ambrose Burnside replaces McClellan and attacks the armies of Robert E. Lee and Thomas Stonewall Jackson at Antietam.\n\n<br \/> Sep. 22, 1863 <a target=\"_blank\" href=\"http:\/\/www.nps.gov\/ncro\/anti\/emancipation.html\">\n\tEmancipation Proclamation<\/a> (of slaves only in rebellious states) issued by Abraham Lincoln.\n\n<br \/> 1862 Constantine von Tischendo\n<br \/> 1869 the Codex Sinaiticus Greek manuscript is discovered\n<br \/> 1863 Bah\u00e1'u'll\u00e1h (The Glory of God) whom <a target=\"_blank\" href=\"http:\/\/www.uga.edu\/~bahai\/info.html\"> Bah\u00e1'\u00eds<\/a> follow is announced as the One for Whom <a href=\"#TheBab\">The Bab<\/a> had prepared the way.\n<br \/>\n<br \/> Nov. 19, 1863 Abe Lincoln delivers <a target=\"_blank\" href=\"http:\/\/lcweb.loc.gov\/exhibits\/gadd\/\">\n\tGettysberg Address<\/a> on the <a target=\"_blank\" href=\"http:\/\/memory.loc.gov\/ammem\/cwphtml\/cwphome.html\">\n\tCivil War<\/a>\n<br \/>1864 &#8220;In God We Trust&#8221; first appears on US coins.\n<br \/>April 14, 1865 Lincoln assassinated\n<br \/>1868 Emporor moves from Kyoto (Western capital) to Tokyo (Easter capital)\n<br \/>1869 Meiji Restoration (of the Japanese emperor to power for the first time since the <em>Heian<\/em> Period)\n<br \/>1870-1871 Franco-Prussian War ends with establishment of Germany.\n<br \/>1886 Dr. J. Pemberton sells his new drink, Coca-Cola, as a &#8220;brain tonic&#8221;.\n<br \/>1873 Remington Company mass-produces in America the first modern typewriter.\n<br \/>1878 Petah Tikvah in Judea and Rosh Pinnah in Galilee are first Jewish villages in Palestine,\nthe <strong> planting of modern Israel.<\/strong>\n<br \/> 1882 Chinese Exclusion Act bars (for 60 years) Chinese immigration into the US.\n<br \/> 1892 Beginning of Zionist return to Jerusalem\n<br \/> 1893 Henry Ford builds his first car (automobile).\n<br \/> 1894-5 Japan invades Korea, China in Sino-Japanese War\n\n<br \/> 1895 The Niagara Bible Conference listed <a target=\"_blank\" href=\"1words.htm#Niagara\">\nfive unalterable requirements of belief for a fundamentalist individual or group<\/a>\n<br \/> 1895 Sigmund Freud publishes first work on psychoanalysis, determinism\n<br \/> <a target=\"_blank\" href=\"http:\/\/www.christianitytoday.com\/ch\/52h\/\">\n\tHudson Taylor evangelizes Inland China<\/a>\n<br \/> 1896 Billy Sunday begins leading revivals in America\n<br \/> 1896 Theodor Herzl (1860-1904) becomes the father of political Zionism by publishing <em>Der Judenstaat<\/em> (The Jewish State),\nwhich proposes a Jewish state in Palestine.\n<br \/> April, 1896 First modern Olympics held in Athens, Greece with 484 athletes from 13 nations.\n<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>\n<br \/> 10 Dec 1898, in the Treaty of Peace in Paris, Spain renounced all rights to\nCuba, ceded <strong>Puerto Rico and Guam to the US<\/strong>, and gave up its possessions in the West Indies,\nand sold the Philippine Islands.\n<br \/> August 29&#8212;31, 1897 First Zionist Congress meets in Basel, Switzerland led by Theodor Herzl\n<br \/>1899-1902 Boer War ends with British control of South Africa.\n<br \/> Dec. 17, 1903 Wright brothers of Akron, Ohio fly first motorized bicycle\/airpline named \"Bird of Prey\" at SC.\n<br \/> April 18, 1906, 700 San Franciscans die in the deadliest earthquake in North American history.\n<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.\n<br \/> 1913 U.S. Federal income tax law passes\n<br \/> 1914-18 on Tisha B'Av, WWI sparked by murder of Ferdinand in Yugoslavia, starts.\n<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.\n<br \/> 1916 Battle in Somme, France kills 1,265,000 men in less than a week.\n<br \/> Jan 17, '17 Virgin Islands becomes a US territory.\n<br \/> <strong> Dec. 8, 1917 (7 times 360 years or 2520 years punishment of apostate Israel for her unfaithfulness prescribed in Leviticus 26: 24 &amp; 28)\n\tBritish general Lord Allenby enters Jerusalem <\/strong>\n\tafter the Turks panicked and left Jerusalem without a shot being fired.\n\tAn Islamic prophecy predicted that the Turks would lose\n\tthe city when a man of Allah delivered a notice.\n\tThe Propaganda leaflets dropped on the Turks were signed by Lord Allenby.\n\tWhen the Turks fled, they left behind a letter of surrender\n\twhich was brought to the Christian General Allenby when he and his officers were praying.\n<br \/> 1917 British <strong> Balfour Declaration <\/strong>\n\t<em> \"His Majesty's Government view with favor the establishment in Palestine of a National\n\tHome for the Jewish people\" <\/em>begins second Jewish Exodus.\n<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.\n\tRenamed to \"Veterans Day\" in 1954.\n<br \/> 1921 Prohibition in America\n<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.\n<br \/>\t1928 Alexander Fleming discovers penicillin.\n\n\n<a id=\"Lateranz\"><\/a>\n\n### Lateran Rome Recovery\n\n<br \/> 1926 controversial Father Coughlin creates a radio congregation in the US.\n<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).\n<br \/> Jan 30 '33 President Paul von Hindenburg appoints Hitler Chancellor of 3rd Reich of Germany\n<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>\n<br \/> '36 African-American Jesse Owens wins Berlin Olympics\n<br \/> Jan 13 '41 Puerto Rico becomes a US territory.\n<br \/> April 6 '41 Nazis begin bombing Belgrade, Yugoslavia\n<br \/> Dec 7 '41 Japanese bomb Pearl Harbor, US enters WW II\n<br \/> Dec 25 '41, British-Canadian garrison at Hong Kong surrenders to Japanese.\n<br \/> 4\u20137 June '42 Japan fail to capture Midway Island from the US, the turning point for the Pacific war.\n<br \/> June 6 '44 <strong>D-Day<\/strong>, Allied troops land at Normandie, France.\n<br \/> May 8 '45 <strong>Victory in Europe (VE) Day<\/strong> when Germany surrendered to the Allies.\n<br \/> June 26, '45 United Nations charter (in Chinese, English, French, Russian, and Spanish) was signed by 50 countries in San Francisco.\n<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.\n<br \/> Aug. 6 45 atomic bomb dropped by \"Engola Gay\" on Hiroshima, Japan, killing 140,000 people.\n<br \/> Aug. 9, 45 atom bomb dropped by \"Bock's Car\" B-29 on Nakasake, Japan. Victory in Japan (VJ) Day.\n<br \/> '47 Evangelist Billy Graham begins crusades in Charlotte, NC\n<br \/> '49 Russia detonates their first atom bomb, beginning the Cold War. NATO forms.\n<br \/> May 12, 49 Blockade of Berlin ends.\n<br \/> Jul 4, 47 UFO crash outside nuclear air force base in Roswell, New Mexico\n\n<a id=\"Isreal Indep\"><\/a>\n<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>\t(fulfills <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/eze\/4\/3-6\/s_806003\"> Ezekiel 4:3-6<\/a>,\n\t<a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/eze\/48\/1\/s_850001\">Ezekiel 48<\/a>,\n\t<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,\n\tSaudi Arabia (Sheba &amp; Dedan), Syria &amp; Iraq (Shem).\n<br \/> '48 Essenes' <a target=\"_blank\" href=\"http:\/\/lcweb.loc.gov\/exhibits\/scrolls\/toc.html\">\n\tDead Sea scrolls<\/a> from before 68 AD found in Qumram caves\n<br \/> Oct 1, 49 The People's Republic of China is formally established.\n<br \/> June 25, 50 US-Korean War begins when North Koreans cross 38th parallel.\n<br \/> '52 Bishop Sheen draws 30 million viewers to his \"Life Is Worth Living\" TV show.\n<br \/> Feb 28 '53 Watson and Creek model the DNA.\n<br \/> '53 Edmund Hillary and guide Tenzing Norgay make first ascent of Mt. Everest\n<br \/> June 25 '62 Supreme Court bans prayer in school in in Engel vs. Vitale,\n\tthe first case in which the Supreme Court did not cite any previous precedents or legal cases in making its decision,\n\tcreating the phrase \"separation of church and state\".\n<br \/> 60's Vietnamese War, Peace marches,\n<br \/> April 12, 1961 Soviet Cosmonaut Yuri Gagarin is the first human put into space.\n<br \/> Feb 2, '62 The Earth's moon, Mercury, Venus, Mars, Jupiter, and Saturn all align in the constellation Aquarius.\n<br \/> 1965 Jewish atheist psychologist Helen Schucman writes <a target=\"_blank\" href=\"http:\/\/www.acim.org\/\">\n\tA Course in Miracles<\/a>\n<br \/> October 30 1961 USSR detonates 50 megaton (2600 times the Hiroshima bomb) over Novaya Zemla Islands.\n\nJune 5-10 '67 Israel regains Jerusalem after 3rd seige <strong> \"6 Day War\"<\/strong>.\n\t&#8212;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.\n<br \/> June 8 '67 Isreali troops reenter temple area (1035 yrs after 632 AD)\n\tas predicted in Zecharia 2.\n<br \/> '67 Martin Luther King delivers \"I Have a Dream\" speech in Wash. DC\n<br \/> __\tKSFG, first Christian radio station starts broadcasting from Los Angeles.\n<br \/> __\tRoe [Mary McDonald?] vs. Wade legalizes abortion\n<br \/> November 22, '63 John F. Kennedy is <a target=\"_blank\" href=\"http:\/\/www.jfkconspiracy.com\/\"> assassinated<\/a>\n<br \/> July, '69 Neil Armstrong and Buzz Aldrin are the first men on the Moon\n<br \/> '69 California is the first state to adopt no-fault divorce.\n<br \/> October 1969 The Internet is born with a message transported across the ARPAnet from UCLA's Network Measurement Center to Stanford University.\n<br \/>Apr 29 '75 Saigon falls when Americans leave.\n<p>\n<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>)\n<br \/> Nov. '78 Jim Jones orchestrates the mass suicide of 912 People's Temple followers\nin Jonestown, Guyana.\n<br \/> Nov 4 '79 - 52 American hostages begin 444 days in Teheran, Iran\n<br \/> '80 Supreme Court removes 10 Commandments from Kentucky schools\n<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>\n<br \/> Nov 4, '86 Virgin Islands becomes a US territory.\n<br \/> '87 Supreme Court bans Creationism from Lousiana high schools\n<br \/> \tJim &amp; Tammy Bakker\n<br \/> Aug. 2, 1990 Iraq invades Kuwait to spark US Desert Storm war\n<br \/> Aug. 7, '90 American forces arrive in Saudi Arabia &#8212; what some see as violating\nthe \"one religion\" in the holy muslim land of Mecca and Medina.\n<br \/> Nov. 17 '90 Non-Aggression pact signed between NATO and the Warsaw Pact countries.\n<br \/> Dec. 25 '91 Gorbachev announces \"I cease my activities as President of the U.S.S.R.\" &#151; ending the Soviet Union.\n<br \/> '91 Promise Keepers started by coach McCartney\n<br \/> Aug. 21-22 '92 FBI kills \"white separatist\" Randy Weaver and family at Ruby Ridge, Idaho\n<br \/> Sep. 13 '93 Jimmy Carter arranges a 7-year &#8220;Peace Accord&#8221;\n\tOslo Accords &amp; handshake between Anwar Sadat &amp; Menakim Bagin\n\t(fulfills <a target=\"bible\" href=\"https:\/\/www.blueletterbible.org\/kjv\/dan\/9\/27\/s_859027\">Daniel 9:27<\/a>?)\n<br \/> '93 FBI burns down Waco, TX compound of David Koresh and his Branch Dividians\n<br \/> Apr '94 Mandela (age 75) elected first black President of South Africa\n<p><strong> May 5, '94 Palestinians take Israeli controlled Jericho <\/strong>\n\tand 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>)\n<br \/> <a target=\"_blank\" href=\"http:\/\/gbgm-umc.org\/advance\/Church-Burnings\/index.html\">\n\tBlack churches are burned<\/a>.\n<br \/> U.S. withdraws from Somalia after an attack supported by Bin Laden.\n<br \/> Louis Farakah's Million Man March to Washington DC\n<br \/> Apr. 19 '95 Tim McVay bombs federal building in Oklahoma City, killing 168.\n<br \/> '96 O. J. Simpson tried and acquitted (media circus)\n<br \/> '96 Matching christian charity money scheme collapses\n<br \/> Oct. '96 First Promise Keepers rally at Washington DC\n<br \/> '97 Hale-Boppers commit suicide\n<br \/> '97 <a target=\"_blank\" href=\"http:\/\/www.capsteps.com\/special\/monica.html\">Monica and Bill Clinton - All the President's Women<\/a>\n<br \/> Jan 1 '99 Single European currency (with 11 of the 15 EU member states)\n<br \/> Columbine High School shooting.\n<br \/> Jan 1 2000 Millenium madness doesn't happen. Boris Yeltzin hands power to KGB Director Putin.\n<br \/> March 20, '00 the Internet bubble bursts as NASDAQ peaks at 5,500.\n<br \/> June '00 human genome is mapped.\n<br \/> Sep 11, '01 Al Queda &#8212; led by Bin Laden, a Saudi Sunni in Afgahnistan &#8212; sends 4 plane into NY WTC, Pentagon.\n<br \/> 2002 Isreal's Jubilee year in the traditional calendar.\n<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.\n<br \/> July 7, 05 Four bombs go off in London\n<br \/> Feb 06 Syria leaves Lebanon.\n<br \/>  July 06 (9th of Av, Tisha b'Av) Israel failed to decisively win Iranian-Syrian backed Shiite Hezbollah in Lebanon.\n<br \/> 2007-8 US subprime mortgage crisis followed by a recession\n<br \/> 2009-10 US healthcare reform\n<br \/> 2010-11 US Tea Party\n<br \/> 2011-12 US Occupy Wall Street\n\n<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.\n\n<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>\n\n<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 \/>\n\n<hr \/>\n\n<a name=\"Predictions\"><\/a> \n\n## Predictions about the Future\n\nApophis asteroid Apr 13, 2029.\n\n\n<p><\/p>\n\n## References\n\nThose 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).\n\nJack Finegan, Handbook of Biblical Chronology, Revised Edition, Hendrickson, 1998.\n\n\n<sub>25-12-13 v026 + vienna :2023-09-02-history.md 2025-12-13 00:00:00 +0000<\/sub>\n<\/p><\/p><\/p><\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/xcode\/"}},"id":"https:\/\/wilsonmar.github.io\/xcode","published":"2025-12-13T00:00:00+00:00","updated":"2025-12-13T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Homebrew, Python, and other development tools require utilities included in Apple\u2019s Xcode IDE or in Command-Line utilities installed separately. Thus the conflicts.<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/xcode\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"Italiano\"><img alt=\"Italiano\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/it.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"Napali\"><img alt=\"Napali\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ne.png\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fxcode%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#overlapping-utilities-installers\" id=\"markdown-toc-overlapping-utilities-installers\">Overlapping utilities installers!<\/a><\/li>\n  <li><a href=\"#install-steps\" id=\"markdown-toc-install-steps\">Install steps<\/a>    <ul>\n      <li><a href=\"#path-of-gcc\" id=\"markdown-toc-path-of-gcc\">Path of gcc<\/a><\/li>\n      <li><a href=\"#which-version-has-been-installed\" id=\"markdown-toc-which-version-has-been-installed\">Which version has been installed?<\/a><\/li>\n      <li><a href=\"#files-and-folders\" id=\"markdown-toc-files-and-folders\">Files and Folders<\/a><\/li>\n      <li><a href=\"#xcodeapp-version\" id=\"markdown-toc-xcodeapp-version\">Xcode.app Version<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <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>\n  <li><a href=\"#uninstall-command-line-tools\" id=\"markdown-toc-uninstall-command-line-tools\">UnInstall Command Line Tools<\/a>    <ul>\n      <li><a href=\"#software-update\" id=\"markdown-toc-software-update\">Software Update<\/a><\/li>\n      <li><a href=\"#set-license\" id=\"markdown-toc-set-license\">Set license<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#about-xcodeapp\" id=\"markdown-toc-about-xcodeapp\">About Xcode.app<\/a>    <ul>\n      <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>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#xcode-ide-install\" id=\"markdown-toc-xcode-ide-install\">Xcode IDE install<\/a>    <ul>\n      <li><a href=\"#update-xcode-from-terminal-cli\" id=\"markdown-toc-update-xcode-from-terminal-cli\">Update XCode from Terminal CLI<\/a><\/li>\n      <li><a href=\"#install-xcode-from-apples-web-app-store\" id=\"markdown-toc-install-xcode-from-apples-web-app-store\">Install XCode from Apple\u2019s web App Store<\/a><\/li>\n      <li><a href=\"#xcode-ide-upgrade\" id=\"markdown-toc-xcode-ide-upgrade\">Xcode IDE Upgrade<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#swift-version\" id=\"markdown-toc-swift-version\">Swift version<\/a><\/li>\n  <li><a href=\"#xcode-filemerge-tool\" id=\"markdown-toc-xcode-filemerge-tool\">Xcode FileMerge tool<\/a><\/li>\n  <li><a href=\"#apple-platforms\" id=\"markdown-toc-apple-platforms\">Apple Platforms<\/a><\/li>\n  <li><a href=\"#xcode-ui-tricks\" id=\"markdown-toc-xcode-ui-tricks\">XCode UI Tricks<\/a><\/li>\n  <li><a href=\"#testing-apps\" id=\"markdown-toc-testing-apps\">Testing apps<\/a><\/li>\n  <li><a href=\"#references\" id=\"markdown-toc-references\">References:<\/a><\/li>\n  <li><a href=\"#more-on-macos\" id=\"markdown-toc-more-on-macos\">More on MacOS<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p><em>NOTE: Content here are my personal opinions, and \nnot intended to represent any employer (past or present).\n\u201cPROTIP:\u201d here highlight information I haven\u2019t seen elsewhere on the internet\nbecause it is hard-won, little-know but significant facts \nbased on my personal research and experience.\n<\/em><\/p>\n\n<p>XCode on Mac Deskbooks are used to develop and test apps running iPhones and iPad.<\/p>\n\n<p><a name=\"2installers\"><\/a><\/p>\n\n<h2 id=\"overlapping-utilities-installers\">Overlapping utilities installers!<\/h2>\n\n<p>PROTIP: Apple\u2019s XCode is installed with several utilities:<\/p>\n\n<ul>\n  <li><a href=\"#gcc\">gcc<\/a> - the C language compiler<\/li>\n  <li>cc<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/make\/\">make<\/a><\/li>\n  <li><a href=\"#git\">git<\/a>\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>These are needed by developers running HomeBrew, Python, and other programs on Macs.<\/p>\n\n<p>CAUTION: The confusion is that these utilities needed (above) can be installed <strong>two different ways into two different folders<\/strong>:<\/p>\n\n<ul>\n  <li>\n    <p>If utilities were installed using <strong>Apple\u2019s Xcode IDE (GUI)<\/strong>:<\/p>\n\n    <p><tt>$HOME\/Applications\/Xcode.app<\/tt> \n <br \/><br \/><\/p>\n  <\/li>\n  <li>\n    <p>Developers NOT developing apps to run on an <a href=\"#ApplePlatforms\">Apple platform<\/a> (macOS, iOS, etc.) don\u2019t need the XCode IDE GUI, so can <a href=\"#InstallCU\">install just the CommandLineTools<\/a> into:<\/p>\n\n    <p><tt>\/Library\/Developer\/CommandLineTools<\/tt><\/p>\n  <\/li>\n<\/ul>\n\n<p><a name=\"InstallCU\"><\/a><\/p>\n\n<h2 id=\"install-steps\">Install steps<\/h2>\n\n<p>Apple provides a command that either installs CLI tools or show the path of the CLI installed.<\/p>\n\n<ol>\n  <li>Open a Terminal (by pressing command+spacebar and typing \u201cT\u201d to select <strong>Terminal<\/strong>).<\/li>\n  <li>\n    <p>In the Terminal Shell Window, type:<\/p>\n\n    <pre><strong>xcode-select --install<\/strong><\/pre>\n\n    <p>Alternately, copy and paste <a target=\"_blank\" href=\"https:\/\/gist.github.com\/brysgo\/9007731\">this Apple\u2019s osascript<\/a>:<\/p>\n\n    <pre>xcode-select --install &gt; \/dev\/null 2&gt;&amp;1\nif [ 0 == $? ]; then\n sleep 1\n osascript &lt;&lt;EOD\ntell application \"System Events\"\n tell process \"Install Command Line Developer Tools\"\n     keystroke return\n     click button \"Agree\" of window \"License Agreement\"\n end tell\nend tell\nEOD\nelse\n echo \"Command Line Developer Tools are already installed!\"\nfi\n<\/pre>\n  <\/li>\n  <li>\n    <p>If already installed you would see <a href=\"#2installers\">one of the two paths above<\/a>.<\/p>\n\n    <p>If NOT installed, you\u2019ll see:<\/p>\n\n    <pre>xcode-select: note: No developer tools were found, requesting install.\nIf developer tools are located at a non-default location on disk, \nuse `sudo xcode-select --switch path\/to\/Xcode.app` to specify \nthe Xcode that you wish to use for command line developer tools,\nand cancel the installation dialog.\nSee `man xcode-select` for more details.\n<\/pre>\n  <\/li>\n  <li>\n    <p>Press command+Tab as many times as needed to select the utility icon. This dialog should appear:<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>Click \u201cInstall\u201d for \u201cDownloading\u201d.<\/p>\n  <\/li>\n  <li>\n    <p>If \u201cStop\u201d is clicked, the install would resume where it was interrupted.<\/p>\n  <\/li>\n  <li>\n    <p>Click \u201cDone\u201d when \u201cThe software was installed.\u201d appears.<\/p>\n  <\/li>\n  <li>\n    <p>Repeat the <a href=\"#InstallCU\">command above<\/a><\/p>\n\n    <ul>\n      <li>If XCode CLI was installed, you should see:<br \/><\/li>\n    <\/ul>\n\n    <ul><pre>\/Library\/Developer\/CommandLineTools<\/pre><\/ul>\n\n    <ul>\n      <li>If XCode.app was installed, you should instead see:<\/li>\n    <\/ul>\n\n    <ul><pre>\/Applications\/Xcode.app\/Contents\/Developer<\/pre><\/ul>\n\n    <p><a name=\"gcc\"><\/a><\/p>\n\n    <h3 id=\"path-of-gcc\">Path of gcc<\/h3>\n  <\/li>\n  <li>\n    <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>\n\n    <pre><strong>xcrun --find gcc<\/strong><\/pre>\n\n    <p>If Command Line Utilities are installed, the response would be:<\/p>\n\n    <p><tt><strong>\/Library\/Developer\/CommandLineTools\/usr\/bin\/gcc<\/strong><\/tt><\/p>\n\n    <p>If Xcode.app is installed, the response would be:<\/p>\n\n    <p><tt><strong>\/Applications\/Xcode.app\/Contents\/Developer\/usr\/bin\/gcc<\/strong><\/tt><\/p>\n\n    <p>If neither is installed:<\/p>\n\n    <pre>xcrun: error: active developer path (\"\/Library\/Developer\/CommandLineTools\") does not exist\nUse `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.\nSee `man Xcode-select` for more details.\n<\/pre>\n\n    <p>The same for <tt>make<\/tt> and other utilities.<\/p>\n\n    <p>Again, if \u201cCommand not found\u201d appears, either <a href=\"#InstallCU\">install CommandLineTools<\/a> or install XCode.app, then return here.<\/p>\n\n    <p><a name=\"versions\"><\/a><\/p>\n\n    <h3 id=\"which-version-has-been-installed\">Which version has been installed?<\/h3>\n  <\/li>\n  <li>\n    <p>Verify the version of GCC installed:<\/p>\n\n    <pre><strong>gcc --version<\/strong><\/pre>\n\n    <p>If the response is \u201ccommand not found\u201d, it\u2019s not installed.<\/p>\n\n    <p>If the program is running on an Apple Silicon ARM chip and using CommandLineTools, you would see (at time of this writing):<\/p>\n\n    <pre>Apple clang version 15.0.0 (clang-1500.1.0.2.5)\nTarget: arm64-apple-darwin23.3.0\nThread model: posix\nInstalledDir: \/Library\/Developer\/CommandLineTools\/usr\/bin\n<\/pre>\n\n    <p>If the program is running on an Intel x86_64 and using CommandLineTools, you would see (at time of writing):<\/p>\n\n    <pre>Apple clang version 15.0.0 (clang-1500.1.0.2.5)\nTarget: x86_64-apple-darwin22.6.0\nThread model: posix\nInstalledDir: \/Library\/Developer\/CommandLineTools\/usr\/bin\n<\/pre>\n\n    <p>Note that Intel hardware are stuck on Ventura.<br \/>\nOnly ARM hardware can run on Sonoma, the latest macOS version.<\/p>\n\n    <p>In previous OS versions, it was instead:<\/p>\n\n    <pre>Configured with: --prefix=\/Library\/Developer\/CommandLineTools\/usr --with-gxx-include-dir=\/Library\/Developer\/CommandLineTools\/SDKs\/MacOSX.sdk\/usr\/include\/c++\/4.2.1\nApple clang version 13.0.0 (clang-1300.0.29.3)\nTarget: x86_64-apple-darwin21.1.0\nThread model: posix\nInstalledDir: \/Library\/Developer\/CommandLineTools\/usr\/bin\n<\/pre>\n\n    <pre>Configured with: --prefix=\/Library\/Developer\/CommandLineTools\/usr --with-gxx-include-dir=\/Library\/Developer\/CommandLineTools\/SDKs\/MacOSX.sdk\/usr\/include\/c++\/4.2.1\nApple clang version 11.0.3 (clang-1103.0.32.62)\nTarget: x86_64-apple-darwin19.4.0\nThread model: posix\nInstalledDir: \/Library\/Developer\/CommandLineTools\/usr\/bin\n<\/pre>\n\n    <pre>Apple LLVM version 10.0.1 (clang-1001.0.46.4)\nInstalledDir: \/Applications\/Xcode.app\/Contents\/Developer\/Toolchains\/XcodeDefault.xctoolchain\/usr\/bin\n<\/pre>\n\n    <p>If Xcode.app was installed, you would see (at time of writing):<\/p>\n\n    <pre>Apple clang version 14.0.3 (clang-1403.0.22.14.1)\nTarget: x86_64-apple-darwin22.5.0\nThread model: posix\nInstalledDir: \/Applications\/Xcode.app\/Contents\/Developer\/Toolchains\/XcodeDefault.xctoolchain\/usr\/bin\n<\/pre>\n\n    <h3 id=\"files-and-folders\">Files and Folders<\/h3>\n\n    <p>Let\u2019s see what is in those folders:<\/p>\n  <\/li>\n<\/ol>\n\n<ul>\n  <li>\n    <p>If CommandLineTools was installed:<\/p>\n\n    <pre><strong>ls -al \/Library\/Developer\/CommandLineTools\n <\/strong><\/pre>\n\n    <p>The response would be:<\/p>\n\n    <pre>Library      SDKs    usr<\/pre>\n  <\/li>\n  <li>\n    <p>If Xcode.app was installed:<\/p>\n\n    <pre><strong>ls -al \/Applications\/Xcode.app\/Contents\/Developer\/\n <\/strong><\/pre>\n\n    <p>The response would have more than what\u2019s in CommandLineTools:<\/p>\n\n    <pre>Applications Library      Makefiles    Platforms    Toolchains   Tools        usr<\/pre>\n\n    <p>How many folders and files were installed?<\/p>\n  <\/li>\n<\/ul>\n\n<ol>\n  <li>\n    <p>If you have the <tt>tree<\/tt> utility installed:<\/p>\n\n    <pre><strong>tree \/Library\/Developer\/CommandLineTools | tail -1<\/strong><\/pre>\n\n    <p>Would yield (at time of writing):<\/p>\n\n    <pre>16143 directories, 72910 files<\/pre>\n  <\/li>\n  <li>\n    <p>See the link\u2019s location using a Linux utility:<\/p>\n\n    <pre><strong>which gcc<\/strong><\/pre>\n\n    <p>On an Intel Mac, the response is a path to the file at:<\/p>\n\n    <pre>\/usr\/bin\/gcc<\/pre>\n  <\/li>\n  <li>\n    <p>See it\u2019s a binary executable if you view the file:<\/p>\n\n    <pre>cat \/usr\/bin\/gcc<\/pre>\n\n    <p>Press q to exit from the multi-page viewer.<\/p>\n\n    <p><a name=\"Xcodebuild\"><\/a><\/p>\n\n    <h3 id=\"xcodeapp-version\">Xcode.app Version<\/h3>\n  <\/li>\n  <li>\n    <p>Identify, from within a Terminal:<\/p>\n\n    <pre><strong>\/usr\/bin\/Xcodebuild -version\n<\/strong><\/pre>\n\n    <p>If Command Line Tools was installed, you would see:<\/p>\n\n    <p>This message means that it\u2019s not installed:<\/p>\n\n    <p><tt>Xcode-select: error: tool \u2018Xcodebuild\u2019 requires Xcode, but active developer directory \u2018\/Library\/Developer\/CommandLineTools\u2019 is a command line tools instance<\/tt><\/p>\n\n    <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\u2019s web page<\/a>:<\/p>\n\n    <pre>Xcode 14.3.1\nBuild version 14E300c\n<\/pre>\n  <\/li>\n  <li>\n    <p>For a more precise version number and other info (macOS Mavericks version and up):<\/p>\n\n    <pre><strong>pkgutil --pkg-info=com.apple.pkg.CLTools_Executables\n<\/strong><\/pre>\n\n    <p>A sample response, at time of writing:<\/p>\n\n    <pre>package-id: com.apple.pkg.CLTools_Executables\nversion: 14.3.1.0.1.1683849156\nvolume: \/\nlocation: \/\ninstall-time: 1686936570\n<\/pre>\n\n    <p>Previously:<\/p>\n\n    <pre>package-id: com.apple.pkg.CLTools_Executables\nversion: 13.1.0.0.1.1633545042\nvolume: \/\nlocation: \/\ninstall-time: 1637303193\ngroups: com.apple.FindSystemFiles.pkg-group\n<\/pre>\n\n    <p>BTW The previous command was constructed based on a search of tools package names:<\/p>\n\n    <pre>pkgutil --pkgs | grep -i tools\n<\/pre>\n\n    <p>The response:<\/p>\n\n    <pre>com.apple.pkg.CLTools_Executables\ncom.apple.pkg.CLTools_SDK_macOS1015\ncom.apple.pkg.CLTools_SDK_macOS1014\ncom.apple.pkg.CLTools_macOS_SDK\n...\n<\/pre>\n\n    <h2 id=\"specifying-the-xcode-utility-to-use\">Specifying the XCode utility to use<\/h2>\n\n    <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>\n\n    <p>Choose which one you want to use:<\/p>\n  <\/li>\n  <li>\n    <p>Reset:<\/p>\n\n    <pre><strong>sudo xcode-select -r<\/strong><\/pre>\n\n    <p>The command provides no response.<\/p>\n  <\/li>\n<\/ol>\n\n<ul>\n  <li>\n    <p>To specify the use of Xcode.app (IDE):<\/p>\n\n    <pre><strong>sudo xcode-select --switch \/Applications\/Xcode.app\n <\/strong><\/pre>\n\n    <p>Enter Password for the sudo.<\/p>\n  <\/li>\n  <li>\n    <p>To specify the use of CommandLineTools:<\/p>\n\n    <pre><strong>sudo xcode-select --switch \/Applications\/Xcode.app\/Contents\/Developer\n <\/strong><\/pre>\n\n    <p>Enter Password.<\/p>\n  <\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"UnInstallCU\"><\/a><\/p>\n\n<h2 id=\"uninstall-command-line-tools\">UnInstall Command Line Tools<\/h2>\n\n<p>PROTIP: Deleting the \u201cCommand Line Tools\u201d folder is also how to uninstall and reinstall.<\/p>\n\n<ol>\n  <li>\n    <p>Open a new window or tab shell in your Terminal app.<\/p>\n  <\/li>\n  <li>\n    <p>Go to the parent folder where Command Line Tools is installed:<\/p>\n\n    <pre><strong>cd \/Library\/Developer\/CommandLineTools\n<\/strong><\/pre>\n  <\/li>\n  <li>\n    <p>Remove all files in that folder, provide a password for elevated permissions to get all the files:<\/p>\n\n    <pre><strong>sudo rm -rf \/Library\/Developer\/CommandLineTools\n<\/strong><\/pre>\n\n    <p>Input your password when prompted.<\/p>\n\n    <p>The response is a lot of files removed (to the Trash).<\/p>\n\n    <p>Now <a href=\"#InstallCU\">install CommandLineTools<\/a> (or <a href=\"#InstallIDE\">install the full Xcode IDE<\/a>).<\/p>\n\n    <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 &gt; Software Update.<\/p>\n\n    <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>\n\n    <p>Indeed, the receipts are at \/Library\/Apple\/System\/Library\/Receipts, in the form of files:<\/p>\n    <ul>\n      <li>com.apple.pkg.CLTools_Executables.{bom,plist}<\/li>\n      <li>com.apple.pkg.CLTools_SDK_macOS*.{bom,plist}<\/li>\n      <li>com.apple.pkg.CLTools_macOS_SDK.{bom,plist}<\/li>\n    <\/ul>\n\n    <h3 id=\"software-update\">Software Update<\/h3>\n\n    <p>To get to \u201cSoftware Update\u201d:<\/p>\n  <\/li>\n  <li>Click the Apple icon or press command+, (comma).<\/li>\n  <li>\n    <p>Click Settings. Click General. Click Software Update.<\/p>\n\n    <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>\n\n    <pre><strong>#!\/bin\/sh\n# Create placeholder file checked by CLI updates' .dist code in Apple's SUS catalog:\ntouch \/tmp\/.com.apple.dt.CommandLineTools.installondemand.in-progress;\n# Find the CLI Tools update:\nPROD=$(softwareupdate -l |\n  grep \"\\*.*Command Line\" |\n  head -n 1 | awk -F\"*\" '{print $2}' |\n  sed -e 's\/^ *\/\/' |\n  tr -d '\\n')\n# Unless \"No new software available.\", install it:\nsoftwareupdate -i \"$PROD\" -v;\n<\/strong><\/pre>\n\n    <p><img src=\"https:\/\/user-images.githubusercontent.com\/300046\/83383584-acf52d80-a3a2-11ea-9316-6ac91ccb99a4.jpg\" alt=\"Xcode-select-prompt-444x148\" \/><\/p>\n\n    <p><a name=\"InstallPopUp\"><\/a><\/p>\n  <\/li>\n  <li>\n    <p>If you see this pop up, manually click \u201cInstall\u201d, \u201cAgree\u201d, then \u201cInstall\u201d. It says \u201cFinding software\u201d, then \u201cDownloading software\u201d. Finally, \u201cUpdates Available\u201d appears.<\/p>\n\n    <p>CAUTION: The large number of files means this can a long time. It took 13 minutes on my 10mbps line.<\/p>\n  <\/li>\n  <li>\n    <p>When you see \u201cThe software was installed.\u201d, click \u201cDone\u201d to dismiss the pop-up.<\/p>\n\n    <p><a name=\"SetLicense\"><\/a><\/p>\n\n    <h3 id=\"set-license\">Set license<\/h3>\n  <\/li>\n  <li>\n    <p>If you try to confirm the <a href=\"#versions\">versions installed<\/a>, you\u2019ll see:<\/p>\n\n    <p><tt>You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.\n\u00a0\nPress the \u2018return\u2019 key to view the license agreements at \u2018\/Applications\/Xcode.app\/Contents\/Resources\/en.lproj\/License.rtf\u2019\n<\/tt><\/p>\n  <\/li>\n  <li>Press q, then type \u201cagree\u201d.<\/li>\n  <li>\n    <p>Press spacebar several times until it says:<\/p>\n\n    <p><tt>Agreeing to the Xcode\/iOS license requires admin privileges, please run \u201csudo xcodebuild -license\u201d and then retry this command.<\/tt><\/p>\n  <\/li>\n  <li>\n    <p>Run the command suggested to set Apple\u2019s licensing agreement bit:<\/p>\n\n    <pre><strong>sudo xcodebuild -license\n<\/strong><\/pre>\n\n    <p>Enter your password for the sudo.<\/p>\n  <\/li>\n  <li>Confirm the <a href=\"#versions\">versions installed<\/a>.<\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"XCode.app\"><\/a><\/p>\n\n<h2 id=\"about-xcodeapp\">About Xcode.app<\/h2>\n\n<p>Xcode is Apple\u2019s free IDE developers use to create custom programs for an <a href=\"#ApplePlatforms\">Apple platform<\/a>.<\/p>\n\n<p>There is no Windows PC version of XCode. XCode only works on macOS. \nThis limitation has served to increase the need for MacBooks.<\/p>\n\n<p>Increasingly, Machine Learning developers are using Apple\u2019s Swift language.<\/p>\n\n<ol>\n  <li>\n    <p>Visit Apple\u2019s Xcode marketing page at<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/developer.apple.com\/Xcode\/\">https:\/\/developer.apple.com\/Xcode<\/a><\/p>\n\n    <p>Xcode \u201cincludes 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.\u201d.<\/p>\n\n    <p>PROTIP: Newer versions of Xcode installer also installs a Git client.<\/p>\n\n    <p><a name=\"XcodeSize\"><\/a><\/p>\n\n    <h3 id=\"how-big-is-the-xcode-installer\">How big is the XCode installer?<\/h3>\n  <\/li>\n  <li>\n    <p>To see how big the XCode installer is, visit Apple\u2019s fancy \u201cdownloads\u201d web page:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/developer.apple.com\/download\/applications\/\">https:\/\/developer.apple.com\/download\/applications<\/a><\/p>\n\n    <p>Scroll down to a version that doesn\u2019t say \u201cbeta\u201d.<\/p>\n\n    <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>\n\n    <p>Notice the size, such as \u201c(7.01 GB)\u201d.<\/p>\n\n    <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>\n\n    <p>Also, installer size is also why Xcode does not come with macOS.<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>Make sure you have at least <strong>13GB free<\/strong> on your hard-drive before attempting installation.<\/p>\n\n    <ol>\n      <li>Click the Apple icon to select \u201cAbout this Mac\u201d.<\/li>\n      <li>Click \u201cStorage\u201d tab.\n<br \/><br \/><\/li>\n    <\/ol>\n  <\/li>\n<\/ol>\n\n<p>There are other IDEs used by developers (such as Visual Studio, Eclipse, IntelliJ, PyCharm, etc.).<\/p>\n\n<p><a name=\"XcodeInstall\"><\/a><\/p>\n\n<h2 id=\"xcode-ide-install\">Xcode IDE install<\/h2>\n\n<p>There are two ways to install XCode:<\/p>\n\n<ul>\n  <li>\n    <p><a href=\"#AppStoreInstall\">Install from Apple Store<\/a> - the simplest way<\/p>\n  <\/li>\n  <li>\n    <p><a href=\"#TerminalInstall\">Install using Terminal<\/a><\/p>\n  <\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"TerminalInstall\"><\/a><\/p>\n\n<h3 id=\"update-xcode-from-terminal-cli\">Update XCode from Terminal CLI<\/h3>\n\n<ol>\n  <li>Open a Terminal.app console window.<\/li>\n  <li>\n    <p>At any directory, invoke Apple\u2019s Software Update Tool\u201d:<\/p>\n\n    <pre><strong>softwareupdate --install -a\n<\/strong><\/pre>\n\n    <p>If you see this:<\/p>\n\n    <pre>Finding available software\nNo updates are available.\n<\/pre>\n  <\/li>\n<\/ol>\n\n<p><a name=\"AppStoreInstall\"><\/a><\/p>\n\n<h3 id=\"install-xcode-from-apples-web-app-store\">Install XCode from Apple\u2019s web App Store<\/h3>\n\n<ol>\n  <li>\n    <p>In an internet browser, go to:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/developer.apple.com\/download\/\">https:\/\/developer.apple.com\/download<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Sign in to Apple Developer with your email address, then click the arrow icon.<\/p>\n  <\/li>\n  <li>\n    <p>Enter your password, then click the arrow icon.<\/p>\n\n    <p>Below is the \u201cSoftware Update\u201d approach:<\/p>\n\n    <p>You\u2019ll need to establish an Apple ID if you haven\u2019t already.<\/p>\n  <\/li>\n  <li>\n    <p>Click the cloud icon <strong>Download<\/strong> and provide your Apple ID.<\/p>\n  <\/li>\n  <li>\n    <p>Go through Apple\u2019s location verification if prompted.<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/user-images.githubusercontent.com\/300046\/83388372-956e7280-a3ab-11ea-873c-1b8097fbe557.png\">\n<img width=\"667\" alt=\"Xcode-select-ver\" src=\"https:\/\/user-images.githubusercontent.com\/300046\/83388372-956e7280-a3ab-11ea-873c-1b8097fbe557.png\" \/><\/a><\/p>\n  <\/li>\n  <li>\n    <p>Confirm your account.<\/p>\n  <\/li>\n  <li>\n    <p>Click \u201cAllow\u201d to the pop-up \u201cDo you want to download?\u201d.<\/p>\n  <\/li>\n  <li>\n    <p>CAUTION: Make sure that your machine has enough free space available.<\/p>\n\n    <p>These are massive files that may take a while to download if you don\u2019t have a fast internet connection.<\/p>\n\n    <p>NOTE: Each version of Xcode is related to a specific version of the Apple OS Mac operating system.<\/p>\n\n    <table>\n      <thead>\n        <tr>\n          <th style=\"text-align: left\">File<\/th>\n          <th style=\"text-align: left\">Date<\/th>\n          <th style=\"text-align: right\">Download<\/th>\n          <th style=\"text-align: right\">Unpacked<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td style=\"text-align: left\">Xcode_12.1<\/td>\n          <td style=\"text-align: left\">2020-10-01<\/td>\n          <td style=\"text-align: right\">10.5 GB<\/td>\n          <td style=\"text-align: right\">11.5 GB<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_11.5<\/td>\n          <td style=\"text-align: left\">2020-06-01<\/td>\n          <td style=\"text-align: right\">7.5 GB<\/td>\n          <td style=\"text-align: right\">? GB<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_10.2.1<\/td>\n          <td style=\"text-align: left\">2019-04-17<\/td>\n          <td style=\"text-align: right\">? GB<\/td>\n          <td style=\"text-align: right\">6.1 GB<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_9.0<\/td>\n          <td style=\"text-align: left\">2017-09-19<\/td>\n          <td style=\"text-align: right\">. ? GB<\/td>\n          <td style=\"text-align: right\">? GB<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_8.2.1 8C1002<\/td>\n          <td style=\"text-align: left\">2016-12-19<\/td>\n          <td style=\"text-align: right\">? GB<\/td>\n          <td style=\"text-align: right\">? GB<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_8_beta_2.xip<\/td>\n          <td style=\"text-align: left\">2016-07-05<\/td>\n          <td style=\"text-align: right\">5.9 GB<\/td>\n          <td style=\"text-align: right\">12.32 GB<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_7.31<\/td>\n          <td style=\"text-align: left\">2016-05-03<\/td>\n          <td style=\"text-align: right\">3.8 GB<\/td>\n          <td style=\"text-align: right\">?<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_4.1<\/td>\n          <td style=\"text-align: left\">2014-<\/td>\n          <td style=\"text-align: right\">2.9 GB<\/td>\n          <td style=\"text-align: right\">?<\/td>\n        <\/tr>\n        <tr>\n          <td style=\"text-align: left\">Xcode_3.2.4<\/td>\n          <td style=\"text-align: left\">2014-<\/td>\n          <td style=\"text-align: right\">2.? GB<\/td>\n          <td style=\"text-align: right\">?<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/li>\n  <li>\n    <p>Switch to Finder Downloads folder to watch progress on the file name ending with \u201cDownload\u201d. The one with a clock icon which signifies downloading.<\/p>\n  <\/li>\n  <li>\n    <p>Return to the <a href=\"#versions\">versions<\/a> instructions above to view the updated version.<\/p>\n  <\/li>\n  <li>\n    <p>Delete the installer after you\u2019re done, to reclaim disk space.<\/p>\n  <\/li>\n  <li>\n    <p>In an internet browser, get to the \u201cMac App Store Preview\u201d for Xcode at<\/p>\n\n    <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>\n\n    <p><img width=\"683\" alt=\"Xcode-web-preview.png\" src=\"https:\/\/user-images.githubusercontent.com\/300046\/95787611-1e20e780-0c97-11eb-97b7-a4a6a70619be.png\" \/><\/p>\n  <\/li>\n  <li>\n    <p>Click <strong>View in Mac App Store<\/strong>, then \u201cOpen App Store.app\u201d in the pop-up.<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>Click the download icon at the upper-left corner.<\/p>\n  <\/li>\n  <li>\n    <p>Provide your Apple ID and password. Get one if you don\u2019t already have one.<\/p>\n\n    <p>PROTIP: DO NOT install a beta version of Xcode.<\/p>\n\n    <p>The blue \u201cOPEN\u201d icon appears at the upper-right when the app is installed.\nBut don\u2019t click it because we are done.<\/p>\n  <\/li>\n  <li>\n    <p>In Finder, look for <strong>Xcode.app<\/strong> in the <tt>\/Applications<\/tt> folder.<\/p>\n\n    <p>Alternately, on the Touchpad pinch 4 fingers together to click the <strong>App Store<\/strong>. \nType enough of \u201cXcode\u201d to filter out others.<\/p>\n  <\/li>\n  <li>\n    <p>To view the version, cursor to the top of the screen and click the program name next to the Apple icon to select \u201cAbout Xcode\u201d:<\/p>\n\n    <p><img src=\"https:\/\/cloud.githubusercontent.com\/assets\/300046\/21987451\/dc44154a-dbc0-11e6-90b6-4dce91b8c5d2.png\" alt=\"Xcode about 271x48\" \/><\/p>\n  <\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"XcodeUpgrade\"><\/a><\/p>\n\n<h3 id=\"xcode-ide-upgrade\">Xcode IDE Upgrade<\/h3>\n\n<p>Over time, Apple updates Xcode and its command line utilities.<\/p>\n\n<ol>\n  <li>\n    <p>Click the Apple icon, then click <strong>System Settings<\/strong>. Click \u201cContinue\u201d it that\u2019s shown.\nHere is an example notification:<\/p>\n\n    <p><img src=\"https:\/\/user-images.githubusercontent.com\/300046\/56460275-7e162680-635d-11e9-8d3c-0bb89457dcd8.jpg\" alt=\"Xcode-cli-update-436x98-4795\" \/><\/p>\n  <\/li>\n  <li>Search for \u201cSoftware Updates\u201d or click the icon.<\/li>\n  <li>Click \u201cUpdate Now\u201d if that appears. (but first do a backup.)<\/li>\n  <li>Click \u201cAgree\u201d to the EULA.<\/li>\n  <li>When done, view the <a href=\"#versions\">version numbers installed<\/a>.<\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"Swift\"><\/a><\/p>\n\n<h2 id=\"swift-version\">Swift version<\/h2>\n\n<p>Regardless of whether Command Line Utilities or Xcode.app is installed:<\/p>\n\n<ol>\n  <li>\n    <p>Get the version of the Swift program used to develop iOS mobile apps:<\/p>\n\n    <pre><strong>swift -version<\/strong><\/pre>\n\n    <p>If you are on an ARM (M1\/M2\/M3) CPU, a sample response at time of this writing:<\/p>\n\n    <pre>Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)\nTarget: arm64-apple-darwin23.3.0\n<\/pre>\n\n    <p>Previously:<\/p>\n\n    <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>\n\n    <p>Previously:<\/p>\n\n    <pre>swift-driver version: 1.45.2 Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)\nTarget: arm64-apple-macosx12.0<\/pre>\n\n    <p>Alternately, if you are on an older Intel CPU, a sample response (at time of this writing):<\/p>\n\n    <pre>Apple Swift version 5.9 (swiftlang-5.9.0.114.6 clang-1500.0.27.1)\nTarget: x86_64-apple-darwin22.5.0<\/pre>\n\n    <p>Previously:<\/p>\n\n    <pre>Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)\nTarget: x86_64-apple-darwin21.4.0<\/pre>\n\n    <p>If jamf installed Xcode, you\u2019ll also see:<\/p>\n\n    <p><tt>[1]+  Done                    sudo rm -rf \/Library\/Developer\/CommandLineToolsjamfselfservice:\/\/content?entity=policy<\/tt><\/p>\n  <\/li>\n<\/ol>\n\n<hr \/>\n\n<h2 id=\"xcode-filemerge-tool\">Xcode FileMerge tool<\/h2>\n\n<p>Xcode graphically compares files and directories.<\/p>\n\n<ol>\n  <li>\n    <p>Open Xcode. This takes a few seconds.<\/p>\n  <\/li>\n  <li>\n    <p>Right-click on Xcode icon. Select \u201cOpen Developer Tool\u201d. Select \u201cFileMerge\u201d.<\/p>\n  <\/li>\n  <li>\n    <p>Specify one file to compare.<\/p>\n  <\/li>\n  <li>\n    <p>Specify the other file to compare.<\/p>\n  <\/li>\n  <li>\n    <p>Click \u201cCompare\u201d.<\/p>\n  <\/li>\n<\/ol>\n\n<p><a name=\"ApplePlatforms\"><\/a><\/p>\n\n<h2 id=\"apple-platforms\">Apple Platforms<\/h2>\n\n<ol>\n  <li>\n    <p>Use an internet browser (such as Safari) to view Apple\u2019s page for developers at:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/developer.apple.com\/\">\nhttps:\/\/developer.apple.com\/<\/a><\/p>\n\n    <p>Apple\u2019s products and operating systems include:<\/p>\n    <ul>\n      <li>macOS on MacBook laptops<\/li>\n      <li>iOS to run iPhone mobile phones<\/li>\n      <li>iPadOS to run iPad tablets<\/li>\n      <li>watchOS to run Apple Watch wearable products<\/li>\n      <li>tvOS to run Apple TV devices<\/li>\n      <li>visionOS to run vision visors introduced in 2023\n<br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n<\/ol>\n\n<hr \/>\n\n<h2 id=\"xcode-ui-tricks\">XCode UI Tricks<\/h2>\n\n<p>https:\/\/augmentedcode.io\/xcode-tips\/<\/p>\n\n<h2 id=\"testing-apps\">Testing apps<\/h2>\n\n<h2 id=\"references\">References:<\/h2>\n\n<ul>\n  <li>https:\/\/developer.apple.com\/documentation\/xctest\/defining_test_cases_and_test_methods<\/li>\n  <li>https:\/\/www.youtube.com\/watch?v=_wLdNSvGPB8&amp;list=PLvUWi5tdh92zaJIMa65f8G2aWTytY3rN3&amp;index=1<\/li>\n<\/ul>\n\n<h2 id=\"more-on-macos\">More on MacOS<\/h2>\n\n<p>This is one of a series on macOS:<\/p>\n\n<ul>\n  <li><a href=\"\/mac-setup\/\">MacOS Setup step-by-step, with automation<\/a><\/li>\n  <li><a href=\"\/apple-macbook-hardware\/\">MacOS Hardware and accessories<\/a><\/li>\n  <li><a href=\"\/dotfiles\/\">MacOS dotfiles for System Preferences setup automation<\/a><\/li>\n  <li>\n    <p><a href=\"\/macos-homebrew\/\">MacOS Homebrew installers<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/macos-bootup\/\">MacOS Boot-up<\/a><\/li>\n  <li>\n    <p><a href=\"\/apple-mac-osx-versions\/\">MacOS Versions<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/apple-mac-osx-keyboard\/\">MacOS Keyboard tricks<\/a><\/li>\n  <li><a href=\"\/mac-osx-terminal\/\">MacOS Terminal Tips and Tricks<\/a><\/li>\n  <li>\n    <p><a href=\"\/find\/\">MacOS Find (files and text in files)<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/text-editors\/\">Text editors and IDEs on MacOS<\/a><\/li>\n  <li><a href=\"\/xcode\/\">MacOS Xcode.app and CommandTools (gcc)<\/a><\/li>\n  <li><a href=\"\/mac-utilities\/\">MacOS Command-line utilities<\/a><\/li>\n  <li>\n    <p><a href=\"\/task-runners\/\">Task Runners Grunt and Gulp<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/macos-apps\/\">Applications on MacOS<\/a><\/li>\n  <li><a href=\"\/1password\/\">1password on MacOS<\/a><\/li>\n  <li>\n    <p><a href=\"\/apple-mac-osx-backup\/\">Data Backups on MacOS<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/mac-diskspace\/\">Manage Disk Space on MacOS<\/a><\/li>\n  <li><a href=\"\/screen-capture-apple-mac-osx\/\">Screen capture on MacOS<\/a><\/li>\n  <li>\n    <p><a href=\"\/printing\/\">Printing from macOS or Linux<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a href=\"\/ports-open\/\">Ports open<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/mac-iphone\/\">MacOS iPhone integration<\/a><\/li>\n  <li>\n    <p><a href=\"\/macos-aws\/\">MacOS within AWS<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/windows-on-mac\/\">Linux and Windows on Apple MacOS<\/a><\/li>\n  <li><a href=\"\/packer\/\">Packer create Vagrant Windows image<\/a><\/li>\n  <li>\n    <p><a href=\"\/rdp\/\">Remote into Windows<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/python-install\/\">Python on MacOS<\/a><\/li>\n  <li><a href=\"\/maven-on-macos\/\">Maven on MacOS<\/a><\/li>\n  <li><a href=\"\/ruby-on-apple-mac-osx\/\">Ruby on MacOS<\/a><\/li>\n  <li><a href=\"\/node-osx-install\/\">Node on MacOS installation<\/a><\/li>\n  <li>\n    <p><a href=\"\/php-on-apple-mac-osx\/\">PHP on MacOS<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/java-on-apple-mac-osx\/\">Java on MacOS<\/a><\/li>\n  <li><a href=\"\/scala-ecosystem\/\">Scala ecosystem<\/a><\/li>\n<\/ul>\n\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/acronyms\/"}},"id":"https:\/\/wilsonmar.github.io\/acronyms","published":"2025-12-11T00:00:00+00:00","updated":"2025-12-11T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <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>\n\n<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>\n\n<hr \/>\n\n<h3>#<\/h3>\n\n<ul>\n  <li>2FA\t=\tTwo-Factor Authentication (MFA)<\/li>\n  <li>2SA\t=\tTwo-Step Authentication<\/li>\n  <li>3DES\t=\tTriple Digital Encryption Standard<\/li>\n  <li>4IR = Fourth Industrial Revolution (automation of business processes to make data the primary commodity in your business)<\/li>\n  <li>5IR = Fifth Industrial Revolution (introduction of AI agents to find patterns and suggest solutions to business problems)<\/li>\n  <li>86 = NSFW slang for kicking someone out<\/li>\n<\/ul>\n\n<p><a name=\"A\"><\/a><\/p>\n<h3 id=\"a\">A<\/h3>\n\n<ul>\n  <li>a11y\t=\taccessibility\t(numeronym of 11 letters between a and y)<\/li>\n  <li>AAC\t=\tAzure Architecture Center\t(Microsoft)<\/li>\n  <li>AAI\t=\tAutonomous Agent Interface (operating system instead of CLI or GUI)<\/li>\n  <li>ABAC\t=\tAttribute-Based Access Control<\/li>\n  <li>ABI\t=\tApplication Binary Interface (on Apple operating systems)<\/li>\n  <li>AC\t=\tAlternating Current\t(as in electrical wall plugs)<\/li>\n  <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>\n  <li>ACI\t=\tAzure Container Instance\t(Microsoft)<\/li>\n  <li>ACL\t=\tAccess Control List\t(defines CRUD permissions for an identity)<\/li>\n  <li>ACM\t=\tAWS Certificate Manager (Amazon)<\/li>\n  <li>ACR\t=\tAzure Container Registry\t(substitute for GitHub within Microsoft Azure cloud)<\/li>\n  <li>ACS\t=\tAzure Communication Service (to send emails)<\/li>\n  <li>AD\t=\tActive Directory\t(Microsoft\u2019s branding for technologies that control access by users and groups)<\/li>\n  <li>ADC\t=\tAnalog to Digital Converter (converts continuos analog to digital values on microprocessor boards)<\/li>\n  <li>ADC\t=\tAWS Direct Connect (Amazon)<\/li>\n  <li>ADE\t=\tAutomated Device Enrollment (Microsoft 365 Intune auto configuration of macOS)<\/li>\n  <li>ADAS\t=\tAdvanced Driver Assistance Systems<\/li>\n  <li>ADF\t=\tAzure Data Factory (part of Microsoft Fabric)<\/li>\n  <li>ADLS\t=\tAzure Data Lake Storage (Microsoft cloud Fabric storage)<\/li>\n  <li>ADR\t=\tArchitectual Decision Record<\/li>\n  <li>AEAD\t=\tAuthenticated Encryption with Associated Data\t(cipher used in TLS)<\/li>\n  <li>AES\t=\tAdvanced Encryption Standard\t(symmetric encryption algorithm)<\/li>\n  <li>AFAIK\t=\tAs Far As I Know (internet slang)<\/li>\n  <li>AFK\t=\tAway From Keyboard (gamer slang)<\/li>\n  <li>AFR\t=\tAnnual Failure Rate<\/li>\n  <li>AGI\t=\tArtificial General Intelligence (AI that surpasses human intelligence)<\/li>\n  <li>AHOD\t=\tAll Hands On Deck<\/li>\n  <li>AI\t=\tArtificial Intelligence<\/li>\n  <li>AIB\t=\tAzure Image Builder (to run within Azure VMs)<\/li>\n  <li>AIS\t=\tAutomated Indicator Sharing (of threats, from cisa.gov)<\/li>\n  <li>AICPA\t=\tAssociation of International Certified Professional Accountants<\/li>\n  <li>AISIC = AI Safety Institute Consortium<\/li>\n  <li>AJAX\t=\tAsynchronous Javascript and XML<\/li>\n  <li>AKA\t=\tAlso Known As\t(common vernacular)<\/li>\n  <li>AKE\t=\tAuthenticated Key Exchange<\/li>\n  <li>AKS\t=\tAzure Kubernetes Service\t(Microsoft)<\/li>\n  <li>AKV\t=\tAzure Key Vault<\/li>\n  <li>ALB\t=\tApplication Load Balancer\t(Amazon)<\/li>\n  <li>ALE\t=\tAnnualized Loss Expectancy<\/li>\n  <li>ALEER\t=\tAdopt Land Expand Extend Renew\t(sales strategy)<\/li>\n  <li>ALM\t=\tApplication Lifecycle Management\t(all that goes into managing building and maintaining software applications)<\/li>\n  <li>ALZ\t=\tAzure Landing Zones (Microsoft)<\/li>\n  <li>ALU\t=\tArithmetic Logic Unit (within classical CPUs)<\/li>\n  <li>AM\t=\tAccount Manager<\/li>\n  <li>AMA\t=\tAsk Me Anything\t(slang)<\/li>\n  <li>AMA\t=\tAzure Marketplace Application\t(such as HashiCorp Consul Service)<\/li>\n  <li>AMA\t=\tAzure Monitoring Agent  (Microsoft)<\/li>\n  <li>AMBA\t=\tAzure Monitor Baseline Alerts (Microsoft)<\/li>\n  <li>AMI\t=\tAmazon Machine Image\t(Amazon and Azure image containing operating system and apps)<\/li>\n  <li>AMO\t=\tAtomic, Molecular, and Optical physics (Quantum IT)<\/li>\n  <li>AMQP\t=\tAdvanced Message Queuing Protocol<\/li>\n  <li>AMSI = Antimalware Scan Interface (Windows logging mechanism)<\/li>\n  <li>AMZN\t=\t(Amazon corporation stock market symbol and URL shortener host name)<\/li>\n  <li>ANI = Artificial Narrow Intelligence<\/li>\n  <li>ANN\t=\tArtificial Neural Networks (emulating the 80 billion neurons in human brains)<\/li>\n  <li>AO\t=\tAuthorizing Official (in RMF)<\/li>\n  <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>\n  <li>API\t=\tApplication Programming Interface<\/li>\n  <li>APJ\t=\tAsia + Pacific + Japan<\/li>\n  <li>APM\t=\tApplication Performance Monitoring<\/li>\n  <li>APT\t=\tAdvanced Persistent Threat<\/li>\n  <li>APT = Advanced Package Tool<\/li>\n  <li>ARG\t=\tAzure Resource Graph (of Microsoft Container Registry)<\/li>\n  <li>ARM\t=\tAdvanced RISC Machine\t(type of computer chip)<\/li>\n  <li>ARM\t=\tAzure Resource Manager\t(Microsoft)<\/li>\n  <li>ARN\t=\tAmazon Resource Name\t(Amazon)<\/li>\n  <li>ARO\t=\tAnnual Rate of Occurrence<\/li>\n  <li>ARP\t=\tAddress Resolution Protocol\t(Networking)<\/li>\n  <li>ARR\t=\tAnnual Recurring Revenue<\/li>\n  <li>ASAP\t=\tAs Soon As Possible (can be an initialism where each letter is pronounced)<\/li>\n  <li>ASB\t=\tAzure Security Benchmarks (Microsoft)<\/li>\n  <li>ASC\t=\tAzure Security Center (Microsoft)<\/li>\n  <li>ASCII\t=\tAmerican Standard Code Information Interchange (defined binary values to display letters and special characters)<\/li>\n  <li>ASG\t=\tAuto Scaling Group\t(AWS)<\/li>\n  <li>ASG\t=\tApplication Security Group (Azure)<\/li>\n  <li>ASI\t=\tArtificial Super-Intelligence (sentient AI prioritizing of its own needs and desires)<\/li>\n  <li>ASIC\t=\tApplication-Specific Integrated Circuit<\/li>\n  <li>ASIM\t=\tAdvanced Security Information Model (schemas by Microsoft Sentinel)<\/li>\n  <li>ASM\t=\tAWS Secrets Manager\t(Amazon)<\/li>\n  <li>ASN\t=\tAutonomous System Number (AWS unique endpoint identifier)<\/li>\n  <li>ASO\t=\tApplication Security Orchestration and Correlation (integrated security tools and processes)<\/li>\n  <li>ASOC\t=\tAzure Service Operator<\/li>\n  <li>ASPM\t=\tApplication Security Posture Management<\/li>\n  <li>ASR\t=\tAutomatic Speech Recognition (an AI capability)<\/li>\n  <li>ASR\t=\tAutomated System Recovery<\/li>\n  <li>AST = Abstract Syntax Tree (a structured representation of source code used by compilers and tools to catch bugs and refactor code automatically)<\/li>\n  <li>ASVS = Application Security Verifiation Standard (levels defined by OWASP)<\/li>\n  <li>ATA\t=\tAdvanced Threat Analytics (Microsoft)<\/li>\n  <li>ATARC\t=\tAdvanced Technology Academic Research Center\t(non-profit collaborative forum on emerging technology challenges like zero trust)<\/li>\n  <li>ATO\t=\tAuthority To Operate\t(FEDRAMP designation for production-ready state)<\/li>\n  <li>AUP = Acceptable Use Policy (for using company assets)<\/li>\n  <li>AuthN\t=\tAuthentication\t(contraction)<\/li>\n  <li>AuthZ\t=\tAuthorization\t(contraction)<\/li>\n  <li>AVM\t=\tAzure Verified Module (meets standards for good IaC)<\/li>\n  <li>AWS\t=\tAmazon Web Services\t(cloud services provider)<\/li>\n  <li>AZ\t=\tAvailability Zone<\/li>\n<\/ul>\n\n<p><a name=\"B\"><\/a><\/p>\n<h3 id=\"b\">B<\/h3>\n\n<ul>\n  <li>B2B\t=\tBusiness to Business\t(marketing)<\/li>\n  <li>B2C\t=\tBusiness to Consumer\t(marketing)<\/li>\n  <li>BANT\t=\tBudget + Authority + Need + Timeframe\t(framework for buyer readiness)<\/li>\n  <li>BATNA = Best Alternative To a Negotiated Agreement<\/li>\n  <li>BAU\t=\tBusiness Administration Unit<\/li>\n  <li>BAU\t=\tBusiness As Usual (pejorative slang)<\/li>\n  <li>BBS\t=\tBitBucket Server\t(self-managed edition of BitBucket source version manager from Atlassian)<\/li>\n  <li>BCDR\t=\tBusiness Continuity and Disaster Recovery<\/li>\n  <li>BCI\t=\tBrain Computer Interface<\/li>\n  <li>BCP\t=\tBusiness Continuity Plan<\/li>\n  <li>BEC = Business Email Compromise<\/li>\n  <li>BDM\t=\tBusiness Decision Maker<\/li>\n  <li>BDR\t=\tBusiness Development Representative<\/li>\n  <li>BEC\t=\tBusiness Email Compromise\t(spoofing emails to impersonate managers, vendors, customers, govt)<\/li>\n  <li>BERT\t=\tBidirectional Encoder Representations from Transformers (Google GenAI pre-trained model)<\/li>\n  <li>BFLA\t=\tBroken Function Level Authorization<\/li>\n  <li>BFS\t=\tBreadth-First Search<\/li>\n  <li>BFP\t=\tBi-Directional Forwarding Detection (networking)<\/li>\n  <li>BGP\t=\tBorder Gateway Protocol\t(networking)<\/li>\n  <li>BHAG\t=\tBig Hairy Audacious Goal<\/li>\n  <li>BIA\t=\tBusiness Impact Assessment<\/li>\n  <li>BIOS\t=\tBasic Input Output System<\/li>\n  <li>BJT = Single Bipolar Junction Transistor<\/li>\n  <li>BKM\t=\tBest Known Method<\/li>\n  <li>BLE\t=\tBluetooth Low Energy<\/li>\n  <li>BLF\t=\tBusiness Logic Flaw<\/li>\n  <li>BNPL\t=\tBuy Now Pay Later (debit credit offering from Klarna, Affirm, etc.)<\/li>\n  <li>BOD\t=\tBoard of Directors<\/li>\n  <li>BOLA\t=\tBroken Object Level Authorization<\/li>\n  <li>BOPLA\t=\tBroken Object Property Level Authorization<\/li>\n  <li>BOM = Bite Order Mark (used in Unicode to define which UTF page a grapheme is located)<\/li>\n  <li>BOM\t=\tBill of Material (for manufacturing)<\/li>\n  <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>\n  <li>BPM = Beats Per Minute (in music)<\/li>\n  <li>BPCS\t=\tBasic Process Control System  (responsible for process control and monitoring of the industrial infrastructure)<\/li>\n  <li>BPMN\t=\tBusiness Process Model Notation<\/li>\n  <li>BPT\t=\tBusiness Process Technology (OutSystems workflow engine)<\/li>\n  <li>BRB\t=\tBe Right Back\t(internet slang)<\/li>\n  <li>BRG = Blue, Green, and Red (color space instead of RGB by OpenCV)<\/li>\n  <li>BRM\t=\tBusiness Requirements Management<\/li>\n  <li>BSI\t=\tBusiness-Sensitive Informatioin\t(used in TPM)<\/li>\n  <li>BSM\t=\tBasic Security Module\t(used in TPM)<\/li>\n  <li>BSOD\t=\tBlue Screen of Death (on Windows machines)<\/li>\n  <li>BSON\t=\tBinary JSON\t(used only within MongoDB)<\/li>\n  <li>BTP\t=\tBehavioral Threat Protection<\/li>\n  <li>BTP\t=\tBusiness Technology Platform\t(previously SAP Cloud Platform)<\/li>\n  <li>BTW\t=\tBy The Way (internet slang)<\/li>\n  <li>BU\t=\tBusiness Unit<\/li>\n  <li>BVA\t=\tBusiness Value Assessment<\/li>\n  <li>BYOD\t=\tBring Your Own Device<\/li>\n  <li>BYOK\t=\tBring Your Own Key<\/li>\n  <li>BYOIP\t=\tBring Your Own IP address<\/li>\n  <li>BYOK\t=\tBring Your Own Key<\/li>\n<\/ul>\n\n<p><a name=\"C\"><\/a><\/p>\n<h3 id=\"c\">C<\/h3>\n\n<ul>\n  <li>C2 =\tCommand and Control<\/li>\n  <li>C&amp;C\t=\tCommand and Control<\/li>\n  <li>C2E\t=\tCommercial Cloud Enterprise<\/li>\n  <li>C2PA\t=\tCoalition for Content Provenance and Authenticity (c2pa.org)<\/li>\n  <li>CA\t=\tCertificate Authority\t(issues cryptographic certificates)<\/li>\n  <li>CaaS\t=\tContainer as a Service (such as AWS ECS or Azure AKS or Docker Cloud)<\/li>\n  <li>CaC\t=\tConfiguration as Code<\/li>\n  <li>CAF\t=\tCloud Adoption Framework (multi-cloud)<\/li>\n  <li>CAGR\t=\tCompound Annual Growth Rate<\/li>\n  <li>CAI\t=\tCloud Asset Inventory (Google)<\/li>\n  <li>CAIQ\t=\tConsensus Assessments Initiative Questionnaire<\/li>\n  <li>CAM\t=\tCorporate Account Manager\t(role)<\/li>\n  <li>CARML = Common Azure Resource Modules Library (Open Source project)<\/li>\n  <li>CAP\t=\tCommon Alerting Protocol\t(XEP-127)<\/li>\n  <li>CAP\t=\tCybersecurity Assessment Plan (FISMA)<\/li>\n  <li>CAPEX\t=\tCapital Expenditures\t(impacts Asset Balance Statements and can be amortized over time)<\/li>\n  <li>CAPTCHA\t=\tCompletely Automated Public Turing (test) to tell Computers and Humans Apart<\/li>\n  <li>CAR = Content Addressable aRchive (used in IPFS)<\/li>\n  <li>CASB\t=\tCloud Access Security Broker\t(provides IAM services to mediate cloud service access)<\/li>\n  <li>CBC\t= Cipher Block Chaining (used by AES openssl encryption)<\/li>\n  <li>CBD\t=\tComponent Based Development (by reusing pre-existing loosely-coupled modular components)<\/li>\n  <li>CBK\t=\tCommon Body of Knowledge<\/li>\n  <li>CBRN = Chemical, Biological, Radiological, and Nuclear  (risks)<\/li>\n  <li>CCB\t=\tChange Control Board\t(organization)<\/li>\n  <li>CCE\t=\tCritical Customer Escalation<\/li>\n  <li>CCM\t=\tCloud Controls Matrix\t(from CSA)<\/li>\n  <li>CCM\t=\tContinuous Controls Monitoring<\/li>\n  <li>CCM\t=\tCustomer Communications Management<\/li>\n  <li>CCMP\t=\tCipher block Chaining Message authentication code Protocol  (AES-based encryption mode with strong security)<\/li>\n  <li>CCP\t=\tCommon Control Provider (per RMF)<\/li>\n  <li>CCP\t=\tCrisis Communication Plan<\/li>\n  <li>CCS\t=\tComplete Corresponding Source (code)<\/li>\n  <li>CCTV\t=\tClosed-circuit TeleVision<\/li>\n  <li>CD\t=\tContinuous Deployment\t(into Production for Productive use)<\/li>\n  <li>CDK\t=\tCloud Development Kit\t(AWS)<\/li>\n  <li>CDM\t=\tCommon Data Model (Microsoft Dataverse for their Power apps)<\/li>\n  <li>CDM\t=\tContinuous Diagnostics and Mitigation<\/li>\n  <li>CDN\t=\tContent Delivery Network (Amazon)<\/li>\n  <li>CDPI\t=\tControl Data-Plane Interface (between SDN Datapath and Controller)<\/li>\n  <li>CE\t=\tCommunity Edition<\/li>\n  <li>CEO\t=\tChief Executive Officer (position title)<\/li>\n  <li>CF\t=\tCloudFormation (AWS IaC)<\/li>\n  <li>CFAA\t=\tComputer Fraud &amp; Abuse Act (of 1986)<\/li>\n  <li>CfCT\t=\tCustomizations for Control Tower (Amazon)<\/li>\n  <li>CFET = Complementary FET<\/li>\n  <li>CFS\t=\tCompletely Fair Scheduler (Kubernetes CPU allocation among cgroups)<\/li>\n  <li>CFT\t=\tCloud Foundation Toolkit (Google Forseti Config Validator managed by Scorecard CLI utility)<\/li>\n  <li>CFT\t=\tCloudFormation Templates (Amazon)<\/li>\n  <li>CG\t=\tCustomer Gateway<\/li>\n  <li>CI\t=\tContinuous Integration<\/li>\n  <li>CIAN\t=\tCustomer Identity and Access Management<\/li>\n  <li>CIDR\t=\tClassless Inter-Domain Routing (networking)<\/li>\n  <li>CIEM\t=\tCloud Infrastructure and Entitlement Management\t(invented by Gartner)<\/li>\n  <li>CIM\t=\tCommon Information Model (Splunk)<\/li>\n  <li>CID = Content Identifier (hash from content used in web3 IPFS)<\/li>\n  <li>CIP\t=\tCritical Infrastructure Protection (plan)<\/li>\n  <li>CIRP\t=\tCyber Incident Response Plan<\/li>\n  <li>CIS\t=\tCenter for Internet Security<\/li>\n  <li>CISA\t=\tCybersecurity and Infrastructure Security Agency\t(US government organization)<\/li>\n  <li>CISO\t=\tChief Information Security Officer<\/li>\n  <li>CKL\t=\tCompromised Key List<\/li>\n  <li>CKMS\t=\tCryptographic Key Management System<\/li>\n  <li>CLI\t=\tCommand Line Interface (used to run Linux shell scripts)<\/li>\n  <li>CLU\t=\tConversational Language Understanding (Azure AI Language)<\/li>\n  <li>CMDB\t=\tConfiguration Management Database\t(ITIL term for where all aspects of the system is defined)<\/li>\n  <li>CMK\t=\tCustomer-Managed Key\t(for encryption)<\/li>\n  <li>CMO\t=\tChief Marketing Officer<\/li>\n  <li>CMP\t=\tCloud Management Platform\t(for easier use of multiple clouds)<\/li>\n  <li>CN\t=\tCommon Name\t(a human-readable name of the subject in certificates)<\/li>\n  <li>CNAME\t=\tCanonical Name Record\t(DNS)<\/li>\n  <li>CNI\t=\tContainer Network Interface\t(Kubernetes)<\/li>\n  <li>CNN\t=\tConvolutional Neural Networks (Machine Learning)<\/li>\n  <li>CNNS\t=\tConvolutional Neural Networks (Machine Learning)<\/li>\n  <li>CNSS\t=\tCommittee on National Security Systems<\/li>\n  <li>COGS\t=\tCost of Goods Sold\t(Financial Accounting)<\/li>\n  <li>COMINT\t=\tCommand Intelligence\t(from intercepted SIGINT)<\/li>\n  <li>CMOS = Complimentary Metal Oxide Semiconductor (Type of metal\u2013oxide\u2013semiconductor field-effect transistor fabrication process using complementary and symmetrical pairs of p-type and n-type MOSFETs)<\/li>\n  <li>COOP\t=\tContinuity of Operations (plan)<\/li>\n  <li>CORS\t=\tCross-Origin Resource Sharing\t(used by browsers to allow web apps to access resources from other origins)<\/li>\n  <li>COSO\t=\tCommittee of Sponsoring Organization\t(of the Treadway Commission)<\/li>\n  <li>CoT\t=\tCoT (Chain of Thought - reasoning in AI)<\/li>\n  <li>COTS\t=\tCommercial Off-The-Shelf\t(Software vs. custom-built)<\/li>\n  <li>CPA\t=\tCertified Public Accountant<\/li>\n  <li>CPIC\t=\tCapital Planning Investment Controls<\/li>\n  <li>CPS\t=\tCustomer Profitability Score<\/li>\n  <li>CPRA = California Privacy Rights Act<\/li>\n  <li>CRDT = Conflict-free Replicated Data Type (for local-first multi-user systems)<\/li>\n  <li>CPSM\t=\tCloud Security Posture Management<\/li>\n  <li>CPE = Common Platform Enumeration (see <a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Common_Platform_Enumeration\">Wikipedia<\/a>)<\/li>\n  <li>CPU\t=\tCentral Processing Unit<\/li>\n  <li>CQL = Cassandra Query Language<\/li>\n  <li>CRA\t=\tCyber Resilience Act (EU security law that requires companies to report breaches and puts liability on software flaws)<\/li>\n  <li>CRD\t=\tCustom Resource Definition\t(Extends Kubernetes API)<\/li>\n  <li>CRDTs = Conflict-free Replicated Data Types (resolves concurrent changes in collaborative apps)<\/li>\n  <li>CRI\t=\tContainer Runtime Interface\t(Kubernetes)<\/li>\n  <li>CRR\t=\tCross-Region Replication<\/li>\n  <li>CRL\t=\tCertificate Revocation List<\/li>\n  <li>CRM\t=\tCustomer Relationship Management<\/li>\n  <li>CRR\t=\tCross-Region Replication (AWS S3 capability)<\/li>\n  <li>CRR\t=\tCyber Resilience Review (defined by DHS)<\/li>\n  <li>CRT\t=\tCommon Release Tooling\t(built on top of GitHub Actions CI\/CD)<\/li>\n  <li>CRUD\t=\tCreate Read Update Delete (basic operations)<\/li>\n  <li>CS\t=\tCustomer Success\t(organization)<\/li>\n  <li>CSA\t=\tCloud Security Alliance<\/li>\n  <li>CSAF\t=\tCommon Security Advisory Framework (defined by OASIS)<\/li>\n  <li>CSB\t=\tCloud Service Broker<\/li>\n  <li>CSC\t=\tCloud Service Customer<\/li>\n  <li>CSC\t=\tCritical Security Controls<\/li>\n  <li>CSE\t=\tCustomer Success Engineer<\/li>\n  <li>CSF\t=\tCyber Security Framework (NIST ISO 27018)<\/li>\n  <li>CSI\t=\tContainer Storage Interface\t(Kubernetes)<\/li>\n  <li>CSIRC = Computer Incident Response Center<\/li>\n  <li>CSIRT = Computer Incident Response Team<\/li>\n  <li>CSM\t=\tCustomer Success Manager<\/li>\n  <li>CSO\t=\tCloud Security Officer<\/li>\n  <li>CSP\t=\tCloud Service Provider<\/li>\n  <li>CSP\t=\tContent Security Policy (defines which origins browsers are allowed to load resources)<\/li>\n  <li>CSP\t=\tCryptographic Service Provider<\/li>\n  <li>CSPM\t=\tCloud Security Posture Management (Azure Defender, Palo Alto Prisma Cloud, Qualys CloudView, Trend Micro Cloud One Conformity)<\/li>\n  <li>CSQL\t=\tCustomer Success Qualified Lead\t(HashiCorp internal term)<\/li>\n  <li>CSR\t=\tCertificate Signing Request<\/li>\n  <li>CSRF\t=\tCross-Site Request Forgery<\/li>\n  <li>CTA\t=\tCall To Action (marketing)<\/li>\n  <li>CTAP\t=\tClient To Authenticator Protocol<\/li>\n  <li>CTF\t=\tCapture The Flag (in a cybersecurity tournament)<\/li>\n  <li>CTF\t=\tCyber Threat Framework<\/li>\n  <li>CTI\t=\tCyber Threat Intelligence<\/li>\n  <li>CTO\t=\tChief Technology Officer<\/li>\n  <li>CTS\t=\tConsul-Terraform Sync\t(HashiCorp product)<\/li>\n  <li>CUA = Computer Using Agent (OpenAI\u2019s <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>\n  <li>CUDA\t=\tCompute Unified Device Architecture (parallel computing platform &amp; API developed by NVIDIA)<\/li>\n  <li>CVD\t=\tColor Vision Deficiency  (aka Color Blindness)<\/li>\n  <li>CVE\t=\tCommon Vulnerabilities and Exposures\t(identified through the US CISA database)<\/li>\n  <li>CVRF\t=\tCommon Vulnerability Reporting Framework (defined by OASIS)<\/li>\n  <li>CVSS\t=\tCommon Vulnerability Scoring System<\/li>\n  <li>CWE\t=\tCommon Weakness Enumerations\t(known in programming source code)<\/li>\n  <li>CWPP\t=\tCloud Workload Protection Platform (Microsoft, Palo Alto)<\/li>\n<\/ul>\n\n<p><a name=\"D\"><\/a><\/p>\n<h3 id=\"d\">D<\/h3>\n\n<ul>\n  <li>DaaS\t=\tData as a Service<\/li>\n  <li>DA\t=\tDeveloper Advocate<\/li>\n  <li>DAAT\t=\tDangerous Asymmetric Advanced Technologies<\/li>\n  <li>DAC\t=\tDigital to Analog Converter<\/li>\n  <li>DAC\t=\tDiscretionary Access Control (for Security)<\/li>\n  <li>DAG\t=\tDirected Acyclic Graph<\/li>\n  <li>DAO\t=\tDecentralized Autonomous Organization<\/li>\n  <li>Dapps = Decentralized Applications (run on peer-to-peer networks, such as a blockchain using smart contracts)<\/li>\n  <li>DART\t=\tDetection and Response Team (Microsoft)<\/li>\n  <li>DAX\t=\tData Analysis Expressions   (Microsoft formula language)<\/li>\n  <li>DAX\t=\tDynamoDB Accelerator (Amazon)<\/li>\n  <li>DB\t=\tDatabase<\/li>\n  <li>DBMS\t=\tDataBase Management System<\/li>\n  <li>DC\t=\tData Center\t(in the context of Consul - a set of Consul nodes within a region)<\/li>\n  <li>DC\t=\tDomain Controller (Microsoft server that authenticates user identities and authorizes their access to resources)<\/li>\n  <li>DCAP\t=\tData-Centric Audit Protection<\/li>\n  <li>DCL\t=\tData Control Language (to GRANT, REVOKE SQL data)<\/li>\n  <li>DDP\t=\tDual Data Plane (Cisco Digital Twin running CI\/CD blue\/green patching)<\/li>\n  <li>DDD\t=\tDomain Driven Design<\/li>\n  <li>DDL\t=\tData Definition Language (to CREATE, ALTER, DROP SQL data)<\/li>\n  <li>DDoS\t=\tDistributed Denial of Service Attack<\/li>\n  <li>DDPM\t=\tDenoising Diffusion Probabilistic Models (Generative AI)<\/li>\n  <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>\n  <li>DEI\t=\tDiversity + Equity + Inclusion<\/li>\n  <li>DEK\t=\tData Encryption Key\t(secret generated from Customer Managed keys to protect data)<\/li>\n  <li>DES\t=\tDigital Encryption Standard\t(56 bits)<\/li>\n  <li>DEX\t=\tDecentralized Exchanges (Blockchain)<\/li>\n  <li>DFC\t=\tDistributed Fragments Cryptography (by AKeyless.io)<\/li>\n  <li>DFIR\t=\tDigital Forensics and Incident Response<\/li>\n  <li>DFS\t=\tDepth-First Search (programming algorithm)<\/li>\n  <li>DGO\t=\tData Governance Organization\/Officer (for security)<\/li>\n  <li>DHCP\t=\tDynamic Host Configuration Protocol\t(automatically assigns IP addresses to devices on a network)<\/li>\n  <li>DHS\t=\tDepartment of Homeland Security\t(US government organization)<\/li>\n  <li>DiFi = Distributed File Integrity<\/li>\n  <li>DiD = Defense in depth (for security)<\/li>\n  <li>DIR\t=\tDetection and Incident Response (security workflow)<\/li>\n  <li>DIY = Do It Yourself<\/li>\n  <li>DKIM\t=\tDomainKeys Identified Mail\t(provides public keys for signing of emails to prevent spoofing)<\/li>\n  <li>DLP\t=\tData Loss Prevention<\/li>\n  <li>DMARC = Domain-based Message Authentication Reporting and Conformance (policies for VMC about what to do when SPF and DKIM fails)<\/li>\n  <li>DMCA\t=\tDigital Millennium Copyright Act<\/li>\n  <li>DMI\t=\tDirect Media Interface (the bus connecting the chipset and the CPU)<\/li>\n  <li>DML\t=\tData Manipulation Language (to INSERT, UPDATE, DELETE SQL data)<\/li>\n  <li>DMS\t=\tDatabase Migration Service (AWS &amp; Microsoft Azure)<\/li>\n  <li>DMZ\t=\tDemilitarized Zone\t(networking)<\/li>\n  <li>DMV\t=\tDynamic management views (Microsoft SQL query lifecycle insights monitoring)<\/li>\n  <li>DNC\t=\tDo Not Connect<\/li>\n  <li>DNN\t=\tDeep Neural Network<\/li>\n  <li>DNS\t=\tDomain Name Service (networking)<\/li>\n  <li>DoD\t=\tDefinition of Done<\/li>\n  <li>DOD\t=\tDepartment of Defense\t(US government organization)<\/li>\n  <li>DODAF\t=\tDepartment of Defense Architecture Framework<\/li>\n  <li>DoH\t=\tDNS over HTTPS<\/li>\n  <li>DoR\t=\tDefinition of Ready<\/li>\n  <li>DPO = Direct Preference Optimization (technique to optimize models based on preference data or ranking)<\/li>\n  <li>DPIA\t=\tData Protection Impact Assessment (<a target=\"_blank\" href=\"https:\/\/ec.europa.eu\/newsroom\/article29\/items\/611236\">required by EU GDPR<\/a>)<\/li>\n  <li>DPL = Data Protection Officer (job role required by GDPR)<\/li>\n  <li>DQL\t=\tData Query Language (to SELECT SQL data)<\/li>\n  <li>DR\t=\tDisaster Recovery<\/li>\n  <li>DRAM = Dynamic Random Access Memory<\/li>\n  <li>DRI\t=\tDirectly Responsible Individual\t(Coined by Apple for the person to make sure that a task is completed)<\/li>\n  <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>\n  <li>DRP\t=\tDisaster Recovery Plan\t(to transition from alternative business processes back to regular processes.)<\/li>\n  <li>DRPO\t=\tDefense Research &amp; Development Organization<\/li>\n  <li>DRY\t=\tDon\u2019t Repeat Yourself<\/li>\n  <li>DRDoS\t=\tDistributed Reflection Denial-of-Service<\/li>\n  <li>DSC\t=\tDigital Signature Algorithm\t(algorithm for signatures)<\/li>\n  <li>DSC\t=\tDesired State Configuration (declarative DevOps)<\/li>\n  <li>DSL\t=\tDomain-Specific Language (custom data structure to control processing such as Apache Kafka streams)<\/li>\n  <li>DSL\t=\tDigital Subscriber Line<\/li>\n  <li>DSP = Digital Signal Processing<\/li>\n  <li>DSSE = Dead Simple Signing Envelope (signing methods and formats used by Secure Systems Lab)<\/li>\n  <li>DSSS\t=\tDirect-Sequence Spread Spectrum<\/li>\n  <li>DST\t=\tDaylight Saving Time<\/li>\n  <li>DTLS\t=\tDatagram Transport Layer Security<\/li>\n  <li>DUT\t=\tDevice Under Test<\/li>\n  <li>DVIA\t=\tDamn Vulnerable iOS Application (written in Swift, <a target=\"_blank\" href=\"https:\/\/github.com\/prateek147\/DVIA-v2\">on GitHub<\/a>)<\/li>\n  <li>DVWA\t=\tDamn Vulnerable Web Application (by OWASP)<\/li>\n  <li>DWaaS\t=\tData Warehouse as a Service<\/li>\n  <li>DWeb\t=\tDecentralized Web<\/li>\n  <li>DWBH\t=\tDon\u2019t Worry Be Happy (internet slang)<\/li>\n  <li>DX\t=\tDeveloper eXperience<\/li>\n<\/ul>\n\n<p><a name=\"E\"><\/a><\/p>\n<h3 id=\"e\">E<\/h3>\n\n<ul>\n  <li>E2E =\tEnd-to-End<\/li>\n  <li>E2EE  = End-to-End Encryption<\/li>\n  <li>EA\t=\tEnterprise Architect<\/li>\n  <li>EAL\t=\tEvaluation Assurance Level\t(1-7 of Common Criteria)<\/li>\n  <li>EAM\t=\tExternalized Authorization Management<\/li>\n  <li>EAP\t=\tExtensible Authentication Protocol\t(a framework for port-based access control that uses the same three primary components that are used in the RADIUS standard)<\/li>\n  <li>EAR\t=\tExport Administration Regulations\t(US)<\/li>\n  <li>EBITDA = Earnings Before Interest, Taxes, Depreciation, and Amortization<\/li>\n  <li>EBS\t=\tElastic Block Storage (Amazon)<\/li>\n  <li>EC2\t=\tElastic Cloud Compute (AWS)<\/li>\n  <li>ECR\t=\tElastic Container Registry\t(Amazon service)<\/li>\n  <li>ECS\t=\tElastic Container Service\t(Amazon service)<\/li>\n  <li>ECU\t=\tEC2 compute unit\t(Amazon)<\/li>\n  <li>EDA\t=\tEvent Driven Architecture\t(Serverless)<\/li>\n  <li>EDA = Exploratory Data Analysis (an iterative process to understand data through investigative analysis of the data)<\/li>\n  <li>EDM\t=\tExternal Dependency Management\t(NIST)<\/li>\n  <li>EDPB = European Data Protection Board (EU GDPR)<\/li>\n  <li>EDR\t=\tEndpoint Detection and Remediation (Defender for endpoints)<\/li>\n  <li>ECDSA\t=\tElliptic Curve Digital Signature Algorithm\t(algorithm for signatures)<\/li>\n  <li>ECU\t=\tElectronic Control Unit (Embedded system in autos)<\/li>\n  <li>EDA\t=\tExploratory Data Analysis (Microsoft MLOps)<\/li>\n  <li>EDR\t=\tEndpoint Detection and Response (security)<\/li>\n  <li>EDI\t=\tElectronic Data Interchange<\/li>\n  <li>EE\t=\tEnterprise Edition<\/li>\n  <li>EEA\t=\tEuropean Economic Area<\/li>\n  <li>EEC\t=\tEuropean Economic Community<\/li>\n  <li>EIN\t=\tEmployer Identification Number<\/li>\n  <li>EFA\t=\tElastic Fabric Adapter (AWS)<\/li>\n  <li>EFF\t=\tElectronic Frontier Foundation<\/li>\n  <li>EFS\t=\tElastic File System\t(Amazon file storage service for EC2 instances)<\/li>\n  <li>EFT\t=\tElectronic Funds Transfer<\/li>\n  <li>EiB\t=\tExbibyte (exa binary byte)<\/li>\n  <li>EIP\t=\tElastic IP<\/li>\n  <li>ELA\t=\tEnterprise License Agreement<\/li>\n  <li>ELB\t=\tElastic Load Balancer (AWS)<\/li>\n  <li>EMR\t=\tElastic Map Reduce\t(AWS)<\/li>\n  <li>EKM\t=\tExtensible Key Management\t(HashiCorp Vault feature)<\/li>\n  <li>EKS\t=\tElastic Kubernetes Service\t(AWS)<\/li>\n  <li>ELB\t=\tElastic Load Balancer<\/li>\n  <li>ELT\t=\tExtract Load Transform<\/li>\n  <li>EMCOMM\t=\tEmergency Communications<\/li>\n  <li>EMEA\t=\tEurope + Middle East + Africa<\/li>\n  <li>EMI\t=\tElectro-Magnetic Interference<\/li>\n  <li>EMP\t=\tElectro-Magnetic Pulse<\/li>\n  <li>EMR\t=\tElastic Map Reduce (AWS ETL)<\/li>\n  <li>EMRFS\t=\tEMRFS (on AWS S3 encryption at rest)<\/li>\n  <li>ENA\t=\tEnhanced Networking Adapter (in AWS EC2 AMI instances)<\/li>\n  <li>ENIAC\t=\tElectronic Numeric Integrator And Computer (first general purpose computer)<\/li>\n  <li>ENI\t=\tElastic Network Interface\t(AWS)<\/li>\n  <li>ENS = Ethereum Name Service (provides names to wallet addresses to simplify token transactions)<\/li>\n  <li>EPS\t=\tEarnings Per Share<\/li>\n  <li>ESPR = Ecodesign for Sustainable Products Regulation (European Green Deal launched December 2019)<\/li>\n  <li>ETL\t=\tExtract Transform and Load<\/li>\n  <li>EOF = End of File<\/li>\n  <li>EOQ\t=\tEnd of Quarter<\/li>\n  <li>EOM\t=\tEnd of Month<\/li>\n  <li>EO\t=\tExecutive Order (from US White House)<\/li>\n  <li>EOP\t=\tExchange Online Protection (Microsoft)<\/li>\n  <li>EOY\t=\tEnd of Year<\/li>\n  <li>EPSS\t=\tExploit Prediction Scoring System (to predict the likelihood of a vulnerability being exploited)<\/li>\n  <li>ERM\t=\tEnterprise Risk Management<\/li>\n  <li>ERP\t=\tEnterprise Resource Planning\t(SAP does this)<\/li>\n  <li>ESB = ???<\/li>\n  <li>eSRAM = embedded Static Random-Access Memory (TSMC memory coupled with the GPU of Microsoft Xbox One gaming console\u2019s architecture)<\/li>\n  <li>ESNI = Encrypted Server Name Indication (with TLS 1.3)<\/li>\n  <li>ETDR\t=\tEndpoint Threat Detection and Response (security)<\/li>\n  <li>ETW\t=\tEvent Tracing for Windows (Microsoft EventPipe)<\/li>\n  <li>EU\t=\tEuropean Union<\/li>\n  <li>EUC = End-User Computing (includes SSO, MFA, RBAC, IAM)<\/li>\n  <li>EUV = Extreme Ultraviolet (lithography to make semiconductor chips)<\/li>\n  <li>EV\t=\tExtended Validation\t(certificate)<\/li>\n  <li>EVM\t=\tEthereum Virtual Machine (Ethereum)<\/li>\n  <li>EVMS\t=\tEthereum Virtual Machine Suite (Ethereum)<\/li>\n  <li>EVMOS\t=\tEthereum Virtual Machine Operating System (Ethereum)<\/li>\n<\/ul>\n\n<p><a name=\"F\"><\/a><\/p>\n<h3 id=\"f\">F<\/h3>\n\n<ul>\n  <li>FaaS\t=\tFunctions as a Service<\/li>\n  <li>FAISS\t=\t<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>\n  <li>FAQ\t=\tFrequently Asked Questions<\/li>\n  <li>FBL\t=\tFeedback Loop<\/li>\n  <li>FCEB\t=\tFederal Civilian Executive Branch (US government departments and agencies)<\/li>\n  <li>FCI\t=\tFailover Cluster Instance (Microsoft SQL Server)<\/li>\n  <li>FDE\t=\tFull Disk Encryption<\/li>\n  <li>FEA\t=\tFederal Enterprise Architecture (by OMB)<\/li>\n  <li>FEDRAMP\t=\tFederal Risk and Authorization Management Program<\/li>\n  <li>FEA = Finite Element Analysis (generate a computer model of components within actual system to analyze response to stresses)<\/li>\n  <li>FEM = Finite Element Method (method for numerically solving differential equations)<\/li>\n  <li>FFB = Force Feedback (on gaming consoles)<\/li>\n  <li>FFT = Fast Fourier transform<\/li>\n  <li>FGAC\t=\tFine-grained Access Control (AWS)<\/li>\n  <li>FHE\t=\tFully Homomorphic Encryption<\/li>\n  <li>FHRP\t=\tFirst Hop Redundancy Protocol (for shared IP routing redundancy)<\/li>\n  <li>FHS = Filesystem Hierarchy Standard (directory structure of Linux distributions)<\/li>\n  <li>FIDO2\t=\tFast IDentity Online\t(Spec for web authorization using devices with PKI instead of passwords)<\/li>\n  <li>FIFO\t=\tFirst In - First Out<\/li>\n  <li>FIM\t=\tFederated Identity Management<\/li>\n  <li>FIM\t=\tFile Integrity Monitoring\t(for Intrusion Detection)<\/li>\n  <li>FinFET\t=\tFin (as in fish) FET<\/li>\n  <li>FIPS = Federal Information Processing Standards (aligns with ISO\/IEC 19790 to specify encryption, key management, etc. to protect data over 4 levels)<\/li>\n  <li>FISMA\t=\tFederal Information Security Management Act (US government)<\/li>\n  <li>FLC = Fuzzy Logic Control<\/li>\n  <li>FM\t=\tFoundation Model (LLM for Generative AI)<\/li>\n  <li>FMCG\t=\tFast-Moving Consumer Goods<\/li>\n  <li>FN\t=\tFalse Negative\t(test result that missed catching a bad\/malicious sample)<\/li>\n  <li>FOMO\t=\tFear Of Missing Out<\/li>\n  <li>FP\t=\tFalse Positive\t(test result that identified a legitimate sample as bad\/malicious)<\/li>\n  <li>FPGA = <a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Field-programmable_gate_array\">Field Programmable Gate Array<\/a><\/li>\n  <li>FPS\t=\tFlexible Payments Service<\/li>\n  <li>FQDN\t=\tFully-Qualified Domain Name<\/li>\n  <li>FPV = First Person View (in 3D games)<\/li>\n  <li>FRAP = Facilitated Risk Analysis Process (analyze impact of each individual org unit)<\/li>\n  <li>FSFET = ForkSheet Field-Effect Transistor<\/li>\n  <li>FTE\t=\tFull Time Employee\/Equivalent<\/li>\n  <li>FTK\t=\tForensic ToolKit (drive imager tool from AccessData to preserve evidence)<\/li>\n  <li>FQDN\t=\tFully Qualified Domain Name<\/li>\n  <li>FSBP = Foundational Security Best Practices (defined by AWS)<\/li>\n  <li>FSD\t=\tFull Self-Driving (by autonomous vehicles)<\/li>\n  <li>FSM\t=\tFinite State Machine<\/li>\n  <li>FTW\t=\tFor The Win (a big contributor to great success)<\/li>\n  <li>FYE\t=\tFiscal Year End<\/li>\n  <li>FYI\t=\tFor Your Information<\/li>\n  <li>FUD\t=\tFear Uncertainty and Doubt<\/li>\n<\/ul>\n\n<p><a name=\"G\"><\/a><\/p>\n<h3 id=\"g\">G<\/h3>\n\n<ul>\n  <li>GAPP\t=\tGenerally Accepted Privacy Principles\t(developed by accountants)<\/li>\n  <li>GA\t=\tGeneral Availability<\/li>\n  <li>GAA = Gate All-Around (transitor technology used in FinFET &amp; MBCFET)<\/li>\n  <li>GAI\t=\tGenerative Artificial Intelligence<\/li>\n  <li>GAM\t=\tGlobal Account Manager\t(job role)<\/li>\n  <li>GANS\t=\tGenerative Adversarial Networks (Generative AI)<\/li>\n  <li>GAR\t=\tGeoogle Artifact Registry (in GCP)<\/li>\n  <li>GB\t=\tGigabytes\t(173741824 bytes or 1024 megabytes)<\/li>\n  <li>GCE\t=\tGoogle Compute Engine<\/li>\n  <li>GCN = Graph Neural Network<\/li>\n  <li>GCM\t=\tGalois\/Counter Mode\t(mode of operation for symmetric-key cryptographic block ciphers)<\/li>\n  <li>GCP\t=\tGoogle Cloud Platform<\/li>\n  <li>GDPR\t=\tGeneral Data Protection Regulation\t(EU Regulation 2016\/679)<\/li>\n  <li>GEOINT\t=\tGeospatial Intelligence\t(from analysis and visualization of security activities on a map)<\/li>\n  <li>GG\t=\tGood Game (gamer digital handshake to convey sportsmanship)<\/li>\n  <li>GGML = GPT-Generated Model Language (Early Tensor library designed for machine learning large models at high performance)<\/li>\n  <li>GGUF = GPT-Generated Unified Format (model for sharing LLMs with Ollama or LM Studio using JSON-RPC)<\/li>\n  <li>GHA\t=\tGitHub Actions\t(SVM cloud purchased by Microsoft)<\/li>\n  <li>GID\t=\tGroup Identifier\t(used in Kubernetes)<\/li>\n  <li>GIL = Global Interpreter Lock (removed in Python 3.13)<\/li>\n  <li>GKE\t=\tGoogle Kubernetes Engine\t(manages container images within Google cloud)<\/li>\n  <li>GKS\t=\tGoogle Kubernetes Service\t(runs container images within Google-managed Kubernetes)<\/li>\n  <li>GLB\t=\tGlobal Load Balancing<\/li>\n  <li>GLBA\t=\tGramm-Leach-Bliley Act (US regulation of financial data privacy protection)<\/li>\n  <li>GNM\t=\tGlobal Network Manager\t(HashiCorp product feature)<\/li>\n  <li>GNU\t=\tGNU is Not Unix\t(a recursive acronym for the set of commands in Linux Bash scripts)<\/li>\n  <li>GPG\t=\tGNU Privacy Guard\t(software program to handle encryption)<\/li>\n  <li>GPIO\t=\tGeneral Purpose Input\/Output (on an Arduino board)<\/li>\n  <li>GPO\t=\tGroup Policy Object<\/li>\n  <li>GPS\t=\tGlobal Positioning System<\/li>\n  <li>GPT\t=\tGenerative Pre-trained Transformer (LLM used in ChatGPT by OpenAI for GenAI)<\/li>\n  <li>GPT\t=\tGUID Partition Table (used with UEFI)<\/li>\n  <li>GQA = Generalized Question Answering (a dataset for visual question answering tasks)<\/li>\n  <li>GRC\t=\tGovernance and Risk and Compliance<\/li>\n  <li>gRPC =\tGlobal Remote Procedure Call\t(a protocol to connect services)<\/li>\n  <li>GRPO = Generalized Reinforcement Policy Optimization (advanced variant in reinforcement learning optimization)<\/li>\n  <li>GRS\t=\tGeo-Redundant Storage (replication of 3 copies in an Availability Zone in each of two Azure regions)<\/li>\n  <li>GSI\t=\tGlobal Secondary Index (AWS DynamoDB)<\/li>\n  <li>GSI\t=\tGlobal System Integrator<\/li>\n  <li>GTM\t=\tGo To Market<\/li>\n  <li>GUI\t=\tGraphical User Interface<\/li>\n  <li>GUID\t=\tGlobally Unique Identifier (a code generated to be unique across space and time for use as an object identifier)<\/li>\n  <li>GW\t=\tGateway<\/li>\n  <li>GZRS\t=\tGeo-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>\n<\/ul>\n\n<p><a name=\"H\"><\/a><\/p>\n<h3 id=\"h\">H<\/h3>\n\n<ul>\n  <li>H2M\t=\tHuman to Machine\t(interface)<\/li>\n  <li>HA\t=\tHigh Availability<\/li>\n  <li>HADR\t=\tHigh Availability\tDisaster Recovery<\/li>\n  <li>HAL = Hardware Abstraction Layer<\/li>\n  <li>HAML = HTML Abstraction Markup Language (a template used in Ruby Rails views to simplify writing HTML)<\/li>\n  <li>HANA\t=\tHigh-performance ANalytic Application\t(SAP\u2019s in-memory column-oriented relational DBMS)<\/li>\n  <li>HBD = Happy Birth Day<\/li>\n  <li>HBI\t=\tHigh Business Impact (flag for Azure to add encryption and limit diagnostics collection on sensitive data)<\/li>\n  <li>HNSW = Hierarchical Navigable Small World (graphs)<\/li>\n  <li>HCL\t=\tHashiCorp Configuration Language<\/li>\n  <li>HD\t=\tHigh Definition<\/li>\n  <li>HDFS\t=\tHadoop Distributed File System<\/li>\n  <li>HEC\t=\tHTTP Event Collector (Splunk)<\/li>\n  <li>HCM\t=\tHuman Capital Management\t(system for HR processes)<\/li>\n  <li>HCP\t=\tHashiCorp Cloud Provider<\/li>\n  <li>HCS\t=\tHashiCorp Consul Service\t(SaaS on Azure)<\/li>\n  <li>HE\t=\tHomomorphic Encryption  (Privacy-Preserving technology)<\/li>\n  <li>HIDS\t=\tHost-Based Intrusion Detection System<\/li>\n  <li>HIPAA\t=\tHealth Insurance Portability and Accountability Act<\/li>\n  <li>HiPPO\t=\tHighest Paid Person\u2019s Opinion (deference between high and low status employees)<\/li>\n  <li>HLS\t=\tHTTP Live Streaming (Apple video streaming protocol)<\/li>\n  <li>HMI\t=\tHuman-Machine Interface<\/li>\n  <li>HMM = Hidden Markov Model (AI used for speech recognition)<\/li>\n  <li>HNDL = Harvest Now, Decrypt Later (store encrypted data for decrypting later using post-quantum computers)<\/li>\n  <li>HPA\t=\tHorizontal Pod Autoscaler\t(Kubernetes)<\/li>\n  <li>HPC\t=\tHigh-Performance Compute<\/li>\n  <li>HQL = Hibernate Query Language (object-oriented ORM SQL with inheritance polymorphism used by Java)<\/li>\n  <li>HR\t=\tHuman Resources<\/li>\n  <li>HRMS\t=\tHuman Resource Management System<\/li>\n  <li>HRU\t=\tHigh-Risk User(s)<\/li>\n  <li>HSM\t=\tHardware Security Module<\/li>\n  <li>HSTS\t=\tHTTP Strict Transport Security  (web security policy that protects HTTPS websites against MITM attacks)<\/li>\n  <li>HTAP\t=\tHybrid Transaction and Analytics Processing (Microsoft Azure Synapse Link capability)<\/li>\n  <li>HTML\t=\tHyperText Markup Language<\/li>\n  <li>HTTPS\t=\tHyperText Transfer Protocol Secure\t(the protocol that uses port 443)<\/li>\n  <li>HUMINT\t=\tHuman Intelligence\t(from human sources such as interviews or spying)<\/li>\n  <li>HVA\t=\tHigh-Value Asset<\/li>\n  <li>HVNC = Hidden Virtual Network Computing (used by ShadowVault malware to provide unauthorized access to vulnerable machines)<\/li>\n  <li>HVP\t=\tHybrid Vault Platform (AKeyless Encryption as a Service)<\/li>\n  <li>HVM\t=\tHardware Virtual Machine<\/li>\n  <li>HVN\t=\tHashiCorp Virtual Network<\/li>\n  <li>HXM\t=\tHuman Management\t(SAP SuccessFactors HRMS suite)<\/li>\n<\/ul>\n\n<p><a name=\"I\"><\/a><\/p>\n<h3 id=\"i\">I<\/h3>\n\n<ul>\n  <li>i18n\t=\tInternationalization\t(numeronym - 18 letters between i and n)<\/li>\n  <li>IA\t=\tInteroperability Agreement\t(between enterprises)<\/li>\n  <li>IaaS\t=\tInfrastructure as a Service<\/li>\n  <li>IaC\t=\tInfrastructure as Code<\/li>\n  <li>IAB\t=\tInternet Architecture Board\t(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>\n  <li>IAM\t=\tIdentity and Access Management<\/li>\n  <li>IAP\t=\tIdentity-Aware Proxy (Google Cloud)<\/li>\n  <li>IASAE\t=\tInformation Assurance Security Architecture and Engineering<\/li>\n  <li>IAST\t=\tInteractive Application Security Testing<\/li>\n  <li>IBN\t=\tInternet-based Networking (for SDN)<\/li>\n  <li>IC\t=\tIntegrated Circuit<\/li>\n  <li>ICFR\t=\tInternal Control over Financial Reporting<\/li>\n  <li>ICMP\t=\tInternet Control Message Protocol\t(used by the Linux ping command)<\/li>\n  <li>ICS\t=\tIndustrial Control System\t(aka Operational Technologies)<\/li>\n  <li>ICT\t=\tInformation and Communication Technology<\/li>\n  <li>ICT\t=\tIdeal Cycle Time (maximum achievable performance for OEE Fully Productive Time)<\/li>\n  <li>ICYMI\t=\tIn Case You Missed It<\/li>\n  <li>ID\t=\tIdentifier<\/li>\n  <li>IDaaS\t=\tIdentity as a Service (for central management of users and groups)<\/li>\n  <li>IDE\t=\tIntegrated Development Environment<\/li>\n  <li>IDN = Unicode Domain Names<\/li>\n  <li>IDOR\t=\tInsecure Direct Object Reference<\/li>\n  <li>IdP\t=\tIdentity Provider\t(such as Okta)<\/li>\n  <li>IDP\t=\tInternal Developer Platform<\/li>\n  <li>IDS\t=\tIntrusion Detection System\t(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>\n  <li>IDS = Influencer Dynamics Simulator (predicts how followers react to influencers)<\/li>\n  <li>IEC\t=\tInternational Electrotechnical Commission (counterpart to the US NIST)<\/li>\n  <li>IEM\t=\tInfrastructure Event Management\t(AWS service to ensure high traffic can be accommodated)<\/li>\n  <li>IETF\t=\tInternet Engineering Task Force<\/li>\n  <li>IYDMMA\t=\tIf you don\u2019t mind me asking (chat slang)<\/li>\n  <li>IFS\t=\tInternal Field Separator (to define character used to split strings in Bash shell scripts)<\/li>\n  <li>IGA\t=\tIdentity Governance and Administration<\/li>\n  <li>IGPT\t=\tInsulated Gate Bipolar Transistor<\/li>\n  <li>IGW\t=\tInternet Gateway<\/li>\n  <li>IIFE = Immediately Invoked Function Expression (by Webpack)<\/li>\n  <li>IIoT\t=\tIndustrial Internet of Things<\/li>\n  <li>IKE\t=\tInternet Key Exchange<\/li>\n  <li>ILB\t=\tInternal Load Balancer (Microsoft)<\/li>\n  <li>ILT\t=\tInstructor-Led Training<\/li>\n  <li>IM\t=\tInternet Messaging<\/li>\n  <li>IMINT\t=\tImagery (Photography) Intelligence\t(from satellite or drone photos)<\/li>\n  <li>IMHO\t=\tIn My Humble Opinion<\/li>\n  <li>IMO\t=\tIn My Opinion<\/li>\n  <li>IMSI\t=\tInternational Mobile Subscriber Identity (15-digit ID unique to each mobile phone)<\/li>\n  <li>IOA\t=\tIndicator of Attack<\/li>\n  <li>IOC\t=\tIndicator of Compromise<\/li>\n  <li>IOPS\t=\tInput Output Per Second\t(AWS)<\/li>\n  <li>iOS\t=\t(Mobile operating system for Apple iPhone)<\/li>\n  <li>IOT\t=\tInternet of Things<\/li>\n  <li>IP\t=\tInternet Protocol<\/li>\n  <li>IPAM\t=\tIP Address Manager\t(AWS feature that manages CIDR ranges)<\/li>\n  <li>IPFS  = InterPlanetary File System (a decentralized, peer-to-peer file storage protocol to store and access content without a central server)<\/li>\n  <li>IPC\t=\tInter-Process Communication<\/li>\n  <li>IPE\t=\tInformation Produced by the Entity<\/li>\n  <li>IPS\t=\tIntrusion Protection System\t(detect or prevent brute force &amp; other attacks on security)<\/li>\n  <li>IPsec\t=\tInternet Protocol security<\/li>\n  <li>IPO\t=\tInitial Public Offering<\/li>\n  <li>IR\t=\tIntegration Runtime (compute infrastructure used by Microsoft\u2019s Azure Data Factory)<\/li>\n  <li>IR\t=\tIncident Response (Security)<\/li>\n  <li>IRDP\t=\tICMP Router Discovery Protocol<\/li>\n  <li>IRL\t=\tIn Real Life (internet slang)<\/li>\n  <li>IRM\t=\tInformation Rights Management<\/li>\n  <li>IRM\t=\tInsider Risk management (Microsoft 365 compliance solution)<\/li>\n  <li>IRT\t=\tIncident Response Team<\/li>\n  <li>ISAC\t=\tInformation Analysis Sharing Centres (for threat intelligence)<\/li>\n  <li>ISCP\t=\tInformation System Contingency Plan<\/li>\n  <li>ISBN\t=\tIntelligent Spend and Business Network (SAP offering)<\/li>\n  <li>ISA\t=\tInstruction Set Architecture (defines interface between software and different implementations of a processor)<\/li>\n  <li>ISD\t=\tInternet Service Provider<\/li>\n  <li>ISMS\t=\tInformation Security Management System (ISO 27001)<\/li>\n  <li>ISO\t=\tInternational Standards Organization<\/li>\n  <li>ISP\t=\tInternet Service Provider\t(company providing access to the internet)<\/li>\n  <li>ISQ = International System of Quantities<\/li>\n  <li>ISSO\t=\tInformation System Security Officer (in RMF)<\/li>\n  <li>ISV\t=\tIndependent Software Vendor<\/li>\n  <li>IT\t=\tInformation Technologies<\/li>\n  <li>ITAR\t=\tInternational Traffic in Arms Regulations\t(US)<\/li>\n  <li>ITIL\t=\tInformation Technology Infrastructure Library<\/li>\n  <li>ITSM\t=\tIT Service Management\t(implemented of Service Now)<\/li>\n  <li>ITU\t=\tInternational Telecommunication Union\t(defined X.509 certificate format)<\/li>\n<\/ul>\n\n<p><a name=\"J\"><\/a><\/p>\n<h3 id=\"j\">J<\/h3>\n\n<ul>\n  <li>J2EE\t=\tJava Enterprise Edition<\/li>\n  <li>JIT\t=\tJust-In-Time (access for Zero Trust)<\/li>\n  <li>JEA\t=\tJust-Enough-Access (for Zero Trust)<\/li>\n  <li>JND = Just Noticeable Difference (The minimum amount of change or difference required for a change to be perceptible to the human eye)<\/li>\n  <li>JOSE\t=\tJavascript Object Signing and Encryption (standard)<\/li>\n  <li>JSON\t=\tJavaScript Notation\t(data format)<\/li>\n  <li>JWT\t=\tJSON Web Token\t(Internet standard for creating data with optional signature and\/or optional encryption whose payload holds JSON that asserts some number of claims)<\/li>\n<\/ul>\n\n<p><a name=\"K\"><\/a><\/p>\n<h3 id=\"k\">K<\/h3>\n\n<ul>\n  <li>k8s\t=\tKubernetes\t(numeronym of 8 letters between k and s)<\/li>\n  <li>kanban\t=\tJapanese word for visual signal\t(adopted for managing software workflow)<\/li>\n  <li>KCL\t=\tKinesis Client Library (AWS)<\/li>\n  <li>KDC\t=\tKey Distribution Center<\/li>\n  <li>KEDA = Kubernetes-based Event Driven Autoscaler<\/li>\n  <li>KEK\t=\tKey Encryption Key\t(key to encrypt the DEK)<\/li>\n  <li>KMIP\t=\tKey Management Interoperability Protocol<\/li>\n  <li>KMS\t=\tKey Management Service\t(AWS)<\/li>\n  <li>KNOB\t=\tKey Negotiation of Bluetooth  (MITM attack on paired Bluetooth devices\u2019 security mechanisms)<\/li>\n  <li>KOL = Key Opinion Leader<\/li>\n  <li>KPI\t=\tKey Performance Indicator<\/li>\n  <li>KPL\t=\tKinesis Python Library (AWS)<\/li>\n  <li>KPU\t=\tKinesis Processing Units (AWS streaming memory and compute)<\/li>\n  <li>KQL\t=\tKusto Query Language (to access Microsoft Azure Data Explorer)<\/li>\n  <li>KTLO\t=\tKeep\/Keeping The Lights On (minimal necessary effort and income)<\/li>\n  <li>KTS\t=\tKubernetes Threat Detection\t(Google service)<\/li>\n  <li>KRI\t=\tKey Recovery Information<\/li>\n  <li>KSAs\t=\tKnowledge, Skills, and Abilities (Work Roles)<\/li>\n  <li>KV\t=\tKey-Value\t(data storage format)<\/li>\n  <li>KYC\t=\tKnow Your Customer (requiring identity verification)<\/li>\n<\/ul>\n\n<p><a name=\"L\"><\/a><\/p>\n<h3 id=\"l\">L<\/h3>\n\n<ul>\n  <li>l18n\t=\tLocalization\t(numeronym of 18 letters between l and n)<\/li>\n  <li>LAM = Large Action Models (multihop &amp; multimodal data type for agentic\/action on LLMs)<\/li>\n  <li>LAMP\t=\tLinux OS + Apache web server + MySQL DB + PHP\/Perl\/Python\t(open-source web development technology stack)<\/li>\n  <li>LAN\t=\tLocal Area Network<\/li>\n  <li>LCEL = LangChain Expression Language (chain series of AI models and parsers)<\/li>\n  <li>LCM = Large Concepts Model (Meta\u2019s approach for reasoning)<\/li>\n  <li>LDAP\t=\tLightweight Directory Access Protocol\t(used by Linux to manage user and group access)<\/li>\n  <li>LED\t=\tLight-Emitting Diode<\/li>\n  <li>LF-TBAC\t=\tLake Formation tag-based access control (AWS)<\/li>\n  <li>LGPD\t=\tLei Geral de Prote\u00e7\u00e3o de Dados Pessoais (privacy\/data protection law in Brazil)<\/li>\n  <li>LGTM = Looks Good To Me<\/li>\n  <li>LGTM = Loki + Grafana + Tempo + Mimir (Grafana\u2019s integrated stack for logs, metrics, and traces to be collected and visualized)<\/li>\n  <li>LI\t=\tLead Implementer<\/li>\n  <li>LIFO\t=\tLast In - Last Out<\/li>\n  <li>LIMS = Laboratory Information Management System<\/li>\n  <li>LINDDUN = framework to ensure privacy<\/li>\n  <li>LLC\t=\tLimited Liability Company<\/li>\n  <li>LLM\t=\tLarge Language Model (such as GPT-x for Generative AI)<\/li>\n  <li>LMM\t=\tLarge Multimodal Model (Meta\u2019s approach for reasoning)<\/li>\n  <li>LLMNR\t=\tLink-Local Multicast Name Resolution (Microsoft protocol for name resolution)<\/li>\n  <li>LMS\t=\tLearning Management System<\/li>\n  <li>LOL\t=\tLaughing Out Loud (internet slang)<\/li>\n  <li>LoRA = Low-Rank Adaptation (reducing the number of trainable parameters and enabling efficient adaptations by decomposing weight matrices into low-rank matrices)<\/li>\n  <li>LotL\t=\tLiving off the Land (type of attack)<\/li>\n  <li>LPU = Language Processing Unit (<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=8wSH4XukcH8\">AI Agent OS component<\/a>)<\/li>\n  <li>LRM\t=\tLarge Reasoning Models<\/li>\n  <li>LRS\t=\tLocally-Redundant Storage (within same Azure Availability Zone)<\/li>\n  <li>LSD\t=\tLeast Significant Digit<\/li>\n  <li>LSI\t=\tLocal Secondary Index (AWS DynamoDB)<\/li>\n  <li>LTM\t=\tLast Twelve Months<\/li>\n  <li>LUKS\t=\tLinux Unified Key Setup (root + boot + swap partition encryption)<\/li>\n  <li>LUN\t=\tLogical Unit Number (within a physical storage device volume manager)<\/li>\n  <li>LVM = Logical Volume Management<\/li>\n  <li>LVM\t=\tLarge Vision Model (such as Stable Difussion for Generative AI)<\/li>\n  <li>LWE\t=\tLearning with errors (cryptographic algorithm)<\/li>\n<\/ul>\n\n<p><a name=\"M\"><\/a><\/p>\n<h3 id=\"m\">M<\/h3>\n\n<ul>\n  <li>m8g\t=\tMonitoring\t(numeronym - 8 letters between m and g)<\/li>\n  <li>M&amp;A\t=\tMergers and Acquisitions (business)<\/li>\n  <li>MAC\t=\tMedia Access Control\t(address of NIC card)<\/li>\n  <li>MAC\t=\tMessage Authentication Code\t(a tag appended to a message to verify its authenticity)<\/li>\n  <li>MAE = Mean Absolute Error (to calculate the accuracy of a regression model)<\/li>\n  <li>MAGA = Make America Racist Again<\/li>\n  <li>MAP\t=\tMinimum Acceptable Product<\/li>\n  <li>MASINT\t=\tMeasurement and Signatures Intelligence\t(of weapons capabilities and industrial activities)<\/li>\n  <li>MASTG = Mobile Application Security Testing Guide (defined by OWASP)<\/li>\n  <li>MASVS\t=\tMobile Application Security Verification Standard (defined by OWASP)<\/li>\n  <li>MBR\t=\tMaster Boot Record<\/li>\n  <li>MBCFET\t=\tMulti-Bridge Channel Field Effect Transister (Samsung)<\/li>\n  <li>MCSB\t=\tMicrosoft Cybersecurity Security Benchmark (best-practice framework using Microsoft Defender for Cloud. Successor of Azure Security Benchmark v3)<\/li>\n  <li>MCR\t=\tMicrosoft Container Registry<\/li>\n  <li>MCRA\t=\tMicrosoft Cybersecurity Reference Architectures<\/li>\n  <li>MCU\t=\tMicroprocessor Unit (integrated circuit that contains one or more CPUs and supporting electronics for general-purpose computing)<\/li>\n  <li>MDFC\t=\tMicrosoft Defender for Cloud<\/li>\n  <li>MDP = Markov Decision Process<\/li>\n  <li>MDT\t=\tMicrosoft Deployment Toolkit (to install Windows 11 from file shares)<\/li>\n  <li>MDTI\t=\tMicrosoft Defender Threat Intelligence<\/li>\n  <li>MDM\t=\tMaster Data Management (for a single source of truth about critical corporate data)<\/li>\n  <li>MDM\t=\tMobile Device Management (for security)<\/li>\n  <li>MDW\t=\tModern Data Warehouse (Microsoft)<\/li>\n  <li>MDR\t=\tManaged Detection and Response (for security)<\/li>\n  <li>MDX\t=\tMultidimensional Expressions  (multi-axis formula language for Microsoft SSAS to retrieve OLAP cubes)<\/li>\n  <li>MEF\t=\tMission Essential Functions<\/li>\n  <li>MEI = Merit, Excellence, and Intelligence (anti DEI)<\/li>\n  <li>MELT\t=\tMetrics + Errors + Traces + Logs (for Observability)<\/li>\n  <li>MES = Manufacturing Execution System (track material movement through the shop floor)<\/li>\n  <li>MFA\t=\tMulti-Factor Authentication\t(security)<\/li>\n  <li>MFS = Mutable File System (to read and write files on web3 IPFS)<\/li>\n  <li>MGT = Microsoft Graph Toolkit (to read the Outlook calendars and log of actions by each Microsoft user)<\/li>\n  <li>MHA = Multi-Head Attention (traditional mechanism to MQA in transformers where the model jointly attend to information from different representation subspaces)<\/li>\n  <li>MIG\t=\tManaged Instance Group (for autoscaling within Google Cloud)<\/li>\n  <li>MIP\t=\tMicrosoft Information Protection (sensitivity labels)<\/li>\n  <li>MIT\t=\tMost Important Task<\/li>\n  <li>MitC\t=\tMan-in-the-Cloud\t(performed by abusing cloud file synchronization services such as Google Drive or DropBox for Data compromise, command and control (C&amp;C), data exfiltration, and remote access)<\/li>\n  <li>MitB\t=\tMan-in-the-Browser\t(attack vector such as Port stealing that exploits the binding between a port and a media access control (MAC) address)<\/li>\n  <li>MitM\t=\tMan-in-the-Middle\t(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>\n  <li>MISP = Malware Information Sharing Platform (open-source threat intelligence platform)<\/li>\n  <li>ML\t=\tMachine Learning<\/li>\n  <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>\n  <li>MLDR = Machine Learning Detection and Response<\/li>\n  <li>MLM\t=\tMasked Language Model (such as BERT for Natural Language Processing)<\/li>\n  <li>MLLP = Minimal Lower Layer Protocol (the leading and trailing delimiter HL7v2 healthcare data is transmitted using TCP\/IP within VPNs)<\/li>\n  <li>MMU = Memory Management Unit (to manage VM memory)<\/li>\n  <li>MNC\t=\tMulti-National Corporation<\/li>\n  <li>MNO = Mobile Network Operator (ATT, Verizon, T-Mobile)<\/li>\n  <li>MOD\t=\tManager on Duty (incident manager - security and hospitality industry)<\/li>\n  <li>MoE = Mixture of Experts (in AI)<\/li>\n  <li>MOSFET = Metal Oxide Field Effect Transitor<\/li>\n  <li>MPC = Model Predictive Control<\/li>\n  <li>MPP\t=\tMassively Parallel Processing (on databases)<\/li>\n  <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>\n  <li>MRO\t=\tMethod 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>\n  <li>MS\t=\tMicrosoft<\/li>\n  <li>MSA\t=\tMaster Service Agreement<\/li>\n  <li>MSK\t=\tManaged Streaming for Kafka (AWS)<\/li>\n  <li>MSI\t=\tManaged Service Identity<\/li>\n  <li>MTD\t=\tMonth-To-Date<\/li>\n  <li>mTLS\t=\tMutual TLS<\/li>\n  <li>MOR\t=\tMinimum Operating Requirements\t(describes the minimum environmental and connectivity requirements in order to operate computer equipment)<\/li>\n  <li>MOSFET = Metal Oxide Semiconductor Field Effect Transitor<\/li>\n  <li>MSI\t=\tMicrosoft Software Installer\t(file extension for Microsoft Windows installer files)<\/li>\n  <li>MTD\t=\tMaximum Tolerable Downtime<\/li>\n  <li>MQTT\t=\tMQ Telemetry Transport<\/li>\n  <li>MSAL\t=\tMicrosoft Authentication Libraries<\/li>\n  <li>MSD\t=\tMost Significant Digit<\/li>\n  <li>MSE = Mean Squared Error (to calculate the accuracy of a regression model)<\/li>\n  <li>MSK\t=\tManaged Streaming for Kafka (AWS using Apache)<\/li>\n  <li>MSP\t=\tManaged Service Provider<\/li>\n  <li>MSSP\t=\tManaged Security Service Provider (A provider of outsourced SOC services)<\/li>\n  <li>MTA\t=\tMail Transfer Agent<\/li>\n  <li>MTBF\t=\tMean Time Between Failures<\/li>\n  <li>MTTA\t=\tMean Time To Acknowledge<\/li>\n  <li>MTTD\t=\tMean Time To Detect\t(anomaly)<\/li>\n  <li>MTTI\t=\tMean Total Time of Impact (to operations)<\/li>\n  <li>MTTR\t=\tMean Time To Restore\/Remediate<\/li>\n  <li>MTU\t=\tMaximum Transmission Unit\t(networking)<\/li>\n  <li>MVP\t=\tMinimum Viable Product<\/li>\n  <li>MVP\t=\tMost Valuable Professional (Microsoft)<\/li>\n  <li>MY\t=\tMulti-Year<\/li>\n  <li>MVNO = Mobile Virtual Network Operator<\/li>\n  <li>MYOB\t=\tMind Your Own Business (internet slang)<\/li>\n<\/ul>\n\n<p><a name=\"N\"><\/a><\/p>\n<h3 id=\"n\">N<\/h3>\n\n<ul>\n  <li>NA\t=\tNot Applicable<\/li>\n  <li>NA\t=\tNorth America (United States)<\/li>\n  <li>NAC\t=\tNetwork Access Control<\/li>\n  <li>NAC\t=\tNetwork Admission Control\/Controller\t(Cisco)<\/li>\n  <li>NAD\t=\tNetwork Access Devices<\/li>\n  <li>NAS\t=\tNetwork Attach Storage (device)<\/li>\n  <li>NAT\t=\tNetwork Address Translation\t(allows devices on a private network to communicate with a public network through a networking gateway)<\/li>\n  <li>NB\t=\tNo Problem<\/li>\n  <li>NDA\t=\tNon-Disclosure Agreement<\/li>\n  <li>NDAA\t=\tNational Defense Authorization Act of 2020 and 2021<\/li>\n  <li>NDE\t=\tNet Dollar Expansion<\/li>\n  <li>NER = Named Entity Recognition (identifying and extracting names of persons, organizations, locations, dates from text and media)<\/li>\n  <li>NeRF = Neural Radiance Fields (for generating 3D content from 2D images)<\/li>\n  <li>NHI\t=\t<a target=\"_blank\" href=\"https:\/\/cloudsecurityalliance.org\/search?s=NHI#\">Non-Human Identities (security)<\/a><\/li>\n  <li>NDI = National Defense Information (classified secrets)<\/li>\n  <li>NDRR\t=\tNet Dollar Retention Rate<\/li>\n  <li>NER = Named Entity Recognition (AI)<\/li>\n  <li>NFR\t=\tNon-Functional Requirements<\/li>\n  <li>NFS\t=\tNetwork File System<\/li>\n  <li>NFT\t=\tNon-fungible Tokens (currently defined as investments rather than consumer goods)<\/li>\n  <li>NFV\t=\tNetwork Function Virtualization<\/li>\n  <li>NGC = NVIDIA GPU Cloud<\/li>\n  <li>NGFW\t=\tNext-Generation firewall\t(Originally from Palo Alto - it examines application data to filter traffic at the highest application layer of networks)<\/li>\n  <li>NIA\t=\tNetwork Interface\t(HashiCorp product feature)<\/li>\n  <li>NIACAP\t=\tNational Information Assurance Certification and Accreditation Process<\/li>\n  <li>NIAP\t=\tNational Information Assurance Partnership (Common Criteria)<\/li>\n  <li>NIC\t=\tNetwork Interface Card<\/li>\n  <li>NIM\t=\tNVIDIA Inference Microservices<\/li>\n  <li>NISQ\t=\tNoisy Intermediate-Scale Quantum (device)<\/li>\n  <li>NIST\t=\tNational Institute of Standards and Technology\t(US)<\/li>\n  <li>NLB\t=\tNetwork Load Balancer\t(Amazon)<\/li>\n  <li>NLP\t=\tNatural Language Processing (interaction between computers and human language such as Alexa and Google Assistant)<\/li>\n  <li>NLU\t=\tNatural Language Understanding  (Alexa &amp; Generative AI)<\/li>\n  <li>NOC\t=\tNetwork Operations Center<\/li>\n  <li>NoSQL\t=\t(Nonrelational database system such as key-value pair document storage in DynamoDB)<\/li>\n  <li>NPD\t=\tNon-Production (vs PRD for production in keeping with a consistent number of letters)<\/li>\n  <li>NPS\t=\tNet Promoter Score (rating by customers willing to promote to others)<\/li>\n  <li>NPU\t=\tNeural Processing Unit (specialized for processing AI neural networks in parallel, especially on edge\/hand-held devices and on Microft\u2019s AI laptops)<\/li>\n  <li>NSA\t=\tNational Security Agency\t(conducts SIGINT)<\/li>\n  <li>NSFET = Nanosheet Field-Effect Transistor<\/li>\n  <li>NSFW\t=\tNot Safe For Work (slang one should avoid repeating)<\/li>\n  <li>NSG\t=\tNetwork Security Group\t(Azure)<\/li>\n  <li>NSP\t=\tNext Sentence Prediction (GenAI for BERT Natural Language Processing)<\/li>\n  <li>NTA\t=\tNetwork Traffic Anomaly<\/li>\n  <li>NTM\t=\tNext Twelve Months<\/li>\n  <li>NTP\t=\tNetwork Time Protocol<\/li>\n  <li>NUI = Natural User Interface<\/li>\n  <li>NVIDIA\t=\t(the corporation which produces GPUs for AI and graphics)<\/li>\n  <li>NVMe = Non-Volatile Memory Express (protocol to connect SSDs to the CPU via high-speed PCIe bus)<\/li>\n<\/ul>\n\n<p><a name=\"O\"><\/a><\/p>\n<h3 id=\"o\">O<\/h3>\n\n<ul>\n  <li>o11y\t=\tObservability\t(numeronym - 11 letters between o and y)<\/li>\n  <li>O3DE\t=\tOpen 3D Engine (open-source 3D game development engine from Amazon. Successor to Amazon Lumberyard)<\/li>\n  <li>OAC\t=\tOrigin Access Control (for AWS CloudFront)<\/li>\n  <li>OAI = OpenAI (Microsoft\u2019s partner in AI ChatGPT)<\/li>\n  <li>OAI\t=\tOrigin Access Identity (virtual identity used to require users to access content via AWS CloudFront URl instead of S3 URL)<\/li>\n  <li>OASIS\t=\tOrganization for the Advancement of Structured Information Standards (defined CSAF and CVRF)<\/li>\n  <li>OCI\t=\tContainer Open Initiative\t(to replace Docker Compose and Docker containers)<\/li>\n  <li>OCSP\t=\tOnline Certificate Status Protocol<\/li>\n  <li>OCM\t=\tOrganizational Change Management<\/li>\n  <li>ODNI\t=\tOffice of the Director of National Intelligence<\/li>\n  <li>OECD\t=\tOrganization for Economic Cooperation and Development (published trans-border privacy guidelines in 1980)<\/li>\n  <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>\n  <li>OEL\t=\tOracle Enterprise Linux<\/li>\n  <li>OEM\t=\tOriginal Equipment Manufacturer<\/li>\n  <li>OEP\t=\tOccupant Emergency Plan<\/li>\n  <li>OFDM\t=\tOrthogonal 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>\n  <li>OG\t=\tOriginal Gangster (slang to praise someone as exceptional, authentic, or old-school)<\/li>\n  <li>OIDC\t=\tOpenID Connect<\/li>\n  <li>OKR\t=\tObjectives and Key Results<\/li>\n  <li>OODA\t=\tObserve Orient Decide Act (decision making sequence used by US Air Force for agility)<\/li>\n  <li>OOM\t=\tOrders Of Magnatude (where 10x = 1 OOM)<\/li>\n  <li>OLA\t= Observe - Orient - Decide - Act (acrostic for the rapid decision-making strategy used by US fighter pilots during aerial combat)<\/li>\n  <li>OLAP\t=\tOnLine Analytical Processing\t(A business intelligence approach that allows users to analyze large amounts of data from different points of view)<\/li>\n  <li>OLTP\t=\tOnLine Transaction Processing<\/li>\n  <li>OMS = Operations Management Suite (Microsoft product for datacenter administration)<\/li>\n  <li>OOM\t=\tOut of Memory<\/li>\n  <li>OOP\t=\tObject Oriented Programming<\/li>\n  <li>OPA\t=\tOpen Policy Agent\t(Policy as Code agent from Styra used in Kubernetes Admission Controller and Terraform)<\/li>\n  <li>OPEX\t=\tOperating Expenditures\t(impacts Profit and Loss statement for current periods)<\/li>\n  <li>ORC\t=\tOptimized Row Columnar (data format used within Apache Hadoop databases)<\/li>\n  <li>ORM = Object-Relational Mapping (to simplify interaction between OOP CRUD apps and SQL databases)<\/li>\n  <li>OOS = Out of Stock (when a retail store is out of inventory to sell of an item)<\/li>\n  <li>OOV = Out-Of-Vocabulary (words or terms that a LLM has not encountered during its training phase)<\/li>\n  <li>OS\t=\tOperating System<\/li>\n  <li>OSCAL\t=\tOpen Security Controls Assessment Language\t(NIST-defined format for communicating CVEs)<\/li>\n  <li>OSCP\t=\tOnline Certificate Status Protocol\t(used to obtain the revocation status of X.509 digital certificates)<\/li>\n  <li>OSI\t=\tOpen Systems Interconnection<\/li>\n  <li>OSINT\t=\tOpen Source Intelligence (from social media)<\/li>\n  <li>OSS\t=\tOpen Source Software<\/li>\n  <li>OT\t=\tOperational Technology<\/li>\n  <li>OTA\t=\tOver The Air<\/li>\n  <li>OTCSA\t= Operational Technology Cyber Security Alliance<\/li>\n  <li>OTOH\t=\tOn the Other Hand (chat slang)<\/li>\n  <li>OTP\t=\tOne-Time Password (for security)<\/li>\n  <li>OTR\t=\tOff The Record (privacy)<\/li>\n  <li>OVAL\t=\tOpen Vulnerability and Assessment Language<\/li>\n  <li>OU\t=\tOrganizational Unit<\/li>\n  <li>\n    <table>\n      <tbody>\n        <tr>\n          <td>OUI = Organizational Unique Identifier<\/td>\n          <td>The first three bytes of the six-byte field of the MAC address the IEEE identifies as vendor of the network adapter.<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/li>\n  <li>OWA = Outlook Web Application (Microsoft Exchange web interface)<\/li>\n  <li>OWASP\t=\tOpen Web Application Security Project<\/li>\n<\/ul>\n\n<p><a name=\"P\"><\/a><\/p>\n<h3 id=\"p\">P<\/h3>\n\n<ul>\n  <li>P2P\t=\tPerson to Person or Point to Point<\/li>\n  <li>PaC\t=\tPolicy as Code<\/li>\n  <li>PaaS\t=\tPlatform as a Service<\/li>\n  <li>PaLM = Pathways Language Model (built based on Google\u2019s 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>\n  <li>PAM\t=\tPrivileged Access Management<\/li>\n  <li>PAN\t=\tPrimary Account Number (PCI DSS)<\/li>\n  <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>\n  <li>PASTA = Process for Attack Simulation and Threat Analysis<\/li>\n  <li>PAT\t=\tPersonal Access Token (to authenticate GitHub static access)<\/li>\n  <li>PAT\t=\tPort Address Translation (networking)<\/li>\n  <li>PAW\t=\tPrivileged Access Workstation (Microsoft)<\/li>\n  <li>PAYG\t=\tPay-As-You-Go (such as for cloud services billing)<\/li>\n  <li>PBC\t=\tPrinted Control Board<\/li>\n  <li>PBC\t=\tProvided By Client\t(SOC term)<\/li>\n  <li>PBL\t=\tProject-Based Learning<\/li>\n  <li>PC\t=\tPersonal Computer\t(refers to a Microsoft Windows machine)<\/li>\n  <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>\n  <li>PCI\t=\tPeripheral Components Interconnect<\/li>\n  <li>PCI DSS\t=\tPayment Card Industry Data Security Standard\t(private regulation by credit card processors to prevent identity theft)<\/li>\n  <li>PCIe = Peripheral Component Interconnect Express (bus to connect solid-state drives directly to the CPU)<\/li>\n  <li>PDCA = Plan Do Check Act (created by Deming to iterate improvement, adopted for Agile development)<\/li>\n  <li>PDD\t=\tProject Delivery Document\t(containing IS project scope\t prerequisites\t scheduling info\t etc.)<\/li>\n  <li>PDF\t=\tPortable Document Format\t(the format created by Adobe to create a universally accessible file containing graphics and text)<\/li>\n  <li>PDW = Parallel Data Warehouse (Microsoft SQL 2012 Analytics Platform System that became Azure SQL Data Warehouse)<\/li>\n  <li>PE = Pre-installed Environment (a bootable image of Microsoft Windows used to automate install)<\/li>\n  <li>PEFT = Parameter-Efficient Fine-Tuning (techniques such as LoRA to update a small subset of an AI ML model\u2019s parameters)<\/li>\n  <li>PEM\t=\tPrivacy Enhanced Mail (AWS private key certificate encoding file type)<\/li>\n  <li>PEP = Python Enhancement Proposal<\/li>\n  <li>PEP\t=\tPolicy Enforcement Point\t(filters requests and makes eXtensible Access Control Markup Language (XACML) to a Policy Decision Point (PDP)<\/li>\n  <li>PETM\t=\tParameter-Efficient Tuning Methods (in Generative AI)<\/li>\n  <li>PF\t=\tPrivacy Framework<\/li>\n  <li>PFAS = Per- and polyfluoroalkyl Substances (<a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Per-_and_polyfluoroalkyl_substances\">carcinogenic<\/a> forever chemicals)<\/li>\n  <li>PFS\t=\tPerfect Forward Secrecy<\/li>\n  <li>PHD\t=\tPersonal Health Dashboard<\/li>\n  <li>PHE\t=\tPartially Homomorphic Encryption<\/li>\n  <li>PHI\t=\tProtected Health Information<\/li>\n  <li>PHP\t=\t(recursive acronym for PHP: Hypertext Preprocessor. A web scripting language used in WordPress)<\/li>\n  <li>PHS\t=\tPassword Hash Synchronization (Microsoft Azure AD Connect)<\/li>\n  <li>PIA = Privacy Impact Assessment<\/li>\n  <li>PID\t=\tProcess Identifier<\/li>\n  <li>PID = Proportional Integral Derivative (keeps a variable within a set of parameters\/conditions, such as auto cruise control)<\/li>\n  <li>PII\t=\tPersonally Identifiable Information<\/li>\n  <li>PIM\t=\tPrivileged Identity Management<\/li>\n  <li>PIN\t=\tPersonal Identification Number\t(a secret consisting of a small number)<\/li>\n  <li>PIO\t=\tProgrammable Input Output (An Arduino feature to create hardware interfaces using GP IO pins)<\/li>\n  <li>PIOPS\t=\tProvisioned Input Output Operations Per Second<\/li>\n  <li>PIR = Passive Infra-Red (electronic sensor)<\/li>\n  <li>PIV\t=\tPersonal Identity Verification (uses tokens like YubiKeys)<\/li>\n  <li>PKE\t=\tPublic Key Encryption<\/li>\n  <li>PKI\t=\tPublic Key Infrastructure\t(manages cryptographic certificates)<\/li>\n  <li>PM\t=\tProduct Management\/Manager<\/li>\n  <li>PLA\t=\tPolyactic Acid (filament for 3D printing. Made from organic materials. Has low melting point and absorbs moisture.)<\/li>\n  <li>PLC\t=\tProgrammable Logic Controller<\/li>\n  <li>P&amp;L\t=\tProfit and Loss<\/li>\n  <li>PMM\t=\tProduct Marketing Manager\t(organizational role)<\/li>\n  <li>PMO\t=\tProgram Management Office<\/li>\n  <li>PMS = Pantone Matching System (to select colors)<\/li>\n  <li>PNAC\t=\tPort-Based Network Attack<\/li>\n  <li>POA&amp;M\t=\tPlan of Action and Milestones<\/li>\n  <li>PoC\t=\tProof of Concept<\/li>\n  <li>POGIL = Process Oriented Guided Inquiry Learning<\/li>\n  <li>POLP\t=\tPrinciple of Least Privilege<\/li>\n  <li>POM\t=\tProduction Operations Management<\/li>\n  <li>POR\t=\tProcess of Record<\/li>\n  <li>PPE\t=\tPersonal Protective Equipment<\/li>\n  <li>PPE\t=\tPoisoned Pipeline Execution (of CI\/CD pipeline configuration files such as Jenkinsfile, .gitlab-ci.yml, makefile, etc.)<\/li>\n  <li>PPE\t=\tPre-Production Enviornment<\/li>\n  <li>PPG\t=\tPoint-to-Point Tunneling Protocol (networking)<\/li>\n  <li>PPG\t=\tProximity Placement Group (Azure VMs)<\/li>\n  <li>PPK\t=\tPutty Private Key (AWS private key certificate encoding file type for Windows PuTTY SSH client)<\/li>\n  <li>PPO = Proximal Policy Optimization (A reinforcement learning algorithm that improves training stability and reliability)<\/li>\n  <li>PPTP\t=\tPoint-to-Point Tunneling Protocol<\/li>\n  <li>PQC\t=\tPost-Quantum Cryptography (encryption resistant to crackers on fast quantum computers)<\/li>\n  <li>PR\t=\tPull Request\t(GitHub feature for suggesting code changes and integrating them into the main code base)<\/li>\n  <li>PRD\t=\tProduction (vs NPD for non-production in keeping with a consistent number of letters)<\/li>\n  <li>PS\t=\tProfessional Services<\/li>\n  <li>PSD\t=\tPower 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>\n  <li>PSE\t=\tProfessional Services Engineer<\/li>\n  <li>PSIRT\t=\tProduct Security Incident Response Team (protects customers of products)<\/li>\n  <li>PSK\t=\tPre-Shared Key<\/li>\n  <li>PTA\t=\tPass-Through Authentication (agents in Microsoft Azure AD Connect)<\/li>\n  <li>PTAL\t=\tPlease Take A Look<\/li>\n  <li>PTES\t=\tPenetration Testing Execution Standard<\/li>\n  <li>PTT\t=\tPlatform Trust Technology (on Intel chips for Windows PCs)<\/li>\n  <li>PTZ = Pan-Tilt-Zoom (Cameras)<\/li>\n  <li>PUA\t=\tPotentially Unwanted Application<\/li>\n  <li>PV\t=\tPersistent Volume\t(Kubernetes)<\/li>\n  <li>PV\t=\tParavirtual Virtualization (type of Linux AMI boot loader)<\/li>\n  <li>PVM = Python Virtual Machine<\/li>\n  <li>PVC\t=\tPersistent Volume Claim\t(Kubernetes)<\/li>\n  <li>PWA\t=\tProgressive Web Application (application intended to work on any platform with a standards-compliant browser, including desktop and mobile devices)<\/li>\n  <li>PWC\t=\tPrice Waterhouse Coopers (International Global Integrator Consulting firm)<\/li>\n  <li>PWM\t=\tPulse Widthe Modulation<\/li>\n<\/ul>\n\n<p><a name=\"Q\"><\/a><\/p>\n<h3 id=\"q\">Q<\/h3>\n\n<ul>\n  <li>QA\t=\tQuality Assurance<\/li>\n  <li>QBR\t=\tQuarterly Business Review<\/li>\n  <li>QEC\t=\tQuantum Error Correction (IT)<\/li>\n  <li>QFT = Quantum Field Theory (combines quantum mechanics, special relativity, and classical field theory to describe the mechanics of higher dimensional math)<\/li>\n  <li>QIR\t=\tQuantum Intermediate Representation (Microsoft)<\/li>\n  <li>QKD\t=\tQuantum Key Distribution (secures communication using a cryptographic protocol involving quantum computing with lasers)<\/li>\n  <li>QLDB\t=\tQuantum Ledger Database (AWS)<\/li>\n  <li>QML\t=\tQuantum Ledger Database (Microsoft)<\/li>\n  <li>QoQ\t=\tQuarter on Quarter<\/li>\n  <li>QoS\t=\tQuality of Service<\/li>\n  <li>QPU\t=\tQuery Processing Unit (to bill CPU capacity in Microsoft Azure Analytics Services)<\/li>\n  <li>QPU\t=\tQuantum Processing Unit (Quantum IT)<\/li>\n<\/ul>\n\n<p><a name=\"R\"><\/a><\/p>\n<h3 id=\"r\">R<\/h3>\n\n<ul>\n  <li>RACI\t=\tResponsible + Accountable + Consulted + Informed\t(Responsibility Assignment Matrix)<\/li>\n  <li>RAD\t=\tRapid Application Development (methodology)<\/li>\n  <li>RAG = Retrieval Augmented Generation (extension such as PostgreSQL pgvector to add proprietary knowledge to foundation models without retraining)<\/li>\n  <li>RAID\t=\tRedundant Array of Independent Disks<\/li>\n  <li>RAM\t=\tRandom Access Memory<\/li>\n  <li>RAM\t=\tResource Access Manager (AWS)<\/li>\n  <li>RAN\t=\tRadio Access Network<\/li>\n  <li>RASP\t=\tRuntime Application Self-Protection<\/li>\n  <li>RAT\t=\tRemote Access Trojan  (malware)<\/li>\n  <li>RBAC\t=\tRole-Based Access Control<\/li>\n  <li>RBG\t=\tRandom Bit Generator<\/li>\n  <li>RBVM\t=\tRisk-Based Vulnerability Management<\/li>\n  <li>RCA\t=\tRoot Cause Analysis<\/li>\n  <li>RCS\t=\tRich Communication Services (messaging, voice, video)<\/li>\n  <li>RCE\t=\tRemote Code Execution<\/li>\n  <li>RCE\t=\tRoot Code Execution<\/li>\n  <li>RDD\t=\tResilient Distributed Dataset (native data structure underlying Apache Spark Dataframes used by Pandas)<\/li>\n  <li>RDF\t=\tResource Description Language (W3C standard for graph databases)<\/li>\n  <li>RDL\t=\tReport Definition Language (XML representation of a paginated report definition from Microsoft SQL Server Reporting Services)<\/li>\n  <li>RDMA = Remote Direct Memory Access (to share liquid-cooled memory in parallel connected by low-latency Ethernet fabric by SMCI)<\/li>\n  <li>RDP\t=\tRemote Desktop Protocol\t(Microsoft technology for users to access a Windows computer remotely)<\/li>\n  <li>RDS\t=\tRelational Database Service\t(AWS cloud SQL service to host databases)<\/li>\n  <li>REST\t=\tRepresentational State Transfer<\/li>\n  <li>REEs = Rare Earths Elements (mining and processing, mostly in China, for minerals needed in modern electronics)<\/li>\n  <li>RFI\t=\tRequest for Information<\/li>\n  <li>RFP\t=\tRequest for Proposal<\/li>\n  <li>RFQ\t=\tRequest for Quote<\/li>\n  <li>RGB\t=\tRed Green Blue\t(colors)<\/li>\n  <li>RGDD\t=\tReliable Group Data Delivery (SDN)<\/li>\n  <li>RRA\t=\tRapid Risk Assessment (NIST)<\/li>\n  <li>RIP\t=\tRest In Peace<\/li>\n  <li>RISC\t=\tReduced Instruction Set Computing<\/li>\n  <li>RLAIF\t=\tReinforcement Learning with AI\/LLM Feedback (Anthropic\u2019s Constitutional AI)<\/li>\n  <li>RLHF\t=\tReinforcement Learning with Human Feedback (to fine-tune ML rates after initial training)<\/li>\n  <li>RLS\t=\tRow-Level Security (in SQL database tables)<\/li>\n  <li>ReLU = Rectified Linear Unit (in Artificial Intelligence)<\/li>\n  <li>RMF\t=\tRisk Management Framework\t(for controls defined in NIST SP 800-53)<\/li>\n  <li>RMM = Remote Monitoring and Management (utilities)<\/li>\n  <li>RMSE = Root Mean Squared Error (to calculate the accuracy of a regression model)<\/li>\n  <li>RNG\t=\tRandom Number Generator<\/li>\n  <li>RNN\t=\tRecurrent Neural Network (in Deep Learning)<\/li>\n  <li>ROA\t=\tReturn on Assets<\/li>\n  <li>ROC\t=\tReport on Compliance (issued by DCS PSI  auditors)<\/li>\n  <li>ROE\t=\tReturn on Equity<\/li>\n  <li>RoHS = Restriction of Hazardous Substances Directive (EU Feb 2003)<\/li>\n  <li>ROI\t=\tReturn on Investment<\/li>\n  <li>ROIC\t=\tReturn on Invested Capital<\/li>\n  <li>ROM\t=\tRead-only Memory<\/li>\n  <li>ROS\t=\tReturn on Sales<\/li>\n  <li>ROSA\t=\tRed Hat OpenShift Service on AWS (containers)<\/li>\n  <li>RoT\t=\tRoot of Trust<\/li>\n  <li>RPA\t=\tRobotic Process Automation<\/li>\n  <li>RPC\t=\tRemote Procedure Call<\/li>\n  <li>RPO\t=\tRecovery Point Objective<\/li>\n  <li>RPS\t=\tRequests Per Second<\/li>\n  <li>RRA = Rapid Risk Assessment<\/li>\n  <li>RRS\t=\tReduced Redundancy Storage (AWS)<\/li>\n  <li>RSA\t=\tResident System Engineer\t(role within HashiCorp)<\/li>\n  <li>RSA\t=\tRivest + Shamir + Adleman\t(an encryption algorithm and company name based on the initials of its inventors)<\/li>\n  <li>RSS\t=\tReal Simple Syndication (web feed format)<\/li>\n  <li>RSVP\t=\tr\u00e9pondez s\u2019il vous pla\u00eet (French for Respond Please - an initialism where each letter is pronounced)<\/li>\n  <li>RTC\t=\tReal Time Clock<\/li>\n  <li>RTFM\t=\tRead The Fine Manual (slang)<\/li>\n  <li>RTO\t=\tRecovery Time Objective<\/li>\n  <li>RTOS\t=\tReal-Time Operating System (for IoT\/Edge Computing)<\/li>\n  <li>RTSP\t=\tReal-Time Streaming Protocol (AWS Kinesis)<\/li>\n  <li>RUM\t=\tResources Under Management\t(HashiCorp Terraform at scale)<\/li>\n  <li>RUP\t=\tRational Unified Process\t(phased software development methodology from 2003 using object UML)<\/li>\n  <li>RaMP\t=\tRapid Modernization Plan (Microsoft Zero Trust)<\/li>\n<\/ul>\n\n<p><a name=\"S\"><\/a><\/p>\n<h3 id=\"s\">S<\/h3>\n\n<ul>\n  <li>S3\t=\tSimple Storage Service\t(AWS file object service)<\/li>\n  <li>SaaS\t=\tSoftware as a Service<\/li>\n  <li>SAIF\t=\tSecure AI Framework (Google)<\/li>\n  <li>SAM\t=\tServerless Application Model (Amazon CLI)<\/li>\n  <li>SAML\t=\tSecurity Assertion Markup Language\t(XML-based standard for authentication and authorization)<\/li>\n  <li>SAN\t=\tStorage Area Network<\/li>\n  <li>SAP\t=\tSystems Applications and Product\t(large German ERP software company)<\/li>\n  <li>SAP\t=\tSystem Assessment Plan<\/li>\n  <li>SAQ\t=\tSelf-Assessment Questionaire (of DSS PCI)<\/li>\n  <li>SAR\t=\tSecurity Assessment Report<\/li>\n  <li>SARIF\t=\tStatic Analysis Results Interchange Format  (standard by OASIS for sharing static vulnerability analysis results)<\/li>\n  <li>SARs\t=\tSystem Assessment Results<\/li>\n  <li>SAS\t=\tShared Access Signature (secure token URI to Azure accounts and storage resources)<\/li>\n  <li>SASE\t=\tSecure Access Service Edge\t(Microsoft &amp; Trust Broker SaaS by Palo Alto Prisma\t zScaler\t Cato\t Cloudfare)<\/li>\n  <li>SAST\t=\tStatic Application Security Testing<\/li>\n  <li>SBC\t=\tSingle-Board Computer (like the ZimaBoard 832)<\/li>\n  <li>SBI\t=\tService-Based Interface<\/li>\n  <li>SBOM\t=\tSoftware Bill of Materials<\/li>\n  <li>SCA\t=\tSoftware Composition Analysis\t(identify vulnerable components in containers)<\/li>\n  <li>SCADA\t=\tSupervisory Control And Data Acquisition<\/li>\n  <li>SCAP\t=\t Security Content Automation Protocol<\/li>\n  <li>SCC\t=\tSecurity Command Center\t(Google\u2019s SOC service)<\/li>\n  <li>SCEP\t=\tSimple Certificate Enrollment Protocol<\/li>\n  <li>SCF\t=\tSecure Controls Framework (SEC)<\/li>\n  <li>SCIM\t=\tSystem for Cross-Domain Identity Management (IT security)<\/li>\n  <li>SCM\t=\tSource Control Manager\t(such as GitHub)<\/li>\n  <li>SCP\t=\tService Control Policy (in AWS to govern the use of other IAM policies)<\/li>\n  <li>SCRM = Cyber Supply Chain Risk Management (defined by NIST)<\/li>\n  <li>SCSS\t=\tSidecar Container Security Stack<\/li>\n  <li>SCT\t=\tSchema Conversion Tool (AWS)<\/li>\n  <li>SDD = Spec Driven Development (Vibe coding Kiro and Spec Kit platform from GitHub)<\/li>\n  <li>SDE\t=\tStandardized Development Environment<\/li>\n  <li>SDK\t=\tSoftware Development Kit<\/li>\n  <li>SDL = Schema Definition Language (in GraphQL)<\/li>\n  <li>SDN\t=\tSoftware-Defined Networking\t(used by AWS - an advancement to BGP used on public networks)<\/li>\n  <li>SDLC\t=\tSystem Development Life Cycle<\/li>\n  <li>SDMN\t=\tSoftware-defined Mobile Network (for SDN)<\/li>\n  <li>SDR = Single Data Rate (memory)<\/li>\n  <li>SDRAM = Synchronous Dynamic Random Access Memory<\/li>\n  <li>SDP\t=\tSoftware Defined Perimeter<\/li>\n  <li>SDP\t=\tSoftware Delivery Platform<\/li>\n  <li>SEB\t=\tSecure Enterprise Browsers<\/li>\n  <li>SEC\t=\tSecurity and Exchange Commission (regulates US financial markets)<\/li>\n  <li>SERP = Search Engine Results Page<\/li>\n  <li>SES\t=\tSimple Email Service\t(AWS)<\/li>\n  <li>SEU\t=\tSingle Event Upset (a soft error caused by a random alpha particle flipping a bit)<\/li>\n  <li>SF\t=\tService Fabric\t(Azure)<\/li>\n  <li>SFC = Sequential Function Charts<\/li>\n  <li>SFT = Supervised Fine Tuning (a pre-trained model on labeled data for a specific task)<\/li>\n  <li>SG\t=\tSecurity Group<\/li>\n  <li>SGD\t=\tStochastic Gradient Descent (AI technique to iteratively optimize)<\/li>\n  <li>SHA\t=\tSecure Hash Algorithm\t(a method to identify whether a file has been altered - also used by GitHub to create an index)<\/li>\n  <li>SHD\t=\tService Health Dashboard (AWS)<\/li>\n  <li>SI\t=\tSystems Integrator<\/li>\n  <li>SIA\t=\tStorage Infrequent Access (AWS)<\/li>\n  <li>SIEM\t=\tSecurity Information and Event Management<\/li>\n  <li>SIG\t=\tSpecial Interest Group<\/li>\n  <li>SIGINT\t=\tSignals Intelligence\t(of electronic transmissions)<\/li>\n  <li>SIP = Session Initiation Protocol (real-time multimedia communication sessions over IP networks)<\/li>\n  <li>SIRP\t=\tSecurity Incident Response Plan\t(for SOC2)<\/li>\n  <li>SIRT\t=\tSecurity Incident Response Team\t(work in a SOC department)<\/li>\n  <li>SIS\t=\tSafety Instrumented System  (automated control system that safeguards manufacturing environment in case of any hazardous incident in the industry)<\/li>\n  <li>SKSKSKSK\t=\t(internet slang expressing excitement)<\/li>\n  <li>SLA\t=\tService Level Agreement<\/li>\n  <li>SLAM\t=\tSimultaneous Localization and Mapping (of image file contents by OpenCV)<\/li>\n  <li>SLE\t=\tSingle Loss Expectancy<\/li>\n  <li>SLI\t=\tService Level Indicator<\/li>\n  <li>SLM\t=\tSmall Language Model<\/li>\n  <li>SLO\t=\tService Level Objective<\/li>\n  <li>SLR\t=\tService Linked Role (in IAM for Amazon Lightsail)<\/li>\n  <li>SLSA\t=\tSupply chain Levels for Software Artifacts\t(<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>\n  <li>SMB\t=\tServer Message Block (storage)<\/li>\n  <li>SMB\t=\tSmall or Mid-sized Business<\/li>\n  <li>SME\t=\tSubject Matter Expert<\/li>\n  <li>SMF\t=\tSession Management Function<\/li>\n  <li>SNDL = Store Now Decrypt Later (for malicious decryption when quantum enables it)<\/li>\n  <li>SMI\t=\tService Mesh Interface<\/li>\n  <li>SNMP\t=\tSimple Network Management Protocol<\/li>\n  <li>SMaaS\t=\tService Mesh as a Service<\/li>\n  <li>SMTP\t=\tSimple Mail Transfer Protocol<\/li>\n  <li>SNI\t=\tServer Name Indication (SSL)<\/li>\n  <li>SNS\t=\tSimple Notification Service\t(to send and receive notifications in AWS)<\/li>\n  <li>SOA\t=\tService Oriented Architecture<\/li>\n  <li>SOAP\t=\tSimple Object Access Protocol\t(uses XML)<\/li>\n  <li>SOAR\t=\tSecurity Orchestration Automation and Response<\/li>\n  <li>SOW\t=\tStatement of Work<\/li>\n  <li>SOC\t=\tSecurity Operations Center<\/li>\n  <li>SoC\t=\tSystem on a Chip<\/li>\n  <li>SOC2\t=\tSystems and Organization Controls (AICPA ISO 27701)<\/li>\n  <li>SOP\t=\tStandard Operating Procedure<\/li>\n  <li>SORN\t=\tSystem of Record Notice<\/li>\n  <li>SOTA = State of the Art<\/li>\n  <li>SOX\t=\tSarbanes-Oxley Act<\/li>\n  <li>SPA\t=\tSingle Page Application<\/li>\n  <li>SPF\t=\tSender Policy Framework\t(lists IP address of servers allowed to send email for a domain - for email authentication)<\/li>\n  <li>SPI\t=\tService Provider Interface<\/li>\n  <li>SPI\t=\tSecure Personal Information<\/li>\n  <li>SPI = Serial Peripheral Interface (master\/slave protocol that requires a clock signal to transmit any information)<\/li>\n  <li>SPICE\t=\tSuper-fast, Parallel, In-memory Calculation Engine (used in AWS QuickSight)<\/li>\n  <li>SPIFFE\t=\tSecure Production Identity Framework for Everyone\t(spec used by Consul Connect service mesh for establishing service identities)<\/li>\n  <li>SPK\t=\tSpacecraft and Planet Kernel (files from NASA containing ephemeris data for solar system bodies, spacecraft, and other objects)<\/li>\n  <li>SPOC\t=\tSingle Point of Contact<\/li>\n  <li>SPOF\t=\tSingle Point of Failure<\/li>\n  <li>SPLK\t=\tSplunk\u2019s stock ticker symbol<\/li>\n  <li>SPN\t=\tService Principal Name (Unique identifier for a service instance within Kerberos)<\/li>\n  <li>SPSCR\t=\tSecurity, Privacy, and Supply Chain Risks (in RMF)<\/li>\n  <li>SPAN Port\t=\tPort configured to receive a copy of every packet that passes through a switch.<\/li>\n  <li>SQL\t=\tStructured Query Language<\/li>\n  <li>SQS\t=\tSimple Queue Service\t(AWS hosted queues of messages)<\/li>\n  <li>SRA\t=\tSecurity Reference Architecture<\/li>\n  <li>SRE\t=\tSite Reliability Engineer\t(job role)<\/li>\n  <li>SRG\t=\tSecurity Requirements Guides (general guidelines for STIGs, from DISA)<\/li>\n  <li>SRP = Single Responsibility Principle<\/li>\n  <li>SRTM = Software Requirements Traceability Matrix<\/li>\n  <li>SRUM\t=\tSystem Resource Utilization Monitor (on Windows machines)<\/li>\n  <li>SSAE\t=\tStatement on Standards for Attestation Engagements<\/li>\n  <li>SSAS = SQL Server Analysis Services (from Microsoft)<\/li>\n  <li>SSD\t=\tSolid-State Drive (data storage)<\/li>\n  <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>\n  <li>SSDT\t=\tSQL Server Data Tools (Microsoft SQL Server)<\/li>\n  <li>SSE\t=\tSecurity Service Edge  (Microsoft conditional access mechanisms for Zero Trust)<\/li>\n  <li>SSE = Server Sent Events (machine-level protocol used between MCP components)<\/li>\n  <li>SSE\t=\tServer-Side Encryption<\/li>\n  <li>SSG\t=\tStatic Site Generator<\/li>\n  <li>SSDLC\t=\tSecure Software Development Lifecycle<\/li>\n  <li>SSH\t=\tSecure Shell\t(a Linux feature to enable remote access of computers)<\/li>\n  <li>SSI\t=\tSensitive Security Information<\/li>\n  <li>SSIS\t=\tSQL Server Integration Services (Microsoft)<\/li>\n  <li>SSL\t=\tSecure Sockets Layer (deprecated by TLS networking protocol)<\/li>\n  <li>SSML\t=\tSpeech Synthesis Markup Language<\/li>\n  <li>SSMS\t=\tSQL Server Management Studio (Microsoft app)<\/li>\n  <li>SSN\t=\tSocial Security Number\t(issued by the US government to unique identify an individual for taxes)<\/li>\n  <li>SSO\t=\tSingle Sign On\t(IAM MFA)<\/li>\n  <li>SSoT\t=\tSingle Source of Truth<\/li>\n  <li>SSP\t=\tSystem Security Plan<\/li>\n  <li>SSPR\t=\tSelf-Service Password Reset (Security)<\/li>\n  <li>SSRF\t=\tServer Side Request Forgery<\/li>\n  <li>SSRM\t=\tShared Security Responsibility Model<\/li>\n  <li>SSRS\t=\tSQL Server Reporting Services (Microsoft)<\/li>\n  <li>STA\t=\tState of The Art  (most modern)<\/li>\n  <li>STAR\t=\tSecurity Test Audit Report<\/li>\n  <li>STIG\t=\tSecurity Technical Implementation Guide (specific to each product used by DoD, from DISA)<\/li>\n  <li>STIX\t=\tStructured Threat Information eXpression (XML API to share threat models by OASIS)<\/li>\n  <li>STRIDE\t=\t Spoofing of user identity; Tampering; Repudiation; Information disclosure (privacy breach or data leak); Denial of service (DoS); Elevation of privilege<\/li>\n  <li>SLD\t=\tSecondary Level Domain\t(the letters before the last dot on URLs processed by DNS)<\/li>\n  <li>STS\t=\tSecurity Token Service\t(AWS)<\/li>\n  <li>STS\t=\tStatefulSets\t(Kubernetes)<\/li>\n  <li>SUT\t=\tSystem Under Test<\/li>\n  <li>SVD = Singular Value Decomposition (standard matrix factorization NumPy function to decompose training set)<\/li>\n  <li>SVID\t=\tSPIFFE Verifiable Identity Document\t(cryptographic file used by a workload to prove its identity to a resource or caller)<\/li>\n  <li>SWF\t=\tSimple Workflow (service from AWS for developers to run tasks in parallel or sequentially)<\/li>\n  <li>SWG\t=\tSecure Web Gateway<\/li>\n<\/ul>\n\n<p><a name=\"T\"><\/a><\/p>\n<h3 id=\"t\">T<\/h3>\n\n<ul>\n  <li>TAED = Target Actual Efficiency Downtime<\/li>\n  <li>TAM\t=\tTechnical Account Manager<\/li>\n  <li>TAM\t=\tTotal Addressable Market (marketing)<\/li>\n  <li>TaS\t=\tTest as Service<\/li>\n  <li>TAXII\t=\tTrusted Automated eXchange of Intelligence Information (how to share)<\/li>\n  <li>TB\t=\tTerraByte<\/li>\n  <li>TBD\t=\tTo Be Decided\t(common vernacular)<\/li>\n  <li>TBH\t=\tTo Be Honest (Gen Z slang)<\/li>\n  <li>TCB = Trusted Computing Base (secure boot kernel and other isolation tech)<\/li>\n  <li>TCC = Trusted Cloud Computing (Microsoft)<\/li>\n  <li>TCC = Transparency, Consent, and Control (for user data protection within Apple OS)<\/li>\n  <li>TCO\t=\tTotal Cost of Ownership<\/li>\n  <li>TDE\t=\tTransparent Data Encryption\t(encrypt database without altering app interactions by substituting encrypted values in the background outside apps)<\/li>\n  <li>TDIR\t=\tThreat Detection and Incident Response (security workflow)<\/li>\n  <li>TDP = Thermal Design Power (avg. max. power a processor dissipates heat while running)<\/li>\n  <li>TDM\t=\tTechnical Decision Maker\t(vs. Business Decision Maker)<\/li>\n  <li>TEE = Trusted Execution Environments (to provide secure runtime)<\/li>\n  <li>TFC\t=\tTerraform Cloud\t(SaaS Terraform offering)<\/li>\n  <li>TFE\t=\tTerraform Enterprise\t(self-installed\/managed Terraform)<\/li>\n  <li>TFW\t=\tThe Feeling When<\/li>\n  <li>TIA\t=\tThanks In Advance (chat slang)<\/li>\n  <li>TIC\t=\tTrusted Internet Connection<\/li>\n  <li>TIN\t=\tTax Identification Number<\/li>\n  <li>TIP\t=\tThreat Intelligence Platform<\/li>\n  <li>TIPS = Treasury Inflation-Protected Securities (<a target=\"_blank\" href=\"https:\/\/www.investopedia.com\/articles\/investing\/080813\/how-profit-inflation.asp\">BLOG<\/a>)<\/li>\n  <li>TCSEC\t=\tTrusted Computer System Evaluation Criteria<\/li>\n  <li>TCO\t=\tTotal Cost of Ownership<\/li>\n  <li>TDD\t=\tTest-Driven Development<\/li>\n  <li>TDM\t=\tTechnical Decision Maker<\/li>\n  <li>TDS = Tabular Data Stream (network protocol for communication between Microsoft SQL Server and its clients)<\/li>\n  <li>TEEP = Total Effective Equipment Performance (the actual percentage of calendar hour asset utilization versus theoretical 24x365 maximum)<\/li>\n  <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>\n  <li>TFE\t=\tTerraform Enterprise<\/li>\n  <li>TLP\t=\tTraffic Light Protocol (defines levels of information sharing with contractors - CLEAR, GREEN, AMBER, RED)<\/li>\n  <li>TTFN\t=\tTa Ta For Now (chat)<\/li>\n  <li>TGW\t=\tTransit GateWay\t(in AWS cloud)<\/li>\n  <li>TH\t=\tThreat Hunting<\/li>\n  <li>TIP\t=\tThreat Intelligence Platform<\/li>\n  <li>TLD\t=\tTop Level Domain\t(the letters after the last dot on URLs processed by DNS)<\/li>\n  <li>TLDR\t=\tToo Long Don\u2019t Read<\/li>\n  <li>TLS\t=\tTransport Layer Security<\/li>\n  <li>TMI\t=\tToo Much Information\t(common vernacular)<\/li>\n  <li>TOE\t=\tTarget of Evaluation\t(what is being evaluated by the Common Criteria EAL)<\/li>\n  <li>TOFU\t=\tTrust On First Use<\/li>\n  <li>TOML\t=\tTom\u2019s Obvious Minimal Language (config text file format)<\/li>\n  <li>TOON\t=\tToken-Oriented Object Notation (more compact than JSON for reading by models)<\/li>\n  <li>TOPI = Tensor Operator Inventory (pre-defined templates of common tensor operators e.g., conv2d, transpose)<\/li>\n  <li>TOPS\t=\tTera Operations per Second (AI inference performance)<\/li>\n  <li>TOTP\t=\tTime-based One Time Password<\/li>\n  <li>TPISRM\t=\tThird Party Information Security Risk Management<\/li>\n  <li>TPM\t=\tTrusted Platform Module\t(on newer Microsoft Windows PCs)<\/li>\n  <li>TPRM\t=\tThird Party Risk Management<\/li>\n  <li>TSC\t=\tTrust Service Criteria<\/li>\n  <li>TSI\t=\tTrustworthy Software Initiative\t(UK)<\/li>\n  <li>TTE\t=\tTrusted Execution Environments  (Microsoft Azure)<\/li>\n  <li>TTL\t=\tTime To Live<\/li>\n  <li>TTP\t=\tTrusted Third Party<\/li>\n  <li>TTP\t=\tTactics + Techniques + Procedures (of security attack)<\/li>\n  <li>TTS\t=\tText To Speech<\/li>\n  <li>TTT\t=\tTrain the Trainer<\/li>\n  <li>TTV\t=\tTime to Value\t(marketing term)<\/li>\n  <li>TTX\t=\tTableTop eXercise\t(for security resilience)<\/li>\n  <li>TUI\t=\tText-based User Interface (Command Line Interface)<\/li>\n  <li>TVM\t=\tThreat and Vulnerability Management (Microsoft)<\/li>\n  <li>TVM\t=\tTensor Virtual Machine (fast Apache Python Deep Learning compilation framework)<\/li>\n<\/ul>\n\n<p><a name=\"U\"><\/a><\/p>\n<h3 id=\"u\">U<\/h3>\n\n<ul>\n  <li>U\t=\tyoU (chat slang)<\/li>\n  <li>UAC\t=\tUser Account Control (on Windows)<\/li>\n  <li>UAT\t=\tUser Acceptance Test<\/li>\n  <li>UART\t=\tUniversal Asynchronous Receiver \/ Transmitter (protocol)<\/li>\n  <li>UCS\t=\tUser<\/li>\n  <li>UDF\t=\tUser-Defined Function<\/li>\n  <li>UDM\t=\tUnified Data Management<\/li>\n  <li>UDR\t=\tUser-Defined Routes (used by Azure)<\/li>\n  <li>UDS\t=\tUnified Diagnostic Services\t(use in vehicles)<\/li>\n  <li>UDT\t=\tUser-defined Data Types<\/li>\n  <li>UEBA\t=\tUser and Entity Behavior Analytics\t(detect any anomalous behavior - deviations from normal patterns of usage which have security implications)<\/li>\n  <li>UEFI\t=\tUnified Extensible Firmware Interface\t(spec. replaces BIOS to boot-up disks larger than 2TB)<\/li>\n  <li>UEM\t=\tUnified Endpoint Management\/Manager (Microsoft Intune and Config. Manager)<\/li>\n  <li>UDP\t=\tUser Datagram Protocol\t(networking)<\/li>\n  <li>UML\t=\tUnified Modeling Language<\/li>\n  <li>UNS = Unified Namespace (for MQTT to integrate IIoT components)<\/li>\n  <li>UPF\t=\tUser Plane Function<\/li>\n  <li>UPN\t=\tUser Principal Name (Microsoft)<\/li>\n  <li>URI\t=\tUniversal Resource Identifier<\/li>\n  <li>URL\t=\tUniversal Resource Locator<\/li>\n  <li>URM\t=\tUnder-Represented Minority<\/li>\n  <li>USB\t=\tUniversal Service Bus<\/li>\n  <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>\n  <li>USP = Unique Selling Proposition<\/li>\n  <li>UTC\t=\tCoordinated Universal Time\t(the new compromise term for GMT)<\/li>\n  <li>UTF\t=\tUnicode Transformation Format<\/li>\n  <li>UUID\t=\t Universally Unique Identifier  (to identify information objects)<\/li>\n  <li>UVM\t=\tUnified Vulnerability Management (Armorcode: aggregate, correlate and prioritize findings from security tools)<\/li>\n  <li>UX\t=\tUser eXperience<\/li>\n<\/ul>\n\n<p><a name=\"V\"><\/a><\/p>\n<h3 id=\"v\">V<\/h3>\n\n<ul>\n  <li>v12n\t=\tVirtualization\t(numeronym of 11 letters between v and n)<\/li>\n  <li>VAE = Variational Autoencoders (uses encoder-decoder architecture to generate new data for image and video generation)<\/li>\n  <li>VADER = Valence Aware Dictionary and sEntiment Reasoner (A lexicon that includes informal words used for sentiment analysis to determine emotional negativity)<\/li>\n  <li>VAR\t=\tValue-Added Reseller<\/li>\n  <li>VAT\t=\tValue-Added Tax<\/li>\n  <li>VBO\t=\tValue-Based Outcome<\/li>\n  <li>VCDM =\tVerifiable 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>\n  <li>VCS\t=\tVersion Control System<\/li>\n  <li>VDI\t=\tVirtual Desktop Infrastructure (from Citrix, Microsoft, AWS, etc. to share desktop infrastructure)<\/li>\n  <li>VDP\t=\tVulnerability Disclosure Program<\/li>\n  <li>VEX = Vulnerability Exploitability Exchange<\/li>\n  <li>VGW\t=\tVirtual Gateway (Amazon AWS)<\/li>\n  <li>VHD\t=\tVirtual Hard Drive  (holds Page Blobs in Azure Storage of up to 8TB in size)<\/li>\n  <li>VIF\t=\tVirtual InterFace (networking)<\/li>\n  <li>VIM\t=\tVirtualized Infrastructure Manager (AWS)<\/li>\n  <li>VIP\t=\tVirtual IP\t(address)<\/li>\n  <li>VLAN\t=\tVirtual Local Area Network<\/li>\n  <li>VM\t=\tVirtual Machine<\/li>\n  <li>VMC\t=\tVerified Mark Certificate (anti-spoofing logo validation DMARC from DigiCert)<\/li>\n  <li>VMSS\t=\tVirtual Machine\tScale Set (Azure)<\/li>\n  <li>VMM\t=\tVirtual Machine Manager (aka Hypervisor)<\/li>\n  <li>VNC\t=\tVirtual Network Computing<\/li>\n  <li>VNF\t=\tVirtual Network Function<\/li>\n  <li>VoIP\t=\tVoice over Internet Protocol<\/li>\n  <li>VRRP\t=\tVirtual Router Redundancy Protocol<\/li>\n  <li>VRM\t=\tVendor Risk Management<\/li>\n  <li>VPA\t=\tVertical Pod Autoscaler\t(Kubernetes)<\/li>\n  <li>VPC\t=\tVirtual Private Cloud\t(AWS)<\/li>\n  <li>VPG\t=\tVirtual Private Gateway (AWS)<\/li>\n  <li>VPS\t=\tVirtual Private Server (AWS)<\/li>\n  <li>VDP = Vulnerability Disclosure Policy (<a target=\"_blank\" href=\"https:\/\/www.cisa.gov\/securebydesign\/pledge\">CISA Pledge<\/a>)<\/li>\n  <li>VLM = Vision-Language Model (AI models that jointly understand and generate both visual and language data)<\/li>\n  <li>VPN\t=\tVirtual Private Network<\/li>\n  <li>VRP\t=\tVulnerability Research Program (way for organizations to receive security vulnerabilities found)<\/li>\n  <li>VSM\t=\tValue Stream Mapping<\/li>\n  <li>VSTS\t=\tVisual Studio Team Services  (Microsoft)<\/li>\n  <li>VTA = Versatile Tensor Accelerator (an extension of Apache TVM)<\/li>\n  <li>VTFET\t=\tVertical Transport Field Effect Transitor (IBM)<\/li>\n  <li>VTOC = Volatile Organic Compounds<\/li>\n  <li>VTL\t=\tVirtual Tape Library<\/li>\n  <li>vTPM\t=\tVirtual Trusted Platform Module<\/li>\n  <li>VUI\t=\tVoice User Interface (Amazon Alexa &amp; Google Home)<\/li>\n  <li>VUCA\t=\tVolatile + Uncertain + Complex + Ambiguous<\/li>\n  <li>VXLAN = Virtual Extensible Local Area Network (enables scalability)<\/li>\n<\/ul>\n\n<p><a name=\"W\"><\/a><\/p>\n<h3 id=\"w\">W<\/h3>\n\n<ul>\n  <li>w\/o\t=\twithout (common vernacular)<\/li>\n  <li>W3C\t=\tWorld Wide Web Consortium\t(defines standards for JavaScript, HTML, XML, RDF, OWL, etc.)\u00e5<\/li>\n  <li>WAAP\t=\tWeb application and API protection\t(a comprehensive security approach as an enhancement over web application firewalls)<\/li>\n  <li>WABD\t=\tWell Architected By Design<\/li>\n  <li>WAF\t=\tWeb Application Firewall\t(AWS)<\/li>\n  <li>WAF\t=\tWell-Architected Framework<\/li>\n  <li>WAL\t=\tWrite-Ahead Log<\/li>\n  <li>WAN\t=\tWide Area Network<\/li>\n  <li>Wasm\t=\tWebAssembly (binary instruction coding for a stack-based virtual machine in browsers)<\/li>\n  <li>WBS\t=\tWork Breakdown Structure<\/li>\n  <li>WDYM\t=\tWhat Do You Mean? (chat slang)<\/li>\n  <li>WEP\t=\tWired Equivalent Privacy (mobile security)<\/li>\n  <li>WFA\t=\tWork From Anywhere<\/li>\n  <li>WFH\t=\tWork From Home<\/li>\n  <li>WIP\t=\tWork In Process<\/li>\n  <li>WMI\t=\tWindows Management Instrumentation (Microsoft)<\/li>\n  <li>WMS = Warehouse Management System<\/li>\n  <li>WoL = Wake-on-LAN (BIOS\/UEFI setting so device can save battery yet be worken from sleep from a static IP address)<\/li>\n  <li>WOT\t=\tWeb of Trust  (security)<\/li>\n  <li>WPA\t=\tWi-Fi Protected Access<\/li>\n  <li>WPF\t=\tWindows Presentation Foundation (Microsoft)<\/li>\n  <li>WS\t=\tWorkspace<\/li>\n  <li>WSDL\t=\tWeb Services Description Language<\/li>\n  <li>WSFC\t=\tWindows Server Failover Clustering\/Cluster (Microsft)<\/li>\n  <li>WTF\t=\tWhat The F*ck (internet slang)<\/li>\n  <li>WVD\t=\tWindows Virtual Desktop (Microsoft VDI was rebranded to Azure Virtual Desktop)<\/li>\n<\/ul>\n\n<p><a name=\"X\"><\/a><\/p>\n<h3 id=\"x\">X<\/h3>\n\n<ul>\n  <li>X.509\t=\t(certificate format used for HTTPS on web servers\t digitally sign application code\t secure email\t and authenticate devices to corporate networks)<\/li>\n  <li>XaaS\t=\tAnything as a Service<\/li>\n  <li>XKX\t=\tExternal Key Store\t(Amazon service to store secrets outside of AWS)<\/li>\n  <li>XDR\t=\tExtended Detection and Response (formerly Microsoft Security Center)<\/li>\n  <li>XML\t=\tExtensible Markup Language<\/li>\n  <li>XMPP =\tExtensible Message and Presence Protocol<\/li>\n  <li>XOR\t=\tExclusive-Or (Assembly language instruction and symmetric encryption algorithm)<\/li>\n<\/ul>\n\n<p><a name=\"Y\"><\/a><\/p>\n<h3 id=\"y\">Y<\/h3>\n\n<ul>\n  <li>YAML\t=\tYAML Ain\u2019t Markup Language\t(Human-readable data-serialization text format)<\/li>\n  <li>YMMV\t=\tYour Mileage May Vary (chat slang)<\/li>\n  <li>YOLO\t=\tYou Only Live Once (slang)<\/li>\n  <li>YTD\t=\tYear-To-Date<\/li>\n<\/ul>\n\n<p><a name=\"Z\"><\/a><\/p>\n<h3 id=\"z\">Z<\/h3>\n\n<ul>\n  <li>ZKP =\tZero-Knowledge Proof (cryptographic protocols where a prover demonstrates knowledge of a secret to a verifier without disclosing the actual secret or other information)<\/li>\n  <li>ZOPA = Zone Of Possible Agreement (in a negotiation)<\/li>\n  <li>ZRS\t=\tZone-Redundant Storage (across 3 Azure Availability Zones)<\/li>\n  <li>ZT\t=\tZero Trust<\/li>\n  <li>ZTA\t=\tZero Trust Architecture<\/li>\n  <li>ZTDA\t=\tZero Trust Data Access<\/li>\n  <li>ZTNA\t=\tZero Trust Network Access\/Architecture<\/li>\n  <li>ZTS\t=\tZero Trust Security<\/li>\n<\/ul>\n\n<hr \/>\n\n<h2 id=\"other-glossaries-provide-definitions\">Other Glossaries provide definitions:<\/h2>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=GBHim0-CyzU\">VIDEO of acronyms<\/a> takes 21 minutes<\/li>\n  <li>https:\/\/www.acronymfinder.com\/<\/li>\n  <li>https:\/\/tryhackme.com\/r\/glossary<\/li>\n  <li>https:\/\/www.edglossary.org\/<\/li>\n  <li>https:\/\/github.com\/mikepound\/tls-exercises\/blob\/master\/glossary.pdf<\/li>\n  <li>https:\/\/docs.aws.amazon.com\/glossary\/latest\/reference\/glos-chap.html\n  <br \/><br \/><\/li>\n<\/ul>\n\n<p><sub>25-12-11 v082 OOS :2024-12-28-acronyms.md created 2024-12-28<\/sub><\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/git-custom-commands\/"}},"id":"https:\/\/wilsonmar.github.io\/git-custom-commands","published":"2025-12-10T00:00:00+00:00","updated":"2025-12-10T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Less typing means less mistakes, and more time on social media<\/i><\/p>\n<p align=\"right\">\n<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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgit-custom-commands%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#on-a-mac\" id=\"markdown-toc-on-a-mac\">On a Mac:<\/a><\/li>\n  <li><a href=\"#on-windows\" id=\"markdown-toc-on-windows\">On Windows:<\/a><\/li>\n  <li><a href=\"#try-git-echo\" id=\"markdown-toc-try-git-echo\">Try git echo<\/a><\/li>\n  <li><a href=\"#try-git-c-message\" id=\"markdown-toc-try-git-c-message\">Try git c \u201cmessage\u201d<\/a>    <ul>\n      <li><a href=\"#view-log\" id=\"markdown-toc-view-log\">View log<\/a><\/li>\n      <li><a href=\"#graphviz\" id=\"markdown-toc-graphviz\">Graphviz<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#visualization-of-branches\" id=\"markdown-toc-visualization-of-branches\">Visualization of branches<\/a>    <ul>\n      <li><a href=\"#ascii-art\" id=\"markdown-toc-ascii-art\">ASCII Art<\/a><\/li>\n      <li><a href=\"#flowchart-using-mermaidjs\" id=\"markdown-toc-flowchart-using-mermaidjs\">Flowchart using Mermaid.js<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#resources\" id=\"markdown-toc-resources\">Resources<\/a><\/li>\n  <li><a href=\"#more\" id=\"markdown-toc-more\">More<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>Here is a deep dive into how you can define custom commands for Git to use.<\/p>\n\n<p>I\u2019ve stored several examples in a <strong>git-custom-commands<\/strong> folder within my repo.<\/p>\n\n<pre>\n   <a target=\"_blank\" href=\"https:\/\/github.com\/wilsonmar\/git-utilities\">https:\/\/github.com\/wilsonmar\/git-utilities<\/a>\n   <\/pre>\n\n<ol>\n  <li>\n    <p>Fork it so you can make changes and add more files of your own.<\/p>\n  <\/li>\n  <li>\n    <p>Get my repo onto your machine using a Git UI or in a Git command line:<\/p>\n\n    <pre><strong>\ngit clone <a target=\"_blank\" href=\"https:\/\/github.com\/wilsonmar\/git-utilities\">https:\/\/github.com\/wilsonmar\/git-utilities<\/a>\n<\/strong><\/pre>\n\n    <h3 id=\"on-a-mac\">On a Mac:<\/h3>\n  <\/li>\n  <li>\n    <p>cd into the repo.<\/p>\n\n    <pre><strong>\ncd git-custom-commands\n<\/strong><\/pre>\n\n    <p>The contents of this folder needs to be within the path where the operating system searches for programs and scripts.<\/p>\n  <\/li>\n  <li>\n    <p>Optionally, create a folder on the operating system\u2019s path\nby copying the <strong>git-custom-commands<\/strong> folder from within the Git repository\ninto a folder in your home directory.<\/p>\n\n    <p>Creating your own folder enables you to add more files to that.<\/p>\n\n    <pre>\ncd $HOME\nmkdir git-custom-commands\n<\/pre>\n\n    <p>Linux people often use <tt>\/opt\/bin<\/tt>, but on a Mac that is a protected area requiring sudo access.<\/p>\n  <\/li>\n  <li>\n    <p>Switch to a text editor to edit file <strong>~\/.bash_profile<\/strong>.\nFor example, to use Sublime Text:<\/p>\n\n    <pre>\nsubl ~\/.bash_profile\n<\/pre>\n  <\/li>\n  <li>\n    <p>At the bottom or wherever, ADD the path to your git-custom-command files.<\/p>\n\n    <p>PROTIP: Git automatically make files available as a subcommand, just like regular executable scripts.<\/p>\n\n    <p>An example of referencing where I cloned:<\/p>\n\n    <pre><strong>\nexport PATH=\"$HOME\/gits\/wilsonmar\/git-utilities\/git-custom-commands:$PATH\"\n<\/strong><\/pre>\n\n    <p>This adds the folder to the front of the PATH.<\/p>\n  <\/li>\n  <li>\n    <p>View the PATH:<\/p>\n\n    <pre>\necho $PATH\n<\/pre>\n  <\/li>\n  <li>\n    <p>So the changes \u201ctake\u201d, exit terminal session windows or re-run Terminal initialization:<\/p>\n\n    <pre>\nsource ~\/.bash_profile\n<\/pre>\n  <\/li>\n  <li>\n    <p>cd into the git-custom-commands folder.<\/p>\n  <\/li>\n  <li>\n    <p>Set permissions to execute each file:<\/p>\n\n    <pre><strong>\nchmod 555 *\n<\/strong><\/pre>\n  <\/li>\n  <li>\n    <p>Skip to <a href=\"#TryEcho\"> Try Git Echo<\/a> below.<\/p>\n\n    <h3 id=\"on-windows\">On Windows:<\/h3>\n  <\/li>\n  <li>\n    <p>If you haven\u2019t already, install Chocolatey, then<\/p>\n\n    <pre><strong>\nchoco install mysysgit\n<\/strong><\/pre>\n  <\/li>\n  <li>\n    <p>Look for the libeexec\\git-core folder:<\/p>\n\n    <pre><strong>\ncd \/\ndir git-core \/s\n<\/strong><\/pre>\n\n    <p>What I see:<\/p>\n\n    <pre>\n Directory of C:\\Program Files\\Git\\mingw64\\libexec\n&nbsp;\n04\/21\/2016  11:09 AM    &LT;DIR&gt;          git-core\n            0 File(s)              0 bytes\n&nbsp;\n Directory of C:\\Program Files\\Git\\mingw64\\share\n&nbsp;\n04\/21\/2016  11:09 AM    &LT;DIR&gt;          git-core\n            0 File(s)              0 bytes\n<\/pre>\n  <\/li>\n  <li>\n    <p>cd into the folder:<\/p>\n\n    <pre>\nC:\\Program Files\\Git\\mingw64\\libexec\\git-core\n<\/pre>\n\n    <p>Older 32-bit machines would use:<\/p>\n\n    <pre>\nC:\\Program Files (x86)\\Git\\libexec\\git-core\n<\/pre>\n  <\/li>\n  <li>\n    <p>List files in git-core.<\/p>\n\n    <p>Notice several files do not have an *.exe file extension:<\/p>\n\n    <ul>\n      <li>git-bisect<\/li>\n      <li>git-cittool<\/li>\n      <li>git-cvsimport<\/li>\n      <li>git-cvsserver<\/li>\n      <li>git-difftool<\/li>\n      <li>git-gui<\/li>\n      <li>git-instaweb<\/li>\n      <li>git-merge-octopus<\/li>\n      <li>git-mergetool<\/li>\n      <li>git-rebase<\/li>\n      <li>git-request-pull<\/li>\n      <li>git-send-email<\/li>\n      <li>git-sh-setup<\/li>\n      <li>git-sh-i18n<\/li>\n      <li>git-stash<\/li>\n      <li>git-subtree\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <p>PROTIP: The first line of these files define them as shell files which Git can process\nbecause Git executable on Windows has the bits to process shell files in sh.exe:<\/p>\n\n    <pre>\nstart \"\" \"%SYSTEMDRIVE%\\Program Files (x86)\\Git\\bin\\sh.exe\" --login \nstart \"\" \"%SYSTEMDRIVE%\\Program Files\\Git\\bin\\sh.exe\" --login\n<\/pre>\n  <\/li>\n  <li>\n    <p>Copy the contents of git-custom-commands into Git client\u2019s git-core folder found above:<\/p>\n\n    <p><a name=\"TryEcho\"><\/a><\/p>\n\n    <h3 id=\"try-git-echo\">Try git echo<\/h3>\n  <\/li>\n  <li>\n    <p>Try the command <strong>git-echo<\/strong>, created just so we can verify whether we have it working:<\/p>\n\n    <pre><strong>\ngit echo \"hello world\"\n<\/strong><\/pre>\n\n    <p>You should see response:<\/p>\n\n    <pre>\nhello world\n<\/pre>\n\n    <p>Instead of \u201chello world\u201d, you can type in any phrase. Double quotes are not necessary if you only type one word.<\/p>\n\n    <p>PROTIP: The git echo command is handled by a file named <strong>git-echo<\/strong>,\nwhich has NO file extension (such as .sh). \nGit knows to add the dash in the name when it looks for a custom command.<\/p>\n\n    <p>The $1 is the place-holder for the message typed into the command.<\/p>\n\n    <h2 id=\"try-git-c-message\">Try git c \u201cmessage\u201d<\/h2>\n  <\/li>\n<\/ol>\n\n<p>The git-c custom command is the equivalent to typing this:<\/p>\n\n<pre>\ngit add -A\ngit commit -m '@mac: message in command line'\n   <\/pre>\n\n<p>The command to invoke it:<\/p>\n\n<p><tt><strong>\ngit c \u201cmessage in command line\u201d\n   <\/strong><\/tt><\/p>\n\n<p>A sample response:<\/p>\n\n<p><tt><strong>\n[master 181b537] @mac: message in command line\n 1 file changed, 0 insertions(+), 0 deletions(-)\n create mode 100644 4\n   <\/strong><\/tt><\/p>\n\n<p>The underlying code:<\/p>\n\n<p><tt><strong>\ngit add -A\ngit commit \u2013message=\u201d@${PWD##*\/} $1\u201d\n   <\/strong><\/tt><\/p>\n\n<p>The weird set of characters in the commit line \n   produces the Present Working Directory (PWD).<\/p>\n\n<p>It is not really needed to add the username because<\/p>\n\n<p>Troubleshoot your path if you see this error message:<\/p>\n\n<pre>\ngit: 'c' is not a git command. See 'git --help'.\n&nbsp;\nDid you mean one of these?\n        checkout\n        clone\n        commit\n        gc\n   <\/pre>\n\n<h3 id=\"view-log\">View log<\/h3>\n\n<p>View the messages:<\/p>\n\n<p><tt>\ngit log \u2013oneline\n   <\/tt><\/p>\n\n<h3 id=\"graphviz\">Graphviz<\/h3>\n\n<p>Seth House did several videos on Git and GitHub, in which he showed use of a utility to create a visualization\nfrom the command line. He was nice enough to share it with me.<\/p>\n\n<ol>\n  <li>\n    <p>Install GraphViz using a package manager. On a Mac:<\/p>\n\n    <pre><strong>\nbrew install graphviz\n<\/strong><\/pre>\n\n    <p>This installs dependencies libtiff, webp, gd<\/p>\n\n    <ul>\n      <li>http:\/\/www.graphviz.org\/Download_macos.php - graphviz-2.40.1.pkg<\/li>\n      <li>http:\/\/www.graphviz.org\/Download_windows.php\n<br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>Save the file from a text editor into folder<\/p>\n\n    <p>Alternately, copy the file graph-dag into that folder from the cloned folder.<\/p>\n  <\/li>\n  <li>\n    <p>Set permissions to execute the file:<\/p>\n\n    <pre><strong>\nchmod a+x graph-dag\n<\/strong><\/pre>\n  <\/li>\n  <li>\n    <p>Run the graph-dag that outputs a commit graph using the GraphViz \u201cdot\u201d tool:<\/p>\n\n    <pre><strong>\ngit graph-dag HEAD~10.. | dot -Tpng &gt; mygraph.png\n<\/strong><\/pre>\n  <\/li>\n  <li>\n    <p>Additionally, look at the other utilities at:<\/p>\n\n    <p>https:\/\/git.wiki.kernel.org\/index.php\/ExampleScripts<\/p>\n\n    <ul>\n      <li>Sorting commits by commit message line count \/ changed lines ratio<\/li>\n      <li>Copying all changed files from the last N commits<\/li>\n      <li>Setting the timestamps of the files to the commit timestamp of the commit which last touched them<\/li>\n    <\/ul>\n  <\/li>\n<\/ol>\n\n<p><a id=\"Viz\"><\/a><\/p>\n\n<h2 id=\"visualization-of-branches\">Visualization of branches<\/h2>\n\n<p>git log does a good job of illustrating branches,\nbut GitKraken provides this colorful branch graphics:<\/p>\n\n<p><img src=\"https:\/\/cloud.githubusercontent.com\/assets\/300046\/25506378\/46065ecc-2b74-11e7-9a89-dd68be4832a3.png\" alt=\"git-utilities gitkraken dag 579x279\" \/><\/p>\n\n<ul>\n  <li>\n    <p>The master branch is the light-blue line on the left.<\/p>\n  <\/li>\n  <li>\n    <p>The Bug fix branch is the darker-blue line to the right of that.<\/p>\n  <\/li>\n  <li>\n    <p>The develop branch is the purple line to the right of that.<\/p>\n  <\/li>\n<\/ul>\n\n<h3 id=\"ascii-art\">ASCII Art<\/h3>\n\n<p>Make some ASCII art from (part of your) history<\/p>\n\n<pre>\nA - B - C\n  \\       \\\n    D - E - F\n<\/pre>\n\n<p><a name=\"Flowchart\"><\/a><\/p>\n\n<h3 id=\"flowchart-using-mermaidjs\">Flowchart using Mermaid.js<\/h3>\n\n<p>Text like this within GitHub Markdown (used by Azure DevOps project Wikis, GitLab, Notion, Obsidian):<\/p>\n<pre>\ngraph TD;\n    A[Start] --&gt; B(Process Input);\n    B --&gt; C{Check Status?};\n    C -- Yes --&gt; D[Finish];\n    C -- No --&gt; B;\n<\/pre>\n<p>or created using <a target=\"_blank\" href=\"https:\/\/mermaid.live\/edit\">an online editor<\/a> \nare 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>\n<pre><code class=\"language-mermaid\">gitGraph\n  commit\n  commit\n  branch develop\n  checkout develop\n  commit\n  commit\n  checkout main\n  merge develop\n  commit\n  commit\n<\/code><\/pre>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/mermaid@10\/dist\/mermaid.min.js\"><\/script>\n\n<script>\n  \/\/ Tell Mermaid to look inside elements with class 'language-mermaid':\n  mermaid.initialize({\n    \/\/ disable auto-scan:\n    startOnLoad: false,\n    theme: 'default', \/\/ Options: 'default', 'dark', 'forest', 'neutral'\n    securityLevel: 'loose' \n  });\n  \/\/ Process and render the diagrams after the page is loaded:\n  function initMermaid() {\n    \/\/ Find all the code blocks marked with 'language-mermaid':\n    document.querySelectorAll('.language-mermaid').forEach(function(codeElement) {\n      \/\/ Get the raw diagram text:\n      let graphDefinition = codeElement.textContent;\n  \/\/ Create a new div to hold the rendered diagram:\n  let wrapper = document.createElement('div');\n  wrapper.className = 'mermaid';\n  wrapper.textContent = graphDefinition;\n  \/\/ Replace the original code block with the new div:\n  codeElement.parentNode.replaceWith(wrapper);\n});\n\/\/ Render the diagrams found in the new divs:\nmermaid.init(undefined, '.mermaid');\n  }\n\/\/ Run the initialization function once the entire page is ready:\n    document.addEventListener('DOMContentLoaded', initMermaid);\n<\/script>\n\n<p>BTW Like Graphviz, Mermaid draws \n<a target=\"_blank\" href=\"https:\/\/github.com\/mermaid-js\/mermaid?tab=readme-ov-file#flowchart-docs---live-editor\">Flowcharts<\/a>,\n<a target=\"_blank\" href=\"https:\/\/github.com\/mermaid-js\/mermaid?tab=readme-ov-file#gantt-chart-docs---live-editor\">Gantt charts<\/a>,\n<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>,\n<a target=\"_blank\" href=\"https:\/\/github.com\/mermaid-js\/mermaid?tab=readme-ov-file#user-journey-diagram-docs---live-editor\">User Journey diagrams<\/a>,\n<a target=\"_blank\" href=\"https:\/\/github.com\/mermaid-js\/mermaid?tab=readme-ov-file#pie-chart-docs---live-editor\">Pie charts<\/a>,\nUML:\n<a target=\"_blank\" href=\"https:\/\/github.com\/mermaid-js\/mermaid?tab=readme-ov-file#sequence-diagram-docs---live-editor\">Sequence Diagrams<\/a>,\n<a target=\"_blank\" href=\"https:\/\/github.com\/mermaid-js\/mermaid?tab=readme-ov-file#class-diagram-docs---live-editor\">Class diagrams<\/a>,\n<a target=\"_blank\" href=\"https:\/\/github.com\/mermaid-js\/mermaid?tab=readme-ov-file#state-diagram-docs---live-editor\">State diagrams<\/a>,<\/p>\n\n<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).\nThe four levels of C4 diagrams:<\/p>\n\n<ul>\n  <li>\n    <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\u2019s scope and external integrations.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n<\/ul>\n\n<h2 id=\"resources\">Resources<\/h2>\n\n<ul>\n  <li>http:\/\/mfranc.com\/tools\/git-custom-command\/<\/li>\n<\/ul>\n\n<h2 id=\"more\">More<\/h2>\n\n<p>This is one of a series on Git and GitHub:<\/p>\n\n<ol>\n  <li>\n    <p><a href=\"\/git-github-videos\/\">Git and GitHub videos<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/why-git\/\">Why Git? (file-based backups vs Git clone)<\/a><\/li>\n  <li>\n    <p><a href=\"\/markdown-text-for-github-from-html\/\">Git Markdown text<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/git-basics\/\">Git basics (script)<\/a><\/li>\n  <li><a href=\"\/git-whoops\/\">Git whoops (correct mistakes)<\/a><\/li>\n  <li>\n    <p><a href=\"\/git-messages\/\">Git messages (in commits)<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/git-shortcuts\/\">Git command shortcuts<\/a><\/li>\n  <li>\n    <p><a href=\"\/git-custom-commands\/\">Git custom commands<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a href=\"\/git-flow\/\">Git-client based workflows<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a href=\"\/git-head\/\">Git HEAD (Commitish references)<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/git-imerge\/\">Git interactive merge (imerge)<\/a><\/li>\n  <li><a href=\"\/git-patch\/\">Git patch<\/a><\/li>\n  <li>\n    <p><a href=\"\/git-rebase\/\">Git rebase<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/git-utilities\/\">Git utilities<\/a><\/li>\n  <li>\n    <p><a href=\"\/git-signing\/\">Git-signing<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/git-hooks\/\">Git hooks<\/a><\/li>\n  <li><a href=\"\/github-data-security\/\">GitHub data security<\/a><\/li>\n  <li>\n    <p><a href=\"\/tfs-vs-github\/\">TFS vs GitHub<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/github-actions\/\">GitHub actions for automation JavaScript<\/a><\/li>\n  <li><a href=\"\/github-api\/\">GitHub REST API<\/a><\/li>\n  <li><a href=\"\/github-graphql\/\">GitHub GraphQL API<\/a><\/li>\n  <li><a href=\"\/powershell-github\/\">GitHub PowerShell API Programming<\/a><\/li>\n  <li><a href=\"\/github-graphql-powershell\/\">GitHub GraphQL PowerShell Module<\/a><\/li>\n<\/ol>\n\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/protect-credit\/"}},"id":"https:\/\/wilsonmar.github.io\/protect-credit","published":"2025-12-01T00:00:00+00:00","updated":"2025-12-01T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>How to block thieves from taking advantage of data leaks to steal your good credit and money.<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/protect-credit\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fprotect-credit%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#your-data-is-exposed\" id=\"markdown-toc-your-data-is-exposed\">Your data is exposed<\/a><\/li>\n  <li><a href=\"#proactive-defense\" id=\"markdown-toc-proactive-defense\">Proactive defense<\/a><\/li>\n  <li><a href=\"#block-credit\" id=\"markdown-toc-block-credit\">Block Credit<\/a>    <ul>\n      <li><a href=\"#unblock-credit\" id=\"markdown-toc-unblock-credit\">UnBlock Credit<\/a><\/li>\n      <li><a href=\"#free-credit-report\" id=\"markdown-toc-free-credit-report\">Free credit report<\/a><\/li>\n    <\/ul>\n  <\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<h2 id=\"your-data-is-exposed\">Your data is exposed<\/h2>\n\n<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>\n\n<p>Even the government agency (DISA) which processes applications for Top-Secret clearance for all branches of the US military has been hacked.<\/p>\n\n<p>Yet, many companies still give anyone access to your information when given enough of your secrets.<\/p>\n\n<p>Monitoring is not enough. What will you do if you find out if you\u2019ve been exposed?<\/p>\n\n<p>[_] Look yourself up at:<\/p>\n<ul><a target=\"_blank\" href=\"https:\/\/haveibeenpwned.com\/\">HaveIBeenPwned.com<\/a><\/ul>\n\n<h2 id=\"proactive-defense\">Proactive defense<\/h2>\n\n<p>Here\u2019s what can you do to guard your secrets:\nI can help you.<\/p>\n\n<ol>\n  <li>\n    <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>\n  <\/li>\n  <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 \u2013cask tor-browser<\/tt><\/a><\/li>\n  <li>Install a Password Manager\/Generator (KeePassXC) to generate a new for each account.<\/li>\n  <li>Create a password database that works locally rather than over the internet cloud.<\/li>\n  <li>Store your password vault on a secure USB device.<\/li>\n  <li>\n    <p>Enable your trustee to access them if you are ever disabled or killed.<\/p>\n  <\/li>\n  <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>\n  <li>\n    <p>Get a USB Yubikey (with custom markings) on your physical keychain to protect key accounts (emails, Paypal, banking, etc.).<\/p>\n  <\/li>\n  <li>Create a different email for signing up to utilities (phone, trash, electric, etc.).<\/li>\n  <li><a href=\"Phone\">Setup the phone number from your mobile carrier for Google Voice<\/a><\/li>\n  <li><a href=\"Phone\">Give out your Google number rather than the phone number from your mobile carrier<\/a>.<\/li>\n  <li>\n    <p>Note in your Password Manager every account where you gave your private phone, so you can update them when that changes.<\/p>\n  <\/li>\n  <li>Generate random nonsense words as answers to account recovery, and write them in your Password Manager.<\/li>\n  <li>Give to medical personnel a birthdate that is a few days off because you\u2019ll be asked to announce it publicly at medical offices.<\/li>\n  <li>\n    <p>Do not give out information to somone calling you.<\/p>\n  <\/li>\n  <li><a href=\"#LockSSN\">Block thieves from using your social security number to apply for jobs<\/a>.<\/li>\n  <li>\n    <p><a href=\"#UnLockSSN\">Unblock it before you submit an I-9 before starting work<\/a>.<\/p>\n  <\/li>\n  <li><a href=\"#BlockCredit\">Block thieves from opening credit in your name<\/a>.<\/li>\n  <li>\n    <p><a href=\"#UnBlockCredit\">Unblock your credit before applying for a credit card or loan<\/a>.<\/p>\n  <\/li>\n  <li>Open a POBOX to receive physical mail so your home address is not exposed.<\/li>\n  <li>Print bank checks with POBOX rather than your home address. Aoid writing paper checks.<\/li>\n  <li>\n    <p>Buy property using an Land Trust registed through a lawyer to avoid exposing your home address (but not jeopardizing Homestead protections).<\/p>\n  <\/li>\n  <li>Get a passport to show TSA during travel (both domestic and international).<\/li>\n  <li>Get a drivers license without your home address (not a Real ID).<\/li>\n  <li>Remove biometric capabilities before\/while traveling.<\/li>\n  <li>\n    <p>Get a burner phone to use while traveling.<\/p>\n  <\/li>\n  <li>Open an email only for banks (so you can ignore emails about banking on your social email).<\/li>\n  <li>Create a different name and each account for social media.<\/li>\n  <li>\n    <p>Setup an alternative name and email address to make social media posts.<\/p>\n  <\/li>\n  <li>Setup blocks of calls from unknown numbers.<\/li>\n  <li>Add known callers to your allow list.<\/li>\n  <li>\n    <p>Ask those contacting you how they got your phone number.<\/p>\n  <\/li>\n  <li>Keep cash on hand for emergencies.<\/li>\n  <li>Hide valuables wisely.<\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"BlockCredit\"><\/a><\/p>\n\n<h2 id=\"block-credit\">Block Credit<\/h2>\n\n<p>In the US there are three companies that keep credit files which banks query before issuing credit:<\/p>\n\n<p>WARNING: Do this at home rather than on an unsecure airport\/hotel line.<\/p>\n\n<p>[_] <strong>Equifax<\/strong>: Instructions at: https:\/\/www.equifax.com\/personal\/help\/article-list\/-\/h\/a\/place-lift-remove-security-freeze\/<\/p>\n\n<ol>\n  <li>\n    <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\n   https:\/\/www.equifax.com\/personal\/products\/credit\/credit-lock-alert\/<\/p>\n  <\/li>\n  <li>Use a secure browser to sign Up for an account online at<br \/>https:\/\/my.equifax.com\/consumer-registration\/UCSC\/#\/personal-info<\/li>\n  <li>Give your POBOX and phone.<\/li>\n  <li>Equifax challenges you with confirming historical trivia from your credit history.<\/li>\n<\/ol>\n\n<p>QUESTION: Is there a PIN to make changes?<\/p>\n\n<ol>\n  <li>Optionally install the Equifax mobile app on <a target=\"_blank\" href=\"https:\/\/itunes.apple.com\/us\/app\/lock-alert\/id1325259833?ls=1&amp;mt=8\">iPhone<\/a> or <a target=\"_blank\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.equifax.android.lockandalert\">Android<\/a>.<\/li>\n  <li>In your email app, add a star for any email from the \u201cfrom email\u201d.\n   <br \/><br \/><\/li>\n<\/ol>\n\n<p>[_] <strong>Experian<\/strong> (used by Capital One)\nhttps:\/\/www.experian.com\/blogs\/ask-experian\/how-to-add-a-security-freeze-to-your-credit-file\/<\/p>\n\n<ol>\n  <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>\n  <li>Click \u201cCreate a free account\u201d.<\/li>\n  <li>Click in \u201cLast 4 of Social Security Number\u201d and type it.<\/li>\n  <li>Type in your secure phone number.<\/li>\n  <li>From the text message, copy the URL and paste in your secure browser.<\/li>\n  <li>Switch to the form and fill out your birth date, SSN.<\/li>\n  <li>Enter your <strong>banking email, POBOX mailing address<\/strong><\/li>\n  <li>Generate a security question answer and random 4-digit PIN in your password manager.<\/li>\n  <li>Copy answers from the password manager and paste it in the form. Submit and Continue.<\/li>\n  <li>\n    <p>Call the company at 888-548-7878 if it cannot authenticate you.<\/p>\n  <\/li>\n  <li>\n    <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\u2019t know the PIN assigned to your account.<\/p>\n  <\/li>\n  <li>In your email app, copy the \u201cfrom email\u201d address and add a formula to star if when email comes from that email address.\n   <br \/><br \/><\/li>\n<\/ol>\n\n<p>[_] <strong>TransUnion<\/strong> (used by Capital One) 800-916-8800 M-F 8a-9p ET &amp; SatSun 8a\u20135p ET. Instructions are at: https:\/\/www.transunion.com\/credit-freeze\/credit-freeze-faq#adding-freeze-0<\/p>\n\n<ol>\n  <li>PROTIP: Avoid using a secure browser to Sign Up for an account online at<br \/>https:\/\/www.transunion.com\/free-credit-monitoring<\/li>\n  <li>\n    <p>Click \u201cSign Up for Free\u201d. BLAH: I got stuck at their \u201cValidating information\u201d.<\/p>\n  <\/li>\n  <li>PROTIP: Sign up by phone: 833-806-1627 because I got rejected by their website.<\/li>\n<\/ol>\n\n<p>QUESTION: Is there a PIN to make changes?<\/p>\n\n<ol>\n  <li>In your email app, add a star for any email from the \u201cfrom email\u201d.<\/li>\n<\/ol>\n\n<p>\u201cAlthough 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>\n\n<p><br \/><br \/><\/p>\n\n<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>\n\n<p><a name=\"UnBlockCredit\"><\/a><\/p>\n\n<h3 id=\"unblock-credit\">UnBlock Credit<\/h3>\n\n<p>If you forget to unfreeze you credit before applying, you will most likely be denied.<\/p>\n\n<p>Credit agencies must lift the freeze within one hour of an unfreeze request made online or by phone,\nor within three business days when made by mail.<\/p>\n\n<ul>\n  <li>\n    <p>https:\/\/my.equifax.com\/membercenter\/#\/home<\/p>\n  <\/li>\n  <li>\n    <p>Experian<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/service.transunion.com\/dss\/login.page?dest=freezeStatus<\/p>\n  <\/li>\n<\/ul>\n\n<h3 id=\"free-credit-report\">Free credit report<\/h3>\n\n<p>[_] Mark on your calendar a repeating appointment each year to request a credit report from each credit reporting agency.<\/p>\n\n<p>According to https:\/\/consumer.ftc.gov\/free-credit-reports\nExtra free reports qualify if denied credit\/employment, suspecting fraud, or unemployed.<\/p>\n\n<ol>\n  <li>\n    <p>In a browser, go to <a target=\"_blank\" href=\"https:\/\/www.AnnualCreditReport.com\">AnnualCreditReport.com<\/a> and select which bureau\u2019s report you want (or all three).<\/p>\n\n    <p>WARNING: Other sites offering this service are scams. https:\/\/consumer.ftc.gov\/free-credit-reports<\/p>\n  <\/li>\n  <li>\n    <p>Verify your identity with details like name, address, SSN, and account info\u2014no credit card needed.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n<\/ol>\n\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/jekyll-templates\/"}},"id":"https:\/\/wilsonmar.github.io\/jekyll-templates","published":"2025-11-24T00:00:00+00:00","updated":"2025-11-24T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>The most popular<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/jekyll-templates\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-templates%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#jekyll-theme-shops\" id=\"markdown-toc-jekyll-theme-shops\">Jekyll Theme shops<\/a><\/li>\n  <li><a href=\"#jekylltips-templates\" id=\"markdown-toc-jekylltips-templates\">Jekyll.tips Templates<\/a><\/li>\n  <li><a href=\"#responsive\" id=\"markdown-toc-responsive\">Responsive?<\/a>    <ul>\n      <li><a href=\"#themes-from-michael-rose\" id=\"markdown-toc-themes-from-michael-rose\">Themes from Michael Rose<\/a><\/li>\n      <li><a href=\"#feature-comparison-table\" id=\"markdown-toc-feature-comparison-table\">Feature Comparison Table<\/a><\/li>\n      <li><a href=\"#pagetoc\" id=\"markdown-toc-pagetoc\">PageTOC<\/a><\/li>\n      <li><a href=\"#installation-and-generation\" id=\"markdown-toc-installation-and-generation\">Installation and Generation<\/a><\/li>\n      <li><a href=\"#grunt-example\" id=\"markdown-toc-grunt-example\">Grunt example<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#gulp-example\" id=\"markdown-toc-gulp-example\">Gulp example<\/a><\/li>\n  <li><a href=\"#more-on-front-end-styling\" id=\"markdown-toc-more-on-front-end-styling\">More on front-end styling<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>This article lists and evaluates templates for Jekyll, \nwhich drives GitHub.io static websites.<\/p>\n\n<p>The structure of content (.md files) created for display using \nJekyll makes it easy (with only a few edits) \nto switch the site to use any number of \nother Jekyll themes \/ templates.<\/p>\n\n<h3 id=\"jekyll-theme-shops\">Jekyll Theme shops<\/h3>\n\n<p>My personal favorite is:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"http:\/\/jekyll.tips\/templates\/\">jekyll.tips\/templates<\/a>\n   by Mike Neumegen (<a target=\"_blank\" href=\"https:\/\/twitter.com\/mikeneumegen\">@mikeneumegen<\/a>,\n   CEO of @CloudCannonApp, a SaaS services provider for Jekyll)<\/li>\n<\/ul>\n\n<p>Within the Jekyll repository on GitHub:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/jekyll\/jekyll\/wiki\/Themes\">\n    github.com\/jekyll\/jekyll\/wiki\/Themes<\/a><\/li>\n<\/ul>\n\n<p>Premium (paid) themes so you get updates and support, for less than $30.<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"http:\/\/jekyllthemes.io\">jekyllthemes.io<\/a><\/li>\n<\/ul>\n\n<p>This is an affiliate for other sites offering the same themes for less.<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"http:\/\/jekyllthemes.org\">jekyllthemes.org<\/a><\/li>\n<\/ul>\n\n<hr \/>\n\n<h3 id=\"jekylltips-templates\">Jekyll.tips Templates<\/h3>\n\n<p><a target=\"_blank\" href=\"http:\/\/jekyll.tips\/templates\/\">jekyll.tips\/templates<\/a>\nlists templates available at\n<a target=\"_blank\" href=\"https:\/\/github.com\/CloudCannon\/\">\nhttps:\/\/github.com\/CloudCannon<\/a>.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/github.com\/CloudCannon\/bakery-store\/\">\nBakery-store<\/a> is in GitHub but not shown in the gallery.<\/p>\n\n<h2 id=\"responsive\">Responsive?<\/h2>\n\n<p>To see responsive websites, get to it quicker on your mobile smartphone QR code is provided for you.<\/p>\n\n<p><a name=\"MichaelRoseThemes\"><\/a><\/p>\n\n<h3 id=\"themes-from-michael-rose\">Themes from Michael Rose<\/h3>\n\n<p>Content on this website was created by editing markdown text (index.md files)\nstored on GitHub.com.\nThe HTML sent to your browser for display is generated from markdown using\nRuby running <a href=\"http:\/\/jekyllrb.com\/\">Jekyll<\/a> 3.0 rendering modifications of the\n<a target=\"_blank\" href=\"https:\/\/github.com\/mmistakes\/minimal-mistakes\/\">\nminimal-mistakes theme from GitHub<\/a> by Michael Rose.<\/p>\n\n<p>Michael also created the\n<a target=\"_blank\" href=\"https:\/\/github.com\/mmistakes\/skinny-bones-jekyll\">\nskinny-bones-jekyll theme demo<\/a> forkable\n<a target=\"_blank\" href=\"https:\/\/mmistakes.github.io\/skinny-bones-jekyll\/\">\nfrom GitHub<\/a>.\nIt features more use of graphics, and allows for localization.<\/p>\n\n<p>Micheal blogs about his themes at\nhttps:\/\/mademistakes.com\/articles\/using-jekyll-2016\/<\/p>\n\n<p><a name=\"FeaturesTable\"><\/a><\/p>\n\n<h3 id=\"feature-comparison-table\">Feature Comparison Table<\/h3>\n\n<p>Features by each template:<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th style=\"text-align: left\">P<\/th>\n      <th style=\"text-align: left\">Feature<\/th>\n      <th style=\"text-align: center\">HPSTR<\/th>\n      <th style=\"text-align: right\">Minimal<\/th>\n      <th style=\"text-align: right\">Skinny<\/th>\n      <th style=\"text-align: right\">Simple<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">External links<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">C<\/td>\n      <td style=\"text-align: left\">Floating menu<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Gallery layout<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">B<\/td>\n      <td style=\"text-align: left\">I18n flags<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">YES+<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">B<\/td>\n      <td style=\"text-align: left\">AutoLocalization<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">YES+<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">C<\/td>\n      <td style=\"text-align: left\">Multiple authors<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\"><a href=\"#PageTOC\">Page TOC<\/a><\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Pages\/Articles<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">*<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Amazon links<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">B<\/td>\n      <td style=\"text-align: left\">Posts<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Pagination<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">C<\/td>\n      <td style=\"text-align: left\">Rakefile.rb<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">B<\/td>\n      <td style=\"text-align: left\">Reading time<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Tags list<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Site search<\/td>\n      <td style=\"text-align: center\">+<\/td>\n      <td style=\"text-align: right\">YES+<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Social icons only<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">YES<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">A<\/td>\n      <td style=\"text-align: left\">Social names<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">C<\/td>\n      <td style=\"text-align: left\">Timezones<\/td>\n      <td style=\"text-align: center\">YES<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">?<\/td>\n      <td style=\"text-align: left\">Game<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">?<\/td>\n      <td style=\"text-align: left\">Clickable Map<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">?<\/td>\n      <td style=\"text-align: left\">Shopping cart<\/td>\n      <td style=\"text-align: center\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n      <td style=\"text-align: right\">-<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>All the themes feature:<\/p>\n\n<ul>\n  <li>YAML front matter in index.md files processed by Jekyll<\/li>\n  <li>404.md<\/li>\n  <li>feed.xml generation<\/li>\n  <li>Disqus support<\/li>\n  <li>Use of SASS<\/li>\n  <li>Theme setup page from the main menu \/ tab<\/li>\n  <li>Links to major social sites\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"PageTOC\"><\/a><\/p>\n\n<h3 id=\"pagetoc\">PageTOC<\/h3>\n\n<p>A Table of Contents is displayed as a drop-down<\/p>\n\n<pre>\\{\\% include l18n.html \\%\\}<\/pre>\n\n<h3 id=\"installation-and-generation\">Installation and Generation<\/h3>\n\n<p>Michael Rose presents a concise description of\n<a target=\"_blank\" href=\"https:\/\/mmistakes.github.io\/minimal-mistakes\/theme-setup\/\">\nhow to install the minimal-mistakes theme<\/a>.\nThis post augments and clarifies it.<\/p>\n\n<p>Begin by making a folder and populating it on my local machine.<\/p>\n\n<p>There is both a Master branch and a Develop branch.<\/p>\n\n<p>I don\u2019t care about all the change history, so I click \u201cDownload ZIP\u201d\nand unzip it into that folder rather than:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>git clone https:\/\/github.com\/mmistakes\/minimal-mistakes.git\n<\/code><\/pre><\/div><\/div>\n\n<h3 id=\"grunt-example\">Grunt example<\/h3>\n\n<p>After downloading, have Maven pull in dependencies based on the Gemfile:<\/p>\n\n<p>bundle install<\/p>\n\n<p>This causes the list of dependencies in the Gemfile to be downloaded.<\/p>\n\n<p>Behind the scenes is a running of the <strong>Gruntfie.js<\/strong> that comes with the theme.\nIt defines the parameters of various tasks that are downloaded:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-clean\">clean<\/a>\nclears files and folders.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-jshint\">jshint<\/a>\nvalidates files with JSHint, based on the <strong>.jshintrc<\/strong> configuration file at the root folder.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-uglify\">uglify<\/a>\nminfies files with UglifyJS.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-watch\">watch<\/a>\nruns tasks whenever watched files change.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-imagemin\">imagemin<\/a>\nminifies PNG graphics files.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/sindresorhus\/grunt-svgmin\">grunt-svgmin<\/a>\nminifies SVG graphics files.<\/li>\n<\/ul>\n\n<p>NOTE: File names beginning with a dot are hidden.<\/p>\n\n<h2 id=\"gulp-example\">Gulp example<\/h2>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/kriasoft\/static-site-starter\">\n https:\/\/github.com\/kriasoft\/static-site-starter<\/a>\n uses a gulpfile.js<\/li>\n<\/ul>\n\n<h2 id=\"more-on-front-end-styling\">More on front-end styling<\/h2>\n\n<p>This is one of several topics:<\/p>\n\n<ol>\n  <li><a href=\"\/design-systems\/\">UI Design Systems<\/a><\/li>\n  <li><a href=\"\/text-editors\/\">Text Editors<\/a><\/li>\n  <li><a href=\"\/markdown-text-for-github-from-html\/\">Markdown text for GitHub from HTML<\/a><\/li>\n  <li>\n    <p><a href=\"\/508-accessibility\/\">508 Accessibility<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/grpc\/\">gRPC (g___ Remote Procedure Call)<\/a><\/li>\n  <li>\n    <p><a href=\"\/http2-transition-project-plan\/\">HTTP\/2 Transition Project Plan<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/front-end\/\">Front-end UI creation options<\/a><\/li>\n  <li><a href=\"\/docusaurus\/\">Docusaurus static website generator<\/a><\/li>\n  <li><a href=\"\/static-websites\/\">Static websites<\/a><\/li>\n  <li><a href=\"\/jam-stack-website-project-plan\/\">JAM Stack Website Project Plan<\/a><\/li>\n  <li><a href=\"\/jekyll-site-development\/\">Jekyll Site Development<\/a><\/li>\n  <li>\n    <p><a href=\"\/gatsbyjs\/\">Gatsby app generator<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/website-styles\/\">Website styles<\/a><\/li>\n  <li><a href=\"\/website-style-programming\/\">Website Styling<\/a><\/li>\n  <li>\n    <p><a href=\"\/vuejs\/\">VueJs front-end framework<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a href=\"\/protractor\/\">Protractor to automate testing of Angular and other web pages<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/email-from-website\/\">Email from website<\/a><\/li>\n  <li><a href=\"\/jekyll-with-search\/\">Search within Hyde format Jekyll websites<\/a><\/li>\n  <li>\n    <p><a href=\"\/windows-tile-pin-pictures-feed\/\">Windows Tile Pin Picture to Website Feed<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/data-visualization-using-tableau\/\">Data Visualization using Tableau<\/a><\/li>\n<\/ol>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/first-aid\/"}},"id":"https:\/\/wilsonmar.github.io\/first-aid","published":"2025-11-23T00:00:00+00:00","updated":"2025-11-23T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>What is in an ideal field (first-aid) medical kit to prevent and treat accidents and trauma.<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/first-aid\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Ffirst-aid%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#common-medical-conditions\" id=\"markdown-toc-common-medical-conditions\">Common Medical Conditions<\/a><\/li>\n  <li><a href=\"#kit\" id=\"markdown-toc-kit\">Kit<\/a><\/li>\n  <li><a href=\"#medicines\" id=\"markdown-toc-medicines\">Medicines<\/a><\/li>\n  <li><a href=\"#medicinal-plants\" id=\"markdown-toc-medicinal-plants\">Medicinal plants<\/a><\/li>\n  <li><a href=\"#warmth-against-exposure--shock\" id=\"markdown-toc-warmth-against-exposure--shock\">Warmth (against Exposure &amp; Shock)<\/a><\/li>\n  <li><a href=\"#comms\" id=\"markdown-toc-comms\">Comms<\/a><\/li>\n  <li><a href=\"#aed\" id=\"markdown-toc-aed\">AED<\/a><\/li>\n  <li><a href=\"#oxygen\" id=\"markdown-toc-oxygen\">Oxygen<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>HSA\/FSA Approved<\/p>\n\n<h2 id=\"common-medical-conditions\">Common Medical Conditions<\/h2>\n\n<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> &amp; <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/user\/drbonespodcast\">YouTube<\/a> covers:<\/p>\n\n<ul>\n  <li>Appendicitis and Conditions that Mimic It<\/li>\n  <li>Urinary Tract Infections (UTI)<\/li>\n  <li>Mosquito-Borne Illnesses<\/li>\n  <li>Allergic Reactions and Anaphylaxis<\/li>\n  <li>Head Injuries<\/li>\n  <li>Animal Bites<\/li>\n  <li>Snake Bites<\/li>\n  <li>Head injuries<\/li>\n  <li>Kidney Stones<\/li>\n  <li>Dislocations and Fractures<\/li>\n  <li>Nosebleeds<\/li>\n  <li>Pain Medications<\/li>\n  <li>Natural Pain Relief\n   <br \/><br \/><\/li>\n<\/ul>\n\n<h2 id=\"kit\">Kit<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=HuvDF9N71-E&amp;list=PL7rpYtlPtK0X1cv9iII5ZnU9ZDOWTiYUB\">Medium kit<\/a>.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/store.doomandbloom.net\/first-aid-kit-large-size-stomp-supreme\/\">The Alton\u2019s 30 lb. FIRST AID KIT LARGE SIZE STOMP SUPREME\u2122 is $1,699<\/a> plus:<\/p>\n\n<ul>\n  <li>$140 Full Dental Kit <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=EBBhXEB3mAE&amp;list=PL7rpYtlPtK0X1cv9iII5ZnU9ZDOWTiYUB&amp;index=4&amp;pp=iAQB\">VIDEO<\/a> and BOOK: \u201cWhen There is No Dentist\u201d by Murray Dickson.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>We give large first aid kit as a house warming present.<\/p>\n\n<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>\n\n<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>\n\n<p>bandages, CPR face shield, gloves, iodine prep pads, instant cold pack, tourniquet, etc. Meets international medical standards, 100% latex free.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/jase.com\/products\/jaseaid-trauma-kit\">$200<\/a> Trauma kit&lt;\/a&gt; includes<\/p>\n<ul>\n  <li>ETQ Wide Tourniquet, Gen 1<\/li>\n  <li>Israeli Compression Bandage 4\u201d for hemorhage control<\/li>\n  <li>Hemostatic Gauze<\/li>\n  <li>Slishman Wrap<\/li>\n  <li>Z Fold Compressed Gauze<\/li>\n  <li>Hyfin Compact Chest Seal<\/li>\n  <li>28F Nasal Airway incl Lube Pkt<\/li>\n  <li>Emergency Thermal Blanket<\/li>\n  <li>Trauma Shears<\/li>\n  <li>Abdominal Pad 5\u201dx9\u201d<\/li>\n  <li>Eye Shield Aluminum<\/li>\n  <li>Mini Black Sharpie<\/li>\n  <li>LED Flashlight<\/li>\n  <li>\n    <p>4x4 Burn Dressing\n<br \/><br \/><\/p>\n  <\/li>\n  <li>New Skin<\/li>\n  <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>\n  <li>Bug spray<\/li>\n  <li>Bug bite relief<\/li>\n<\/ul>\n\n<h2 id=\"medicines\">Medicines<\/h2>\n\n<p>https:\/\/store.doomandbloom.net\/first-aid-kits-hsa-and-fsa-eligible\/?page=2<\/p>\n\n<p>Alton\u2019s Antibiotic Book ($27.99)<\/p>\n\n<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>\n\n<p>Their $289.95 Jase case for those who complete a questionaire from ThomasLabs:<\/p>\n\n<p>To treat bacterial infections of those without kidney conditions:<\/p>\n<ul>\n  <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>\n  <li>Celecoxib (Generic Celebrex) 100mg capsules <a target=\"_blank\" href=\"https:\/\/www.goodrx.com\/celecoxib\">$10.59<\/a><\/li>\n  <li>Doxycycline <a target=\"_blank\" href=\"https:\/\/www.goodrx.com\/doxycycline-hyclate\">$11.51<\/a><\/li>\n  <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>\n  <li>\n    <p>Azithromycin (Generic Zithromax) 250mg (Pack of 6) <a target=\"_blank\" href=\"https:\/\/www.goodrx.com\/azithromycin\">$3.49<\/a> 100mg (14 tabs)<\/p>\n  <\/li>\n  <li>\n    <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\n<br \/><br \/><\/p>\n  <\/li>\n  <li>Clindamycin 150 mg (30 caps) = Fish Cin<\/li>\n<\/ul>\n\n<p>For other conditions:<\/p>\n<ul>\n  <li>Loperamide (Imodium) <a target=\"_blank\" href=\"https:\/\/www.goodrx.com\/loperamide\">$5.13 2mg x 30 caps<\/a> for diarrhea.<\/li>\n  <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>\n  <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>\n  <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>\n<\/ul>\n\n<p>Go bag:<\/p>\n<ul>\n  <li>bacterial treatments above.<\/li>\n  <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>\n  <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>\n<\/ul>\n\n<p>$379.95<\/p>\n<ul>\n  <li>bacterial treatments above.<\/li>\n  <li>\n    <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>\n  <\/li>\n  <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>\n  <li>\n    <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>\n  <\/li>\n  <li>Ibuprofen (Motrin) 200mg<\/li>\n  <li>Loperamide (Imodium) 2mg<\/li>\n  <li>Loratadine (Claritin)<\/li>\n  <li>\n    <p>Lubricant Eye Drops\n<br \/><br \/><\/p>\n  <\/li>\n  <li>Eye wash<\/li>\n<\/ul>\n\n<h2 id=\"medicinal-plants\">Medicinal plants<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=EYi5qSDy38M&amp;5m47s\">VIDEO<\/a>:<\/p>\n\n<ul>\n  <li>Hemlock looks similar to carrots, but paralyzes breathing<\/li>\n  <li>Foxglove (purpose cups) stops hearts<\/li>\n  <li>\n    <p>Death Camas looks like onions<\/p>\n  <\/li>\n  <li>Willow bark tea (bitter) has siliclic acid like aspirin<\/li>\n  <li>Plantain crushed leaves reduce swelling and itching<\/li>\n  <li>Dandellion tea has vitimin C<\/li>\n  <li>Yarrow promotes blood clotting &amp; microbacterial<\/li>\n<\/ul>\n\n<h2 id=\"warmth-against-exposure--shock\">Warmth (against Exposure &amp; Shock)<\/h2>\n\n<ul>\n  <li>Tent<\/li>\n  <li>Cot<\/li>\n  <li>Sleeping bag<\/li>\n  <li>Wool blankets<\/li>\n  <li>Thick mylar to hide from UV cameras by hostiles.<\/li>\n  <li>\n    <p>Fire blanket<\/p>\n  <\/li>\n  <li>\n    <p>Tarps<\/p>\n  <\/li>\n  <li>Smoke Detector on ceiling<\/li>\n  <li>Carbon Mononxide Detector near the floor<\/li>\n  <li>Fire extinguisher (ABC rated)<\/li>\n  <li>\n    <p>Fire-Proof blanket<\/p>\n  <\/li>\n  <li>\n    <p>Fire escape ladder<\/p>\n  <\/li>\n  <li>\n    <p>Alcohol?<\/p>\n  <\/li>\n  <li>Pain killers<\/li>\n<\/ul>\n\n<h2 id=\"comms\">Comms<\/h2>\n\n<p>Get the frequency at https:\/\/noaaweatherradio.org has no Montana<\/p>\n\n<ul>\n  <li>GPRS walkie-talkie<\/li>\n  <li>\n    <p>Yaesu Ham radio YouTube @HamRadioCrashCourse<\/p>\n  <\/li>\n  <li>Rechargeable batteries (AA, AAA, C, D, 9V)<\/li>\n  <li>USB power bank<\/li>\n<\/ul>\n\n<h2 id=\"aed\">AED<\/h2>\n\n<p>Survival from an heart attack drops from 100% in 2 minutes to 20% in 12 minutes. So call 911 before starting.<\/p>\n\n<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>\n\n<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>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/Philips-HeartStart-Home-Defibrillator-Carry\/dp\/B00064CED6\/ref=wilsonslifenotes\">For $1,600<\/a> from Phillip\u2019s 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>\n\n<p>The FRX is for rugged enviornments. Insert its Infant\/Child key for 0-8 year children under 55lbs.<\/p>\n\n<p>It runs a self-check every 24 hours and makes voice prompts.<\/p>\n\n<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>\n\n<p>After use, replace pads. Medical devices require professional training and maintenance per local regulations.<\/p>\n\n<p>https:\/\/www.amazon.com\/VBEGIN-Replacement-Battery-Compatible-Defibrillator\/dp\/B0DTHB9RCZ\/ref=wilsonslifenotes\n$169.99 M5070A Replacement Battery Compatible with Philips Defibrillator, Replacement Battery for Models M5066A &amp; M5068A - Made in USA (Model M5070-ABE)<\/p>\n\n<p>An alternative is <a target=\"_blank\" href=\"https:\/\/jase.com\/products\/zoll-aed-plus\">$2,195<\/a> ZOLL AED Plus (Fully Automatic)<\/p>\n\n<h2 id=\"oxygen\">Oxygen<\/h2>\n\n<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>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/weather-info\/"}},"id":"https:\/\/wilsonmar.github.io\/weather-info","published":"2025-11-22T00:00:00+00:00","updated":"2025-11-22T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>How to capture weather-related readings and display those metrics for your microclimate.<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/weather-info\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fweather-info%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#measurements-and-instruments\" id=\"markdown-toc-measurements-and-instruments\">Measurements and Instruments<\/a>    <ul>\n      <li><a href=\"#channels\" id=\"markdown-toc-channels\">Channels<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#maps-of-neighborhood-variation\" id=\"markdown-toc-maps-of-neighborhood-variation\">Maps of Neighborhood Variation<\/a><\/li>\n  <li><a href=\"#trends-over-time\" id=\"markdown-toc-trends-over-time\">Trends Over Time<\/a><\/li>\n  <li><a href=\"#home-assistant\" id=\"markdown-toc-home-assistant\">Home Assistant<\/a><\/li>\n  <li><a href=\"#internet-weather-reports\" id=\"markdown-toc-internet-weather-reports\">Internet Weather Reports<\/a><\/li>\n  <li><a href=\"#python-program-code\" id=\"markdown-toc-python-program-code\">Python Program Code<\/a><\/li>\n  <li><a href=\"#latitudes--longitudes\" id=\"markdown-toc-latitudes--longitudes\">Latitudes &amp; Longitudes<\/a><\/li>\n  <li><a href=\"#instrument-technologies\" id=\"markdown-toc-instrument-technologies\">Instrument Technologies<\/a><\/li>\n  <li><a href=\"#ambient-weather-instruments\" id=\"markdown-toc-ambient-weather-instruments\">Ambient Weather Instruments<\/a><\/li>\n  <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>\n  <li><a href=\"#diy-weather-stations\" id=\"markdown-toc-diy-weather-stations\">DIY Weather Stations<\/a><\/li>\n  <li><a href=\"#cameras\" id=\"markdown-toc-cameras\">Cameras<\/a><\/li>\n  <li><a href=\"#weather-prediction\" id=\"markdown-toc-weather-prediction\">Weather Prediction<\/a><\/li>\n  <li><a href=\"#weather-forecasts\" id=\"markdown-toc-weather-forecasts\">Weather Forecasts<\/a><\/li>\n  <li><a href=\"#ambient-weather-api\" id=\"markdown-toc-ambient-weather-api\">Ambient Weather API<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p><em>Click \u201cOVERVIEW\u201d to minimize the Index<\/em><\/p>\n\n<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.\nAmbient 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\nto the Ambient Weather Network service which displays a website.\nThere is also local <strong>dashboard<\/strong> from a <a href=\"#HomeAssistant\">Home Assistant server<\/a>.\nIn 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>. \nWhen alerts are sent to your local <strong>Listener<\/strong> service can <strong>trigger<\/strong> actuators to take physical action.\nSuch exposure to the external public internet requires a <strong>firewall<\/strong> to filter out suspicious senders.<\/p>\n\n<h2 id=\"measurements-and-instruments\">Measurements and Instruments<\/h2>\n\n<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>\n\n<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>\n\n<p>(-) and (+) adjust values: <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/glossary.html\">Glossary<\/a><br \/><\/p>\n<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>\n\n<ol>\n  <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>\n  <li>\n    <p>Wi-Fi signal strength icon. An exclamation point ! indicates the display is connected to Wi-Fi but not the Internet.<\/p>\n  <\/li>\n  <li>Outdoor Sensor Array Low Battery Indicator<\/li>\n  <li>\n    <p>Outdoor Sensor Array Signal Quality<\/p>\n  <\/li>\n  <li>\n    <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\u2019s recalculated can be set in Settings.<\/p>\n  <\/li>\n  <li>\n    <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>\n\n    <p>A manual psychrometer (aka \u201csling psychrometer\u201d) 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>\n\n    <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>\n\n    <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 \/>\n<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>\n\n    <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\u00b0F. 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>\n\n    <p>\u201c\u2026your body starts to lose the ability to clot @ 95 degrees\u2026\u201d<\/p>\n  <\/li>\n  <li>Wind:\n    <ul>\n      <li>Wind direction (blue arrow) is measured in compass degrees by wind vanes (looks like an airplane)<\/li>\n      <li>Wind speed and Gust in mph is measured by anemometers within 10-minute average wind direction (larger gray arrow).<\/li>\n      <li>Old anemometers have spinning cups<\/li>\n      <li>New anemometers have ultrasonic technology that has no moving parts.<\/li>\n    <\/ul>\n  <\/li>\n  <li>Leak detector status (<a href=\"#Channels\">channels 1-4<\/a>, if installed)<\/li>\n  <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>\n  <li>Current date and time<\/li>\n  <li>\n    <p>Lighting detector last strike, last strike time and strikes per hour (if installed).<\/p>\n\n    <p><a name=\"Channels\"><\/a><\/p>\n    <h3 id=\"channels\">Channels<\/h3>\n\n    <p>PROTIP: Define you custom list if you install additional detectors:<\/p>\n\n    <p>Indoor<br \/>\nT&amp;H CH1 = Pool (hard-coded)<br \/>\nT&amp;H CH2 = unused<br \/>\nT&amp;H CH3 = unused<br \/>\nT&amp;H CH4 = unused<br \/>\nT&amp;H CH5 = Upstairs freezer<br \/>\nT&amp;H CH6 = unused<br \/>\nT&amp;H CH7 = Downstairs leak detector<br \/>\nT&amp;H CH8 = Downstairs freezer<\/p>\n  <\/li>\n  <li>Indoor, Channel 1-8 humidity<\/li>\n  <li>Indoor, Channel 1-8 temperature from <a target=\"_blank\" href=\"#ambient-weather-instruments\">additional instruments<\/a> such as Ambient Weather\u2019s WH31PF Wireless Waterproof Floating Pool and Spa Thermometer<\/li>\n  <li>CH (Channel) scroll mode indicator<\/li>\n  <li>\n    <p>Channel indicator.<\/p>\n  <\/li>\n  <li>Rain icon: maximum is 1.4 inch.\n    <ul>\n      <li>\u201cRate\u201d, daily, hourly, weekly, monthly and yearly rain inches<\/li>\n    <\/ul>\n  <\/li>\n  <li>Forecast icon based on rate of change of pressure<\/li>\n  <li>\n    <p><a name=\"Pressure\"><\/a>\u201cBarometer Reading\u201d: <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\u2019s 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\u2019s a constant <strong>1013.25 hPa (hectoPascals)<\/strong> aka \u201cmillibars\u201d, also designated as \u201c1 ATM\u201d by the International Standard Atmosphere (ISA) standard. That\u2019s the equivalent of <strong>29.92 inHg<\/strong> (inches of mercury, symbol Hg).<\/p>\n\n    <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>\n\n    <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>\n\n    <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>\n\n    <p>REMEMBER: A system transmitting the last three digits transmits the same code (800) for 1080.0 hPa as for 980.0 hPa.<\/p>\n\n    <p>In technical terms, \u201cAtmospheric pressure is thus proportional to the weight per unit area of the atmospheric mass above that location.\u201d<\/p>\n\n    <p>BTW The weight of a column of freshwater of approximately 10.3 m (33.8 ft) is also \u201cone atmosphere\u201d (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>\n  <\/li>\n  <li>\u201cMax Daily Gust\u201d of wind in MPH.<\/li>\n  <li>Moon Phase<\/li>\n  <li>\n    <p>\u201c10 MinAvg\u201d (10-minute average) wind speed and compass direction<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>\u201cUV Index\u201d (Ultraviolet Index) is measured by a UV meter (if installed).<\/p>\n  <\/li>\n  <li>\n    <p>Under arc: am: Sunrise, pm: sunset. On the website is this tile:<\/p>\n\n    <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>\n\n    <p>FUN FACT: About 5 minutes is lost or gained each day.<\/p>\n  <\/li>\n  <li>\n    <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 \u201cUFO saucer\u201d.<\/p>\n\n    <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>\n\n    <p><a target=\"_blank\" href=\"https:\/\/power.larc.nasa.gov\/data-access-viewer\/\">https:\/\/power.larc.nasa.gov\/data-access-viewer<\/a><\/p>\n\n    <p>Solar Radiation is not displayed by default on Ambient Weather\u2019s website.\n<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>\n\n    <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>. \nBTW 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>\n  <\/li>\n  <li>\u201cIN \u201c(Indoor) air quality in ug\/m3 by a PM2.5 sensor (if installed)<\/li>\n  <li>\n    <p>\u201cOUT\u201d (Outdoor) Particulate monitor in ug\/m3 by a PM2.5 sensor (if installed)<\/p>\n  <\/li>\n  <li>\n    <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>\n\n    <p>AirTemp - ( ( 100 \u2212 RelHumidity ) \/ 5 )<\/p>\n\n    <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>\n\n    <p>At 45 degrees or below, air feels \u201crefreshing\u201d.<br \/>\nAt 50, it\u2019s \u201ccomfortable\u201d. At 55, it\u2019s \u201cnot bad\u201d.<br \/>\nAt 60, it\u2019s \u201cmuggy\u201d. At 65 it\u2019s \u201cVery Humid\u201d. At 70 it\u2019s \u201ctropical\u201d.<\/p>\n\n    <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>\n\n    <p>In <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/dewpoint.html\">other words<\/a>, \u201cThe 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.\u201d<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>\u201cFeels Like\u201d 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 \u201cwind-proof\u201d 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\u2019s chill.<\/p>\n  <\/li>\n  <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>\n  <li>Daily Rain Icon: Rainfall is measured by rain gauges. Modern ones use ultrasonic technology that has less moving parts.<\/li>\n<\/ol>\n\n<ul>\n  <li>Tide levels?<\/li>\n  <li>Soil moisture is measured by soil moisture sensors (if installed).<\/li>\n<\/ul>\n\n<!-- This is from the Ambient Weather WS-5000 series:<br \/>\n<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>\n-->\n\n<h2 id=\"maps-of-neighborhood-variation\">Maps of Neighborhood Variation<\/h2>\n\n<p>This map of temperatue around a location shows the extent of variation among microclimates within just a mile or two\n\u2013 generated by <a target=\"_blank\" href=\"https:\/\/ambientweather.net\/dashboard\/df920bc15d3b38069de0ddc5cc34b374\">AmbientWeather.net<\/a><\/p>\n\n<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>\n\n<p>Comparison vs. other weather stations (upwind, downwind, etc.).<\/p>\n\n<h2 id=\"trends-over-time\">Trends Over Time<\/h2>\n\n<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>\n\n<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>\n\n<p>The temperature (brown line) warms up (by the sun) during the day. \nTemperature cools down at night.<\/p>\n\n<p>As air cools, humidity (purple line) rises to condensate as morning fog or clouds.<\/p>\n\n<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).\nThat\u2019s when rain and snow occurs.<\/p>\n\n<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>\n\n<p>To see metrics over time with multiple metrics overlaid together, click \u201cGraphs &amp; Tables\u201d on the <a target=\"_blank\" href=\"https:\/\/ambientweather.net\/dashboard\/df920bc15d3b38069de0ddc5cc34b374\">AmbientWeather.net dashboard for a sample location<\/a>:<\/p>\n\n<ul>\n  <li>Outdoor temperature, Dew Point, Feels like<\/li>\n  <li>Wind Speed with Wind Gusts overlaid<\/li>\n  <li>Wind direction (toward the direction of the wind<\/li>\n  <li>Daily Rain with Rain Rate<\/li>\n  <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>\n  <li>Humidity<\/li>\n  <li>\n    <p>Sun Height (in yellow line) and Moon Height (in white line)<\/p>\n\n    <p>The highest point is not exactly Noon.<\/p>\n  <\/li>\n  <li>Air quality with Particulate matter overlaid<\/li>\n  <li>Rain with Snow overlaid<\/li>\n  <li>UV Index with Solar Radiation overlaid<\/li>\n<\/ul>\n\n<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>\n\n<p>Advanced map layers are now free.<\/p>\n\n<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>\n\n<p>Upwind locations on the map would experience weather patterns (such as rain) before you (n=in a downwind location).<\/p>\n\n<p><a name=\"HomeAssistant\"><\/a><\/p>\n\n<h2 id=\"home-assistant\">Home Assistant<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.home-assistant.io\/integrations\/ambient_station\/\">Home Assistant<\/a> integration.\nfor smart Home display trends.<\/p>\n\n<h2 id=\"internet-weather-reports\">Internet Weather Reports<\/h2>\n\n<ul>\n  <li>Ambient Weather has its own cloud (AWN) Network to receive weather reports for its devices.\n    <ul>\n      <li>https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1223<\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>WeatherUnderground.com also accepts video from Ambient Weather AirCams.<\/p>\n  <\/li>\n  <li>WeatherBug.com (USA)<\/li>\n  <li>pwsweather.com (USA) Weather For You<\/li>\n  <li>windfinder.com (USA)<\/li>\n  <li>wxqa.com (Citizens Weather Observation Program) USA<\/li>\n  <li>\n    <p>openweathermap.org USA<\/p>\n  <\/li>\n  <li>wow.metoffice.gov.uk<\/li>\n  <li>awekas.at (Austria)<\/li>\n<\/ul>\n\n<h2 id=\"python-program-code\">Python Program Code<\/h2>\n\n<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>\n\n<p>I wrote a Python program to retrieve and format weather info from an API calls to openweather.com.<\/p>\n\n<p>The program makes use of external modules, so can\u2019t be run within ProgramWiz.<\/p>\n\n<p>So run my program within Google\u2019s Colab like the pros:<\/p>\n\n<ol>\n  <li>Open a Terminal app.<\/li>\n  <li>\n    <p>Bring the <tt>openweather.py<\/tt> file to the Terminal.<\/p>\n\n    <p>Type an exclamation point character in front of each Bash CLI command such as git.<\/p>\n\n    <p>In Google CoLab???<\/p>\n  <\/li>\n  <li>To copy a file from your Google Drive:\n    <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\n<\/code><\/pre><\/div>    <\/div>\n    <p>Alternately, you can manually select the file using:<\/p>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>files.upload()\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Set permissions:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>chmod +x openweather.py\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Set .env file containing the API keys\n???<\/li>\n  <li>\n    <p>Because T-Mobile does not correctly identify your physical location, provide your US Zip Code when requesting the weather there:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/github.com\/wilsonmar\/python-samples\/blob\/main\/openweather.py\">openweather.py<\/a> program:<\/p>\n  <\/li>\n  <li>Execute the program:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>!.\/openweather.py -z 59041\n<\/code><\/pre><\/div>    <\/div>\n    <p>The weather service converts your Zip Code to a latitude and longitude:<\/p>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>openweather.org\nid: 5661766    at: 06:29 PM (18:29:44) 2025-04-01 TZ: -21600\n       Sunrise: 06:55 AM (06:55:20) 2025-04-01 local time\n        Sunset: 07:43 PM (19:43:30) 2025-04-01\novercast clouds at Laurel , country=US \"lat=45.4959619&amp;lon=-108.9589351\"\n  Latitude:  45.4959619\u00b0 North of the Equator &amp;\n  Longitude: -108.9589351\u00b0 East of the Meridian at Greenwich, UK\ncomfortable Dew Point of 25.78\u00b0F vs. 45.91\u00b0F at 45% humidity\n  Feels like 39.42\u00b0F from Wind: 22.01 mph from NNW (313\u00b0)\n  Visibility to 10000 meters\nlow -16 pressure at 997 hPa (HectoPascals = 9.97 millibars)\n       vs. normal 1013.25 hPa at sea level\n                  866    hPa at ground level\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n<\/ol>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/shorts\/QjTfk1OFCtk\">VIDEO<\/a>:\nReadings from outlying weather stations are combined to provide a more accurate reading.\nDuring WWII, the Allies used stations in Iceland, and Ireland to forcast the weather for the Normandie Invasion on June 6, 1944.<\/p>\n\n<p><a name=\"latlong\"><\/a><\/p>\n\n<h2 id=\"latitudes--longitudes\">Latitudes &amp; Longitudes<\/h2>\n\n<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\u00b0 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>\n\n<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>\n\n<p><a name=\"instrument-tech\"><\/a><\/p>\n\n<h2 id=\"instrument-technologies\">Instrument Technologies<\/h2>\n\n<p>There are several technologies to measure your weather:<\/p>\n\n<ul>\n  <li>Build your own weather station on a Raspberry Pi, ESP32, etc.<\/li>\n<\/ul>\n\n<p>Instrument manufacturers:<\/p>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.acurite.com\/\">AcuRite<\/a> \u201cfell apart after a year\u201d\n    <ul>\n      <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=7cxNahFvGVU\">VIDEO<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li>Ambient Weather<\/li>\n  <li>Davis Instruments<\/li>\n  <li>https:\/\/www.scientificsales.com\/6252-Davis-Wireless-Vantage-Pro2-Weather-Station-p\/6252.htm<\/li>\n  <li>\n    <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>\n  <\/li>\n  <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>\n<\/ul>\n\n<p>Several locally-run servers receive and display weather information:<\/p>\n<ul>\n  <li>The Ignition server<\/li>\n  <li>\u201cHome Assistant\u201d<\/li>\n<\/ul>\n\n<h2 id=\"ambient-weather-instruments\">Ambient Weather Instruments<\/h2>\n\n<p>Ambient Weather is a company that provides weather stations and data for consumer use.<\/p>\n\n<ul>\n  <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>\n  <li>$299.99 WS-2000 has WiFi &amp; display<\/li>\n  <li>$144.99 WS-1965 is a entry-level monitor has moving parts.<\/li>\n<\/ul>\n\n<p>Other Ambient Weather devices sold separately, with <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/manuals.html\">manuals online<\/a>:<\/p>\n\n<ul>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/Ambient-Weather-ObserverIP-Stations-separately\/dp\/B00XNMN2GG\/\">$77.99<\/a> \n<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>\n  <\/li>\n  <li>PM25 Particulate Monitor <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1095\">manual<\/a><\/li>\n  <li>PM25IN Indoor Particulate Monitor <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1096\">manual<\/a><\/li>\n  <li>\n    <p>AQIN Air Quality Monitor <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1097\">manual<\/a><\/p>\n  <\/li>\n  <li>WH3ILA Leak Detector <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1098\">manual<\/a><\/li>\n  <li>WH3ILC Infrared Motion Detector <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1099\">manual<\/a><\/li>\n  <li>WH3ILM Lightning Detector <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1100\">manual<\/a><\/li>\n  <li>WH315M Soil Monitor Sensor (part of garden bundle) <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1101\">manual<\/a><\/li>\n  <li>Pool <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1102\">manual<\/a><\/li>\n  <li>AirCam camera for feeding weather websites <a target=\"_blank\" href=\"https:\/\/ambientweather.com\/mwdownloads\/download\/link\/id\/1103\">manual<\/a><\/li>\n<\/ul>\n\n<h2 id=\"weather-on-roads-in-each-state\">Weather on Roads in Each State<\/h2>\n\n<p>https:\/\/www.511mt.net\/#&amp;zoom=5.669649843806675&amp;lon=-110.0832903124836&amp;lat=45.86084166111809<\/p>\n\n<p><a name=\"DIY\"><\/a><\/p>\n\n<h2 id=\"diy-weather-stations\">DIY Weather Stations<\/h2>\n\n<p>Others made their own weather stations using Raspberry Pi and other components that include sensors like wind, rainfall, UV Index, Lux Level.<\/p>\n\n<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>\n<ol>\n  <li>Monitoring Weather parameters like Temperature, Pressure, Humidity, altitude and UV level, etc.<\/li>\n  <li>Connect to Wi-Fi, and upload the data to the web ( Blynk App and Thingspeak)<\/li>\n  <li>Extra ports to add more sensors<\/li>\n  <li>Remote Battery Status Monitoring<\/li>\n  <li>Uses a powerful Li-Ion Battery ( 3400 mAh ) and Solar Panel (1W) for independence from external power source<\/li>\n<\/ol>\n\n<p>Customers also bought books by<\/p>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/stores\/Paul-Holmes\/author\/B0CN1JF8M4\">Paul Holmes: Off-grid solar power<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/stores\/Nick-Seghers\/author\/B0844W9SJK\">Nick Seghers<\/a>\n<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>\n  <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>\n<\/ul>\n\n<h2 id=\"cameras\">Cameras<\/h2>\n\n<p>https:\/\/www.youtube.com\/live\/8E84ogCRg8Y&amp;t=1m\nOpenMV cameras meetup<\/p>\n\n<h2 id=\"weather-prediction\">Weather Prediction<\/h2>\n\n<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\">\u201cApplying AI Weather Models with NVIDIA Earth-2\u201d<\/a>\nto explore state-of-the-art FourCastNet AI weather prediction models and learn how to integrate them into custom workflows.<\/p>\n\n<p>Weather forecasts suffer from two main sources of uncertainty<\/p>\n<ul>\n  <li>Measurement uncertainty: Observations are sparse and noisy<\/li>\n  <li>Model uncertainty: Models are not an exact representation of reality<\/li>\n<\/ul>\n\n<p>This uncertainty is modeled through multiple forecast runs\nStart from slightly perturbed initial conditions\n<a target=\"_blank\" href=\"https:\/\/www.arxiv.org\/abs\/2408.03100\">Ensembles<\/a> of several models allow making probabilistic statements about the future.<\/p>\n\n<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>\n\n<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>\n\n<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>\n\n<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 \u2013 data sources, perturbation methods, models, and IO handlers \u2013 are combined into custom applications without having to touch any of the other parts.<\/p>\n\n<p>Forecast Prediction Validation is a transferrable skill: Set up the model, fetch data from sources like GFS, and run deterministic forecasts efficiently.<\/p>\n\n<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>\n\n<h2 id=\"weather-forecasts\">Weather Forecasts<\/h2>\n\n<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>\n\n<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. \nsample of plausible values<\/p>\n<ul>\n  <li>Noise-based perturbation e.g., Gaussian, Brownian, Perlin, Spherical Gaussian\n   Pure noise generated independent of data\n   Spatially correlated, with \u201cnatural\u201d pattern\n   Ideally taking spherical geometry into<\/li>\n  <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.\n e.g., vector breeding, singular vectors\n Apply model to unperturbed and noise-perturbed data\n Iteratively calculate difference, use as new perturbation\n Identifies variables showing fastest growth\/instability<\/li>\n<\/ul>\n\n<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. \nThe simpler class of methods adds noise from a defined distribution and of a certain amplitude to some or all of the atmospheric variables.<\/p>\n\n<p>Downscaling with CorrDiff (and StormCast)<\/p>\n\n<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>\n\n<p>To build a custom AI weather pipeline:<\/p>\n\n<ul>\n  <li>Learn the fundamentals of AI weather simulation and understand the difference between AI-based and numerical weather prediction.<\/li>\n  <li>Gain hands-on experience running AI weather simulations with Earth2Studio for weather forecasting, historical analyses, and downscaling.<\/li>\n  <li>Get familiar with the individual parts of a weather inference pipeline: Data sources, perturbation, forecast and diagnostic models, and IO handling.<\/li>\n  <li>Validate the skill and calibration of weather forecasts with metrics commonly applied to deterministic and ensemble weather forecasts.<\/li>\n  <li>Build a custom AI weather model inference pipeline, using the example of coupling a global forecast model with a regional downscaling model.<\/li>\n  <li>Combine AI-generated weather data with downstream applications, following examples related to energy demand and production forecasts.<\/li>\n<\/ul>\n\n<p><a name=\"amapi\"><\/a><\/p>\n\n<h2 id=\"ambient-weather-api\">Ambient Weather API<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/ambientweather.com\/faqs\/question\/view\/id\/1811\/\">The API (Application Programming Interface)<\/a> \nallows programmers to use RESTful interactions in applications.<\/p>\n\n<ol>\n  <li>\n    <p>Get the MAC address of your model (such as \u201c12:34:56:AB:CD:EF\u201d) at:<\/p>\n\n    <p>https:\/\/ambientweather.com\/faqs\/question\/view\/id\/1450\/<\/p>\n  <\/li>\n  <li>\n    <p>Type the MAC address for your account at:<\/p>\n\n    <ul>\n      <li>https:\/\/ambientweather.net\/devices<\/li>\n      <li>https:\/\/ambientweather.net\/account\n<br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>Get the AMBIENT_API_KEY value to authenticate all REST API requests.<\/p>\n\n    <pre>AMBIENT_API_KEY=1234567890abcdefb642b77c9d2c1b5df497a8c1f44f4b4e8fdf11c002ef2113\n<\/pre>\n\n    <p>AMBIENT_API_KEY grants access to past\/present data for a given user\u2019s 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>\n  <\/li>\n  <li>\n    <p>Get the AMBIENT_APPLICATION_KEY to identify the developer \/ application. To create an application key<\/p>\n\n    <pre>AMBIENT_APPLICATION_KEY='your-application-key-here'<\/pre>\n  <\/li>\n  <li>\n    <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>\n\n    <ul>\n      <li>\u201dAlexa, ask Ambient Weather for a weather report\u201d<\/li>\n      <li>\u201dAlexa, ask Ambient Weather the weather yesterday\u201d (a specific day, month or year)<\/li>\n      <li>\u201dAlexa, ask Ambient Weather for indoor conditions\u201d<\/li>\n    <\/ul>\n\n    <p>However, at time of this writing, one cannot ask:<\/p>\n\n    <ul>\n      <li>\u2026  ask Ambient weather the outside temperature\u201d<\/li>\n      <li>\u2026 ask Ambient weather the forecast\u201d<\/li>\n      <li>\u2026 ask Ambient Weather about today\u2019s rain\u201d<\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>Adapt the Python Module for interacting with the Ambient Weather API.<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/github.com\/bachya\/aioambient\">github.com\/bachya\/aioambient<\/a>\nby <a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/aaronbach\/\" title=\"bachya1208@gmail.com\">Aaron Bach<\/a>\nis a clean, async-friendly library.<\/p>\n\n    <p>It\u2019s preferred over the<br \/>\nhttps:\/\/github.com\/avryhof\/ambient_api<\/p>\n  <\/li>\n  <li>\n    <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>\n\n    <pre>AMBIENT_ENDPOINT=https:\/\/rt.ambientweather.net\/v1<\/pre>\n  <\/li>\n  <li>\n    <p>Device Data Specs Wiki lists all the parameters that a device might send.<\/p>\n\n    <p>https:\/\/github.com\/ambient-weather\/api-docs\/wiki\/Device-Data-Specs<\/p>\n  <\/li>\n  <li>\n    <p>Add code in the calling program to account for API requests being capped at 1 request\/second for each user\u2019s 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>\n\n    <p>API requests are capped at 1 request\/second for each user\u2019s 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>\n\n    <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>\n\n    <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>\n\n    <p>https:\/\/ambientweather.docs.apiary.io\/# is generated from\nhttps:\/\/github.com\/ambient-weather\/api-docs<\/p>\n  <\/li>\n<\/ol>\n\n<hr \/>\n\n<p><i>25-11-22 v044 + clot :2023-04-03-weather-info.md<\/i><\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/flutter-dev\/"}},"id":"https:\/\/wilsonmar.github.io\/flutter-dev","published":"2025-11-20T00:00:00+00:00","updated":"2025-11-20T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Use Google\u2019s Dart language calling Firebase database &amp; Riverpod to create Gemini apps on iOS, Android, SPAs, PWAs<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/flutter-dev\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflutter-dev%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#popularity-vs-competitors\" id=\"markdown-toc-popularity-vs-competitors\">Popularity vs Competitors<\/a><\/li>\n  <li><a href=\"#architectural-deep-dive\" id=\"markdown-toc-architectural-deep-dive\">Architectural Deep Dive<\/a><\/li>\n  <li><a href=\"#what\" id=\"markdown-toc-what\">what?<\/a><\/li>\n  <li><a href=\"#sample-flutter-apps\" id=\"markdown-toc-sample-flutter-apps\">Sample Flutter apps<\/a><\/li>\n  <li><a href=\"#smart-phone-features-in-apps\" id=\"markdown-toc-smart-phone-features-in-apps\">Smart Phone features in apps<\/a>    <ul>\n      <li><a href=\"#ecosystem-apis\" id=\"markdown-toc-ecosystem-apis\">Ecosystem APIs<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#get-social\" id=\"markdown-toc-get-social\">Get Social<\/a><\/li>\n  <li><a href=\"#dev-project-rolls-costs\" id=\"markdown-toc-dev-project-rolls-costs\">Dev Project Rolls Costs<\/a><\/li>\n  <li><a href=\"#professional-certifications\" id=\"markdown-toc-professional-certifications\">Professional Certifications<\/a><\/li>\n  <li><a href=\"#cloud-based-ide-tutorial\" id=\"markdown-toc-cloud-based-ide-tutorial\">Cloud-based IDE Tutorial<\/a><\/li>\n  <li><a href=\"#tutorial1\" id=\"markdown-toc-tutorial1\">Tutorial1<\/a>    <ul>\n      <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>\n      <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 \u201cfirst_app\u201d<\/a><\/li>\n      <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>\n      <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>\n      <li><a href=\"#googles-dart-language\" id=\"markdown-toc-googles-dart-language\">Google\u2019s Dart language<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <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>\n  <li><a href=\"#create-locally-step-by-step\" id=\"markdown-toc-create-locally-step-by-step\">Create locally step-by-step<\/a><\/li>\n  <li><a href=\"#testing-mobile-apps\" id=\"markdown-toc-testing-mobile-apps\">Testing mobile apps<\/a><\/li>\n  <li><a href=\"#agentic-vertex-ai\" id=\"markdown-toc-agentic-vertex-ai\">Agentic Vertex AI<\/a><\/li>\n  <li><a href=\"#svg--icon-fonts\" id=\"markdown-toc-svg--icon-fonts\">SVG &amp; Icon Fonts<\/a><\/li>\n  <li><a href=\"#graphically-design-using-figma\" id=\"markdown-toc-graphically-design-using-figma\">Graphically Design using Figma<\/a><\/li>\n  <li><a href=\"#e-commerce\" id=\"markdown-toc-e-commerce\">E-commerce<\/a><\/li>\n  <li><a href=\"#ui-widgets\" id=\"markdown-toc-ui-widgets\">UI Widgets<\/a><\/li>\n  <li><a href=\"#smart-phone-app-features\" id=\"markdown-toc-smart-phone-app-features\">Smart Phone app features<\/a><\/li>\n  <li><a href=\"#database\" id=\"markdown-toc-database\">Database<\/a><\/li>\n  <li><a href=\"#web-apps\" id=\"markdown-toc-web-apps\">Web apps<\/a><\/li>\n  <li><a href=\"#calls-to-apis\" id=\"markdown-toc-calls-to-apis\">Calls to APIs<\/a><\/li>\n  <li><a href=\"#googles-firebase-backend\" id=\"markdown-toc-googles-firebase-backend\">Google\u2019s Firebase Backend<\/a><\/li>\n  <li><a href=\"#resources\" id=\"markdown-toc-resources\">Resources<\/a><\/li>\n  <li><a href=\"#jobs\" id=\"markdown-toc-jobs\">Jobs<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>Flutter offers a <strong>single codebase<\/strong> to build applications that run across many platforms:<\/p>\n<ul>\n  <li>Desktop apps on Windows, Mac, Linux<\/li>\n  <li>Mobile (smart phone) apps on Google Android vs. Java<\/li>\n  <li>Mobile (smart phone) apps on Apple iOS vs. Swift programming<\/li>\n  <li>PWAs (Progressive Web Apps) and stand-alone SPAs (Single Page Apps such as products) on internet browsers\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>This is a complicated and difficult business because different technologies are used on each platform:<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=FzaVmw4u6O8&amp;t=1m52s\"><img alt=\"platforms-tech-801x337.png\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1763635915\/platforms-tech-801x337_bz4wa2.png\" \/><\/a><\/p>\n\n<p>iPhone and Android smart phones have more hardware than PC laptops:<\/p>\n\n<ul>\n  <li>Camera to take pictures (QR codes)<\/li>\n  <li>Audio (music app Topline by Abbey Road Studios)<\/li>\n  <li>Location (GPS)<\/li>\n  <li>Bluetooth to headphones and speakers<\/li>\n  <li>NFC<\/li>\n  <li>Sensors\n   <br \/><br \/><\/li>\n<\/ul>\n\n<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>\n\n<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>\n\n<h2 id=\"popularity-vs-competitors\">Popularity vs Competitors<\/h2>\n\n<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>\n\n<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>\n\n<ul>\n  <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>\n  <li>App intelligence provider AppTopia reports that, in 2024, Flutter accounts for nearly 30% of all new free iOS apps.<\/li>\n  <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>\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>React Native (from Facebook\/Meta) is based on the open <strong>JavaScript language<\/strong>, which more front-end (web) developers know.<\/p>\n\n<p>It\u2019s more difficult and expensive to hire and retain a developer to write native SwiftUI code on iPhones and Jetpack Compose code on Androids.<\/p>\n\n<p>Despite the technical aspects, in the US, there seems to be a lot more jobs in Native Android coding than cross-platform:<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=FzaVmw4u6O8&amp;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>\n\n<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>\n\n<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\u2019s Liquid Glass UI cloud kill<\/a> cause more testing effort.<\/p>\n\n<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>\n\n<h2 id=\"architectural-deep-dive\">Architectural Deep Dive<\/h2>\n\n<p>Reactive Native uses a \u201cJavaScript Bridge\u201d JNI to iOS on its V8 Engine, so <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=2OgLdOjuMm4&amp;t=247s\">VIDEO<\/a>: it doesn\u2019t 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>\n\n<p>Flutter\u2019s 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&amp;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>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=2OgLdOjuMm4&amp;t=11m1s\">VIDEO<\/a> Nevertheless, amazingly, Flutter is 2X faster than Native on the Time to Full Display (TTFD) load.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=2OgLdOjuMm4&amp;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>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=2OgLdOjuMm4&amp;t=8m35s\">VIDEO<\/a>: Flutter renders basic animations at 120 frames-per-second, on par with Android native, but faster than 51 by KMP &amp; 96 by React Native.<\/p>\n\n<h2 id=\"what\">what?<\/h2>\n\n<ul>\n  <li>\n    <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\u2019s 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.\n <br \/><br \/><\/p>\n\n    <p>Get the music player app starter code:<\/p>\n\n    <pre>git clone https:\/\/github.com\/FirebaseExtended\/cross-device-controller.git\n cd cross-device-controller\/starter_code\n <strong>flutter pub get<\/strong>\n <\/pre>\n  <\/li>\n<\/ul>\n\n<h2 id=\"sample-flutter-apps\">Sample Flutter apps<\/h2>\n\n<ul>\n  <li>https:\/\/flutter.dev\/showcase<\/li>\n  <li>https:\/\/github.com\/fluttergems\/awesome-open-source-flutter-apps<\/li>\n  <li>\n    <p>https:\/\/appgallery.io\/<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/appgallery.io\/walidashik<\/p>\n  <\/li>\n  <li>\n    <p>GE Appliances uses Flutter to display UIs on small LCD screens found on modern appliances.<\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/scaleupally.io\/blog\/flutter-apps-examples\/\">8 Must-See Flutter App Examples For Inspiration<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/codecanyon.net\/category\/mobile\/flutter\/full-applications\">CodeCanyon.net\u2019s Flutter Full Applications<\/a>, some with live preview.\n    <ul>\n      <li>Xianyu (Alibaba) and Tencent QQ is big in China<\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.hamilton.app&amp;hl=en&amp;gl=US\">Hamilton Musical app<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/ads.google.com\/home\/tools\/mobile-app\/\">Google Ads<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/www.groupon.com\/\">Groupon<\/a><\/li>\n      <li>Ebay &amp; Ebay Motors<\/li>\n      <li>New York Times<\/li>\n      <li>BMW, Toyota<\/li>\n      <li>Phillips Hue<\/li>\n      <li>https:\/\/goodhabitz.com\/\n <br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.miquido.com\/blog\/top-apps-made-with-flutter\/\">25 Top Apps Made with Flutter<\/a>\n    <ul>\n      <li>Selection Criteria for Top Apps: What makes an app not just good, but great?<\/li>\n      <li>Detailed Descriptions of Selected Apps: A close look at apps that are turning heads.<\/li>\n      <li>Flutter\u2019s Advantages in App Development: Why Flutter is the go-to for developers.<\/li>\n      <li>Flutter\u2019s Impact on Business Outcomes: How Flutter is rewriting the rules of business efficiency.<\/li>\n      <li>Flutter vs. Other Platforms: A side-by-side comparison with its contemporaries.\n <br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>https:\/\/apps.apple.com\/us\/app\/kodebook-notes-upgraded\/id6739565636 KodeBook: Notes, upgraded by Mustaq Sameer at  https:\/\/kodebook.io<\/p>\n  <\/li>\n  <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>\n<\/ul>\n\n<h2 id=\"smart-phone-features-in-apps\">Smart Phone features in apps<\/h2>\n\n<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\">\u201cHot Reload\u201d<\/a> causes a little delay for Flutter users as code is updated.<\/p>\n\n<p>Over the years, developers have grown weary of \u201cWrite Once, Work Everywhere\u201d promises from Microsoft Xamarin, Cordova, Kivy, Kendo, PhoneGap, Unity, Ionic, Capacitor, etc.<\/p>\n\n<p>Google\u2019s \u201cMaterial\u201d and Apple\u2019s \u201cCapistrano\u201d design systems have fundamentally conflicting design UI standards.<\/p>\n\n<ol>\n  <li>\n    <p>Flutter is free and open sourced by Google at:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/github.com\/flutter\/flutter\/blob\/master\/docs\/README.md\">https:\/\/github.com\/flutter\/flutter<\/a><\/p>\n  <\/li>\n  <li>\n    <p>REMEMBER: https:\/\/dart.dev\/resources\/glossary<\/p>\n\n    <ul>\n      <li>\u201cBottom type\u201d is a type that has no values and is a subtype of all other types.<\/li>\n      <li>Closurization = The process of turning a method or function into a closure.<\/li>\n      <li>Code asset = Compiled native code that is bundled with a Dart app using a build hook and can be used through dart:ffi.\n<br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>Documentation<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/docs.flutter.dev\">docs.flutter.dev<\/a><\/p>\n\n    <h3 id=\"ecosystem-apis\">Ecosystem APIs<\/h3>\n\n    <p>Using Flutter means adopting Google\u2019s entire ecosystem, which includes the <a href=\"#DartLang\">Dart language code<\/a> Google invented.<\/p>\n  <\/li>\n  <li>\n    <p>API reference is at https:\/\/api.flutter.dev.\n<a target=\"_blank\" href=\"https:\/\/console.actions.google.com\/\">Actions on Google Console<\/a><\/p>\n\n    <p>Developing using Flutter involves mastering several technologies within Google\u2019s development ecosystem:<\/p>\n\n    <ul>\n      <li><a href=\"DartLang\">Google\u2019s Dart language<\/a><\/li>\n      <li>Android<\/li>\n      <li>ARCore<\/li>\n      <li>ChromeOS<\/li>\n      <li><a href=\"#Firebase\">Firebase database<\/a> &amp; <a target=\"_blank\" href=\"https:\/\/console.firebase.google.com\/?pli=1\">console<\/a><\/li>\n      <li>Flutter (this page)<\/li>\n      <li>Google Assistant<\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/gcp\">Google Cloud<\/a><\/li>\n      <li>Google Maps Platform<\/li>\n      <li>Google Pay &amp; Google Wallet<\/li>\n      <li>Google Play <a target=\"_blank\" href=\"https:\/\/play.google.com\/apps\/publish\">console<\/a><\/li>\n      <li>TensorFlow\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <p>Other Google services:<\/p>\n    <ul>\n      <li>AdMob<\/li>\n      <li>AlloyDB<\/li>\n      <li>analytics<\/li>\n      <li>Android TV<\/li>\n      <li>Assistant<\/li>\n      <li>Cast<\/li>\n      <li>Cloud Key Management Service (KMS)<\/li>\n      <li>Cloud Run<\/li>\n      <li>Cloud SQL<\/li>\n      <li>GKE Enterprise<\/li>\n      <li>ML Kit<\/li>\n      <li>Google Workspace (Gmail)<\/li>\n      <li>TensorFlow<\/li>\n      <li>Wear OS\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <h2 id=\"get-social\">Get Social<\/h2>\n\n    <p>https:\/\/flutter.dev\/ecosystem<\/p>\n  <\/li>\n  <li>\n    <p>Follow:<\/p>\n\n    <p>https:\/\/blog.flutter.dev articles on Medium.com where new releases are explained with images.<\/p>\n  <\/li>\n  <li>\n    <p>Subscribe:<\/p>\n\n    <p>https:\/\/www.youtube.com\/@flutterdev<\/p>\n\n    <p>https:\/\/www.reddit.com\/r\/FlutterDev\/ for trolls<\/p>\n\n    <p>https:\/\/developers.google.com\/community\/experts\nif you are an expert already, like <a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/mtwichel\/\">Marcus Twichel<\/a> at Billings, United States<\/p>\n  <\/li>\n  <li>\n    <p>Sign up for the Flutter Community Forum:<\/p>\n\n    <p>https:\/\/forum.itsallwidgets.com\/latest<\/p>\n\n    <p>PROTIP: Save the account name and password to your Password Manager.<\/p>\n  <\/li>\n  <li>\n    <p>Join the official Discord channel (and complete the intro) at \nhttps:\/\/discord.com\/invite\/ht477J5PyH<\/p>\n\n    <p>https:\/\/github.com\/flutter\/flutter\/blob\/master\/docs\/contributing\/Chat.md<\/p>\n  <\/li>\n  <li>\n    <p>Join Premium (for $24.99\/monrh):<\/p>\n\n    <p>https:\/\/developers.google.com\/program\/plans-and-pricing<\/p>\n  <\/li>\n<\/ol>\n\n<h2 id=\"dev-project-rolls-costs\">Dev Project Rolls Costs<\/h2>\n\n<p>Online calculators like Estimate My App and Cleveroad help users calculate upfront costs of development by a team that consists of:<\/p>\n\n<ul>\n  <li>Product owner \u2013 oversees app creation and serves as the link between the project team and organization.<\/li>\n  <li>Project manager \u2013 manages project progression, ensuring timely and on-budget delivery.<\/li>\n  <li>Business analyst \u2013 analyzes the project requirements to ensure it meets business goals.<\/li>\n  <li>UI designer \u2013 creates user experience, ensuring an attractive and user-friendly app.<\/li>\n  <li>Flutter app developers \u2013 build the application.<\/li>\n  <li>Quality Assurance specialists  \u2013 test the app to ensure it meets project requirements.\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a target=\"_blank\" href=\"https:\/\/blog.burkharts.net\/practical-flutter-architecture\">Practical Flutter Architecture<\/a> (PFA) \nby Thomas Burkhart: MVC, MVU, MVVM, RVMS (Reactive View Manager Services), PFA.<\/p>\n\n<p><a name=\"ProCerts\"><\/a><\/p>\n\n<h2 id=\"professional-certifications\">Professional Certifications<\/h2>\n\n<p>https:\/\/developers.google.com\/certification\/associate-android-developer\nhas been retired.<\/p>\n\n<p>Popular content creator are Google Experts:<\/p>\n\n<p>https:\/\/cloud.google.com\/learn\/certification\/cloud-architect\nGoogle Professional Cloud Architect certification ?<\/p>\n\n<p>https:\/\/androidatc.com\/pages\/Eng\/Flutter-Certified-Application-Developer<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=xWV71C2kp38<\/p>\n\n<h2 id=\"cloud-based-ide-tutorial\">Cloud-based IDE Tutorial<\/h2>\n\n<ol>\n  <li>\n    <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&amp;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>\n  <\/li>\n  <li>\n    <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&amp;hl=en_US\">on Android<\/a> and <a target=\"_blank\" href=\"https:\/\/apps.apple.com\/us\/app\/flutter-tips\/id6482293361\">on iPhones<\/a><\/p>\n  <\/li>\n  <li>\n    <p>See list of Google\u2019s tutorials at https:\/\/www.skills.google\/catalog?keywords=flutter<\/p>\n  <\/li>\n  <li>\n    <p>Create your first app at <a href=\"#Tutorial1\">Google Skills Tutorial below<\/a><\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/www.geeksforgeeks.org\/flutter\/creating-a-simple-application-in-flutter\/ 13 Mar, 2025<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/learning.oreilly.com\/course\/learn-flutter-and\/9781805122029\/\n30-hour video course May 2023 by <a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/maximilian-schwarzmueller\/\">Maximilian Schwarzm\u00fcller<\/a> from Germany (https:\/\/maximilian-schwarzmueller.com\/)<\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.ffnext.io\/blog\/flutter-animations\">Animations in Flutter - a developer\u2019s guide<\/a>: Automated Carousel, Parallax effect, Animated button, Bouncing View, Animated Wave, Instagram Story.<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/learning.oreilly.com\/library\/view\/-\/9781098154752\/<\/p>\n  <\/li>\n<\/ol>\n\n<p><a name=\"Tutorial1\"><\/a><\/p>\n\n<h2 id=\"tutorial1\">Tutorial1<\/h2>\n\n<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\">\u201cFlutter Development\u201d (GSP885)<\/a> 1.5-hour hands-on course.<\/p>\n\n<ol>\n  <li>Install Chrome browser (after brew install google-chrome).<\/li>\n  <li>\n    <p>Start Lab. Click the IDE.<\/p>\n  <\/li>\n  <li>\n    <p>Click the three dots at the upper-right and select \u201cNew Incognito Window\u201d to avoid conflicts with cookies.<\/p>\n  <\/li>\n  <li>Copy this url: https:\/\/console.cloud.google.com\/<\/li>\n  <li>Press command + ` to switch to the Lab window.<\/li>\n  <li>Scroll down to click the icon to copy the Username, such as\nstudent-03-2e9edc111c72@qwiklabs.net<\/li>\n  <li>\n    <p>Switch to the incognito window and paste the Email.<\/p>\n  <\/li>\n  <li>Switch to the Lab window.<\/li>\n  <li>Scroll down to click the icon to copy the Password, such as\nstudent-03-2e9edc111c72@qwiklabs.net<\/li>\n  <li>Switch to the incognito window. Click \u201cEnter the Password\u201d and paste.<\/li>\n  <li>Click \u201cI understand\u201d, then check under \u201cTerms of Service\u201d, \u201cAgree and continue\u201d.<\/li>\n  <li>Click \u201cCreate or select a project\u201d.<\/li>\n  <li>\n    <p>Notice:\nProject number: 1030115194620 Project ID: qwiklabs-resources<\/p>\n\n    <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 \u201cFlutter: New Project\u201d.<\/p>\n  <\/li>\n  <li>Click the Cloud Shell icon at the upper-right corner. Click Continue.<\/li>\n  <li>Click Authorize to see lines like this:\n    <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.\n Your Cloud Platform project in this session is set to qwiklabs-resources.\n Use `gcloud config set project [PROJECT_ID]` to change to a different project.\n student_03_2e9edc111c72@cloudshell:~ (qwiklabs-resources)$ \n<\/code><\/pre><\/div>    <\/div>\n\n    <h3 id=\"task-1-open-the-code-server-editor\">Task 1: Open the Code Server editor<\/h3>\n\n    <p>In this lab, we will use a custom editor that includes the Flutter and Dart extensions.<\/p>\n  <\/li>\n  <li>Switch to the Lab window.<\/li>\n  <li>Click the copy icon for IDE.<\/li>\n  <li>\n    <p>Switch to the incognito window and paste the URL<\/p>\n\n    <h3 id=\"task-2-create-flutter-template-first_app\">Task 2. Create Flutter template \u201cfirst_app\u201d<\/h3>\n  <\/li>\n  <li>Switch to the IDE window.<\/li>\n  <li>REMEMBER: Click control + shift + ` or click the menu at the upper-left to select \u201cTerminal\u201d.<\/li>\n  <li>Copy and paste for the \u201cWelcome\u201d\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>flutter create first_app\n<\/code><\/pre><\/div>    <\/div>\n    <p>The name should be all lowercase, with underscores to separate words, \u201cjust_like_this\u201d.Use only basic Latin letters and Arabic digits: [a-z0-9_].<\/p>\n\n    <p>```\nCreating project first_app\u2026\nResolving dependencies in <code class=\"language-plaintext highlighter-rouge\">first_app<\/code>\u2026 (1.1s)\nDownloading packages\u2026 \nGot dependencies in <code class=\"language-plaintext highlighter-rouge\">first_app<\/code>.\nWrote 129 files.<\/p>\n  <\/li>\n<\/ol>\n\n<p>All done!\nYou can find general documentation for Flutter at: https:\/\/docs.flutter.dev\/\nDetailed API documentation is available at: https:\/\/api.flutter.dev\/\nIf you prefer video documentation, consider: https:\/\/www.youtube.com\/c\/flutterdev<\/p>\n\n<p>In order to run your application, type:<\/p>\n\n<p>$ cd first_app\n  $ flutter run<\/p>\n\n<p>Your application code is in first_app\/lib\/main.dart.<\/p>\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>1. View the flutter app's commands: &lt;pre&gt;flutter&lt;\/pre&gt;\n<\/code><\/pre><\/div><\/div>\n<p>Manage your Flutter app development.<\/p>\n\n<p>Common commands:<\/p>\n\n<p>flutter create <output directory=\"\">\n    Create a new Flutter project in the specified directory.<\/output><\/p>\n\n<p>flutter run [options]\n    Run your Flutter application on an attached device or in an emulator.<\/p>\n\n<p>Usage: flutter <command \/> [arguments]<\/p>\n\n<p>Global options:\n-h, \u2013help                  Print this usage information.\n-v, \u2013verbose               Noisy logging, including all shell commands executed.\n                            If used with \u201c\u2013help\u201d, shows hidden options. If used with \u201cflutter doctor\u201d, shows additional diagnostic information. (Use \u201c-vv\u201d to force verbose logging in those cases.)\n-d, \u2013device-id             Target device id or name (prefixes allowed).\n    \u2013version               Reports the version of this tool.\n    \u2013enable-analytics      Enable telemetry reporting each time a flutter or dart command runs.\n    \u2013disable-analytics     Disable telemetry reporting each time a flutter or dart command runs, until it is re-enabled.\n    \u2013suppress-analytics    Suppress analytics reporting for the current CLI invocation.<\/p>\n\n<p>Available commands:<\/p>\n\n<p>Flutter SDK\n  bash-completion   Output command line shell completion setup scripts.\n  channel           List or switch Flutter channels.\n  config            Configure Flutter settings.\n  doctor            Show information about the installed tooling.\n  downgrade         Downgrade Flutter to the last active version for the current channel.\n  precache          Populate the Flutter tool\u2019s cache of binary artifacts.\n  upgrade           Upgrade your copy of Flutter.<\/p>\n\n<p>Project\n  analyze           Analyze the project\u2019s Dart code.\n  assemble          Assemble and build Flutter resources.\n  build             Build an executable app or install bundle.\n  clean             Delete the build\/ and .dart_tool\/ directories.\n  create            Create a new Flutter project.\n  drive             Run integration tests for the project on an attached device or emulator.\n  gen-l10n          Generate localizations for the current project.\n  pub               Commands for managing Flutter packages.\n  run               Run your Flutter app on an attached device.\n  test              Run Flutter unit tests for the current project.<\/p>\n\n<p>Tools &amp; Devices\n  attach            Attach to a running app.\n  custom-devices    List, reset, add and delete custom devices.\n  devices           List all connected devices.\n  emulators         List, launch and create emulators.\n  install           Install a Flutter app on an attached device.\n  logs              Show log output for running Flutter apps.\n  screenshot        Take a screenshot from a connected device.\n  symbolize         Symbolize a stack trace from an AOT-compiled Flutter app.<\/p>\n\n<p>Run \u201cflutter help <command \/>\u201d for more information about a command.\nRun \u201cflutter help -v\u201d for verbose help output, including less commonly used options.<\/p>\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>1. To disable reporting of telemetry, run this terminal command:\n    &lt;pre&gt;flutter --disable-analytics&lt;\/pre&gt;\n\n1. Navigate to the app's folder and run:\n   &lt;pre&gt;cd first_app; flutter run&lt;\/pre&gt;\n<\/code><\/pre><\/div><\/div>\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>Connected devices:\nLinux (desktop) \u2022 linux  \u2022 linux-x64      \u2022 Debian GNU\/Linux 11 (bullseye) 5.10.0-30-cloud-amd64\nChrome (web)    \u2022 chrome \u2022 web-javascript \u2022 Google Chrome 126.0.6478.61\n[1]: Linux (linux)\n[2]: Chrome (chrome)\nPlease choose one (or \"q\" to quit):     ```    ### Task 3. Exploring the Flutter code\n<\/code><\/pre><\/div><\/div>\n\n<ol>\n  <li>Click the folder icon at the upper-left of the IDE window.<\/li>\n  <li>Click \u201cOpen Folder\u201d at <tt>\/home\/ide-dev\/<\/tt>.<\/li>\n  <li>Select \u201cfirst_app\u201d to see its folders.<\/li>\n  <li>Click \u201cOK\u201d to see its files and folders:<\/li>\n  <li>\n    <p>Click file <tt>pubspec.yaml<\/tt> to view it on the right-side pane.<\/p>\n\n    <h3 id=\"task-4-running-the-flutter-web-application\">Task 4. Running the Flutter web application<\/h3>\n  <\/li>\n  <li>REMEMBER: Click control + shift + ` or click the menu at the upper-left to select \u201cTerminal\u201d.<\/li>\n  <li>REMEMBER: Set the directory to first_app:\n    <pre>fwr<\/pre>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code> Launching lib\/main.dart on Web Server in debug mode...\n Waiting for connection from debug service on Web Server...         25.5s\n lib\/main.dart is being served at http:\/\/0.0.0.0:8080\n The web-server device requires the Dart Debug Chrome extension for debugging. Consider using the Chrome or Edge devices for an improved development workflow.\n\n \ud83d\udd25  To hot restart changes while running, press \"r\" or \"R\".\n For a more detailed help message, press \"h\". To quit, press \"q\".\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>\n    <p>Type R (for \u201cr\u201d) to reload, waiting until \u201cRecompile\u201d message appears.<\/p>\n  <\/li>\n  <li>\n    <p>Click \u201cOpen in Browser\u201d pop-up at the lower-right to open a URL such as:\n<tt>https:\/\/ide-service-6rqup7ut6q-uk.a.run.app\/proxy\/8080\/<\/tt><\/p>\n  <\/li>\n  <li>Click Command+` to switch to the Lab window.\n<img alt=\"flutter-tutorial1-538x300.png\" width=\"300\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1763520438\/flutter-tutorial1-538x300_w6xcmp.png\" \/>&lt;\/a&gt;<\/li>\n  <li>Click the copy icon for \u201cLive Server\u201d at the left panel.<\/li>\n  <li>Click the \u201c+\u201d at the top to start another incognito window.<\/li>\n  <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.\n<a name=\"HotReload\"><\/a><\/li>\n  <li>Right-click to select \u201cView Page Source\u201d. 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:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>&lt;link rel=\"manifest\" href=\"manifest.json\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;script src=\"flutter_bootstrap.js\" async&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n<\/code><\/pre><\/div>    <\/div>\n    <p>That is called \u201cHot Reload\u201d.<\/p>\n\n    <h3 id=\"task-5-flutter-hot-reload-libmaindart\">Task 5. Flutter Hot reload lib\/main.dart<\/h3>\n\n    <p><a name=\"DartEdit\"><\/a><\/p>\n  <\/li>\n  <li>In the EXPLORER menu click \u201clib\u201d, then \u201cmain.dart\u201d.<\/li>\n  <li>\n    <p>Mouse over the separator above the Terminal panel and drag it down.<\/p>\n\n    <p>IMPORTANT: Leave a line exposed so you can easily type R (\u201cr\u201d) to Reload (even though the instruction is no longer visible.<\/p>\n  <\/li>\n  <li>Press \u201cEsc\u201d to enter Edit mode, because this is VIM.<\/li>\n  <li>\n    <p>Click to highlight <tt>Flutter Demo<\/tt> and type in its place \n<tt>Flutter is awesome<\/tt><\/p>\n  <\/li>\n  <li>\n    <p>REMEMBER: Click control + shift + ` or click the menu at the upper-left to select \u201cTerminal\u201d.<\/p>\n  <\/li>\n  <li>Switch to the browser tab displaying \u201chttps:\/\/browser-service-6rqup7ut6q-uk.a.run.app\/<\/li>\n  <li>\n    <p>Press CTRL+R to reload the page<\/p>\n  <\/li>\n  <li>Click control + shift + ` or click the menu at the upper-left to select \u201cTerminal\u201d.<\/li>\n  <li>Click \u201cEnd Lab\u201d.<\/li>\n  <li>Close the Incognito browser window and Google Skills web page.<\/li>\n<\/ol>\n\n<p><a name=\"DartLang\"><\/a><\/p>\n\n<h3 id=\"googles-dart-language\">Google\u2019s Dart language<\/h3>\n\n<ol>\n  <li>\n    <p>Confirm the version of the Dart language installed.<\/p>\n\n    <p>3.10 released on: November 12, 2025<\/p>\n\n    <p>Dart code files have an extension of \u201c.dart\u201d, introduced in 2011 and got to v1.0 in 2013.<\/p>\n  <\/li>\n  <li>\n    <p>List past versions at:<\/p>\n\n    <p>https:\/\/dart.dev\/resources\/whats-new<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>Contributed code used for Google\u2019s demos<\/p>\n\n    <p>https:\/\/github.com\/flutter\/demos<\/p>\n  <\/li>\n  <li>\n    <p>open source samples that illustrate best practices for Flutter<\/p>\n\n    <p>https:\/\/github.com\/flutter\/samples?tab=readme-ov-file<\/p>\n  <\/li>\n  <li>\n    <p>TODO: dart install tool.<\/p>\n  <\/li>\n  <li>\n    <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>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code> \/\/ Importing important packages require to connect\n \/\/ Flutter and Dart\n import 'package:flutter\/material.dart';\n\n \/\/ Main Function\n void main() {\n \/\/ Giving command to runApp() to run the app.\n\n \/\/ The purpose of the runApp() function is to attach\n \/\/ the given widget to the screen.\n runApp(const MyApp());\n }\n\n \/\/ MyApp extends StatelessWidget and overrides its\n \/\/ build method.\n class MyApp extends StatelessWidget {\n const MyApp({Key? key}) : super(key: key);\n\n \/\/ This widget is the root of your application.\n @override\n Widget build(BuildContext context) {\n     return MaterialApp(\n            \n     \/\/ title of the application\n     title: 'Hello World Demo Application',\n        \n     \/\/ theme of the widget\n     theme: ThemeData(\n         primarySwatch: Colors.lightGreen,\n     ),\n        \n     \/\/ Inner UI of the application\n     home: const MyHomePage(title: 'Home page'),\n     );\n }\n }\n\n \/\/ This class is similar to MyApp instead it\n \/\/ returns Scaffold Widget \n class MyHomePage extends StatelessWidget {\n const MyHomePage({Key? key, required this.title}) : super(key: key);\n final String title;\n\n @override\n Widget build(BuildContext context) {\n     return Scaffold(\n     appBar: AppBar(\n         title: Text(title),\n         backgroundColor: Colors.green,\n         foregroundColor: Colors.white,\n     ),\n        \n     \/\/ Sets the content to the\n     \/\/ center of the application page\n     body: const Center(\n            \n         \/\/ Sets the content of the Application\n         child: Text(\n         'Welcome to Visual Studio Code!',\n     )),\n     );\n }\n }\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n<\/ol>\n\n<p><a name=\"MacOSInstall\"><\/a><\/p>\n\n<h2 id=\"install-for-local-development-on-macos\">Install for local Development on MacOS<\/h2>\n\n<p>https:\/\/docs.flutter.dev\/get-started\/custom#target-platform<\/p>\n\n<ul>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n<\/ul>\n\n<ol>\n  <li>Install Homebrew for Mac<\/li>\n  <li>Install git, XCode<\/li>\n  <li>Install Flutter for CLI with <tt>brew install \u2013cask flutter<\/tt><\/li>\n  <li>Install Visual Studio Code with extras for Flutter:\nhttps:\/\/marketplace.visualstudio.com\/items?itemName=Dart-Code.flutter\n    <ol>\n      <li>Click \u201cInstall\u201d.<\/li>\n    <\/ol>\n\n    <p>Alternately:<\/p>\n    <ol>\n      <li>In Go to View &gt; Command Palette or press Command + Shift + P.<\/li>\n      <li>\n        <p>In the command palette, type flutter.<\/p>\n      <\/li>\n      <li>Select Flutter: New Project.<\/li>\n    <\/ol>\n\n    <p>VS Code prompts you to locate the Flutter SDK on your computer. Select Download SDK.<\/p>\n\n    <ol>\n      <li>\n        <p>When the Select Folder for Flutter SDK dialog displays, choose where you want to install Flutter.<\/p>\n      <\/li>\n      <li>\n        <p>Click Clone Flutter.<\/p>\n      <\/li>\n      <li>\n        <p>While downloading Flutter, VS Code displays this pop-up notification:<\/p>\n      <\/li>\n      <li>\n        <p>Downloading the Flutter SDK. This may take a few minutes.\n This download takes a few minutes. If you suspect that the download has hung, click Cancel then start the installation again.<\/p>\n      <\/li>\n      <li>\n        <p>Click Add SDK to PATH.<\/p>\n      <\/li>\n      <li>\n        <p>When successful, a notification displays: \u201cThe Flutter SDK was added to your PATH. VS Code might display a Google Analytics notice.\u201d If you agree, click OK.<\/p>\n      <\/li>\n      <li>\n        <p>To ensure that Flutter is available in all terminals: Close all terminal windows. Then Quit and Restart VS Code.<\/p>\n      <\/li>\n    <\/ol>\n  <\/li>\n  <li>Verify installation: &lt;pre&gt;flutter \u2013version&lt;\/pre&gt;\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code> Flutter 3.38.2 \u2022 channel stable \u2022\n https:\/\/github.com\/flutter\/flutter.git\n Framework \u2022 revision f5a8537f90 (15 hours\n ago) \u2022 2025-11-18 09:27:21 -0500\n Engine \u2022 hash\n 78c3c9557e50ee7c676fa37562558c59efd8406a\n (revision b5990e5ccc) (6 days ago) \u2022\n 2025-11-12 21:08:24.000Z\n Tools \u2022 Dart 3.10.0 \u2022 DevTools 2.51.1\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>\n    <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>\nSee https:\/\/flutter.dev\/to\/platform-plugins<\/p>\n\n    <pre>sudo gem install cocoapods<\/pre>\n\n    <p>Alternately, <a target=\"_blank\" href=\"https:\/\/guides.cocoapods.org\/using\/getting-started.html#updating-cocoapods\">CocoaPods update guide<\/a>.<\/p>\n\n    <pre>[sudo] gem install cocoapods<\/pre>\n  <\/li>\n  <li>Run &lt;pre&gt;flutter doctor -v&lt;\/pre&gt;\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code> [\u2717] Chrome - develop for the web (Cannot find\n     Chrome executable at \/Applications\/Google\n     Chrome.app\/Contents\/MacOS\/Google Chrome)\n     [7ms]\n     ! Cannot find Chrome. Try setting\n     CHROME_EXECUTABLE to a Chrome\n     executable.\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>\n    <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>\n\n    <pre>flutter devices<\/pre>\n  <\/li>\n<\/ol>\n\n<h2 id=\"create-locally-step-by-step\">Create locally step-by-step<\/h2>\n\n<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>\n\n<ol>\n  <li>Install VSCode &amp; Flutter (above)<\/li>\n<\/ol>\n\n<p><a name=\"Testing\"><\/a><\/p>\n\n<h2 id=\"testing-mobile-apps\">Testing mobile apps<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/codelabs.developers.google.com\/codelabs\/flutter-app-testing\/#0\">How to Test a Flutter app<\/a><\/p>\n\n<ol>\n  <li>\n    <p>Create an Android emulator, download Android Studio which also supports Flutter development, and follow the instructions in Create and manage virtual devices.<\/p>\n  <\/li>\n  <li>\n    <p>Create an iOS simulator, you will need a Mac environment. Download XCode, and follow the instructions in Simulator Overview &gt; Use Simulator &gt; Open and close a simulator.<\/p>\n  <\/li>\n  <li>\n    <p>TODO: dart build tool.<\/p>\n  <\/li>\n<\/ol>\n\n<h2 id=\"agentic-vertex-ai\">Agentic Vertex AI<\/h2>\n\n<ul>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"http:\/\/flutter.dev\/events\/building-agentic-apps#flutter-genkit\">Google Genkit lives on a server<\/a><\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/blog.flutter.dev\/learn-how-to-build-agentic-apps-with-flutter-angular-firebase-and-vertex-ai-ad46b38b1adb<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/flutter.dev\/events\/building-agentic-apps#home<\/p>\n  <\/li>\n  <li>\n    <p>MCP server?<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"svg--icon-fonts\">SVG &amp; Icon Fonts<\/h2>\n\n<p>.svg vector files look sharper and consume less space because they are treated like program code.<\/p>\n\n<p>Search for images from stock photo sites:<\/p>\n<ul>\n  <li>dribble.com<\/li>\n  <li>pinterest.com<\/li>\n<\/ul>\n\n<ol>\n  <li>Dart function declaration to let the LLM set colors in your app:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>FunctionDeclaration get setColorFuncDecl =&gt; FunctionDeclaration(\n  'set_color',\n  'Set the color of the display square based on red, green, and blue values.',\n  parameters: {\n 'red': Schema.number(description: 'Red component value (0.0 - 1.0)'),\n 'green': Schema.number(description: 'Green component value (0.0 - 1.0)'),\n 'blue': Schema.number(description: 'Blue component value (0.0 - 1.0)'),\n  },\n);\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n<\/ol>\n\n<h2 id=\"graphically-design-using-figma\">Graphically Design using Figma<\/h2>\n\n<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>\n\n<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>\n\n<p>Features<\/p>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/firebase.google.com\/codelabs\/firebase-auth-in-flutter-apps\">User Authentication<\/a><\/li>\n  <li>Billing<\/li>\n<\/ul>\n\n<h2 id=\"e-commerce\">E-commerce<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/github.com\/googlecodelabs\">https:\/\/github.com\/googlecodelabs<\/a> shown using npm ployserve.<\/p>\n\n<p>panoply store<\/p>\n\n<ul>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/docs.flutter.dev\/reference\/learning-resources\">Samples and tutorials<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/docs.flutter.dev\/cookbook\/networking\/authenticated-requests\">Make authenticated requests<\/a><\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"ui-widgets\">UI Widgets<\/h2>\n\n<p>PROTIP: Split code into separate widget sections for faster performance.<\/p>\n\n<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>\n\n<p>Google Material Design and Cupertino support Flutter\u2019s wide range of widgets.<\/p>\n\n<ul>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/live\/YY-_yrZdjGc?si=4JjDyiuMCISniUJE\">YouTube Live: Building scrolling experiences in Flutter | Workshop<\/a><\/p>\n  <\/li>\n  <li>\n    <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\u2019s six platforms.<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"smart-phone-app-features\">Smart Phone app features<\/h2>\n\n<p>animations and transitions to make apps visually stunning.<\/p>\n\n<p>Utilize device features such as the camera within your applications.<\/p>\n\n<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 &amp; Android Studio (Google Fold Pro &amp; Pro Tips!)<\/a> (virtual devices)<\/p>\n\n<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>\n\n<h2 id=\"database\">Database<\/h2>\n\n<p>https:\/\/github.com\/amugofjava\/anytime_podcast_player\nuses Sembast, a NoSQL in-memory database but less suitable for a larger, more data-centric app.<\/p>\n\n<h2 id=\"web-apps\">Web apps<\/h2>\n\n<p>Flutter\u2019s Skia rendering engine runs 60 frames per second for visually stunning and responsive user interfaces.<\/p>\n\n<p>Taking Flutter to the Web\nBy Damodar Lohani<\/p>\n\n<h2 id=\"calls-to-apis\">Calls to APIs<\/h2>\n\n<p>Third-party integrations include cloud hosting, data storage, payment gateways, and SMS push notifications.<\/p>\n\n<p>AI tools: Google Gemini, OpenAI (ChatGPT), Anthropic<\/p>\n\n<p><a name=\"Firebase\"><\/a><\/p>\n\n<h2 id=\"googles-firebase-backend\">Google\u2019s Firebase Backend<\/h2>\n\n<ol>\n  <li>\n    <p>Google Project Account to set up Firebase account.<\/p>\n  <\/li>\n  <li>\n    <p>Get on the FireBase Console at:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/console.firebase.google.com\/\">https:\/\/console.firebase.google.com\/<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/firebase.google.com\/docs\/flutter\/setup?platform=ios\">Add Firebase to your Flutter app<\/a><\/p>\n  <\/li>\n<\/ol>\n\n<ul>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/codelabs.developers.google.com\/codelabs\/flutter-codelab-first?hl=en\">Your first Flutter app<\/a><\/p>\n  <\/li>\n  <li>\n    <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.\n  Interprets the descriptions into precise RGB color values\n  Displays the color on screen in real-time\n  Provides technical color details and interesting context about the color\n  Maintains a history of recently generated colors<\/p>\n\n    <ol>\n      <li>Project setup - You\u2019ll start with a basic Flutter app structure and the colorist_ui package<\/li>\n      <li>Basic Gemini integration - Connect your app to Firebase AI Logic and implement LLM communication<\/li>\n      <li>Effective prompting - Create a system prompt that guides the LLM to understand color descriptions<\/li>\n      <li>Function declarations - Define tools that the LLM can use to set colors in your application<\/li>\n      <li>Tool handling - Process function calls from the LLM and connect them to your app\u2019s state<\/li>\n      <li>Streaming responses - Enhance the user experience with real-time streaming LLM responses<\/li>\n      <li>\n        <p>LLM Context Synchronization - Create a cohesive experience by informing the LLM of user actions<\/p>\n      <\/li>\n      <li>Configure Firebase AI Logic for Flutter applications<\/li>\n      <li>Craft effective system prompts to guide LLM behavior<\/li>\n      <li>Implement function declarations that bridge natural language and app features<\/li>\n      <li>Process streaming responses for a responsive user experience<\/li>\n      <li>Synchronize state between UI events and the LLM<\/li>\n      <li>Manage LLM conversation state using Riverpod<\/li>\n      <li>Handle errors gracefully in LLM-powered applications\n  <br \/><br \/><\/li>\n    <\/ol>\n  <\/li>\n  <li>\n    <p>Generate random dishes to cook and eat based on user criteria.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/firebase.google.com\/codelabs\/firebase-fcm-flutter?hl=en#0\">FCM<\/a><\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"resources\">Resources<\/h2>\n\n<h2 id=\"jobs\">Jobs<\/h2>\n\n<p>https:\/\/www.virtualemployee.com\/da\/hire-flutter-app-developers\/<\/p>\n\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/jekyll-site-development\/"}},"id":"https:\/\/wilsonmar.github.io\/jekyll-site-development","published":"2025-11-18T00:00:00+00:00","updated":"2025-11-18T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Getting started with Jekyll<\/i><\/p>\n<p align=\"right\">\n<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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fjekyll-site-development%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#the-objective\" id=\"markdown-toc-the-objective\">The objective<\/a><\/li>\n  <li><a href=\"#upgrade-apple-xcode\" id=\"markdown-toc-upgrade-apple-xcode\">Upgrade Apple XCode<\/a><\/li>\n  <li><a href=\"#install-rbenv\" id=\"markdown-toc-install-rbenv\">Install rbenv<\/a><\/li>\n  <li><a href=\"#create-a-folder\" id=\"markdown-toc-create-a-folder\">Create a folder<\/a>    <ul>\n      <li><a href=\"#install-jekyll-instead-of-homebrew\" id=\"markdown-toc-install-jekyll-instead-of-homebrew\">Install Jekyll (instead of Homebrew):<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#bundle-install\" id=\"markdown-toc-bundle-install\">Bundle install<\/a><\/li>\n  <li><a href=\"#grunt-tasks\" id=\"markdown-toc-grunt-tasks\">Grunt tasks<\/a><\/li>\n  <li><a href=\"#serve-jekyll-landing-page\" id=\"markdown-toc-serve-jekyll-landing-page\">Serve Jekyll landing page<\/a>    <ul>\n      <li><a href=\"#edit-indexhtml-author_profile\" id=\"markdown-toc-edit-indexhtml-author_profile\">Edit index.html author_profile<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#change-readmemd-content\" id=\"markdown-toc-change-readmemd-content\">Change README.md content<\/a>    <ul>\n      <li><a href=\"#edit-_configyml-and-reset-server\" id=\"markdown-toc-edit-_configyml-and-reset-server\">Edit _config.yml and reset server<\/a><\/li>\n      <li><a href=\"#edit-_configyml-author-info\" id=\"markdown-toc-edit-_configyml-author-info\">Edit _config.yml author info<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <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>\n      <li><a href=\"#indexmd-under-about-folders\" id=\"markdown-toc-indexmd-under-about-folders\">index.md under About folders<\/a><\/li>\n      <li><a href=\"#indexmd-under-folders\" id=\"markdown-toc-indexmd-under-folders\">index.md under folders<\/a><\/li>\n      <li><a href=\"#parsing-of-post-file-names\" id=\"markdown-toc-parsing-of-post-file-names\">Parsing of post file names<\/a><\/li>\n      <li><a href=\"#ui-text-translation\" id=\"markdown-toc-ui-text-translation\">UI Text Translation<\/a><\/li>\n      <li><a href=\"#metadata-within-md-files\" id=\"markdown-toc-metadata-within-md-files\">Metadata within .md files<\/a><\/li>\n      <li><a href=\"#layout-types\" id=\"markdown-toc-layout-types\">Layout types<\/a><\/li>\n      <li><a href=\"#liquid-engine\" id=\"markdown-toc-liquid-engine\">Liquid engine<\/a>        <ul>\n          <li><a href=\"#collections\" id=\"markdown-toc-collections\">Collections<\/a><\/li>\n        <\/ul>\n      <\/li>\n      <li><a href=\"#link-icon-yaml\" id=\"markdown-toc-link-icon-yaml\">Link icon YAML<\/a><\/li>\n      <li><a href=\"#yml-metada\" id=\"markdown-toc-yml-metada\">.yml metada<\/a><\/li>\n      <li><a href=\"#sitemapxml-in-_site\" id=\"markdown-toc-sitemapxml-in-_site\">sitemap.xml in _site<\/a><\/li>\n      <li><a href=\"#bing-it-on\" id=\"markdown-toc-bing-it-on\">Bing it on<\/a><\/li>\n      <li><a href=\"#google-ownership\" id=\"markdown-toc-google-ownership\">Google Ownership<\/a><\/li>\n      <li><a href=\"#disqus-comments\" id=\"markdown-toc-disqus-comments\">Disqus comments<\/a><\/li>\n      <li><a href=\"#multiple-authors\" id=\"markdown-toc-multiple-authors\">Multiple authors<\/a><\/li>\n      <li><a href=\"#social-links-\" id=\"markdown-toc-social-links-\">Social links +<\/a><\/li>\n      <li><a href=\"#social-sharing\" id=\"markdown-toc-social-sharing\">Social sharing<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#images\" id=\"markdown-toc-images\">Images<\/a>    <ul>\n      <li><a href=\"#in-line-gfm-images\" id=\"markdown-toc-in-line-gfm-images\">In-line GFM images<\/a><\/li>\n      <li><a href=\"#clickable-images\" id=\"markdown-toc-clickable-images\">Clickable images<\/a>        <ul>\n          <li><a href=\"#one-up\" id=\"markdown-toc-one-up\">One Up<\/a><\/li>\n          <li><a href=\"#halfthree-up\" id=\"markdown-toc-halfthree-up\">Half\/Three Up<\/a><\/li>\n          <li><a href=\"#three-up\" id=\"markdown-toc-three-up\">Three Up<\/a><\/li>\n        <\/ul>\n      <\/li>\n      <li><a href=\"#layout-responsive-to-screen-size\" id=\"markdown-toc-layout-responsive-to-screen-size\">Layout responsive to screen size<\/a><\/li>\n      <li><a href=\"#image-sized-to-screen\" id=\"markdown-toc-image-sized-to-screen\">Image sized to screen?<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#markdown-coding\" id=\"markdown-toc-markdown-coding\">Markdown coding<\/a>    <ul>\n      <li><a href=\"#notice-boxes\" id=\"markdown-toc-notice-boxes\">Notice boxes<\/a><\/li>\n      <li><a href=\"#blockquotes\" id=\"markdown-toc-blockquotes\">Blockquotes<\/a><\/li>\n      <li><a href=\"#footnotes\" id=\"markdown-toc-footnotes\">Footnotes<\/a><\/li>\n      <li><a href=\"#button-colors-in-html\" id=\"markdown-toc-button-colors-in-html\">Button colors in HTML<\/a><\/li>\n      <li><a href=\"#sass\" id=\"markdown-toc-sass\">SASS<\/a><\/li>\n      <li><a href=\"#paragraph-indents\" id=\"markdown-toc-paragraph-indents\">Paragraph Indents<\/a><\/li>\n      <li><a href=\"#numbered-lists\" id=\"markdown-toc-numbered-lists\">Numbered lists<\/a><\/li>\n      <li><a href=\"#code-snippets\" id=\"markdown-toc-code-snippets\">Code Snippets<\/a><\/li>\n      <li><a href=\"#gists\" id=\"markdown-toc-gists\">Gists<\/a><\/li>\n      <li><a href=\"#standard-gfm-mark-up\" id=\"markdown-toc-standard-gfm-mark-up\">Standard GFM mark-up<\/a><\/li>\n      <li><a href=\"#custom-includes\" id=\"markdown-toc-custom-includes\">Custom Includes<\/a><\/li>\n      <li><a href=\"#tables\" id=\"markdown-toc-tables\">Tables<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#affiliate-ads\" id=\"markdown-toc-affiliate-ads\">Affiliate Ads<\/a>    <ul>\n      <li><a href=\"#amazon-affiliate-ads\" id=\"markdown-toc-amazon-affiliate-ads\">Amazon Affiliate Ads<\/a><\/li>\n      <li><a href=\"#google-affiliate-ads\" id=\"markdown-toc-google-affiliate-ads\">Google Affiliate Ads<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#site-search\" id=\"markdown-toc-site-search\">Site Search<\/a><\/li>\n  <li><a href=\"#gitignore\" id=\"markdown-toc-gitignore\">.gitignore<\/a><\/li>\n  <li><a href=\"#additional-features\" id=\"markdown-toc-additional-features\">Additional features<\/a><\/li>\n  <li><a href=\"#deploy-to-server\" id=\"markdown-toc-deploy-to-server\">Deploy to server<\/a><\/li>\n  <li><a href=\"#questions\" id=\"markdown-toc-questions\">Questions<\/a><\/li>\n  <li><a href=\"#footnotes-1\" id=\"markdown-toc-footnotes-1\">Footnotes<\/a><\/li>\n  <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>\n  <li><a href=\"#more-on-front-end-styling\" id=\"markdown-toc-more-on-front-end-styling\">More on front-end styling<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>NOTICE: \n<a target=\"_blank\" href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/05\/hugo-migration\/\">Kubernetes.io moved their docs to Hugo in 2018<\/a>.<\/p>\n\n<p>This article contains notes on getting started with Jekyll and other static websites.<\/p>\n\n<p>This is one in a series:<\/p>\n\n<ol>\n  <li><a href=\"\/static-websites\/\">Static website development<\/a><\/li>\n  <li><a href=\"\/jekyll-site-development\/\">Jekyll site development<\/a><\/li>\n  <li><a href=\"\/jekyll-templates\/\">Jekyll templates and themes<\/a><\/li>\n  <li><a href=\"\/email-from-jekyll\/\">Email from Jekyll sites<\/a><\/li>\n  <li><a href=\"\/jekyll-with-algolia-search\/\">Add search to Jekyll sites<\/a><\/li>\n  <li><a href=\"\/authentication-on-static-site\/\">Authenticate on static sites<\/a><\/li>\n  <li><a href=\"\/clickable-maps-in-jekyll-posts\/\">Clickable maps in Jekyll sites<\/a><\/li>\n<\/ol>\n\n<p><em>NOTE: Content here are my personal opinions, and \nnot intended to represent any employer (past or present).\n\u201cPROTIP:\u201d here highlight information I haven\u2019t seen elsewhere on the internet\nbecause it is hard-won, little-know but significant facts \nbased on my personal research and experience.\n<\/em><\/p>\n\n<p>There is also <a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/gatsby\">Gatsby<\/a> and others.<\/p>\n\n<p>But Jekyll is still currently the <a href=\"\/static-websites\/\">most popular among static site builder options<\/a>.<\/p>\n\n<h2 id=\"the-objective\">The objective<\/h2>\n\n<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>\n\n<ol>\n  <li>\n    <p>In the macOS <code class=\"language-plaintext highlighter-rouge\">~\/.bash_profile<\/code> add a shortcut, but substitute \u201cwilsonmar\u201d with your own GitHub account name:<\/p>\n\n    <pre>\nalias js='cd ~\/gits\/wilsonmar\/wilsonmar.github.io; \\\nbundle exec jekyll serve --config _config.yml'\n<\/pre>\n  <\/li>\n  <li>\n    <p>Create the folder.<\/p>\n  <\/li>\n<\/ol>\n\n<h2 id=\"upgrade-apple-xcode\">Upgrade Apple XCode<\/h2>\n\n<ol>\n  <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>\n<\/ol>\n\n<p>Jana Bergant\u2019s <a target=\"_blank\" href=\"https:\/\/www.udemy.com\/static-website-generator-fast-secure-sites-blogs-with-jekyll\/\">\nUdemy course<\/a> uses a mac install Jekyll 3.3.0 at last viewing:<\/p>\n\n<h2 id=\"install-rbenv\">Install rbenv<\/h2>\n\n<ol>\n  <li>\n    <p>Get list of rbenv versions<\/p>\n\n    <table>\n      <tbody>\n        <tr>\n          <td>rbenv install -l<\/td>\n          <td>grep -E \u201c^\\s*3.[0-9]+.[0-9]+$\u201d<\/td>\n          <td>tail -10<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/li>\n  <li>\n    <p>Specify latest\nrbenv install 3.4.7\nrbenv global 3.4.7<\/p>\n  <\/li>\n  <li>\n    <p>Per https:\/\/github.com\/rbenv\/ruby-build\/wiki#suggested-build-environment<\/p>\n\n    <pre><strong>brew install openssl libyaml libffi<\/strong><\/pre>\n\n    <pre><strong>brew install rbenv ruby-build<\/strong><\/pre>\n  <\/li>\n  <li>\n    <p>To avoid ???:<\/p>\n\n    <p>??? \/usr\/local\/bin for Intel chips<\/p>\n\n    <pre><strong>sudo gem update --system -n \/usr\/local\/bin --no-document<\/strong><\/pre>\n\n    <p><code class=\"language-plaintext highlighter-rouge\">-n \/usr\/local\/bin<\/code> ensures avoids \u201cYou don\u2019t have write permissions for the \/usr\/bin directory.\u201d<\/p>\n\n    <p><code class=\"language-plaintext highlighter-rouge\">--no-document<\/code> to avoid installing documentation (which can be accessed online anyway)<\/p>\n  <\/li>\n  <li><\/li>\n<\/ol>\n\n<p>which ruby<\/p>\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>   \/Users\/johndoe\/.rbenv\/shims\/ruby\n<\/code><\/pre><\/div><\/div>\n\n<h2 id=\"create-a-folder\">Create a folder<\/h2>\n\n<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>\n\n<ol>\n  <li>\n    <p>In GitHub create a <em>youraccount<\/em>.github.io repo.<\/p>\n  <\/li>\n  <li>\n    <p>Delete file .bundle from my Home folder (rm -rf ~\/.bundle). You can check out your configuration running bundle env<\/p>\n\n    <p>https:\/\/jekyllrb.com\/docs\/<\/p>\n  <\/li>\n  <li>\n    <p>In Terminal, from any folder,<\/p>\n\n    <pre>sudo gem uninstall bundler\ngem update --system\n<\/pre>\n    <p>Response:<\/p>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>RubyGems system software updated\n<\/code><\/pre><\/div>    <\/div>\n\n    <p>If the latest version is not installed, you get a message like this:<\/p>\n\n    <pre>\nERROR:  While executing gem ... (Errno::EPERM)\n Operation not permitted @ rb_sysopen - \/System\/Library\/Frameworks\/Ruby.framework\/Versions\/2.3\/usr\/bin\/gem\n<\/pre>\n  <\/li>\n  <li>\n    <p>Rehash:<\/p>\n\n    <pre>\nrbenv rehash\nsudo gem install bundler\n<\/pre>\n\n    <p>A valid response I got:<\/p>\n\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>Successfully installed bundler-2.0.1\nParsing documentation for bundler-2.0.1\nDone installing documentation for bundler after 4 seconds\n1 gem installed\n<\/code><\/pre><\/div>    <\/div>\n\n    <h3 id=\"install-jekyll-instead-of-homebrew\">Install Jekyll (instead of Homebrew):<\/h3>\n\n    <pre><strong>gem install jekyll --no-document<\/strong><\/pre>\n\n    <p>The response:<\/p>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>Successfully installed jekyll-4.4.1\n28 gems installed\n<\/code><\/pre><\/div>    <\/div>\n\n    <p>http:\/\/ryan.mcgeary.org\/2011\/02\/09\/vendor-everything-still-applies\/<\/p>\n  <\/li>\n  <li>\n    <p>In _config.yml<\/p>\n\n    <pre>exclude: [\"vendor\", \"lib\", &lt;\/pre&lt;&gt;\n\n### Demo Site\n\n<\/pre>\n  <\/li>\n  <li>\n    <p>Use or create an enclosing folder, such as \u201cprojects\u201d.<\/p>\n\n    <pre>jekyll new demosite<\/pre>\n\n    <p>The response should be<\/p>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>New jekyll site installed ...\n<\/code><\/pre><\/div>    <\/div>\n\n    <p>BLAH: I\u2019m getting this message:<\/p>\n    <pre>\nYour user account isn't allowed to install to the system RubyGems.\n  You can cancel this installation and run:\n&nbsp;\n   bundle install --path vendor\/bundle\n&nbsp;\n  to install the gems into .\/vendor\/bundle\/, or you can enter your password\n  and install the bundled gems to RubyGems using sudo.\n&nbsp;\n  Password: \n<\/pre>\n  <\/li>\n<\/ol>\n\n<h2 id=\"bundle-install\">Bundle install<\/h2>\n\n<p>After downloading, have Maven pull in dependencies based on the Gemfile:<\/p>\n\n<p><tt><strong>bundle install<\/strong><\/tt><\/p>\n\n<p>NOTE: Technically, \u201cinstall\u201d is not needed since it\u2019s the default command for bundle.<\/p>\n\n<p>Bundling makes the list of dependencies in the <strong>Gemfile<\/strong> to be downloaded.<\/p>\n\n<pre>\nYour user account isn't allowed to install to the system RubyGems.\n  You can cancel this installation and run:\n&nbsp;\n      bundle install --path vendor\/bundle\n   <\/pre>\n\n<h2 id=\"grunt-tasks\">Grunt tasks<\/h2>\n\n<p>Behind the scenes is a running of the <strong>Gruntfie.js<\/strong> that comes with the theme.\nIt defines the parameters of various tasks that are downloaded:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-clean\">clean<\/a>\nclears files and folders.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-jshint\">jshint<\/a>\nvalidates files with JSHint, based on the <strong>.jshintrc<\/strong> configuration file at the root folder.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-uglify\">uglify<\/a>\nminfies files with UglifyJS.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-watch\">watch<\/a>\nruns tasks whenever watched files change.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/gruntjs\/grunt-contrib-imagemin\">imagemin<\/a>\nminifies PNG graphics files.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/sindresorhus\/grunt-svgmin\">grunt-svgmin<\/a>\nminifies SVG graphics files.<\/li>\n<\/ul>\n\n<p>NOTE: File names beginning with a dot are hidden.<\/p>\n\n<h2 id=\"serve-jekyll-landing-page\">Serve Jekyll landing page<\/h2>\n\n<p>Theme programming goes to work generating HTML files in folder <strong>_site<\/strong>\nwhen this command is issued when the present working directory is the\nsite\u2019s folder:<\/p>\n\n<p><a name=\"invoke-server\"><\/a><\/p>\n\n<p>To see the site the way GitHub would generate it\n(without additional plug-ins some templates provide):<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>   bundle exec jekyll serve --safe\n<\/code><\/pre><\/div><\/div>\n\n<p>The precise version of plug-ins used by GitHub on-line is listed\n   <a target=\"_blank\" href=\"https:\/\/pages.github.com\/versions\/\">here<\/a>.<\/p>\n\n<p>Otherwise:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>   bundle exec jekyll serve --baseurl ''\n<\/code><\/pre><\/div><\/div>\n\n<p>Alternately, override local URLs:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>   bundle exec jekyll serve --config _config.yml,_config_dev.yml\n<\/code><\/pre><\/div><\/div>\n\n<p>PROTIP: Define an alias, such as \u201cbs\u201d in <strong>~\/.bash_profile<\/strong> file:<\/p>\n\n<p><code class=\"language-plaintext highlighter-rouge\">alias bs='bundle exec jekyll serve --config _config.yml,_config_dev.yml'<\/code><\/p>\n\n<p>PROTIP: Leave this terminal instance running and open another Terminal\n   instance to work on the content of the site.<\/p>\n\n<p>The generated HTML files can then be accessed from an internet browser\nat this URL:<\/p>\n\n<p><a target=\"_blank\" href=\"http:\/\/localhost:4000\">http:\/\/localhost:4000<\/a><\/p>\n\n<p>The landing page of the site is defined in the <strong>index.md<\/strong> file at the root folder.<\/p>\n\n<p>The theme by itself does not show much.\nThe template\u2019s author assumes that technical people will be using his creation.<\/p>\n\n<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>\n\n<ol>\n  <li>Edit file index.html file. By default it contains this:<\/li>\n<\/ol>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\">---\nlayout: archive\nauthor_profile: true\n---\n<span class=\"ni\">&amp;#217;<\/span>% include base_path %}\n\n<span class=\"ni\">&amp;LT;<\/span>h3 class=\"archive__subtitle\"&gt;Recent Posts<span class=\"ni\">&amp;LT;<\/span>\/h3&gt;\n\n<span class=\"ni\">&amp;#217;<\/span>% for post in paginator.posts %}\n<span class=\"ni\">&amp;#217;<\/span>% include archive-single.html %}\n<span class=\"ni\">&amp;#217;<\/span>% endfor %}\n\n<span class=\"ni\">&amp;#217;<\/span>% include paginator.html %}<\/code><\/pre><\/figure>\n\n<p>Between the two triple-dash characters is the <strong>\u201cfront matter\u201d<\/strong>\nfor Jekyll to interpret.<\/p>\n\n<p>Jekyll uses the layout tag\u2019s value <strong>archive<\/strong> to build out the page\naccording to the archive.html file within the _layouts folder.<\/p>\n\n<p>Another layout type, splash, arranges the page with thumbnail pictures.<\/p>\n\n<p>The other layout types are default, single, and compress.<\/p>\n\n<p>Jekyll converts index.md files to index.html files.<\/p>\n\n<h3 id=\"edit-indexhtml-author_profile\">Edit index.html author_profile<\/h3>\n\n<p>Having <code class=\"language-plaintext highlighter-rouge\">author_profile: true<\/code> tells Jekyll to add the profile on the left side.<\/p>\n\n<ol>\n  <li>If you would rather have text greet your visitors, add it.<\/li>\n<\/ol>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">---\nlayout: home\nexcerpt: \"By Wilson Mar\"\ntags: [Jekyll, theme, responsive, blog, template]\nimage:\nfeature: sunrise-1900x500.png\ncredit:\ncreditlink:\n---<\/code><\/pre><\/figure>\n\n<ol>\n  <li>If you would rather have text greet your visitors, add it.<\/li>\n<\/ol>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;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\">&gt;<\/span><\/code><\/pre><\/figure>\n\n<p>TODO: Substitute the image file name in the <strong>feature:<\/strong> variable\nwith an alternative file you placed in the <strong>images<\/strong> folder.<\/p>\n\n<p>Return to this page from any other by clicking on the site\u2019s title \npresented at the upper left corner.<\/p>\n\n<h2 id=\"change-readmemd-content\">Change README.md content<\/h2>\n<ol>\n  <li>\n    <p>Use a text editor program to open the README.md file at the root.<\/p>\n\n    <p>This file is not shown on the website.<\/p>\n\n    <p>It was written for those who work with the site\u2019s code, \nnot readers of the resulting website.<\/p>\n\n    <p>So the content of this page should be changed from being about the theme\nto about the website derived from the theme template, such as:<\/p>\n\n    <p>\u201cI hope you\u2019ll file an issue or send a Pull Request. I need the help.\u201d<\/p>\n  <\/li>\n  <li>\n    <p>File mm-theme-post-600.jpg within the <strong>images<\/strong> folder can be deleted.<\/p>\n  <\/li>\n<\/ol>\n\n<h3 id=\"edit-_configyml-and-reset-server\">Edit _config.yml and reset server<\/h3>\n\n<ol>\n  <li>\n    <p>Use a text editor to edit <strong>_config.yml<\/strong>.<\/p>\n\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code># Site Settings\nlocale                   : \"en-US\"\ntitle                    : \"Home\"\ntitle_separator          : \"-\"\nname                     : \"Wilson Mar\"\ndescription              : \"Hello. Hire me.\"\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>\n    <p>Change the <code class=\"language-plaintext highlighter-rouge\">title<\/code> text from \u201cUSER_\u201d to <code class=\"language-plaintext highlighter-rouge\">\"Home\"<\/code> or whatever you want.<\/p>\n  <\/li>\n  <li>\n    <p>Change the name value to your screen name.<\/p>\n  <\/li>\n  <li>Save and exit the file.<\/li>\n  <li>Stop the server so the changes take.<\/li>\n  <li>\n    <p>Start the server again.<\/p>\n  <\/li>\n  <li>When you view the page again, notice the heading has changed to your title value.<\/li>\n<\/ol>\n\n<h3 id=\"edit-_configyml-author-info\">Edit _config.yml author info<\/h3>\n\n<ol>\n  <li>\n    <p>Again use a text editor to edit the _config.yml file to change other values.<\/p>\n  <\/li>\n  <li>\n    <p>Scroll down the file to:<\/p>\n\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code># Site Author\nauthor:\nname             : \"Wilson Mar\"\navatar           : \"bio-photo.jpg\"\nbio              : \"Hello.\"\nlocation         : \"Everywhere\"\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>\n    <p>Change the default author name, bio text, and location.<\/p>\n\n    <p>&lt;a href=\u201d#avatar&gt;Change the avatar&lt;\/a&gt;.\nPROTIP: Don\u2019t change more than one or two values before you reset and view again\nso you know what change break the system.<\/p>\n  <\/li>\n<\/ol>\n\n<h2 id=\"tabs-folders-and-indexmd-files-for-seo\">Tabs, folders, and index.md files (for SEO)<\/h2>\n\n<p>Links at the top of the page (\u201cQUICK-START GUIDE\u201d, \u201cABOUT\u201d, etc.)\nare specfied by the navigation.html file within the _data folder.<\/p>\n\n<ol>\n  <li>\n    <p>Edit that file.<\/p>\n\n    <p>The <strong>title:<\/strong> key specifies the text of each tab, such as \u201cAbout\u201d.<\/p>\n\n    <p>NOTE: CSS in the theme automatically turns all letters into capital.<\/p>\n  <\/li>\n  <li>\n    <p>Change url values such as this:<\/p>\n  <\/li>\n<\/ol>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">- title: About\nurl: \/about\/\n\n- title: Sample Posts\nurl: \/posts\/\n   <\/code><\/pre><\/figure>\n\n<ol>\n  <li>Save and restart the server.<\/li>\n<\/ol>\n\n<h3 id=\"indexmd-under-about-folders\">index.md under About folders<\/h3>\n\n<p>Next let\u2019s use a text editor to look into that <strong>about<\/strong> folder specified in the .yml file.<\/p>\n\n<p>github:\nrepo:  https:\/\/github.com\/user\/Proj # \u201cGitHub project\u201d link on sidebar<\/p>\n\n<h3 id=\"indexmd-under-folders\">index.md under folders<\/h3>\n\n<p>Jekyll converts the contents of each <strong>index.md<\/strong> file (containing markdown text)\ninto <strong>index.html<\/strong> files containing HTML.<\/p>\n\n<p>Open the <strong>index.md<\/strong> file in the about folder.<\/p>\n\n<p>HOORAY: The use of folders above an index.html file enables\ncalls using SEO-friendly links. For example, to reference the\nabout link:<\/p>\n\n<p>http:\/\/localhost:4000\/about<\/p>\n\n<p>HOORAY: This technique does not require use of mechanisms in the underlying web server container\n(such as IIS).<\/p>\n\n<p>The text is added to page titles that appear in browser tabs through this HTML:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">&lt;title&gt;All Posts &amp;#8211; WilsonMar.GitHub.io&lt;\/title&gt;<\/code><\/pre><\/figure>\n\n<h3 id=\"parsing-of-post-file-names\">Parsing of post file names<\/h3>\n\n<p>The <strong>posts<\/strong> tab link to files within the <strong>_posts<\/strong> folder.\nIn the case of the sample file named \u201c2011-03-10-sample-post.md\u201d,\nJekyll programming parses the \u201csample-post\u201d out of the file name and uses that\nas if it\u2019s named \u201csample-post.html\u201d.<\/p>\n\n<h3 id=\"ui-text-translation\">UI Text Translation<\/h3>\n\n<p>An addition<\/p>\n\n<h3 id=\"metadata-within-md-files\">Metadata within .md files<\/h3>\n\n<p>At the top of each markdown file, between a set of 3 dashes,\nare key-value pairs providing metadata about the page, such as this example\nfrom the <strong>index.md<\/strong> file within folder <strong>about<\/strong>:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">---\nlayout: page\ntitle: About\ntags: [about, Jekyll, theme, responsive]\nmodified: 2014-08-08T20:53:07.573882-04:00\ncomments: true\nimage:\n   feature: pic pic blue black stars spin 1900x500.jpg\n   credit: Jeremy Thomas\n   creditlink: https:\/\/www.flickr.com\/photos\/132218932@N03\/page2\n---<\/code><\/pre><\/figure>\n\n<p>EXTRA: Detailed YAML specifications are at:\nhttp:\/\/www.yaml.org\/spec\/1.2\/spec.html<\/p>\n\n<p>HOORAY: Such metadata takes the place of a database referenced to dynamically generate pages (as WordPress does).\nJekyll\u2019s lack of a database vastly simplies matters and speeds up processing.\nThis enables static page HTML to be distributed\nin CDNs (Content Distribution Networks) around the world.\nThat maximizes download speed for visitors.<\/p>\n\n<h3 id=\"layout-types\">Layout types<\/h3>\n\n<p>The various layout types are defined in files (with no extension) within the <strong>_templates<\/strong> folder:<\/p>\n\n<ul>\n  <li>archive<\/li>\n  <li>page<\/li>\n  <li>post<\/li>\n<\/ul>\n\n<p>HOORAY: This approach enables additional types to be defined.<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">---\nlayout: {}\ntitle: \nmodified:\ncategories: \nexcerpt:\ntags: []\nimage:\nfeature:\n---<\/code><\/pre><\/figure>\n\n<p>Text within square braces define an array of several values.<\/p>\n\n<h3 id=\"liquid-engine\">Liquid engine<\/h3>\n\n<p>Tags within { curly braces } are processed by the <strong>Liquid<\/strong> templating engine.<\/p>\n\n<p>Liquid can perform if\/then\/else decisions and loops.<\/p>\n\n<p>EXTRA: More detail about Liquid is at:\nhttps:\/\/docs.shopify.com\/themes\/liquid\/basics#If_.2F_Else_.2F_Unless<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/github.com\/Shopify\/liquid\/wiki\/Liquid-for-Designers\"> List of Liquid commands<\/a><\/li>\n<\/ul>\n\n<h4 id=\"collections\">Collections<\/h4>\n\n<p>One of the most powerful features provided by Liquid is \nCollections.<\/p>\n\n<p>Collections is explained at:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/jekyllrb.com\/docs\/collections\/\">\njekyllrb.com\/docs\/collections<\/a><\/li>\n  <li><a target=\"_blank\" href=\"http:\/\/ben.balter.com\/2015\/02\/20\/jekyll-collections\/\">\n2015\/02\/20\/jekyll-collections<\/a>\nby Ben Balter (product manager at GitHub).<\/li>\n<\/ul>\n\n<p>Collections refer to a custom folder containing many markdown files,\neach having front-matter than can be parsed by Liquid code.<\/p>\n\n<p>Ben has a great decision diagram:<\/p>\n\n<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>\n\n<p>NOTE: site.categories and site.tags only works on _posts.<\/p>\n\n<h3 id=\"link-icon-yaml\">Link icon YAML<\/h3>\n\n<p>In the list of posts, post titles with a link icon get that way because in its YAML is a line\nlink post line such as this:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">link: http:\/\/www.wilsonmar.com\n---<\/code><\/pre><\/figure>\n\n<h3 id=\"yml-metada\">.yml metada<\/h3>\n\n<p>Default values are specified in a <strong>_config.yml<\/strong> file at the root of the site folder.<\/p>\n\n<p>EXTRA: All keys are detailed at http:\/\/jekyllrb.com\/docs\/configuration\/<\/p>\n\n<p>Here are the first few lines of a sample file:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\"># Site wide configuration\n\ntitle:            WilsonMar.GitHub.io\nlocale:           en_US\nurl:\n\n# Jekyll configuration\n\npermalink:   \/:categories\/:title\/\nmarkdown:    kramdown\nhighlighter: rouge\nsass:\nsass_dir: _sass\nstyle: compressed\ngems:\n- jekyll-sitemap\n- jekyll-gist<\/code><\/pre><\/figure>\n\n<p>PROTIP: Changes in the _config.yml file are applied only when the Jekyll service is recycled.\nAt the command terminal window where Jekyll was launched,\npress control+C, then invoke the\n<a href=\"#invoke-server\">command to start the server again<\/a>.<\/p>\n\n<p>Another theme (Poole Hyde) adds:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">---\ngithub:\nrepo:  https:\/\/github.com\/user\/Proj # \"GitHub project\" link on sidebar\n---<\/code><\/pre><\/figure>\n\n<h3 id=\"sitemapxml-in-_site\">sitemap.xml in _site<\/h3>\n\n<p>Theme programming also generates the <strong>_site<\/strong> folder and in it\ngenerates <strong>feed.xml<\/strong> and <strong>sitemap.xml<\/strong> files for web crawlers to read.<\/p>\n\n<h3 id=\"bing-it-on\">Bing it on<\/h3>\n<p>TODO: Get a value for the <strong>bing-verify:<\/strong> variable in your <strong>_config.yml<\/strong>.<\/p>\n\n<ol>\n  <li>\n    <p>Open a Webmaster Tools account at\n<a target=\"_blank\" href=\"http:\/\/www.bing.com\/toolbox\/webmaster\/\">bing.com\/toolbox\/webmaster\/<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Sign In with a Windows Live ID. If you don\u2019t have a Microsoft account already, get one.<\/p>\n  <\/li>\n  <li>\n    <p>Type in your Site Name (mine\u2019s wilsonmar.github.io) and click Add a site.<\/p>\n  <\/li>\n  <li>\n    <p>Type in the URL to your Site Map. (mine\u2019s http:\/\/wilsonmar.github.io\/sitemap.xml).<\/p>\n\n    <p>The sitemap.xml file is generated in the <strong>_site<\/strong> folder,\nbut will be the root folder when deployed on a web server.<\/p>\n  <\/li>\n  <li>\n    <p>Fill out the other fields (contact info and preferences), then click Save.<\/p>\n  <\/li>\n  <li>\n    <p>In the Verify ownership page, copy the string from:<\/p>\n  <\/li>\n<\/ol>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">   &lt;meta name=\"msvalidate.01\" content=\"73A60A207FC7D42B6F428E462079B001\" \/&gt;\n   <\/code><\/pre><\/figure>\n\n<ol>\n  <li>\n    <p>Paste that string to the right of the <strong>bing-verify:<\/strong> variable.<\/p>\n  <\/li>\n  <li>Click the <strong>BingSiteAuth.xml<\/strong> link to save the file.<\/li>\n  <li>\n    <p>Move the file into the root folder where the _config.yml file is\n(NOT in the _site folder, which gets deleted and repopulated automatically).<\/p>\n  <\/li>\n  <li>Recycle the Jekyll server to see the <strong>BingSiteAuth.xml<\/strong> in the _site folder.<\/li>\n<\/ol>\n\n<h3 id=\"google-ownership\">Google Ownership<\/h3>\n\n<p>This is explained in https:\/\/support.google.com\/webmasters\/answer\/35179?hl=en<\/p>\n\n<ol>\n  <li>\n    <p>Access <a target=\"_blank\" href=\"https:\/\/www.google.com\/webmasters\/tools\/home?pli=1\">\nWebmasters Tools<\/a> using your Google account.<\/p>\n  <\/li>\n  <li>\n    <p>Add a Property (such as http:\/\/wilsonmar.github.io).<\/p>\n  <\/li>\n  <li>\n    <p>Download the html file (such as google923b0745fb3293c1.html) to the Downloads folder.<\/p>\n  <\/li>\n  <li>\n    <p>Move the file into the root folder where the _config.yml file is\n(NOT in the _site folder, which gets deleted and repopulated automatically).<\/p>\n  <\/li>\n  <li>\n    <p>Download the file.<\/p>\n  <\/li>\n<\/ol>\n\n<h3 id=\"disqus-comments\">Disqus comments<\/h3>\n\n<ol>\n  <li>Use an internet browser to get to:\n<a target=\"_blank\" href=\"https:\/\/disqus.com\/\">\nDisqus.com<\/a>.<\/li>\n<\/ol>\n\n<p>This is about creating a publisher account such as \u201cwilsonmarcom\u201d.<\/p>\n\n<ol>\n  <li>\n    <p>PROTIP: Create a separate personal commenter account (such as \u201cwilsonmar\u201d)\nto track your responses on other websites.<\/p>\n  <\/li>\n  <li>\n    <p>Click the cog next to your picture to select <strong>Add Disqus To Site<\/strong>, or\nhttps:\/\/publishers.disqus.com\/engage?utm_source=Home-Nav<\/p>\n  <\/li>\n  <li>\n    <p>Click <strong>Install on your site<\/strong>.<\/p>\n  <\/li>\n  <li>\n    <p>Specify a site name such as \u201cwilsonmar-github-io\u201d.<\/p>\n  <\/li>\n  <li>\n    <p>Click Next and answer the demographic questions (how many visits, etc.).<\/p>\n  <\/li>\n  <li>\n    <p>You don\u2019t need to\nselect installation for Universal code and copy\npaste JavaScript because the theme has already done that in\nfile <strong>_disqus_comments.html<\/strong> within folder <strong>_includes<\/strong>.<\/p>\n  <\/li>\n  <li>\n    <p>Copy the <strong>site.owner.disqus-shortname<\/strong>, such as \u201cwilsonmargithubio\u201d from:<\/p>\n  <\/li>\n<\/ol>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;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\">&gt;&lt;\/script&gt;<\/span><\/code><\/pre><\/figure>\n\n<ol>\n  <li>\n    <p>Open for edit file <strong>_config.yml<\/strong> in the root folder.<\/p>\n  <\/li>\n  <li>\n    <p>Paste the Disqus short name as the value to key <strong>disqus-shortname:<\/strong>.<\/p>\n  <\/li>\n  <li>\n    <p>Read more about configuration of Disqus at:\nhttps:\/\/help.disqus.com\/customer\/en\/portal\/articles\/2158629<\/p>\n  <\/li>\n<\/ol>\n\n<p><a target=\"_blank\" href=\"https:\/\/disqus.com\/admin\/create\/\">\nDisqus Setup Disqus on a New Site<\/a>.<\/p>\n\n<hr \/>\n\n<h3 id=\"multiple-authors\">Multiple authors<\/h3>\n\n<p>Lower in the file is information about the default author displayed on all pages.\nThis can be overridden in a particular index.md or post file by a line such as:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">author: billy_rick<\/code><\/pre><\/figure>\n\n<p>\u201cbilly_rick\u201d is a key to more information in the <strong>authors.yml<\/strong> file within the <strong>_data<\/strong> folder:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">billy_rick:\n  twitter: @billyrick<\/code><\/pre><\/figure>\n\n<p>HOORAY: This mechanism presents the photo and links to multiple alternative authors to appear on the website.<\/p>\n\n<h3 id=\"social-links-\">Social links +<\/h3>\n\n<p>If you\u2019d like more links, add them in folder <strong>_includes<\/strong> file <strong>_author-bio.html<\/strong>:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><\/code><\/pre><\/figure>\n\n<h3 id=\"social-sharing\">Social sharing<\/h3>\n\n<p>On the bottom of every page of the minimal-mistakes theme are large buttons for sharing\ntweets, Facebook, and Google.<\/p>\n\n<p>Unlike links on the left pane of every page,\nclicking on these links pops up a new browser window.<\/p>\n\n<p>You can change that pre-populated text (the URL) by changing the\n<strong>_social-share.html<\/strong> file withing folder <strong>_includes<\/strong>.\nThe default pulls in the value of variables:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">https:\/\/wilsonmar.github.io and \/jekyll-site-development\/<\/code><\/pre><\/figure>\n\n<p>The pop-up relies on cookies previously created when the visitor signed into Twitter, Facebook, and Google\non the same browser used to access this site.<\/p>\n\n<hr \/>\n\n<h2 id=\"images\">Images<\/h2>\n<p>Images can be defined in GFM or standard HTML.<\/p>\n\n<h3 id=\"in-line-gfm-images\">In-line GFM images<\/h3>\n<p>Positioning of GFM-specified images can be specified using a special tag.<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\">![Smithsonian Image](https:\/\/wilsonmar.github.io\/images\/3953273590_704e3899d5_m.jpg)\n{: .image-pull-right}<\/code><\/pre><\/figure>\n\n<p>renders as:<\/p>\n\n<p class=\"image-pull-right\"><img src=\"https:\/\/wilsonmar.github.io\/images\/pic flood of daya 877x524.jpeg\" alt=\"Smithsonian Image\" \/><\/p>\n\n<p>NOTE: Most images are stored in the site\u2019s <strong>images<\/strong> folder.<\/p>\n\n<h3 id=\"clickable-images\">Clickable images<\/h3>\n<p>GFM is not yet able to handle code to specific clickable images,\neither as HTML image maps nor as CSS.<\/p>\n\n<h4 id=\"one-up\">One Up<\/h4>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;figure&gt;<\/span>\n<span class=\"nt\">&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"http:\/\/farm9.staticflickr.com\/8426\/7758832526_cc8f681e48_b.jpg\"<\/span><span class=\"nt\">&gt;&lt;img<\/span> <span class=\"na\">src=<\/span><span class=\"s\">\"http:\/\/farm9.staticflickr.com\/8426\/7758832526_cc8f681e48_c.jpg\"<\/span><span class=\"nt\">&gt;&lt;\/a&gt;<\/span>\n<span class=\"nt\">&lt;figcaption&gt;&lt;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\">&gt;<\/span>Figure: Morning Fog Emerging From Trees by A Guy Taking Pictures, on Flickr<span class=\"nt\">&lt;\/a&gt;<\/span>.<span class=\"nt\">&lt;\/figcaption&gt;<\/span>\n<span class=\"nt\">&lt;\/figure&gt;<\/span><\/code><\/pre><\/figure>\n\n<p>renders to:<\/p>\n\n<figure>\n<a href=\"http:\/\/farm9.staticflickr.com\/8426\/7758832526_cc8f681e48_b.jpg\"><img src=\"http:\/\/farm9.staticflickr.com\/8426\/7758832526_cc8f681e48_c.jpg\" \/><\/a>\n<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>\n<\/figure>\n\n<h4 id=\"halfthree-up\">Half\/Three Up<\/h4>\n<p>The theme has a <code class=\"language-plaintext highlighter-rouge\">half<\/code> class to split the available horizonatl space in half\nto display two images side by side (and share the same caption).<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;figure<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"half\"<\/span><span class=\"nt\">&gt;<\/span>\n<span class=\"nt\">&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\/images\/image-filename-1-large.jpg\"<\/span><span class=\"nt\">&gt;&lt;img<\/span> <span class=\"na\">src=<\/span><span class=\"s\">\"\/images\/image-filename-1.jpg\"<\/span><span class=\"nt\">&gt;&lt;\/a&gt;<\/span>\n<span class=\"nt\">&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\/images\/image-filename-2-large.jpg\"<\/span><span class=\"nt\">&gt;&lt;img<\/span> <span class=\"na\">src=<\/span><span class=\"s\">\"\/images\/image-filename-2.jpg\"<\/span><span class=\"nt\">&gt;&lt;\/a&gt;<\/span>\n<span class=\"nt\">&lt;figcaption&gt;<\/span>Figure: Two images.<span class=\"nt\">&lt;\/figcaption&gt;<\/span>\n<span class=\"nt\">&lt;\/figure&gt;<\/span><\/code><\/pre><\/figure>\n\n<p>renders to:<\/p>\n\n<figure class=\"half\">\n<a href=\"http:\/\/placehold.it\/1200x600.JPG\"><img src=\"http:\/\/placehold.it\/600x300.jpg\" \/><\/a>\n<a href=\"http:\/\/placehold.it\/1200x600.jpeg\"><img src=\"http:\/\/placehold.it\/600x300.jpg\" \/><\/a>\n<figcaption>Figure: Two images.<\/figcaption>\n<\/figure>\n\n<h4 id=\"three-up\">Three Up<\/h4>\n\n<p>The theme has a <code class=\"language-plaintext highlighter-rouge\">third<\/code> class to split the available horizontal space in thirds\nto display three images side by side (and share the same caption):<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;figure<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"third\"<\/span><span class=\"nt\">&gt;<\/span>\n<span class=\"nt\">&lt;img<\/span> <span class=\"na\">src=<\/span><span class=\"s\">\"\/images\/image-filename-1.jpg\"<\/span><span class=\"nt\">&gt;<\/span>\n<span class=\"nt\">&lt;img<\/span> <span class=\"na\">src=<\/span><span class=\"s\">\"\/images\/image-filename-2.jpg\"<\/span><span class=\"nt\">&gt;<\/span>\n<span class=\"nt\">&lt;img<\/span> <span class=\"na\">src=<\/span><span class=\"s\">\"\/images\/image-filename-3.jpg\"<\/span><span class=\"nt\">&gt;<\/span>\n<span class=\"nt\">&lt;figcaption&gt;<\/span>Figure: Three images.<span class=\"nt\">&lt;\/figcaption&gt;<\/span>\n<span class=\"nt\">&lt;\/figure&gt;<\/span><\/code><\/pre><\/figure>\n\n<p>is rendered as:<\/p>\n\n<figure class=\"third\">\n<img src=\"http:\/\/placehold.it\/600x300.jpg\" \/>\n<img src=\"http:\/\/placehold.it\/600x300.jpg\" \/>\n<img src=\"http:\/\/placehold.it\/600x300.jpg\" \/>\n<figcaption>Figure: Three images.<\/figcaption>\n<\/figure>\n\n<h3 id=\"layout-responsive-to-screen-size\">Layout responsive to screen size<\/h3>\n<p>The MadeMistakes themes make use of the\n<a target=\"_blank\" href=\"http:\/\/semantic.gs\/\">Semantic Grid System<\/a>\nto define fluid grids for each major page layouts with a few lines of CSS code referencing\n@media queries.\nThis makes the theme responsive \u2013 adapting to various size screens:<\/p>\n\n<ul>\n  <li>\n    <p>Desktop default (up to the largest HD &amp; 4XHD screen)<\/p>\n\n    <p>Min-width: 780px<\/p>\n  <\/li>\n  <li>\n    <p>Tablet Portrait (to landscape and desktop)<\/p>\n\n    <p>Min-width: 768px \/ Max-width: 979px<\/p>\n  <\/li>\n  <li>\n    <p>Smartphone (and all smaller screens)<\/p>\n\n    <p>Max-width: 480px<\/p>\n  <\/li>\n<\/ul>\n\n<h3 id=\"image-sized-to-screen\">Image sized to screen?<\/h3>\n\n<p>The size of screens.<\/p>\n\n<p>The image for <strong>Twitter Cards<\/strong> is a square image around 120 x 120 pixels.<\/p>\n\n<hr \/>\n\n<h2 id=\"markdown-coding\">Markdown coding<\/h2>\n<p>The next few sections are based on<\/p>\n\n<p>https:\/\/mmistakes.github.io\/minimal-mistakes\/sample-post\/<\/p>\n\n<h3 id=\"notice-boxes\">Notice boxes<\/h3>\n<p>To put text in a box, add <code class=\"language-plaintext highlighter-rouge\">{: .notice}<\/code> under the text to be boxed:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">**CAUTION:** Invalid markup can crash the server.\n{: .notice}<\/code><\/pre><\/figure>\n\n<p>renders to:<\/p>\n\n<p class=\"notice\"><strong>CAUTION:<\/strong> Invalid markup can crash the server.<\/p>\n\n<p>PROTIP: Make a small change (one phrase) then verify rendering.\nCommit to git at every verified set.<\/p>\n\n<h3 id=\"blockquotes\">Blockquotes<\/h3>\n\n<p>A leading <em>&gt;<\/em> marks a line as a blockquote:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\">&gt; Lorem ipsum<\/code><\/pre><\/figure>\n\n<p>renders as:<\/p>\n\n<blockquote>\n  <p>Lorem ipsum<\/p>\n<\/blockquote>\n\n<h3 id=\"footnotes\">Footnotes<\/h3>\n<p>A paragraph ending with the &amp;Vcirc; \u201ccircumflex\u201d character (upper case of the number 6 key)\nbetween square brackets defines the footnote number:<\/p>\n\n<p>Footnotes are Syntax Highighting<sup id=\"fnref:1\" role=\"doc-noteref\"><a href=\"#fn:1\" class=\"footnote\" rel=\"footnote\">1<\/a><\/sup>.<\/p>\n\n<p>A repeat of the sequence at the <strong>beginning<\/strong> of a paragraph defines the definition:<\/p>\n\n<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\">&lt;http:\/\/en.wikipedia.org\/wiki\/Syntax_highlighting&gt;<\/span><\/code><\/pre><\/figure>\n\n<h3 id=\"button-colors-in-html\">Button colors in HTML<\/h3>\n<p>Use pre-defined classes:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;div<\/span> <span class=\"na\">markdown=<\/span><span class=\"s\">\"0\"<\/span><span class=\"nt\">&gt;&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"#\"<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"btn\"<\/span><span class=\"nt\">&gt;<\/span>Primary Button<span class=\"nt\">&lt;\/a&gt;&lt;\/div&gt;<\/span>\n<span class=\"nt\">&lt;div<\/span> <span class=\"na\">markdown=<\/span><span class=\"s\">\"0\"<\/span><span class=\"nt\">&gt;&lt;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\">&gt;<\/span>Success Button<span class=\"nt\">&lt;\/a&gt;&lt;\/div&gt;<\/span>\n<span class=\"nt\">&lt;div<\/span> <span class=\"na\">markdown=<\/span><span class=\"s\">\"0\"<\/span><span class=\"nt\">&gt;&lt;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\">&gt;<\/span>Warning Button<span class=\"nt\">&lt;\/a&gt;&lt;\/div&gt;<\/span>\n<span class=\"nt\">&lt;div<\/span> <span class=\"na\">markdown=<\/span><span class=\"s\">\"0\"<\/span><span class=\"nt\">&gt;&lt;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\">&gt;<\/span>Danger Button<span class=\"nt\">&lt;\/a&gt;&lt;\/div&gt;<\/span>\n<span class=\"nt\">&lt;div<\/span> <span class=\"na\">markdown=<\/span><span class=\"s\">\"0\"<\/span><span class=\"nt\">&gt;&lt;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\">&gt;<\/span>Info Button<span class=\"nt\">&lt;\/a&gt;&lt;\/div&gt;<\/span><\/code><\/pre><\/figure>\n\n<p>renders to:<\/p>\n\n<div><a href=\"#\" class=\"btn\">Primary Button<\/a><\/div>\n<div><a href=\"#\" class=\"btn btn-success\">Success Button<\/a><\/div>\n<div><a href=\"#\" class=\"btn btn-warning\">Warning Button<\/a><\/div>\n<div><a href=\"#\" class=\"btn btn-danger\">Danger Button<\/a><\/div>\n<div><a href=\"#\" class=\"btn btn-info\">Info Button<\/a><\/div>\n\n<p>If you are viewing this on a desktop, mouse-over each button to see the color change.<\/p>\n\n<h3 id=\"sass\">SASS<\/h3>\n\n<p>To change the colors, edit in folder <strong>_sass<\/strong> file <strong>variables.scss<\/strong>,\nthen compile the file to .css.<\/p>\n\n<pre>\n    sass variables.scss  variables.css\n   <\/pre>\n\n<p>Sass, or Syntactically Awesome StyleSheets, is an extension language for CSS.<\/p>\n\n<p>Nests<\/p>\n\n<p>Variables:<\/p>\n\n<pre>\n   $background-transparent :\n   <\/pre>\n\n<p>Mixins<\/p>\n\n<h3 id=\"paragraph-indents\">Paragraph Indents<\/h3>\n<p>By default, the theme assumes formatting is for books by removing extra lines and adds indents to\nsecond and subsequent paragraphs. Well, we\u2019re in the internet age where long paragraphs are the exception.<\/p>\n\n<p>To disable the indents and add spacing between paragraphs,\nedit in folder <strong>_sass<\/strong> file <strong>variables.scss<\/strong> to change:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>$paragraph-indent: true !default;\n<\/code><\/pre><\/div><\/div>\n\n<p>To:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>$paragraph-indent: false;\n<\/code><\/pre><\/div><\/div>\n\n<p>PROTIP: This change in the theme enables use of indented items using GFM.<\/p>\n\n<h3 id=\"numbered-lists\">Numbered lists<\/h3>\n<p>As with GFM, numbers in front of ordered list items can be preceded by zeros since they are automatically numbered:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">0. Item one\n0. sub item one\n0. sub item two\n0. Item two\n\nsome text after 3 spaces.\n\n0. Item three<\/code><\/pre><\/figure>\n\n<p>renders to:<\/p>\n\n<ol>\n  <li>Item one<\/li>\n  <li>sub item one<\/li>\n  <li>sub item two<\/li>\n  <li>Item two<\/li>\n<\/ol>\n\n<p>some text after 3 spaces.<\/p>\n\n<ol>\n  <li>Item three<\/li>\n<\/ol>\n\n<h3 id=\"code-snippets\">Code Snippets<\/h3>\n<p>Instead of a set of three back quotes, blocks of programming code are enclosed with special tags like this:<\/p>\n\n<pre><code>\n&#123;% highlight css %}\n#container {\nfloat: left;\nmargin: 0 -240px 0 0;\nwidth: 100%;\n}\n&#123;% endhighlight %}\n<\/code><\/pre>\n\n<p>renders as:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-css\" data-lang=\"css\"><span class=\"nf\">#container<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">float<\/span><span class=\"p\">:<\/span> <span class=\"nb\">left<\/span><span class=\"p\">;<\/span>\n<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>\n<span class=\"nl\">width<\/span><span class=\"p\">:<\/span> <span class=\"m\">100%<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span><\/code><\/pre><\/figure>\n\n<h3 id=\"gists\">Gists<\/h3>\n\n<p>Snippets of code on Gist.com can be displayed on the web page with a simple line\ncontaining the gist.com userid and snippet number:<\/p>\n\n<pre><code>\n&#123;% gist <em>userid<\/em>\/6589546 %}\n<\/code><\/pre>\n\n<h3 id=\"standard-gfm-mark-up\">Standard GFM mark-up<\/h3>\n<p>Several coding techniques ar the same as in GitHub Flavored Markdown.<\/p>\n\n<ul>\n  <li>Asterisks precede text in unordered lists preceded with bullets.<\/li>\n  <li>The number of # characters preceding heading text specifies the level.<\/li>\n  <li>One asterisk enclosing text makes it <em>italics<\/em>.<\/li>\n  <li>Two asterisk enclosing text makes it <strong>bold<\/strong>.<\/li>\n<\/ul>\n\n<p>Just as with GFM, regular HTML is recognized and processed as such.<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;strong&gt;<\/span>bolded text<span class=\"nt\">&lt;\/strong&gt;<\/span><\/code><\/pre><\/figure>\n\n<h3 id=\"custom-includes\">Custom Includes<\/h3>\n<p>Jekyll can process several special tags beyond what GFM can do.\nAn entire HTML file can be inserted:<\/p>\n\n<pre><code>\n&#123;% include _toc.html %}\n<\/code><\/pre>\n\n<p>The tag is processed by <a target=\"_blank\" href=\"http:\/\/kramdown.gettalong.org\/converter\/html.html#toc\">\nKramdown<\/a> which generates the Table of Contents displayed on the right side of the screen.<\/p>\n\n<p>A custom include can be coded within markdown like this:<\/p>\n\n<pre><code>\n&#123;% include evangelist_links.html %}\n<\/code><\/pre>\n\n<p>Doing this takes some mental contortion because of the automatic processing.<\/p>\n\n<p>The <strong>evangelist_links.html<\/strong> file referenced needs to be in the _includes folder.<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code> During processing, the folder \"_includes\" is automatically added to the link.\n Therefore you can't put the include file anywhere else, or you'll get a message such as:\n\n Error: Included file '_includes\/includes\/1loadrun_map.html' not found\n<\/code><\/pre><\/div><\/div>\n\n<p>However, there can be markdown in the <strong>evangelist_links.html<\/strong> file, such as:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\">In this series:\n\n* [Budget](Budget)\n\n<span class=\"c\">&lt;!--\n* [Future1](Future1)\n--&gt;<\/span><\/code><\/pre><\/figure>\n\n<p>NOTE: HTML code above to ignore can be included in the file.<\/p>\n\n<h3 id=\"tables\">Tables<\/h3>\n<p>A rule can be specified for formatting tables coded in GFM:<\/p>\n\n<figure class=\"highlight\"><pre><code class=\"language-text\" data-lang=\"text\">| Header1 | Header2 | Header3 |\n|:--------|:-------:|--------:|\n| cell1   | cell2   | cell3   |\n| cell4   | cell5   | cell6   |\n|----\n| cell1   | cell2   | cell3   |\n| cell4   | cell5   | cell6   |\n|=====\n| Foot1   | Foot2   | Foot3\n{: rules=\"groups\"}<\/code><\/pre><\/figure>\n\n<p>renders to:<\/p>\n\n<table rules=\"groups\">\n  <thead>\n    <tr>\n      <th style=\"text-align: left\">Header1<\/th>\n      <th style=\"text-align: center\">Header2<\/th>\n      <th style=\"text-align: right\">Header3<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td style=\"text-align: left\">cell1<\/td>\n      <td style=\"text-align: center\">cell2<\/td>\n      <td style=\"text-align: right\">cell3<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">cell4<\/td>\n      <td style=\"text-align: center\">cell5<\/td>\n      <td style=\"text-align: right\">cell6<\/td>\n    <\/tr>\n  <\/tbody>\n  <tbody>\n    <tr>\n      <td style=\"text-align: left\">cell1<\/td>\n      <td style=\"text-align: center\">cell2<\/td>\n      <td style=\"text-align: right\">cell3<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"text-align: left\">cell4<\/td>\n      <td style=\"text-align: center\">cell5<\/td>\n      <td style=\"text-align: right\">cell6<\/td>\n    <\/tr>\n  <\/tbody>\n  <tfoot>\n    <tr>\n      <td style=\"text-align: left\">Foot1<\/td>\n      <td style=\"text-align: center\">Foot2<\/td>\n      <td style=\"text-align: right\">Foot3<\/td>\n    <\/tr>\n  <\/tfoot>\n<\/table>\n\n<hr \/>\n\n<h2 id=\"affiliate-ads\">Affiliate Ads<\/h2>\n\n<h3 id=\"amazon-affiliate-ads\">Amazon Affiliate Ads<\/h3>\n\n<ol>\n  <li>\n    <p>https:\/\/affiliate-program.amazon.com\/gp\/associates\/network\/main.html<\/p>\n  <\/li>\n  <li>\n    <p>Search for a product to get its URL, such as:\nhttp:\/\/www.amazon.com\/gp\/product\/B00IR2VEUS\/\nSo Amazon\u2019s product code is  \u201cB00IR2VEUS\u201d.<\/p>\n  <\/li>\n  <li>\n    <p>Specify the product code to get the HTML containing your affiliate tracking code, such as:<\/p>\n  <\/li>\n<\/ol>\n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;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&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B00IR2VEUS&amp;linkCode=as2&amp;tag=wilsonslifenotes&amp;linkId=LGM2HVV7JYHE5QRS\"<\/span><span class=\"nt\">&gt;<\/span>Cabin Max Metz Backpack Flight Approved Carry on Bag 44 Litre Travel Hand Luggage - 55x40x20 (Black)<span class=\"nt\">&lt;\/a&gt;&lt;img<\/span> <span class=\"na\">src=<\/span><span class=\"s\">\"http:\/\/ir-na.amazon-adsystem.com\/e\/ir?t=wilsonslifenotes&amp;l=as2&amp;o=1&amp;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\">\/&gt;<\/span><\/code><\/pre><\/figure>\n\n<p>Note the link has a one-pixel image link Amazon uses to track the number of impressions.<\/p>\n\n<p>If you would like to list products you make on Amazon,\n   get an account Seller Account at <a target=\"_blank\" href=\"https:\/\/sellercentral.amazon.com\/gp\/homepage.html\">\n   sellercentral.amazon.com\/gp\/homepage.html<\/a>.<\/p>\n\n<h3 id=\"google-affiliate-ads\">Google Affiliate Ads<\/h3>\n\n<p>Ideally, I would put a vertical ad under the table of contents.<\/p>\n\n<h2 id=\"site-search\">Site Search<\/h2>\n\n<p>A Node.js library to add search functionality to any Jekyll blog\n<a target=\"_blank\" href=\"http:\/\/christian.fei.ninja\/Simple-Jekyll-Search\/\">Demo here<\/a>\nis available\nfrom <a target=\"_blank\" href=\"https:\/\/github.com\/christian-fei\/Simple-Jekyll-Search\">\nthis repo<\/a>.<\/p>\n\n<p>Theme http:\/\/mmistakes.github.io\/so-simple-theme\/theme-setup\/#jekyll-search\nactivates each page using it with the <strong>search_omit: true<\/strong> front matter.<\/p>\n\n<h2 id=\"gitignore\">.gitignore<\/h2>\n\n<p>This list of folders and files is about what processing occurs locally.<\/p>\n\n<p>{$ endhighlight text %}\n_site\n.sass-cache\n.DS_Store\n*.sublime-project\n*.sublime-workspace\ncodekit-config.json\nnode_modules\n_asset_bundler_cache\n.jekyll-metadata\n{$ endhighlight %}<\/p>\n\n<h2 id=\"additional-features\">Additional features<\/h2>\n\n<p><a href=\"https:\/\/www.sylvaindurand.org\/about\/\">Make Jekyll multi-lingual<\/a><\/p>\n\n<h2 id=\"deploy-to-server\">Deploy to server<\/h2>\n\n<ul>\n  <li>\n    <p>http:\/\/help.github.com\/articles\/using-jekyll-with-pages\/<\/p>\n  <\/li>\n  <li>\n    <p>http:\/\/goo.gl\/hE3Zj2 to\n   http:\/\/nicolasgallager.com\/simple-git-deployment-strategy-for-static sites\/<\/p>\n  <\/li>\n  <li>\n    <p>jekyllrb.com\/docs\/deployment-methods\/<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"questions\">Questions<\/h2>\n\n<p>QUESTION: How to add regular .html files to the site.<\/p>\n\n<p>TODO: Inspired by <a target=\"_blank\" href=\"http:\/\/www.shamimeboodhoo.com\/building-photomap\/\">\nShamime\u2019s photomap building<\/a>, I added a Photomap tab and folder on my site.<\/p>\n\n<p>http:\/\/loyc.net\/2014\/javascript-toc.html<\/p>\n\n<p>QUESTION: Spell checking in GitHub?<\/p>\n\n<hr \/>\n\n<h2 id=\"footnotes-1\">Footnotes<\/h2>\n\n<p>There is no need to repeat excellent tutorials:<\/p>\n\n<ul>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/playlist?list=PLWjCJDeWfDdfVEcLGAfdJn_HXyM4Y7_k-\">\n Thomas Bradley\u2019s videos on YouTube<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Tutorial: http:\/\/jekyll.tips\/jekyll-casts\/<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/geekflare.com\/cloud-storage-static-website\/<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/snipcart.com\/blog\/static-site-e-commerce-part-2-integrating-snipcart-with-jekyll<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"jekyll-minimalmistake-users-in-the-wild\">Jekyll MinimalMistake users in the wild<\/h2>\n\n<ul>\n  <li>http:\/\/udaypal.com\/jenkins-workflow-getting-started\/<\/li>\n  <li>http:\/\/udaypal.com\/2015-04-08-continuous-delivery-using-jenkins-workflow\/<\/li>\n  <li>\n    <p>http:\/\/michaelcrump.net\/running-jekyll-locally\/<\/p>\n  <\/li>\n  <li>\n    <p>http:\/\/blog.christianposta.com\/microservices\/netflix-oss-or-kubernetes-how-about-both\/<\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/playlist?list=PL58Wk5g77lF-UQ39pejLX2Zn5DxQyExBa\">JAMstack Conf 2018 - San Francisco 19 videos<\/a><\/p>\n  <\/li>\n  <li>https:\/\/www.tomordonez.com\/jekyll-text-expand-collapsible-markdown\/ to hide text unless clicked<\/li>\n  <li>https:\/\/karttur.github.io\/setup-theme-blog\/blog\/blog-hide-show-div\/<\/li>\n<\/ul>\n\n<h2 id=\"more-on-front-end-styling\">More on front-end styling<\/h2>\n\n<p>This is one of several topics:<\/p>\n\n<ol>\n  <li><a href=\"\/design-systems\/\">UI Design Systems<\/a><\/li>\n  <li><a href=\"\/text-editors\/\">Text Editors<\/a><\/li>\n  <li><a href=\"\/markdown-text-for-github-from-html\/\">Markdown text for GitHub from HTML<\/a><\/li>\n  <li>\n    <p><a href=\"\/508-accessibility\/\">508 Accessibility<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/grpc\/\">gRPC (g___ Remote Procedure Call)<\/a><\/li>\n  <li>\n    <p><a href=\"\/http2-transition-project-plan\/\">HTTP\/2 Transition Project Plan<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/front-end\/\">Front-end UI creation options<\/a><\/li>\n  <li><a href=\"\/docusaurus\/\">Docusaurus static website generator<\/a><\/li>\n  <li><a href=\"\/static-websites\/\">Static websites<\/a><\/li>\n  <li><a href=\"\/jam-stack-website-project-plan\/\">JAM Stack Website Project Plan<\/a><\/li>\n  <li><a href=\"\/jekyll-site-development\/\">Jekyll Site Development<\/a><\/li>\n  <li>\n    <p><a href=\"\/gatsbyjs\/\">Gatsby app generator<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/website-styles\/\">Website styles<\/a><\/li>\n  <li><a href=\"\/website-style-programming\/\">Website Styling<\/a><\/li>\n  <li>\n    <p><a href=\"\/vuejs\/\">VueJs front-end framework<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a href=\"\/protractor\/\">Protractor to automate testing of Angular and other web pages<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/email-from-website\/\">Email from website<\/a><\/li>\n  <li><a href=\"\/jekyll-with-search\/\">Search within Hyde format Jekyll websites<\/a><\/li>\n  <li>\n    <p><a href=\"\/windows-tile-pin-pictures-feed\/\">Windows Tile Pin Picture to Website Feed<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/data-visualization-using-tableau\/\">Data Visualization using Tableau<\/a><\/li>\n<\/ol>\n<div class=\"footnotes\" role=\"doc-endnotes\">\n  <ol>\n    <li id=\"fn:1\" role=\"doc-endnote\">\n      <p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Syntax_highlighting\">http:\/\/en.wikipedia.org\/wiki\/Syntax_highlighting<\/a>\u00a0<a href=\"#fnref:1\" class=\"reversefootnote\" role=\"doc-backlink\">&#8617;<\/a><\/p>\n    <\/li>\n  <\/ol>\n<\/div>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/machine-learning\/"}},"id":"https:\/\/wilsonmar.github.io\/machine-learning","published":"2025-11-15T00:00:00+00:00","updated":"2025-11-15T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Different ways to use data to create a model (program)<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/machine-learning\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmachine-learning%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#skill-building-from-games\" id=\"markdown-toc-skill-building-from-games\">Skill-building from games<\/a><\/li>\n  <li><a href=\"#use-cases-for-ai\" id=\"markdown-toc-use-cases-for-ai\">Use Cases for AI<\/a><\/li>\n  <li><a href=\"#algorithms\" id=\"markdown-toc-algorithms\">Algorithms<\/a><\/li>\n  <li><a href=\"#terminology\" id=\"markdown-toc-terminology\">Terminology<\/a><\/li>\n  <li><a href=\"#types-of-machine-learning\" id=\"markdown-toc-types-of-machine-learning\">Types of machine learning<\/a>    <ul>\n      <li><a href=\"#supervised-learning\" id=\"markdown-toc-supervised-learning\">Supervised learning<\/a><\/li>\n      <li><a href=\"#unsupervised-learning\" id=\"markdown-toc-unsupervised-learning\">Unsupervised learning<\/a><\/li>\n      <li><a href=\"#reinforcement-learning\" id=\"markdown-toc-reinforcement-learning\">Reinforcement learning<\/a><\/li>\n      <li><a href=\"#transfer-learning\" id=\"markdown-toc-transfer-learning\">Transfer learning<\/a><\/li>\n      <li><a href=\"#one-shot-learning\" id=\"markdown-toc-one-shot-learning\">One-shot learning<\/a><\/li>\n      <li><a href=\"#deep-learning\" id=\"markdown-toc-deep-learning\">Deep Learning<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#tools-for-machine-learning\" id=\"markdown-toc-tools-for-machine-learning\">Tools for Machine Learning<\/a>    <ul>\n      <li><a href=\"#python\" id=\"markdown-toc-python\">Python<\/a><\/li>\n      <li><a href=\"#machine-learning-frameworks\" id=\"markdown-toc-machine-learning-frameworks\">Machine Learning frameworks<\/a><\/li>\n      <li><a href=\"#java-in-dl4j\" id=\"markdown-toc-java-in-dl4j\">Java in DL4j<\/a><\/li>\n      <li><a href=\"#deep-learning-frameworks\" id=\"markdown-toc-deep-learning-frameworks\">Deep Learning Frameworks<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#data-representation\" id=\"markdown-toc-data-representation\">Data representation<\/a>    <ul>\n      <li><a href=\"#axies-for-shape\" id=\"markdown-toc-axies-for-shape\">Axies for Shape<\/a><\/li>\n      <li><a href=\"#pandas\" id=\"markdown-toc-pandas\">Pandas<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#metrics\" id=\"markdown-toc-metrics\">Metrics<\/a><\/li>\n  <li><a href=\"#gradient-boosting\" id=\"markdown-toc-gradient-boosting\">Gradient Boosting<\/a><\/li>\n  <li><a href=\"#introductory-resources\" id=\"markdown-toc-introductory-resources\">Introductory Resources<\/a><\/li>\n  <li><a href=\"#more\" id=\"markdown-toc-more\">More<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>The pervasiveness of AI and Machine Learning was recognized by Google CEO Sundar Pichai when he said in 2016:<\/p>\n\n<blockquote>\n  <p>\u201cMachine learning is a core, transformative way by which we\u2019re rethinking how we\u2019re doing everything. We are thoughtfully applying it across all our products, be it search, ads, YouTube, or Play. And we\u2019re in early days, but you will see us \u2014 in a systematic way \u2014 apply machine learning in all these areas.\u201d<\/p>\n<\/blockquote>\n\n<h2 id=\"skill-building-from-games\">Skill-building from games<\/h2>\n\n<p>In 1997, when Deep Blue beat world chess champion Gary Kasparov, \nit did so by \u201cbrute force\u201d, by using a supercomputer to \nanalyze the outcome of every possible move, looking further ahead than any human possibly could.\nThat wasn\u2019t Machine Learning or AI.<\/p>\n\n<p>But In 2016, IBM\u2019s Watson software beat top Jeopardy game champions\nby \u201clearning\u201d from books and encyclopedias. \nIBM only created the program that enables the computer to learn.\nThe software makes use of a <strong>\u201cmodel\u201d<\/strong> from <strong>example<\/strong> vs. following strictly <strong>static program instructions<\/strong> (logic defined by human developers).<\/p>\n\n<blockquote>\n  <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 \u201ctraining\u201d based on many examples.<\/p>\n<\/blockquote>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.ted.com\/talks\/noriko_arai_can_a_robot_pass_a_university_entrance_exam\">\n<img alt=\"ai-todai-robot-441x441.jpg\" src=\"https:\/\/user-images.githubusercontent.com\/300046\/29997360-3aeeac38-8fce-11e7-8913-fc600e6d13de.jpg\" \/><\/a><br \/>\nThe photo above is the <a target=\"_blank\" href=\"http:\/\/21robot.org\/\">Todai Robot<\/a>, <a target=\"_blank\" href=\"http:\/\/21robot.org\/news\/\">\nback in 2014<\/a>, scoring among the upper 20% of students in Japan\u2019s university entrance exams \u2013 writing essays using a pen on paper. In Japanese. It knows 8,000 Japanese words, 2,000 mathematical axioms, and uses \u201csymbolic computation\u201d for \u201cautomatic reasoning\u201d on 15 billion sentences.<\/p>\n\n<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\">\ndefeated by Google\u2019s AlphaGo<\/a>, which is based on Google\u2019s DeepMind acquisition.\nThe software made moves that many human players considered illogical.\nBTW, Go is considered the most complex game ever invented.\nWhereas chess players have, at any given turn, an average of 35 possible moves,\non a Go board\u2019s 19-by-19 grid, there are 250 possible moves.<\/p>\n\n<p>Also in 2017, all top-ranked poker players were\n<a target=\"_blank\" href=\"http:\/\/time.com\/4656011\/artificial-intelligence-ai-poker-tournament-libratus-cmu\/\">\nbested by software named Libratus from Tuomas Sandholm at CMU<\/a>.\nThe software adjusted its strategies during the tournament.\nAnd its algorithms for strategy and negotiation are game-independent, \nmeaning they\u2019re not just about poker, but a range of adversarial problems.<\/p>\n\n<!-- Play all games, Texas Hold'em\n-->\n\n<blockquote>\n  <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>\n<\/blockquote>\n\n<p>21 August 2017, Elon Musk tweets: \u201cOpenAI first ever to defeat world\u2019s best players in competitive eSports [dota2]. Vastly more complex than traditional board games like Chess &amp; Go\u201d. <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=XbDmxEOj9OY\">VIDEO<\/a>.<\/p>\n\n<h2 id=\"use-cases-for-ai\">Use Cases for AI<\/h2>\n\n<p>What ordinary people might appreciate:<\/p>\n\n<ul>\n  <li>Estimate the price of a house given real estate data (multiple regression), so you don\u2019t waste time on properties that don\u2019t fit your criteria.<\/li>\n  <li>Classify movie reviews from imdb.com into positive and negative categories (such as \u201crevenge\u201d), to spend time only on movies you want to see.<\/li>\n  <li>Classify news wire articles by topic (multi-class classification), to save time avoiding skimming articles not of interest to you specifically.\n<br \/><br \/><\/li>\n<\/ul>\n\n<p>For small businesses:<\/p>\n\n<ul>\n  <li>Sort vegetables using computer vision<\/li>\n<\/ul>\n\n<p>For enterprises:<\/p>\n\n<ul>\n  <li>Data Security - identify malware by detecting minute variations in file signatures.<\/li>\n  <li>Fraud detection - fight money laundering by finding anomalies in transactions.<\/li>\n  <li>Financial trading<\/li>\n  <li>Health care - understand risk factors and spot patterns in medical info<\/li>\n  <li>Marketing - personalize ads based on interests identified for individuals<\/li>\n  <li>Smart cars<\/li>\n  <li>Insurance - identify risks in smaller populations\n<br \/><br \/><\/li>\n<\/ul>\n\n<h2 id=\"algorithms\">Algorithms<\/h2>\n\n<p>Use of hard-coded (static) \u201crules\u201d crafted by human programmers is\ncalled \u201csymbolic AI\u201d, used in \u201cexpert systems\u201d fashionable during the 1980s.<\/p>\n\n<p>Machine learning <strong>algorithms<\/strong> identify information from data fed through \n\u201cgeneric\u201d (general purpose) algorithms which <strong>build their own logic<\/strong> from detecting <em>patterns<\/em> within the data.<\/p>\n\n<p>Patterns are recognized by neural network algorithms. This cycle of \u201clearning\u201d is implicit in a definition of Machine Learning by Mitchell (in 1997): \u201cA 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\u201d.<\/p>\n\n<p>The \u201cnetwork\u201d in a neural network has multiple \u201clayers\u201d or data-processing modules that \u201cdistill\u201d data.\nModels using a small number of layers are called \u201cshallow learning\u201d.\nGoogleNet in 2014 used 22 layers. In 2016, one network uses over 1,000 layers.<\/p>\n\n<p>By contrast, the human brain has 300 million modules that recognize patterns,\neach having 100 neurons.<\/p>\n\n<p>At the input layer, \nthe network trains on a specific set of \u201cfeatures\u201d \nand then sends that information to the next layer. \nThat next layer combines previous conclusions with other features and passes it to the next layer, and so on, sequentially.<\/p>\n\n<p><img src=\"https:\/\/user-images.githubusercontent.com\/300046\/30997127-ee8083b6-a482-11e7-8b7a-0dd4ea518fdc.jpg\" alt=\"ml-model-google-878x356-61242\" \/>\n<a target=\"_blank\" href=\"https:\/\/www.coursera.org\/learn\/serverless-machine-learning-gcp\/lecture\/3kcXm\/what-is-machine-learning-ml\">*<\/a><\/p>\n\n<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 \u201ccat\u201d.<\/p>\n\n<h2 id=\"terminology\">Terminology<\/h2>\n\n<p>An example of the last layer which presents the output\/decision \n(from recognizing what number is written down in a photo from the MNIST collection)\nis a 10-way \u201csoftmax\u201d layer returning an array of 10 probability scores (all summing to 1).\nEach of the 10 contains the probability that the digit image belongs to one of \n10 digit <strong>classes<\/strong>.<\/p>\n\n<p>\u201cSupervised\u201d Machine Learning systems learn how to combine input to produce useful predictions on never-before-seen data.<\/p>\n\n<p>Machine learning uses some terms that have alternate meanings for words also used by traditional programmers and statisticians:<\/p>\n\n<ul>\n  <li>\n    <p>(In statistics, a \u201ctarget\u201d is called a dependent variable.)\n In machine learning, a target is also called a label,\n what a model should ideally have predicted, \n according to an external source of data.<\/p>\n  <\/li>\n  <li>\n    <p>A <strong>\u201clabel\u201d<\/strong> is a specific instance of a class.\n A label can be an answer (target) for a prediction task \u00ad\u2013\n\u00ad   either the <strong>answer<\/strong> produced by a machine learning\n system, or the right answer supplied in training data. \n It\u2019s represented as \u201cy\u201d in mathematical notation.<\/p>\n  <\/li>\n  <li>\n    <p>Data points are called \u201csamples\u201d or \u201cexamples\u201d, represented as \u201cx\u201d in mathematical notation.<\/p>\n  <\/li>\n  <li>\n    <p>Unlabeled examples are used for making predictions on new data.<\/p>\n  <\/li>\n  <li>\n    <p>A \u201ccategory\u201d of a classification problem is called a <strong>class<\/strong>.\n For example, when classifying pictures, \u201cpuppy\u201d and \u201cmuffin\u201d are two of the classes.\n Each class describes a set of possible labels to choose from.<\/p>\n  <\/li>\n  <li>\n    <p>A <strong>model<\/strong> maps examples to predicted labels.\n It\u2019s defined by internal parameters, which are learned.<\/p>\n  <\/li>\n  <li>\n    <p>The <strong>prediction error<\/strong>, also called <strong>loss value<\/strong>,\nthe measure of the distance between a model\u2019s prediction and the target.<\/p>\n\n    <p>It\u2019s a <strong>metric<\/strong> of measurements that you care about, \nwhich may or may not be directly optimized.<\/p>\n  <\/li>\n  <li>\n    <p>An <strong>instance<\/strong> is the aspect about which you want to make a prediction. \n (An instance is called an \u201cobjective\u201d in other fields.)<\/p>\n  <\/li>\n  <li>\n    <p>A <strong>feature<\/strong> is a property of an instance used in a prediction task. \n For example, a web page might\n have a feature \u201ccontains the word \u2018cat\u2019\u201d.<\/p>\n\n    <p>A feature in machine learning is called a \u201cvariable\u201d in statistics.\n A feature is an input variable\u2014the x variable in simple linear regression. \n (Feature creation in machine learning is called a \u201ctransformation\u201d in statistics.)<\/p>\n  <\/li>\n  <li>\n    <p>A <strong>feature Column<\/strong> is a set of related features, \n such as the set of all possible countries in which users might live. \n An example may have one or more features present in a feature column. A\n feature column is referred to as a \u201cnamespace\u201d in the VW system (at Yahoo\/Microsoft), or a field.\n Example: An instance (with its features) and a label.<\/p>\n  <\/li>\n  <li>\n    <p>An <strong>objective<\/strong> is a metric that an algorithm is trying to optimize.<\/p>\n  <\/li>\n  <li>\n    <p>A <strong>pipeline<\/strong> is the infrastructure surrounding a machine learning algorithm. A particular pipeline can include:<\/p>\n\n    <ol>\n      <li>gathering the data from the front end,<\/li>\n      <li>putting it into training data files,<\/li>\n      <li>training one or more models, and<\/li>\n      <li>exporting the models to production.\n <br \/><br \/><\/li>\n    <\/ol>\n  <\/li>\n<\/ul>\n\n<h2 id=\"types-of-machine-learning\">Types of machine learning<\/h2>\n\n<p><img alt=\"ml-types-1730x754.png\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1763267651\/ml-types-1730x754_ftldp9.png\" \/>&lt;\/sub&gt;\u2013by <a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/geenakim\/\">Geena Kim<\/a>&lt;\/sub)<\/p>\n\n<h3 id=\"supervised-learning\">Supervised learning<\/h3>\n\n<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 \u201canswer\u201d or <strong>target<\/strong> giving feedback on what is correct or not.<\/p>\n\n<ul>\n  <li>The training correlates features to outputs in order to predict outputs based on new inputs.<\/li>\n<\/ul>\n\n<p>For time series analysis, use a \u201crecurrent net\u201d.\n   Recurrent nets process data that changes with time,\n   using a feedback loop that acts as a forecasting engine.<\/p>\n\n<p>Recurrent networks have a network topology in which data flow itself is recycled. \n   It is used, for example, to generate sequences of words from the vectors describing the \u201cmeaning\u201d of pictures. Each word depends on all that have already been produced.<\/p>\n\n<ul>\n  <li>For text processing (Sentiment Analysis) \n   and speech recognition: use a\n   Recurrent Net or a \n   RNTN (Recursive Neural Tensor Network)\n   that operates at individual character level. <br \/>\n   RNTNs were conceived by Richard Socher of \n   <a target=\"_blank\" href=\"https:\/\/metamind.io\/\">\n   MetaMind.io<\/a> as part of his PhD thesis at Stanford.\n   In 2016 it became part of Salesforce Einstein Predictive Services at\n   https:\/\/metamind.readme.io\/v1\/docs<\/li>\n<\/ul>\n\n<p>RNTNs are better than feed-forward or recurrent nets with\n   data with a hierarchical structure (binary trees), \n   such as the parse trees of a group of sentences.<\/p>\n\n<ul>\n  <li>For image (object) recognition is DBN (Deep Belief Network) or \n   Convolutional Net.<\/li>\n<\/ul>\n\n<p><strong>Convolution<\/strong> means use of the same filter (also called a \u201ckernel\u201d) \n   across the whole image, just like use of a filter in Photoshop.\ufeff\n   <a target=\"_blank\" href=\"https:\/\/clarifai.com\/\">\n   Clarifai<\/a> uses a convolutional net to recognize things and concepts in a digital image.\n   It then presents similar images.<\/p>\n\n<p>Kernel methods are a group of algorithms for <strong>classification<\/strong>\u2013<strong>Support Vector Machine (SVM)<\/strong>\n   being the best known from Vapnik and Cortes in the early 1990s at Bell Labs and Vapnik and Chervonenkis as early as 1963.\n   SVM classifies by finding in training data \u201cdecision boundaries\u201d between sets of points belonging to different categories. Classifying new data points involves checking which side of the decision boundary they fall on.<\/p>\n\n<p>Used in both feed-forward and (unrolled) recurrent networks is\n<strong>\nBackpropagation<\/strong> to update weights so networks learn (improve).\n<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=gB_-LabED68\">*<\/a>\nThe Deep Visualization Toolkit illustrates the intermediate process.<\/p>\n\n<h3 id=\"unsupervised-learning\">Unsupervised learning<\/h3>\n\n<p>The \u201cunsupervised\u201d part of unsupervised learning \nmeans it makes use of a dataset <strong>without labels<\/strong>.<\/p>\n\n<p>It uses \u201cfeature extraction\u201d to discover a good internal representation of the input. \nIt identifies the structure of data to solve some given task.<\/p>\n\n<p>It uses \u201cPattern recognition\u201d to <strong>classify<\/strong> patterns and clusters data.<\/p>\n\n<ul>\n  <li>Autoencoders encode their own structure.\n   They are feature extractors with the same number of input and output nodes.<\/li>\n<\/ul>\n\n<p>A hidden layer in Autoencoders provides a bottleneck\n   of nodes reconstruction of input layer.\n   So they can be used for image compression.<\/p>\n\n<ul>\n  <li>RBM (Restricted Boltzmann Machine) is an autoencoder\n   with one visible and one hidden layer.\n   Each visible node connects to all nodes in the hidden layer.<\/li>\n<\/ul>\n\n<p>The \u201crestricted\u201d is because there is no connection among nodes within its layer.<\/p>\n\n<p>RBM is like a two-way translator.\n   RBM determines the relationship among input features.<\/p>\n\n<p>In training loops,\n   RBM reconstructs inputs in the backward pass.<\/p>\n\n<p>RBM uses a measure called \u201cKL Divergence\u201d that compares actual to recreation of data.\n   RBM makes decisions about what features are important based on weights and \n   overall bias.<\/p>\n\n<p>All this means that data in\n   RBM does not need to be labeled.<\/p>\n\n<p>As an example, to determine whether an animal is acerous or not acerous (has horns), it\n   look at features such as color, number of legs, horns.<\/p>\n\n<p>\u201cPrincipal Component Analysis\u201d (PCA) is a linear method for finding a low-dimensional representation.<\/p>\n\n<h3 id=\"reinforcement-learning\">Reinforcement learning<\/h3>\n\n<p>Reinforcement learning does not provide feedback until a goal is achieved.\nIts objective is to select an action to maximize payoff.<\/p>\n\n<p>In Dec 2013, Volodymyr Mnih and others at \n<a target=\"_blank\" href=\"https:\/\/www.deepmind.com\/\">\nDeepMind.com<\/a> (a small company in London)\nuploaded to Arxiv a paper titled\n<a target=\"_blank\" href=\"https:\/\/arxiv.org\/abs\/1312.5602\">\n\u201cPlaying Atari with Deep Reinforcement Learning\u201d<\/a>. \nThe paper describes how a \u201cconvolutional neural network\u201d program \nlearned to play several games on the Atari 2600 console (Pong, Breakout, SpaceInvaders, Seaquest, Beam Rider)\nby observing raw screen pixels of 210 \u00d7 160. \nThe program learned by receiving a reward when the game score increased. \n<a name=\"GeneralAI\"><\/a>\nThis was hailed as \u201cgeneral AI\u201d 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. \n<a target=\"_blank\" href=\"https:\/\/www.nervanasys.com\/demystifying-deep-reinforcement-learning\/\">\n*<\/a> \nTheir \n<a target=\"_blank\" href=\"http:\/\/www.nature.com\/articles\/nature14236\">\nFeb. 2015 article in Nature<\/a> gave them widespread attention.\nThen Google bought DeepMind (for $400 million).<\/p>\n\n<ul>\n  <li>\n    <p>https:\/\/www.youtube.com\/watch?v=e3Jy2vShroE&amp;index=17&amp;list=PLjJh1vlSEYgvZ3ze_4pxKHNh1g5PId36-<\/p>\n  <\/li>\n  <li>\n    <p>https:\/\/www.nervanasys.com\/demystifying-deep-reinforcement-learning\/<\/p>\n  <\/li>\n<\/ul>\n\n<h3 id=\"transfer-learning\">Transfer learning<\/h3>\n\n<ul>\n  <li>https:\/\/www.youtube.com\/watch?v=Yx6Wv_SCKjI&amp;index=16&amp;list=PLjJh1vlSEYgvZ3ze_4pxKHNh1g5PId36-<\/li>\n<\/ul>\n\n<h3 id=\"one-shot-learning\">One-shot learning<\/h3>\n\n<p>(aka Probabilistic Programming) \nis where a neural network \nlearns from one (or a few) examples, \nas opposed to a large amount of data.<\/p>\n\n<p><a name=\"DeepLearning\"><\/a><\/p>\n\n<h3 id=\"deep-learning\">Deep Learning<\/h3>\n\n<p>\u201cDeep learning\u201d is a specific subfield of machine learning. \nThe \u201cdeep\u201d in \u201cdeep learning\u201d is not about \u201cdeeper\u201d understanding, but \nabout the depth of various filters in a multi-stage information distillation operation. \nEach stage extracts some meaning from different representations of the input.<\/p>\n\n<p>Deep learning learns \nall layers of representation \u201cgreedily\u201d, in parallel at the same time, \nrather than each layer in succession.\nIntermediate incremental representations are learned jointly.\nEach layer is updated to follow the representational needs of layers both \nabove and below itself.<\/p>\n\n<p>See https:\/\/www.wikiwand.com\/en\/Deep_learning<\/p>\n\n<hr \/>\n\n<h2 id=\"tools-for-machine-learning\">Tools for Machine Learning<\/h2>\n\n<p>From http:\/\/www.infoworld.com\/article\/3163525\/analytics\/review-the-best-frameworks-for-machine-learning-and-deep-learning.html<\/p>\n\n<p>Python or R is supported.<\/p>\n\n<p>Many corporations have efforts using Machine Learning:<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.sap.com\/trends\/machine-learning.html#solutions\">\nSAP\u2019s \u201cLeonardo\u201d platform for ML<\/a> \n<a target=\"_blank\" href=\"https:\/\/open.sap.com\/courses\/ml1\">\ncourse<\/a>uses \nthe R language.<\/p>\n\n<p>Tool:\n<a target=\"_blank\" href=\"http:\/\/bsft.io\/x\/115bvm?uid=89513dce-39c3-47ab-a0f6-a97f7825c62b&amp;mid=cf8e63e2-44c8-4ae3-b033-41f708052cca\">\nNeural Network Playground<\/a>.<\/p>\n\n<h3 id=\"python\">Python<\/h3>\n\n<p>Python is extended by libraries:<\/p>\n\n<ul>\n  <li>for handling <a target=\"_blank\" href=\"https:\/\/pypi.python.org\/pypi\/csv\">csv<\/a>,\n<a target=\"_blank\" href=\"https:\/\/textblob.readthedocs.io\/en\/dev\/\">textblob<\/a> and other data formats<\/li>\n  <li>for visualization: Matplotlib, Seaborn, Bokeh, Yellowbrick<\/li>\n  <li>for matrix operations, <a target=\"_blank\" href=\"http:\/\/www.numpy.org\/\">\nNumpy<\/a> (<a target=\"_blank\" href=\"https:\/\/docs.scipy.org\/doc\/numpy-dev\/user\/quickstart.html\">Quickstart<\/a>)<\/li>\n  <li>for statistics and linear algebra: SciPy,\n <a target=\"_blank\" href=\"http:\/\/www.tweepy.org\">tweepy<\/a><\/li>\n  <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\">\nSFrame<\/a>, which is not limited to datasets that can fit in memory, so it can deal with large datasets, even on a laptop.<\/li>\n  <li>for Machine Learning, see below:<\/li>\n<\/ul>\n\n<h3 id=\"machine-learning-frameworks\">Machine Learning frameworks<\/h3>\n\n<p>Scikit-learn 0.18.1\nfrom Scikit-learn<\/p>\n\n<ul>\n  <li>\n    <p>http:\/\/www.infoworld.com\/article\/3158509\/analytics\/review-scikit-learn-shines-for-simpler-machine-learning.html<\/p>\n  <\/li>\n  <li>\n    <p>Mature documentation and libraries<\/p>\n  <\/li>\n  <li>\n    <p>Python-based, but does not support PyPy compiler<\/p>\n  <\/li>\n<\/ul>\n\n<p>Spark MLlib 2.01\nfrom Apache Software Foundation<\/p>\n\n<ul>\n  <li>\n    <p>http:\/\/www.infoworld.com\/article\/3141605\/artificial-intelligence\/review-spark-lights-up-machine-learning.html<\/p>\n  <\/li>\n  <li>\n    <p>Written in Scala and uses the linear algebra package Breeze which uses netlib-java.<\/p>\n  <\/li>\n  <li>\n    <p>Get data easily from Spark big-data clusters<\/p>\n  <\/li>\n  <li>\n    <p>Supported in the Databricks cloud<\/p>\n  <\/li>\n<\/ul>\n\n<p>Keras (at <a target=\"_blank\" href=\"https:\/\/keras.io\">https:\/\/keras.io<\/a>)\nis not a library of its own but\nis a high-level API to simplify the complexity of deep learning frameworks by\nrunning on top of other deep learning APIs (TensorFlow, Theano and CNTK).<\/p>\n\n<ul>\n  <li>\n    <p>Keras runs on both CPU and GPU through \n   backend engines Google\u2019s TensorFlow \n   and Theano developed by the MILA lab at Universite de Montreal.<\/p>\n  <\/li>\n  <li>\n    <p>PROTIP: Bypass manual installation by using the Docker image for Keras at<br \/>\n   https:\/\/github.com\/fchollet\/keras\/tree\/master\/docker\n   based on Ubuntu.<\/p>\n  <\/li>\n<\/ul>\n\n<p>In 2007, Nvidia launched CUDA, a C++ programming interface for its line of \nGPUs (Graphic Processing Units) begins to replace clusters of less efficient CPUs.<\/p>\n\n<ul>\n  <li>In 2017, NVIDIA provides GPU supercomputers used in many self-driving cars.<\/li>\n<\/ul>\n\n<p>In 2017, basic Python scripting skills suffice to do advanced deep learning research.<\/p>\n\n<p>https:\/\/www.exxactcorp.com\/blog\/Deep-Learning\/tensorflow-vs-pytorch-vs-keras-for-nlp<\/p>\n\n<h3 id=\"java-in-dl4j\">Java in DL4j<\/h3>\n\n<p>Although Python is vastly more popular, there is a Java library\nthat can run on both Scala and Clojure.<\/p>\n\n<p>Adam Gibson at \nSkyMind\ndeveloped \nDeeplearning4j (referred to as DL4j)\nto be commercial-grade library to run on a distributed, multi-node setup. \nIt comes with GPU support for distributed training.<\/p>\n\n<p>The DL4j team built a vectorization library called Canova.<\/p>\n\n<p>In it one can select values for its hyper parameters.<\/p>\n\n<p>DL4j supports most of the deep nets \u2013 RBM, DBN, Convolutional net, Recurrent net, RNTN, autoencoders, and vanilla MLP.<\/p>\n\n<h3 id=\"deep-learning-frameworks\">Deep Learning Frameworks<\/h3>\n\n<p>The list of <a target=\"https:\/\/developer.nvidia.com\/deep-learning-frameworks\">frameworks today is NVIDIA to make<\/a> because &lt;a target=\u201d_blank\u201d href=\u201d<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>\n\n<p>A ranking of Deep Learning frameworks based on GitHub star count in 2017:\n<img src=\"https:\/\/user-images.githubusercontent.com\/300046\/30065446-164df49c-9212-11e7-88e9-95ba672fc9e2.jpg\" alt=\"analysis-python-ml-650x248-53428\" \/><\/p>\n\n<p>Since then, <a target=\"_blank\" href=\"https:\/\/www.knowledgehut.com\/blog\/data-science\/pytorch-vs-tensorflow#what-is%C2%A0tensorflow?%C2%A0\">Google\u2019s search history shows Pytorch overtaking Tensorflow<\/a>:\n<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>\n\n<p>Facebook\/Meta\u2019s PyTorch framework rising steadily from October, 2018 to become the one most people use:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/catalog.ngc.nvidia.com\/orgs\/nvidia\/containers\/pytorch\">On NVIDIA\u2019s NGC<\/a><\/li>\n  <li>Based on Torch, another deep learning framework based on Lua<\/li>\n  <li>Easier to learn and debug its dynamic computational processes<\/li>\n  <li>TorchVision, TorchText, TorchAudio, PyTorch-XLA, PyTorch Hub, SpeechBrain, TorchX, TorchElastic and PyTorch Lightning<\/li>\n  <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>\n  <li>Poster projects: CycleGAN, FastAI, Netron\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>TensorFlow AI platform from Google<\/p>\n\n<ul>\n  <li>TensorFlow 2.0 has Keras integrated, supports dynamic graphs using eager execution<\/li>\n  <li>When running on CPUs, TensorFlow wraps itself over a low-level library for tensor operations called Eigen. BLAS<\/li>\n  <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>\n  <li>TorchServe deployment<\/li>\n  <li>TensorFlow Serving, TensorFlow Extended, TF Lite, TensorFlow.js, TensorFlow Cloud, Model Garden, MediaPipe and Coral<\/li>\n  <li>Google TPU (Tensor Processing Units)<\/li>\n  <li>\n    <p>Poster projects: DeepSpeech, Magenta, StellarGraph<\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/developers.google.com\/machine-learning\/crash-course\/ml-intro\">\n   Google\u2019s Machine Learning Crash Course<\/a><\/li>\n<\/ul>\n\n<p>Microsoft Cognitive Toolkit v2.0 Beta 1 (aka CNTK 2), as of 2017:<\/p>\n\n<ul>\n  <li>http:\/\/www.infoworld.com\/article\/3138507\/artificial-intelligence\/review-microsoft-takes-on-tensorflow.html<br \/><\/li>\n  <li>uses a declarative BrainScript neural network configuration language<\/li>\n  <li>No MacOS support yet<\/li>\n  <li>CNTK 2 models on GPU-equipped N-series family of Azure Virtual Machines.<\/li>\n  <li>Azure Machine Learning is part of the larger Microsoft Cortana Analytics Suite offering.<\/li>\n<\/ul>\n\n<p>Caffe 1.0 RC3\nfrom Berkeley Artificial Intelligence\u2026<\/p>\n\n<ul>\n  <li>http:\/\/www.infoworld.com\/article\/3154273\/analytics\/review-caffe-deep-learning-conquers-image-classification.html<\/li>\n<\/ul>\n\n<p>MXNet v0.7\nfrom Distributed Machine Learning Amazon\u2026<\/p>\n\n<ul>\n  <li>\n    <p>http:\/\/www.infoworld.com\/article\/3149598\/artificial-intelligence\/mxnet-review-amazons-scalable-deep-learning.html<\/p>\n  <\/li>\n  <li>\n    <p>Amazon\u2019s DNN framework of choice, combines symbolic declaration of neural network geometries with imperative programming of tensor operations.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>Its  dynamic dependency scheduler allows mixing symbolic and imperative programming flavors:\n   Python, R, Scala, Julia, and C++<\/p>\n  <\/li>\n  <li>\n    <p>trained MXNet models can also be used for prediction in Matlab and JavaScript.<\/p>\n  <\/li>\n  <li>\n    <p>Ahead of TensorFlow with embed imperative tensor operations.<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"data-representation\">Data representation<\/h2>\n\n<p>Tensors generalize matrices to an arbitrary number of axes (3 or more \u201cdimensions\u201d).<\/p>\n\n<p>A tensor that contains only one number is called a <strong>\u201cscalar\u201d<\/strong> \n(aka \u201cscalar tensor\u201d), also called a <strong>\u201c0D tensor\u201d<\/strong> because\nin Numpy the <code class=\"language-plaintext highlighter-rouge\">ndim<\/code> attribute of a scalar tensor has 0 axis (ndim == 0).\n(Yes, it confuses axis with dimensions)<\/p>\n\n<p>An array (list) of several numbers is called a <strong>vector<\/strong> \nor <strong>1D tensor<\/strong> having one axis. \nAs Lecun explains it:<\/p>\n\n<p>A vector of 5 entries is called a \u201c5-dimensional vector\u201d. \n   Do not confuse a 5-dimensional vector with a 5D tensor! \n   A 5D vector has only one axis and has 5 dimensions along its axis, \n   while a 5D tensor has 5 axes (and may have any number of dimensions along each axis).<\/p>\n\n<p>An array of vectors is a matrix, or <strong>2D tensor<\/strong> of two axes.<\/p>\n\n<pre>\nx = np.array([[1, 2, 3, 4, 5],\n              [10, 11, 12, 13, 14],\n              [100, 101, 102, 103, 104]])\n   <\/pre>\n\n<p>Each vertical \u201ccolumn\u201d 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>\n\n<p>The \u201cshape\u201d of the above is (3,5) for 3 vectors each containing 5 values.<\/p>\n\n<p>A <strong>3D tensor<\/strong> is defined as a \u201ccube\u201d of numbers.\nThe MNIST library of 60,000 sample images, each consisting of 28x28 black-and-white pixels\n(each pixel represented by a number range from white to black),\nhas a <strong>shape<\/strong> of (60000,28,28).<\/p>\n\n<p>4D tensors are used to process matrices of color pictures :<br \/>\n(samples, width, height, channels)<\/p>\n\n<p>5D tensors are used when processing video data:<br \/>\n(samples, frames, width, height, color_depth).<\/p>\n\n<p>In Python Numpy, a data type of \u201cfloat32\u201d or \u201cfloat64\u201d is a scalar tensor (or scalar array).<\/p>\n\n<p>\u201cSelecting\u201d specific elements in a tensor is called \u201ctensor slicing\u201d.<\/p>\n\n<h3 id=\"axies-for-shape\">Axies for Shape<\/h3>\n\n<p>2D tensors containing simple vector data of shape (samples, features)\nare typically processed in \u201cfully-connected\u201d (\u201cdensely-connected\u201d or \u201cdense\u201d) layers \nusing the Dense class in Keras.<\/p>\n\n<p>3D tensors containing sequence data of shape (samples, timesteps, features)\nare typically processed by \u201crecurrent\u201d layers such as a LSTM layer.<\/p>\n\n<p>4D tensors containing image data is typically processed by Convolution2D layers.<\/p>\n\n<p>5D tensors containing video data use the reshape layer.\nSee https:\/\/github.com\/anayebi\/keras-extra\nfor using Extra Layers for Keras to connect a RNN (Recurrent Neural Network)\nto a Convolutional Neural Network (CNN) by allowing the CNN layers to be time distributed.<\/p>\n\n<h3 id=\"pandas\">Pandas<\/h3>\n\n<p>The Padas Python library reads databases directly into\n<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>\n\n<table>\n  <thead>\n    <tr>\n      <th>Dimensions<\/th>\n      <th>Name<\/th>\n      <th>Description<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>1<\/td>\n      <td>\u201cSeries\u201d<\/td>\n      <td>Indexed 1 dimension data structure<\/td>\n    <\/tr>\n    <tr>\n      <td>2<\/td>\n      <td>\u201cTimeseries\u201d<\/td>\n      <td>Series using time stamps as an index<\/td>\n    <\/tr>\n    <tr>\n      <td>3<\/td>\n      <td>\u201cDataFrame\u201d<\/td>\n      <td>A two-dimensional table<\/td>\n    <\/tr>\n    <tr>\n      <td>4<\/td>\n      <td>\u201cPanel\u201d<\/td>\n      <td>A three-dimensional table data structure<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<ul>\n  <li>\n    <p>A <strong>scalar regression task<\/strong> is one where the target is a continuous scalar value. \n For example, when predicting house prices, the different target prices form a continuous space.<\/p>\n  <\/li>\n  <li>\n    <p>A <strong>vector regression task<\/strong> is one where the target is a set of continuous values\n(e.g. a continuous vector) while doing regression against multiple values (e.g. the coordinates of a bounding box in an image).<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"metrics\">Metrics<\/h2>\n\n<p>The goal is to derive models that generalize.<\/p>\n\n<p>When using its training data, a <strong>\u201closs function\u201d<\/strong> \nis used to measure how well a neural network layer meets its objective. \nThus, some call it an \u201cobjective function\u201d.<\/p>\n\n<p>It is called a function because it\u2019s the result of changes, and thus used to\ndetermine whether changes are moving in the right direction.\nChanges are made to minimize the loss function.<\/p>\n\n<p>The number of data values is typically split into a \ntraining set, a validation set, and a test set. This is so we don\u2019t evaluate data\nusing what was used for training in order to avoid overfitting.<\/p>\n\n<p>An <strong>\u201coptimizer\u201d<\/strong> is the mechanism a network uses to update itself \n(based on data received and loss function values).\nIt implements a specific variant for <strong>stochastic gradient descent<\/strong>.<\/p>\n\n<h2 id=\"gradient-boosting\">Gradient Boosting<\/h2>\n\n<p>To address shallow learning problems, \nwhere structured data is available, \n\u201cgradient boosting machines\u201d have been used.<\/p>\n\n<p>Practitioners of gradient boosting make use of the XGB library, \nwhich supports both the two most popular languages of data science: Python and R.<\/p>\n\n<h2 id=\"introductory-resources\">Introductory Resources<\/h2>\n\n<p>YOUTUBE:\n<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=BR9h47Jtqyw\">\nA friendly introduction to Deep Learning and Neural Networks<\/a>\nby Luis Serrano<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/medium.com\/@ageitgey\/machine-learning-is-fun-80ea3ec3c471\">\nMachine Learning is Fun!<\/a> (article on Medium)\nself-proclaimed \u201cthe world\u2019s easiest introduction to Machine Learning\u201d.<\/p>\n\n<p>Adam Geitgy\u2019s introduction of Machine Learning\nhttps:\/\/medium.com\/@ageitgey\/machine-learning-is-fun-80ea3ec3c471\/\n\u201cfor anyone who is curious about machine learning but has no idea where to start\u201d<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=dYT2LSuemgg\nApr 26, 2017 by Dr. Joseph Reger, CTO of Fujitsu Technology Solutions<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/open.sap.com\/courses\/ml1\/items\/K1SvFgJiUIExvx0APIEc6\">\nEnterprise Machine Learning in a Nutshell<\/a>\nfree class from SAP.<\/p>\n\n<p>Recommended by Elon Musk: Nick Bostrom \u201cSuperIntelligence: Paths, Dangers, Strategies\u201d<\/p>\n\n<h2 id=\"more\">More<\/h2>\n\n<p>This is one of a series on AI, Machine Learning, Deep Learning, Robotics, and Analytics:<\/p>\n\n<ol>\n  <li><a href=\"\/ai-ecosystem\/\">AI Ecosystem<\/a><\/li>\n  <li><a href=\"\/machine-learning\/\">Machine Learning<\/a><\/li>\n  <li>\n    <p><a href=\"\/testing-ai\/\">Testing AI<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/microsoft-ai\/\">Microsoft\u2019s AI<\/a><\/li>\n  <li><a href=\"\/machine-learning-algorithms\/\">Microsoft\u2019s Azure Machine Learning Algorithms<\/a><\/li>\n  <li><a href=\"\/azure-machine-learning\/\">Microsoft\u2019s Azure Machine Learning tutorial<\/a><\/li>\n  <li>\n    <p><a href=\"\/azure-ml-cert\/\">Microsoft\u2019s Azure Machine Learning certification<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/python-install\/\">Python installation<\/a><\/li>\n  <li>\n    <p><a href=\"\/juypter\/\">Juypter notebooks processing Python for humans<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/image-processing\/\">Image Processing<\/a><\/li>\n  <li><a href=\"\/tesseract\/\">Tessaract OCR using OpenCV<\/a><\/li>\n  <li>\n    <p><a href=\"\/amazon-lex\/\">Amazon Lex text to speech<\/a><\/p>\n  <\/li>\n  <li>\n    <p><a href=\"\/code-generation\/\">Code Generation<\/a><\/p>\n  <\/li>\n  <li><a href=\"\/regression\/\">Multiple Regression calculation and visualization using Excel and Machine Learning<\/a><\/li>\n  <li><a href=\"\/tableau\/\">Tableau Data Visualization<\/a><\/li>\n<\/ol>\n\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/gaia-net\/"}},"id":"https:\/\/wilsonmar.github.io\/gaia-net","published":"2025-11-11T00:00:00+00:00","updated":"2025-11-11T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Monitize your knowledge in a blockchain exposed as AI Agents<\/i><\/p>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/gaia-net\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fgaia-net%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<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>\n\n<ul>\n  <li>coder.gaia.domains is a collection of pure Qwen 2.5 33B models for developers to use.<\/li>\n  <li>pastor.gaia.domains is a Bible study agent that can explain biblical content.<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.gaianet.ai\/chat?domain=chemistry.gaia.domains&amp;type=domain\">chemistry.gaia.domains<\/a>  is a collection of Llama 3.2-8b models with chemistry knowledge.\n   <br \/><br \/>\nSmart contracts of the blockchain interact with AI Agents.<\/li>\n<\/ul>\n\n<p>That enables Gaia to build \u201cLiving Knowledge Systems\u201d for AI Agents.\n\u2013 an decentralized ecosystem to support AI apps that learn, improve, and grow over time.<\/p>\n\n<p>Power any LLM application \n<a target=\"_blank\" href=\"https:\/\/gaianet.ai\/llm-library\">many LLMs<\/a>.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/gaianet.ai\/domain-explore\">many AI Agents<\/a>.\nTo fuel the growth and development of the Gaia network,\nthe Gaia Reward Program \/\/\/<\/p>\n\n<p>Although Gaia has an API compatible with OpenAI,\nUnlike OpenAI ???<\/p>\n\n<p>When Gaia Nodes connect to a Gaia Domain, it adds reasoning capabilities.<\/p>\n\n<p>Nodes can be <a target=\"_blank\" href=\"https:\/\/docs.gaianet.ai\/getting-started\/quick-start\/\">installed on macOS, Linux, Azure\/AWS<\/a>:<\/p>\n\n<ol>\n  <li>Make a folder to hold\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>mkdir -p gaianetper; cd gaianet\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Download\n    <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\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Check both shell and running process:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>if [[ $SHELL == *\"zsh\"* ]] || [[ $(ps -p $$ -o comm=) == *\"zsh\"* ]]; then\n   source ~\/.zshrc\"\nelse\n   source ~\/.bash_profile\"\nfi\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Initialize <tt>$HOME\/gaianet\/config.json<\/tt>\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>gaianet init\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>Start node:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>gaianet start\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n  <li>wasmedge is the process running in the background:\n    <div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>ps -al\n<\/code><\/pre><\/div>    <\/div>\n  <\/li>\n<\/ol>\n\n<p>Gaia Domains are linked dirctly from a web browser as a personal AI Agent portal.<\/p>\n\n<p>Instead of complex wallet addresses, Gaia domains are shared in a human readable format.<\/p>\n\n<p>Domain stGAIA (Auto-deploy to domain when TGE)<\/p>\n\n<ul>\n  <li>https:\/\/decrypt.co\/297060\/gaia-is-building-living-knowledge-systems-for-ai-agents<\/li>\n  <li>https:\/\/gist.github.com\/kwunyeung\/bfc3a6c9f8e5ad2566f12e69419c64e6<\/li>\n  <li>https:\/\/hub.cosmos.network\/main\/getting-started\/installation<\/li>\n  <li>\n    <p>https:\/\/medium.com\/@Gaianet.ai\/gaianet-node-installation-guide-7572718eadf2<\/p>\n  <\/li>\n  <li>https:\/\/github.com\/GaiaNet-AI\/awesome-gaia is a collection point for resources that extend and enrich Gaia\u2019s capabilities.<\/li>\n  <li>https:\/\/medium.com\/@Gaianet.ai\/step-by-step-guide-to-minting-your-gaia-domain-name-and-package-b6bb54654385<\/li>\n<\/ul>\n\n<p>Among videos at https:\/\/www.youtube.com\/@GaiaAI<\/p>\n<ul>\n  <li>https:\/\/www.youtube.com\/watch?v=oTRuc5QXCBI Gaia Domains under 5 minutes<\/li>\n<\/ul>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/python-features\/"}},"id":"https:\/\/wilsonmar.github.io\/python-features","published":"2025-11-08T00:00:00+00:00","updated":"2025-11-08T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <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>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/python-features\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-features%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#execution-environment\" id=\"markdown-toc-execution-environment\">Execution Environment<\/a><\/li>\n  <li><a href=\"#version-control\" id=\"markdown-toc-version-control\">Version Control<\/a><\/li>\n  <li><a href=\"#linting-ruff\" id=\"markdown-toc-linting-ruff\">Linting: Ruff<\/a><\/li>\n  <li><a href=\"#logging\" id=\"markdown-toc-logging\">Logging<\/a><\/li>\n  <li><a href=\"#colorized-print-output\" id=\"markdown-toc-colorized-print-output\">Colorized print output<\/a><\/li>\n  <li><a href=\"#traceback-for-debugging\" id=\"markdown-toc-traceback-for-debugging\">traceback for debugging<\/a><\/li>\n  <li><a href=\"#async-api-fastapi\" id=\"markdown-toc-async-api-fastapi\">Async API FastAPI<\/a><\/li>\n  <li><a href=\"#cli-ui\" id=\"markdown-toc-cli-ui\">CLI UI<\/a><\/li>\n  <li><a href=\"#subprocess\" id=\"markdown-toc-subprocess\">Subprocess<\/a><\/li>\n  <li><a href=\"#databases\" id=\"markdown-toc-databases\">Databases<\/a><\/li>\n  <li><a href=\"#dashboards-to-present-analytics\" id=\"markdown-toc-dashboards-to-present-analytics\">Dashboards to present analytics<\/a><\/li>\n  <li><a href=\"#analytics\" id=\"markdown-toc-analytics\">Analytics<\/a><\/li>\n  <li><a href=\"#gui\" id=\"markdown-toc-gui\">GUI<\/a><\/li>\n  <li><a href=\"#brew-search\" id=\"markdown-toc-brew-search\">brew search<\/a><\/li>\n  <li><a href=\"#references\" id=\"markdown-toc-references\">References<\/a><\/li>\n  <li><a href=\"#pythonista-mobile-ide\" id=\"markdown-toc-pythonista-mobile-ide\">Pythonista mobile IDE<\/a><\/li>\n  <li><a href=\"#ai-vision\" id=\"markdown-toc-ai-vision\">AI Vision<\/a><\/li>\n  <li><a href=\"#workflow-orchestration\" id=\"markdown-toc-workflow-orchestration\">Workflow orchestration<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n<p><i>How to automate Python<\/i><\/p>\n\n<p>The design choices faced by enterprise Python language users (click for more):<\/p>\n\n<ul>\n  <li><a href=\"#VersionControl\">Version Control: git\/github, Google jj<\/a><\/li>\n  <li>\n    <p><a href=\"#Linting\">Linting: Ruff<\/a><\/p>\n  <\/li>\n  <li><a href=\"#CLI\">CLI<\/a><\/li>\n  <li><a href=\"#GUI\">GUI<\/a> &amp; <a href=\"#Analytics\">Analytics<\/a> &amp; <a href=\"#Dashboard\">Dashboards<\/a><\/li>\n  <li><a href=\"#AsyncAPI\">Async API (FastAPI)<\/a><\/li>\n  <li><a href=\"#Databases\">Databases<\/a>\n   <br \/><br \/><\/li>\n<\/ul>\n\n<ol>\n  <li>Specify first line and main to run program directly.<\/li>\n  <li>Define docstring on latest change, STATUS of program<\/li>\n  <li>\n    <p>Define github URL where program is located in docstring<\/p>\n  <\/li>\n  <li>Get parameter values from argument specified in call within CLI<\/li>\n  <li>Read secrets from .env file outside the program and GitHub, cloud (akeyless.com)<\/li>\n  <li>Positive and negative unit tests for each function (PyTest?)<\/li>\n  <li>\n    <p>Read CSV file for multiple iterations<\/p>\n  <\/li>\n  <li>Define OpenTelemetry (OTel) spans for tracing<\/li>\n  <li>Define a code for each message<\/li>\n  <li>Measure duration of each function with scope processed<\/li>\n  <li>Output log entries with duration and process scope<\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"VersionControl\"><\/a><\/p>\n\n<h2 id=\"execution-environment\">Execution Environment<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/jupyter\/\">My article on Jupyter Notebooks<\/a> covers:<\/p>\n<ul>\n  <li>Google Colab<\/li>\n  <li>Kaggle<\/li>\n  <li>AWS<\/li>\n<\/ul>\n\n<p><a name=\"VersionControl\"><\/a><\/p>\n\n<h2 id=\"version-control\">Version Control<\/h2>\n\n<p>git\/github, Google jj<\/p>\n\n<p><a name=\"Linting\"><\/a><\/p>\n\n<h2 id=\"linting-ruff\">Linting: Ruff<\/h2>\n\n<p>To run several in one command, <tt>ruff<\/tt> combines the rules from several previous utilities (black, etc.).\nAnd it runs fast due to it being written in Rust.<\/p>\n\n<p>To identify whether libraries referenced has been flagged as vulnerable, we use <tt>safety<\/tt>.\nIt\u2019s free but it has an annoying habit of making users type a password every run.\nSo I took it out of the <strong>git-commit<\/strong> hooks script run on every commit.<\/p>\n\n<h2 id=\"logging\">Logging<\/h2>\n\n<p>loguru \u2014 Logging with zero boilerplate and built-in rotation\nWhy: Instead of logging.getLogger() setup, you get a one-line log tool with colors, file rotation, and context info.<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>from loguru import logger\n\nlogger.add(\"file_{time}.log\", rotation=\"500 MB\")\nlogger.info(\"Start processing {n} items\", n=10)\n<\/code><\/pre><\/div><\/div>\n\n<p>Minimal setup, instantly usable output, fewer config hassles \u2014 productivity win.<\/p>\n\n<h2 id=\"colorized-print-output\">Colorized print output<\/h2>\n\n<p>The click library avoids the need to add color to print output by define global variables in every program file.<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>import click\nimport rich_click as rc\n\nrc.rich_click.MODERN = True\n\n@click.command()\n@click.option('--name', prompt='Your name')\ndef hello(name):\n    click.echo(f\"Hello, [bold cyan]{name}[\/]!\")\n\nif __name__ == '__main__':\n    hello()\n<\/code><\/pre><\/div><\/div>\n\n<h2 id=\"traceback-for-debugging\">traceback for debugging<\/h2>\n\n<p>Default tracebacks are messy. Rich\u2019s tracebacks give color, local vars, context, and you spend less time digging.<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>from rich.traceback import install\ninstall(show_locals=True)\n\ndef broken():\n    a = [1,2,3]\n    return a[5]\n\nbroken()\n<\/code><\/pre><\/div><\/div>\n\n<p>Instant clarity \u2014 especially when your automation fails in production and you need answers fast.<\/p>\n\n<p><a name=\"AsyncAPI\"><\/a><\/p>\n\n<h2 id=\"async-api-fastapi\">Async API FastAPI<\/h2>\n\n<p>https:\/\/www.codecademy.com\/article\/fastapi-vs-flask-key-differences-performance-and-use-cases<\/p>\n\n<p><a name=\"CLI\"><\/a><\/p>\n\n<h2 id=\"cli-ui\">CLI UI<\/h2>\n\n<p>Python comes with the <tt>print()<\/tt> function.<\/p>\n\n<p>The <tt>typer<\/tt> library makes it easier to define code to recognize parameters.<\/p>\n\n<h2 id=\"subprocess\">Subprocess<\/h2>\n\n<p>To execute OS commands within Python, instead of shell scripts:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>from invoke import task\n\n@task\ndef clean(ctx):\n    ctx.run(\"rm -rf build dist __pycache__\")\n\n@task(pre=[clean])\ndef build(ctx):\n    ctx.run(\"python setup.py sdist bdist_wheel\")\n\n# CLI:\n# &gt; invoke build\n<\/code><\/pre><\/div><\/div>\n\n<p><a name=\"Databases\"><\/a><\/p>\n\n<h2 id=\"databases\">Databases<\/h2>\n\n<p>Local databases:<\/p>\n<ul>\n  <li>SQLite comes built into Python, so is a popular choice.<\/li>\n  <li>Postgres<\/li>\n  <li>MySQL is open source, but its ownership by Oracle makes its future suspect.\n   <br \/><br \/>\nCloud-based databases are convenient, but expensive.<\/li>\n  <li>Snowflake<\/li>\n  <li>Databricks<\/li>\n  <li>Microsoft SQL &amp; Azure Cosmos DB\n   <br \/><br \/>\nThe question about database is its architectural data  organization:<\/li>\n  <li>traditional SQL<\/li>\n  <li>Graph databases<\/li>\n  <li>DAG (Directed Acyclic Graph) like in blockchains and within Git<\/li>\n  <li>Semantic vector databases used by AI to augment foundation LLMs with private data\n   <br \/><br \/>\nPython ORM frameworks include:<\/li>\n  <li>Django ORM<\/li>\n  <li>sqlalchemy ORM: [<a target=\"_blank\" href=\"https:\/\/www.datacamp.com\/tutorial\/sqlalchemy-tutorial-examples\">Datacamp.com<\/a>]<\/li>\n  <li>https:\/\/www.planeks.net\/django-orm-vs-sqlalchemy\/<\/li>\n<\/ul>\n\n<p><a name=\"Dashboards\"><\/a><\/p>\n\n<h2 id=\"dashboards-to-present-analytics\">Dashboards to present analytics<\/h2>\n\n<p>Dashboard visually present metrics (statistics) for \u201csituational awareness\u201d (many in real-time):<\/p>\n<ul>\n  <li>At an individual level, health stastics such as weight from scales, blood\/oxigen, blood pressure, Glucouse from Continous Glucose Monitors, etc.<\/li>\n  <li>Families install Home Assistant to display sensor history, temperature fluctuations, and other weather conditions.<\/li>\n  <li>Families and teams have a common calendar.<\/li>\n  <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>\n  <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).\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>Python Frameworks:<\/p>\n<ul>\n  <li>Matplotlib-based dashboards.<\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>Panel by Holoviz: For powerful dashboards customized by pros, especially with Jupyter Notebook.<\/li>\n  <li>\n    <p>Voila turns Jupyter notebooks into dashboards. Save this example as a .ipynb file, then run it with voila script_name.ipynb:<\/p>\n  <\/li>\n  <li>Bokeh<\/li>\n  <li>\n    <p>Taipy<\/p>\n  <\/li>\n  <li>LightningChart features GPU acceleration.<\/li>\n  <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\u2019s internal data teams have used HoloViews-style pipelines for rapid analytics dashboards.\n<br \/><br \/><\/li>\n<\/ul>\n\n<p>Resources:<\/p>\n<ul>\n  <li>https:\/\/realpython.com\/python-dash\/<\/li>\n  <li>https:\/\/medium.com\/codrift\/7-python-libraries-that-make-data-visualization-addictive-f657bf98d595<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/learning\/python-for-data-visualization-2023\/using-the-exercise-files?autoSkip=true&amp;resume=false\">Python for Visualization<\/a><\/li>\n<\/ul>\n\n<p><a name=\"Analytics\"><\/a><\/p>\n\n<h2 id=\"analytics\">Analytics<\/h2>\n\n<p>You may be familiar with the phrase \u201cA picture is worth a thousand words\u201d.<\/p>\n\n<p>There are expensive enterprise-level system Tableau, SAS, Matlab, etc.<\/p>\n\n<p>For Python:<\/p>\n\n<ul>\n  <li>\n    <p>Seaborn runs on top of Matplotlib to provide more flexibility and a more elegant look.<\/p>\n  <\/li>\n  <li>Plotly (for interactivity and modern UI) [<a target=\"_blank\" href=\"https:\/\/realpython.com\/python-dash\/\">Dash Tutorial<\/a>]\n    <ul>\n      <li>https:\/\/dash.plotly.com\/tutorial shows recreation of a GapMinder 4D interface from https:\/\/raw.githubusercontent.com\/plotly\/datasets\/master\/gapminder2007.csv<\/li>\n      <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>\n    <\/ul>\n  <\/li>\n  <li>Altair (for quick, declarative, grammar-based plots)<\/li>\n  <li>Polars + hvPlot (if you\u2019re moving toward faster, Arrow-native workflows)<\/li>\n<\/ul>\n\n<p>Resources:<\/p>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.planeks.net\/python-dashboard-development-framework\/\">\u201cWhat is the best Python dashboard framework?\u201d<\/a><\/li>\n<\/ul>\n\n<p><a name=\"GUI\"><\/a><\/p>\n\n<h2 id=\"gui\">GUI<\/h2>\n\n<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 \u2013 computer, phone, or other. You don\u2019t 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>\n\n<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>\n\n<p>SUMMARY: Libraries to create Python GUI have a fragmented among these choices:<\/p>\n\n<ul>\n  <li>\n    <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 \u201clooks like 1994\u201d and has more limited widgets.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>PyQt require a commercial license for professional and complex applications because it is feature-rich with tools like <strong>Qt Designer<\/strong>.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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\u2019s less customizable.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n<\/ul>\n\n<p>wxPython\u2019s Project Phoenix is a new from-the-ground-up implementation of wxPython, created with the intent of making wxPython \u201cbetter, stronger, faster than he was before.\u201d<\/p>\n\n<ul>\n  <li>\n    <p>PyGObject (GTK-based, good for Linux)<\/p>\n  <\/li>\n  <li>\n    <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\u2019s a good choice for simple graphics applications or projects needing good performance without a complex or fancy interface.<\/p>\n  <\/li>\n  <li>\n    <p>Toga is a <strong>cross-platform<\/strong> GUI library that uses each operating system\u2019s <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 \u201cleast common denominator\u201d means fewer fancy widgets and a smaller community than older libraries.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>Pygame, while not a pure GUI library, is popular for developing 2D games. It makes mp3 audio processing easy on macOS.<\/p>\n  <\/li>\n<\/ul>\n\n<p>https:\/\/stepmediasoftware.com\/blog\/best-gui-library-for-python\/<\/p>\n\n<h2 id=\"brew-search\">brew search<\/h2>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>brew search python\n==&gt; Formulae\nboost-python3                              python-setuptools\nbpython                                    python-tabulate\nbrewsci\/bio\/boost-python3@1.87             python-tk@3.10\ncyclonedx-python                           python-tk@3.11\nipython                                    python-tk@3.12 \u2714\nlibvirt-python                             python-tk@3.13 \u2714\nmicropython                                python-tk@3.9\nptpython                                   python-yq\npython-argcomplete                         python@3.10\npython-build                               python@3.11 \u2714\npython-freethreading                       python@3.12 \u2714\npython-gdbm@3.11                           python@3.13 \u2714\npython-gdbm@3.12                           python@3.8\npython-gdbm@3.13                           python@3.9\npython-launcher                            reorder-python-imports\npython-lsp-server                          wxpython\npython-markdown                            pythran\npython-matplotlib                          cython\npython-packaging \u2714                         jython\n<\/code><\/pre><\/div><\/div>\n\n<h2 id=\"references\">References<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/Python-Tricks-Buffet-Awesome-Features\/dp\/1775093301?\">BOOK:\n\u201cPython Tricks: A Buffet of Awesome Python Features \u201c from October 25, 2017<\/a>\n<a target=\"_blank\" href=\"https:\/\/learning.oreilly.com\/library\/view\/python-tricks\/9781492069522\/\">on OReilly<\/a>\nby Dan Bader (of RealPython.com) recommends assertions<\/p>\n\n<p>https:\/\/learning.oreilly.com\/library\/view\/data-structures\/9780134855912\/\nData Structures &amp; Algorithms in Python\nBy John Canning, Alan Broder, Robert Lafore<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=NiUK4G_jgdE\">VIDEO<\/a>:\n22:43 AI-generated podcast about book\n<a target=\"_blank\" href=\"https:\/\/www.amazon.com\/Python-Basics-Practical-Introduction\/dp\/1775093328?\">\nBOOK: \u201cPython Basics: A Practical Introduction to Python 3rd Edition\u201d<\/a>\nby David Amos (Author), Dan Bader (Author), Joanna Jablonski (Author), Fletcher Heisler (Author)<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=DhA4a3xS0Vo\">VIDEO<\/a>\n<a target=\"_blank\" href=\"https:\/\/www.amazon.com\/Kubernetes-Bible-definitive-deploying-platforms\/dp\/1838827692\">$55<\/a> \n\u201cThe Kubernetes Bible: The definitive guide to deploying and managing Kubernetes across major cloud platforms\u201d by by Nassim Kebbani (Author), Piotr Tylenda (Author), Russ McKendrick (Author)<\/p>\n\n<h2 id=\"pythonista-mobile-ide\">Pythonista mobile IDE<\/h2>\n\n<p>https:\/\/apps.apple.com\/us\/app\/pythonista-3\/id1085978097\nPythonista 3 ($9.99 by <a target=\"_blank\" href=\"https:\/\/omz-software.com\/pythonista\/\">omz:software<\/a>) Python IDE for iPad (and iPhone)<\/p>\n\n<h2 id=\"ai-vision\">AI Vision<\/h2>\n\n<p>OpenCV<\/p>\n\n<p>https:\/\/www.raspberrypi.com\/documentation\/accessories\/ai-camera.html\nAI Camera from Raspberry Pi.\nhttps:\/\/www.youtube.com\/watch?v=aoYfHlbNxGQ\nGet started with Raspberry Pi AI Camera with Object Detection under 5 Minutes #raspberrypi<\/p>\n\n<p>https:\/\/www.ultralytics.com\/events\/yolovision YOLO vision by Ultralytics.<\/p>\n\n<p>https:\/\/core-electronics.com.au\/guides\/raspberry-pi\/custom-object-detection-models-without-training-yoloe-and-raspberry-pi\/<\/p>\n\n<p>https:\/\/docs.firialabs.com\/codeair\/radio.html<\/p>\n\n<h2 id=\"workflow-orchestration\">Workflow orchestration<\/h2>\n\n<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>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>from prefect import flow, task\n\n@task\ndef fetch_data():\n    return [1,2,3]\n\n@task\ndef process(data):\n    return [x*2 for x in data]\n\n@flow\ndef my_flow():\n    data = fetch_data()\n    result = process(data)\n    print(result)\n\nif __name__ == '__main__':\n    my_flow()\n<\/code><\/pre><\/div><\/div>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/python-ray\/"}},"id":"https:\/\/wilsonmar.github.io\/python-ray","published":"2025-11-03T00:00:00+00:00","updated":"2025-11-03T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <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>\n<p align=\"right\">\n<a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/python-ray\/\"><img alt=\"US (English)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/us.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fpython-ray%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#competition\" id=\"markdown-toc-competition\">Competition<\/a><\/li>\n  <li><a href=\"#ray-clusters\" id=\"markdown-toc-ray-clusters\">Ray Clusters<\/a><\/li>\n  <li><a href=\"#install-using-docker\" id=\"markdown-toc-install-using-docker\">Install using Docker<\/a>    <ul>\n      <li><a href=\"#port\" id=\"markdown-toc-port\">Port<\/a><\/li>\n      <li><a href=\"#resources\" id=\"markdown-toc-resources\">Resources<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#ecosystem\" id=\"markdown-toc-ecosystem\">Ecosystem<\/a><\/li>\n  <li><a href=\"#glossary\" id=\"markdown-toc-glossary\">Glossary<\/a><\/li>\n  <li><a href=\"#installation-scopes\" id=\"markdown-toc-installation-scopes\">Installation scopes<\/a><\/li>\n  <li><a href=\"#monitoring\" id=\"markdown-toc-monitoring\">Monitoring<\/a><\/li>\n  <li><a href=\"#dashboard\" id=\"markdown-toc-dashboard\">Dashboard<\/a><\/li>\n  <li><a href=\"#cluster-launcher\" id=\"markdown-toc-cluster-launcher\">Cluster Launcher<\/a><\/li>\n  <li><a href=\"#ray-serve\" id=\"markdown-toc-ray-serve\">Ray Serve<\/a><\/li>\n  <li><a href=\"#mcp\" id=\"markdown-toc-mcp\">MCP<\/a><\/li>\n  <li><a href=\"#beginner-info\" id=\"markdown-toc-beginner-info\">Beginner Info<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>https:\/\/www.ray.io\/#why-ray<\/p>\n\n<p>https:\/\/github.com\/wilsonmar\/python-ray<\/p>\n\n<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>\n\n<ul>\n  <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>\n  <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>\n  <li>\n    <p><a target=\"_blank\" href=\"\">ray-data.py<\/a><\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"ray-learn.py\">ray-learn.py<\/a> for Reinforcement learning<\/li>\n  <li><a target=\"_blank\" href=\"ray-batch.py\">ray-batch.py<\/a> for Batch inference<\/li>\n  <li><a target=\"_blank\" href=\"ray-train.py\">ray-train.py<\/a> for Model training<\/li>\n  <li><a target=\"_blank\" href=\"ray-tune.py\">ray-tune.py<\/a> for Hyperparameter tuning<\/li>\n  <li><a target=\"_blank\" href=\"ray-serve.py\">ray-serve.py<\/a> for Model serving\n   <br \/><br \/>\n   The above are based on https:\/\/docs.ray.io\/en\/latest\/ray-overview\/examples.html<\/li>\n<\/ul>\n\n<p>Among End-to-End ML Workflows<\/p>\n<ul>\n  <li>[Example] Text classification with Ray<\/li>\n  <li>[Example] Object detection with Ray<\/li>\n  <li>[Example] Machine learning on tabular data\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>https:\/\/docs.ray.io\/en\/latest\/train\/examples.html<\/p>\n\n<p>https:\/\/github.com\/ray-project\/ray\/tree\/master<\/p>\n\n<p>Running a job involves specifying the number of nodes.\nRay abstracts away the complexity of managing scaling clusters, task scheduling, inter-node cmmunications, handling failures with retries and restarts.<\/p>\n\n<p>https:\/\/github.com\/ray-project\/ray\/blob\/master\/doc\/source\/ray-security\/index.md\nRay provides fault-tolerance, optimized scheduling, task orchestration, and auto-scaling to run a given workload.\nIf 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>\n\n<ul>\n  <li>Explicitly: By submitting a Ray Job, or using the Ray Client<\/li>\n  <li>Indirectly: By calling the Dashboard REST APIs of these services<\/li>\n  <li>Implicitly: Ray extensively uses cloudpickle for serialization of arbitrary Python objects. See the pickle documentation for more details on Pickle\u2019s security model.<\/li>\n<\/ul>\n\n<p>Within a cluster are stateless CPU Tasks and stateful Actions in a pool of GPUs.<\/p>\n\n<p>Results are returned as futures.<\/p>\n\n<p>https:\/\/docs.ray.io\/en\/latest\/cluster\/key-concepts.html#cluster-key-concepts<\/p>\n\n<p>At the Ray.io marketing page notes, several of the \u201cMagnificient Seven\u201d stocks use Ray (an Apache project) owned by Anyscale.com. Here\u2019s why:<\/p>\n\n<p>Ray deploys to:<\/p>\n<ul>\n  <li>Workspaces on Anyscale.com managed cloud. https:\/\/docs.anyscale.com\/platform\/workspaces\/<\/li>\n  <li>Docker images from https:\/\/hub.docker.com\/r\/rayproject\/ray comes with anaconda<\/li>\n  <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:\n    <ul>\n      <li>AWS,<\/li>\n      <li>GCP within https:\/\/docs.cloud.google.com\/tpu\/docs\/ray-guide\n <br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li>QUESTION: What is Community-supported Azure?<\/li>\n  <li>\n    <p>Community-supported Aliyun and vSphere integrations also exist.<\/p>\n\n    <p>https:\/\/docs.newrelic.com\/docs\/infrastructure\/host-integrations\/host-integrations-list\/ray-integration\/<\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/docs.ray.io\/en\/latest\/cluster\/kubernetes\/getting-started.html#kuberay-quickstart\">Ray Kubernetes<\/a>\n<br \/><br \/><\/li>\n<\/ul>\n\n<h2 id=\"competition\">Competition<\/h2>\n\n<ul>\n  <li>Spark<\/li>\n  <li>Dask<\/li>\n  <li>pytorch monarch the new distributed AI framework by meta? It looks much alike ray APIs.\nif 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>\n<\/ul>\n\n<p>https:\/\/orbstack.dev\/\u201d&gt;orbstack<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=aJe7CvQ-aM8<\/p>\n\n<p><a name=\"Clusters\"><\/a><\/p>\n\n<h2 id=\"ray-clusters\">Ray Clusters<\/h2>\n\n<p>Ray runs on any machine, <a href=\"https:\/\/docs.ray.io\/en\/latest\/cluster\/getting-started.html\">cluster<\/a>.<\/p>\n\n<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>\n\n<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>\n\n<h2 id=\"install-using-docker\">Install using Docker<\/h2>\n\n<h3 id=\"port\">Port<\/h3>\n\n<ol>\n  <li>\n    <p>Start the <strong>Head Node<\/strong> of a cluster:<\/p>\n\n    <pre>ray start --head --port=6379<\/pre>\n\n    <p>If a <tt>\u2013port<\/tt> argument is omitted, Ray chooses port 6379, and then fall back to a random port if in 6379 is in use.<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>Start Worker (Compute) Nodes on each of the other nodes:<\/p>\n\n    <pre>ray start --address=<em>head-node-address:port<\/em><\/pre>\n\n    <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>\n\n    <h3 id=\"resources\">Resources<\/h3>\n\n    <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 \u2013num-cpus=10 and \u2013num-gpus=1. See the Configuration page for more information.<\/p>\n\n    <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>\n  <\/li>\n<\/ol>\n\n<h2 id=\"ecosystem\">Ecosystem<\/h2>\n\n<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>\n\n<p>https:\/\/docs.ray.io\/en\/latest\/_images\/air-ecosystem.svg<\/p>\n\n<p>https:\/\/github.com\/ray-project\/ray\n\u201cRay is an AI compute engine.<\/p>\n<ul>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/docs.ray.io\/en\/latest\/ray-core\/tasks.html\">Tasks<\/a> - Stateless functions executed in the cluster.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/docs.ray.io\/en\/latest\/ray-core\/objects.html\">Objects<\/a> - Immutable values accessible across the cluster.<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"glossary\">Glossary<\/h2>\n\n<p>See https:\/\/docs.ray.io\/en\/latest\/ray-references\/glossary.html<\/p>\n\n<h2 id=\"installation-scopes\">Installation scopes<\/h2>\n\n<p>This article is a rewrite of https:\/\/docs.ray.io\/en\/latest\/ray-overview\/installation.html<\/p>\n\n<p>There are several scopes:<\/p>\n\n<p>A. If you\u2019re 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>\n\n<pre>pip install -U \"ray\"<\/pre>\n\n<p>B. To run <a href=\"#MLApps\">machine learning apps<\/a>:<\/p>\n\n<pre>pip install -U \"ray[data,train,tune,serve]\"<\/pre>\n\n<p><a name=\"MLApps\"><\/a><\/p>\n\n<p>### Machine Learning Ray Apps<\/p>\n\n<p>Ray consists of a Core distributed runtime plus:<\/p>\n\n<ul>\n  <li>\n    <p>RaySGD - a library for distributed deep learning, which provides wrappers around PyTorch and TensorFlow<\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/docs.ray.io\/en\/latest\/data\/data.html\">data<\/a> - Scalable Datasets for ML<\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/docs.ray.io\/en\/latest\/train\/train.html\">train<\/a> - Distributed Training<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/docs.ray.io\/en\/latest\/serve\/index.html\">serve<\/a> - Scalable and Programmable model-Serving<\/p>\n  <\/li>\n<\/ul>\n\n<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>\n\n<pre>pip install -U \"ray[rllib]\"<\/pre>\n\n<ul>\n  <li>RLib&lt;\/a&gt; -<\/li>\n<\/ul>\n\n<p>C. To run general Python applications:<\/p>\n\n<pre>pip install -U \"ray[default]\"<\/pre>\n\n<ol>\n  <li>Test if the installation was successful:<\/li>\n<\/ol>\n\n<pre>python -m pytest -v python\/ray\/tests\/test_mini.py<\/pre>\n\n<p><a name=\"Monitoring\"><\/a><\/p>\n\n<h2 id=\"monitoring\">Monitoring<\/h2>\n\n<p>Install on every machine and configure for Prometheus.<\/p>\n\n<p>https:\/\/docs.newrelic.com\/docs\/infrastructure\/host-integrations\/host-integrations-list\/ray-integration\/<\/p>\n\n<p><a name=\"Dashboard\"><\/a><\/p>\n\n<h2 id=\"dashboard\">Dashboard<\/h2>\n\n<ul>\n  <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>\n  <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>\n<\/ul>\n\n<ol>\n  <li>Identify the head_ip.<\/li>\n<\/ol>\n\n<p><a name=\"Cluster_Launcher\"><\/a><\/p>\n\n<h2 id=\"cluster-launcher\">Cluster Launcher<\/h2>\n\n<ol>\n  <li>\n    <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\">&gt;example-full.yaml<\/a> to create a Ray cluster with a list of nodes.<\/p>\n  <\/li>\n  <li>\n    <p>Fill in the head_ip, a list of worker_ips, and the ssh_user field.<\/p>\n  <\/li>\n  <li>\n    <p>Test that it works by running the following commands from your local machine:<\/p>\n\n    <pre>\n # Download the example-full.yaml\n wget https:\/\/raw.githubusercontent.com\/ray-project\/ray\/master\/python\/ray\/autoscaler\/local\/example-full.yaml\n\n # Update the example-full.yaml to update head_ip, worker_ips, and ssh_user.\n # vi example-full.yaml\n\n # Create or update the cluster. When the command finishes, it will print\n # out the command that can be used to SSH into the cluster head node.\n ray up example-full.yaml\n\n # Get a remote screen on the head node.\n ray attach example-full.yaml\n # Try running a Ray program.\n\n # Tear down the cluster.\n ray down example-full.yaml\n <\/pre>\n  <\/li>\n<\/ol>\n\n<h2 id=\"ray-serve\">Ray Serve<\/h2>\n\n<p>https:\/\/docs.ray.io\/en\/latest\/ray-overview\/examples\/mcp-ray-serve\/README.html\ndecribes an end-to-end example as a Notebook for running within Google Colab \nto setup within the Anyscale cloud an MCP FastAPI server having a tool to \nserve weather info from the US National Weather Service.<\/p>\n\n<p>Ray\u2019s example specifies older Python versions:<\/p>\n\n<pre>pip install  mcp==1.11.0 asyncio==3.4.3 pydantic==2.9.2<\/pre>\n\n<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>\n\n<ul>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>Observability: Exposes real\u2011time metrics on request rates, resource usage &amp; system health. Built-in monitoring capabilities provide visibility into your service\u2019s performance, including request metrics, resource utilization, and system health indicators.<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>Composition: Chains deployments\u2014pre\u2011process, infer, post\u2011process, and custom logic\u2014into 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>\n  <\/li>\n  <li>\n    <p>Production ready: Enterprise\u2011grade infrastructure management and automated deployments for real\u2011world MCP traffic<\/p>\n  <\/li>\n  <li>\n    <p>Logging and tracing: Comprehensive logs, distributed tracing, and real\u2011time dashboards for end\u2011to\u2011end observability<\/p>\n  <\/li>\n  <li>\n    <p>High availability: Availability\u2011Zone\u2011aware scheduling and zero\u2011downtime rolling updates to maximize uptime<\/p>\n  <\/li>\n  <li>\n    <p>Head node fault tolerance: Managed head\u2011node redundancy to eliminate single points of failure in the Ray cluster coordination layer.<\/p>\n  <\/li>\n  <li>\n    <p>RayTurbo optimizations<\/p>\n  <\/li>\n<\/ul>\n\n<p>01-Deploy_custom_mcp_in_streamable_http_with_ray_serve.ipynb: Deploys a custom Weather MCP server in streamable\u202fHTTP mode behind FastAPI\u202f+\u202fRay\u202fServe, illustrating autoscaling, load\u2011balancing, and end\u2011to\u2011end testing on Anyscale.<\/p>\n\n<p>MCP Python library<\/p>\n\n<p>It uses Podman to deploy MCP tools with existing Docker images for notebooks 3 through 5.<\/p>\n\n<p>A Brave API key set in your environment (BRAVE_API_KEY) for notebooks 3 and 4<\/p>\n\n<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\u2011existing Ray Serve apps under one unified \/mcp endpoint, requiring no code changes in the underlying services.<\/p>\n\n<p>03-Deploy_single_mcp_stdio_docker_image_with_ray_serve.ipynb: Wraps a stdio\u2011only MCP Docker image, for example Brave\u202fSearch, with Ray Serve so it exposes \/tools and \/call HTTP endpoints and scales horizontally without rebuilding the image.<\/p>\n\n<p>04-Deploy_multiple_mcp_stdio_docker_images_with_ray_serve.ipynb: Extends the previous pattern to run several stdio\u2011based MCP images side\u2011by\u2011side, using fractional\u2011CPU deployments and a router to direct traffic to the right service.<\/p>\n\n<p>05-(Optional)_Build_docker_image_for_mcp_server.ipynb: Builds and pushes a lightweight Podman\u2011based Docker image for a Weather MCP server with uv in an Anyscale workspace.<\/p>\n\n<h2 id=\"mcp\">MCP<\/h2>\n\n<p>https:\/\/modelcontextprotocol.io\/specification\/2025-03-26\/basic\/transports#streamable-http<\/p>\n\n<p>SSE (legacy, deprecated): HTTP+Server-Sent events, now deprecated in favor of a unified HTTP transport.<\/p>\n\n<p>Streamable HTTP: A single HTTP endpoint that handles both client\u2192server POSTs and server\u2192client GET\/SSE streams.<\/p>\n\n<p>https:\/\/support.anthropic.com\/en\/articles\/11175166-about-custom-integrations-using-remote-mcp\nintegrate the Claude APP with remote MCP server<\/p>\n\n<h2 id=\"beginner-info\">Beginner Info<\/h2>\n\n<p>https:\/\/www.youtube.com\/watch?v=FhXfEXUUQp0\nBeginner\u2019s Guide to Ray! Ray Explained\nThe Data Guy<\/p>\n\n<p>https:\/\/domino.ai\/blog\/ray-tutorial-for-accessing-clusters<\/p>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/museums-roadtrip-usa\/"}},"id":"https:\/\/wilsonmar.github.io\/museums-roadtrip-usa","published":"2025-10-26T00:00:00+00:00","updated":"2025-10-26T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Visual, architectural, and culinary art in every state and major city, mapped by Machine Learning<\/i><\/p>\n<p align=\"right\">\n<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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fmuseums-roadtrip-usa%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#journeys\" id=\"markdown-toc-journeys\">Journeys<\/a><\/li>\n  <li><a href=\"#references-websites\" id=\"markdown-toc-references-websites\">References (Websites)<\/a><\/li>\n  <li><a href=\"#extreme-corners\" id=\"markdown-toc-extreme-corners\">Extreme corners<\/a><\/li>\n  <li><a href=\"#just-touching-each-state\" id=\"markdown-toc-just-touching-each-state\">Just Touching Each State<\/a><\/li>\n  <li><a href=\"#the-us-rain-shadow-divide\" id=\"markdown-toc-the-us-rain-shadow-divide\">The US Rain Shadow Divide<\/a><\/li>\n  <li><a href=\"#us-interstate-highways\" id=\"markdown-toc-us-interstate-highways\">US interstate highways<\/a><\/li>\n  <li><a href=\"#refueling-and-recharging\" id=\"markdown-toc-refueling-and-recharging\">Refueling and ReCharging<\/a><\/li>\n  <li><a href=\"#taxes\" id=\"markdown-toc-taxes\">Taxes<\/a><\/li>\n  <li><a href=\"#coast-to-coast-trails\" id=\"markdown-toc-coast-to-coast-trails\">Coast-to-Coast Trails<\/a><\/li>\n  <li><a href=\"#us-national-parks\" id=\"markdown-toc-us-national-parks\">US National Parks<\/a><\/li>\n  <li><a href=\"#civil-war-confederates\" id=\"markdown-toc-civil-war-confederates\">Civil War Confederates<\/a><\/li>\n  <li><a href=\"#down-the-atlantic-eastern-seaboard\" id=\"markdown-toc-down-the-atlantic-eastern-seaboard\">Down the Atlantic Eastern Seaboard<\/a><\/li>\n  <li><a href=\"#freedom-ride\" id=\"markdown-toc-freedom-ride\">Freedom Ride<\/a>    <ul>\n      <li><a href=\"#boston\" id=\"markdown-toc-boston\">Boston:<\/a><\/li>\n      <li><a href=\"#cambridge-north-of-boston\" id=\"markdown-toc-cambridge-north-of-boston\">Cambridge (North of Boston):<\/a><\/li>\n      <li><a href=\"#western-mass-turnpike-90\" id=\"markdown-toc-western-mass-turnpike-90\">Western Mass Turnpike 90:<\/a><\/li>\n      <li><a href=\"#northward-mass-up-95\" id=\"markdown-toc-northward-mass-up-95\">Northward Mass up 95:<\/a><\/li>\n      <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>\n      <li><a href=\"#western-mass-up-91\" id=\"markdown-toc-western-mass-up-91\">Western Mass up 91:<\/a><\/li>\n      <li><a href=\"#southern-mass\" id=\"markdown-toc-southern-mass\">Southern Mass:<\/a><\/li>\n      <li><a href=\"#new-york-city-manhattan\" id=\"markdown-toc-new-york-city-manhattan\">New York City (Manhattan)<\/a><\/li>\n      <li><a href=\"#new-york-city-brooklyn\" id=\"markdown-toc-new-york-city-brooklyn\">New York City (Brooklyn)<\/a><\/li>\n      <li><a href=\"#philadelphia\" id=\"markdown-toc-philadelphia\">Philadelphia:<\/a><\/li>\n      <li><a href=\"#pittsburgh\" id=\"markdown-toc-pittsburgh\">Pittsburgh:<\/a><\/li>\n      <li><a href=\"#williamsburg\" id=\"markdown-toc-williamsburg\">Williamsburg:<\/a><\/li>\n      <li><a href=\"#atlanta\" id=\"markdown-toc-atlanta\">Atlanta:<\/a><\/li>\n      <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>\n      <li><a href=\"#south-down-the-east-coast\" id=\"markdown-toc-south-down-the-east-coast\">South down the East coast<\/a><\/li>\n      <li><a href=\"#miami\" id=\"markdown-toc-miami\">Miami:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#down-the-mississippi-river\" id=\"markdown-toc-down-the-mississippi-river\">Down the Mississippi River<\/a>    <ul>\n      <li><a href=\"#chicago\" id=\"markdown-toc-chicago\">Chicago:<\/a><\/li>\n      <li><a href=\"#kansas-city\" id=\"markdown-toc-kansas-city\">Kansas City:<\/a><\/li>\n      <li><a href=\"#st-louis\" id=\"markdown-toc-st-louis\">St. Louis:<\/a><\/li>\n      <li><a href=\"#nashville\" id=\"markdown-toc-nashville\">Nashville:<\/a><\/li>\n      <li><a href=\"#memphis\" id=\"markdown-toc-memphis\">Memphis:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#northward-on-cattle-drives\" id=\"markdown-toc-northward-on-cattle-drives\">Northward on Cattle Drives<\/a><\/li>\n  <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>\n  <li><a href=\"#westward-on-land\" id=\"markdown-toc-westward-on-land\">Westward on land<\/a>    <ul>\n      <li><a href=\"#the-pony-express\" id=\"markdown-toc-the-pony-express\">The Pony Express<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#westward-from-vermont-to-kentucky\" id=\"markdown-toc-westward-from-vermont-to-kentucky\">Westward from Vermont to Kentucky<\/a>    <ul>\n      <li><a href=\"#albanyrochester\" id=\"markdown-toc-albanyrochester\">Albany\/Rochester:<\/a><\/li>\n      <li><a href=\"#adirondacks\" id=\"markdown-toc-adirondacks\">Adirondacks<\/a><\/li>\n      <li><a href=\"#buffalo\" id=\"markdown-toc-buffalo\">Buffalo:<\/a><\/li>\n      <li><a href=\"#detroit\" id=\"markdown-toc-detroit\">Detroit<\/a><\/li>\n      <li><a href=\"#cincinnati\" id=\"markdown-toc-cincinnati\">Cincinnati:<\/a><\/li>\n      <li><a href=\"#cleveland\" id=\"markdown-toc-cleveland\">Cleveland:<\/a><\/li>\n      <li><a href=\"#indianapolis\" id=\"markdown-toc-indianapolis\">Indianapolis:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#down-the-pacific-west-coast\" id=\"markdown-toc-down-the-pacific-west-coast\">Down the Pacific West Coast<\/a>    <ul>\n      <li><a href=\"#spokane\" id=\"markdown-toc-spokane\">Spokane:<\/a><\/li>\n      <li><a href=\"#seattle\" id=\"markdown-toc-seattle\">Seattle:<\/a><\/li>\n      <li><a href=\"#san-francisco-bay\" id=\"markdown-toc-san-francisco-bay\">San Francisco Bay:<\/a><\/li>\n      <li><a href=\"#san-jose\" id=\"markdown-toc-san-jose\">San Jose:<\/a><\/li>\n      <li><a href=\"#santa-barbara-central-coast\" id=\"markdown-toc-santa-barbara-central-coast\">Santa Barbara (Central Coast):<\/a><\/li>\n      <li><a href=\"#west-side-los-angeles\" id=\"markdown-toc-west-side-los-angeles\">West Side, Los Angeles:<\/a><\/li>\n      <li><a href=\"#downtown-los-angeles\" id=\"markdown-toc-downtown-los-angeles\">Downtown Los Angeles:<\/a><\/li>\n      <li><a href=\"#east-los-angeles\" id=\"markdown-toc-east-los-angeles\">East Los Angeles:<\/a><\/li>\n      <li><a href=\"#south-bay-long-beach\" id=\"markdown-toc-south-bay-long-beach\">South Bay, Long Beach:<\/a><\/li>\n      <li><a href=\"#orange-county\" id=\"markdown-toc-orange-county\">Orange County:<\/a><\/li>\n      <li><a href=\"#inland-empire\" id=\"markdown-toc-inland-empire\">Inland Empire:<\/a><\/li>\n      <li><a href=\"#san-diego\" id=\"markdown-toc-san-diego\">San Diego:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#westward-through-northern-states\" id=\"markdown-toc-westward-through-northern-states\">Westward through Northern states<\/a>    <ul>\n      <li><a href=\"#northern-rail\" id=\"markdown-toc-northern-rail\">Northern Rail<\/a><\/li>\n      <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>\n      <li><a href=\"#oregon-trail-to-the-pacific\" id=\"markdown-toc-oregon-trail-to-the-pacific\">Oregon Trail to the Pacific<\/a><\/li>\n      <li><a href=\"#milwaukee\" id=\"markdown-toc-milwaukee\">Milwaukee:<\/a><\/li>\n      <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>\n      <li><a href=\"#minneapolis\" id=\"markdown-toc-minneapolis\">Minneapolis:<\/a><\/li>\n      <li><a href=\"#st-paul\" id=\"markdown-toc-st-paul\">St. Paul:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#westward-through-the-southwest\" id=\"markdown-toc-westward-through-the-southwest\">Westward through the Southwest<\/a>    <ul>\n      <li><a href=\"#route-66\" id=\"markdown-toc-route-66\">Route 66<\/a><\/li>\n      <li><a href=\"#chisolm-trail\" id=\"markdown-toc-chisolm-trail\">Chisolm Trail<\/a><\/li>\n      <li><a href=\"#dallas\" id=\"markdown-toc-dallas\">Dallas:<\/a><\/li>\n      <li><a href=\"#austin\" id=\"markdown-toc-austin\">Austin:<\/a><\/li>\n      <li><a href=\"#houston\" id=\"markdown-toc-houston\">Houston:<\/a><\/li>\n      <li><a href=\"#santa-fe\" id=\"markdown-toc-santa-fe\">Santa Fe:<\/a><\/li>\n      <li><a href=\"#taos\" id=\"markdown-toc-taos\">Taos:<\/a><\/li>\n      <li><a href=\"#denver\" id=\"markdown-toc-denver\">Denver:<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#all-the-sights\" id=\"markdown-toc-all-the-sights\">All the sights<\/a><\/li>\n  <li><a href=\"#technical-footnote\" id=\"markdown-toc-technical-footnote\">Technical Footnote<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p>This page lists where one can visit, see, and eat near the most significant cultural artifacts in America.\nI created this page as a \u201cbucket list\u201d so that even if I can\u2019t 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>\n\n<blockquote>\n  <p>Do you have a road trip map or story? Share it! I\u2019d love to know.<\/p>\n<\/blockquote>\n\n<p><em>NOTE: Content here are my personal opinions, and \nnot intended to represent any employer (past or present).\n\u201cPROTIP:\u201d here highlight information I haven\u2019t seen elsewhere on the internet\nbecause it is hard-won, little-know but significant facts \nbased on my personal research and experience.\n<\/em><\/p>\n\n<h2 id=\"journeys\">Journeys<\/h2>\n\n<p>It\u2019s a large country, so cites are listed by each <a href=\"#CivilWar\">state of the union<\/a>, along natural geography East-to-West:<\/p>\n\n<p>Journeys on water as she flows toward the Equator:<\/p>\n\n<ul>\n  <li><a href=\"#DownEastCoast\"> Down the Atlantic Eastern Seaboard<\/a> (<a href=\"#FreedomRide\">Freedom Ride<\/a>)<\/li>\n  <li><a href=\"#DownMississippi\"> Down the Mississippi River<\/a> (on a riverboat?)<\/li>\n  <li><a href=\"#DownWestCoast\"> Down the Pacific West Coast<\/a><\/li>\n<\/ul>\n\n<p>Journeys Northward on <a href=\"#CattleDrives\">Cattle Drives<\/a> in the 1880s.<\/p>\n\n<p><a href=\"#PanAm\">Journey South down the Pan American Highway<\/a>.<\/p>\n\n<p><a href=\"#Westward\">Journeys Westward on land<\/a> (<a href=\"#PonyExpress\">The Pony Express<\/a>):<\/p>\n\n<ul>\n  <li><a href=\"#WestwardVermont\"> Westward from Vermont to Kentucky<\/a><\/li>\n  <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>\n  <li><a href=\"#Southwestward\"> Westward through the Southwest (on Route 66)<\/a><\/li>\n<\/ul>\n\n<p>BTW, finding where each site is located resulted in a great geography and historical lesson for me.<\/p>\n\n<h2 id=\"references-websites\">References (Websites)<\/h2>\n\n<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>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.hmdb.org\/\">hmdb.org  = Historical Marker Database<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.movie-locations.com\/\">movie-locations.com<\/a><\/li>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/rs.locationshub.com\/Home\/Index?page=1\">locationshub.com\/#featured-filming-locations<\/a><\/li>\n  <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>\n  <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>\n<br \/><br \/><\/li>\n<\/ul>\n\n<h2 id=\"extreme-corners\">Extreme corners<\/h2>\n\n<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>\n\n<ul>\n  <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>\n  <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>\n  <li>SouthEast: <a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Key_West\">Key West, Florida<\/a> (\u201cHome of the Sunset\u201d 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>\n  <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)\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"Google_route_map\"><\/a><\/p>\n\n<h2 id=\"just-touching-each-state\">Just Touching Each State<\/h2>\n\n<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>\n\n<p><a target=\"_blank\" href=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1660661005\/ThomasCannonandJustinMorrisRoute-589x301_g6ygsm.jpg\">\n<img alt=\"6 days\" width=\"750\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1660661005\/ThomasCannonandJustinMorrisRoute-589x301_g6ygsm.jpg\" \/><\/a><\/p>\n\n<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\u2019t stop the <a target=\"_blank\" href=\"https:\/\/allfiftyclub.com\/members\/record-holders-fast-to-50\/\">All Fifty States Club<\/a> website.<\/p>\n\n<h2 id=\"the-us-rain-shadow-divide\">The US Rain Shadow Divide<\/h2>\n\n<blockquote>\n  <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>\n<\/blockquote>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=ki-hoy-3ea8&amp;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\u2019s BlackMarble satellite images of the nigh sky worldwide<\/a>:<br \/>\n<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>\n\n<p>When geologist John Westly Powell identified this phenomenon across the \u201cpairies\u201d in 1890, that natural line was at the 100th Meridian (vs. 98th today).\nSince then, \u201cClimate change\u201d continues to shift to the East. So expect less rain from Winnapeg (Canada) to Forth Worth, Ausin, and San Antonio Texas.\nAlso impacted will be agriculture around Winnipeg (Manitoba, Canada), Fargo, Sioux Falls, Omaha, Lincoln, Wichita, Oklahoma City.<\/p>\n\n<p>That green line down the middle of America defines the extent wet storms reach from the East. West of that is the \u201cRain Shadow\u201d 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>\n\n<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>\n<ul>\n  <li>Ogunquit, Maine<\/li>\n  <li>Portsmouth, New Hampshire<\/li>\n  <li>Nantucket, Massachusetts<\/li>\n  <li>Newport, Rhode Island<\/li>\n  <li>Christmas Village, Philadelphia<\/li>\n  <li>Cape May, New Jersey<\/li>\n  <li>Atlantic City, New Jersey<\/li>\n  <li>\n    <p>New York, New York<\/p>\n  <\/li>\n  <li>Annapolis, Maryland<\/li>\n  <li>Charlottesville, Virginia<\/li>\n  <li>Lewisburg, West Virginia<\/li>\n  <li>Beaufort, North Carolina<\/li>\n  <li>Myrtle Beach, South Carolina<\/li>\n  <li>Natchitoches, Louisiana<\/li>\n  <li>Santa Rosa Beach, Florida\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p><a name=\"freeways\"><\/a><\/p>\n\n<h2 id=\"us-interstate-highways\">US interstate highways<\/h2>\n\n<p>East-west interstate highway numbers end with 0.<br \/>\nNorth-South interstate highway numbers end with 5.<\/p>\n\n<p><img alt=\"East-West\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1660663003\/roadtrip-usa-east-west-hwy_dovluc.jpg\" \/><\/p>\n\n<p><img alt=\"North-South\" src=\"https:\/\/res.cloudinary.com\/dcajqrroq\/image\/upload\/v1660662994\/roadtrip-usa-north-south-hwy_sontf7.jpg\" \/><\/p>\n\n<h2 id=\"refueling-and-recharging\">Refueling and ReCharging<\/h2>\n\n<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 \/>\n<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>\n\n<p>In 2023 Ford and GM agreed to enable their electric cars to use Tesla\u2019s charging ports and stations.<\/p>\n\n<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\u2019s map. She also had to calculate how much further I could go with remaining gas. Somehow we managed to stay married after that.<\/p>\n\n<p><a name=\"taxes\"><\/a><\/p>\n\n<h2 id=\"taxes\">Taxes<\/h2>\n\n<p>No sales tax is collected from residents within the states of Alaska, Delaware, Montana, New Hampshire, and Oregon.\n<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\u2019s home state if the vendor has a presence in the buyer\u2019s home state. Otherwise, out-of-state buyers are required to pay use tax themselves.\nMany don\u2019t 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>\n\n<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\u2019s economy. This typically occurs in August and early September for back-to-school supplies, books, computers, and clothing.<\/p>\n\n<h2 id=\"coast-to-coast-trails\">Coast-to-Coast Trails<\/h2>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=xljpEbTh1ds\/\">VIDEO<\/a>:\nThe 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>\n\n<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>\n\n<p>NERDY TRIVIA: How fast would one need to drive to see a sunset continuously?<br \/>\nIf you were at 89.9 degrees North near a Pole, you could walk across all time zones in the world.<br \/>\nThe formula is: v = circumference * cos(\u03d5) where \u03d5 = latitude.<br \/>\nAt the equator, the circumferance of the earth is 40,075 km, so the earth rotates at\n40,075 km \/ 24 h \u2248 <strong>1670 km\/h (1038 mph)<\/strong>.<br \/>\nAt Denver, Colorado, its 40 degrees latitude = 0.77 radians, so <strong>1279 km\/h (795 mph)<\/strong>.\nSee my Python program that calculates it at \nhttps:\/\/github.com\/wilsonmar\/python-samples\/blob\/main\/sunset-speed.py<\/p>\n\n<h2 id=\"us-national-parks\">US National Parks<\/h2>\n\n<p>Among America\u2019s 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>\n\n<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\" \/>\nThe <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>\n\n<p><a target=\"_blank\" href=\"https:\/\/tbandjtravel.com\/the-u-s-map\/\">One couple visited the most significant parks in this order<\/a>:\n<a target=\"_blank\" href=\"https:\/\/cloud.githubusercontent.com\/assets\/300046\/25560224\/6b14fde6-2d1c-11e7-952e-52e883844808.jpg\">\n<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>\n\n<p><a target=\"_blank\" title=\"Route around the US on Google map\" href=\"https:\/\/wilsonmar.github.io\/US_Landmarks_Roadtrip_v01.html\">\n<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>\n\n<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>\n\n<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>\n\n<p><a name=\"Mighty5\"><\/a><\/p>\n\n<p>Many \u201cWestern\u201d movies were filmed in iconic \u201cMighty 5\u201d parks below Salt Lake City in Utah: <a target=\"_blank\" href=\"https:\/\/www.google.com\/maps\/d\/u\/0\/viewer?msa=0&amp;mid=16KbY2hCvDQEAAPsK6bwyEDjPZyc&amp;ll=37.542383125235986%2C-110.57365010534873&amp;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\u2019ll want to stop and marvel the views at each park:<\/p>\n<ol>\n  <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\u2019s first National Park)<\/li>\n  <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>\n  <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>\n  <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/results?search_query=Arches+national+park++360+4k\">4K 360 VIDEO<\/a>: Arches<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/results?search_query=Canyonlands++360+4k\">4K 360 VIDEO<\/a>: Canyonlands\n   <br \/><br \/><\/li>\n<\/ol>\n\n<p><a name=\"CivilWar\"><\/a><\/p>\n\n<h2 id=\"civil-war-confederates\">Civil War Confederates<\/h2>\n\n<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>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/civilwar\/facts.htm\">\n<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>\n\n<p>The 5 \u201cBorder States\u201d were Maryland, Delaware, West Virginia, Kentucky, and Missouri (where \u201cbrother fought brother\u201d). <a target=\"_blank\" href=\"https:\/\/youtube.com\/shorts\/JuWB9qyVmIs?si=9xw1rg581fglgHYT\">VIDEO<\/a>: Although Kentucky\u2019s 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>\n\n<p>States in white (Oklahoma) did not fight for either side.\nIdaho <a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/Idaho_in_the_American_Civil_War\">\nvolunteers did not fight against the Confederacy<\/a>.\n<a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/Confederate_Arizona\">\nAreas in Arizona and New Mexico were claimed by both sides<\/a>.<\/p>\n\n<hr \/>\n\n<p><a name=\"DownEastCoast\"><\/a><\/p>\n\n<h2 id=\"down-the-atlantic-eastern-seaboard\">Down the Atlantic Eastern Seaboard<\/h2>\n\n<p>This is where the United States of America began as colonies of England.<\/p>\n\n<p><a name=\"FreedomRide\"><\/a><\/p>\n\n<h2 id=\"freedom-ride\">Freedom Ride<\/h2>\n\n<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 \u201cJim Crow\u201d South to test a Supreme Court ruling against \u201cwhites-only\u201d restrooms and lunch counters at bus stations:<\/p>\n\n<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>\n\n<p>The Woolworth lunch counter in downtown Greensboro, NC is now a <a target=\"_blank\" href=\"https:\/\/www.sitinmovement.org\/\">museum<\/a>.<\/p>\n\n<p>The ride stopped on May 14 in Anniston, Alabama where their bus was burnt by segregationists.<\/p>\n\n<hr \/>\n\n<p><a name=\"ME\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Maine <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.bates.edu\/museum\/\">Bates Museum of Art<\/a>, Lewiston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bowdoin.edu\/art-museum\/\">Bowdoin College Museum of Art<\/a>, Brunswick<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.colby.edu\/museum\/\">Colby College Museum of Art<\/a>, Waterville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.farnsworthmuseum.org\/\">Farnsworth Art Museum<\/a>, Rockland<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/umaine.edu\/hudsonmuseum\/\">Hudson Museum at the University of Maine<\/a>, Orono<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.portlandmuseum.org\/\">Portland Museum of Art<\/a><\/li>\n<li><strike>University of Maine Museum of Art<\/strike>, Orono<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mainememory.net\/artifact\/8707\">Artemus Ward House<\/a>, Waterford Maine<\/li>\n<li type=\"circle\">Maple syrup creamies!<\/li>\n<\/ul>\n\n<p><a name=\"NH\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> New Hampshire <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.almagilbert.com\/\">Cornish Colony Gallery and Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sgnhs.org\/\">Saint-Gaudens National Historic Site<\/a>, Cornish<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.currier.org\/\">Currier Gallery of Art<\/a>, Manchester<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/hoodmuseum.dartmouth.edu\/\">Hood Museum of Art<\/a>, Hanover<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.keene.edu\/tsag\/\">Thorne-Sagendorph Art Gallery at Keene State College<\/a><\/li>\n<li>Robert Frost House, Franconia<\/li>\n<\/ul>\n\n<p><a name=\"MA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Massachusettes<\/strong><\/p>\n<\/blockquote>\n\n<h3 id=\"boston\">Boston:<\/h3>\n\n<p>Boston is among the safest large cities in the US.<\/p>\n\n<ul>\n<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>\n<li><a target=\"_blank\" href=\"https:\/\/www.bu.edu\/art\/\">Boston University Art Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bostonathenaeum.org\/\">Boston Athenaeum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.icaboston.org\/\">Institute of Contemporary Art<\/a>, Boston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.gardnermuseum.org\/\">Isabella Stewart Gardner Museum<\/a>, Boston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mfa.org\/\"><strong>Museum of Fine Arts<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mos.org\/planetarium\">Museum of Science and Hayden Planetarium<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/ussconstitutionmuseum.org\/\">USS Constitution Museum<\/a>, Boston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.archives.gov\/presidential-libraries\/visit#\">\nJohn F. Kennedy Presidential Library and Museum<\/a>, Columbia Point, Boston<\/li>\n<\/ul>\n\n<h3 id=\"cambridge-north-of-boston\">Cambridge (North of Boston):<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.harvardartmuseums.org\/\"><strong>Harvard University Art Museums<\/strong><\/a>, Cambridge<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.peabody.harvard.edu\/\">Peabody Museum of Archaeology and Ethnology at Harvard University<\/a>, Cambridge<\/li>\n<li>Fogg Art Museum<\/li>\n<li>MIT Museum<\/li>\n<li>Arthur M. Sackler Museum<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brandeis.edu\/rose\/\">Rose Art Museum at Brandeis University<\/a>, Waltham<\/li>\n<li type=\"square\">Henry Wadsworth Longfellow House, Cambridge, Massachusetts<\/li>\n<\/ul>\n\n<h3 id=\"western-mass-turnpike-90\">Western Mass Turnpike 90:<\/h3>\n\n<ul>\n<li>Edith Wharton's The Mount, Lenox<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museumofbadart.org\/\">Museum of Bad Art<\/a>, Dedham<\/li>\n<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>\n<li><a target=\"_blank\" href=\"https:\/\/www.wellesley.edu\/DavisMuseum\/\">Davis Museum and Cultural Center at Wellesley College<\/a>, in Wellesley, MA<\/li>\n<li><strike>Danforth Museum of Art<\/strike>, Framingham<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.worcesterart.org\/\">Worcester Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.osv.org\/\"><strong>Old Sturbridge Village<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nrm.org\/\"><strong>Norman Rockwell Museum<\/strong><\/a>, Stockbridge<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/artmuseum.mtholyoke.edu\/\">Mount Holyoke College Art Museum<\/a>, South Hadley<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.berkshiremuseum.org\/\">Berkshire Museum<\/a>, Pittsfield<\/li>\n<li type=\"square\">Herman Melville's Arrowhead, Pittsfield<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/springfieldmuseums.org\/\">The Springfield Museums at the Quadrangle<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/springfieldmuseums.org\/about\/dr-seuss-museum\/\">Dr. Seuss Memorial<\/a>, Springfield<\/li>\n<li type=\"square\">Site of Thoreau's Cabin, Walden Pond, Concord<\/li>\n<li type=\"square\">Wayside (home of Nathaniel Hawthorne, Louisa May Alcott, and Margaret Sidney), Concord<\/li>\n<li type=\"square\">Ralph Waldo Emerson Home, Concord<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/louisamayalcott.org\/\">Louisa May Alcott's Orchard House<\/a>, Concord<\/li>\n<\/ul>\n\n<h3 id=\"northward-mass-up-95\">Northward Mass up 95:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.griffinmuseum.org\/\">Griffin Museum of Photography<\/a>, Winchester<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/artgalleries.tufts.edu\/\">Tufts University Gallery<\/a>, Medford<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.whistlerhouse.org\/\">Whistler House Museum Of Art<\/a>, Lowell<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/addison.andover.edu\/\"><strong>Addison Gallery of American Art<\/strong><\/a>, Andover<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pem.org\/\">Peabody Essex Museum<\/a>, Salem<\/li>\n<\/ul>\n\n<h3 id=\"southeast-of-boston-on-3-to-the-tip\">SouthEast of Boston on 3 to the tip:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/fullercraft.org\/\">Fuller Craft Museum<\/a>, Brockton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artcomplex.org\/\">The Art Complex Museum<\/a>, Duxbury<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.plimoth.org\/\">Plimoth Plantation, Plymouth<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pilgrimhall.org\/\">Pilgrim Hall Museum<\/a>, Plymouth<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ccmoa.org\/\">Cape Code Museum of Fine Arts<\/a>, Dennis<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.heritagemuseumsandgardens.org\/\">Heritage Museums and Gardens<\/a>, Sandwich<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.whalingmuseum.org\/\">Kendall Whaling Museum<\/a>, New Bedford<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cahoonmuseum.org\/\">Cahoon Museum of American Art<\/a>, Cotuit<\/li>\n<\/ul>\n\n<h3 id=\"western-mass-up-91\">Western Mass up 91:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.decordova.org\/\">DeCordova Museum and Sculpture Park<\/a>, Lincoln<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.amherst.edu\/~mead\/\">Mead Art Museum at Amherst College<\/a>, Amherst<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.picturebookart.org\/\">Eric Carle Museum of Picture Book Art<\/a>, Amherst<\/li>\n<li>Emily Dickinson's Home, Amherst<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.smith.edu\/artmuseum\/\">Smith College Museum of Art<\/a>, Northampton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.clarkart.edu\/\"><strong>Clark Art Institute<\/strong><\/a>, Williamstown<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wcma.org\/\">Williams College Museum of Art<\/a>, Williamstown<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.massmoca.org\/\">Massachusetts Museum of Contemporary Art<\/a>, North Adams<\/li>\n<\/ul>\n\n<h3 id=\"southern-mass\">Southern Mass:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/attleboroartsmuseum.org\/\">Attleboro Museum and Center for the Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.newbedfordartmuseum.org\/\">New Bedford Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.clarkart.edu\/\">Sterling and Francine Clark Art Institute<\/a>, Williamstown<\/li>\n<\/ul>\n\n<p><a name=\"RI\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Rhode Island <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.brown.edu\/Facilities\/David_Winton_Bell_Gallery\/\">David Winton Bell Gallery at Brown University<\/a>, Providence<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/risdmuseum.org\/\"><strong>Rhode Island School of Design Museum of Art<\/strong><\/a> Providence<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.newportartmuseum.org\/\">Newport Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/americanillustration.org\/\">National Museum of American Illustration<\/a>, Newport<\/li>\n<\/ul>\n\n<p><a name=\"CT\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Connecticut<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.loomischaffee.org\/page.cfm?p=30249\">Mercy Gallery at the Loomis Chaffee School<\/a>, Windsor<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/benton.uconn.edu\/\">Benton Museum of Art at the University of Connecticut<\/a>, Storrs<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.marktwainhouse.org\/\">Mark Twain House and Museum<\/a>, West Hartford [1]<\/li>\n<li>Harriet Beecher Stowe Home, West Hartford<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wadsworthatheneum.org\/\"><strong>Wadsworth Atheneum<\/strong><\/a>, Hartford\n<li><a target=\"_blank\" href=\"https:\/\/www.hillstead.org\/\">Hill-Stead Museum<\/a>, Farmington<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nbmaa.org\/\"><strong>New Britain Museum of American Art<\/strong><\/a><\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.wesleyan.edu\/dac\/\">Davison Art Center at Wesleyan University<\/a>, Middletown<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.flogris.org\/\">Florence Griswold Museum<\/a>, Old Lyme<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/mattatuckmuseum.org\/\">Mattatuck Museum<\/a>, Waterbury<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.norwichfreeacademy.com\/slater_museum\/\">Slater Museum at Norwich Free Academy<\/a><\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/britishart.yale.edu\/\">Yale Center for British Art<\/a>, New Haven<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/artgallery.yale.edu\/\">Yale University Art Gallery<\/a>,  New Haven<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www2.housatonic.edu\/artmuseum\/\">Housatonic Museum of Art<\/a>, Bridgeport<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.aldrichart.org\/\">Aldrich Museum of Contemporary Art<\/a>, Ridgefield<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stamfordmuseum.org\/\">The Stamford Museum and Nature Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brucemuseum.org\/\">Bruce Museum of Arts and Science<\/a>, Greenwich<\/li>\n<\/li>\n<\/ul>\n\n<p><a name=\"NJ\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>New Jersey<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.jerseycitymuseum.org\/\">Jersey City Museum<\/a> across the Hudson from Manhattan<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.newarkmuseum.org\/\">Newark Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.state.nj.us\/state\/museum\/\">New Jersey State Museum<\/a>, Trenton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.zimmerlimuseum.rutgers.edu\/\">Jane Voorhees Zimmerli Art Museum at Rutgers University<\/a>, Brunswick<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.princetonartmuseum.org\/\">Art Museum at Princeton University<\/a>, Princeton<\/li>\n<li type=\"circle\"><a target=\"_blank\" href=\"https:\/\/www.opentable.com\/rats-restaurant-grounds-for-sculpture\">Rats<\/a> [restaurant with gardens]<\/li>\n<br \/>\n<li><a target=\"_blank\" href=\"https:\/\/thebergenmuseum.com\/\">Bergen Museum<\/a>, Hackensack<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.groundsforsculpture.org\/\">Grounds For Sculpture<\/a>, Hamilton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.montclairartmuseum.org\/\">Montclair Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/morrismuseum.org\/\">Morris Museum<\/a>, Morristown<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.noyesmuseum.org\/\">Noyes Museum of Art<\/a>, Oceanville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wheatonvillage.org\/\">Wheaton Village Museum of American Glass<\/a>, Millville<\/li>\n<\/ul>\n\n<p><a name=\"NY\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> New York <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.fdrlibrary.marist.edu\/\">\nFranklin D. Roosevelt Presidential Library and Museum<\/a>, Hyde Park<\/li>\n<\/ul>\n\n<p><a name=\"NYC\"><\/a><\/p>\n\n<h3 id=\"new-york-city-manhattan\">New York City (Manhattan)<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.bxma.org\/\">Bronx Museum of Art<\/a><\/li>\n<li><strong>Metropolitan Museum of Art<\/strong> and the Cloisters<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.alternativemuseum.org\/\">Alternative Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.folkartmuseum.org\/\">American Folk Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.amnh.org\/\">American Museum of Natural History<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/chelseaartmuseum.org\/\">Chelsea Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/ndm.si.edu\/\">Cooper-Hewitt, National Design Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.daheshmuseum.org\/\">Dahesh Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.diacenter.org\/\">Dia Center for the Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.diachelsea.org\/\">Dia: Chelsea<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.icp.org\/\">International Center of Photography<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.thejewishmuseum.org\/\"><strong>Jewish Museum<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/ca80.lehman.cuny.edu\/gallery\/\">Lehman College Art Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.morganlibrary.org\/\">Morgan Library<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.elmuseo.org\/\">El Museo del Barrio<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.africanart.org\/\">Museum for African Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.moma.org\/\"><strong>Museum of Modern Art (MOMA)<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mcny.org\/\"><strong>Museum of the City of New York<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nationalacademy.org\/\">Museum of the National Academy of Design<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nmai.si.edu\/\">National Museum of the American Indian<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.neuegalerie.org\/\">Neue Galerie Museum for German and Austrian Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.newmuseum.org\/\">New Museum of Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nyhistory.org\/\">New-York Historical Society<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.roerich.org\/\">Nicholas Roerich Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.queensmuseum.org\/\">Queens Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.rmanyc.org\/\">Rubin Museum of Art: Art of the Himalayas<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.siiasmuseum.org\/\">Staten Island Institute of Arts and Sciences<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.studiomuseuminharlem.org\/\">Studio Museum in Harlem<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ukrainianmuseum.org\/\">Ukrainian Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.whitney.org\/\"><strong>Whitney Museum of American Art<\/strong><\/a><\/li>\n<li> American Museum of Natural History<\/li>\n<li> Gallery of Modern Art<\/li>\n<li> GONE: Museum of Holography<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.metmuseum.org\/\">Metropolitan Museum of Art (the Met)<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.guggenheim.org\/new_york_index.shtml\"><strong>Guggenheim Museum<\/strong><\/a><\/li>\n<li>Solomon R. Guggenheim Museum, with\n<a target=\"_blank\" href=\"https:\/\/www.Guggenheim.com\/\"> Guggenheim.com<\/a> for motorcycles and\n<a target=\"_blank\" href=\"https:\/\/www.Guggenheim.org\/\">Guggenheim.org<\/a> for environmental art<\/li>\n<li> Museum of the American Indian<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nyu.edu\/greyart\/\">Grey Art Gallery at New York University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.frick.org\/\"> <strong>Frick Collection<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/hispanicsociety.org\/\">Hispanic Society of America<\/a><\/li>\n<\/ul>\n\n<p><a name=\"Brooklyn\"><\/a><\/p>\n\n<h3 id=\"new-york-city-brooklyn\">New York City (Brooklyn)<\/h3>\n\n<p><em>DUMBO = Down Under the Manhattan Bridge Overpass<\/em> is home to 25% of New York based tech firms, including Etsy.\n<a target=\"_blank\" href=\"https:\/\/freetoursbyfoot.com\/things-to-do-dumbo\/\">[tour]<\/a><\/p>\n\n<ul>\n<li> Walk the Brooklyn Bridge<\/li>\n<li type=\"circle\"><a target=\"_blank\" href=\"https:\/\/www.opentable.com\/river-cafe-brooklyn\">River Cafe<\/a> (Jackets required of men) <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brooklynmuseum.org\/\">Brooklyn Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brooklynx.org\/rotunda\/default.asp\">Rotunda Gallery<\/a><\/li>\n<\/ul>\n\n<p><a name=\"PA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Pennsylvania<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.allentownartmuseum.org\/\">Allentown Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lvc.edu\/gallery\/\">Arnold Art Gallery at Lebanon Valley College<\/a>, Annville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.barnesfoundation.org\/\">Barnes Foundation<\/a>, Merion<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brandywinemuseum.org\/\">Brandywine River Museum<\/a>, Chadds Ford<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.demuth.org\/\">Charles Demuth Foundation and Museum<\/a>, Lancaster<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.erieartmuseum.org\/\">Erie Art Museum<\/a>, Erie<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/Everhart-Museum.org\/\">Everhart Museum<\/a>, Scranton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.glencairnmuseum.org\/\">Glencairn Museum<\/a>, Bryn Athyn<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.michenerartmuseum.org\/\">James Michener Art Museum<\/a>, Doylestown<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/services.juniata.edu\/museum\/\">Juniata College Museum of Art<\/a>, Huntingdon<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.psu.edu\/dept\/palmermuseum\/\">Palmer Museum of Art at Pennsylvania State University<\/a>, University Park<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.readingpublicmuseum.org\/\">Reading Public Museum<\/a>, Reading<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bucknell.edu\/SamekArtGallery\/\">Samek Art Gallery at Bucknell University<\/a>, Lewisburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sama-art.org\/\">Southern Alleghenies Museum of Art<\/a>, Johnstown<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.statemuseumpa.org\/\">State Museum of Pennsylvania<\/a>, Harrisburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.widener.edu\/?pageId=60\">Widener University Art Gallery and Collection<\/a>, Chester<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.rrmuseumpa.org\/\">Railroad Museum of Pennsylvania<\/a>, Ronks (Lancaster)<\/li>\n<\/ul>\n\n<p><a name=\"Philadelphia\"><\/a><\/p>\n\n<h3 id=\"philadelphia\">Philadelphia:<\/h3>\n\n<ul>\n<li> Franklin Institute Science Museum<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/muttermuseum.org\/\">M\u00fctter Museum<\/a> [weird] 19 S. 22nd St.  19103<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.libertymuseum.org\/\"><strong>National Liberty Museum<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pafa.org\/\">Pennsylvania Academy of the Fine Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.thegalleriesatmoore.org\/\">Moore College of Art and Design Galleries<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museum.upenn.edu\/\">University of Pennsylvania Museum of Archaeology and Anthropology<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.tju.edu\/eakins\/\">The Eakins Gallery at Thomas Jefferson University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lasalle.edu\/services\/art-mus\/\">La Salle University Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.icaphila.org\/\">Institute of Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.arthurrossgallery.org\/\">Arthur Ross Gallery at the University of Pennsylvania<\/a><\/li>\n<li>Academy of Natural Sciences<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.rosenbach.org\/main.html\">Rosenbach Museum and Library<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.philamuseum.org\/\"><strong>Philadelphia Museum of Art<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.rodinmuseum.org\/\">Rodin Museum at the Philadelphia Museum of Art<\/a><\/li>\n<li> Barnes Foundation Collection, Merion<\/li>\n<li> Museum of American Art<\/li>\n<li> University Museum of Archaeology and Anthropology<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.woodmereartmuseum.org\/\">Woodmere Art Museum<\/a><\/li>\n<br \/>\n<li type=\"circle\">Ristorante Pesto<\/li>\n<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>\n<li type=\"circle\">Zahav restaurant of Israeli cuisine, Philadelphia<\/li>\n<\/ul>\n\n<p><a name=\"Pittsburgh\"><\/a><\/p>\n\n<h3 id=\"pittsburgh\">Pittsburgh:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.cmoa.org\/\">Carnegie Museum of Art<\/a><\/li>\n<!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"scripts\/allr.pl?&c=c&search=11063\"><font COLOR=\"#FF0000\">Posters from this museum<\/font><\/a><\/li -->\n<li><a target=\"_blank\" href=\"https:\/\/www.warhol.org\/\">Andy Warhol Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.frickart.org\/home\/\">Frick Art and Historical Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mattress.org\/\">Mattress Factory Museum of Contemporary Art<\/a><\/li>\n<li> Carnie Museum of Natural History<\/li>\n<\/ul>\n\n<p><a name=\"DE\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Delaware<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.biggsmuseum.org\/\">Biggs Museum of American Art<\/a>, Dover<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.delart.org\/\">Delaware Art Museum<\/a>, Wilmington<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museums.udel.edu\/\">University of Delaware Gallery<\/a>, Newark<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.winterthur.org\/\">Winterthur Museum, Garden and Library<\/a><\/li>\n<\/ul>\n\n<p><a name=\"MD\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Maryland<\/strong><\/p>\n<\/blockquote>\n\n<p>Baltimore had the #3 rate of crime among all cities in the US (2,027\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.art-academy.org\/\">Academy Art Museum<\/a>, Easton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.africanartmuseum.org\/\">African Art Museum of Maryland<\/a>, Columbia<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.avam.org\/\">American Visionary Art Museum<\/a>, Baltimore<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artgallery.umd.edu\/\">Art Gallery at the University of Maryland<\/a>, College Park<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artbma.org\/\"><strong>Baltimore Museum of Art<\/strong><\/a><\/li>\n<!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"scripts\/allr.pl?&c=c&search=11069\"><font COLOR=\"#FF0000\">Posters from this museum<\/font><\/a><\/li -->\n<li><a target=\"_blank\" href=\"https:\/\/www.contemporary.org\/\">Contemporary Museum<\/a>, Baltimore<\/li>\n<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>\n<li><a target=\"_blank\" href=\"https:\/\/www.thewalters.org\/\"><strong>Walters Art Gallery<\/strong><\/a>, Baltimore<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wardmuseum.org\/\">Ward Museum of Wildfowl Art<\/a>, Salisbury<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.washcomuseum.org\/\">Washington County Museum of Fine Arts<\/a>, Hagerstown<\/li>\n<\/ul>\n\n<p><a name=\"DC\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Washington DC<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li> Dumbarton Oaks Collection<\/li>\n<li> Freer Gallery of Art<\/li>\n<li> National Air and Space Museum<\/li>\n<li> <a target=\"_blank\" href=\"https:\/\/www.nara.gov\/\">National Archives<\/a>, 700 Pennsylvania Ave. 202-357-5000\nSee the US Constitution, Bill of Rights and the Declaration of Independence.\nBut 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>\n<li><a target=\"_blank\" href=\"https:\/\/www.si.edu\/organiza\/museums\/artsack\/start.htm\">\nThe Smithsonian Institution: The Freer Gallery of Art and The Arthur M. Sackler Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.asia.si.edu\/\"><strong>Sackler\/Freer Galleries<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museum.oas.org\/\">Art Museum of the Americas<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.corcoran.org\/\"><strong>Corcoran Gallery of Art<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.gwu.edu\/~dimock\/\">Dimock Gallery at George Washington University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.doaks.org\/\">Dumbarton Oaks Research Library and Collection<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hillwoodmuseum.org\/\">Hillwood Museum and Gardens<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/hirshhorn.si.edu\/\"><strong>Hirshhorn Museum and Sculpture Garden<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.howard.edu\/library\/art@Howard\/\">Howard University Gallery of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.kreegermuseum.com\/\">Kreeger Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nga.gov\/home.htm\"><strong>U.S. National Gallery of Art<\/strong><\/a><\/li>\n<!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"scripts\/allr.pl?&c=c&search=11007\"><font COLOR=\"#FF0000\">Posters from this museum<\/font><\/a><\/li -->\n<li><a target=\"_blank\" href=\"https:\/\/www.nmafa.si.edu\/\">National Museum of African Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/americanart.si.edu\/\"><strong>Smithsonian American Art Museum<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nmwa.org\/\"><strong>National Museum of Women in the Arts<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.npg.si.edu\/\"><strong>National Portrait Gallery<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.aoc.gov\/the-national-statuary-hall-collection\">National Statuary Hall<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.phillipscollection.org\/\"><strong>Phillips Collection<\/strong><\/a> 1600 21st Street, NW 20009 Closed Mondays <\/li>\n<!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"scripts\/allr.pl?&c=c&search=11046\"><font COLOR=\"#FF0000\">Posters from this museum<\/font><\/a><\/li -->\n<li><a target=\"_blank\" href=\"https:\/\/www.si.edu\/\"><strong>Smithsonian Institution<\/strong><\/a><\/li>\n<!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"scripts\/allr.pl?&c=c&search=11791\"><font COLOR=\"#FF0000\">Posters from this museum<\/font><\/a><\/li -->\n<li><a target=\"_blank\" href=\"https:\/\/www.textilemuseum.org\/\">Textile Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uschs.org\/04_history\/subs_collection\/04b.html\">U.S. Capital Art Collection<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.history.navy.mil\/branches\/nhcorg6.htm\">U.S. Navy Art Collection<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ushmm.org\/\">\nUS 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>\n<li type=\"square\"><a target=\"_blank\" href=\"https:\/\/www.whitehouse.gov\/\">White House<\/a>, 1900 Pennsylvania Avenue<\/li>\n<\/ul>\n\n<p><a name=\"WA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>West Virginia<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.hmoa.org\/\">Huntington Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/members.aol.com\/wvmuseumofglass\/\">West Virginia Museum of American Glass<\/a>, Weston<\/li>\n<\/ul>\n\n<p><a name=\"VA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Virginia<\/strong><\/p>\n<\/blockquote>\n\n<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>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.pubinfo.vcu.edu\/artweb\/gallery\/\">Anderson Gallery at the VCU School for the Arts<\/a>, Richmond<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artmuseumroanoke.org\/\">Art Museum of Western Virginia<\/a>, Roanoke<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.umw.edu\/belm\/\">Belmont, The Gari Melchers Estate and Memorial Gallery<\/a>, Fredericksburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.chrysler.org\/\">Chrysler Museum<\/a>, Norfolk<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hamptonu.edu\/museum\/\">Hampton University Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hermitagefoundation.org\/\">Hermitage Foundation Museum<\/a>, Norfolk<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lynchburgarts.com\/\">Lynchburg Fine Arts Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/maiermuseum.rmwc.edu\/\">Maier Museum of Art at Randolph-Macon Woman's College<\/a>, Lynchburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/xroads.virginia.edu\/~MUSEUM\/front.html\">Museum for American Studies at the University of Virginia<\/a>, Charlottesville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.virginia.edu\/artmuseum\/\">University of Virginia Art Museum<\/a>, Charlottesville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artgallery.sbc.edu\/\">Sweet Briar College Art Galleries<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.richmond.edu\/cultural\/museums\/\">University of Richmond Museums<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.vmfa.state.va.us\/\">Virginia Museum of Fine Arts<\/a>, Richmond<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wkrac.org\/\">William King Regional Arts Center<\/a>, Abingdon<\/li>\n<\/ul>\n\n<p><a name=\"Williamsburg\"><\/a><\/p>\n\n<h3 id=\"williamsburg\">Williamsburg:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.wm.edu\/muscarelle\/\">Muscarelle Museum of Art at the College of William and Mary<\/a><\/li>\n<li> Abby Aldrich<\/li>\n<li> Rockefeller Folk Art Collection<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.colonialwilliamsburg.org\/\">Colonial Williamsburg Villege<\/a> reenacts 18th centry American village<\/li>\n<\/ul>\n\n<p><a name=\"NC\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>North Carolina<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/ashevilleart.org\/\">Asheville Art Museum<\/a><\/li>\n<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>\n<li type=\"circle\">In Asheville, the fanciest McDonald's in America (with a piano and fireplace)<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.ackland.org\/\">Ackland Art Museum at the University of North Carolina<\/a>, Chapel Hill<\/li>\n<li type=\"circle\">Lantern restaurant, Chapel Hill<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.duke.edu\/web\/duma\/\">Duke University Museum of Art<\/a>, Durham<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.guilford.edu\/original\/libraryart\/artgallery\/Art.html\">Guilford College Art Gallery<\/a>, Greensboro<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.hickorymuseumofart.org\/\">Hickory Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mintmuseum.org\/\">Mint Museum of Art<\/a>, Charlotte<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.ncmoa.org\/\">North Carolina Museum of Art, Raleigh<\/a><\/li>\n<!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"scripts\/allr.pl?&c=c&search=11248\"><font COLOR=\"#FF0000\">Posters from this museum<\/font><\/a><\/li -->\n<li><a target=\"_blank\" href=\"https:\/\/www.camnc.org\/\">Contemporary Art Museum<\/a>, Raleigh<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ncsu.edu\/gad\/\">North Carolina State University Gallery of Art and Design<\/a>, Raleigh<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.reynoldahouse.org\/\">Reynolda House Museum of American Art<\/a>, Winston-Salem<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.secca.org\/\">Southeastern Center for Contemporary Art (SECCA)<\/a>, Winston-Salem<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wfu.edu\/academics\/art\/main.htm\">Wake Forest University Art Collections<\/a>, Winston-Salem<\/li>\n<\/ul>\n\n<p><a name=\"SC\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>South Carolina<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.bjumg.org\/\">Bob Jones University Museum and Gallery<\/a>, Greenville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.greenvillemuseum.org\/\">Greenville County Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.colmusart.org\/\">Columbia Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museum.state.sc.us\/\">South Carolina State Museum<\/a>, Columbia<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.gibbesmuseum.org\/\">Gibbes Museum of Art<\/a>, Charleston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brookgreen.org\/bridge.html\">Huntington Sculpture Garden<\/a>, Pawleys Island<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.spartanburgartmuseum.org\/\">Spartanburg County Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/fosu\/\">Fort Sumter National Monument<\/a>, Sullivan's Island<\/li>\n<li type=\"circle\">FIG restaurant, Charleston<\/li>\n<li type=\"circle\">Husk restaurant (Southern food), Charleston<\/li>\n<\/ul>\n\n<p><a name=\"GA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Georgia<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.albanymuseum.com\/\">Albany Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.boothmuseum.org\/\">Booth Western Art Museum<\/a>, Cartersville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.columbusmuseum.com\/\">Columbus Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uga.edu\/gamuseum\/\">Georgia Museum of Art at the University of Georgia<\/a>, Athens<\/li>\n<\/ul>\n\n<p><a name=\"Atlanta\"><\/a><\/p>\n\n<h3 id=\"atlanta\">Atlanta:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/carlos.emory.edu\/\">Carlos Museum at Emory University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.worldofcoca-cola.com\/\">World of Coca Cola<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.high.org\/\">High Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/museum.oglethorpe.edu\/\">Oglethorpe University Museum<\/a>, Atlanta<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.jimmycarterlibrary.gov\/\">Jimmy Carter Presidential Library and Museum<\/a>, Atlanta<\/li>\n<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>\n<\/ul>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.themorris.org\/\">Morris Museum of Art<\/a>, Augusta<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.telfair.org\/\">Telfair Museum of Art<\/a>, Savannah<\/li>\n<li type=\"circle\">The Grey, Savannah<\/li>\n<\/ul>\n\n<p><a name=\"FL\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Florida<\/strong><\/p>\n<\/blockquote>\n\n<h3 id=\"st-petersberg-northwest-on-75-up-the-gulf-coast\">St. Petersberg Northwest on 75 up the Gulf coast<\/h3>\n\n<ul>\n<li type=\"square\"><a target=\"_blank\" href=\"https:\/\/www.ringling.org\/\">John and Mable Ringling Museum of Art<\/a>, Sarasota<\/li>\n<li type=\"square\"> Fort Myers Edison Winter Home<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.tampagov.net\/dept_Museum\/\">Tampa Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/cam.arts.usf.edu\/\">University of South Florida Contemporary Art Museum<\/a>, Tampa<\/li>\n<li type=\"circle\">Bern's Steak House, Tampa<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/floridamuseum.org\/\">Florida International Museum<\/a>, St. Petersburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fine-arts.org\/\">Museum of Fine Arts<\/a>, St. Petersburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/salvadordalimuseum.org\/\">Salvador Dal&iacute; Museum<\/a>, St. Petersburg<\/li>\n<li> Florida State Museum, Gainsville <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.harn.ufl.edu\/\">Harn Museum at the University of Florida<\/a>, Gainesville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.appletonmuseum.org\/\">Appleton Museum of Art<\/a>, Ocala\n<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.thebrogan.org\/\">Mary Brogan Museum of Art and Science<\/a>, Tallahassee<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pensacolamuseumofart.org\/\">Pensacola Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mofa.fsu.edu\/\">Florida State University Museum of Fine Arts<\/a>, Tallahassee<\/li>\n<li target=\"_blank\" href=\"https:\/\/www.kennedyspacecenter.com\/\">NASA Kennedy Center, Merritt Island<\/li>\n<\/ul>\n\n<h3 id=\"south-down-the-east-coast\">South down the East coast<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.cummer.org\/\">Cummer Museum of Art and Gardens<\/a>, Jacksonville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.jmoma.org\/\">Jacksonville Museum of Modern Art<\/a><\/li>\n\n<li>St. Augustine?<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ormondartmuseum.org\/\">Ormond Memorial Art Museum and Gardens<\/a>, Ormond Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.moas.org\/\">Museum of Arts and Sciences<\/a>, Daytona Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.smponline.org\/\">Southeast Museum of Photography<\/a>, Daytona Beach<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.rollins.edu\/cfam\/\">Cornell Fine Arts Museum at Rollins College<\/a>, Winter Park<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.morsemuseum.org\/\">Morse Museum of American Art<\/a>, Winter Park<\/li>\n<li>Disneyworld EPCOT, Orlando<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/omart.org\/\">Orlando Museum of Art<\/a><\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.artandscience.org\/\">Brevard Museum of Art and Science<\/a>, Melbourne<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.vbmuseum.org\/\">Vero Beach Museum of Art<\/a><\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/cartoon.org\/\">International Museum of Cartoon Art<\/a>, Boca Raton<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/mods.org\/visit\/\">Museum of Discovery and Science<\/a>, Fort Lauderdale<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.palmbeachica.org\/\">Palm Beach Institute of Contemporary Art<\/a>, Lake Worth<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hibel.com\/museum.htm\">Hibel Museum of Art<\/a>, Lake Worth<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.morikami.org\/\">Morikami Museum and Japanese Gardens<\/a>, Delray Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.polkmuseumofart.org\/\">Polk Museum of Art<\/a>, Lakeland<\/li>\n\n<\/ul>\n\n<p><a name=\"Miami\"><\/a><\/p>\n\n<h3 id=\"miami\">Miami:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.latinartmuseum.org\/\">Miami Art Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.miamiartmuseum.org\/\">Miami Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mocanomi.org\/\">Museum of Contemporary Art (MoCA)<\/a>, North Miami<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fiu.edu\/~museum\/\">Art Museum at Florida International University<\/a>, Miami<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bassmuseum.org\/\">Bass Museum of Art<\/a>, Miami Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.vizcayamuseum.org\/\">Vizcaya Museum and Gardens<\/a>, Miami<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wolfsonian.fiu.edu\/\">The Wolfsonian at Florida International University<\/a>, Miami Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bocamuseum.org\/\">Boca Raton Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.norton.org\/\"><strong>Norton Museum of Art<\/strong><\/a>, West Palm Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lowemuseum.com\/\">Lowe Art Museum at the University of Miami<\/a>, Coral Gables<\/li>\n<br \/>\n<li><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/ever\/planyourvisit\/svdirections.htm\">Shark Valley Observation Tower<\/a>, E of Miami<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.trumanlittlewhitehouse.com\/\">Harry S. Truman Little White House<\/a>, Key West<\/li>\n<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>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"DownMississippi\"><\/a><\/p>\n\n<h2 id=\"down-the-mississippi-river\">Down the Mississippi River<\/h2>\n\n<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\u2019s part of the largest watershed in the world.<br \/>\n<img alt=\"us-watershedbg\" width=\"650\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/300046\/25560325\/ff5f8ab4-2d1e-11e7-9b96-f34d6aa0d902.jpg\" \/><\/a>\n<br \/>\n<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=BubAF7KSs64&amp;t=3m2s\">VIDEO<\/a>: \u201cIt\u2019s inevitable that the US emerged as a global superpower\u201d: 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 \/>\n<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>\n<br \/><br \/>\nIt 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 \u201cAmerica Heartland\u201d cruise between St. Louis and to St. Paul (waterfalls at the head of the Mississipi):<br \/>\n<img width=\"377\" alt=\"roadtrip-usa-viking.png\" src=\"https:\/\/user-images.githubusercontent.com\/300046\/90310441-86796580-deae-11ea-8738-2ac6e5bf7669.png\" \/><\/a>\n<br \/>\nCruise on a riverboat between New Orleans and Memphis, with stops in the Vicksburg battlegrounds.\non <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 \u201cAmerican Countess\u201d<\/a>.\n<br \/><br \/><\/p>\n\n<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>\n\n<p><a name=\"IL\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Illinois <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.blockmuseum.northwestern.edu\/\">Block Museum of Art at Northwestern University<\/a>, Evanston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.elmhurstartmuseum.org\/\">Elmhurst Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.art.uiuc.edu\/galleries\/kam\/\">Krannert Art Museum<\/a>, Champaign<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cedarhurst.org\/\">The Mitchell Museum and Cedarhurst Sculpture Park<\/a>, Mt. Vernon<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.niu.edu\/artmuseum\/\">Northern Illinois University Art Museum<\/a>, DeKalb<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.rockfordartmuseum.org\/\">Rockford Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museum.siu.edu\/\">Southern Illinois University Museum<\/a>, Carbondale<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.eiu.edu\/~tarble\/\">Tarble Arts Center at Eastern Illinois University<\/a>, Charleston<\/li>\n<\/ul>\n\n<p><a name=\"Chicago\"><\/a><\/p>\n\n<h3 id=\"chicago\">Chicago:<\/h3>\n\n<p>Chicago had the #20 rate of crime among all cities in the US (1,099\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/mcachicago.org\/Home\"> Museum of Contemporary Art (MCA)<\/a>, Chicago<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artic.edu\/aic\/\"><strong>Art Institute of Chicago<\/strong><\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/museums.depaul.edu\/artwebsite\/\">DePaul University Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.dusablemuseum.org\/\">DuSable Museum of African American History<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/darcy.luc.edu\/\">Martin D'Arcy Museum of Art at Loyola University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mfacmchicago.org\/\">Mexican Fine Arts Center Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mcachicago.org\/\">Museum of Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mocp.org\/\">Museum of Contemporary Photography at Columbia College<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nvvam.org\/\">National Vietnam Veterans Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/oi.uchicago.edu\/OI\/MUS\/OI_Museum.html\">Oriental Institute Museum at the University of Chicago<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/smartmuseum.uchicago.edu\/\">Smart Museum of Art at the University of Chicago<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uima-art.org\/\">Ukrainian Institute of Modern Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.obamalibrary.gov\/\">Barack Obama Presidential Library<\/a>, Hoffman Estates<\/li>\n<li type=\"square\"><a target=\"_blank\" href=\"https:\/\/www.farnsworthhouse.org\/\">Farnsworth House (1951)<\/a>, 14520 River Road, Plano, IL 60545<\/li>\n<br \/>\n<li type=\"circle\">Purple Pig<\/li>\n<li type=\"circle\"><a target=\"_blank\" href=\"https:\/\/www.zahavrestaurant.com\/\">Zahav<\/a> [Israeli restaurant]<\/li>\n<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>\n<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>\n<li type=\"circle\"><a target=\"_blank\" href=\"https:\/\/www.thedailymeal.com\/red-apple-1\">Red Apple Buffet<\/a><\/li>\n<li type=\"circle\"><a target=\"_blank\" href=\"https:\/\/www.alinearestaurant.com\/\">Alinea<\/a> (3-star Michelin &amp; rated the Best Restaurant in the US)<\/li>\n<\/ul>\n\n<p><a name=\"MO\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Missouri <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.trumanlibrary.org\/\">\nHarry S. Truman Presidential Library and Museum<\/a>, Independence<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cmc.edu\/ashby\/\">Ashby-Hodge Gallery of American Art<\/a>, Fayette<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.daummuseum.org\/\">Daum Museum of Contemporary Art<\/a>, Sedalia<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mham.org\/\">Margaret Harwell Art Museum<\/a>, Poplar Bluff<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/museum.research.missouri.edu\/\">Museum of Art and Archaeology at the University of Missouri<\/a>, Columbia<\/li>\n<li>Mark Twain Museum, Hanibal<\/li>\n<\/ul>\n\n<p><a name=\"KC\"><\/a><\/p>\n\n<h3 id=\"kansas-city\">Kansas City:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.albrecht-kemper.org\/\">Albrecht-Kemper Museum of Art<\/a>, St. Joseph<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.kemperart.org\/\">Kemper Museum of Contemporary Art and Design<\/a>, Kansas City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nelson-atkins.org\/\"><strong>Nelson-Atkins Museum of Art<\/strong><\/a>, Kansas City<\/li>\n<\/ul>\n\n<p><a name=\"StLouis\"><\/a><\/p>\n\n<h3 id=\"st-louis\">St. Louis:<\/h3>\n\n<p>St. Louis had the #1 rate of crime among all cities in the US (2,082\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.contemporarystl.org\/\">Contemporary Art Museum St. Louis<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/kemperartmuseum.wustl.edu\/\">Mildred Lane Kemper Art Museum at Washington University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.laumeier.org\/\">Laumeier Sculpture Park<\/a>, <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.umsl.edu\/~woodcock\/\">Woodcock Museum<\/a>, <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pulitzerarts.org\/\">Pulitzer Foundation for the Arts<\/a>, <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sheldonconcerthall.org\/galleries.asp\">Sheldon Art Galleries<\/a>, <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.slam.org\/\">Saint Louis Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/sluma.slu.edu\/\">Saint Louis University Museum of Art<\/a><\/li>\n<\/ul>\n\n<p><a name=\"TN\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Tennessee <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/cass.etsu.edu\/museum\/\">Carroll Reece Museum at East Tennessee State University<\/a>, Johnson City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.huntermuseum.org\/\">Hunter Museum of American Art<\/a>, Chattanooga<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.knoxart.org\/\">Knoxville Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/mcclungmuseum.utk.edu\/\">McClung Museum at the University of Tennesse<\/a>, Knoxville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.dollywood.com\/\">Dollywood<\/a> (amusement park), Pigeon Forge<\/li>\n<li type=\"circle\">The Barn at Blackberry Farm, Walland, Tennessee<\/li>\n<\/ul>\n\n<p><a name=\"Nashville\"><\/a><\/p>\n\n<h3 id=\"nashville\">Nashville:<\/h3>\n\n<p>Nashville had the #16 rate of crime among all cities in the US (1,138\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.cheekwood.org\/art.html\">Cheekwood Museum of Art<\/a>, Nashville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.parthenon.org\/\">The Parthenon<\/a>, Nashville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.tnmuseum.org\/\">Tennessee State Museum<\/a>, Nashville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/sitemason.vanderbilt.edu\/gallery\">Vanderbilt University Fine Arts Gallery<\/a>, Nashville<\/li>\n<\/ul>\n\n<p><a name=\"Memphis\"><\/a><\/p>\n\n<h3 id=\"memphis\">Memphis:<\/h3>\n\n<p>Memphis had the #4 rate of crime among all cities in the US (2,003\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.people.memphis.edu\/~artmuseum\/amhome.html\">Art Museum of the University of Memphis<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.dixon.org\/\">Dixon Gallery and Gardens<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brooksmuseum.org\/\">Memphis Brooks Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.memphis.edu\/egypt\/\">University of Memphis Institute of Egyptian Art and Archaeology<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.graceland.com\/\">Elvis Prestly's Graceland<\/a><\/li>\n<li>Sun Records<\/li>\n<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>\n<\/ul>\n\n<p><a name=\"AR\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Arkansas <\/strong><\/p>\n<\/blockquote>\n\n<p>Little Rock had the #5 rate of crime among all cities in the US (1,634\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.garvangardens.org\/\">Anthony Chapel in Garvan Woodland Gardens at U of Arkansas<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/crystalbridges.org\/\"><strong>Crystal Bridges Museum of American Art<\/strong><\/a>, Bentonville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ozarkheritage.org\/\">Ozark Heritage Arts Center and Museum<\/a>, Leslie<\/li>\n<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>\n<li><a target=\"_blank\" href=\"https:\/\/www.clintonlibrary.gov\/\">Clinton Presidential Library and Museum<\/a>, Little Rock<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.arkansasstateparks.com\/toltecmounds\/\">Toltec Mounds<\/a>, Scott [site]<\/li>\n<\/ul>\n\n<p><a name=\"MS\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Mississippi <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.georgeohr.org\/\">George E. Ohr Arts and Cultural Center<\/a>, Biloxi<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lrma.org\/\">Lauren Rogers Museum of Art<\/a>, Laurel<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.msmuseumart.org\/\">Mississippi Museum of Art<\/a>, Jackson<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.olemiss.edu\/depts\/classics\/museums.html\">University Museums at the University of Mississippi<\/a>, Oxford<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.walterandersonmuseum.org\/\">Walter Anderson Museum of Art<\/a>, Ocean Springs<\/li>\n<\/ul>\n\n<p><a name=\"LA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Louisiana <\/strong><\/p>\n<\/blockquote>\n\n<p><a name=\"NewOrleans\"><\/a><\/p>\n\n<p>New Orleans had the #18 rate of crime among all cities in the US (1,121\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.themuseum.org\/\">Alexandria Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cacno.org\/\">Contemporary Arts Center New Orleans<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/lsm.crt.state.la.us\/\">Louisiana State Museum<\/a>, New Orleans<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mardigrasworld.com\/\">Mardi Gras World<\/a>, New Orleans<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/appl003.lsu.edu\/museum\/moa.nsf\/index\/\">Louisiana State University Museum of Art<\/a>, Baton Rouge<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.centenary.edu\/meadows\/\">Meadows Museum of Art at Centenary College<\/a>, Shreveport<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.noma.org\/\">New Orleans Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.softdisk.com\/comp\/norton\/\">R.W. Norton Art Gallery<\/a>, Shreveport<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ogdenmuseum.org\/\">Ogden Museum of Southern Art<\/a>, New Orleans<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.crt.state.la.us\/dataprojects\/archaeology\/povertypoint\/mound-a.html\">Mounds at Poverty Point<\/a><\/li>\n<li> Delgado Museum of Art<\/li>\n<li> Louisiane State Museum<\/li>\n<\/ul>\n\n<p><a name=\"AL\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Alabama <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.hsvmuseum.org\/\">Huntsville Museum of Art<\/a><\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.ARTSbma.org\/\">Birmingham Museum of Art<\/a><\/li>\n<li type=\"circle\">Highlands Bar &amp; Grill, Birmingham<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.fineartsmuseum.com\/\">Montgomery Museum of Fine Arts<\/a><\/li>\n<li type=\"center\">Acre, Auburn<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.asama.org\/\">American Sport Art Museum and Archives<\/a>, Daphne<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wiregrassmuseumoart.org\/\">Wiregrass Museum of Art<\/a>, Dothan<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mobilemuseumofart.com\/\">Mobile Museum of Art<\/a><\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"CattleDrives\"><\/a><\/p>\n\n<h2 id=\"northward-on-cattle-drives\">Northward on Cattle Drives<\/h2>\n\n<p>The <a target=\"_blank\" href=\"https:\/\/www.paramountplus.com\/shows\/1883\/\">TV series \u201c1883\u201d<\/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\u2019s Store<\/a> Red River Crossing, established 1878 along the Western Trail to Dodge City, Kansas where trains carried cattle East.<\/p>\n\n<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>\n\n<p>In 1881 the Doan\u2019s Cross reached a peak of 301,000 cattle driven by to Kansas shipping points. This was before the \u201cChisolm Trail\u201d.<\/p>\n\n<p>In 1884 an annual picnic, celebrating the cattle drives and cowboy tradition, began near Doan\u2019s Store.<\/p>\n\n<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>\n\n<p>The <a target=\"_blank\" href=\"https:\/\/www.wikiwand.com\/en\/Lonesome_Dove_(miniseries)\">TV series \u201cLonesome Dove\u201d<\/a>, is set in late 1870s. Just like the \u201c1883\u201d TV series, it is also about cowboys seeking to drive cattle North to settle along Montana\u2019s Yellowstone River. Several other movies have characters doing the same.<\/p>\n\n<p><a name=\"PanAm\"><\/a><\/p>\n\n<h2 id=\"journey-down-the-pan-american-highway\">Journey down the Pan American Highway<\/h2>\n\n<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>\n<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=oS7cKjBjQCQ\">VIDEO<\/a>:\nThe longest road in the world is the 30,000 km (19,000 miles) of the Pan American Highway.<\/p>\n\n<p>It starts from the North in Prudhoe Bay, Alaska through Fairbanks, into Canada\u2019s Whitehorse, Edmonton, Calgary.\nIt crosses into the United States down highway 15 and 87 into Billings, Montana.\nThen down 90, 25, into Denver.\n285 into Albuquerque, New Mexico.\n40 and 285 to Roswell, then 385 to Browfield. 87 to Eden. 83 to Junction. 10 to San Antonio and 85 to Loredo, Texas.\n285 into Mexico to Monterrey and Mexico City.<\/p>\n\n<p>Except for a break flying over the swamps of the Darian Gap between two continents at Yaviza, Panama and Turbo, Antioquia, Colombia,\nthe <em>V\u00eda Panam or V\u00eda Panamericana<\/em> goes all the way down to Tierra del Fuego, Chile.<\/p>\n\n<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>\n\n<p><a name=\"Westward\"><\/a><\/p>\n\n<h2 id=\"westward-on-land\">Westward on land<\/h2>\n\n<p>\u201cGo West, young Man, and grow up with the country!\u201d 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>\n\n<p><a name=\"PonyExpress\"><\/a><\/p>\n\n<h3 id=\"the-pony-express\">The Pony Express<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pony_Express#Pony_Express_route\">\n80 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>\n\n<p><a target=\"_blank\" href=\"https:\/\/cloud.githubusercontent.com\/assets\/300046\/14632396\/b725f60a-05d5-11e6-8b45-7babd7649ae8.jpg\">\n<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 \/>\n<em>Photo source: <a target=\"_blank\" href=\"https:\/\/commons.wikimedia.org\/w\/index.php?curid=10111804\">Wikimedia<\/a>.<\/em><\/p>\n\n<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>\n\n<p>But their service lasted for less than 2 years \u2013 from April 3, 1860 to October 24, 1861 \u2013 due to the availability of the electric telegraph along railroads.<\/p>\n\n<p><a id=\"WestwardVermont\"><\/a><\/p>\n\n<h2 id=\"westward-from-vermont-to-kentucky\">Westward from Vermont to Kentucky<\/h2>\n\n<p><a name=\"VT\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Vermont<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.benningtonmuseum.org\/\">Bennington Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.brattleboromuseum.org\/\">Brattleboro Museum and Art Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uvm.edu\/~fleming\/\">Fleming Museum at the University of Vermont<\/a>, Burlington<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.middlebury.edu\/arts\/museum\/\">Middlebury College Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.normanrockwellvt.com\/\"><strong>Norman Rockwell Museum<\/strong><\/a>, Rutland Town<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stjathenaeum.org\/\"> St. Johnsbury Athenaeum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.shelburnemuseum.org\/\">Shelburne Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/ArkEncounter.com\/\">Ark Encounter<\/a>, Williamstown<\/li>\n<\/ul>\n\n<p><a name=\"NY-Upstate\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Upstate New York<\/strong><\/p>\n<\/blockquote>\n\n<h3 id=\"albanyrochester\">Albany\/Rochester:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.albanyinstitute.org\/\">Albany Institute of History and Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.niagara.edu\/cam\/\">Castellani Art Museum at Niagara University<\/a>, Niagara Falls<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.eastmanhouse.org\/\">George Eastman House International Museum of Photography and Film<\/a>, Rochester<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/mag.rochester.edu\/\">Memorial Art Gallery at the University of Rochester<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.strongmuseum.org\/\">Strong Museum<\/a>, Rochester<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.albany.edu\/museum\/\">University Art Museum<\/a>, Albany<\/li>\n<\/ul>\n\n<h3 id=\"adirondacks\">Adirondacks<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.adkmuseum.org\/\">The Adirondack Museum<\/a>, Blue Mountain Lake<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ammi.org\/\">American Museum of the Moving Image<\/a>, Astoria<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.clag.org\/\">Canajoharie Library and Art Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cmog.org\/\">Corning Museum of Glass<\/a>, Corning<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.diabeacon.org\/\">Dia: Beacon<\/a>, Beacon City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.newpaltz.edu\/museum\/\">Samuel Dorsky Museum of Art at SUNY New Paltz<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hamilton.edu\/college\/emerson_gallery\/\">Emerson Gallery at Hamilton College<\/a>, Clinton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.everson.org\/\">Everson Museum of Art<\/a>, Syracuse<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fenimoreartmuseum.org\/\">Fenimore Art Museum<\/a>, Cooperstown<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fredericremington.org\/\">Frederic Remington Art Museum<\/a>, Ogdensburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.gcv.org\/\">Genesee Country Village and Museum<\/a>, Mumford<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/thehamptons.com\/guild_hall\/\">Guild Hall<\/a>, East Hampton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hammondmuseum.org\/\">Hammond Museum and Japanese Stroll Garden<\/a>, North Salem<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.Heckscher.org\/\">Heckscher Museum of Art<\/a>, Huntington<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hofstra.edu\/COM\/Museum\/index_Museum.cfm\">Hofstra University Museum<\/a>, Hempstead<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hrm.org\/\">Hudson River Museum<\/a>, Yonkers<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hydecollection.org\/\">Hyde Collection Art Museum<\/a>, Glens Falls<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.noguchi.org\/\">Isamu Noguchi Garden Museum<\/a>, Long Island City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.islipartmuseum.org\/\">Islip Art Museum<\/a>, East Islip<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museum.cornell.edu\/\">Johnson Museum of Art at Cornell University<\/a>, Ithaca<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.katonah-museum.org\/\">Katonah Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/fllac.vassar.edu\/\">Loeb Art Center at Vassar College<\/a>, Poughkeepsie<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.longislandmuseum.org\/\">Long Island Museum of American Art, History and Carriages<\/a>, Stony Brook<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.morrisville.edu\/pages\/library\/\">Morrisville College Library<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nassaumuseum.com\/\">Nassau County Museum of Art<\/a>, Roslyn Harbor<\/li>\n<li><a target=\"_blasincnk\" href=\"https:\/\/www.neuberger.org\/\">Neuberger Museum of Art at Purchase College<\/a>, Purchase<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nysm.nysed.gov\/\">New York State Museum<\/a>, Albany<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.newingtoncropsey.com\/\">Newington-Cropsey Foundation<\/a>, Hastings on Hudson<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nycmediaarts.org\/\">NY Center for Media Arts<\/a>, Long Island City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/thehamptons.com\/museum\/\">Parrish Art Museum<\/a>, Southampton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/picker.colgate.edu\/\">Picker Art Gallery at Colgate University<\/a>, Hamilton<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/clubs.plattsburgh.edu\/museum\/\">Plattsburgh State University Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ps1.org\/\">P.S. 1 Museum<\/a>, Long Island City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stny.com\/rockwellmuseum\/\">Rockwell Museum<\/a>, Corning<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/ceramicsmuseum.alfred.edu\/\">Schein-Joseph International Museum of Ceramic Art<\/a>, Alfred<\/li>\n<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>\n<li><a target=\"_blank\" href=\"https:\/\/www.shakermuseumandlibrary.org\/\">Shaker Museum and Library<\/a>, Old Chatham<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stormkingartcenter.org\/\">Storm King Art Center<\/a>, Mountainville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/sumweb.syr.edu\/suart\/\">Syracuse University Art Collection<\/a><\/li>\n<\/ul>\n\n<p><a name=\"Buffalo\"><\/a><\/p>\n\n<h3 id=\"buffalo\">Buffalo:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.albrightknox.org\/\">Albright-Knox Art Gallery<\/a>, Buffalo<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artgallery.buffalo.edu\/\">State University at Buffalo Art Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.burchfield-penney.org\/\">The Burchfield Penney Art Center<\/a>, Buffalo<\/li>\n<\/ul>\n\n<p><a name=\"MI\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Michigan <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.thehenryford.org\/\">Henry Ford Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.thehenryford.org\/visit\/greenfield-village\">Greenfield village<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/cranbrook.art.museum\/\">Cranbrook Art Museum<\/a>, Bloomfield Hills<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.dennosmuseum.org\/\">Dennos Museum Center<\/a>, Traverse City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.flintarts.org\/\">Flint Institute of Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.gramonline.org\/\">Grand Rapids Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.umich.edu\/~kelseydb\/\">Kelsey Museum of Archaeology at the University of Michigan<\/a>, Ann Arbor<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/artmuseum.msu.edu\/\">Kresge Art Museum at Michigan State University<\/a>, East Lansing<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.muskegonartmuseum.org\/\">Muskegon Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.saginawartmuseum.org\/\">Saginaw Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.shianet.org\/~sac\/sac.htm\">Shiawassee Arts Center<\/a>, Owosso<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.umma.umich.edu\/\">University of Michigan Museum of Art<\/a>, Ann Arbor<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uica.org\/\">Urban Institute for Contemporary Arts<\/a>, Grand Rapids<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fordlibrarymuseum.gov\/\">Gerald R. Ford Presidential Library<\/a>, Ann Arbor<\/li>\n<\/ul>\n\n<h3 id=\"detroit\">Detroit<\/h3>\n\n<p>Detroit had the #2 rate of crime among all cities in the US (2,057\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.dia.org\/\">Detroit Institute of Art&lt;\/strong&gt;<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.diamondial.org\/\">Detroit Institute of Arts Image Database<\/a><\/li>\n<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>\n<\/ul>\n\n<p><a name=\"OH\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Ohio <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.toledomuseum.org\/\"> Toledo Museum of Art<\/a><\/li>\n<li type=\"center\"><a target=\"_blank\" href=\"https:\/\/www.opentable.com\/table-128-bistro-and-bar\">Table 128 Bistro<\/a>, Toledo<\/li>\n<\/ul>\n\n<p><a name=\"Cincinnati\"><\/a><\/p>\n\n<h3 id=\"cincinnati\">Cincinnati:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.cincinnatiartmuseum.org\/\"> Cincinnati Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cincymuseum.org\/union-terminal\"> Museum Center of Union Terminal<\/a><\/li>\n<li>American Neon Sign Museum&lt;\/a&gt;<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.creationmuseum.org\/\">Creation Museum<\/a> (is closest to the Cincinnati airport)<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/arkencounter.com\/\/\">Ark Encounter<\/a> (44 miles South in Kentucky from the Creation Museum)<\/li>\n<\/ul>\n\n<p><a name=\"Cleveland\"><\/a><\/p>\n\n<h3 id=\"cleveland\">Cleveland:<\/h3>\n\n<p>Cleveland had the #8 rate of crime among all cities in the US (1,557\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.rockhall.com\/\"> Rock and Roll Hall of Fame<\/a> by the Lake Erie shore<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.clevelandart.org\/\"> Cleveland Museum of Art<\/a><\/li>\n<\/ul>\n\n<p><a name=\"IN\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Indiana <\/strong><\/p>\n<\/blockquote>\n\n<p><a name=\"Cleveland\"><\/a><\/p>\n\n<h3 id=\"indianapolis\">Indianapolis:<\/h3>\n\n<ul>\n<li>Indianapolis Children's Museum<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.eiteljorg.org\/\">Eiteljorg Museum of American Indians and Western Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.herron.iupui.edu\/new_web\/galleries\/herron_gallery.html\">Herron School of Art Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.state.in.us\/ism\/\">Indiana State Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ima-art.org\/\">Indianapolis Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.namos.iupui.edu\/\">National Art Museum of Sport at Indiana University<\/a>, Indianapolis<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.richmondartmuseum.org\/\">Richmond Art Museum<\/a><\/li>\n<li type=\"center\">Alewife restaurant, Richmond<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.indplsartcenter.org\/\">Indianapolis Art Center<\/a><\/li>\n<li> Indianapolis Museum of Art<\/li>\n<\/ul>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.bsu.edu\/artmuseum\/general.asp\">Ball State University Museum of Art<\/a>, Muncie<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.valpo.edu\/brauer-museum-of-art\/\">Brauer Museum of Art at Valparaiso University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.emuseum.org\/\">Evansville Museum of Arts and Science<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fwmoa.org\/\">Fort Wayne Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.glmart.org\/\">Greater Lafayette Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.eastern.k12.in.us\/gpl\/greentownglassmuseum.htm\">Greentown Glass Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.indiana.edu\/~iuam\/\">Indiana University Art Museum<\/a>, Bloomington<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nd.edu\/~sniteart\/\">Snite Museum of Art at the University of Notre Dame<\/a>, South Bend<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.swope.org\/\">Swope Art Museum<\/a>, Terre Haute<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/web.indstate.edu\/turman\/\">Turman Gallery at Indiana State University<\/a>, Terre Haute<\/li>\n<\/ul>\n\n<p><a name=\"KY\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Kentucky <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.imh.org\/imh\/imhmain.html\">International Museum of the Horse<\/a>, Lexington<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.kentuckycrafts.org\/\">Kentucky Art and Craft Foundation<\/a>, Louisville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wku.edu\/Library\/museum\/\">Kentucky Museum at Western Kentucky University<\/a>, Bowling Green<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.speedmuseum.org\/\">Speed Art Museum<\/a>, Louisville<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uky.edu\/ArtMuseum\/\">University of Kentucky Art Museum<\/a>, Lexington<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/maca\/\">Mammoth Cave National Park<\/a><\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"DownWestCoast\"><\/a><\/p>\n\n<h2 id=\"down-the-pacific-west-coast\">Down the Pacific West Coast<\/h2>\n<ul>\n<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>\n<\/ul>\n\n<p><a name=\"AK\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Alaska<\/strong><\/p>\n<\/blockquote>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.alaskamuseum.org\/\">Alaska State Museum<\/a>,\nJuneau<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.anchoragemuseum.org\/\">Anchorage Museum of History and Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uaf.edu\/museum\/\">University of Alaska Museum<\/a>, Fairbanks<\/li>\n<\/ul>\n\n<p>NOTE: Driving from Alaska to Washington state requires travel through Canada.<\/p>\n\n<p><a name=\"WA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Washington<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.tacomaartmuseum.org\/\">Tacoma Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.maryhillmuseum.org\/\">Maryhill Museum of Art<\/a>, Goldendale<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museumofnwart.org\/\">Museum of Northwest Art<\/a>, La Conner<\/li>\n<\/ul>\n\n<p><a name=\"Spokane\"><\/a><\/p>\n\n<h3 id=\"spokane\">Spokane:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.northwestmuseum.org\/\">Northwest Museum of Arts and Culture<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.gonzaga.edu\/Campus-Resources\/Museums-and-Libraries\/Jundt-Art-Museum\/\">\nJundt Art Center and Museum at Gonzaga University<\/a><\/li>\n<\/ul>\n\n<p><a name=\"Seattle\"><\/a><\/p>\n\n<h3 id=\"seattle\">Seattle:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.cocaseattle.org\/\">Center on Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.henryart.org\/\">Henry Art Gallery at the University of Washington<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.seattleartmuseum.org\/\">Seattle Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wingluke.org\/\">Wing Luke Asian Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/empmuseum.org\/\">EAP Museum (Music Project rock 'n' roll museum)<\/a><\/li>\n<\/ul>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.bellevueart.org\/\">Bellevue Art Museum<\/a><\/li>\n<\/ul>\n\n<p><a name=\"OR\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>Oregon<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.coosart.org\/\">Coos Art Museum<\/a>, Coos Bay<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.caclbca.org\/\">Corvallis Arts Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.willamette.edu\/museum_of_art\/\">Hallie Ford Museum of Art at Willamette University<\/a>, Salem<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pam.org\/\">Portland Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pica.org\/\">Portland Institute for Contemporary Art<\/a><\/li>\n<li type=\"circle\">Le Pigeon (Le Pigeon burger), Portland<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sou.edu\/sma\/\">Schneider Museum of Art at Southern Oregon University<\/a>, Ashland<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/uoma.uoregon.edu\/\">University of Oregon Museum of Art<\/a>, Eugene <\/li>\n<\/ul>\n\n<p>\u00a0<\/p>\n\n<p><a name=\"CA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong>California<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.crockerartmuseum.org\/\">Crocker Art Museum<\/a>, Sacramento<\/li>\n<li type=\"center\">The Kitchen Restaurant, Sacramento<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hagginmuseum.org\/\">Stockton - Haggin Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.svma.org\/\">Sonoma Valley Museum of Art<\/a>, Sonoma<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sonoma.edu\/ArtGallery\/default.html\">Sonoma State University Art Gallery<\/a>, Rohnert Park<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.dirosapreserve.org\/\">di Rosa Preserve<\/a>, Napa<\/li>\n<\/ul>\n\n<p><a name=\"SF\"><\/a><\/p>\n\n<h3 id=\"san-francisco-bay\">San Francisco Bay:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.yerbabuenaarts.org\/\">Yerba Buena Center for the Arts<\/a>, San Francisco<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sfmoma.org\">San Francisco Museum of Modern Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.asianart.org\/\">Asian Art Museum of San Francisco<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sfsu.edu\/~gallery\/\">San Francisco State University Fine Arts Gallery<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.usfca.edu\/library\/thacher\/\">Thacher Gallery at the University of San Francisco<\/a><\/li>\n<li> California Academy of Science<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.famsf.org\/legion\/\">California Museum of the Legion Of Honor<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sfmoma.org\/\">San Francisco Museum of Modern Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.famsf.org\/\">M H de Young Museum<\/a>, San Francisco <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.friendsofphotography.org\/\">Friends of Photography\/Ansel Adams Center<\/a>, San Francisco<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.jmsf.org\/\">The Jewish Museum<\/a>, San Francisco&lt;\/a&gt;<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mocfa.org\/\">Museum of Craft and Folk Art<\/a> <\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cablecarmuseum.org\/\">Cable Car Museum<\/a> <\/li>\n<li>Alcatraz island [ferry]<\/li>\n<\/ul>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.stmarys-ca.edu\/arts\/art_gallery\/\">Art Museum at Saint Mary's College<\/a>, Moraga<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museumca.org\/\">Oakland Museum of California<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.judahmagnesmuseum.org\/\">Judah L. Magnes Museum<\/a>, Berkeley<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bampfa.berkeley.edu\/\">Berkeley Art Museum + Pacific Film Archive at U.C. Berkeley<\/a><\/li>\n<\/ul>\n\n<p><a name=\"SanJose\"><\/a><\/p>\n\n<h3 id=\"san-jose\">San Jose:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.sjmusart.org\/\">San Jose Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.scu.edu\/SCU\/Departments\/deSaisset\/\">de Saisset Museum at Santa Clara University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stanford.edu\/dept\/SUMA\/\">Cantor Center for Visual Arts at Stanford University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stanford.edu\/~mjpeters\/png\/\">New Guinea Sculpture Garden at Stanford University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.art-tech.org\/\">Art-Tech (Silicon Valley Institute for Art and Technology)<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.santacruzmah.org\/\">Museum Of Art And History<\/a>, Santa Cruz<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.egyptianmuseum.org\/\">Rosicrucian Egyptian Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.tritonmuseum.org\/\">Triton Museum of Art<\/a>, Santa Clara<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stowitts.org\/\">Hubert Julian Stowitts Museum and Library<\/a>, Pacific Grove<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.montereyart.org\/\">Monterey Museum of Art<\/a><\/li>\n<\/ul>\n\n<p><a name=\"SantaBarbara\"><\/a><\/p>\n\n<h3 id=\"santa-barbara-central-coast\">Santa Barbara (Central Coast):<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/hearstcastle.org\/\">Hearst Castle<\/a>, San Simeon<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.oma-online.org\/\">Oceanside Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uam.ucsb.edu\/\">Art Museum at U.C. Santa Barbara<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sbmuseart.org\/\">Santa Barbara Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wildlingmuseum.org\/\">Wildling Art Museum<\/a>, Los Olivos<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artcenter.org\/\">California Center for the Arts<\/a>, Escondido<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.vcnet.com\/carnart\/\">Carnegie Art Museum<\/a>, Oxnard<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.shermanleeinstitute.org\/\">Lee Institute for Japanese Art<\/a>, Hanford<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.vcmha.org\/\">Ventura County Museum of History and Art<\/a>, Ventura<\/li>\n<\/ul>\n\n<p><a name=\"WLA\"><\/a><\/p>\n\n<h3 id=\"west-side-los-angeles\">West Side, Los Angeles:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.getty.edu\/museum\/\"><strong>J. Paul Getty Museum<\/strong><\/a>, Malibu<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.smmoa.org\/\">Santa Monica Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fowler.ucla.edu\/incEngine\/\">UCLA Fowler Museum of Cultural History<\/a>, Los Angeles<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hammer.ucla.edu\/\">Armand Hammer Museum of Art at UCLA<\/a>, Los Angeles<\/li>\n<\/ul>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.mtr.org\/\">Museum of Television and Radio<\/a>, Beverly Hills<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.skirball.org\/\">Skirball Cultural Center<\/a>, Los Angeles<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lacma.org\/\">Los Angeles County Museum of Art<\/a>, Los Angeles<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.caam.ca.gov\/\">California African-American Museum<\/a>, Los Angeles<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.moca-la.org\/\">Museum of Contemporary Art<\/a><\/li>\n<\/ul>\n\n<p><a name=\"LA\"><\/a><\/p>\n\n<h3 id=\"downtown-los-angeles\">Downtown Los Angeles:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.corita.org\/\">Corita [Kent] Art Center<\/a>, Los Angeles<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.neonmona.org\/\">Museum of Neon Art<\/a>, Los Angeles<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.kamuseum.org\/\">Korean American Museum<\/a>, Los Angeles<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.usc.edu\/org\/fishergallery\/\">Fisher Gallery at the University of Southern California<\/a>, Los Angeles<\/li>\n<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>\n\n<li><a target=\"_blank\" href=\"https:\/\/southwestmuseum.org\/\">Southwest Museum<\/a>, Los Angeles<\/li>\n<\/ul>\n\n<p><a name=\"WLA\"><\/a><\/p>\n\n<h3 id=\"east-los-angeles\">East Los Angeles:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.autry-museum.org\/\">Autry Museum of Western Heritage<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.reagan.utexas.edu\/\">Ronald Reagan Presidential Library and Museum<\/a>, Simi Valley<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.huntington.org\/\">Huntington Library<\/a>, San Marino<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nortonsimon.org\/\">Norton Simon Museum<\/a>, Pasadena<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pacificasiamuseum.org\/\">Pacific Asia Museum<\/a>, Pasadena<\/li>\n<\/ul>\n\n<h3 id=\"south-bay-long-beach\">South Bay, Long Beach:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.molaa.com\/\">Museum of Latin American Art<\/a>, Long Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lbma.org\/\">Long Beach Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.csulb.edu\/~uam\/\">California State University Art Museum<\/a>, Long Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.csulb.edu\/library\/arts\/\">California State University Library<\/a>, Long Beach<\/li>\n<\/ul>\n\n<p><a name=\"OC\"><\/a><\/p>\n\n<h3 id=\"orange-county\">Orange County:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.nixonlibrary.gov\/\">Richard Nixon Presidential Library and Museum<\/a>, Yorba Linda<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ci.fullerton.ca.us\/museum\/\">Fullerton Museum Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/disneyland.disney.go.com\/\">Disneyland<\/a>, Anaheim<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bowers.org\/\">Bowers Museum of Cultural Art<\/a>, Santa Ana<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.irvinemuseum.org\/\">Irvine Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ocma.net\/\">Orange County Museum of Art<\/a>, Newport Beach<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lagunaartmuseum.org\/\">Laguna Art Museum<\/a>, Laguna Beach<\/li>\n<\/ul>\n\n<h3 id=\"inland-empire\">Inland Empire:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.scrippscollege.edu\/dept\/gallery\/\">Ruth Chandler Williamson Gallery at Scripps College<\/a>, Claremont<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.pomona.edu\/museum\/\">Pomona College Museum of Art<\/a>, Claremont<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lamoa.net\/\">Latino Art Museum<\/a>, Pomona<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/historicalglassmuseum.com\/\">Historical Glass Museum<\/a>, Redlands<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/cmp1.ucr.edu\/\">California Museum of Photography at U.C. Riverside<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/sweeney.ucr.edu\/\">Sweeney Art Gallery at U.C. Riverside<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.riversideartmuseum.org\/\">Riverside Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.bmoa.org\/\">Bakersfield Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.psmuseum.org\/\">Palm Springs Desert Museum<\/a><\/li>\n<\/ul>\n\n<p><a name=\"SanDiego\"><\/a><\/p>\n\n<h3 id=\"san-diego\">San Diego:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.mopa.org\/\">Museum of Photographic Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mingei.org\/\">Mingei International Museum of Folk Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.timkenmuseum.org\/\">Timken Museum of Art<\/a>, San Diego<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mcasd.org\/\">Museum of Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sandiego-art.org\/\">San Diego Art Institute<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/stuartcollection.ucsd.edu\/\">Stuart Collection of Sculpture at U.C. San Diego<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sdmart.org\/\">San Diego Museum Of Art<\/a><\/li>\n<li type=\"circle\"><a target=\"_blank\" href=\"https:\/\/www.opentable.com\/addison-restaurant\">Addison (restaurant)<\/a>, Del Mar, San Diego<\/li>\n<\/ul>\n\n<p><a name=\"HI\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Hawaii <\/strong><\/p>\n<\/blockquote>\n\n<p>Honolulu and Hawaii as a whole had the lowest crime rate among all US cities and states.<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.tcmhi.org\/\">Contemporary Museum<\/a>, Honolulu<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.honoluluacademy.org\/\">Honolulu Academy of Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hookele.com\/hccm\/\">Hana Cultural Center and Museum<\/a>, Hana, Maui<\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"NorthernMiddleAmerica\"><\/a><\/p>\n\n<h2 id=\"westward-through-northern-states\">Westward through Northern states<\/h2>\n\n<p>Going from New York City to Seattle takes 2,852-miles on Interstates 80 and 90, crossing 11 states.<\/p>\n\n<h3 id=\"northern-rail\">Northern Rail<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.amtrak.com\/empire-builder-train\">\nAmtrak\u2019s Empire Builder train<\/a> between Chicago to Seattle and Portland takes 46 hours.<\/p>\n\n<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>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.amtrak.com\/california-zephyr-train\">Amtrak\u2019s 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> \u2013 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>\n\n<p><a name=\"LewisAndClark\"><\/a><\/p>\n\n<h3 id=\"lewis-and-clark-trail-westward-ho\">Lewis and Clark Trail Westward Ho<\/h3>\n\n<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>\n\n<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. \u201cWm Clark\u201d carved \u201cJuly 25, 1806\u201d <a target=\"_blank\" href=\"https:\/\/lewis-clark.org\/the-trail\/clark-on-the-yellowstone\/trail-graffiti\/\">on \u201cPompey\u2019s Pillar\u201d 30m miles East of Billings, Montana<\/a>.<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/lewisandclarktrail.com\/\">\n<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>\n\n<p>The \u201cCorps of Discovery\u201d emboldened wagon trains traveling Westward through Northern United States.<\/p>\n\n<p><a name=\"OregonTrail\"><\/a><\/p>\n\n<h3 id=\"oregon-trail-to-the-pacific\">Oregon Trail to the Pacific<\/h3>\n\n<p>The <a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Oregon_Trail#\/media\/File:Wpdms_nasa_topo_oregon_trail.jpg\">\nOregon Trail<\/a>\nwas established during the 1830s by mountain men in their fur trade, before motorized transportation. It favors valleys to minimize going over mountains:<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Oregon_Trail\">\n<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>\n\n<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>.\nIt then goes through Boise, Idaho to Portland, Oregon.\nA map of the trail in 1907:<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/1\/19\/Oregontrail_1907.jpg\">\n<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>\n\n<p><a name=\"KS\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Kansas <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li> Boot Hill Museum, Dodge City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.k-state.edu\/bma\/\">Beach Museum of Art at Kansas State University<\/a>, Manhattan<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sandzen.org\/\">Birger Sandzen Memorial Gallery<\/a>, Lindsborg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/skyways.lib.ks.us\/kansas\/museums\/coutts\/\">Coutts Memorial Museum of Art<\/a>, El Dorado<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.washburn.edu\/mulvane\/\">Mulvane Art Museum at Washburn University<\/a>, Topeka<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.spencerart.ku.edu\/\">Spencer Museum of Art at the University of Kansas<\/a>, Lawrence<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/webs.wichita.edu\/?view=ulrich\">Ulrich Museum of Art at Wichita State University<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wichitaartmuseum.org\/\">Wichita Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/ozmuseum.com\/\">Oz museum<\/a>, Wamego<\/li>\n<\/ul>\n\n<p><a name=\"IA\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Iowa <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.avalon.net\/~artsic\/\">Arts Iowa City<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.blanden.org\/\">Blanden Memorial Art Museum<\/a>, Fort Dodge<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museums.iastate.edu\/BrunnierFrames.htm\">Brunnier Art Museum at Iowa State University<\/a>, Ames<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.crma.org\/\">Cedar Rapids Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.art-dma.org\/\">Davenport Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.desmoinesartcenter.org\/\">Des Moines Art Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.uiowa.edu\/uima\/\">University of Iowa Museum of Art<\/a>, Iowa City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wplwloo.lib.ia.us\/waterloo\/arts\/\">Waterloo Museum of Art<\/a><\/li>\n<li> Des Moines: Living History Farms (at Urbandale)<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/hoover.archives.gov\/\">Herbert Hoover Presidential Library and Museum<\/a>, West Branch<\/li>\n<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>\n<\/ul>\n\n<p><a name=\"WI\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Wisconsin <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.lvm.wisc.edu\/\">Elvehjem Museum of Art at the University of Wisconsin<\/a>, Madison<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fairfieldartmuseum.com\/\">Fairfield Public Gallery<\/a>, Sturgeon Bay<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/jmkac.com\/\">John Michael Kohler Arts Center<\/a>, Sheboygan<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lywam.org\/\">Leigh Yawkey Woodson Art Museum<\/a>, Wausau<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mmoca.org\/\">Madison Museum of Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.focol.org\/~paineart\/\">Paine Art Center and Arboretum<\/a>, Oshkosh<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ramart.org\/\">Racine Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wbartmuseum.com\/\">West Bend Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.beloit.edu\/~museum\/wright\/\">Wright Museum of Art at Beloit College<\/a>, Beloit<\/li>\n<\/ul>\n\n<p><a name=\"Milwaukee\"><\/a><\/p>\n\n<h3 id=\"milwaukee\">Milwaukee:<\/h3>\n\n<p>Milwaukee had the #6 rate of crime among all cities in the US (2,082\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.eisnermuseum.org\/\">William F. Eisner Museum of Advertising and Design<\/a>, Milwaukee<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.marquette.edu\/haggerty\/\">Haggerty Museum of Art at Marquette University<\/a>, Milwaukee<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mam.org\/\">Milwaukee Art Museum<\/a><\/li>\n<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>\n<\/ul>\n\n<p><a name=\"MN\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Minnesota <\/strong><\/p>\n<\/blockquote>\n\n<h3 id=\"duluth-north-coast-of-lake-superior\">Duluth (North coast of Lake Superior)<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/maps.roadtrippers.com\/trips\/17520840?lng=-103.03900847280016&amp;lat=42.950891540446264&amp;z=4.526513924866736\">North shore scenic drive<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.d.umn.edu\/tma\/\">Tweed Museum of Art at the University of Minnesota<\/a>, Duluth<\/li>\n<\/ul>\n\n<p><a name=\"Minneapolis\"><\/a><\/p>\n\n<h3 id=\"minneapolis\">Minneapolis:<\/h3>\n\n<p>Minneapolis had the #19 rate of crime among all cities in the US (1,101\/100,000 in 2022).<\/p>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.mtn.org\/MIA\/\">The Minneapolis Institute of Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artsmia.org\/\">Minneapolis Institute of Arts&lt;\/strong&gt;<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.walkerart.org\/\">Walker Art Center<\/a>, Minneapolis<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.weisman.umn.edu\/\">Weisman Art Museum at the University of Minnesota<\/a>, Minneapolis<\/li>\n<li type=\"circle\">Spoon and Stable restaurant, Minneapolis<\/li>\n<\/ul>\n\n<p><a name=\"StPaul\"><\/a><\/p>\n\n<h3 id=\"st-paul\">St. Paul:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.nwc.edu\/academic\/art\/denler\/denler.htm\">Denler Art Gallery at Northwestern College<\/a> St. Paul<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.asmat.org\/\">American Museum of Asmat Art<\/a> St. Paul<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/goldstein.che.umn.edu\/\">Goldstein Museum of Design at the University of Minnesota<\/a> St. Paul<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mmaa.org\/\">Minnesota Museum of American Art<\/a>, St. Paul<\/li>\n<li type=\"square\">Green Giant statue, Blue Earth 56013 (off hwy 90)<\/li>\n<\/ul>\n\n<p><a name=\"NB\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Nebraska <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<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>\n<li><a target=\"_blank\" href=\"https:\/\/www.joslyn.org\/\">Joslyn Art Museum<\/a>, Omaha<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/monet.unk.edu\/mona\/\">Museum of Nebraska Art at the University of Nebraska<\/a>, Kearney<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sheldonartgallery.org\/\">Sheldon Memorial Art Gallery at the University of Nebraska<\/a>, Lincoln<\/li>\n<\/ul>\n\n<p><a name=\"SD\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> South Dakota <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/moru\/\">Mount Rushmore National Memorial<\/a>, Keystone<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.historichotels.org\/hotels-resorts\/hotel-alex-johnson\/\">Hotel Alex Johnson<\/a>, Rapid City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.redlinart.com\/\">Redlin Art Center<\/a>, Watertown<\/li>\n<\/ul>\n\n<p><a name=\"ND\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> North Dakota <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.ndmoa.com\/\">North Dakota Museum of Art<\/a>, Grand Forks<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.plainsart.org\/\">Plains Art Museum<\/a>, Fargo<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.thedailymeal.com\/restaurants\/passage-india\">Passage to India lunch buffet<\/a>, Fargo<\/li>\n<\/ul>\n\n<p><a name=\"MT\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Montana <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.holtermuseum.org\/\">Holter Museum of Art<\/a>, Helena<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/glac\/\">Glacier National Park<\/a> \"Crown of the Continent\"<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cmrussell.org\/\">C.M. Russell Museum<\/a>, Great Falls<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artmissoula.org\/\">Art Museum of Missoula<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.umt.edu\/partv\/famus\/\">University of Montana Museum of Fine Arts<\/a>, Missoula<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.museumoftherockies.org\/\">Museum of the Rockies<\/a>, Bozeman<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.compustory.com\/\">American Computer &amp; Robotics Museum<\/a>, Bozeman<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.tippetrise.org\/\">Tippet Rise Art Center<\/a>, near Bozeman<\/li>\n\n<li><a target=\"_blank\" href=\"https:\/\/yellowstone.artmuseum.org\/\">Yellowstone Art Museum<\/a>, Billings<\/li>\n<li>The only known markings by the <a href=\"#LewisAndClark\">Lewis and Clark Corp<\/a>, Billings<\/li>\n<\/ul>\n\n<p><a name=\"ID\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Idaho <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"http:\/\/www.boiseartmuseum.org\/\">Boise Art Museum<\/a><\/li>\n<\/ul>\n\n<hr \/>\n\n<p><a name=\"Southwestward\"><\/a><\/p>\n\n<h2 id=\"westward-through-the-southwest\">Westward through the Southwest<\/h2>\n\n<h3 id=\"route-66\">Route 66<\/h3>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/Passport-World-Route-Donna-Bouche\/dp\/B088DZ79NH\/\">VIDEO<\/a>:\n<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.\nThus its colloqual name the \u201cMother Road\u201d. It served as a military transport corridor during WWII.\nIn post-war years, motels, diners, and gas stations along Route 66 became popular vacaction destinations.<\/p>\n\n<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>\n\n<p>Route 66 begins on Michigan Avene in Chicago, where you can eat at Lou Mitchell\u2019s diner.\nThe 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>\n\n<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>\n\n<h3 id=\"chisolm-trail\">Chisolm Trail<\/h3>\n\n<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>\n\n<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>,\nhere we begin from Oklahoma and take a long detour North to avoid too much desert along the way.<\/em><\/p>\n\n<p><a name=\"OK\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Oklahoma <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.ou.edu\/fjjma\/\">Fred Jones Jr. Museum of Art at the University of Oklahoma<\/a>, Norman<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.gilcrease.org\/\">Gilcrease Museum<\/a>, Tulsa<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cowboyhalloffame.org\/\">National Cowboy Hall of Fame and Western Heritage Museum<\/a>, Oklahoma City<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.philbrook.org\/\">Philbrook Museum of Art (Philbrook Art Centre)<\/a>, Tulsa<\/li>\n<\/ul>\n\n<p><a name=\"TX\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Texas <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.amarilloart.org\/\">Amarillo Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.facebook.com\/1974cadillacranch\/\">Cadillac Ranch<\/a> near Amarillo<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.arlingtonmuseum.org\/\">Arlington Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.amset.org\/\">Art Museum of Southeast Texas<\/a>, Beaumont<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/Beeville.net\/BeevilleArtMuseum\/\">Beeville Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.chinati.org\/\">Chinati Foundation<\/a>, Marfa<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/lib-oldweb.tamu.edu\/cushing\/\">Cushing Memorial Library at Texas A&amp;M University<\/a>, College Station<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.elpasoartmuseum.org\/\">El Paso Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.thegracemuseum.org\/\">Grace Museum<\/a>, Abilene<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lmfa.org\/\">Longview Museum of Fine Arts<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mcnayart.org\/\">McNay Art Museum<\/a>, San Antonio<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/museumsw.org\/\">Museum of the Southwest<\/a>, Midland<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.depts.ttu.edu\/museumttu\/\">Museum of Texas Tech University<\/a>, Lubbock<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.noelartmuseum.org\/\">Ellen Noel Art Museum<\/a>, Odessa<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/saalm.org\/\">San Antonio Art League Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sa-museum.org\/\">San Antonio Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.stia.org\/\">South Texas Institute for the Arts<\/a>, Corpus Christi<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.starkmuseum.org\/\">Stark Museum of Art<\/a>, Orange<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.art.unt.edu\/gallery\/\">University of North Texas Art Galleries<\/a>, Denton<\/li>\n<\/ul>\n\n<p><a name=\"Dallas\"><\/a><\/p>\n\n<h3 id=\"dallas\">Dallas:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.crowcollection.org\/\">Crow Collection of Asian Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.the-mac.org\/\">The McKinney Avenue Contemporary (MAC)<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.meadowsmuseumdallas.org\/\">Meadows Museum at Southern Methodist University<\/a>, Dallas<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.cartermuseum.org\/\">Amon Carter Museum<\/a>, Fort Worth<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/dmaws.dallasmuseumofart.org\/\">Dallas Museum of Art&lt;\/strong&gt;<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.kimbellart.org\/\">Kimbell Art Museum&lt;\/strong&gt;<\/a>, Fort Worth<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artcenterwaco.org\/\">Art Center Waco<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mamfw.org\/\">Modern Art Museum of Fort Worth<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sidrmuseum.org\/\">Sid Richardson Collection of Western Art<\/a>, Fort Worth<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.baylor.edu\/Art\/index.php?id=5310\">Baylor University Art Galleries<\/a>, Waco<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/bush41library.tamu.edu\/\">George Bush Presidential Library and Museum<\/a>, College Station<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.archives.gov\/presidential-libraries\/visit#\">George W. Bush Presidential Library and Museum<\/a>, Dallas<\/li>\n<\/ul>\n\n<p><a name=\"Austin\"><\/a><\/p>\n\n<h3 id=\"austin\">Austin:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.hrc.utexas.edu\/\">Ransom Humanities Research Center at the University of Texas<\/a>, Austin<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.amoa.org\/\">Austin Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.utexas.edu\/cofa\/bma\/\">Blanton Museum of Art at the University of Texas<\/a>, Austin<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.main.org\/mexic-arte\/\">Mexic-Arte Museum<\/a>, Austin<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.georgewbushlibrary.smu.edu\/\">\nLyndon Baines Johnson Presidential Library and Museum<\/a>, Austin<\/li>\n<\/ul>\n\n<p><a name=\"Houston\"><\/a><\/p>\n\n<h3 id=\"houston\">Houston:<\/h3>\n\n<ul>\n<li> Baker Planetarium<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.ricegallery.org\/\">Rice University Art Gallery<\/a>, Houston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.hfac.uh.edu\/blaffer\/\">Blaffer Gallery at the University of Houston<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/mfah.org\/\">Museum of Fine Arts&lt;\/strong&gt;<\/a>, Houston<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.camh.org\/\">Contemporary Arts Museum, Houston<\/a><\/li>\n<li> Museum of Medical Science<\/li>\n<li> The Contemporary Arts Museum<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.menil.org\/\">Menil Collection<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.artcarmuseum.com\/\">The Art Car Museum<\/a><\/li>\n<\/ul>\n\n<p><a name=\"NM\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> New Mexico <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.cabq.gov\/museum\/\">Albuquerque Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.millicentrogers.org\/\">Millicent Rogers Museum of Northern New Mexico<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.roswellmuseum.org\/\">Roswell Museum and Art Center<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/CAVE\/\">Carlsbad Caverns National Park<\/a><\/li>\n<\/ul>\n\n<p><a name=\"SantaFe\"><\/a><\/p>\n\n<h3 id=\"santa-fe\">Santa Fe:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.okeeffemuseum.org\/\">Georgia O'Keeffe Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.moifa.org\/\">Museum of International Folk Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museumofnewmexico.org\/\">Museum of New Mexico<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.nmlegis.gov\/\">New Mexico Legislature Art Gallery<\/a><\/li>\n<\/ul>\n\n<p><a name=\"Taos\"><\/a><\/p>\n\n<h3 id=\"taos\">Taos:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/harwoodmuseum.org\/\">Harwood Museum at the U. of New Mexico<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.vvltam.org\/\">Van Vechten-Lineberry Taos Art Museum<\/a><\/li>\n<\/ul>\n\n<p><a name=\"CO\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Colorado <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.aspenartmuseum.org\/\">Aspen Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.BMoCA.org\/\">Boulder Museum of Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.leanintreemuseum.com\/\">Leanin' Tree Museum of Western Art<\/a>, Boulder<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fine-art.com\/museum\/moa.html\">The Museum of Outdoor Arts<\/a>, Englewood<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.usbr.gov\/lc\/hooverdam\/\">Hoover Dam<\/a>, Boulder City<\/li>\n<li type=\"circle\">Frasca Food &amp; Wine, Boulder<\/li>\n<\/ul>\n\n<p><a name=\"Denver\"><\/a><\/p>\n\n<h3 id=\"denver\">Denver:<\/h3>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.denverartmuseum.org\/\">Denver Museum of Art<\/a><\/li>\n<li> Denver Museum of Natural History<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.kirklandmuseum.org\/\">Kirkland Museum<\/a>, Denver<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.museo.org\/\">Museo de las Americas<\/a>, Denver<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mcartdenver.org\/\">Museum of Contemporary Art\/Denver<\/a><\/li>\n<\/ul>\n\n<p><a name=\"WY\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Wyoming <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.bbhc.org\/\">Buffalo Bill Historical Center<\/a>, Cody<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/thebrintonmuseum.org\/\">Briton Museum<\/a>, Big Horn<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/uwadmnweb.uwyo.edu\/artmuseum\/\">University of Wyoming Art Museum<\/a>, Laramie<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wildlifeart.org\/\">National Museum of Wildlife Art<\/a>, Jackson Hole<\/li>\n<\/ul>\n\n<p>(Southern Idaho)<\/p>\n\n<p><a name=\"UT\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Utah <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.byu.edu\/moa\/\">Brigham Young University Museum of Art<\/a>, Provo<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.sma.nebo.edu\/\">Springville Museum of Art<\/a><\/li>\n\n<li> The Museum of (Mormon) Church History and Art, Salt Lake City<\/li>\n<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>\n\n<li><a target=\"_blank\" href=\"https:\/\/www.suu.edu\/museums\/\">Braithwaite Arts Gallery at Southern Utah University<\/a>, Cedar City<\/li>\n<\/ul>\n\n<p><a name=\"AZ\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Arizona<\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<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>\n<li type=\"disc\"><a target=\"_blank\" href=\"https:\/\/www.nps.gov\/grca\/\">Grand Canyon Village<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/asuartmuseum.asu.edu\/\">Arizona State University Art Museum<\/a>, Tempe<\/li>\n<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>\n<li><a target=\"_blank\" href=\"https:\/\/westernmuseum.org\/\">Desert Caballeros Western Museum<\/a>, Wickenburg<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.fleischer.org\/\">Fleischer Museum of American and Russian Impressionism<\/a>, Scottsdale<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.heard.org\/\">Heard Museum<\/a>, Phoenix<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.musnaz.org\/\">Museum of Northern Arizona<\/a>, Flagstaff<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.phippenartmuseum.org\/\">Phippen Art Museum<\/a>, Prescott<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.phxart.org\/\">Phoenix Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.smoca.org\/\">Scottsdale Museum of Contemporary Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.tucsonarts.com\/\">Tucson Museum of Art<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/artmuseum.arizona.edu\/art.html\">University of Arizona Museum of Art<\/a>, Tucson<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.wvam.org\/\">West Valley Art Museum<\/a>, Surprise<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.mim.org\/\">Musical Instrument Museum<\/a>, Phoenix<\/li>\n<\/ul>\n\n<p><a name=\"NV\"><\/a><\/p>\n\n<blockquote>\n  <p><strong> Nevada <\/strong><\/p>\n<\/blockquote>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.guggenheimlasvegas.org\/\">Guggenheim Hermitage Museum<\/a>, Las Vegas<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.lasvegasartmuseum.org\/\">Las Vegas Art Museum<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.neonmuseum.org\/\">The Neon Museum<\/a><\/li>\n<\/ul>\n\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.nevadaart.org\/\">Nevada Museum of Art<\/a>, Reno<\/li>\n<li>Harrah's Auto Collection, Reno<\/li>\n<\/ul>\n<p><br \/><br \/><\/p>\n\n<h2 id=\"all-the-sights\">All the sights<\/h2>\n\n<p>In addition to \u201cmuseums\u201d, also included here are grand natural sights:<\/p>\n\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.historichotels.org\/hotels-resorts\/?search=top-nav\">historic landmark hotels<\/a><\/li>\n  <li>Restaurants with unique interiors\/art<\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.bedandbreakfast.com\/info\/travelers\/awards\/breakfast-tournament\/2018\">Breakfasts at B&amp;Bs<\/a><\/p>\n  <\/li>\n  <li>Cool Architecture - churches<\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>National Monuments<\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.archives.gov\/presidential-libraries\/visit\">US Presidential libraries<\/a>, museums, and birth places<\/p>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <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>\n  <li>Caverns<\/li>\n  <li>\n    <p>Zoos<\/p>\n  <\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/factorytoursusa.com\/\">Factory tours<\/a><\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>Amusement parks<\/li>\n  <li>State Fairs<\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.tripadvisor.com\/TravelersChoice\">Tripadvisor Excellence award winners<\/a><\/li>\n  <li>Most scenic restaurants according to <a target=\"_blank\" href=\"https:\/\/www.opentable.com\/lists\/most-scenic-restaurants-2018\">OpenTable<\/a>, Zagat, Michelin<\/li>\n<\/ul>\n\n<h2 id=\"technical-footnote\">Technical Footnote<\/h2>\n\n<p>This rather large list was originally created to be intentionally large in order to test how well the system handles a large file\n(how quickly it can download and display).<\/p>\n\n<p>This is an upgrade of my terrible <a target=\"_blank\" href=\"https:\/\/wilsonmar.com\/1usa.htm\">\nRoadtrips to visit museums across the USA<\/a> from 2005.<\/p>\n\n<p>Next, I\u2019d like to display a Google map of coordinates from a public Google spreadsheet\nlike Jessica Lord\u2019s\n<a target=\"_blank\" href=\"https:\/\/jlord.github.io\/hack-spots\">\nhack-spots site<\/a> implemented from a\n<a target=\"_blank\" href=\"https:\/\/github.com\/jlord\/hack-spots\">\ngithub repo<\/a> which\nuses the\n<a target=\"_blank\" href=\"https:\/\/github.com\/jlord\/sheetsee.js\">\nsheetsee.js<\/a> and\n<a target=\"_blank\" href=\"https:\/\/www.mapbox.com\/mapbox.js\/api\/v2.4.0\/\">\nMapbox<\/a>\nlibraries.<\/p>\n\n<blockquote>\n  <p>\u201cI haven\u2019t been everywhere, but it\u2019s on my list.\u201d \u2013 <a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Susan_Sontag\">Susan Sontag<\/a><\/p>\n<\/blockquote>\n\n    <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>\n  "},{"title":{"@attributes":{"type":"html"}},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/wilsonmar.github.io\/flood-the-internet\/"}},"id":"https:\/\/wilsonmar.github.io\/flood-the-internet","published":"2025-10-25T00:00:00+00:00","updated":"2025-10-25T00:00:00+00:00","author":{"name":"Wilson Mar","uri":"https:\/\/wilsonmar.github.io","email":"wilsonmar@gmail.com"},"content":"\n    <p><i>Prove that tools emulating users (Playwright, JMeter, Selenium, etc.) can recognize the gamut of controls on a challenging web app.<\/i><\/p>\n<p align=\"right\">\n<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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=no&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=es&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F\" title=\"Espa\u00f1ol (Spanish)\"><img alt=\"Espa\u00f1ol (Spanish)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/es.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=fr&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F\" title=\"Fran\u00e7ais (French)\"><img alt=\"Fran\u00e7ais (French)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/fr.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=de&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=it&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=pt&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F\" title=\"Portugu\u00eas\"><img alt=\"Portugu\u00eas\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/pt.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=et&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ar&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F\" title=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\"><img alt=\"\u0627\u064e\u0644\u0652\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u064f (Egypt Arabic)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/eg.gif\" \/><\/a> &nbsp;\n<!-- <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> &nbsp; -->\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ne&amp;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> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=zh-CN&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F\" title=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\"><img alt=\"\u4e2d\u6587 (\u7b80\u4f53) Chinese (Simplified)\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/cn.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ja&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F\" title=\"\u65e5\u672c\u8a9e Japanese\"><img alt=\"\u65e5\u672c\u8a9e Japanese\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/jp.gif\" \/><\/a> &nbsp;\n<a target=\"_blank\" href=\"https:\/\/translate.google.com\/translate?sl=auto&amp;tl=ko&amp;u=https%3A%2F%2Fwilsonmar.github.io%2Fflood-the-internet%2F\" title=\"\ud55c\uad6d\uc5b4 Korean\"><img alt=\"\ud55c\uad6d\uc5b4 Korean\" width=\"20\" height=\"14\" src=\"..\/images\/flags\/ko.gif\" \/><\/a>\n<\/p>\n\n<section id=\"table-of-contents\" class=\"toc\">\n  <header>\n    <h3><i class=\"fa fa-book\"><\/i> Overview<\/h3>\n  <\/header>\n<div id=\"drawer\">\n<ul id=\"markdown-toc\">\n  <li><a href=\"#challenges-on-the-internet-app\" id=\"markdown-toc-challenges-on-the-internet-app\">Challenges on The-Internet app<\/a><\/li>\n  <li><a href=\"#video-introduction\" id=\"markdown-toc-video-introduction\">Video introduction<\/a>    <ul>\n      <li><a href=\"#app-build\" id=\"markdown-toc-app-build\">App Build<\/a><\/li>\n      <li><a href=\"#emulate-using-playwright\" id=\"markdown-toc-emulate-using-playwright\">Emulate using PlayWright<\/a><\/li>\n      <li><a href=\"#instrumentation\" id=\"markdown-toc-instrumentation\">Instrumentation<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#recap-architectural-components\" id=\"markdown-toc-recap-architectural-components\">Recap: Architectural components<\/a>    <ul>\n      <li><a href=\"#project-folders-from-github\" id=\"markdown-toc-project-folders-from-github\">Project folders from GitHub<\/a><\/li>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#how-to-manual-steps\" id=\"markdown-toc-how-to-manual-steps\">How To Manual Steps<\/a><\/li>\n  <li><a href=\"#automating-the-internet-using-selenium\" id=\"markdown-toc-automating-the-internet-using-selenium\">Automating the-internet using Selenium<\/a><\/li>\n  <li><a href=\"#coding-flood-element-typescript\" id=\"markdown-toc-coding-flood-element-typescript\">Coding Flood Element Typescript<\/a><\/li>\n  <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>\n      <li><a href=\"#setup-aws-manually\" id=\"markdown-toc-setup-aws-manually\">Setup AWS manually<\/a><\/li>\n      <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>\n      <li><a href=\"#terminal---aws-key-pair\" id=\"markdown-toc-terminal---aws-key-pair\">Terminal - AWS Key Pair<\/a><\/li>\n      <li><a href=\"#terminal---aws-key-pair-1\" id=\"markdown-toc-terminal---aws-key-pair-1\">Terminal - AWS Key Pair<\/a><\/li>\n      <li><a href=\"#setup-newrelic-in-a-ec2-ubuntu-containing-docker\" id=\"markdown-toc-setup-newrelic-in-a-ec2-ubuntu-containing-docker\">Setup \u201cNewRelic\u201d in a EC2 Ubuntu containing Docker<\/a><\/li>\n      <li><a href=\"#save-newrelic-license-key\" id=\"markdown-toc-save-newrelic-license-key\">Save NewRelic License Key<\/a><\/li>\n      <li><a href=\"#install-newrelic-instrumentation-agent\" id=\"markdown-toc-install-newrelic-instrumentation-agent\">Install NewRelic instrumentation agent<\/a><\/li>\n      <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 \u201cthe-internet-app\u201d<\/a><\/li>\n      <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>\n      <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>\n      <li><a href=\"#instrument-script-for-newrelic\" id=\"markdown-toc-instrument-script-for-newrelic\">Instrument script for NewRelic<\/a><\/li>\n      <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>\n    <\/ul>\n  <\/li>\n  <li><a href=\"#perpare-for-flood\" id=\"markdown-toc-perpare-for-flood\">Perpare for Flood<\/a><\/li>\n  <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>\n  <li><a href=\"#config-new-relic-dashboard\" id=\"markdown-toc-config-new-relic-dashboard\">Config New Relic Dashboard<\/a><\/li>\n  <li><a href=\"#other-apm\" id=\"markdown-toc-other-apm\">Other APM<\/a><\/li>\n  <li><a href=\"#security-scans\" id=\"markdown-toc-security-scans\">Security scans<\/a><\/li>\n  <li><a href=\"#playwright\" id=\"markdown-toc-playwright\">Playwright<\/a><\/li>\n  <li><a href=\"#python-scripting\" id=\"markdown-toc-python-scripting\">Python scripting<\/a><\/li>\n  <li><a href=\"#resources\" id=\"markdown-toc-resources\">Resources<\/a><\/li>\n<\/ul>\n\n  <\/div>\n<\/section>\n<!-- \/#table-of-contents -->\n\n<p><em>NOTE: Content here are my personal opinions, and \nnot intended to represent any employer (past or present).\n\u201cPROTIP:\u201d here highlight information I haven\u2019t seen elsewhere on the internet\nbecause it is hard-won, little-know but significant facts \nbased on my personal research and experience.\n<\/em><\/p>\n\n<p><a name=\"ManualActions\"><\/a><\/p>\n\n<h2 id=\"challenges-on-the-internet-app\">Challenges on The-Internet app<\/h2>\n\n<p>The table below presents several icons associated with each page of the sample app\u2019s UI on-line at<br \/><\/p>\n<ul>\n  <a target=\"_blank\" href=\"https:\/\/the-internet.herokuapp.com\/\"><strong>https:\/\/the-internet.herokuapp.com<\/strong><\/a>\n  <\/ul>\n\n<blockquote>\n  <p>\u201cAn example application that captures prominent and ugly functionality found on the web. Perfect for writing automated acceptance tests against.\u201d<\/p>\n<\/blockquote>\n\n<p>Ruby code to create \u201cthe-internet\u201d was at account saucelabs but forked to:<\/p>\n\n<ul><a target=\"_blank\" href=\"https:\/\/github.com\/bomonike\/the-internet\">https:\/\/github.com\/bononike\/the-internet<\/a>\n   <\/ul>\n\n<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&amp;t=19m14s\">part 1<\/a> and <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=w0pYTX2t0pg\">part 2<\/a> of \u201cSelenium Test Automation: Practical Tips &amp; Tricks\u201d presentation recorded in Israel. In his May 2016 <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=Zf_qsXK6YdM\">\u201cHow to use Selenium successfully\u201d<\/a> <a target=\"_blank\" href=\"http:\/\/se.tips\/sf-se-meetup-2016\">slidedeck<\/a> he said:<\/p>\n\n<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\u2019s 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>\n\n<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>\n\n<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>\n\n<p>Click on <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=cIevkkD_LB4&amp;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>\n\n<p>Additional columns of icons may be added to show <strong>sample run results<\/strong> for each test item.<\/p>\n\n<ol>\n  <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&amp;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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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&amp;t=29m30s\"><img alt=\"YouTube\" width=\"21\" height=\"21\" src=\"..\/images\/youtube-21x21.png\" \/><\/a> Dynamic Loading (using explicit wait for resilency)<\/li>\n  <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>\n  <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>\n  <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&amp;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>\n  <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>\n  <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>\n  <li>\n    <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&amp;t=30m16s\"><img alt=\"YouTube\" width=\"21\" height=\"21\" src=\"..\/images\/youtube-21x21.png\" \/><\/a> Forgot Password<\/p>\n  <\/li>\n  <li>\n    <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&amp;t=19m14s\"><img alt=\"YouTube\" width=\"21\" height=\"21\" src=\"..\/images\/youtube-21x21.png\" \/><\/a> Form Authentication (Login)\n<br \/><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=cIevkkD_LB4&amp;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\u2019s menu)<\/p>\n  <\/li>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n  <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&amp;t=37m57s\"><img alt=\"YouTube\" width=\"21\" height=\"21\" src=\"..\/images\/youtube-21x21.png\" \/><\/a> Large &amp; Deep DOM<\/li>\n  <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>\n  <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>\n  <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&amp;t=37m43s\"><img alt=\"YouTube\" width=\"21\" height=\"21\" src=\"..\/images\/youtube-21x21.png\" \/><\/a> Notification Messages (Growl listener)<\/li>\n  <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>\n  <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>\n  <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>\n  <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&amp;t=25m40s\"><img alt=\"YouTube\" width=\"21\" height=\"21\" src=\"..\/images\/youtube-21x21.png\" \/><\/a> Slow Resources (blacklist slow resource with proxy server)<\/li>\n  <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>\n  <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>\n  <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>\n  <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>\n<\/ol>\n\n<p><a name=\"ScriptIssues\"><\/a><\/p>\n\n<p>NOTE: Some scripts are under development.<\/p>\n\n<hr \/>\n\n<p><a name=\"IntroVideo\"><\/a><\/p>\n\n<h2 id=\"video-introduction\">Video introduction<\/h2>\n\n<amp-youtube data-videoid=\"ps--j4ePPbA\" layout=\"responsive\" width=\"480\" height=\"270\"><\/amp-youtube>\n<p><br \/><\/p>\n\n<p><em>Below is the narration (transcript) of the video above.<\/em><\/p>\n\n<p>Selenium makes use of older <strong>\u201cWeb Driver\u201d<\/strong> APIs that control browsers from code written in a variety of programming languages.<\/p>\n\n<p>But the new Google <strong>\u201cLighthouse\u201d<\/strong> API exposes a comprehensive set of metrics that include performance <strong>timings<\/strong> for every manual action. They\u2019ve been added to the \u201cAudits\u201d section of <strong>Chrome Developer Tools<\/strong> UI we\u2019ve been using to figure out the classes and identifiers we code into Selenium scripts.<\/p>\n\n<p>But since these <a target=\"_blank\" href=\"https:\/\/developers.google.com\/web\/tools\/lighthouse\/\">\u201cLighthouse\u201d 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>\n\n<p>There is currently no Docker image containing PlayWright. So it needs to be installed.<\/p>\n\n<p>Typescript is a superset of the JavaScript programming language that control browsers.\nTypescript is used because its <a href=\"#ElementCoding\">transpiler<\/a> checks for errors sooner than JavaScript.<\/p>\n\n<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>\n\n<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\u2019s <strong>memory, CPU, and other resources<\/strong>. \u00ab&lt;<\/p>\n\n<h3 id=\"app-build\">App Build<\/h3>\n\n<p>But we don\u2019t want our experiments to overload Dave\u2019s public site for everyone else.<\/p>\n\n<p>So we run the app as a <strong>Docker container<\/strong> within the <strong>AWS<\/strong> or other cloud.\nThe 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>\n\n<p><a href=\"PlayWright\"><\/a><\/p>\n\n<h3 id=\"emulate-using-playwright\">Emulate using PlayWright<\/h3>\n\n<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>\n\n<p>PlayWright scripts are a new innovation because it emulates <a href=\"#ManualActions\">manual actions<\/a> within each user\u2019s browser.<\/p>\n\n<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>\n\n<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>\n\n<h3 id=\"instrumentation\">Instrumentation<\/h3>\n\n<p>It\u2019s 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>\n\n<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>\n\n<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 \nto a metrics <strong>dashboard<\/strong> at <a target=\"_blank\" href=\"https:\/\/www.newrelic.com\/\">newrelic.com<\/a>.<\/p>\n\n<p>To validate communications, a <strong>license key<\/strong> obtained manually from the New Relic website is installed when the agent is installed.<\/p>\n\n<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>\n\n<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>\n\n<!-- We don't create an <strong>instrumented Docker image<\/strong> that has the agent already installed because the license differs for each installation. \n-->\n\n<hr \/>\n\n<p><a name=\"Architecture\"><\/a><\/p>\n\n<h2 id=\"recap-architectural-components\">Recap: Architectural components<\/h2>\n\n<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>\n\n<p>While learning on a local machine such as a Mac, Linux laptop, or Windows PC:<\/p>\n\n<ol>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>The setup.sh CLI shell script is installed to run scripts to emulate a <strong>single user<\/strong>\u2019s manual actions on a Google\u2019s Chrome browser.<\/p>\n  <\/li>\n<\/ol>\n\n<p>The system under (load) test (SUT) instantiated using Docker:<\/p>\n\n<ol>\n  <li>The \u201cthe-internet\u201d web app from a Docker image<\/li>\n  <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>\n<\/ol>\n\n<p>Additionally, the GUI of two cloud services:<\/p>\n\n<ol>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n<\/ol>\n\n<p><a name=\"ScriptsInGitHub\"><\/a><\/p>\n\n<h3 id=\"project-folders-from-github\">Project folders from GitHub<\/h3>\n\n<p>These steps are done manually on your local machine.<\/p>\n\n<ol>\n  <li>Create or navigate to a project <strong>folder<\/strong> for this effort.<\/li>\n  <li>\n    <p>Clone automation scripts:<\/p>\n\n    <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>\n  <\/li>\n  <li>Review script coding.<\/li>\n<\/ol>\n\n<hr \/>\n\n<p><a name=\"HowTo\"><\/a><\/p>\n\n<h2 id=\"how-to-manual-steps\">How To Manual Steps<\/h2>\n\n<p>Here are the manual steps to make use of instructions in this tutorial:<\/p>\n\n<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>\n\n<ol>\n  <li>\n    <p>Clone the PlayWright script.<\/p>\n  <\/li>\n  <li>\n    <p>Get an AWS service account linked to AWS Roles assigned to Groups with Permissions.\nSee <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>\n  <\/li>\n  <li>\n    <p>Install within AWS \u201cthe-internet\u201d app under test from DockerHub\n<a href=\"#FloodScriptUpdate\">Flood Script Update-aws-ec2<\/a><\/p>\n\n    <p>NOTE: Automation for installation within the Azure cloud is on our Roadmap.<\/p>\n  <\/li>\n  <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>\n  <li>\n    <p>Install <strong>NewRelic\u2019s monitoring process<\/strong><\/p>\n\n    <p><a href=\"#NewRelicAgentInstall\">NewRelicAgentInstall-aws-ec2.sh<\/a><\/p>\n  <\/li>\n  <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>\n  <li>\n    <p><a href=\"#flood-run-e2e\">Run \u201cflood-run-e2e\u201d to launch runs in flood.io<\/a> at scheduled times to take advantage of AWS Spot Rates.<\/p>\n\n    <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>\n  <\/li>\n  <li><a href=\"#ConfigNewRelic\">Configure New Relic dashboard<\/a><\/li>\n  <li>Review warning and error messages. Analyze statistics collected by the Chrome Browser\u2019s Lighthouse and sent to NewRelic\u2019s dashboard in the cloud.<\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>Experiment with changes to JavaScript, HTML, and CSS in client application code in attempts to reduce timings and resource usage on browsers.<\/li>\n  <li>\n    <p>Modify TypeScript accordingly to identify the <strong>impact<\/strong> of changes made to the application before reruns.<\/p>\n\n    <p>NOTE: Concern about metrics is more about what is happening in client browsers than in the application server. The application under test here (\u201cthe-internet\u201d) does not make use of separate <strong>authentication servers<\/strong>, a <strong>database<\/strong>, nor other back-end services.<\/p>\n  <\/li>\n  <li>\n    <p>Run separate <strong>isolated scenarios<\/strong> to isolate transactions to study:<\/p>\n\n    <ol>\n      <li>\n        <strike>Registration (to establish new users)<\/strike>\n      <\/li>\n      <li>Login (to load authentication)<\/li>\n      <li>Menus and static pages (when users are exploring)<\/li>\n      <li>User data entry filling out forms (editing <strike>and saving form data into a database<\/strike>)<\/li>\n      <li>\n        <strike>Client-side performance during batch reporting, backup, restore, or other back-end processing<\/strike>\n        <p><br \/><\/p>\n      <\/li>\n    <\/ol>\n  <\/li>\n  <li>\n    <p>Identify the <strong>mix of transactions<\/strong> in a standardized run of different transactions at a time.<\/p>\n\n    <p>PROTIP: This exercise stands up <strong>only one instance<\/strong> each and not multiple instances in a cluster for High Availability (HA). \n<!-- 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.\nTODO: Autoscaling be done so that developers habitually use workflows needed for production usage.\n--><\/p>\n  <\/li>\n  <li>\n    <strike>Identify optimal scale-up and scale-down (instance type) configurations<\/strike>\n  <\/li>\n  <li>\n    <strike>Identify optimal scale-out and scale-in configurations<\/strike>\n  <\/li>\n<\/ol>\n\n<p><a name=\"CodeSelenium\"><\/a><\/p>\n\n<h2 id=\"automating-the-internet-using-selenium\">Automating the-internet using Selenium<\/h2>\n\n<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\u2019s website:<\/p>\n\n<ol>\n  <li><a target=\"_blank\" href=\"http:\/\/www.tjmaher.com\/2015\/06\/simple-manipulation-of-login-page.html\">\nSketch out the simple manipulation of a Login page<\/a><\/li>\n  <li><a target=\"_blank\" href=\"http:\/\/www.tjmaher.com\/2015\/06\/creating-common-utilities-for-webdriver.html\">\nDraft Common Utilities<\/a><\/li>\n  <li><a target=\"_blank\" href=\"http:\/\/www.tjmaher.com\/2015\/07\/how-java-stores-constants-static-final.html\">\nStoring Constants: static finals vs enums<\/a><\/li>\n  <li><a target=\"_blank\" href=\"http:\/\/www.tjmaher.com\/2015\/07\/storing-locators-for-web-elements.html\">\nStoring Locators for Web Elements<\/a><\/li>\n  <li><a target=\"_blank\" href=\"http:\/\/www.tjmaher.com\/2015\/07\/the-internet-page-object-model-examples.html\">\nThe Page Object Model<\/a><\/li>\n  <li><a target=\"_blank\" href=\"http:\/\/www.tjmaher.com\/2015\/07\/the-internet-writing-automated-test.html\">\nWriting the Automated Test<\/a><\/li>\n<\/ol>\n\n<p>References:<\/p>\n\n<ul>\n  <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>\n  <li><a target=\"_blank\" href=\"http:\/\/bit.ly\/se-exceptions-howto\">http:\/\/bit.ly\/se-exceptions-howto<\/a> exception handling in Selenium (2015)<\/li>\n<\/ul>\n\n<p>Many of the issues addressed above also need to be addressed by any app automation tool.<\/p>\n\n<p><a name=\"ElementCoding\"><\/a><\/p>\n\n<h2 id=\"coding-flood-element-typescript\">Coding Flood Element Typescript<\/h2>\n\n<p>Typescript is a superset of the JavaScript programming language that control browsers.\nFlood Element makes use of the Typescript language, which transpiles to JavaScript.\nTypescript is used because its <a href=\"#ElementCoding\">transpiler<\/a> checks for errors sooner than with JavaScript.<\/p>\n\n<p>QUESTION: <a target=\"_blank\" href=\"https:\/\/www.geeksforgeeks.org\/difference-between-typescript-and-javascript\/\">Typescript<\/a><\/p>\n\n<ul>\n  <li>Typescript variables are statically typed (not dynamic as in JavaSript)<\/li>\n  <li>Typescript can be coded using object-oriented constructs<\/li>\n<\/ul>\n\n<p>Rather than directly referencing application control IDs, \nso that when an app changes, just one change is needed to make all tests pass again.\nThis is like Selenium <a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=cIevkkD_LB4&amp;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&amp;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>\n\n<h2 id=\"run-element-script-from-client-cli\">Run Element script from client CLI<\/h2>\n\n<p>An example summary report:<\/p>\n\n<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.\n<\/tt><\/p>\n\n<p><a name=\"SetupAWS\"><\/a><\/p>\n\n<h3 id=\"setup-aws-manually\">Setup AWS manually<\/h3>\n\n<p>Based on <a target=\"_blank\" href=\"https:\/\/wilsonmar.github.io\/aws-onboarding\">https:\/\/wilsonmar.github.io\/aws-onboarding<\/a><\/p>\n\n<p>On an internet browser such as Google Chrome, Apple Safari, or Microsoft Edge:<\/p>\n\n<ol>\n  <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>\n  <li>Open AWS master account with email.<\/li>\n  <li>In IAM, lock down master account.<\/li>\n  <li>Create Security Group.<\/li>\n  <li>In IAM, create service account.<\/li>\n  <li>Define service account with permissions.<\/li>\n  <li>Store key pair (credentials) for service account locally.<\/li>\n  <li>\n    <p>Select your AWS region.<\/p>\n\n    <h3 id=\"script-a--instantiate-aws-docker-in-ec2-build-script\">Script A : Instantiate AWS Docker in EC2 build script<\/h3>\n  <\/li>\n  <li>Get to AWS EC2.<\/li>\n  <li>Choose and AMI - Ubuntu 16.04 LTS<\/li>\n  <li>Select EC2 instance type (t2.micro Free Tier eligible can handle up to 50 users), or \u201cm5axlarge\u201d.<\/li>\n  <li>[10:23] Define Security Group add \u201cAll TCP Traffic\u201d.<\/li>\n  <li>Assign Key Pair name ___<\/li>\n  <li>[2:29] Download Key Pair<\/li>\n  <li>Save to file ???<\/li>\n  <li>[2:37] Launch Instance<\/li>\n  <li>\n    <p>PROTIP: Name instance \u201cthe-internet-app\u201d so that files referring to this name (such as newrelicc-infra.yml) don\u2019t have to be changed.<\/p>\n\n    <h3 id=\"terminal---aws-key-pair\">Terminal - AWS Key Pair<\/h3>\n  <\/li>\n  <li>In Terminal store .pem file downloadd<\/li>\n  <li>\n    <p>SSH into instance.<\/p>\n\n    <h3 id=\"terminal---aws-key-pair-1\">Terminal - AWS Key Pair<\/h3>\n\n    <p>Inside \u201cthe-internet\u201d terminal:<\/p>\n  <\/li>\n  <li>\n    <p>[4:08] Within app server to hold \u201cthe-internet\u201d, install prerequisites (GPG certs, Docker):<\/p>\n\n    <pre>\nsudo apt update\nsudo apt install apt-transport-https ca-certificates curl software-properties-common\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu bionic stable\"\nsudo apt update\napt-cache policy docker-ce\nsudo apt install docker-ce\n# verify:\nsudo systemctl status docker\nsudo docker --version\nDOCKER_IMAGE=\"gprestes\/the-internet\"\nsudo docker pull \"$DOCKER_IMAGE\"\nsudo docker run -d -p 7080:5000 \"$DOCKER_IMAGE\"\nCONTAINER_ID=$( docker ps | grep \"$DOCKER_IMAGE\" | cut -d \" \" -f 1 )\nWANIP4=$( curl http:\/\/canhazip.com\" )  # public IP4 address.\n<\/pre>\n  <\/li>\n  <li>\n    <p>[12:04] On a browser, verify external access to \u201cthe-internet\u201d app using the external IP address from AWS, such as:<\/p>\n\n    <p><a target=\"_blank\" href=\"http:\/\/52.91.73.157:7080\/\">http:\/\/52.91.73.157:7080\/<\/a><\/p>\n\n    <p><a name=\"NewRelicAgentInstall\"><\/a><\/p>\n\n    <h3 id=\"setup-newrelic-in-a-ec2-ubuntu-containing-docker\">Setup \u201cNewRelic\u201d in a EC2 Ubuntu containing Docker<\/h3>\n\n    <p>In a browser:<\/p>\n  <\/li>\n  <li>Login to AWS using your service account.<\/li>\n  <li>Get to AWS EC2.<\/li>\n  <li>Choose and AMI - Ubuntu 16.04 LTS<\/li>\n  <li>Select EC2 instance type (t2.micro Free Tier eligible can handle up to 50 users), or \u201cm5axlarge\u201d.<\/li>\n  <li>[10:23] Define Security Group add \u201cAll TCP Traffic\u201d.<\/li>\n  <li>Assign Key Pair name ___<\/li>\n  <li>[2:29] Download Key Pair<\/li>\n  <li>Save to file ??? [15:07] ssh -i \u201cubuntu.pem\u201d ubuntu@ec2-18-208-170-2.compute-1.amazonaws.com<\/li>\n  <li>[2:37] Launch Instance<\/li>\n  <li>\n    <p>Name instance \u201cNewRelic\u201d<\/p>\n\n    <h3 id=\"save-newrelic-license-key\">Save NewRelic License Key<\/h3>\n\n    <p>Based on <a target=\"_blank\" href=\"https:\/\/www.ctl.io\/developers\/blog\/post\/tutorial-protecting-sensitive-info-docker\">*<\/a><\/p>\n  <\/li>\n  <li>\n    <p>[8:13] On the NewRelic web page Account Settings, highlight and save the License Key text<\/p>\n  <\/li>\n  <li>\n    <p>Open file <code class=\"language-plaintext highlighter-rouge\">.\/secrets.env<\/code><\/p>\n\n    <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>\n\n    <pre>\ndocker-compose build\ndocker-compose up\n<\/pre>\n  <\/li>\n  <li>\n    <p>[15:29] Update <code class=\"language-plaintext highlighter-rouge\">newrelicc-infra.yml<\/code> with license_key value.<\/p>\n\n    <p><a name=\"NewRelicInstrAWS\"><\/a><\/p>\n\n    <h3 id=\"install-newrelic-instrumentation-agent\">Install NewRelic instrumentation agent<\/h3>\n  <\/li>\n  <li>[8:13] Switch back to the terminal<\/li>\n  <li>\n    <p>TODO: Script to do this:<\/p>\n\n    <pre>\n# TODO: Replace with reference to secrets.env by docker-compose\necho \"license_key: a46bf7d3b4043cdfffcab3aaef677d29cc60d6be\" | sudo tee -a \/etc\/newrelic-infra.yml\ncurl https:\/\/download.newrelic.com\/infrastructure_agent\/gpg\/newrelic-infra.gpg | sudo apt-key add -\n&nbsp;\ncat \/etc\/lsb-release \n# [13:33] Based on NewRelic web page  \n# https:\/\/docs.newrelic.com\/docs\/infrastructure\/new-relic-infrastructure\/installation\/\nprintf \"deb [arch=amd64] https:\/\/download.newrelic.com\/infrastructure_agent\/linux\/apt bionic main\" \\\n| sudo tee -a \/etc\/apt\/sources.list.d\/newrelic-infra.list\nsudo apt-get update\nsudo apt-get install newrelic-infra -y\n# Verify: more \/etc\/newrelic-infra.yml\n&nbsp;\n# TODO: automate this:\nvi  \/etc\/newrelic-infra.yml\nsudo vi \/etc\/newrelic-infra.yml\n&nbsp;\n# TODO: Identify the Docker ID to a variable: \n$CONTAINER_ID=$(sudo docker ps)\n# (value such as ba965ff40ef7)\nsudo docker exec -i -t \"$CONTAINER_ID\" \/bin\/bash\n&nbsp;\n# TODO: From inside NewRelic process:\nsudo docker cp ba965ff40ef7:\/app\/server.rb .\n&nbsp;\n# [19:31] Reboot:\nsudo systemctl restart newrelic-infra\n<\/pre>\n  <\/li>\n  <li>\n    <p>[19:57] Verify that NewRelic recognizes events from \u201cthe-internet-app\u201d (subsituting the account number), such as:<\/p>\n\n    <p>https:\/\/infrastructure.newrelic.com\/accounts\/2256749\/hosts<\/p>\n\n    <h3 id=\"install-newrelic-agent-in-running-the-internet-app\">Install NewRelic agent in running \u201cthe-internet-app\u201d<\/h3>\n  <\/li>\n  <li>\n    <p>[20:38] Get inside Docker container:<\/p>\n\n    <pre>\n# TODO: Identify the Docker ID to a variable: \n$CONTAINER_ID=$(sudo docker ps)\n# (value such as ba965ff40ef7)\nsudo docker exec -i -t \"$CONTAINER_ID\" \/bin\/bash\n<\/pre>\n\n    <p>Based on https:\/\/docs.newrelic.com\/docs\/agents\/ruby-agent\/installation\/install-new-relic-ruby-agent<\/p>\n  <\/li>\n  <li>\n    <p>[23:17] Add <code class=\"language-plaintext highlighter-rouge\">gem 'newrelic_rpm'<\/code> in Gemfile.<\/p>\n\n    <pre>\n# TODO: From inside NewRelic process (example root@ba965ff40ef7):\nsudo docker cp \"$CONTAINER_ID:\/app\/server.rb\" .\nsudo docker cp server.rb \"$CONTAINER_ID:\/app\/\"\n# Backup existing\ncp Gemfile Gemfile.backup\n# TODO: Automate \n??? gem 'newrelic_rpm\n# For the server.rb which is larger it\u2019s not possible to echo and cat the file,\n# so I copied it locally and edit it to include the require 'newrelic_rpm'\nsudo docker cp ba965ff40ef7:\/app\/server.rb .\n# And copy it back to the container:\nsudo docker cp server.rb ba965ff40ef7:\/app\/\n<\/pre>\n  <\/li>\n  <li>\n    <p>Verify<\/p>\n\n    <h3 id=\"script-b--add-in-serverrb-and-create-new-docker-image\">Script B : Add in server.rb and create new Docker image<\/h3>\n\n    <p>This is so the Docker image can be used for scaling.<\/p>\n\n    <pre>\nsudo docker run -d -p 7080:5000 ruby-bundle-update\n&nbsp;\n# TODO: Identify the Docker ID to a variable: \n$CONTAINER_ID=$(sudo docker ps)\n# (value such as 363ddc8f7439)\nsudo docker exec -i -t \"$CONTAINER_ID\" \/bin\/bash\n# Save updated files:\nsudo docker cp server.rb \"$CONTAINER_ID:\/app\/\"\nsudo docker cp Gemfile \"$CONTAINER_ID:\/app\/\"\n# Get inside:\nsudo docker exec -i -t  \"$CONTAINER_ID\" \/bin\/bash\nsudo docker ps\nsudo docker commit \"$CONTAINER_ID\" ruby-bundle-update\nsudo docker stop \"$CONTAINER_ID\"\n&nbsp;\nsudo docker ps\nsudo docker run -d -p 7080:5000 ruby-bundle-update\nsudo docker ps\n&nbsp;\n# TODO: copy file newrelic.yml from external\ntouch 1\nvi q\nvi 1\nmv 1 newrelic.yml\nvi newrelic.yml \nls -lart  # to verify manually\n&nbsp;\n# TODO: Identify the Docker ID to a variable: \n$CONTAINER_ID=$(sudo docker ps)\n# (value such as 178e6dc45ab7)\n&nbsp;\nsudo docker cp newrelic.yml \"$CONTAINER_ID:\/app\/\"\nsudo docker commit \"$CONTAINER_ID\" final-version\nsudo docker stop \"$CONTAINER_ID\"\n# Verify:\nsudo docker images\n# Restart:\nsudo docker run -d -p 7080:5000 final-version\n&nbsp;\nsudo docker ps\nhistory &gt; \/tmp\/history.file\n<\/pre>\n\n    <p><a name=\"FloodScriptUpdate\"><\/a><\/p>\n\n    <h3 id=\"update-element-ts-script-for-floodio\">Update Element .ts script for flood.io<\/h3>\n  <\/li>\n  <li>\n    <p>Update the IP address in the script (several locations):<\/p>\n\n    <pre>await browser.visit('http:\/\/18.208.170.2:7080\/')<\/pre>\n\n    <h3 id=\"instrument-script-for-newrelic\">Instrument script for NewRelic<\/h3>\n  <\/li>\n  <li>Get license from newrelic.com<\/li>\n  <li>\n    <p>Insert license into script<\/p>\n\n    <p>NOTE: <a target=\"_blank\" href=\"https:\/\/github.com\/ThyWoof\/geek-movie-shop\">https:\/\/github.com\/ThyWoof\/geek-movie-shop<\/a><\/p>\n\n    <h3 id=\"script-c--save-instrumented-docker-image-to-dockerhub-for-reuse\">Script C : Save instrumented Docker image to DockerHub for reuse<\/h3>\n  <\/li>\n  <li>Docker save<\/li>\n<\/ol>\n\n<p><a name=\"PrepFlood\"><\/a><\/p>\n\n<h2 id=\"perpare-for-flood\">Perpare for Flood<\/h2>\n\n<ol>\n  <li>If you don\u2019t have a <a target=\"_blank\" href=\"https:\/\/www.flood.io\/\">flood.io<\/a> account, get one (manually).<\/li>\n  <li>Confirm your account via email.<\/li>\n  <li>Log into Flood.io.<\/li>\n  <li>Get license token.<\/li>\n<\/ol>\n\n<p><a name=\"flood-run-e2e\"><\/a><\/p>\n\n<h2 id=\"run-flood-against-app-in-aws-under-instrumentation\">Run flood against app in AWS under instrumentation<\/h2>\n\n<p>This step runs a shell script file at<br \/>\n<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>\n\n<p>It is customized from an example in <a target=\"_blank\" href=\"https:\/\/docs.flood.io\/#end-to-end-example\">Flood docs<\/a>.<\/p>\n\n<ol>\n  <li>If you don\u2019t have a GitHub account, get one.<\/li>\n  <li>\n    <p>Use an internet browser to view:<\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/github.com\/wilsonmar\/DevSecOps\/\">\nhttps:\/\/github.com\/wilsonmar\/DevSecOps\/<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Click \u201cFork\u201d button to copy the repository under your own account.<\/p>\n  <\/li>\n  <li>Open a Terminal.<\/li>\n  <li>\n    <p>Navigate to the containing folder where GitHub creates folders.\nMake a folders as necessary.<\/p>\n  <\/li>\n  <li>\n    <p>Clone the whole DevSecOps repo:<\/p>\n\n    <pre>git clone <a target=\"_blank\" href=\"https:\/\/github.com\/wilsonmar\/DevSecOps\/\">https:\/\/github.com\/wilsonmar\/DevSecOps\/<\/a> <\/pre>\n  <\/li>\n  <li>\n    <p>Navigate into the folder:<\/p>\n\n    <pre>cd DevSecOps\ncd flood-io<\/pre>\n  <\/li>\n  <li>\n    <p>Edit the environment file using your favorite editor, such as:<\/p>\n\n    <pre>nano flood-env.sh<\/pre>\n  <\/li>\n  <li>Insert the license token from flood.io.<\/li>\n  <li>Save the file<\/li>\n  <li>\n    <p>Run the environment file to load variables into memory.<\/p>\n  <\/li>\n  <li>\n    <p>Edit the script using your favorite editor, such as:<\/p>\n\n    <pre>nano flood-run-e2e.sh<\/pre>\n  <\/li>\n  <li>Define other parameters: run conditions.<\/li>\n  <li>\n    <p>Validate run pre-conditions.<\/p>\n  <\/li>\n  <li>Initiate run.<\/li>\n  <li>Stop run.<\/li>\n  <li>Collect run results.<\/li>\n  <li>Analyze run results \/ Generate visualizations.<\/li>\n  <li>\n    <p>Display summary statistics.<\/p>\n  <\/li>\n  <li>Git add, commit, and push the changed script to GitHub.<\/li>\n<\/ol>\n\n<p><a name=\"ConfigNewRelic\"><\/a><\/p>\n\n<h2 id=\"config-new-relic-dashboard\">Config New Relic Dashboard<\/h2>\n\n<p>Questions about several other dimensions, such as:<\/p>\n\n<ul>\n  <li>What is the impact on the cloud bill (costs) of that cool JavaScript UI code?<\/li>\n  <li>What is the capacity of a chosen instance type (such as the free tier t2.micro)?<\/li>\n  <li>How much more is needed to run the anticipated peak load?<\/li>\n  <li>What happens when that peak load is exceeded?\n   <br \/><br \/><\/li>\n<\/ul>\n\n<p>https:\/\/docs.newrelic.com\/docs\/insights\/use-insights-ui\/manage-dashboards\nhttps:\/\/learn.newrelic.com\/get-started-with-apm\nhttps:\/\/learn.newrelic.com\/dashboards-and-data-apps\nhttps:\/\/docs.newrelic.com\/docs\/plugins\/plugins-new-relic\/custom-dashboards-custom-views\nhttps:\/\/blog.newrelic.com\/product-news\/steal-this-dashboard\/<\/p>\n\n<h2 id=\"other-apm\">Other APM<\/h2>\n\n<p>A full list of APM tools:<\/p>\n\n<ul>\n  <li>New Relic<\/li>\n  <li>Dynatrace OneAgent<\/li>\n  <li>Dynatrace AppMon<\/li>\n  <li>AppDynamics<\/li>\n  <li>NudgeAPM<\/li>\n<\/ul>\n\n<p><a name=\"VerifySecurity\"><\/a><\/p>\n\n<h2 id=\"security-scans\">Security scans<\/h2>\n\n<p>In today\u2019s ransomware environment, we all need to be extra vigilant to ensure security.<\/p>\n\n<ol>\n  <li>\n    <p>Install <a target=\"_blank\" href=\"https:\/\/inspec.io\/\">https:\/\/inspec.io<\/a> \n(created by Chef)<\/p>\n  <\/li>\n  <li>\n    <p>Install <a target=\"_blank\" href=\"https:\/\/github.com\/docker\/doccker-bench-security\">https:\/\/github.com\/docker\/doccker-bench-security<\/a><\/p>\n  <\/li>\n  <li>\n    <p>Install CIS (Center for Internet Security) benchmarks for specific distributions and versions of Linux. For example:<\/p>\n\n    <ul>\n      <li>Distribution independent Linux<\/li>\n      <li>Debian Linux 8<\/li>\n      <li>Ubuntu Linux 16.04 LTS<\/li>\n      <li>Amazon Linux 2<\/li>\n      <li>Centos Linux 7<\/li>\n      <li>Oracle Linux 7<\/li>\n      <li>Red Hat Enterprise Linux 7<\/li>\n      <li>SUSE Linux Enterprise 12<\/li>\n    <\/ul>\n  <\/li>\n<\/ol>\n\n<p>The Linux Audit Framework is used to identify potential security weaknesses or policy violations<\/p>\n\n<ol>\n  <li>\n    <p>Install<\/p>\n\n    <pre>sudo apt install auditd\npidof auditd<\/pre>\n  <\/li>\n  <li>\n    <p>Add rules and list them<\/p>\n\n    <pre>sudo auditctl -w \/usr\/bin\/dockerd -k docker\nsudo auditctl -l<\/pre>\n  <\/li>\n  <li>Turn auditing on.<\/li>\n  <li>\n    <p>Analyze report<\/p>\n\n    <pre>sudo aureport<\/pre>\n  <\/li>\n<\/ol>\n\n<p><a target=\"_blank\" href=\"https:\/\/app.pluralsight.com\/library\/courses\/securing-docker-platform\/table-of-contents\">Securing the Docker Platform<\/a>\nby Nigel Brown Released 21 Jun 2018<\/p>\n\n<hr \/>\n\n<p><a name=\"Playwright\"><\/a><\/p>\n\n<h2 id=\"playwright\">Playwright<\/h2>\n\n<p><img align=\"right\" width=\"150\" alt=\"microsoft\" src=\"https:\/\/raw.githubusercontent.com\/microsoft\/playwright\/main\/packages\/recorder\/public\/playwright-logo.svg\" \/>\nUnder 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>\n\n<p>Playwright\u2019s marketing home page is at:<br \/><\/p>\n<ul><a target=\"_blank\" href=\"https:\/\/playwright.dev\/\"><strong>https:\/\/playwright.dev<\/strong><\/a><br \/>\n   <\/ul>\n\n<p>Playwright was open-sourced by Microsoft on April 16, 2016, with first tag on<br \/>\n<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>\n\n<p>The library maintained by <a target=\"_blank\" href=\"https:\/\/github.com\/microsoft\/playwright\/graphs\/contributors\">several active contributors<\/a>:<\/p>\n<ul>\n  <li><a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/pavel-feldman-24b0041\/\">Pavel Feldman at MS SF<\/a><\/li>\n  <li><a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/dgozman\/\">Dmitry Gozman<\/a><\/li>\n  <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>)\n   <br \/><br \/><\/li>\n<\/ul>\n\n<ol>\n  <li>\n    <p>Subscribe to the product\u2019s social media, led by <a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/debbie-obrien\/\">Debbie O\u2019Brien, Sr. Tech PM @Microsoft<\/a><\/p>\n\n    <ul>\n      <li><a target=\"_blank\" href=\"https:\/\/discord.com\/servers\/playwright-807756831384403968\">discord.com\/servers\/playwright<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/twitter.com\/playwrightweb\">Twitter\/x @playwrightweb<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/dev.to\/playwright\">dev.to\/playwright<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/Playwrightdev\">youtube.com\/Playwrightdev<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/playwright.dev\/community\/conference-videos\">playwright.dev\/community\/conference-videos<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/stackoverflow.com\/questions\/tagged\/playwright\">stackoverflow.com\/questions\/tagged\/playwright\u201d&gt;<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/testguild.me\/zcgcga\">testguild.me\/zcgcga<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/playwright.dev\/docs\/writing-tests\">https:\/\/playwright.dev\/docs\/writing-tests<\/a>.\n<br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>Create an environment for Node to run.<\/p>\n  <\/li>\n  <li>\n    <p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=4-LwodVujTg&amp;list=PLQ6Buerc008ed-F9OksF7ek37wR3y916p\">View Debbie\u2019s YouTube series<\/a> to get started.<\/p>\n\n    <ol>\n      <li><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=JdMkZUePkSE&amp;list=PLQ6Buerc008ed-F9OksF7ek37wR3y916p&amp;index=2\">VIDEO<\/a>: Install Playwright within VSCode (instead of CLI git clone)<\/li>\n      <li>Add GitHub Actions in file <tt>playwrite.yml<\/tt> created within repo folder <tt>.github\/workflows<\/tt>\n<br \/><br \/><\/li>\n    <\/ol>\n  <\/li>\n  <li>Each language that calls the API has its own documentation:\n    <ul>\n      <li><a targete=\"_blank\" href=\"https:\/\/playwright.dev\/python\/docs\/intro\">Python using PyTest<\/a><\/li>\n      <li><a targete=\"_blank\" href=\"https:\/\/playwright.dev\/docs\/intro\">Node.js (JavaScript) running dotnet installing NUnitof MSTest<\/a><\/li>\n      <li><a targete=\"_blank\" href=\"https:\/\/playwright.dev\/dotnet\/docs\/intro\">.NET C#<\/a><\/li>\n      <li><a targete=\"_blank\" href=\"https:\/\/playwright.dev\/java\/docs\/intro\">Java installed using mvn<\/a>\n<br \/><br \/><\/li>\n    <\/ul>\n\n    <h2 id=\"python-scripting\">Python scripting<\/h2>\n\n    <p>The PlayWright documention talks about a <tt>test-sample.py<\/tt> script.<\/p>\n\n    <p>PROTIP: You can save hours of headache by using the repo I created after getting the <tt>uv<\/tt> package to work.<\/p>\n  <\/li>\n  <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>\n  <li>Create a folder where Git will create a folder using these commands:\n    <pre>\ngit clone https:\/\/github.com\/bomonike\/playwright-scripts; cd playwright-scripts\n<\/pre>\n  <\/li>\n  <li>Create a folder where Git will create a folder using these commands:\n    <pre>\ncd test-example\npython -m venv .venv\nsource .venv\/bin\/activate\nuv pip install pytest pytest-playwright playwright -U\nplaywright install  #  browser binaries: Chromium, Firefox, WebKit, FFMPEG\n# NOTE: cached in \/Users\/johndoe\/Library\/Caches\/ms-playwright\/ to run Playwright tests.\n\npytest test_example.py --browser chromium --headed --debug\n<\/pre>\n  <\/li>\n  <li>Run a sample test in the language of your choice from above. For Python:\n    <pre>pytest test_example.py --browser chromium --headed --debug\n<\/pre>\n  <\/li>\n  <li>\n    <p>Generate emulation (test) scripts by recording actions as a human user.<\/p>\n\n    <p>Accelerate test creation and insights with AI-powered tooling.<\/p>\n  <\/li>\n  <li>\n    <p>Setup Microsoft\u2019s <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 \u201cAzure App Testing\u201d) at:<\/a><\/p>\n\n    <p><a target=\"_blank\" href=\"https:\/\/azure.microsoft.com\/en-us\/products\/playwright-testing\/\">https:\/\/azure.microsoft.com\/en-us\/products\/playwright-testing<\/a>\n(formerly at<br \/>\n<a target=\"_blank\" href=\"https:\/\/playwright.microsoft.com\/\"><strong>https:\/\/playwright.microsoft.com<\/strong><\/a>)<\/p>\n\n    <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>\n\n    <ul>\n      <li>Playwright Workspaces for functional QA testing<\/li>\n      <li>Azure Load Testing for performance testing<\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <p>Read the documentation at https:\/\/learn.microsoft.com\/en-us\/azure\/app-testing\/<\/p>\n\n    <p>Under your subscription, create a globally unique <strong>workspace<\/strong> of up to 64 alphanumeric characters (no dashes, etc.).<\/p>\n\n    <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>\n  <\/li>\n  <li>\n    <p>pricing<\/p>\n\n    <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>\n\n    <p>See the Pricing page at\nhttps:\/\/azure.microsoft.com\/en-us\/pricing\/purchase-options\/azure-account?icid=playwright-testing<\/p>\n\n    <p>The choice is embedded in the URL used to call the service, CLI variable used within test script code:<\/p>\n\n    <p><tt>export PLAYWRIGHT_SERVICE_URL=wss:\/\/eastus.api.playwright.microsoft.com\/api\/authorize\/connectSession\necho PLAYWRIGHT_SERVICE_URL=\u201d$PLAYWRIGHT_SERVICE_URL\u201d<\/tt><\/p>\n\n    <p>Generate the API Access token <tt>PLAYWRIGHT_SERVICE_ACCESS_TOKEN=<\/tt> and store it securely in an encrypted vault until needed.<\/p>\n\n    <p>The service provides browser and OS combinations (up to 50 in parallel, at scale). \nTo run 50 Playwright tests:<\/p>\n\n    <pre><strong>npx playwright test --workers=50 --config=playwright.service.config.ts<\/strong><\/pre>\n\n    <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>\n\n    <p>If each of 50 takes 12 seconds on average, you\u2019ll be billed for 10 \u201ctest minutes\u201d, calculated as 50 tests x 12 seconds \u00f7 60 seconds in a minute. Each \u201cTest minute\u201d is when a Playwright test runs in the service\u2019s cloud browsers.<\/p>\n\n    <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>\n\n    <p>QUESTION: Would running apps hosted within Azure remove variability in time going through the public internet?<\/p>\n\n    <ul>\n      <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>\n      <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&amp;tabs=playwrightcli\">Quickstart<\/a><\/li>\n      <li><a target=\"_blank\" href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/playwright-testing\/\">https:\/\/learn.microsoft.com\/en-us\/azure\/playwright-testing<\/a>\n<br \/><br \/><\/li>\n    <\/ul>\n  <\/li>\n  <li>\n    <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>\n  <\/li>\n  <li>\n    <p>QUESTION: Use Playwright scripts to perform load testing?<\/p>\n\n    <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 \u201cMicrosoft Responsible AI Agreement\u201d. That is needed before automation such as Terraform and Bicep are allowed to create AI-related resources.<\/p>\n  <\/li>\n<\/ol>\n\n<p>In response to https:\/\/www.reddit.com\/r\/QualityAssurance\/comments\/1cq4ja8\/learning_playwright\/<\/p>\n\n<p>A tutorial by Artem is provided at https:\/\/www.bondaracademy.com\/course\/sdet-with-playwright\n(and on his Udemy class) for $139 for a quiz, or $499 for test case coding and code reviews using JavaScript (not Python).<\/p>\n\n<p><a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=pq20Gd4LXeI&amp;t=29s\">VIDEO course<\/a> by Mukesh Otwani.<\/p>\n\n<hr \/>\n\n<h2 id=\"resources\">Resources<\/h2>\n\n<p>PlayWright.<\/p>\n\n    <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>\n  "}]}