tag:blogger.com,1999:blog-288463362024-03-15T18:11:17.535-07:00intltechventures.blogspot.com<strong>Research Notebook - <a href="http://www.intltechventures.com">International Technology Ventures, Inc.</a></strong>
<p>
Accelerate. Innovate. Elevate.
</p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.comBlogger1003125tag:blogger.com,1999:blog-28846336.post-58061735452904310982024-03-05T16:46:00.000-08:002024-03-05T19:29:28.087-08:002024-03-05 Tuesday - Professional Services Consulting - Utilization Rates<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMx-btBmxI7hQFVeW-69_B8kMirgv3vV9qjMsAVkReESLSvj_AaFT65_-xmpRRuLOPgt2PBTGeLrmhu-TeCw0VzOyNKiB24I-NmJ2IJNIF0hsYTvlhFQ9qR7uxb0zlGwfIkAjc3QRUyhmDxzfZfwRFOMZgBNAQB7ANJlrEhiWnr4Nj8936CtNL/s1280/fire-2946038_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="853" data-original-width="1280" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMx-btBmxI7hQFVeW-69_B8kMirgv3vV9qjMsAVkReESLSvj_AaFT65_-xmpRRuLOPgt2PBTGeLrmhu-TeCw0VzOyNKiB24I-NmJ2IJNIF0hsYTvlhFQ9qR7uxb0zlGwfIkAjc3QRUyhmDxzfZfwRFOMZgBNAQB7ANJlrEhiWnr4Nj8936CtNL/w640-h426/fire-2946038_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span class="break-words"><span><span dir="ltr"><span style="font-size: x-small;">[image credit: kolyaeg on <a data-attribute-index="0" href="http://pixabay.com" target="_self">pixabay.com</a>]</span></span></span></span></td></tr></tbody></table><p><br /> <br /><span class="break-words" style="font-size: large;"><span><span dir="ltr">In the world of Professional Services
Consulting, I learned some interesting heuristics, several decades ago,
that have stood the test of time. <br /><br />(these are based on long-term sustainable planning models...)<br /><br />If you build the financial model for your practice around an assumption of a utilization rate of: <br /> </span></span></span></p><p><span class="break-words" style="font-size: large;"><span><span dir="ltr"><b>60%</b>: Your firm has a good chance to survive & thrive - even in the lean times. You
won't make as much money - and you won't be able to pay your personnel
top rates. But you will have the advantage of long-term continuity -
while others disappear.<br /><br /><b>70%</b>: Your firm will experience wider
swings in unplanned reductions-in-force. This will impact morale,
training costs, client satisfaction, and retention.<br /><br /><b>80%+</b>:
You'll be able to pay your personnel higher rates, and provide a lot of
nice benefits - but your firm will experience increased levels of staff
turn-over, and burn-out. Decreased retention will affect morale.
Increased client account churn will damage the bottom line. In the lean
times, your company will be decimated by reductions-in-force. <br /><br /><b>95%+</b>: You are on the highway to hell. You are in the "sweatshop" business (or, indentured servitude). 🤣 <br /><br /><b>110%+</b>: Your business model is <u><i>fundamentally</i></u> based on abuse of your personnel.</span></span></span></p><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-54065933948538897262024-02-29T20:52:00.000-08:002024-02-29T20:55:13.126-08:002024-02-29 Thursday - Research Papers - Composing Words Like Music<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZNMGctsmvyPVK1F1kbIXfzYWnJsAfCZX9t3VjOdL7R6moayyqsB4H7ZByV4UVn1YJZCKoiJcfkuMjkEYXQsJqSlxRqHzZ5pOTG6dhcMHhcOjyYyAOAX3VZFAVC2eTZ9WvpMFdD3cs_LdGvLbfNB4rd3oT73MmgZWIApnnUsMlJsRrlHXqKeqb/s1280/violin-374096_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="853" data-original-width="1280" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZNMGctsmvyPVK1F1kbIXfzYWnJsAfCZX9t3VjOdL7R6moayyqsB4H7ZByV4UVn1YJZCKoiJcfkuMjkEYXQsJqSlxRqHzZ5pOTG6dhcMHhcOjyYyAOAX3VZFAVC2eTZ9WvpMFdD3cs_LdGvLbfNB4rd3oT73MmgZWIApnnUsMlJsRrlHXqKeqb/w640-h426/violin-374096_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: <span class="break-words"><span><span dir="ltr">niekverlaan on <a data-attribute-index="0" href="http://pixabay.com" target="_self">pixabay.com</a>]</span></span></span></td></tr></tbody></table><br /><span style="font-size: medium;"><span class="break-words"><span><span dir="ltr">Burning the midnight oil tonight, to put the finishing touches on a client research paper. <br /><br />Research
skills - honed over decades - allowing me to quickly develop deep
insights into a new subject-matter area, surveying relevant domain
literature, assembling analysis of the choices, alternatives, pros and
cons, developing an understanding of the forces/constraints that touch
on both the business and technical aspects, highlighting the key
issues/considerations - and summarizing the information succinctly so
that an executive can make a decision. <br /><br />It is something like a
duality of both composing & performing a piece of music. There is an
art to creating a balance, a symmetry, and composing the threads
of different movements - into a piece of work that hits just the right
notes. </span></span></span></span><p></p><p> </p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-37503355057958326042024-02-25T21:35:00.000-08:002024-02-25T21:35:03.639-08:002024-02-25 Sunday - Understanding Quantum Technologies 2023, Sixth Edition<h3 style="text-align: left;"> <span class="break-words
"><span dir="ltr"><b>Understanding Quantum Technologies 2023, Sixth edition (1,366 pages)</b></span></span></h3><ul style="text-align: left;"><li class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" style="color: var(--primary-text); font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><a href="https://arxiv.org/abs/2111.15352" target="_blank">https://arxiv.org/abs/2111.15352</a></span></span></li><li class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" style="color: var(--primary-text); font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><a href="https://arxiv.org/ftp/arxiv/papers/2111/2111.15352.pdf" target="_blank">https://arxiv.org/ftp/arxiv/papers/2111/2111.15352.pdf</a></span></span><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" style="color: var(--primary-text); font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"> </span></span></li><li class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" style="color: var(--primary-text); font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><a href="https://doi.org/10.48550/arXiv.2111.15352" target="_blank">https://doi.org/10.48550/arXiv.2111.15352</a></span></span></li></ul><p><br /><span class="break-words
"><span dir="ltr"><br /><span style="font-size: medium;"></span></span></span></p><blockquote><span style="font-size: medium;">"<i>Understanding
Quantum Technologies 2023 is a creative-commons ebook that provides a
unique 360 degrees overview of quantum technologies from science and
technology to geopolitical and societal issues. It covers quantum
physics history, quantum physics 101, gate-based quantum computing,
quantum computing engineering (including quantum error corrections and
quantum computing energetics), quantum computing hardware (all qubit
types, including quantum annealing and quantum simulation paradigms,
history, science, research, implementation and vendors), quantum
enabling technologies (cryogenics, control electronics, photonics,
components fabs, raw materials), unconventional computing (potential
alternatives to quantum and classical computing), quantum
telecommunications and cryptography, quantum sensing, quantum computing
algorithms, software development tools and use cases, quantum
technologies around the world, quantum technologies societal impact and
even quantum fake sciences. The main audience are computer science
engineers, developers and IT specialists as well as quantum scientists
and students who want to acquire a global view of how quantum
technologies work, and particularly quantum computing. This version is
an update to the 2022 and 2021 editions published respectively in
October 2022 and October 2021. An update log is provided at the end of
the book.</i>"</span></blockquote><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-73636386727165629262024-02-24T14:35:00.000-08:002024-02-24T14:44:56.811-08:002024-02-24 Saturday - Interop 2024 Dashboard<p></p><h4 class="x1heor9g x1qlqyl8 x1pd3egz x1a2a7pz xod5an3" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: inherit; letter-spacing: normal; margin: 0px 0px 12px; orphans: 2; outline: none; padding: 0px; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x1603h9y x1u7k74 xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 1.25rem; font-weight: 400; line-height: 1.2; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;">Interop 2024 Dashboard</span></h4><h4 class="x1heor9g x1qlqyl8 x1pd3egz x1a2a7pz xod5an3 x14vqqas" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: inherit; letter-spacing: normal; margin: 12px 0px; orphans: 2; outline: none; padding: 0px; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x1603h9y x1u7k74 xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 1.25rem; font-weight: 400; line-height: 1.2; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><b style="font-weight: 600;"><span style="font-family: inherit;"><i>VERY</i></span></b></span><span> </span>Interesting - compare the compatibility score differences between Stable and Experimental</span></h4><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><a class="x1i10hfl xjbqb8w x1ejq31n xd10rxx x1sy0etr x17r0tee x972fbf xcfux6l x1qhh985 xm0m39n x9f619 x1ypdohk xt0psk2 xe8uvvx xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x16tdsg8 x1hl2dhg xggy1nq x1a2a7pz x1fey0fg" href="https://l.workplace.com/l.php?u=https%3A%2F%2Fwpt.fyi%2Finterop-2024&h=AT2rGsDhm17V7L2D_yCniIFKRMOhM6YJEpoCFofvdYzAsH5Tzkf3U5KRxwGKz_hubi72ejIKSOSTaM7M3NMu2IP15ODQ3Sdjd4kCSlXz923SbSMyXQZWhETt1GYm0EAp8aeuO9CTOweaHWK1wMdrukN2gabm&__tn__=-UK-R&c[0]=AT1jsBQnK_beUKDI7pWk6ym4Y1xiZ40psUzVQBN5WJm_V3a5uGyOrdDoCyQ4yyXCHYBJMxS4WBDRrI_nJRllLfFPWcFruRIN2ewltc18mSsmaD8wthPZP2Rqvr3AZWeJ3SlW" rel="nofollow noreferrer" role="link" style="-webkit-tap-highlight-color: transparent; background-color: transparent; border-style: none; border-width: 0px; box-sizing: border-box; color: var(--blue-link); cursor: pointer; display: inline; font-family: inherit; list-style: none; margin: 0px; outline: none; padding: 0px; text-align: inherit; text-decoration: none; touch-action: manipulation;" tabindex="0" target="_blank">https://wpt.fyi/interop-2024</a></span></span><div class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"> </span></span></div><div class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><b><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;">Stable scores (2024-02-24)</span></span></b></div><div class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Dy-IMl16t8iFAooJz-vHi9MMRslIYfrJSPEfWmfPJw3kQ_lhoXM8CPrdU-6aO7Cp0YoZCLEjfj8QfE94GauAXMKXjXFcE7egzUipizNTN-8JLZxhyplNqhnuaF0g4gK1cB3cgx5r427zIY6jKHAxwPb0nXbu3_yZJKqbasCXNNb-i1jndXSO/s1393/Screenshot%202024-02-24%20163317%20-%20Interop%202024%20-%20Stable%20Scores.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="687" data-original-width="1393" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Dy-IMl16t8iFAooJz-vHi9MMRslIYfrJSPEfWmfPJw3kQ_lhoXM8CPrdU-6aO7Cp0YoZCLEjfj8QfE94GauAXMKXjXFcE7egzUipizNTN-8JLZxhyplNqhnuaF0g4gK1cB3cgx5r427zIY6jKHAxwPb0nXbu3_yZJKqbasCXNNb-i1jndXSO/w640-h316/Screenshot%202024-02-24%20163317%20-%20Interop%202024%20-%20Stable%20Scores.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">source: <span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><a class="x1i10hfl xjbqb8w x1ejq31n xd10rxx x1sy0etr x17r0tee x972fbf xcfux6l x1qhh985 xm0m39n x9f619 x1ypdohk xt0psk2 xe8uvvx xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x16tdsg8 x1hl2dhg xggy1nq x1a2a7pz x1fey0fg" href="https://l.workplace.com/l.php?u=https%3A%2F%2Fwpt.fyi%2Finterop-2024&h=AT2rGsDhm17V7L2D_yCniIFKRMOhM6YJEpoCFofvdYzAsH5Tzkf3U5KRxwGKz_hubi72ejIKSOSTaM7M3NMu2IP15ODQ3Sdjd4kCSlXz923SbSMyXQZWhETt1GYm0EAp8aeuO9CTOweaHWK1wMdrukN2gabm&__tn__=-UK-R&c[0]=AT1jsBQnK_beUKDI7pWk6ym4Y1xiZ40psUzVQBN5WJm_V3a5uGyOrdDoCyQ4yyXCHYBJMxS4WBDRrI_nJRllLfFPWcFruRIN2ewltc18mSsmaD8wthPZP2Rqvr3AZWeJ3SlW" rel="nofollow noreferrer" role="link" style="-webkit-tap-highlight-color: transparent; background-color: transparent; border-style: none; border-width: 0px; box-sizing: border-box; color: var(--blue-link); cursor: pointer; display: inline; font-family: inherit; list-style: none; margin: 0px; outline: none; padding: 0px; text-align: inherit; text-decoration: none; touch-action: manipulation;" tabindex="0" target="_blank">https://wpt.fyi/interop-2024</a></span></span></td></tr></tbody></table><br /></span></span></div><div class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"> </span></span></div><div class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><b>Experimental scores (2024-02-24)</b></span></span></div><div class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><b> </b></span></span></div><div class="x1e56ztr xisnujt" style="-webkit-text-stroke-width: 0px; background-color: white; color: #050505; font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 8px; min-height: 20px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><b><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_MnENNx7mxke3PxAk8HJzmLmPkK04q1sw6Yuv0vBPOWhEgRHmZgoG5X4siLR5aFWNEOWdiette-Ncu3zqYirgolnAoeaZsLNiMqnm132c7TB0180Oyd1vDigSQ7xRgsfQ85znSgD09ZqztKWwUhyphenhyphenSLQoRxGq_BjJ9cujKCm8Zn41naVzlP8vz/s1412/Screenshot%202024-02-24%20163317%20-%20Interop%202024%20-%20Experimental%20Scores.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="764" data-original-width="1412" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_MnENNx7mxke3PxAk8HJzmLmPkK04q1sw6Yuv0vBPOWhEgRHmZgoG5X4siLR5aFWNEOWdiette-Ncu3zqYirgolnAoeaZsLNiMqnm132c7TB0180Oyd1vDigSQ7xRgsfQ85znSgD09ZqztKWwUhyphenhyphenSLQoRxGq_BjJ9cujKCm8Zn41naVzlP8vz/w640-h346/Screenshot%202024-02-24%20163317%20-%20Interop%202024%20-%20Experimental%20Scores.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">source: <span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x6prxxf xvq8zen xo1l8bm xzsf02u" color="var(--primary-text)" style="font-family: inherit; font-size: 0.9375rem; font-weight: 400; line-height: 1.3333; max-width: 100%; min-width: 0px; overflow-wrap: break-word; word-break: break-word;"><span style="font-family: inherit;"><a class="x1i10hfl xjbqb8w x1ejq31n xd10rxx x1sy0etr x17r0tee x972fbf xcfux6l x1qhh985 xm0m39n x9f619 x1ypdohk xt0psk2 xe8uvvx xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x16tdsg8 x1hl2dhg xggy1nq x1a2a7pz x1fey0fg" href="https://l.workplace.com/l.php?u=https%3A%2F%2Fwpt.fyi%2Finterop-2024&h=AT2rGsDhm17V7L2D_yCniIFKRMOhM6YJEpoCFofvdYzAsH5Tzkf3U5KRxwGKz_hubi72ejIKSOSTaM7M3NMu2IP15ODQ3Sdjd4kCSlXz923SbSMyXQZWhETt1GYm0EAp8aeuO9CTOweaHWK1wMdrukN2gabm&__tn__=-UK-R&c[0]=AT1jsBQnK_beUKDI7pWk6ym4Y1xiZ40psUzVQBN5WJm_V3a5uGyOrdDoCyQ4yyXCHYBJMxS4WBDRrI_nJRllLfFPWcFruRIN2ewltc18mSsmaD8wthPZP2Rqvr3AZWeJ3SlW" rel="nofollow noreferrer" role="link" style="-webkit-tap-highlight-color: transparent; background-color: transparent; border-style: none; border-width: 0px; box-sizing: border-box; color: var(--blue-link); cursor: pointer; display: inline; font-family: inherit; list-style: none; margin: 0px; outline: none; padding: 0px; text-align: inherit; text-decoration: none; touch-action: manipulation;" tabindex="0" target="_blank">https://wpt.fyi/interop-2024</a></span></span></td></tr></tbody></table><br /> </b> <br /></span></span></div>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-67889492569700930792024-02-10T12:51:00.000-08:002024-02-10T13:07:58.245-08:002024-02-10 Saturday - Today's Meditation: Impact of -/+ Two Standard Deviation Hiring Decisions<p><span class="break-words"><span><span dir="ltr"> </span></span></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw2u3f-LWZ9Xo8vYrzj0dB2g_B8ntKDd63-VuAljsFm8ddyEiWAiUlypcDeL9-z_IZgoM4gsuKetwdy9BmtURABP8aIXlL-wELeJ5LRA_PchthGMDemVcZNia5ufDhxhWgwjoHoWdvxIuLbjLl42ob4K_Kml9OVaxy6DiJhOI_J4-Ncxc5zitK/s1280/scale-1987770_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="854" data-original-width="1280" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw2u3f-LWZ9Xo8vYrzj0dB2g_B8ntKDd63-VuAljsFm8ddyEiWAiUlypcDeL9-z_IZgoM4gsuKetwdy9BmtURABP8aIXlL-wELeJ5LRA_PchthGMDemVcZNia5ufDhxhWgwjoHoWdvxIuLbjLl42ob4K_Kml9OVaxy6DiJhOI_J4-Ncxc5zitK/w640-h428/scale-1987770_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span class="break-words"><span><span dir="ltr">[image credit: Dimitris Vetsikas on <a data-attribute-index="0" href="http://Pixabay.com" target="_self">Pixabay.com</a>]</span></span></span></td></tr></tbody></table><span class="break-words"><span><span dir="ltr"><br /></span></span></span><p></p><p><span class="break-words"><span><span dir="ltr"> </span></span></span></p><p><span class="break-words"><span><span dir="ltr"><span style="font-size: large;">Sometimes, I think the practical
implications of the difference in hiring decisions...between hiring
someone that is two Standard Deviations to the left of the mean vs. two
Standard Deviations to the right - is lost on those responsible for
hiring. This is not limited to a single dimension of measurement - it is
meant in the context of the broader assessment of the individual:
skills, capabilities, insights, intuition, experience, etc. <br /><br /></span></span></span></span><span style="font-size: large;">The phrase: "<i><a href="https://www.merriam-webster.com/dictionary/false%20economy" target="_blank">False Economy</a></i>" comes to mind...</span></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-8392356561430015582024-01-24T17:51:00.000-08:002024-02-22T16:12:35.919-08:002024-01-24 Wednesday - Signs You Might Be On A Death March Project<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh19gWSLMDtcP15LYSM3ezJmvjtBoVF8D7qyiBswjGJkkC2cqgFO9sSPkpYBIfTCo9FNobXkkEZmOyWrmVH22Jp_-6lBbRd4OEhm1TxWsQHs2qFBCQQwtpilKNmBkVHpm9vIMHPRVMX_lsfMDjNiFycvgagYbyBhRVBGAhII16vR4ihdBTbpcP7/s1280/bone-5976935_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="853" data-original-width="1280" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh19gWSLMDtcP15LYSM3ezJmvjtBoVF8D7qyiBswjGJkkC2cqgFO9sSPkpYBIfTCo9FNobXkkEZmOyWrmVH22Jp_-6lBbRd4OEhm1TxWsQHs2qFBCQQwtpilKNmBkVHpm9vIMHPRVMX_lsfMDjNiFycvgagYbyBhRVBGAhII16vR4ihdBTbpcP7/w640-h426/bone-5976935_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: hgenthe on pixabay.com]<br /></td></tr></tbody></table><br /> <p></p><p><span style="font-size: large;">Today's meditation:</span></p><p><span style="font-size: large;">Signs you might be on a "<span style="color: red;"><i>Death March</i></span>" project...</span></p><ul style="text-align: left;"><li><span style="font-size: large;">Scope increases by a multiple [<b>n</b>] (where [<b>n</b>] > 1, and [<b>n</b>] is quite often an integer), but time and resources stay the same.</span></li></ul><ul style="text-align: left;"><li><span style="font-size: large;">The number of REQUIRED [<b>r</b>] productive hours that must be
expended per day, to maintain the schedule, is greater than AVAILABLE
hours [<b>a</b>]: where the number of MANDATORY [<b>m</b>] hours spent in meetings -
is subtracted from the possible WORKING hours [<b>w</b>]...</span></li></ul><p><span style="font-size: large;">Such that,<b> [a] = [w] - [m]</b>, and<b> [r] > [a]</b>, with [<b>a</b>] approaching zero, as TIME [<b>t</b>] progresses.</span></p><p><span style="font-size: large;"> </span></p><p><span style="font-size: large;">Other possible signs...</span></p><ul style="text-align: left;"><li><span style="font-size: large;">Management cancels all vacations through the end of the year.</span></li><li><span style="font-size: large;">Management mandates staff must work weekends.</span></li><li><span style="font-size: large;">Management states that working <b>4am-9pm</b> is expected</span></li><li><span style="font-size: large;">When there are no more slots available between 8am-6pm - meetings begin to be scheduled at <b>7am, 6am, 5am, 4am...or 8pm, 9pm, 10pm, 11pm, </b>...</span></li><li><span style="font-size: large;">You find yourself regularly working at <b>1am</b> to complete status reports (2 days after they are due) - because that is the only time period you could find, where you had sufficient capacity to focus on that task... </span></li><li><span style="font-size: large;">You don't have any time to perform QA on the work that is being performed.</span></li><li><span style="font-size: large;">The work products being produced are a [3] on a [1-10] scale - due to lack of sufficient time to do quality work.<br /></span></li><li><span style="font-size: large;">Management refuses to accept the estimates provided by staff - and simply picks delivery dates. </span></li><li><span style="font-size: large;">There is no time to do actual work - because staff are in meetings 90%+ of the time. </span></li><li><span style="font-size: large;">There is no "<i>Think Time</i>"</span></li><li><span style="font-size: large;">There is no reserve capacity in the team to handle spikes in demand. <br /></span></li><li><span style="font-size: large;">New work is continually being added - with no additional time, or resources, added. </span></li><li><span style="font-size: large;">You spend more time in status meetings, than in working meetings. </span></li><li><span style="font-size: large;">Requirements are constantly changing - with no additional time, or resources, added. </span></li><li><span style="font-size: large;">The Gantt chart looks like a wall of logs stacked to the ceiling, with the finish dates all aligning on the right side - and everything is showing GREEN...until the last minute, and then suddenly goes RED.</span></li><li><span style="font-size: large;">Workload is projected to increase by 400%, and yet 75% of staff is to be eliminated.</span></li><li><span style="font-size: large;">You don't have time to eat breakfast.</span></li><li><span style="font-size: large;">You don't have time to eat lunch.</span></li><li><span style="font-size: large;">You don't have time for any exercise. </span></li><li><span style="font-size: large;">You don't have time during working hours for bio breaks.</span></li><li><span style="font-size: large;">Frequently there is zero slack time between meetings - all day long. </span></li><li><span style="font-size: large;">Management has <u><i><b>purposefully</b></i></u> <span style="color: red;"><u>understaffed</u></span> the team - and expects the team will work nights and weekends (as a standard operating model) - to make-up for the capacity shortfall. <br /></span></li></ul> Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-88584403617391017922024-01-13T15:47:00.000-08:002024-01-15T13:45:06.579-08:002024-01-13 Saturday - Judging someone's readiness for something is a complex calculus<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFYvHSTMOZ7wccakA7-KdS49lrosO3inaY9ISYdWgXjlZZhxUkm97M816aTL8e3OyvpQCGdN8xvVLCgSnx_1wiygAd5LHu8_qmnitTQDhByV_JmmnzczWSGlUUf7-nCzIRwtWl75Uk-QAbDSLz8vzir0qtIpbG7Ed5iZdVUGCgA-dcv3h7CQk-/s1920/frayed-6094604_1920.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="809" data-original-width="1920" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFYvHSTMOZ7wccakA7-KdS49lrosO3inaY9ISYdWgXjlZZhxUkm97M816aTL8e3OyvpQCGdN8xvVLCgSnx_1wiygAd5LHu8_qmnitTQDhByV_JmmnzczWSGlUUf7-nCzIRwtWl75Uk-QAbDSLz8vzir0qtIpbG7Ed5iZdVUGCgA-dcv3h7CQk-/w640-h270/frayed-6094604_1920.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: <span class="break-words"><span><span dir="ltr">moritz320 on <a data-attribute-index="0" href="http://pixabay.com" target="_self">pixabay.com</a></span></span></span></td></tr></tbody></table><br /><span style="font-size: large;"><br />[<a href="https://www.linkedin.com/feed/update/urn:li:activity:7152081227309563904/" target="_blank">companion LinkedIn post</a>]<br /></span><p></p><p><span style="font-size: large;"><b>Today's meditation</b>:<br /><i>Judging someone's readiness for something is a complex calculus.</i><br /><br />Are they open/receptive?<br /><br />Have they done the work needed to see the value?<br /><br />Does the arc of their wish to receive, intersect with the arc of their growth to execute?<br /><br />When teaching, we use toy examples - to simplify the discussion, reduce the cognitive burden, limit concepts to manageable degrees of complexity.<br /><br />By allowing the student the opportunity to experience success - we support developing their confidence.<br /><br />With confidence, they can tackle more.<br /><br />But, ...<br /><br />Sometimes, their cup is already too full.<br /><br />Sometimes, they have not yet reached the inflection / pivot point in their growth.<br /><br />Sometimes, they still labor under misconceptions that hinder their ability to see the bigger picture.<br /><br />Sometimes, they are unwilling to let go of their assumptions, their preconceptions.<br /><br />Sometimes, the right approach, for the teacher - is to simply wait, listen, and observe.<br /><br />Until the bonds that bind them to their current understanding begin to fray...<br /><br />Sometimes, the inner journey required - is much harder than the external change desired.</span><br /></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-92193270263988475862023-12-31T19:53:00.000-08:002024-01-02T09:21:54.128-08:002023-12-31 Sunday - 2023 Reflections<p><span style="font-size: large;"></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN1qcL3jad0DgYf5JKOE__s3uZcDuLrWo-C5Zdmm5P9HDEMWhj-gqHh4CUa-WEei-htasjuiVESoCU8lZwr0KTrzo_CjodBaEzzG-06PNQtHCXYinhsHMI1UuaFuWXVJ1T2XWZv9krEcr-N2fUBmZjJoAk71ZsxqRAaZFq4Kuk6ANKpae-cD4c/s1280/clock-4656853_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="724" data-original-width="1280" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN1qcL3jad0DgYf5JKOE__s3uZcDuLrWo-C5Zdmm5P9HDEMWhj-gqHh4CUa-WEei-htasjuiVESoCU8lZwr0KTrzo_CjodBaEzzG-06PNQtHCXYinhsHMI1UuaFuWXVJ1T2XWZv9krEcr-N2fUBmZjJoAk71ZsxqRAaZFq4Kuk6ANKpae-cD4c/w640-h362/clock-4656853_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: <span> <a href="https://pixabay.com/users/maky_orel-436253/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4656853">Markéta Klimešová</a> (MAKY_OREL) on Pixabay.com)<br /></span></td></tr></tbody></table><span style="font-size: large;"><br /> </span><p></p><p><span style="font-size: large;"><b> Stats</b>:</span></p><ul style="text-align: left;"><li><span style="font-size: large;">[<b>376</b>] commits to my personal knowledge management GitHub repositories</span><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7O-VtVUUHWi43SP261avuIa1ZKl6oMDzmXKKzKBlZ1BDwhQ29XNl3W1qeCX9HPT4g10ctFDgRxwV96SaqDSL9h7cP_ctUD6SCMmZGu4cbK5w931ZfKK1tM2kJHKdqJMovQsgBUTSIOF4PgGJ_3Q-ep8vgW6_LCHFCX9MJd0lN3CO_fklpA73-/s755/Screenshot%202024-01-01%20133119.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="174" data-original-width="755" height="74" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7O-VtVUUHWi43SP261avuIa1ZKl6oMDzmXKKzKBlZ1BDwhQ29XNl3W1qeCX9HPT4g10ctFDgRxwV96SaqDSL9h7cP_ctUD6SCMmZGu4cbK5w931ZfKK1tM2kJHKdqJMovQsgBUTSIOF4PgGJ_3Q-ep8vgW6_LCHFCX9MJd0lN3CO_fklpA73-/s320/Screenshot%202024-01-01%20133119.jpg" width="320" /></a></div><br /></li></ul><span style="font-size: large;"> </span><br /><div><span style="font-size: large;"> </span></div><div><span style="font-size: large;"> </span><br /><div><span style="font-size: large;"> </span><br /><div><div><ul style="text-align: left;"><li><span style="font-size: large;">[<b>2</b>] long-term client engagements completed </span></li><ul><li><span style="font-size: large;">Client #1: <b>~$100B AUM</b>, financial services sector<br /></span></li><ul><li><span style="font-size: large;">Enterprise Architecture consulting services<br /></span></li></ul><li><span style="font-size: large;">Client #2: <b>~$7B annual revenue</b>, financial services sector<br /></span></li><ul><li><span style="font-size: large;">Enterprise Architecture consulting services</span></li></ul></ul></ul><span style="font-size: large;"></span></div><div><ul style="text-align: left;"><li><span style="font-size: large;">[<b>1</b>] Pro Bono consulting engagement, advising a SaaS startup </span><span style="font-size: large;"> <br /></span></li></ul><ul style="text-align: left;"><li><span style="font-size: large;">[<b>19</b>] detailed resume reviews conducted</span></li></ul><span style="font-size: large;"></span></div><div><ul style="text-align: left;"><li><span style="font-size: large;">[<b>30+</b>] career coaching/mentoring sessions</span><span style="font-size: large;"> <br /></span></li></ul><ul style="text-align: left;"><li><span style="font-size: large;">[<b>44</b>] technology blog posts written </span><span style="font-size: large;"> <br /></span></li></ul><ul style="text-align: left;"><li><span style="font-size: large;">[<b>7</b>] book reviews completed (3 in my queue to complete)</span></li><ul><li><span style="font-size: large;"><a href="https://www.amazon.com/Age-I-Our-Human-Future/dp/0316273805/" target="_blank">The Age of AI</a></span><span style="font-size: large;"> <br /></span></li><li><span style="font-size: large;"><a href="https://www.amazon.com/Getting-Started-Enterprise-Architecture-Practical/dp/1484298578/" target="_blank">Getting Started with Enterprise Architecture</a></span></li><li><span style="font-size: large;"><a href="https://www.amazon.com/Learn-Microsoft-Office-2021-upskilling/dp/1803239735/" target="_blank">Learn Microsoft Office 2021</a></span></li><li><span style="font-size: large;"><a href="https://www.amazon.com/Salesforce-Platform-Enterprise-Architecture-applications/dp/1804619779/" target="_blank">Salesforce Platform Enterprise Architecture 4e</a></span></li><li><span style="font-size: large;"><a href="https://www.amazon.com/Machine-Learning-Microservices-Productionizing-microservices/dp/1804617741/" target="_blank">Machine Learning in Microservices</a></span></li><li><span style="font-size: large;"><a href="https://www.amazon.com/Azure-Data-Architect-Handbook-structured/dp/1803234865/" target="_blank">Azure Data and AI Architect Handbook</a> <br /></span></li><li><span style="font-size: large;"><a href="https://www.amazon.com/Causal-Inference-Discovery-Python-learning/dp/1804612987/" target="_blank">Causal Inference and Discovery with Python</a></span></li><ul><li><span style="font-size: large;"><span style="color: #38761d;"><b>*****</b></span> - <span style="background-color: #fff2cc;">the best book I read this year</span></span></li></ul></ul></ul><span style="font-size: large;"><span style="background-color: #fff2cc;"></span></span></div><div><ul style="text-align: left;"><li><span style="font-size: large;">[<b>7</b>] new <a href="https://www.linkedin.com/in/kelvinmeeks/" target="_blank">LinkedIn recommendations</a></span><span style="font-size: large;"> <br /></span></li></ul><ul style="text-align: left;"><li><span style="font-size: large;">[<b>6,000+</b>] miles traveled </span><span style="font-size: large;"> </span></li><ul><li><span style="font-size: large;">[<b>13</b>] cities visited<br /></span></li></ul></ul><ul style="text-align: left;"><li><span style="font-size: large;">[<b>5,844</b>] LinkedIn connections (143 pending <b>invitations to connect</b> to review) </span><span style="font-size: large;"> <br /></span></li></ul><ul style="text-align: left;"><li><span style="font-size: large;">[<b>32,659</b>] lines recorded in my <b>2023 Technology Reading List</b> notes<br /></span></li></ul><span style="font-size: large;"><br /></span><div><p><span style="font-size: large;">The highlight of 2023, was this feedback from a startup founder:<br /></span></p><blockquote><span style="font-size: large;">"<i><span style="color: #2b00fe;">Following your code audit we started asking a ton of questions and ended up firing our tech team. Thank goodness! We would never have known if it weren't for you!</span></i>"</span></blockquote><blockquote><span style="font-size: large;">(<b>Key Findings</b>: Hard-coded unauthorized user id and password, as well as unauthorized data exfiltration embedded in the business application source code, and highly sensitive data encryption keys committed into the source code repository. Significant software design and solution architecture concerns identified - related to reliability, performance, scalability, maintenance, cloud infrastructure costs, etc.)</span></blockquote></div><div><br /><p></p></div><div><span style="font-size: large;"><b>Noteworthy 2023 LinkedIn Engagement<br /></b></span></div><div><span style="font-size: large;"> </span></div><div><span style="font-size: large;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbbKF2W_z5uS3ch8Hgc4fbP-g_uKpZhd7piAtnDjvu3s9oXWhvkh3a8Ohy7UicQljWsNyM3kAJe7xgJCBGD5pctGa3I2ePowWp56yFalAKiamOAoHJGqURnC-mYnfFplR7F6gYcpVXj4Pb9D25QZ3cEnLC6CvnzV5tisrzDGmyfO8RCLHAkr10/s1215/Screenshot%202023-12-31%20215805.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="554" data-original-width="1215" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbbKF2W_z5uS3ch8Hgc4fbP-g_uKpZhd7piAtnDjvu3s9oXWhvkh3a8Ohy7UicQljWsNyM3kAJe7xgJCBGD5pctGa3I2ePowWp56yFalAKiamOAoHJGqURnC-mYnfFplR7F6gYcpVXj4Pb9D25QZ3cEnLC6CvnzV5tisrzDGmyfO8RCLHAkr10/w640-h292/Screenshot%202023-12-31%20215805.jpg" width="640" /></a></div><br /> </span></div><div><span style="font-size: large;"> <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqmmKu19diBwrPpEsc9sxInSqW2eMBmTWfngAfGECReq6R_pSWX1w1lLNAlh1x5hvYoViN-wDeb77bx9g9yMIAZZuBfTng85hkcNFtNH4e48TTMybLY9fxZ5ju2b2a9rK2t9l0gGcO0UgE9ifdl6A0LRdx93Au0LhvyEYzoQk7MkBW8uJjza-E/s1202/Screenshot%202023-12-31%20215838.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="601" data-original-width="1202" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqmmKu19diBwrPpEsc9sxInSqW2eMBmTWfngAfGECReq6R_pSWX1w1lLNAlh1x5hvYoViN-wDeb77bx9g9yMIAZZuBfTng85hkcNFtNH4e48TTMybLY9fxZ5ju2b2a9rK2t9l0gGcO0UgE9ifdl6A0LRdx93Au0LhvyEYzoQk7MkBW8uJjza-E/w640-h320/Screenshot%202023-12-31%20215838.jpg" width="640" /></a></div><br /></span><br /><p></p></div></div></div></div></div>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-8661175752402303502023-12-23T12:53:00.000-08:002023-12-23T13:00:07.108-08:002023-12-23 Saturday - 10 suggested books for your 2024 personal/professional development goals<p><span style="font-size: large;"> </span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDUvmTcpGO2gAKnPniycyvLFXaBC1eh1FfkgxGs8gHkETq1pmIghhjxPOCycaXgsekgOAKSh3wxjPX_Frf8O2l3VRdDBuWBoTdRGuO_E1mYleJwEohARDhkTja1AdCGtZsG-OU6YDryJMJ-GpS68i96SVjW13MreSgGmmpgqBbdj0EV5arRI05/s1280/man-8442149_1280.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="916" data-original-width="1280" height="458" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDUvmTcpGO2gAKnPniycyvLFXaBC1eh1FfkgxGs8gHkETq1pmIghhjxPOCycaXgsekgOAKSh3wxjPX_Frf8O2l3VRdDBuWBoTdRGuO_E1mYleJwEohARDhkTja1AdCGtZsG-OU6YDryJMJ-GpS68i96SVjW13MreSgGmmpgqBbdj0EV5arRI05/w640-h458/man-8442149_1280.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: <a class="userName--owby3" href="https://pixabay.com/users/mohamed_hassan-5229782/" target="_blank">Mohamed_hassan</a> on Pixabay.com]<br /></td></tr></tbody></table><span style="font-size: large;"><br /></span><p></p><p><span style="font-size: large;">If you are still working on your 2024 personal/professional development goals, here are some suggested books to consider adding to your reading stack:</span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;"><u>Ten books that greatly influenced my professional development</u>:</span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">1. </span></p><p><span style="font-size: large;"><b>Customers for Life: How to Turn That One-Time Buyer Into a Lifetime Customer</b></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/dp/0385504454/">https://www.amazon.com/dp/0385504454/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">2. </span></p><p><span style="font-size: large;"><b>Secrets of Closing the Sale</b></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/dp/0800737903/">https://www.amazon.com/dp/0800737903/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">3. </span></p><p><span style="font-size: large;"><b>Father, Son & Co.: My Life at IBM and Beyond</b></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/Father-Son-Co-Life-Beyond/dp/0553380834/">https://www.amazon.com/Father-Son-Co-Life-Beyond/dp/0553380834/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">4. </span></p><p><span style="font-size: large;"><b>As a Man Thinketh</b></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/As-Man-Thinketh-James-Allen/dp/1479409634/">https://www.amazon.com/As-Man-Thinketh-James-Allen/dp/1479409634/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">5. </span></p><p><b><span style="font-size: large;">Make It Happen Before Lunch: 50 Cut-to-the-Chase Strategies for Getting the Business Results You Want</span></b></p><p><span style="font-size: large;"><a href="https://www.amazon.com/Make-Happen-Before-Lunch-Chase/dp/0071360719/">https://www.amazon.com/Make-Happen-Before-Lunch-Chase/dp/0071360719/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">6. </span></p><p><span style="font-size: large;"><b>How to Win Friends & Influence People</b></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034/">https://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">7. </span></p><p><span style="font-size: large;"><b>How to Stop Worrying and Start Living</b></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/How-Stop-Worrying-Start-Living/dp/0671035975/">https://www.amazon.com/How-Stop-Worrying-Start-Living/dp/0671035975/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">8. </span></p><p><span style="font-size: large;"><b>Several of Gerald M. Weinberg's books:</b></span></p><p><span style="font-size: large;"><a href="https://en.wikipedia.org/wiki/Gerald_Weinberg">https://en.wikipedia.org/wiki/Gerald_Weinberg</a></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/stores/Gerald-M.-Weinberg/author/B00459FFAC">https://www.amazon.com/stores/Gerald-M.-Weinberg/author/B00459FFAC</a></span></p><ul style="text-align: left;"><li><span style="font-size: large;">An Introduction to General Systems Thinking</span></li><li><span style="font-size: large;">Becoming a Technical Leader</span></li><li><span style="font-size: large;">Secrets of Consulting</span></li><li><span style="font-size: large;">More Secrets of Consulting</span></li><li><span style="font-size: large;">Exploring Requirements 1: Quality Before Design</span></li><li><span style="font-size: large;">Exploring Requirements 2: First Steps into Design</span></li><li><span style="font-size: large;">Are Your Lights On?: How to Figure Out What the Problem Really Is</span></li><li><span style="font-size: large;">The Psychology of Computer Programming</span></li></ul><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">9. </span></p><p><span style="font-size: large;"><b>Letters from a Stoic</b></span></p><p><span style="font-size: large;"><a href="https://www.amazon.com/Letters-Penguin-Classics-Lucius-Annaeus/dp/0140442103/">https://www.amazon.com/Letters-Penguin-Classics-Lucius-Annaeus/dp/0140442103/</a></span></p><p><span style="font-size: large;"><br /></span></p><p><span style="font-size: large;">10. </span></p><p><span style="font-size: large;"><b>Meditations</b></span></p><p><a href="https://www.amazon.com/Meditations-Penguin-Classics-Marcus-Aurelius/dp/0140449337/"><span style="font-size: large;">https://www.amazon.com/Meditations-Penguin-Classics-Marcus-Aurelius/dp/0140449337/</span></a></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-12962478871982199082023-12-07T14:14:00.000-08:002023-12-07T14:14:25.010-08:002023-12-07 Thursday - Quantum Computing Conference Talks<p> </p><h2 style="text-align: left;"><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/playlist?list=PL0VD16H1q5IOwPw0WPml60LQdZg4dFdrd" spellcheck="false" target="_blank">IBM Quantum Summit 2023</a></h2><div class="style-scope ytd-playlist-panel-renderer" style="text-align: left;"><span style="font-size: large;"><span style="font-weight: normal;">(11 videos, playlist)<br /></span><span style="font-weight: normal;"><a href="https://www.youtube.com/playlist?list=PL0VD16H1q5IOwPw0WPml60LQdZg4dFdrd " target="_blank">https://www.youtube.com/playlist?list=PL0VD16H1q5IOwPw0WPml60LQdZg4dFdrd </a></span></span></div><div class="style-scope ytd-playlist-panel-renderer" style="text-align: left;"><span style="font-size: large;"><span style="font-weight: normal;"> </span></span></div><div class="style-scope ytd-playlist-panel-renderer" style="text-align: left;"><span style="font-size: large;"><span style="font-weight: normal;"> </span></span></div><h2 style="text-align: left;">2023 Mathematical Aspects of Quantum Learning Workshop (UCLA, IPAM)<br /></h2><div style="text-align: left;"><span style="font-size: large;"><span style="font-weight: normal;">Institute for Pure & Applied Mathematics (IPAM)</span></span></div><h3 class="style-scope ytd-playlist-panel-renderer"><span style="font-size: large;"><span style="font-weight: normal;">(22 videos, playlist)<br /><a href="https://www.youtube.com/playlist?list=PLHyI3Fbmv0SckwZK0xfc7itiq9nLWJeUF" target="_blank">https://www.youtube.com/playlist?list=PLHyI3Fbmv0SckwZK0xfc7itiq9nLWJeUF</a></span></span></h3><h3 class="style-scope ytd-playlist-panel-renderer"><blockquote><span style="font-size: large;"><span style="font-weight: normal;"><a href="https://www.ipam.ucla.edu/programs/workshops/workshop-ii-mathematical-aspects-of-quantum-learning/?tab=overview" target="_blank">https://www.ipam.ucla.edu/programs/workshops/workshop-ii-mathematical-aspects-of-quantum-learning/?tab=overview</a></span></span></blockquote></h3><h3 class="style-scope ytd-playlist-panel-renderer"><span style="font-size: large;"><span style="font-weight: normal;"><a href="https://www.ipam.ucla.edu/programs/workshops/workshop-ii-mathematical-aspects-of-quantum-learning/?tab=schedule" target="_blank"><blockquote>https://www.ipam.ucla.edu/programs/workshops/workshop-ii-mathematical-aspects-of-quantum-learning/?tab=schedule</blockquote></a></span></span></h3><h3 class="style-scope ytd-playlist-panel-renderer"><blockquote><span style="font-size: large;"><span style="font-weight: normal;"><br />"<i>Recent results have hinted at the role quantum computing and technology may play in the future of machine learning, but much remains to be understood. For example, it has been shown that quantum computers can offer exponential improvements in learning from quantum data that comes from the physical world, and that compact quantum models can allow us to sample from probability distributions that seem inaccessible to traditional computing devices. In addition, general purpose quantum algorithms exist to dramatically speed up a number of subroutines that are pivotal in existing machine learning systems, but come with challenging caveats or have led to novel classical algorithm counterparts that challenge the advantage provided by quantum systems. However, fully grasping these results and connecting them to problems of interest today remains challenging for many reasons.</i>"<br /><br />"<i>In this workshop, we hope to bring together experts from mathematics, quantum algorithms, and machine learning to better understand this intersection and reach the full potential of quantum computing and machine learning. This includes, but is not limited to, the ways in which quantum computers can accelerate existing machine learning algorithms, how we process inherently quantum data with either classical or quantum computers, and ways in which machine learning can change how we operate quantum devices. We hope to identify a number of open questions of interest in each area, and draw strong connections to the mathematical foundations of both quantum computing and machine learning.</i>"</span></span></blockquote></h3><h3 class="style-scope ytd-playlist-panel-renderer"><span style="font-size: large;"><span style="font-weight: normal;"> </span></span><br /></h3><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-11760740481806437092023-10-22T10:48:00.005-07:002023-10-22T11:30:09.652-07:002023-10-22 Sunday - Today's Meditation: A course plotted - is not the journey<p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ehAsCfsi96xikvC_Omo-YZryuQSK8w_WI8bYmSLKdvK41ljZkHmnImFz6w4pIDPyMQ-s8Z4CVcoIUBcCNWCRTmXPwyqj2pc2s6M22RVdaXkt96tuwvX4AHJ-JPrVq6__52LTKwJ1TXNWxXQH6aDukmIDCfcslFCm29zXfAIn0PSKt6niYGSa/s1280/ship-3698039_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="904" data-original-width="1280" height="452" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ehAsCfsi96xikvC_Omo-YZryuQSK8w_WI8bYmSLKdvK41ljZkHmnImFz6w4pIDPyMQ-s8Z4CVcoIUBcCNWCRTmXPwyqj2pc2s6M22RVdaXkt96tuwvX4AHJ-JPrVq6__52LTKwJ1TXNWxXQH6aDukmIDCfcslFCm29zXfAIn0PSKt6niYGSa/w640-h452/ship-3698039_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small;">[Image by Dorothe (aka Darkmoon_Art) from Pixabay.com]</span></td></tr></tbody></table><br /><p></p><p><span style="font-size: large;">Today's mediation:</span></p><p><span style="font-size: large;">A course plotted on a nautical chart - is not the journey.</span></p><p><span style="font-size: large;">Information on a map may be superseded by real-world events - or the map may be based on faulty information. Also, you must always consider that your instruments *may* be reporting incorrect data.</span></p><p><span style="font-size: large;">During the preparation for a long voyage, some years ago, I studied the historical voyages of others who had sailed the same areas into which I intended to go. </span></p><p><span style="font-size: large;">I studied the currents, the underwater geography, the weather patterns. </span></p><p><span style="font-size: large;">I made careful notes of areas of possible refuge and safety in which I might seek shelter from gales that might arise during various segments of my planned voyage. </span></p><p><span style="font-size: large;">I recorded the GPS coordinates of areas that were reported by other sailors to have good holding, in which to anchor. </span></p><p><span style="font-size: large;">After an exhausting passage of some days, I sought refuge in a wide bay - along a desolate section of the Baja coast, for a good night's rest. </span></p><p></p><p><span style="font-size: large;">As I navigated to the GPS coordinates recorded from another's previous voyage logs, I became concerned that the recommended location seemed to be in some potentially dangerously shallow water - as the swell of the ocean entered the bay and wrapped around and surged toward the area reported to be safe. </span></p><p><span style="font-size: large;">From a distance, the swells were a concern, but were not alarming. </span></p><p><span style="font-size: large;">As I drew closer - my apprehension and alarm skyrocketed. </span></p><p><span style="font-size: large;">I was entering an area that was clearly very dangerous. As the depth became more shallow, the swells grew in height - and became very large breaking waves. </span></p><p><span style="font-size: large;">I immediately swung the wheel 180-degrees and headed toward the middle of the bay, and somewhat deeper water - and dropped my anchor - where I had a peaceful night's rest. </span></p><p><span style="font-size: large;">The lessons to be learned:</span></p><p><span style="font-size: large;">- A voyage plan is just a plan. You must be agile and adaptable. </span></p><p><span style="font-size: large;">- The same goes for business plans, product plans, and project plans.</span></p><p><span style="font-size: large;">- From the Rules of Meeks: Rule <b class="ql-hashtag" data-test-ql-hashtag="true">#1</b> applies, always. </span></p><p><span style="font-size: large;">- If you are doing something that isn't working - don't be rigid in your thinking - be willing to embrace the pivot. </span></p><p><span style="font-size: large;">- There are always signs - you must be open to reading them. </span></p><p><span style="font-size: large;">- Awareness and adaptability are more powerful than blind optimism.</span></p><p><span style="font-size: large;">- Stubborn denial and refusal to accept new information - and insistence on maintaining a course - can result in disaster.</span></p><p><span style="font-size: large;"></span></p><p><span style="font-size: large;"><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/ajq8eag4Mvc?si=jYacyHjK3vMul5eL" title="YouTube video player" width="560"></iframe><br /></span><br /></p><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-76073658370790107412023-10-20T14:27:00.005-07:002023-10-20T14:27:56.946-07:002023-10-20 Friday - Podcast Idea Experimentation<p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcMtTlaxOirm9egyyTDycepjKuYm8gFrDl8E38oLYldHsNEMu5GRBQTuSUcIY24-qpXuhVrUQSTOyL5PNO4Z1Yopga5FngYlxlJYcWPUlSl8hIOvOrt6j8n2xCm_VCWFNDrSHJHE9rPc44plywow1MqVlXWzrHSI5-XjWS3MQ8C_I7vXJxFjuJ/s1280/podcast-4209770_1280.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="939" data-original-width="1280" height="470" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcMtTlaxOirm9egyyTDycepjKuYm8gFrDl8E38oLYldHsNEMu5GRBQTuSUcIY24-qpXuhVrUQSTOyL5PNO4Z1Yopga5FngYlxlJYcWPUlSl8hIOvOrt6j8n2xCm_VCWFNDrSHJHE9rPc44plywow1MqVlXWzrHSI5-XjWS3MQ8C_I7vXJxFjuJ/w640-h470/podcast-4209770_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span class="break-words
"><span><span dir="ltr"><br />[image by Tumisu from <a data-attribute-index="0" href="http://Pixabay.com" target="_self">Pixabay.com</a>]</span></span></span></td></tr></tbody></table><br /><span style="font-size: large;"><br /><span class="break-words
"><span><span dir="ltr">Episode #2 of the proof-of-concept for a podcast idea completed today.<br /><br />That episode was not recorded, so will never be broadcast. <br /><br />Getting the style sorted, finding our rhythm. <br /><br />Like musicians, we are <i>jamming</i> in the studio - discovering how we can <i>riff</i> and play some tunes. This is practicing - before the performance.<br /><br />Finding where strengths complement, and exploring our ways of collaborating.<br /><br />The topics & content covered today, nearly broadcast quality. <br /><br />As an experiment, after two iterations, I think this might just have legs...<br /><br />We even have a preliminary name picked for the show...<br /><br />[image by Tumisu from <a data-attribute-index="0" href="http://Pixabay.com" target="_self">Pixabay.com</a>]</span></span></span></span></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-69703063628420799332023-10-16T10:09:00.004-07:002023-10-19T11:06:13.140-07:002023-10-16 Monday - API Security Educational Resources<p><span style="font-size: large;">YouTube: API Security By Design<br /><a href="https://www.youtube.com/watch?v=acXpD1tRmCQ">https://www.youtube.com/watch?v=acXpD1tRmCQ</a><br /><a href="https://www.linkedin.com/in/frank-kilcommins/" target="_blank"> Frank Kilcommins</a> (Principal API Technical Evangelist, SmartBear) and <a href="https://www.linkedin.com/in/jose-haro-peralta/" target="_blank">José Haro Peralta </a>(API consultant, author, and founder) [see the <span style="background-color: #d9ead3;">link below to </span></span><span style="background-color: #d9ead3; font-size: large;">José's </span><span style="font-size: large;"><span style="background-color: #d9ead3;"> 2023 book</span>]<br /></span></p><blockquote><span style="font-size: large;">00:00 Intro<br />03:11 Why API Security matters<br />04:48 What is API Security<br />06:22: OWASP Top API 10 Risks<br />07:04 Broken Object Level Authorization<br />08:43 Broken Authentication<br />10:12 Broken Object Property Level Authorization<br />12:20 Unrestricted Resource Consumption<br />14:10 Broken Function Level Authorization<br />16:44 Unrestricted Access to Sensitive Business Flows<br />19:48 Server-side Request Forgery<br />22:26 Security Misconfiguration<br />24:28 Improper Inventory Management<br />27:11 Unsafe Consumption of APIs<br />30:08 Authentication vs Authorization<br />31:03 OAuth Overview<br />32:24 Authorization Code Flow<br />34:28 PKCE Flow<br />35:40 Client Credentials Flow<br />36:36 Refresh Token Flow<br />38:35 OpenID Connect<br />41:00 JSON Web Tokens (JWTs)<br />44:45 Security-by-design Overview<br />46:45 Vulnerable API design overview<br />47:26 Leaking objects<br />51:34 Integer Identifiers<br />53:22 Exposing server-side properties in user input<br />55:07 Flexible schemas with unknown properties<br />57:37 Summary and Q&A<br /><br /></span></blockquote><p><span style="font-size: large;"><b>Suggested Books</b>: <br /></span></p><p><span style="font-size: large;">API Security in Action (2020)</span><br /><span style="font-size: large;"><a href="https://www.amazon.com/API-Security-Action-Neil-Madden/dp/1617296023/">https://www.amazon.com/API-Security-Action-Neil-Madden/dp/1617296023/</a><br /><br />Microservices Security in Action: Design secure network and API endpoint security for Microservices applications, with examples using Java, Kubernetes, and Istio 1st Edition (2020)<br /><a href="https://www.amazon.com/Microservices-Security-Action-Prabath-Siriwardena/dp/1617295957/">https://www.amazon.com/Microservices-Security-Action-Prabath-Siriwardena/dp/1617295957/<br /></a><br />Advanced API Security: OAuth 2.0 and Beyond 2nd ed. Edition (2019)<br /><a href="https://www.amazon.com/Advanced-API-Security-Definitive-Guide/dp/1484220498/">https://www.amazon.com/Advanced-API-Security-Definitive-Guide/dp/1484220498/</a><br /><br /><span style="background-color: #d9ead3;">Microservice APIs: Using Python, Flask, FastAPI, OpenAPI and more (2023)</span><br /><a href="https://www.amazon.com/Microservice-APIs-Jose-Haro-Peralta/dp/1617298417/"><span style="background-color: #d9ead3;">https://www.amazon.com/Microservice-APIs-Jose-Haro-Peralta/dp/1617298417/</span></a><br /><br />OAuth 2 in Action First Edition (2017)<br /><a href="https://www.amazon.com/OAuth-2-Action-Justin-Richer/dp/161729327X/">https://www.amazon.com/OAuth-2-Action-Justin-Richer/dp/161729327X/</a><br /><br />Secure By Design First Edition (2019)<br /><a href="https://www.amazon.com/Secure-Design-Daniel-Deogun/dp/1617294357">https://www.amazon.com/Secure-Design-Daniel-Deogun/dp/1617294357</a><br /><br />Defending APIs against Cyber Attack: Learn the secrets of defense techniques to build secure application programming interfaces (<span style="background-color: #fff2cc;">2024</span>)<br /><a href="https://www.amazon.com/Defending-APIs-against-Cyber-Attack/dp/1804617121">https://www.amazon.com/Defending-APIs-against-Cyber-Attack/dp/1804617121</a><br /><br /><br /><b>Penetration Testing Tool Resources</b>:</span></p><ol style="text-align: left;"><li><span style="font-size: large;"><a href="https://github.com/intltechventures/Lab.Security/blob/master/PenetrationTestingTools.md" target="_blank">https://github.com/intltechventures/Lab.Security/blob/master/PenetrationTestingTools.md</a> </span><br /></li></ol><p><span style="font-size: large;"><br /><br /></span><span style="font-size: large;"><b>Other Resources</b>:</span></p><ol style="text-align: left;"><li><span style="font-size: large;"><a href="https://www.traceable.ai/2023-state-of-api-security" target="_blank">https://www.traceable.ai/2023-state-of-api-security</a></span></li><li><span style="font-size: large;"><a href="https://csrc.nist.gov/pubs/sp/800/95/final" target="_blank">NIST SP 800-95: Guide to Secure Web Services</a></span></li><ol><li><span style="font-size: large;"><i>"The advance of Web services technologies promises to have far-reaching
effects on the Internet and enterprise networks. Web services based on
the eXtensible Markup Language (XML), SOAP, and related open standards,
and deployed in Service Oriented Architectures (SOA) allow data and
applications to interact without human intervention through dynamic and
ad hoc connections. The security challenges presented by the Web
services approach are formidable and unavoidable. Many of the features
that make Web services attractive, including greater accessibility of
data, dynamic application-to-application connections, and relative
autonomy are at odds with traditional security models and controls.
Ensuring the security of Web services involves augmenting traditional
security mechanisms with security frameworks based on use of
authentication, authorization, confidentiality, and integrity
mechanisms. This document describes how to implement those security
mechanisms in Web services. It also discusses how to make Web services
and portal applications robust against the attacks to which they are
subject."</i></span></li></ol><li><a href="https://csrc.nist.gov/pubs/sp/800/204/final" target="_blank"><span style="font-size: large;">NIST SP 800-204: </span></a><span style="font-size: large;"><a href="https://csrc.nist.gov/pubs/sp/800/204/final" target="_blank">Security Strategies for Microservices-based Application System</a></span></li><ol><li><span style="font-size: large;">"<i>Microservices architecture is increasingly being used to develop application systems since its smaller codebase facilitates faster code development, testing, and deployment as well as optimization of the platform based on the type of microservice, support for independent development teams, and the ability to scale each component independently. Microservices generally communicate with each other using Application Programming Interfaces (APIs), which requires several core features to support complex interactions between a substantial number of components. These core features include authentication and access management, service discovery, secure communication protocols, security monitoring, availability/resiliency improvement techniques (e.g., circuit breakers), load balancing and throttling, integrity assurance techniques during induction of new services, and handling of session persistence. Additionally, the core features could be bundled or packaged into architectural frameworks such as API gateways and service mesh. The purpose of this document is to analyze the multiple implementation options available for each individual core feature and configuration options in architectural frameworks, develop security strategies that counter threats specific to microservices, and enhance the overall security profile of the microservices-based application</i>."</span></li><li><span style="font-size: large;"><a href="https://csrc.nist.gov/pubs/sp/800/204/a/final" target="_blank"> NIST SP 800-204A Building Secure Microservices-based Applications Using Service-Mesh Architecture</a> </span></li><li><span style="font-size: large;"> <a href="https://csrc.nist.gov/pubs/sp/800/204/b/final" target="_blank">NIST SP 800-204B Attribute-based Access Control for Microservices-based Applications using a Service Mesh</a></span></li><li><span style="font-size: large;"><a href="https://csrc.nist.gov/pubs/sp/800/204/c/final" target="_blank">NIST SP 800-204C Implementation of DevSecOps for a Microservices-based Application with Service Mesh</a> </span></li></ol><li><span style="font-size: large;"><a href="https://owasp.org/www-project-api-security/" target="_blank">https://owasp.org/www-project-api-security/</a> <br /></span></li><ol><li><span style="font-size: large;"><a href="https://owasp.org/API-Security/editions/2023/en/0x11-t10/" target="_blank">https://owasp.org/API-Security/editions/2023/en/0x11-t10/</a> <br /></span></li><li><span style="font-size: large;"><a href="https://content.salt.security/owasp-api-top-10-2023-ebook.html" target="_blank">https://content.salt.security/owasp-api-top-10-2023-ebook.html</a> </span></li><li><span style="font-size: large;"><a href="https://salt.security/blog/owasp-api-security-top-10-explained" target="_blank">https://salt.security/blog/owasp-api-security-top-10-explained</a> <br /></span></li><li><span style="font-size: large;"><a href="https://snyk.io/learn/owasp-top-10-vulnerabilities/api-security-top-10/">https://snyk.io/learn/owasp-top-10-vulnerabilities/api-security-top-10/</a> <br /></span></li></ol><li><span style="font-size: large;"> <a href="https://www.mulesoft.com/sem/lp/whitepaper/api/api-security-best-practices?" target="_blank">MuleSoft: API security for the digital estate (Top 5 API Security Best Practices)</a><br /></span></li></ol><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-35168394864770521742023-10-15T11:09:00.003-07:002023-10-15T11:34:27.125-07:002023-10-15 Sunday - Sonatype’s 9th Annual State of the Software Supply Chain<p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb-9I5Ihpf1rFqlxFl1Dj3yBp5C89AI6YNH-Rjgn5measJo2CG6lEddLTfG-BZTo11wU4Yzi0KbssP0-JwDG1KPAL_oIc89hx8og2FBGDrfza8-uf1ddTknZucBHfWtRhxuBTXHwi1-o4MzPCF3URU-gstw9773hJFy0yGZY_Il5CEyMiq4b3o/s1119/Screenshot%202023-10-15%20105636.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="853" data-original-width="1119" height="488" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb-9I5Ihpf1rFqlxFl1Dj3yBp5C89AI6YNH-Rjgn5measJo2CG6lEddLTfG-BZTo11wU4Yzi0KbssP0-JwDG1KPAL_oIc89hx8og2FBGDrfza8-uf1ddTknZucBHfWtRhxuBTXHwi1-o4MzPCF3URU-gstw9773hJFy0yGZY_Il5CEyMiq4b3o/w640-h488/Screenshot%202023-10-15%20105636.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: Sonatype, 9th Annual State of the Software Supply Chain, p-4, with my highlights added]<br /></td></tr></tbody></table><p></p><p><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><br />Noteworthy: <br />Why the practice of actively managing your Software Bill of Materials (<b>SBOM</b>) is important...<br /><br />Sonatype’s 9th Annual State of the Software Supply Chain<br /></span></span></span></span><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><a href="https://www.sonatype.com/hubfs/9th-Annual-SSSC-Report.pdf" target="_blank">https://www.sonatype.com/hubfs/9th-Annual-SSSC-Report.pdf<br /><br /></a>Notable citations: <br /></span></span></span></span></p><ul style="text-align: left;"><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;">"<i>The rate of download growth in open source consumption <u>has slowed</u> the past two years. In 2023, this trend continued with the average download growth rate <u>sitting at 33%</u>, which is exactly what it was last year. This is a stark comparison to the<u> all-time high of 2021, </u></i></span></span></span></span><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><u><i>which saw 73% year-over-year growth</i></u>"</span></span></span></span></li><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;">"<i>Between 2022 and 2023, the number of available open source projects grew an average of 29%</i>"<br /></span></span></span></span></li><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"> "<i>Maven and npm, are each estimated to reach over a <u>trillion requests in 2023</u></i>"</span></span></span></span></li><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;">"<i>[Maven and npm] represent 90% of the request served</i>"</span></span></span></span></li></ul><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"> <br /></span></span></span></span><div><p><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"></span></span></span></span></p><p><span class="break-words"><span><span dir="ltr"></span></span></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizjIseWVtF1Tq4GODTzzDsxnlRHnRbfgB4zFAlTsLHyEUW2knBPG7oTVIXgW2g65i3jK-9oJb0WXwEkVdb2uKgxPdFYFg4hr9LW7q4QPyijwZHMYX4oUQitJgeJlXjhkV0lnLotb_xewnQOt_86vDnDIffS4bNxTv72X50Qe5kMYfT8Kav6jaD/s702/Screenshot%202023-10-15%20113255.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="406" data-original-width="702" height="370" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizjIseWVtF1Tq4GODTzzDsxnlRHnRbfgB4zFAlTsLHyEUW2knBPG7oTVIXgW2g65i3jK-9oJb0WXwEkVdb2uKgxPdFYFg4hr9LW7q4QPyijwZHMYX4oUQitJgeJlXjhkV0lnLotb_xewnQOt_86vDnDIffS4bNxTv72X50Qe5kMYfT8Kav6jaD/w640-h370/Screenshot%202023-10-15%20113255.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: Sonatype, 9th Annual State of the Software Supply Chain, p-9]<br /></td></tr></tbody></table><span class="break-words"><span><span dir="ltr"><br /><span style="font-size: large;"><br /></span></span></span></span><p></p></div>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-65824702978251558602023-10-11T18:34:00.009-07:002024-01-08T17:20:16.129-08:002023-10-11 Wednesday - Today's mediation: "A" vs. "B" and "C" Players<p><span style="font-size: large;"><span class="break-words"><span dir="ltr">[<a href="https://www.linkedin.com/posts/activity-7118039326185185280-4ZgS" target="_blank"><i>My corresponding LinkedIn post</i></a>]<br /></span></span></span></p><p><span style="font-size: large;"><span class="break-words"><span dir="ltr">Today's meditation:<br />If you think there is no
distinction between "A" players vs. "B" and "C" players - either you
have not been around long enough - or you lack the basic skills to
assess quality talent. <br /><br /></span></span></span><span class="break-words"><span dir="ltr"><span style="font-size: large;">Here are some suggested clues to help you identify the players:<br /></span></span></span><br /><span style="font-size: large;"><span class="break-words"><span dir="ltr"><b>"A" players</b>:<br />1. Execute consistently <br />2. Deliver results <br />3. Their quality is consistently exceptional <br />4. Can quickly assess/identify other "A" players<br />5. They actively and instinctively mentor others - and can help elevate a "B" to "A" level; or a "C" to "B"<br />6. Their presence can elevate an entire organization<br />7. They break logjams <br />8. Insatiably curious - constantly expanding/renewing their skills. <br />9. Actively seek to collaborate, communicate, document, share<br />10. Easily and quickly focus on what matters, what will move the needle, what is essential <br /><br /><b>"B" players</b>:<br />1. Execute inconsistently <br />2. Frequently make excuses for why they didn't deliver <br />3. Their quality is not consistently of a high degree </span></span></span><span style="font-size: large;"><span class="break-words"><span dir="ltr"></span></span></span><span class="break-words"><span dir="ltr"><span style="font-size: large;"> - sporadically produce exceptional results</span></span></span><br /><span style="font-size: large;"><span class="break-words"><span dir="ltr">4. Have difficulty discerning "A" vs. "B" talent - and will sometimes end up hiring "C" players <br />5. Have difficulty mentoring others - or lack the interest/initiative/drive to mentor others <br />6. In the absence of any "A" players - they can actively impede the growth of an organization <br />7. They nibble at logjams <br />8. Minimal investment in personal growth, very low level of curiosity, skills atrophy over time. <br />9. Expend the minimum effort in collaboration, communication, documenting, and sharing<br />10. Have trouble identifying what matters, where to focus, what will move the needle, and what is essential. <br /><br /><b>"C" players</b>: <br />1. Consistently fail to execute<br />2. Consistently fail to deliver <br />3. Their quality is consistently at a sub-optimal level</span></span></span><br /><span style="font-size: large;"><span class="break-words"><span dir="ltr">4. Do not realize their incompetence (re: <a href="https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect" target="_blank">Dunning–Kruger</a>)<br />5. Actively impede attempts to mentor/improve a team <br />6. Are only able to hire "C" and "D" players ("A" and "B" players will decline job offers from a "C" player)<br />7. They create logjams<br />8.
No curiosity, have no interest in investing in personal/professional
growth, skills are consistently insufficient for their role.<br />9. Consistently demonstrate zero effort in collaboration, communication, documenting, sharing. <br />10.
Excel at focusing on things that do not matter, that create the
appearance of work - but does not actually produce value, and have no
clue what is essential. </span></span></span><br /></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-21825040452724662502023-10-06T09:48:00.008-07:002023-10-06T09:58:22.610-07:002023-10-06 Friday - Today's meditation: On the value of "Wall Walks"<p><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"></span></span></span></span></p><p><span class="break-words"><span><span dir="ltr"></span></span></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhitrcSeekNsBqLZXsspZcSBnQX3T4lnSAHgJX3Qk8F5xLjpdkTjiT5wTOySkrx_U7WOry6yz_nCbdwaRXVaGk6E3Nn20aCf2qacuwFFXfSJt-KAIoodUy311t9VGlY6mFRjIxm5Pq4fqieklZNSZCvZgRoDktdOxSojpPLV0iRpC1KtrBDrg3u/s1280/stones-770264_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="853" data-original-width="1280" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhitrcSeekNsBqLZXsspZcSBnQX3T4lnSAHgJX3Qk8F5xLjpdkTjiT5wTOySkrx_U7WOry6yz_nCbdwaRXVaGk6E3Nn20aCf2qacuwFFXfSJt-KAIoodUy311t9VGlY6mFRjIxm5Pq4fqieklZNSZCvZgRoDktdOxSojpPLV0iRpC1KtrBDrg3u/w640-h426/stones-770264_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span class="break-words"><span><span dir="ltr">[Image by meineresterampe from <a data-attribute-index="0" href="http://Pixabay.com" target="_self">Pixabay.com</a>] </span></span></span></td></tr></tbody></table><p><span class="break-words"><span><span dir="ltr"><br /><span style="font-size: large;"><br />Today's meditation: On the value of "Wall Walks"<br /><br />A
Wall Walk - is a technique for breaking siloed thinking, for
encouraging innovation, for identifying dependencies & risks, and
for encouraging open communication & collaboration. <br /><br />It is a
periodic meeting (quarterly usually feels like a good cadence - however,
during periods of rapid change - monthly may be appropriate), that
pulls together participants from all of the disciplines across a company
- and each area is given [n] minutes to give a brief talk, with a
question & answer session following. <br /><br />What makes the Wall
Walk *fundamentally* different from almost every other presentation you
will see in any company - is that it isn't intended as an opportunity
for the team to proclaim their glorious achievements - or show how many
areas they are reporting as GREEN to management (when in reality, we all
know, some of them are actually RED). <br /><br />The goal for a Wall Walk talk should be to cover:<br />- What we recently delivered <br />- What we we are working on - and how it may impact the rest of you<br />- Experiments we've tried - what worked - and what didn't <br />- *Challenges* we are struggling with - would love to have follow-ups to hear your ideas<br />- Future planned work - in areas in which we know (or believe) that there will be dependencies that impact you. <br /><br />To implement Wall Walks requires courage - and a willingness to tell the unvarnished truth. </span></span></span></span></p><p><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><br /></span></span></span></span></p><p><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><br /></span></span></span></span></p><p><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><b>Other variations on the concept of Wall Walks</b>: </span></span></span></span></p><ul style="text-align: left;"><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><a href="https://www.oreilly.com/library/view/contextual-design-2nd/9780128011362/XHTML/B9780128008942000107/B9780128008942000107.xhtml" target="_blank">https://www.oreilly.com/library/view/contextual-design-2nd/9780128011362/XHTML/B9780128008942000107/B9780128008942000107.xhtml</a> <br /></span></span></span></span></li><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><a href="https://medium.com/@armypublicaffairscenter/wall-walk-yourself-and-your-team-to-better-briefings-and-papers-ad744733642" target="_blank">https://medium.com/@armypublicaffairscenter/wall-walk-yourself-and-your-team-to-better-briefings-and-papers-ad744733642</a></span></span></span></span></li><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><a href="https://carolmassa.medium.com/walking-the-creative-wall-focus-on-the-outcome-not-the-deliverable-d0f8a4ac5cb" target="_blank">https://carolmassa.medium.com/walking-the-creative-wall-focus-on-the-outcome-not-the-deliverable-d0f8a4ac5cb</a></span></span></span></span></li><li><span class="break-words"><span><span dir="ltr"><span style="font-size: large;"><a href="https://miro.com/miroverse/walk-the-wall-user-story-review/" target="_blank">https://miro.com/miroverse/walk-the-wall-user-story-review/</a> <br /></span></span></span></span></li></ul><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-83689508329251265712023-10-02T06:22:00.006-07:002023-10-02T06:49:20.589-07:002023-10-02 Monday - Research Notes: Hoshin Kanri ("Compass Management") and X-Matrix in strategic planning<p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCKUQ0N4-ajmw1TQgezqv3CQM2CDqOhe8EoT25aMWbb6W4Ff1g3ZA9XMITOEsGxWNTTPOkONaupE6PB54IIxeA5FSjyO3E4xxe2GlizX9L4325DN-lBmgU41qQsqL75ZKl7Lfqh5Z9E0-hIZjpMYQjTsK5DXrYRAvTUTDPtvPQp6niCTqtCQeN/s1280/compass-rose-303605_1280.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1230" data-original-width="1280" height="616" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCKUQ0N4-ajmw1TQgezqv3CQM2CDqOhe8EoT25aMWbb6W4Ff1g3ZA9XMITOEsGxWNTTPOkONaupE6PB54IIxeA5FSjyO3E4xxe2GlizX9L4325DN-lBmgU41qQsqL75ZKl7Lfqh5Z9E0-hIZjpMYQjTsK5DXrYRAvTUTDPtvPQp6niCTqtCQeN/w640-h616/compass-rose-303605_1280.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span>[image credit: <a href="https://pixabay.com/users/clker-free-vector-images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=303605">Clker-Free-Vector-Images</a> on <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=303605">Pixabay</a>]</span></td></tr></tbody></table><br /><br /> <br /><a href="https://en.wikipedia.org/wiki/Hoshin_Kanri" target="_blank">https://en.wikipedia.org/wiki/Hoshin_Kanri</a><br /><p></p><ul style="text-align: left;"><li><i style="color: #2b00fe;">...a 7-step process used in strategic planning in which strategic goals are communicated throughout the company and then put into action.</i></li></ul><ul style="text-align: left;"><li><i style="color: #2b00fe;">The Hoshin Kanri strategic planning system originated from post-war Japan, but has since spread to the U.S. and around the world. Translated from Japanese, Hoshin Kanri aptly means "compass management". The individual words "hoshin" and "kanri" mean direction and administration, respectively.</i></li></ul><ul style="text-align: left;"><li><span style="color: #2b00fe;"><i>Hoshin Kanri requires a strategic vision in order to succeed. <br /></i></span></li></ul><ul style="text-align: left;"><li><span style="color: #2b00fe;"><i>From there, strategic objectives need to be clearly defined, with goals being written for long periods of a one to five-year-long timeframe <br /></i></span></li></ul><div><ul style="text-align: left;"><li><i style="color: #2b00fe;">Once the long term timeframe goals are completed, the team can focus on yearly objectives </i></li></ul><ul style="text-align: left;"><li><i style="color: #2b00fe;">Management needs to avoid picking too many vital goals in order to stay focused on what is strategically important</i></li></ul><ul style="text-align: left;"><li><i style="color: #2b00fe;">Hoshin Kanri is a top-down approach, with the goals being mandated by management and the implementation being performed by employees.</i></li></ul><ul style="text-align: left;"><li><span style="color: #2b00fe;"><i>Companies that use Hoshin Kanri often follow a Think, Plan, Implement, and Review process, which is comparable to W. Edwards Deming's Plan Do Check Act cycle</i></span></li></ul><p> <br /><span style="background-color: #fff2cc;">If you are pressed for time, read this:</span></p><p>The Ultimate Guide to Strategy Deployment using Hoshin Kanri (X-Matrix)<br /><a href="https://www.linkedin.com/pulse/ultimate-guide-strategy-deployment-using-hoshin-kanri-vetriko/" target="_blank">https://www.linkedin.com/pulse/ultimate-guide-strategy-deployment-using-hoshin-kanri-vetriko/</a> <br />(See triangle in diagram, Principles of Hoshin Kanri - nice graphics)</p><p> </p><span><a name='more'></a></span><br /><p></p><p></p><p></p><p>The Hoshin Kanri technique is often aided with a Hoshin Kanri Matrix, on which companies list and align their various-length objectives and goals.<br /></p><ul style="text-align: left;"><li><a href="https://www.allaboutlean.com/hoshin-kanri-1/" target="_blank">https://www.allaboutlean.com/hoshin-kanri-1/</a></li><li><a href="https://www.allaboutlean.com/hoshin-kanri-2/" target="_blank">https://www.allaboutlean.com/hoshin-kanri-2/</a></li><li><a href="https://www.allaboutlean.com/hoshin-kanri-3/" target="_blank">https://www.allaboutlean.com/hoshin-kanri-3/</a></li><li><a href="https://www.allaboutlean.com/hoshin-kanri-x-matrix/" target="_blank">https://www.allaboutlean.com/hoshin-kanri-x-matrix/</a></li><li><a href="https://www.allaboutlean.com/kanri-noryoku-program/" target="_blank">https://www.allaboutlean.com/kanri-noryoku-program/</a></li></ul><p> <br /> <br />Demystifying the Hoshin Kanri X Matrix <br /><a href="https://kanbanize.com/lean-management/hoshin-kanri/what-is-hoshin-kanri-x-matrix" target="_blank">https://kanbanize.com/lean-management/hoshin-kanri/what-is-hoshin-kanri-x-matrix</a><br /> <br /> <br />The Benefits of Using an X-Matrix for Strategy Deployment<br /><a href="https://blog.kainexus.com/improvement-disciplines/strategy-deployment/x-matrix/the-benefits-of-using-an-x-matrix-for-strategy-deployment" target="_blank">https://blog.kainexus.com/improvement-disciplines/strategy-deployment/x-matrix/the-benefits-of-using-an-x-matrix-for-strategy-deployment</a><br /><br /> <br />How to Use The Hoshin Kanri X-Matrix to Deploy Your Strategic Plan<br /><a href="https://blog.kainexus.com/improvement-disciplines/hoshin-kanri/how-to-use-the-hoshin-kanri-x-matrix-to-deploy-your-strategic-plan" target="_blank">https://blog.kainexus.com/improvement-disciplines/hoshin-kanri/how-to-use-the-hoshin-kanri-x-matrix-to-deploy-your-strategic-plan</a><br /> <br /> <br />The Hoshin Kanri x-matrix: the what, how, why, benefits, and more<br /><a href="https://blog.i-nexus.com/hoshin-kanri-x-matrix-explained" target="_blank">https://blog.i-nexus.com/hoshin-kanri-x-matrix-explained</a><br /> <br /> <br />Hoshin Planning and The X-Matrix<br /><a href="https://www.youtube.com/watch?v=3M5zRFbavUg" target="_blank">https://www.youtube.com/watch?v=3M5zRFbavUg</a><br /> <br /> <br />What is Hoshin Kanri?<br /><a href="https://www.linkedin.com/pulse/what-hoshin-kanri-carolyn-gibson/" target="_blank">https://www.linkedin.com/pulse/what-hoshin-kanri-carolyn-gibson/</a><br /><i><span style="color: #2b00fe;"></span></i></p></div><blockquote><div><p><i><span style="color: #2b00fe;">Hoshin Kanri means “policy management” in Japanese. The characters use elements of the words ‘compass’ and ‘direction’, with the obvious implication that you need to know where you are going, and a map to get there.<br /> <br />7-step process:<br /></span></i></p><ol style="text-align: left;"><li><i><span style="color: #2b00fe;">Establish vision </span></i></li><li><i><span style="color: #2b00fe;">Develop Breakthrough Objectives </span></i></li><li><i><span style="color: #2b00fe;">Develop Annual Objectives</span></i></li><li><i><span style="color: #2b00fe;">Deploy Annual Objectives</span></i></li><li><i><span style="color: #2b00fe;">Implement Annual Objectives</span></i></li><li><i><span style="color: #2b00fe;">Monthly & Quarterly Review</span></i></li><li><i><span style="color: #2b00fe;"> Annual Review </span></i></li></ol></div></blockquote><blockquote><div><p style="text-align: left;"><i><span style="color: #2b00fe;">Peter Drucker wrote that “[u]nless commitment is made, there
are only promises and hopes; but no plans.” Hoshin Kanri uses a unique
process called catchball to engage all accountable owners early on.<br /> <br />Unlike in other strategy cascades, <span style="background-color: #f4cccc;"><u>all accountable owners at
every level must be part of the process at the earliest stage </u></span>so that
they:<br /></span></i></p><ul style="text-align: left;"><li><i><span style="color: #2b00fe;">Understand their brief</span></i></li><li><i><span style="color: #2b00fe;">Have time to question it</span></i></li><li><i><span style="color: #2b00fe;">Consult with their teams</span></i></li><li><i><span style="color: #2b00fe;">Calculate the resource implications</span></i></li><li><i><span style="color: #2b00fe;">Modify the objective as necessary</span></i></li><li><i><span style="color: #2b00fe;">And only then commit to delivering it. </span></i></li></ul></div></blockquote><div><p style="text-align: left;"></p><p style="text-align: left;"><br /><i><span style="color: #2b00fe;"><b></b></span></i></p><blockquote><p style="text-align: left;"><i><span style="color: #2b00fe;"><b> X-Matrix</b> <br />A visual planning tool that allows you to decompose your Vision into the Breakthrough Objectives, Annual Objectives, Improvement Priorities, Targets and Accountable Owners. This tool takes time to learn but is unparalleled in its ability to quickly see if the plan holds together down through the planning levels.<br /> <br />Hoshin Kanri is a process that goes to the heart of your organization’s people, processes and culture. Naturally, you will encounter obstacles in implementation, and failures. Common barriers include:<br /></span></i></p><ol style="text-align: left;"><li><i><span style="color: #2b00fe;">Resistance to accountability</span></i></li><li><i><span style="color: #2b00fe;">Process and commitment conflicts</span></i></li><li><i><span style="color: #2b00fe;">Fear of failure</span></i></li><li><i><span style="color: #2b00fe;">Inconsistent, incorrect data</span></i></li></ol></blockquote><p style="text-align: left;"> <br />The Hoshin Kanri X-Matrix: The structure you need for your strategy<br /><a href="https://www.linkedin.com/pulse/hoshin-kanri-x-matrix-structure-you-need-your-strategy-carolyn-gibson/" target="_blank">https://www.linkedin.com/pulse/hoshin-kanri-x-matrix-structure-you-need-your-strategy-carolyn-gibson/</a><br /><br /><br /></p></div>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-26832763185020396202023-09-30T15:14:00.008-07:002023-09-30T19:34:45.250-07:002023-09-30 Saturday - On the distinctions between Functional and Non-Functional Requirements<p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi84-ngawxh2GNW1NDrlSI5fGkLorKr2YQHqjvpEwU9YODfojYXQumQ9-w9rKs1FgFICJXNzqhLd0RnVWZ-gR0YcLPutbpRAx7_T50_nfh52Tub6QYSqheXcieFY2rDuSx2G52NOXD-gmTc79LXOT0NpD90RlJfdsBIHBjwN-S5SaX-RptByFl_/s1280/screws-1711469_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="853" data-original-width="1280" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi84-ngawxh2GNW1NDrlSI5fGkLorKr2YQHqjvpEwU9YODfojYXQumQ9-w9rKs1FgFICJXNzqhLd0RnVWZ-gR0YcLPutbpRAx7_T50_nfh52Tub6QYSqheXcieFY2rDuSx2G52NOXD-gmTc79LXOT0NpD90RlJfdsBIHBjwN-S5SaX-RptByFl_/w640-h426/screws-1711469_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span>[Image by <a href="https://pixabay.com/users/alexas_fotos-686414/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1711469">Alexa</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1711469">Pixabay</a>]</span></td></tr></tbody></table><p></p><p><br /></p><p>The seed for the genesis for this blog post started with a LinkedIn post by <a href="https://www.linkedin.com/in/dave-farley-a67927/" target="_blank">Dave Farley</a>, with his link to his recent YouTube video: <a href="https://www.youtube.com/watch?v=4aHKsolzCv4" target="_blank">"Non-Functional Requirements" Are STUPID</a> - and some of our subsequent LinkedIn exchanges (<a href="https://www.linkedin.com/feed/update/urn:li:activity:7113062306153914370?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113125664349687808%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287113125664349687808%2Curn%3Ali%3Aactivity%3A7113062306153914370%29" target="_blank">1</a>, <a href="https://www.linkedin.com/feed/update/urn:li:activity:7113062306153914370?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113125664349687808%29&replyUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113889218161950720%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287113125664349687808%2Curn%3Ali%3Aactivity%3A7113062306153914370%29&dashReplyUrn=urn%3Ali%3Afsd_comment%3A%287113889218161950720%2Curn%3Ali%3Aactivity%3A7113062306153914370%29" target="_blank">2</a>, <a href="https://www.linkedin.com/feed/update/urn:li:activity:7113062306153914370?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113125664349687808%29&replyUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113907207548661761%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287113125664349687808%2Curn%3Ali%3Aactivity%3A7113062306153914370%29&dashReplyUrn=urn%3Ali%3Afsd_comment%3A%287113907207548661761%2Curn%3Ali%3Aactivity%3A7113062306153914370%29" target="_blank">3</a> - as well as <a href="https://www.linkedin.com/feed/update/urn:li:activity:7113062306153914370?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113125664349687808%29&replyUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113935486494154752%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287113125664349687808%2Curn%3Ali%3Aactivity%3A7113062306153914370%29&dashReplyUrn=urn%3Ali%3Afsd_comment%3A%287113935486494154752%2Curn%3Ali%3Aactivity%3A7113062306153914370%29" target="_blank">4</a>, and <a href="https://www.linkedin.com/feed/update/urn:li:activity:7113062306153914370?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113125664349687808%29&replyUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113937594945589248%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287113125664349687808%2Curn%3Ali%3Aactivity%3A7113062306153914370%29&dashReplyUrn=urn%3Ali%3Afsd_comment%3A%287113937594945589248%2Curn%3Ali%3Aactivity%3A7113062306153914370%29" target="_blank">5</a> - which I've incorporated into the initial content for this blog post)<br /></p><p>See link to my initial comment on his post, #<a href="https://www.linkedin.com/feed/update/urn:li:activity:7113062306153914370?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113125664349687808%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287113125664349687808%2Curn%3Ali%3Aactivity%3A7113062306153914370%29" target="_blank">1</a>:<br /></p><blockquote><p><span style="color: #2b00fe;">P<span class="comments-comment-item__main-content feed-shared-main-content--comment t-14 t-black t-normal"><span dir="ltr">ossible examples of counter-arguments:<span><br /></span><span><br /></span>1. Some NFRs are cross-cutting - and should be consistently applied enterprise-wide, across all domains, all applications.<span><br /></span>2. Repeating the definitions, in vertical contexts - violates the DRY principle.<span><br /></span>3.
Enterprise-level NFRs provide a consistent reference - that can be
reused across initiatives, products, programs, projects, applications,
etc.<span><br /></span>4. When categorizing everything as just a
"requirement" (with no distinction between technical/NFR vs. functional)
- increases the complexity and cognitive load - when trying to get a
business stakeholder - to focus on reviewing/approving just the business
requirements.<span class="white-space-pre"> </span><span><br /></span><span><br /></span>Example:<span><br /></span>NFR:
"All NPI, PII, PHI, PCI information must be encrypted at-rest, and
in-transit, with encryption standards specified in
INFOSEC-STANDARD-001."</span></span></span></p><p></p></blockquote><p><br /></p><p>See link to my follow-up reply, #<a href="https://www.linkedin.com/feed/update/urn:li:activity:7113062306153914370?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113125664349687808%29&replyUrn=urn%3Ali%3Acomment%3A%28activity%3A7113062306153914370%2C7113935486494154752%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287113125664349687808%2Curn%3Ali%3Aactivity%3A7113062306153914370%29&dashReplyUrn=urn%3Ali%3Afsd_comment%3A%287113935486494154752%2Curn%3Ali%3Aactivity%3A7113062306153914370%29" target="_blank">4</a>:</p><div class="feed-shared-inline-show-more-text feed-shared-inline-show-more-text--expanded comments-comment-item__inline-show-more-text" data-artdeco-is-focused="true" style="display: block; max-height: none;" tabindex="-1">
<span class="comments-comment-item__main-content feed-shared-main-content--comment t-14 t-black t-normal">
<div class="update-components-text relative" dir="ltr">
<span dir="ltr"><a class="app-aware-link" data-test-app-aware-link="" href="https://www.linkedin.com/in/ACoAAAAjAy8BXZ8GDo2YKFuAhO6l72ZESu-Mqls" target="_self"><span></span></a><a class="ember-view" href="https://www.linkedin.com/in/dave-farley-a67927/" id="ember922" style="color: #2b00fe;"></a></span><blockquote><span dir="ltr"><a class="ember-view" href="https://www.linkedin.com/in/dave-farley-a67927/" id="ember922" style="color: #2b00fe;">Dave Farley</a></span><span class="white-space-pre" style="color: #2b00fe;"> </span><span style="color: #2b00fe;">I think revisiting some definitions might be helpful for others in considering this discussion.<span class="white-space-pre"> </span><span><br /></span><span><br /></span>I
will stipulate that if someone reading this (besides Dave) doesn't
value architecture, or understand the decomposition and importance of
layers in architecture - they may struggle with understanding the
intended purpose for making a distinction between functional and
non-functional types of requirements.<span><br /></span><span><br /></span>If
you are only focused on what is in the next sprint - and never do any
requirements analysis or design - this discussion will be moot for you.<span class="white-space-pre"> </span></span></blockquote><span style="color: #2b00fe;"><span class="white-space-pre"></span></span>
</div></span></div><br /><p style="line-height: 100%; margin-bottom: 0in;"><span face="Calibri, sans-serif">Oxford English Dictionary (OED):</span></p>
<p style="line-height: 100%; margin-bottom: 0in;"><span face="Calibri, sans-serif">Functional:</span></p>
<ol><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>of
or having a special activity, purpose, or task; relating to the way
in which something works or operates.</i></span><span face="Calibri, sans-serif">“</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>designed
to be practical and useful, rather than attractive.</i></span><span face="Calibri, sans-serif">“</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>working
or operating.</i></span><span face="Calibri, sans-serif">”</span></p>
</li></ol>
<p style="line-height: 100%; margin-bottom: 0in;"><br /></p><p><br /></p><p>Also see ISO 25010<br /><a href="https://iso25000.com/index.php/en/iso-25000-standards/iso-25010" target="_blank">https://iso25000.com/index.php/en/iso-25000-standards/iso-25010</a></p><p> </p><p style="line-height: 100%; margin-bottom: 0in;">
</p>
<p style="line-height: 100%; margin-bottom: 0in;"><span face="Calibri, sans-serif"><a href="https://en.wikipedia.org/wiki/Functional_requirement">https://en.wikipedia.org/wiki/Functional_requirement</a>
</span>
</p>
<p style="line-height: 100%; margin-bottom: 0in;"><span face="Calibri, sans-serif">(selected
citations)</span></p>
<ul><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>In
software engineering and systems engineering, a functional
requirement defines a function of a system or its component, where a
function is described as a summary (or specification or statement)
of behavior between inputs and outputs.</i></span><span face="Calibri, sans-serif">”</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>Functional
requirements may involve calculations, technical details, data
manipulation and processing, and other specific functionality that
define what a system is supposed to accomplish</i></span><span face="Calibri, sans-serif">”</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>Functional
requirements are supported by non-functional requirements (also
known as ‘quality requirements’), which impose constraints on
the design or implementation (such as performance requirements,
security, or reliability). Generally, </i></span><span face="Calibri, sans-serif"><i><u><b>functional
requirements</b></u></i></span><span face="Calibri, sans-serif"><i>
are expressed in the form ‘</i></span><span face="Calibri, sans-serif"><i><u><b>system
must do</b></u></i></span><span face="Calibri, sans-serif"><i><span style="font-weight: normal;">
<requirement>,</span></i></span><span face="Calibri, sans-serif"><i>’
while </i></span><span face="Calibri, sans-serif"><i><u><b>non-functional
requirements</b></u></i></span><span face="Calibri, sans-serif"><i>
take the form ‘</i></span><span face="Calibri, sans-serif"><i><u><b>system
shall be</b></u></i></span><span face="Calibri, sans-serif"><i>
<requirement>.’</i></span><span face="Calibri, sans-serif">”</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>The
plan for implementing </i></span><span face="Calibri, sans-serif"><i><u>functional
requirements is detailed in the system design</u></i></span><span face="Calibri, sans-serif"><i>,
whereas </i></span><span face="Calibri, sans-serif"><i><u>non-functional
requirements are detailed in the system architecture</u></i></span><span face="Calibri, sans-serif">”</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>As
defined in requirements engineering, </i></span><span face="Calibri, sans-serif"><i><u>functional
requirements</u></i></span><span face="Calibri, sans-serif"><i>
specify particular </i></span><span face="Calibri, sans-serif"><i><u>results
of a system</u></i></span><span face="Calibri, sans-serif"><i>.</i></span><span face="Calibri, sans-serif">”</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i>...contrasted
with </i></span><span face="Calibri, sans-serif"><i><u>non-functional
requirements</u></i></span><span face="Calibri, sans-serif"><i>,
which specify </i></span><span face="Calibri, sans-serif"><i><u>overall
characteristics</u></i></span><span face="Calibri, sans-serif"><i>
such as cost and reliability.</i></span><span face="Calibri, sans-serif">”</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i><u>Functional
requirements</u></i></span><span face="Calibri, sans-serif"><i>
drive the </i></span><span face="Calibri, sans-serif"><i><u>application
architecture</u></i></span><span face="Calibri, sans-serif"><i> of a
system, while </i></span><span face="Calibri, sans-serif"><i><u>non-functional
requirements</u></i></span><span face="Calibri, sans-serif"><i>
drive the </i></span><span face="Calibri, sans-serif"><i><u>technical
architecture</u></i></span><span face="Calibri, sans-serif"><i> of a
system</i></span><span face="Calibri, sans-serif">”</span></p>
</li></ul>
<p style="line-height: 100%; margin-bottom: 0in;"><br />
</p>
<p style="line-height: 100%; margin-bottom: 0in;"><span face="Calibri, sans-serif"><a href="https://www.altexsoft.com/blog/business/functional-and-non-functional-requirements-specification-and-types/">https://www.altexsoft.com/blog/business/functional-and-non-functional-requirements-specification-and-types/</a>
</span>
</p>
<ul><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i><b>Functional
requirements</b></i></span><span face="Calibri, sans-serif"><i> are
</i></span><span face="Calibri, sans-serif"><i><u>product features
or functions</u></i></span><span face="Calibri, sans-serif"><i> that
developers must implement to enable users to accomplish their tasks</i></span><span face="Calibri, sans-serif">”</span></p>
</li><li><p style="line-height: 100%; margin-bottom: 0in;">“<span face="Calibri, sans-serif"><i><b>Nonfunctional
requirements</b></i></span><span face="Calibri, sans-serif"><i>, </i></span><span face="Calibri, sans-serif"><i><u>not
related to the system functionality</u></i></span><span face="Calibri, sans-serif"><i>,
rather define </i></span><span face="Calibri, sans-serif"><i><u>how
the system should perform</u></i></span><span face="Calibri, sans-serif"><i>.</i></span><span face="Calibri, sans-serif">” </span></p><p style="line-height: 100%; margin-bottom: 0in;"><span face="Calibri, sans-serif"> </span></p><p style="line-height: 100%; margin-bottom: 0in;"><span face="Calibri, sans-serif"> </span>
</p>
</li></ul>
Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-70943556696202082892023-09-10T22:17:00.025-07:002023-09-11T20:05:28.773-07:002023-09-10 Sunday - Book Review: Azure Data and AI Architect Handbook<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCLRTlUmyEsMaHrMndbMWE0X1CJmlng4gAe9v6Q0rEaFJZlFNeG46EuYUM-JPaBKY_bJ8dszHHpN6X5hnIJ3wNsztuDDIa51ej8NCMXioYIC-bAYOEpbfZ2ERHpSitoy9mPA5DZnbOVXBp1UZcTaYzkRQlZnXmqoix80emiavfMCTgGZxbbmR2/s2560/814QfGYTTqL.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="2560" data-original-width="2076" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCLRTlUmyEsMaHrMndbMWE0X1CJmlng4gAe9v6Q0rEaFJZlFNeG46EuYUM-JPaBKY_bJ8dszHHpN6X5hnIJ3wNsztuDDIa51ej8NCMXioYIC-bAYOEpbfZ2ERHpSitoy9mPA5DZnbOVXBp1UZcTaYzkRQlZnXmqoix80emiavfMCTgGZxbbmR2/w520-h640/814QfGYTTqL.jpg" width="520" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image source: Amazon.com]<br /></td></tr></tbody></table><p></p><p><b>Book Title:</b> </p><p><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0in;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</p><p class="MsoNormal"><span style="color: red;">Azure Data and AI Architect Handbook: Adopt a structured
approach to designing data and AI solutions at scale on Microsoft Azure </span></p><p class="MsoNormal"><span style="color: red;"><span style="color: black;"><b>Book Details</b>:<br />Pages: 284 <br />Publication Date: 2023-07-31 (August 2023, in the book)<br /> </span></span></p><p class="MsoNormal"><span style="color: red;"><span style="color: black;"><b>Author(s)</b>: <br /></span></span></p><ul style="text-align: left;"><li><span style="color: red;"><span style="color: black;">Oliver Mertens </span></span></li><ul><li><span style="color: red;"><span style="color: black;">Advanced Cloud Expert - EMEA | AI Tech Lead, Microsoft</span></span></li><li><span style="color: red;"><span style="color: black;"><a href="https://www.linkedin.com/in/olivier-mertens/" target="_blank">https://www.linkedin.com/in/olivier-mertens/</a> </span></span></li></ul></ul><span style="color: red;"><span style="color: black;"></span></span><div><ul style="text-align: left;"><li><span style="color: red;"><span style="color: black;">Breght Van Baelen </span></span></li><ul><li><span style="color: red;"><span style="color: black;">A</span></span><span style="color: red;"><span style="color: black;">dvanced Cloud Expert (ACE) - Power BI & Fabric | EMEA region, Microsoft</span></span></li><li><span style="color: red;"><span style="color: black;"><a href="https://www.linkedin.com/in/breght-van-baelen/" target="_blank">https://www.linkedin.com/in/breght-van-baelen/</a> </span></span><br /></li></ul></ul><p class="MsoNormal"><span style="color: red;"><span style="color: black;"><b>Book Links</b>:<br /></span></span></p><ul style="text-align: left;"><li><span style="color: red;"><span style="color: black;">Amazon: </span></span><span style="color: red;"><span style="color: black;"><a href="https://www.amazon.com/Azure-Data-Architect-Handbook-structured/dp/1803234865/">https://www.amazon.com/Azure-Data-Architect-Handbook-structured/dp/1803234865/</a> </span></span></li><li>P<span style="color: red;"><span style="color: black;">ublisher: </span></span><span style="color: red;"><span style="color: black;"><a href="https://www.packtpub.com/product/azure-data-and-ai-architect-handbook/9781803234861">https://www.packtpub.com/product/azure-data-and-ai-architect-handbook/9781803234861</a> </span></span><br /></li></ul>
<p></p><p></p><p><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0in;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</p>[<a href="https://www.amazon.com/gp/customer-reviews/R17ROJSE0HM2Z3/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=1803234865" target="_blank">Link to my Amazon posted review</a>]</div><div>[<a href="https://www.linkedin.com/posts/activity-7106873853057921024-anN0" target="_blank">Link to my LinkedIn post referencing this review</a>]<br /><p><b>My Review Summary</b>:</p><p><span style="background-color: #fff2cc;">Mostly, an excessively long, Microsoft marketing brochure </span><br /> </p><p><b>My Review Commentary</b>: <br /></p>As I read through the chapters of this book, the thought that kept coming to my mind:</div><div> <br /></div><div>"<i><span style="background-color: #fff2cc;">It's like reading diluted & neutered sets of Microsoft Azure documentation</span></i>" (i.e., no rich cross-linking to additional relevant content - and almost no hands-on examples)<br /> </div><div>Read on, for why I had that feeling...<p><br />At 284 pages (but only 245, if we exclude the Index) – this book impressively attempts to cover a wide range of information that will be of interest to anyone that wishes to establish an architect-level awareness of Azure data and AI architecture capabilities. <br /><br />Note: For my review – I read a PDF version of the book that I downloaded from Packt’s web site, AFTER the publication date of the book.<br /><br />Three key criticisms I have - with almost the entire book: </p><ul style="text-align: left;"><li>A significant lack of additional suggested reading links (beyond just the paltry few citations of Microsoft Azure documentation). There is a severe dearth of reference to other related material, articles, books, research papers - that would deeply enrich the reader's experience - and magnify the educational value of this book.</li><li>With the noticeable exception of Chapter-8, there is a severe paucity of actual detailed examples in the majority of the book's pages. </li><li>The lack of a companion github repository - providing hands-on examples.<br /></li></ul><p><br />This book suffers from a lack, in almost all chapters, of any in-depth, detailed discussion – of real-world examples & case studies. In Chapter-3 (Page-39), fraud detection is briefly mentioned – and would have made an EXCELLENT example / case study – on which to elaborate in that chapter.<br /><br />In almost every instance – the reader would be better served by simply reading the Microsoft Azure documentation – rather than the diluted treatment given to many topics in the various chapters – most of which lack the basic courtesy of pointing the reader to the appropriate online documentation landing page, for the services discussed.<br /><br /><b>What I liked</b>: </p><p>Chapter-3’s discussion of Kappa and and Delta lake architectures. </p><p>Chapter-6’s coverage of Data Warehousing (this is the best-written chapter in the entire book, and provides detail examples to clearly explain concepts). <br /><br /><b>What could be improved in the next edition</b>: <br /><br />Better use of color – and consistent use of color - in diagrams. <br /><br />Page-xvi, hyperlink to errata page is not enabled.<br /><br />MAJOR MISS: Inclusion of a companion github project for the book, to provide some hands-on exercises.<br /><br />Chapter-1 (page-4): The first sentence of this book, published in July/August 2023 - refers to some growth predictions, in the past..."<i><u>Data generation is growing at an exponential rate. 90 percent of data in the world was generated in the last 2 years, and global data creation is expected to reach 181 zettabytes in 2022</u></i>". A better quote would be to show the expected growth by 2030, at the very least.<br /><br />Chapter-1 (Page-7): The Data Architecture reference diagram does not reflect a “<i>Data orchestration and processing</i>” layer – but this is called out in the bullet list enumeration of diagram elements. <br /><br />Chapter-1 (Page-8): Appears to still have some internal / editor reminder note embedded in the text, re: “<i>(Add what data ingestion services will be discussed later in the book)</i>.”<br /><br />Chapter-1 (Page-9): Appears to still have some internal / editor reminder note embedded in the text, re:“<i>(Add what data storage services will be discussed later in the book)</i>.”<br /><br />Chapter-1 lacks any suggested links, additional reading – to enrich the reader’s experience. <br />NOTE: This criticism holds TRUE for the MAJORITY of the book's chapters. <br /><br />Chapter-1 is missing a section to introduce the fundamental concepts of Data Architecture Principles<br /><br />Chapter-1 would benefit from having a table to provide a comparison of the capabilities across the major Cloud Service Providers (CSPs) – i.e., Azure, AWS, GCP. <br /><br />Microsoft’s choice of the acronym WAF (for Well-Architected Framework) – is unfortunate – as it could easily be confused with the more common usage (Web Application Firewall). For example, on page-18, there is an [incorrect] link to (“<b>Azure Well-Architected Framework review - Azure Application Gateway v2</b>” documentation) – that clearly refers to ”WAF” in the context of a Web Application Firewall (“<i><u>B</u></i><u><i>e aware of Application Gateway capacity changes when enabling WAF</i></u>”)<br /><br />Chapter-2 (Page-18) – The hyperlink to Microsoft Azure WAF documentation page is incorrect, and not enabled.<br /><br />Chapter-2 (Page-18) – There is supposed to be a link to refer the reader to the Well-Architected Framework (WAF) main page (re: “<i>For the complete framework</i>…”) – but the link that is provided – is to a sub-page– referring to Application Gateway concerns – “<b>Azure Well-Architected Framework review - Azure Application Gateway v2</b>”. <br /><br />Chapter-2 (Page-23) - The section on cost optimization discussion – would be better placed near the end of the book, in a dedicated chapter for that topic. <br /><br />Chapter-2 (page-23) - The advice to “<i><u>Whenever possible, look for cloud-native offerings to offload your workloads</u></i>.” – seems incongruent with the section’s focus on cost optimization. If you don’t have significant variability in your scaleability requirements – and you have sufficient compute power in an existing data center – you may be able to more efficiently manage some CPU/memory intensive workloads – on your existing data center hardware.<br /><br />Chapter-2 would greatly benefit by having some illustrative worked examples of the costs for different cost variances – based on different deployment choices of some simple Data Architecture examples. Instead of saying it can vary across regions, or network ingress/egress can increase costs, or hosting in different regions can increase latencies. In particular, citing some actual examples from the barely mentioned Azure calculator, and Total Cost of Ownership (TCO) calculator. <br /><br />Chapter-2 (page-27) - The very brief discussion of “<i>Using data partitioning</i>” – would be much better if it included a discussion of the why, for each strategy mentioned. <br /><br />Chapter-2 (page-29) – The enumeration of the concepts of Subscriptions, Resource groups, and Management groups – is not in the same order as the hierarchy depicted in the corresponding diagram – which introduces confusion – and needless burden on the reader to mentally CORRECT what they may have thought was safe to infer from the ordering of the list. Rule #1: Make learning EASY for the reader<br /><br />Chapter-2 (page-29) - the book still refers to the old name ("<i><b>Azure Active Directory (AAD)</b></i>"). It should be updated to reflect the new name ("<a href="https://azure.microsoft.com/en-us/updates/azure-ad-is-becoming-microsoft-entra-id/ " target="_blank">Microsoft Entra ID</a>") - that was announced July 11th, BEFORE the book was published. <br /><br />Chapter-2 (page-30) – “<u><i>The architecture of the data management landing zone is quite extensive and may be hard to clearly visualize in this book</i></u>” – supports my belief that this book should actually be closer to 450-650 pages in length.<br /><br />Chapter-2 (page-30) the link to the data management landing zone is not hyperlink enabled – and when the text is copied – it <b><u><i>mangles</i></u></b> the link, putting parts of the URL out of their correct order. <br /><br />Chapter-2 (page-31): "<i>Services shown in color are mandatory for the landing zone, whereas services that appear in gray are optional</i>" re: <b>Fig 2.2</b>. Is *<b><u><i>very</i></u></b>* confusing - as there doesn't appear to be any services colored gray. The only thing gray - are the layers. There appear to only be services in either black, or reddish-orange.<br /><br />Chapter-3 discusses different strategies for ingestion – but the decision criteria is often embedded in paragraphs - a decision-tree or decision criteria would perhaps be beneficial to help communicate the information more visually. This would be especially helpful when there are more than two possible choices discussed. <br /><br />Chapter-3 (page-51): The term <b>SHIRs</b> is introduced, and is defined as self-hosted IRs. However, nowhere in the previous pages, was IR defined as an acronym. For the benefit of the reader, the full term should be defined here as <b>Self-Hosted Integration Runtime</b>.<br /><br />Chapter-3 (page-57): The discussion on <b>Event Hub</b> should include a link to the “<a href="https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-quotas " target="_blank">Azure Event Hubs quotas and limits</a>”) in the Azure documentation.<br /><br />Chapter-6 (page-135): The reference to “<i>The data vault method</i>” – <u>should provide the proper attribution to its creator</u>: "<i>The author of the third approach to the subject of the data warehouse, known as the Data Vault, is <a href="https://en.wikipedia.org/wiki/Dan_Linstedt" target="_blank">Dan Linstedt</a>. The Data Vault is the result of 10 years of his research efforts to ensure the consistency, flexibility and scalability of the warehouse. The first results of his research in this field are five articles on this subject, which were published in 2000. In contrary to Inmon’s view, Linstedt assumes that all available data from the entire time period should be loaded into the warehouse. This is known as the “single version of the facts” approach. As with Kimball’s star schema, with the Data Vault Linstedt introduces some additional objects to organize the data warehouse structure. These objects are referred to as the hub, satellite and link</i>". [<a href="https://www.nearshore-it.eu/articles/technologies/data-warehouse-architecture/#Types-of-data-warehouse-architecture " target="_blank">source</a>]<br /><br />Chapter-7 (page-144): "<i>Figure 7.6 – Power BI Premium as a superset of AAS</i>", the light-colored font is *much* more difficult to read. <br /><br />Chapter-7 should introduce the concepts of taxonomy and ontology – and provide reference to some public domain examples. <br /></p><p class="MsoNormal">For example:</p><ul style="text-align: left;"><li class="MsoNormal"><a href="https://www.ontotext.com/blog/the-power-of-ontologies-and-knowledge-graphs-for-the-financial-industry/">https://www.ontotext.com/blog/the-power-of-ontologies-and-knowledge-graphs-for-the-financial-industry/</a></li><li><a href="http://www.oegov.us/">http://www.oegov.us/</a>
</li><li><a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1839690/">https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1839690/</a>
</li><li>The Financial Industry Business Ontology (FIBO)</li><ul><li><a href="https://github.com/edmcouncil/fibo/">https://github.com/edmcouncil/fibo/</a></li><li><a href="https://spec.edmcouncil.org/fibo/ontology/MetadataFIBO/FIBOSpecification">https://spec.edmcouncil.org/fibo/ontology/MetadataFIBO/FIBOSpecification</a></li></ul></ul><p><br />Chapter-8 (page-154): The link to the pricing for Power BI is __<b><i>very</i></b>__ incongruent with the *<b>complete</b>* lack of reference to any links for other service pricing details – as well as the lack of any citation in the book to the __very important__ documentation links for service-specific <b><u>Quotas and Limits</u></b>. </p><p><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0in;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</p><p>Chapter-8 itself – feels like it is VERY out-of-place, and does not feel like it belongs in an ARCHITECT book. It is written to a level of detail for a DEVELOPER, that I WISH the *PREVIOUS* 7 chapters had demonstrated. <br /><br />Chapter-8 begs the question – why does it delve into the development details – when none of the previous chapters have touched on such matters? <br /><br />Chapter-9 (pages 185-187): Discusses Azure Cognitive Services (re: Speech, Vision) – but doesn’t connect the dots to how this applies to Data Architecture. Further, the level of discussion barely goes beyond “brochure-ware” – and smells of a marketing ploy – not a chapter intent on teaching how to use the Azure AI services. <br /><br />Chapter-9 (189-…): Begins discussing the “Azure OpenAI Service” – and though it makes a vague reference to *some* hallucination concerns– it DOES NOT cite the relevant OpenAI papers: <a href="• https://cdn.openai.com/papers/gpt-4.pdf " target="_blank"> GPT-4 Technical Report (27 March 2023)</a>; nor the <a href="• https://cdn.openai.com/papers/gpt-4-system-card.pdf " target="_blank">GPT-4 System Card (27 March 2023)</a> – that latter of which, specifically includes this explicit <b>warning</b>: “<u><i><b><span style="color: red;">In particular, our usage policies prohibit the use of our models and products in the contexts of high risk government decision making (e.g, law enforcement, criminal justice, migration and asylum), or for offering legal or health advice.</span></b></i></u>”<br /><br />Chapter-10: Does not provide any links to the relevant standards that are cited (i.e., DCAM, DAMA DMBOK)<br /><br />Chapter-11 (page-228): states “<i>The only significant choice to make here is which version of the TLS protocol to choose: TLS 1.0, TLS 1.1, or TLS 1.2</i>”. This ignores the fact that TLS 1.0 and TLS 1.1 have been deemed to be vulnerable – and TLS 1.2 should be minimally enforced. Further, this sentence should include TLS 1.3. The appropriate NIST paper for TLS should be cited for exclusion of TLS 1.0 and TLS 1.1, and the NIST recommendation/guidance for adoption of TLS 1.2, and TLS 1.3.<br /></p><p class="MsoNormal"><b>Book's companion Github repository</b>: </p>
<p class="MsoNormal">N/A - <u><span style="color: red;"><b>completely missing</b></span></u><br /></p>
</div><div><b></b><p></p><p class="MsoNormal"><span style="background-color: #fff2cc;"><b>*My* Additional Suggested Microsoft Documentation References</b>:</span></p><ol style="text-align: left;"><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/data-guide/">https://learn.microsoft.com/en-us/azure/architecture/data-guide/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/data-guide/big-data/">https://learn.microsoft.com/en-us/azure/architecture/data-guide/big-data/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/example-scenario/data/data-warehouse/">https://learn.microsoft.com/en-us/azure/architecture/example-scenario/data/data-warehouse/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/enterprise-data-warehouse/">https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/enterprise-data-warehouse/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/advanced-analytics-on-big-data/">https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/advanced-analytics-on-big-data/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/data/enterprise-bi-adf/">https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/data/enterprise-bi-adf/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/example-scenario/data/small-medium-data-warehouse/">https://learn.microsoft.com/en-us/azure/architecture/example-scenario/data/small-medium-data-warehouse/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/example-scenario/analytics/enterprise-bi-synapse/">https://learn.microsoft.com/en-us/azure/architecture/example-scenario/analytics/enterprise-bi-synapse/</a></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/architecture/example-scenario/dataplate2e/data-platform-end-to-end/">https://learn.microsoft.com/en-us/azure/architecture/example-scenario/dataplate2e/data-platform-end-to-end/</a><span class="MsoHyperlink"><span color="windowtext" style="text-decoration: none; text-underline: none;"></span></span><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"> </span></span></li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/azure/storage/common/storage-service-encryption">https://learn.microsoft.com/en-us/azure/storage/common/storage-service-encryption</a> </li><ol><li class="MsoNormal">“<i>Data in Azure Storage is encrypted and
decrypted transparently using 256-bit AES encryption, one of the strongest
block ciphers available, and is FIPS 140-2 compliant</i>.”</li><li class="MsoNormal"><a href="https://learn.microsoft.com/en-us/windows/win32/seccng/cng-portal">https://learn.microsoft.com/en-us/windows/win32/seccng/cng-portal</a></li><ol><li class="MsoNormal">"<i>Cryptography API: Next Generation (CNG) is the
long-term replacement for the CryptoAPI. CNG is designed to be extensible at
many levels and cryptography agnostic in behavior.</i>"</li></ol><li class="MsoNormal"><a href="https://en.wikipedia.org/wiki/Advanced_Encryption_Standard">https://en.wikipedia.org/wiki/Advanced_Encryption_Standard</a> </li><ol><li class="MsoNormal">“<i>At present, there is no known practical
attack that would allow someone without knowledge of the key to read data
encrypted by AES when correctly implemented.</i>”</li></ol></ol></ol><span style="background-color: #fff2cc;"><b>*My* Additionally suggested background reading</b>:</span><ol style="text-align: left;"><li class="MsoNormal"><a href="https://www.amazon.com/Building-Scalable-Data-Warehouse-Vault-ebook/dp/B015KKYFGO" target="_blank"><i>Building a Scalable Data Warehouse with Data Vault 2.0</i> </a>(2015, by <span>Dan Linstedt, and Michael Olschimke)</span> </li><li class="MsoNormal"><a href="https://www.snowflake.com/resource/5-best-practices-for-data-warehouse-development/">https://www.snowflake.com/resource/5-best-practices-for-data-warehouse-development/</a></li><li class="MsoNormal"><a href="https://www.astera.com/type/blog/data-warehouse-concepts/">https://www.astera.com/type/blog/data-warehouse-concepts/</a></li><li class="MsoNormal"><a href="https://www.geeksforgeeks.org/data-warehouse-architecture/">https://www.geeksforgeeks.org/data-warehouse-architecture/</a> </li><li class="MsoNormal"><a href="https://www.geeksforgeeks.org/difference-between-kimball-and-inmon/">https://www.geeksforgeeks.org/difference-between-kimball-and-inmon/</a> </li><li class="MsoNormal"><a href="https://medium.com/cloudzone/inmon-vs-kimball-the-great-data-warehousing-debate-78c57f0b5e0e">https://medium.com/cloudzone/inmon-vs-kimball-the-great-data-warehousing-debate-78c57f0b5e0e</a></li><li class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font: 7pt "Times New Roman";"> </span></span></span><a href="https://www.incorta.com/blog/death-of-a-star-schema-redux-moving-beyond-inmon-and-kimball">https://www.incorta.com/blog/death-of-a-star-schema-redux-moving-beyond-inmon-and-kimball</a></li><ol><li class="MsoNormal"> <i>Historically, there were two models to choose
from: Ralph Kimball’s “bottom-up” approach to mapping atomic data or Bill
Inmon’s “top-down” model. In recent years, however, the technology that
supports BI and data warehousing has evolved rapidly. Now, there is a third
option for data warehousing and BI in a post-star-schema, post-ETL world: <b>non-dimensional
data modeling</b>.</i></li><li class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font: 7pt "Times New Roman";"> </span></span></span><a href="https://go.incorta.com/recording-death-of-the-star-schema">https://go.incorta.com/recording-death-of-the-star-schema</a></li></ol><li class="MsoNormal"><a href="https://www.nearshore-it.eu/articles/technologies/data-warehouse-architecture/">https://www.nearshore-it.eu/articles/technologies/data-warehouse-architecture/</a></li><ol><li class="MsoNormal"> <i>Data warehouses are inextricably associated with
the American computer scientist <b><span face=""Calibri",sans-serif" style="mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;">Bill Inmon, born in 1945</span></b>,
who is widely considered the father of the data warehouse. In 2007, Bill Inmon
was named by Computerworld as one of the ten people who have had the most
significant impact on IT development in the past 40 years. In 1992, Inmon
defined the data warehouse as follows:</i></li><ol><li class="MsoNormal">"<i>A data warehouse is a subject-oriented,
integrated, time-variant and non-volatile collection of data in support of management’s
decision-making process</i>”</li></ol><li class="MsoNormal"><i>Next to Inmon, Ralph Kimball, born in 1944, is
another key figure in the field of data warehousing. Unlike Inmon’s definition
of a data warehouse, where the emphasis is on the characteristics of the
warehouse, Kimball focuses on its purpose: “a copy of transaction data
specifically structured for query and analysis.”</i></li><li class="MsoNormal"><i>The author of the third approach to the subject
of the data warehouse, known as the Data Vault, is <b><span face=""Calibri",sans-serif" style="mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;">Dan Linstedt. </span></b>The Data Vault is
the result of 10 years of his research efforts to ensure the consistency,
flexibility and scalability of the warehouse. The first results of his research
in this field are five articles on this subject, which were published in 2000. </i></li><ol><li class="MsoNormal">"<i>In contrary to Inmon’s view, Linstedt assumes
that all available data from the entire time period should be loaded into the
warehouse. This is known as the “single version of the facts” approach. As with
Kimball’s star schema, with the Data Vault Linstedt introduces some additional
objects to organize the data warehouse structure. These objects are referred to
as the </i><b><span face=""Calibri",sans-serif" style="mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;"><i>hub, satellite and link.</i>"</span></b></li></ol></ol><li class="MsoNormal"><b><span face=""Calibri",sans-serif" style="mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;"> </span></b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font: 7pt "Times New Roman";">
</span></span></span><a href="https://www.analytics8.com/blog/is-dimensional-data-modeling-still-relevant-in-the-modern-data-stack/#">https://www.analytics8.com/blog/is-dimensional-data-modeling-still-relevant-in-the-modern-data-stack/</a></li><ol><li class="MsoNormal"><i> Is dimensional data modeling still relevant in
the modern data stack? </i></li><ol><li class="MsoNormal"><i><b>Yes</b>—specifically for defining
requirements and creating a modular solution presenting data for analytics.</i></li></ol></ol><li class="MsoNormal"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font: 7pt "Times New Roman";"> </span></span></span>In 2017,<a href="https://www.gartner.com/en/newsroom/press-releases/2015-09-15-gartner-says-business-intelligence-and-analytics-leaders-must-focus-on-mindsets-and-culture-to-kick-start-advanced-analytics" target="_blank"> Gartner estimated</a> that 60% of data warehouse
implementations would have only limited acceptance or fail entirely. <span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font: 7pt "Times New Roman";"> </span></span></span></li><ol><li class="MsoNormal"><a href="https://www.gartner.com/en/newsroom/press-releases/2015-09-15-gartner-says-business-intelligence-and-analytics-leaders-must-focus-on-mindsets-and-culture-to-kick-start-advanced-analytics">https://www.gartner.com/en/newsroom/press-releases/2015-09-15-gartner-says-business-intelligence-and-analytics-leaders-must-focus-on-mindsets-and-culture-to-kick-start-advanced-analytics</a> </li></ol><li class="MsoNormal">YouTube: Kimball in the context of the modern
data warehouse: what's worth keeping, and what's not </li><ol><li class="MsoNormal"><a href="https://www.youtube.com/watch?v=3OcS2TMXELU">https://www.youtube.com/watch?v=3OcS2TMXELU</a> </li></ol><li class="MsoNormal">Innovative Approaches for efficiently
Warehousing Complex Data from the Web</li><ol><li class="MsoNormal"><a href="https://arxiv.org/abs/1701.08643">https://arxiv.org/abs/1701.08643</a></li></ol><li class="MsoNormal"> Toward a New Approach for Modeling Dependability
of Data Warehouse System</li><ol><li class="MsoNormal"><a href="https://arxiv.org/abs/1311.1181">https://arxiv.org/abs/1311.1181</a> </li></ol><li class="MsoNormal">The End of an Architectural Era for Analytical
Databases</li><ol><li class="MsoNormal"><a href="https://arxiv.org/abs/1209.1425">https://arxiv.org/abs/1209.1425</a></li></ol><li class="MsoNormal"> An Approach to Handle Big Data Warehouse
Evolution (2018) </li><ol><li class="MsoNormal"><a href="https://arxiv.org/abs/1809.04284">https://arxiv.org/abs/1809.04284</a> </li></ol><li class="MsoNormal">On building Information Warehouses</li><ol><li class="MsoNormal"><a href="https://arxiv.org/pdf/0910.2638.pdf">https://arxiv.org/pdf/0910.2638.pdf</a> </li></ol><li class="MsoNormal">A new paradigm for accelerating clinical data
science at Stanford Medicine</li><ol><li class="MsoNormal"><a href="https://arxiv.org/abs/2003.10534">https://arxiv.org/abs/2003.10534</a> </li><li class="MsoNormal">Abstract: "<i>Stanford Medicine is building a new data
platform for our academic research community to do better clinical data
science. Hospitals have a large amount of patient data and researchers have
demonstrated the ability to reuse that data and AI approaches to derive novel
insights, support patient care, and improve care quality. However, the
traditional data warehouse and Honest Broker approaches that are in current
use, are not scalable. We are establishing a new secure Big Data platform that
aims to reduce time to access and analyze data. In this platform, data is
anonymized to preserve patient data privacy and made available preparatory to
Institutional Review Board (IRB) submission. Furthermore, the data is
standardized such that analysis done at Stanford can be replicated elsewhere
using the same analytical code and clinical concepts. Finally, the analytics
data warehouse integrates with a secure data science computational facility to
support large scale data analytics. The ecosystem is designed to bring the
modern data science community to highly sensitive clinical data in a secure and
collaborative big data analytics environment with a goal to enable bigger,
better and faster science.</i>"</li></ol></ol>
<p><b>From the Amazon Listing</b>:</p><p><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0in;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</p><h1></h1>
<p class="MsoNormal">"<i>With data’s growing importance in businesses, the need for
cloud data and AI architects has never been higher. The Azure Data and AI
Architect Handbook is designed to assist any data professional or academic
looking to advance their cloud data platform designing skills. This book will
help you understand all the individual components of an end-to-end data
architecture and how to piece them together into a scalable and robust
solution.</i>"</p>
<p class="MsoNormal">"<i>You’ll begin by getting to grips with core data architecture
design concepts and Azure Data & AI services, before exploring cloud
landing zones and best practices for building up an enterprise-scale data
platform from scratch. Next, you’ll take a deep dive into various data domains
such as data engineering, business intelligence, data science, and data
governance. As you advance, you’ll cover topics ranging from learning different
methods of ingesting data into the cloud to designing the right data
warehousing solution, managing large-scale data transformations, extracting
valuable insights, and learning how to leverage cloud computing to drive
advanced analytical workloads. Finally, you’ll discover how to add data
governance, compliance, and security to solutions.</i>"</p>
<p class="MsoNormal">"<i>By the end of this book, you’ll have gained the expertise
needed to become a well-rounded Azure Data & AI architect.</i>"</p>
<p class="MsoNormal"><b>What you will learn</b></p><ul><li class="MsoNormal"><i>"Design scalable and cost-effective cloud data
platforms on Microsoft Azure"</i></li><li><i>"Explore architectural design patterns with
various use cases"</i></li><li><i>"Determine the right data stores and data
warehouse solutions"</i></li><li><i>"Discover best practices for data orchestration
and transformation"</i></li><li><i>"Help end users to visualize data using
interactive dashboarding"</i></li><li><i>"Leverage OpenAI and custom ML models for
advanced analytics"</i></li><li><i>"Manage security, compliance, and governance for
the data estate"</i></li></ul>
<p class="MsoNormal"><b>Who this book is for</b></p>
<p class="MsoNormal">"<i>This book is for anyone looking to elevate their skill set
to the level of an architect. Data engineers, data scientists, business
intelligence developers, and database administrators who want to learn how to
design end-to-end data solutions and get a bird’s-eye view of the entire data
platform will find this book useful. Although not required, basic knowledge of
databases and data engineering workloads is recommended.</i>"</p>
<p> </p><p> </p></div>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-38807154798598625302023-09-10T07:42:00.007-07:002023-09-10T08:00:08.265-07:002023-09-10 Sunday - The Seeds of Innovation Begin with You<p><span class="break-words"><span></span></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXAAYdSQgbzy_Bmx4eQPdvr4ah_RUjRx7Q8yZiNRpx1a4TBAXAwjkT0jPbxyaHqghieF_cT09rLJYQc0Cl6WCwj_YAJ4xLnHRB8S3qPoL7v7GjepE-KBODzPPmJs68OYfoUyyGAcjFOay8E4AnC6VYuNZ3oWw5NCLkYuPan30eqtIxfU6VsK7h/s1280/pomegranate-3383814_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="850" data-original-width="1280" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXAAYdSQgbzy_Bmx4eQPdvr4ah_RUjRx7Q8yZiNRpx1a4TBAXAwjkT0jPbxyaHqghieF_cT09rLJYQc0Cl6WCwj_YAJ4xLnHRB8S3qPoL7v7GjepE-KBODzPPmJs68OYfoUyyGAcjFOay8E4AnC6VYuNZ3oWw5NCLkYuPan30eqtIxfU6VsK7h/w640-h426/pomegranate-3383814_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">[image credit: megspl on pixabay.com]<br /></td></tr></tbody></table><br /><span dir="ltr"><br />Today's meditation:<br />Innovation isn't the responsibility of a department in your company.<br /><br />It begins with each employee. <br /><br />It begins with you.<br /><br />*<b>You</b>*
must take responsibility for cultivating the seeds of innovation -
within yourself, in your daily work, within the sphere of your locus of
control - or influence, and actively encouraging innovation in your
daily interactions with others. <br /><br />It begins with your Daily Habits.<br /><br />How many different ways are you seeking to expose yourself to new ideas?<br /><br />How
many different ways are you actively seeking to engage in the exchange
of ideas with others - and not just within your own company?<br /><br />What are you reading?<br /><br />What are you learning?<br /><br />What experiments are you <b><i>personally</i></b> trying?<br /><br />We
are all limited to the same 24-hours in our day - and you can't do/try
everything - so how are you organizing your personal Knowledge
Management - so that you are building up a wealth of insights and ideas -
from the efforts of many others - how do you seek to preserve those
potential future seeds of innovation - from what you see, hear,
learn...now?<br /><br />For by nurturing a practice of harvesting seeds now - you may hopefully enjoy a bountiful harvest, for decades to come.<br /><br /></span><span class="break-words
"><span><span dir="ltr">Pro Tip: Real competitive advantage level
innovation - isn't going to be found by following the lemmings. They are
skating to where the hockey puck last was - not where it is going to
be.</span></span></span><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-60469337221660395362023-08-24T19:46:00.012-07:002023-09-01T17:07:07.733-07:002023-08-24 Thursday - Researching Alternatives to Flexera Technopedia<p><b>Flexera Technopedia References</b>: <br /></p><p>This blog post is a placeholder to organize some of my research on possible alternatives to Flexera's Technopedia.</p><ol style="text-align: left;"><li><a href="https://www.flexera.com/flexera-one" target="_blank">https://www.flexera.com/flexera-one</a> <br /></li><ol><li><a href="https://www.flexera.com/flexera-one/it-asset-management" target="_blank">https://www.flexera.com/flexera-one/it-asset-management</a> <br /></li></ol><li><a href="https://resources.flexera.com/web/media/documents/Datasheet-DP-Technopedia.pdf" target="_blank">https://resources.flexera.com/web/media/documents/Datasheet-DP-Technopedia.pdf</a></li><li><a href="https://community.flexera.com/" target="_blank">https://community.flexera.com/</a></li><ol><li><a href="https://community.flexera.com/t5/Data-Platform-Forum/bd-p/Data-Platform-Discussion" target="_blank">https://community.flexera.com/t5/Data-Platform-Forum/bd-p/Data-Platform-Discussion</a> </li><li><a href="https://community.flexera.com/t5/Data-Platform-Forum/Data-Platform-Information/td-p/281524" target="_blank">https://community.flexera.com/t5/Data-Platform-Forum/Data-Platform-Information/td-p/281524</a> <br /></li><ol><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><img alt="" src="data:image/png;base64,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" style="margin-left: auto; margin-right: auto;" /></td></tr><tr><td class="tr-caption" style="text-align: center;">[source: flexera.com, screenshot of post, 2023-09-01]<br /></td></tr></tbody></table><li> <br /></li></ol></ol><li> </li></ol><p>Flexera YouTube Channel:</p><ol style="text-align: left;"><li><a href="https://www.youtube.com/@FlexeraSoftware" target="_blank">https://www.youtube.com/@FlexeraSoftware</a> <br /></li><li><a href="https://www.youtube.com/watch?v=E-KUnb1eCMc" target="_blank">IT Visibility – Technopedia Catalog and Identification</a><br /> </li></ol><p><br /></p><p><b>Glossary of Terms</b>: <br /></p><ul style="text-align: left;"><li>End-of-Life (EOL) <br /></li><li>Product Lifecycle Management (PLM) </li></ul><p> <br /></p><p></p><p><b>Possible Sourcing Alternatives</b>: <br /></p><ol style="text-align: left;"><li>(vendor's own product support web site) <br /></li><li><a href="https://www.wikipedia.org/" target="_blank">https://www.wikipedia.org/</a></li><ol><li>NOTE: There are quite a few software/technology product pages that provide some good EOL and Lifecycle information, or links to the vendor site.</li><li>For example, Java Development Kit (JDK)</li><ol><li><a href="https://en.wikipedia.org/wiki/Java_Development_Kit" target="_blank">https://en.wikipedia.org/wiki/Java_Development_Kit</a></li><ol><li><a href="https://www.oracle.com/java/technologies/java-se-support-roadmap.html" target="_blank">https://www.oracle.com/java/technologies/java-se-support-roadmap.html</a><br /> </li></ol></ol></ol><li><a href="https://www.oit.va.gov/Services/TRM/SearchPage.aspx">https://www.oit.va.gov/Services/TRM/SearchPage.aspx</a> <br /></li><ol><li><a href="https://www.oit.va.gov/Services/TRM/TRMHomePage.aspx">https://www.oit.va.gov/Services/TRM/TRMHomePage.aspx</a> <br /></li><li><a href="https://www.oit.va.gov/Services/TRM/TRMHomePage.aspx" target="_blank">https://www.oit.va.gov/Services/TRM/TRMHomePage.aspx</a> <br /></li></ol><li><a href="https://endoflife.date/" target="_blank">https://endoflife.date/</a></li><ol><li>NOTE: As of 2023-09-01, there are only<b><u> 253</u></b> products listed</li></ol></ol><p><b>Backlog to research</b>: </p><ol><li>Zluri</li><li>Augmentt </li><li>Zylo</li><li>BetterCloud</li><li>Binadox</li><li>ManageEngine</li><li>AssetSonar</li><li>Ampliphae</li><li>Cledara</li></ol><p> </p><p> </p><p><b>Background Notes</b>: </p><p>Technopedia used to offer an URL where you could lookup information on a given technology. However, sometime prior to 2021 - that URL was deprecated:</p><p><a href="https://community.flexera.com/t5/Data-Platform-Forum/Technopedia-Lookup/m-p/172940" target="_blank">https://community.flexera.com/t5/Data-Platform-Forum/Technopedia-Lookup/m-p/172940</a></p><p> </p><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsaPUS4Mnyc2SzJd4p2Jnaay0Tt1Of9Rg88aYXn3svRhtc_xMd0L0_yd_v07Z_KD0eag9S6Y3LhJgJMsC-c_we8BgHl77nxgf-gvF5WVRlTOl9b5mTluz8yTEiH9jrJpi-Ph9iYxYzQ0uQmk7IzIzatn6480DUhg0Il-YkQJ7o7EJ16-faItfw/s810/2020-Technopedia-Lookup-Removed.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="810" data-original-width="790" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsaPUS4Mnyc2SzJd4p2Jnaay0Tt1Of9Rg88aYXn3svRhtc_xMd0L0_yd_v07Z_KD0eag9S6Y3LhJgJMsC-c_we8BgHl77nxgf-gvF5WVRlTOl9b5mTluz8yTEiH9jrJpi-Ph9iYxYzQ0uQmk7IzIzatn6480DUhg0Il-YkQJ7o7EJ16-faItfw/w624-h640/2020-Technopedia-Lookup-Removed.png" width="624" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small;">[image credit: flexera.com]</span><br /></td></tr></tbody></table><br /> <br /><p></p><p><br /></p><p><br /></p>
<p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-1326937800407062992023-08-22T18:17:00.012-07:002023-08-23T11:08:46.027-07:002023-08-22 Tuesday - Argue for your limitations and, sure enough, they're yours<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVB1fXutRCOvOnLX09GUAeHX7XKDyxft6QFRyGuoBSmp79RdrZ882Q0UMxWlAV4DWfOpAdnLeArSaFIwKBgC0MrFMesqtV9y1ftYDYg9WLgAKv4X_nVpAYq3Hj1m-Ynx5FPvSynWS0ERYN7sL0FQkj-GMb7Q8CQaIt_qIrXVdTWJeGicVjXjwW/s417/ShuHaRi.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="179" data-original-width="417" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVB1fXutRCOvOnLX09GUAeHX7XKDyxft6QFRyGuoBSmp79RdrZ882Q0UMxWlAV4DWfOpAdnLeArSaFIwKBgC0MrFMesqtV9y1ftYDYg9WLgAKv4X_nVpAYq3Hj1m-Ynx5FPvSynWS0ERYN7sL0FQkj-GMb7Q8CQaIt_qIrXVdTWJeGicVjXjwW/w640-h274/ShuHaRi.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small;">[Kanji: "Shuhari", image source: wikipedia.org]</span><br /></td></tr></tbody></table><br /><p></p><span class="break-words"><span><span dir="ltr"></span></span></span><p></p><p><span class="break-words"><span><span dir="ltr"></span></span></span></p><p><span class="break-words"><span><span dir="ltr"></span></span></span></p><p><span class="break-words"><span><span dir="ltr"></span></span></span></p><p><b>Today's meditation</b>:</p><p>“<i>Argue for your limitations and, sure enough, they're yours</i>.”<br />~ Richard Bach, Illusions: The Adventures of a Reluctant Messiah </p><p></p><p>A favorite book, from my youth. </p><p></p><p>This quote came to mind today, after I had a chance to reflect on a series of *vigorous* idea exchanges with someone - regarding our *very* different views on the foundational definitions of what is architecture. </p><p></p><p>In Japanese martial arts, there is a concept known as "<b>Shu</b>-<b>ha</b>-<b>ri</b>" (Kanji: 守破離 Hiragana: しゅはり) <br /></p><p><span class="comments-comment-item__main-content feed-shared-main-content--comment t-14 t-black t-normal"><span dir="ltr"><a class="app-aware-link" data-test-app-aware-link="" href="https://en.wikipedia.org/wiki/Shuhari" target="_self">https://en.wikipedia.org/wiki/Shuhari</a><span><br /></span><span></span></span></span></p><blockquote>"<b>shu</b> (守) "protect", "obey"—traditional wisdom—learning fundamentals, techniques, heuristics, proverbs."<span><br /></span><span><br /></span>"<b>ha</b>
(破) 'detach', 'digress'—breaking with tradition—detachment from the
illusions of self, to break with tradition - to find exceptions to
traditional wisdom, to find new approaches. In some styles of Japanese
music (gagaku and noh), it is also the middle of the song."<span><br /></span><span><br /></span>"<b>ri</b>
(離) 'leave', 'separate'—transcendence—there are no techniques or
proverbs, all moves are natural, becoming one with spirit alone without
clinging to forms; transcending the physical - there is no traditional
technique or wisdom, all movements are allowed."</blockquote><p></p><p>Which roughly translates as "<i><b>to keep, to fall, to break away</b></i>" or "<b><i>follow the rules, break the rules, transcend the rules</i></b>".</p><p></p><p><i>Some architects</i> insist on rigid adherence to certain ideas, definitions, frameworks, standards - that have their roots in thinking that is 30+ years old. When confronted with evolving interpretations of ideas - they react - instead of responding. </p><p></p><p>It is difficult to let go of what is old, worn, and comfortable - but that is where the "<b>Ha</b>" comes in - to break out of the cycle - and "<b>Ri</b>", to experience new growth. </p><p>New interpretations - that challenge existing preconceptions - for what architecture encompasses - is healthy, and necessary. </p><p>Clinging to the "<b>Shu</b>" - is to become brittle, and break. For the vitality of the roots to wither and die.</p><p></p><p>There are thousands of different types of martial arts - many of them share the same principles, concepts, and patterns - but they find different ways to express their essential differences. </p><p></p><p>Those variations do not make those martial arts less - they enrich the ecosystem. </p><p></p><p>Variation of interpretation isn't wrong, and it doesn't make one style's interpretation of the martial arts better - or worse - than another. </p><p></p><p>The same should be the mindset of IT practitioners of the different schools of thought in Enterprise Architecture, Business Architecture, agile practices, etc.</p><p> </p><p>The measure of anything - is whether it is effective. </p><p></p><p>Will your block stop a kick, or a punch?</p><p></p><p>Will your approach to architecture deliver results?</p><p></p><p>We shouldn't be so attached to frameworks like SAFe, TOGAF, or notations, or anything that makes our thinking rigid - and prevents us from moving naturally - and responding to change.</p><p></p><p></p><p>There is a Zen teaching: “<i>The Finger Points at the Moon</i>". </p><p></p><p>The finger is the spiritual teaching, and the moon is the truth. </p><p></p><p>This is a reminder not to be too attached to words and/or teachings and not to confuse either with what they are pointing to.</p><p></p><p>If ISO definitions work for you - and you can deliver results - then use them. </p><p></p><p>But do not allow your attachments to blind you to growth - and learning new ways. </p><p></p><p>If another has discarded attachments to strict adherence to some made-up things - be cautious concluding that they must not know what they are doing. Keep what works - Discard what doesn't.</p><p></p><p>Allow for the possibility that they they have embraced "<b>Ri</b>".</p><p></p><p>"<b>Ri</b>" is where real progress begins.</p><p><span class="break-words"><span><span dir="ltr"></span></span></span></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-78940451235243449302023-08-18T18:45:00.016-07:002023-10-03T19:41:34.030-07:002023-08-18 Friday - Today's Meditation - Reference Architecture as Abstraction<p><span class="break-words"><span><span dir="ltr"></span></span></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6HvWIkBUpXzZgZopc_58uQXtkkMnmGc34ULibxvQtBr5Ahbq1jRdpqPU4flfj3L2meUSfeWjy27q1a8Y4Igwsf7KWrgWp7k17oDo_2mjFf-xjjaNnxLM5QTJT0m8Z_MXbn0J7dad_ngWDrfu14g1MLzmuJ69b0CidyHFYErtrPM6EC9fHYbSN/s1920/puzzle-654963_1920.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1440" data-original-width="1920" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6HvWIkBUpXzZgZopc_58uQXtkkMnmGc34ULibxvQtBr5Ahbq1jRdpqPU4flfj3L2meUSfeWjy27q1a8Y4Igwsf7KWrgWp7k17oDo_2mjFf-xjjaNnxLM5QTJT0m8Z_MXbn0J7dad_ngWDrfu14g1MLzmuJ69b0CidyHFYErtrPM6EC9fHYbSN/w640-h480/puzzle-654963_1920.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span class="break-words"><span><span dir="ltr"><span style="font-size: xx-small;">[image credit: 422737 on <a data-attribute-index="15" href="http://pixabay.com">pixabay.com</a>]</span></span></span></span></td></tr></tbody></table><span class="break-words"><span><span dir="ltr"><br /> Today's meditation:</span></span></span><p></p><p><span class="break-words"><span><span dir="ltr"><br />I think many IT teams have "<u><i>lost the thread</i></u>" on the value of abstractions in design. <br /><br />A <b>pattern</b> is <b><span style="color: red;">not</span></b> a <b>detail design specification</b>, <span style="color: red;"><b>nor </b></span>is it an <b>implementation specification</b>, <b><span style="color: red;">nor</span></b> is it a <b>solution architecture</b>.<br /><br />Likewise,
a <b>Reference Architecture</b> *<u><i>SHOULD</i></u>* be kept at an abstract level - and
<span style="color: red;"><b>not </b></span>be misconstrued as a S<b>olution Architecture</b> (which is almost always
implementation specific).<br /><br />However, the major cloud vendors - to include <a data-attribute-index="0" data-entity-type="MINI_COMPANY" href="https://www.linkedin.com/company/amazon-web-services/">Amazon Web Services (AWS)</a>, <a data-attribute-index="2" data-entity-type="MINI_COMPANY" href="https://www.linkedin.com/company/microsoft-azure/">Microsoft Azure</a>, and <a data-attribute-index="4" data-entity-type="MINI_COMPANY" href="https://www.linkedin.com/company/google-cloud/">Google Cloud</a> Platform (GCP) - have decided to classify implementation-specific architecture guidance as "<b>Reference Architecture</b>". <br /><br />Within
their respective *<b><u>WALLED GARDEN</u></b>* - it is plausibly reasonable - ONLY within the contexts of their specific cloud services environment - as an
acceptable exception to classify that type of an artifact as a <b>Reference
Architecture</b>.<br /><br />However, it is not appropriate to let that
smudging of the line of Architecture View taxonomy, definition, and
distinction - to expand beyond those narrowly defined contexts. <br /><br />A
<b>Reference Architecture</b> SHOULD be something that can be <u>reused</u>, as a
macro-level pattern - <u><span style="color: red;">regardless of the specific technology in any
environment</span></u>. <br /><br />To put this another way - your <b>Reference
Architecture</b> - SHOULD be at the <u>technical capabilities</u> / <u>standards level</u>
- <b><span style="color: red;">not</span> </b>the technology-specific implementation / solution architecture
level. <br /></span></span></span></p><p>This allows us to define views, the context, use cases, scenarios under which it is fit-for-purpose - and not fit-for-purpose, as well as its limitations, forces & constraints, NFRs, etc. - that are appropriate for a given Reference Architecture - without worrying about the target platform upon which it may be implemented. </p><p><span class="break-words"><span><span dir="ltr">The literature within
the field of Information Technology - lacks consistency and clarity on
this basic definition - and the lack of such clarity - introduces
significant issues with getting alignment and agreement - when
introducing the concept of Reference Architectures and Patterns into an
organization. <span style="background-color: #fff2cc;">And thus, more's the pity</span>. <br /><br />As I mentioned in the
2nd paragraph of this posting - with intention - I have stipulated my
view & definition of <b>Reference Architecture</b> with the proviso of
"<u><i>SHOULD</i></u>" - I allow that there are edge cases (e.g., Walled Garden) . <br /></span></span></span></p><p>The benefits of adopting such discipline in how we define and use <b>Reference Architectures</b>:</p><ul><li>Reuse</li><li>Clarity</li><li>Conciseness </li><li>Consistency</li></ul><p>And designs that consistently address:</p><ul style="text-align: left;"><li>Availability </li><li>Scalability</li><li>Reliability </li><li>Performance</li><li>Security</li></ul><p><span class="break-words"><span><span dir="ltr"><a data-attribute-index="6" href="https://www.linkedin.com/feed/hashtag/?keywords=patterns&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#patterns</a>, <a data-attribute-index="7" href="https://www.linkedin.com/feed/hashtag/?keywords=referencearchitecture&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#ReferenceArchitecture</a>, <a data-attribute-index="8" href="https://www.linkedin.com/feed/hashtag/?keywords=enterprisearchitecture&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#EnterpriseArchitecture,</a> <a data-attribute-index="9" href="https://www.linkedin.com/feed/hashtag/?keywords=solutonarchitecture&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#SolutionArchitecture,</a> <a data-attribute-index="10" href="https://www.linkedin.com/feed/hashtag/?keywords=detaildesign&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#DetailDesign</a>, <a data-attribute-index="11" href="https://www.linkedin.com/feed/hashtag/?keywords=sad&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#SAD</a>, <a data-attribute-index="12" href="https://www.linkedin.com/feed/hashtag/?keywords=specification&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#Specification</a>, <a data-attribute-index="13" href="https://www.linkedin.com/feed/hashtag/?keywords=abstraction&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#Abstraction</a>, <a data-attribute-index="14" href="https://www.linkedin.com/feed/hashtag/?keywords=reuse&highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7098474411820793856">#Reuse</a> </span></span></span></p><p><span class="break-words"><span><span dir="ltr"> </span></span></span></p><p><span class="break-words"><span><span dir="ltr">Finally, none other than <a href="https://www.linkedin.com/in/ghohpe/" target="_blank">Gregor Hohpe</a> (Sr. Principal Evangelist, AWS - and author of the books <a href="https://www.amazon.com/Software-Architect-Elevator-Redefining-Architects/dp/1492077542/" target="_blank">The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise</a>; and <a href="https://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/" target="_blank">Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions</a>) weighed in with this <a href="https://www.linkedin.com/feed/update/urn:li:activity:7098474411820793856?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7098474411820793856%2C7098965313538465792%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287098965313538465792%2Curn%3Ali%3Aactivity%3A7098474411820793856%29" target="_blank">comment</a> on my original <a href="https://www.linkedin.com/posts/activity-7098474411820793856-eYMs?utm_source=share&utm_medium=member_desktop" target="_blank">LinkedIn post</a>: <br /></span></span></span></p><p><span class="break-words"><span><span dir="ltr"> </span></span></span></p><div class="separator" style="clear: both; text-align: center;"><span class="break-words"><span><span dir="ltr"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3pNpEevLYMlJWM8XAiXh4J55cJ52d_JnouMMYacZW19WlTOtBz1zX4o4_NXn7uARefLd1MiSEzpAgEfqwIxJRKtvKxPo2dgFSnYtFtPBTBuoA7-c9C1Ic5FqJBHT9hEMfLYQOa13g-0w8ulTgx7-1IpiFhXW9ILKGznaZbR2paEecIFqvRvUE/s620/Screenshot%202023-08-25%20083256.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="191" data-original-width="620" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3pNpEevLYMlJWM8XAiXh4J55cJ52d_JnouMMYacZW19WlTOtBz1zX4o4_NXn7uARefLd1MiSEzpAgEfqwIxJRKtvKxPo2dgFSnYtFtPBTBuoA7-c9C1Ic5FqJBHT9hEMfLYQOa13g-0w8ulTgx7-1IpiFhXW9ILKGznaZbR2paEecIFqvRvUE/w640-h198/Screenshot%202023-08-25%20083256.png" width="640" /></a></span></span></span></div><span class="break-words"><span><span dir="ltr"><br /></span></span></span><br /><p></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-62825594184700667342023-08-12T13:56:00.007-07:002023-08-19T14:40:20.765-07:002023-08-12 Saturday - I am a writer - and so I write<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK6Ykrp_c5hhM6cI1Ngnolkg4d16ttrOGFxQEAiGTZ55mt2nY37o76XmWk6OmkY5o3iazI7uEwF-NINh2C7D57b7TKdzlRQZz7XZnyb_VGY4r6MicNjnGAp9zTsxKAzHZyPPSh31ojbtOTLDoS1ejAuueeSEPRAmcDfKRTOz19Z_Yi4jXUU0ea/s1280/typewriter-gbf05651f8_1280.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="853" data-original-width="1280" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK6Ykrp_c5hhM6cI1Ngnolkg4d16ttrOGFxQEAiGTZ55mt2nY37o76XmWk6OmkY5o3iazI7uEwF-NINh2C7D57b7TKdzlRQZz7XZnyb_VGY4r6MicNjnGAp9zTsxKAzHZyPPSh31ojbtOTLDoS1ejAuueeSEPRAmcDfKRTOz19Z_Yi4jXUU0ea/w640-h426/typewriter-gbf05651f8_1280.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small;">[image credit: JillWellington on pixabay.com]</span><br /></td></tr></tbody></table><br /><p><br />I am a writer, and so I write. <br /><br />Sometimes I write to explore, sometimes to express, sometimes to memorialize. <br /><br />I write for myself, not for an audience. <br /><br />I write, as a I would to share a thought with a friend. <br /><br />I write because it brings me joy. <br /><br />Perhaps a piece will resonate with you today. Or maybe tomorrow. Or maybe in a year. Or perhaps ten. <br /><br />Some
writing is like that. You must be in the right frame-of-mind to receive
some messages. Therefore, I leave these words upon these digital crossroads. Perhaps
you will come back to them again some day. <br /><br />Some bits will be OK, some will be rough. Some will be shite. I accept that. <br /><br />I see the patterns that <b>elicit</b> the most responses, but I do not write for clicks, views, or likes. <br />I write from what moves me. From my passion. I seek to find my authentic voice. <br /><br />I write, because I am a writer. <br /><br />I write to explore my own thoughts. <br /><br />I write to hold up a lamp in the darkness. Perhaps the light will resonate with others. If so, perhaps we are of the same tribe...and through our writing, we may find each other. <br /><br /></p>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0tag:blogger.com,1999:blog-28846336.post-18363811251695190882023-08-12T11:40:00.044-07:002023-08-16T11:23:34.448-07:002023-08-12 Saturday - On The Value of Patterns<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnSjodrb3d-A_GVKmcjZ06KLmC1bsxzJ0dEKLiFTkbg_J_3ranpyYa7sqBMe7vDPsKRe7zJrNZoFJpoN6xm6AE1VvNgZ9OaMJLR3SVlKlF6uVNeCceehwYs0H-sgdoW9uVTOvmaEJpYdzXORlR0Jo9jMOrJbk6R9siPehTgRcUBnATuOwH3gAg/s1920/container-4203677_1920.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1280" data-original-width="1920" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnSjodrb3d-A_GVKmcjZ06KLmC1bsxzJ0dEKLiFTkbg_J_3ranpyYa7sqBMe7vDPsKRe7zJrNZoFJpoN6xm6AE1VvNgZ9OaMJLR3SVlKlF6uVNeCceehwYs0H-sgdoW9uVTOvmaEJpYdzXORlR0Jo9jMOrJbk6R9siPehTgRcUBnATuOwH3gAg/w640-h426/container-4203677_1920.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: xx-small;">[image credit: ValdasMiskinis on pixabay.com]</span><br />
</td></tr></tbody></table><br /><p></p><p>A recent conversation with a colleague has given me pause to think about one of the more severe <span style="background-color: #fff2cc; color: red;">stumbling blocks</span> - <u><span style="color: red;"><b>that I now believe</b></span></u> - Enterprise Architects are perhaps far too...</p><p></p><blockquote><p>unaware of (to be generous), </p><p>or have made a <u><i>conscious</i></u> choice of <span><a href="https://en.wikipedia.org/wiki/Inattentional_blindness" target="_blank">perceptual blindness</a> </span> (<i><b>possibly</b></i>), </p><p>or are simply operating with an <u><i>unconscious</i></u> <a href="https://en.wikipedia.org/wiki/Inattentional_blindness" target="_blank">inattentional blindness</a> (<b><i>likely</i></b>). </p></blockquote><p></p><div style="text-align: left;"></div><p></p><p>My university education was in the field of classic computer science - so I have an inherent bias towards thinking in terms of data structures, algorithms, and <u><b>patterns</b></u>. </p><p></p><p>Patterns are such a foundational cornerstone of how I think, and how I approach problems & solutions - it is just a part of my professional DNA. </p><p></p><p><b>I cannot comprehend working</b> on any endeavor of software engineering, or at any of the various levels of architecture (enterprise, security, infrastructure, information/data, system, software, solution, ...) <b>without leveraging patterns</b> (either intentionally, or unconsciously). </p><p>To be sure, there are numerous real-world solutions, and mountains of bad code - that were created with <u><i>no conscious and intentional</i></u> use of patterns, although unconscious choices of patterns did occur (e.g., <a href="https://en.wikipedia.org/wiki/Spaghetti_code" target="_blank"><i>Spaghetti</i></a> is a pattern - it's just, more precisely, an example of an <a href="https://en.wikipedia.org/wiki/Anti-pattern" target="_blank"><b><i>anti-pattern</i></b></a>). </p><p></p><p>Patterns are building blocks. </p><p>They can be defined from the micro to macro scale. </p><p>They are the basis for any ability to achieve reuse. </p><p>They (<i>generally</i>) should not be implementation specific.</p><p>They are not <b>implementation specifications</b>. </p><p>They are not <b>solution (detail) designs</b>. </p><p>Nor are they <b>solution architectures</b> (which by definition, must be implementation specific). </p><p>Patterns exist (and suffer) with many different taxonomies - but they do exist. </p><p></p><p>By studying patterns, you reduce the cognitive load to understand, or design, anything - and it can be very helpful in bringing clarity and precision to any communication. </p><p></p><p>Patterns support consistency, repeatability, reliability - in the design of any solution. </p><p></p><p>Most patterns require stipulation of the types of problems (or conditions) under which a given pattern is appropriate - and those for which it would be inappropriate. </p><p><span style="background-color: #fff2cc; color: red;">About that stumbling block I mentioned earlier</span>. Sadly, the utility and value of patterns are not universally understood by everyone that works in Information Technology (IT). <u><span style="color: red;"><b>It is quite often dismissed as <i>too theoretical</i>. Nothing could be further from the truth</b></span></u>. Patterns are the <u>bedrock</u> upon which reliable systems are built. <br /></p><p>To explore the depth of someone's understanding of patterns, I use a simple discussion exercise, that goes something like this:<br /></p><blockquote><p><span style="color: #2b00fe;">Imagine that your company [<b>A</b>] has a new business requirement to send <u>Customer Information</u> updates to partner [<b>B</b>]. <br /></span></p></blockquote><blockquote><p><span style="color: #2b00fe;"><b>Stipulations</b>:</span></p></blockquote><blockquote><ul style="text-align: left;"><li><span style="color: #2b00fe;">There is no current integration between [<b>A</b>] and [<b>B</b>], for this data.</span></li></ul></blockquote><p>From just that baseline description - the relative degree of experience and expertise of an individual can be quickly assessed - based on the questions they ask, before they begin proposing a solution. <br /></p><p>Walking someone through this exercise, can also be very useful, to help explore their understanding of patterns. </p><p>To help with this discovery effort, I use three different sets of requirements, that I assign to three different <b>project phases</b>. </p><p>What is interesting to me, in observing how someone responds to just
the limited integration requirements of Phase-1, is which patterns do they turn to
first? What questions do they ask? Do they discuss any trade-offs in their consideration of possible choices? Or, do they leap to a solution, before asking any questions? To what degree do they understand/explore the possible Non-Functional Requirements (NFRs)?<br /></p><span style="color: #2b00fe;"><b></b></span><p></p><p></p><blockquote><p><span style="color: #2b00fe;"><b>Phase-1</b>:</span></p></blockquote><blockquote><ul style="text-align: left;"><li><span style="color: #2b00fe;"><b>Partners: </b>1</span> </li></ul></blockquote><blockquote><ul style="text-align: left;"><li><span style="color: #2b00fe;"><b>NFR: </b>Data <a href="https://en.wikipedia.org/wiki/Latency_(engineering)" target="_blank">Latency</a> MUST BE Less than 24 hours.</span></li></ul></blockquote><p>Phase-2 requirements, forces someone, who may be <i>just</i> on the edge of making a different integration solution decision - usually to reveal much about their experience, their preferences, their depth of understanding for long-term <b>change management</b>, <b>solution maintainability</b>, <b>operational impact</b>, and <b>potential trade-offs</b>. Observing the questions that someone asks at this point in the discussion...where their
thinking goes, how they weigh the different potential trade-offs...is often <i>very illuminating</i>...as is any dearth for just such considerations. <br /></p><span style="color: #2b00fe;"><b></b></span><p><span style="color: #2b00fe;"></span></p><blockquote><span style="color: #2b00fe;"><b>Phase-2</b><span>:</span></span></blockquote><p></p><p></p><p></p><p></p><ul style="text-align: left;"><blockquote><li><span style="color: #2b00fe;"><b>Partners</b>: 1</span> <br /></li></blockquote><blockquote><li><span style="color: #2b00fe;"><b>NFR</b>: Integration MUST BE designed for <a href="https://en.wikipedia.org/wiki/High_availability" target="_blank">High Availability</a></span></li><li><span style="color: #2b00fe;"><b>NFR</b>: Integration MUST BE designed for <a href="https://en.wikipedia.org/wiki/Reliability_(computer_networking)" target="_blank">Reliable Delivery</a></span></li><li><span style="color: #2b00fe;"><b>NFR: </b>Data <a href="https://en.wikipedia.org/wiki/Latency_(engineering)" target="_blank">Latency</a> MUST BE less than 1 hour.</span></li></blockquote></ul><p>Phase-3 requirements are where someone's depth and breadth of experience and expertise are <i>really</i> discovered. No one can hide from this revealing change in requirements. All is laid bare. <br /></p><p><span style="color: #2b00fe;"></span></p><blockquote><b> <span style="color: #2b00fe;">Phase-3</span></b><span style="color: #2b00fe;">: </span><br /></blockquote><p></p><blockquote><ul style="text-align: left;"><li><span style="color: #2b00fe;"><b>Partners</b>: 1,000</span> <br /></li></ul></blockquote><blockquote><ul style="text-align: left;"><li><span style="color: #2b00fe;"><b>NFR: </b>Data <a href="https://en.wikipedia.org/wiki/Latency_(engineering)" target="_blank">Latency</a> MUST BE less than 60 seconds (which, although not explicitly stated, implies an NFR for <a href="https://en.wikipedia.org/wiki/Scalability" target="_blank">Scalability</a>) <br /></span></li></ul></blockquote><p>The long-term implications of any patterns proposed/chosen, across these three sets of fairly simple requirements - can be a great teaching tool, for those that are willing to listen - and engage in an open and honest dialogue. <br /><br />Hopefully, participants in such discovery discussions, may deepen their appreciation of the <i>nuances of various concerns</i> that a pattern-based approach can help encapsulate and encompass, in a repeatable, and reusable, manner. <br /></p><p>Without understanding the implications of pattern choices - some folks may continue to <i>jus</i>t use techniques that they have grown comfortable with - but which can be woefully inadequate for the requirements stipulated. This has implications for many <a href="https://en.wikipedia.org/wiki/Non-functional_requirement" target="_blank">Non-Functional Requirements (NFRs)</a>:</p><ul style="text-align: left;"><li>Accuracy <br /></li><li>Adaptability <br /></li><li>Availability</li><li>Change Management</li><li>Compliance </li><li>Configuration Management <br /></li><li>Cost, initial and Life-cycle cost </li><li>Data Integrity <br /></li><li>Data Latency</li><li>Data Quality <br /></li><li>Disaster Recovery </li><li>Efficiency<br /></li><li>Extensibility <br /></li><li>Failure Management <br /></li><li>Fault Tolerance </li><li>Interoperability</li><li>Maintainability</li><li>Network Latency <br /></li><li>Observability</li><li>Operability</li><li>Performance</li><ul><li>Response Time</li><li>Memory Utilization</li><li>CPU Utilization</li></ul><li>Reliability </li><li>Repeatability</li><li>Resilience </li><li>Re-usability</li><li>Scalability</li><ul><li>Capacity <br /></li><li>Elasticity </li><li>Throughput<br /></li></ul><li>Security</li><ul><li>Authentication</li><li>Authorization <br /></li><li>Encryption</li><li>Exploitability</li><li>Attack Surface Area <br /></li></ul><li>Stability</li><li>Support-ability <br /></li></ul><p>A good pattern should address a relevant set of NFRs for a particular problem/solution <i><u>context</u></i>. This helps teams be holistic in how they approach solution design - and it can help them avoid missing key/critical concerns. <br /></p><p></p><p></p><p></p><p></p><p></p><p></p><p><br /><b>References</b>: <br /></p><ol style="text-align: left;"><li><span style="font-family: inherit; font-size: small;"><a href="https://en.wikipedia.org/wiki/Pattern_language" target="_blank">https://en.wikipedia.org/wiki/Pattern_language</a></span></li><ol><li><a href="https://www.patternlanguage.com/" target="_blank">https://www.patternlanguage.com/</a><span style="font-family: inherit; font-size: small;"> </span></li><li><span style="font-family: inherit; font-size: small;"><a href="https://en.wikipedia.org/wiki/A_Pattern_Language" target="_blank">https://en.wikipedia.org/wiki/A_Pattern_Language</a> </span></li><li><span style="font-family: inherit; font-size: small;"><a href="https://arl.human.cornell.edu/linked%20docs/Alexander_A_Pattern_Language.pdf" target="_blank">https://arl.human.cornell.edu/linked%20docs/Alexander_A_Pattern_Language.pdf<br /></a></span></li></ol><li><span style="font-family: inherit; font-size: small;"><a href="https://wiki.c2.com/?DesignPatterns" target="_blank">https://wiki.c2.com/?DesignPatterns</a></span></li><li><span style="font-family: inherit; font-size: small;"><a href="https://en.wikipedia.org/wiki/Software_design_pattern" target="_blank">https://en.wikipedia.org/wiki/Software_design_pattern</a> </span></li><li><a href="https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns" target="_blank">https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns</a></li><li><a href="https://en.wikipedia.org/wiki/Modular_design" target="_blank">https://en.wikipedia.org/wiki/Modular_design</a><br /></li></ol><p><span style="font-family: inherit; font-size: small;"> </span></p><p><span style="font-family: inherit; font-size: small;"><b>Suggested Books</b>: <br />(<span style="background-color: #fff2cc;">still working on this list, will add [n] numbering later...</span>)<br /></span></p><p><span style="font-family: inherit; font-size: small;">[-] Christopher, Alexander, et al (1977). <a href="https://www.amazon.com/Pattern-Language-Buildings-Construction-Environmental/dp/0195019199" target="_blank">A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure Series)</a></span></p><p><span style="font-family: inherit; font-size: small;">[-] Davis, Cornelia (2019). <a href="https://www.amazon.com/Cloud-Native-Designing-change-tolerant-software/dp/1617294292/" target="_blank">Cloud Native Patterns: Designing change-tolerant software, First Edition</a> <br /></span></p><p><span style="font-family: inherit; font-size: small;">[-] </span>DiBernardo, Michael, et al<span style="font-family: inherit; font-size: small;">, (link retrieved: 2023-08-12). <a href="https://aosabook.org/en/" target="_blank">The Architecture of Open Source Applications</a></span><span style="font-family: inherit; font-size: small;"> </span></p><p><span style="font-family: inherit; font-size: small;">[-] </span><cite class="citation book cs1" id="CITEREFFowler2002"><a href="https://en.wikipedia.org/wiki/Martin_Fowler_(software_engineer)" title="Martin Fowler (software engineer)">Fowler, Martin</a>, et al (2002). <a href="https://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/" target="_blank"><i>Patterns of Enterprise Application Architecture</i></a>. <a href="https://en.wikipedia.org/wiki/Addison-Wesley" title="Addison-Wesley">Addison-Wesley</a>. <a class="mw-redirect" href="https://en.wikipedia.org/wiki/ISBN_(identifier)" title="ISBN (identifier)">ISBN</a> <a href="https://en.wikipedia.org/wiki/Special:BookSources/978-0-321-12742-6" title="Special:BookSources/978-0-321-12742-6"><bdi>978-0-321-12742-6</bdi></a></cite></p><p><cite class="citation book cs1" id="CITEREFHohpeWoolf2003">[-] </cite><cite class="citation book cs1" id="CITEREFFreemanRobsonBatesSierra2004">Freeman, Eric T.; Robson, Elisabeth (2021). <a href="https://www.amazon.com/Head-First-Design-Patterns-Object-Oriented/dp/149207800X/r" target="_blank"><i>Head First Design Patterns</i>, 2nd Edition</a></cite><cite class="citation book cs1" id="CITEREFFowler2002"><bdi> <br /></bdi></cite></p><p><span style="font-family: inherit; font-size: small;">[-] <cite class="citation book cs1" id="CITEREFGammaHelmJohnsonVlissides1994"><a href="https://en.wikipedia.org/wiki/Erich_Gamma" title="Erich Gamma">Gamma, Erich</a>; <a href="https://en.wikipedia.org/wiki/Richard_Helm" title="Richard Helm">Helm, Richard</a>; <a href="https://en.wikipedia.org/wiki/Ralph_Johnson_(computer_scientist)" title="Ralph Johnson (computer scientist)">Johnson, Ralph</a>; <a href="https://en.wikipedia.org/wiki/John_Vlissides" title="John Vlissides">Vlissides, John</a> (1994). <a class="mw-redirect" href="https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/" title="Design Patterns (book)"><i>Design Patterns: Elements of Reusable Object-Oriented Software</i></a>. <a href="https://en.wikipedia.org/wiki/Addison-Wesley" title="Addison-Wesley">Addison-Wesley</a>. <a class="mw-redirect" href="https://en.wikipedia.org/wiki/ISBN_(identifier)" title="ISBN (identifier)">ISBN</a> <a href="https://en.wikipedia.org/wiki/Special:BookSources/978-0-201-63361-0" title="Special:BookSources/978-0-201-63361-0"><bdi>978-0-201-63361-0</bdi></a></cite></span></p><p><span style="font-family: inherit; font-size: small;"><cite class="citation book cs1" id="CITEREFGammaHelmJohnsonVlissides1994">[-] </cite></span><cite class="citation book cs1" id="CITEREFHohpeWoolf2003">Hohpe, Gregor; Woolf, Bobby (2003). <a href="https://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/" target="_blank"><i>Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions</i></a>. <a href="https://en.wikipedia.org/wiki/Addison-Wesley" title="Addison-Wesley">Addison-Wesley</a>. <a class="mw-redirect" href="https://en.wikipedia.org/wiki/ISBN_(identifier)" title="ISBN (identifier)">ISBN</a> <a href="https://en.wikipedia.org/wiki/Special:BookSources/978-0-321-20068-6" title="Special:BookSources/978-0-321-20068-6"><bdi>978-0-321-20068-6</bdi></a>, [<a href="https://www.enterpriseintegrationpatterns.com/" target="_blank">companion web site</a>]</cite></p><p><cite class="citation book cs1" id="CITEREFHohpeWoolf2003">[-] Indrasiri, Kasun, et al (2021). <a href="https://www.amazon.com/Design-Patterns-Cloud-Native-Applications/dp/1492090719/" target="_blank">Design Patterns for Cloud Native Applications: Patterns in Practice Using APIs, Data, Events, and Streams, 1st Edition</a> <br /></cite></p><p><cite class="citation book cs1" id="CITEREFHohpeWoolf2003"></cite></p><p><cite class="citation book cs1" id="CITEREFHohpeWoolf2003">[-] Resnick, Pini, et al (2020). <a href="https://www.amazon.com/Cloud-Native-Transformation-Practical-Innovation/dp/1492048909/" target="_blank">Cloud Native Transformation: Practical Patterns for Innovation, 1st Edition</a> <br /></cite></p><p><cite class="citation book cs1" id="CITEREFHohpeWoolf2003">[-] <a href="https://www.amazon.com/Microservices-Patterns-examples-Chris-Richardson/dp/1617294543" target="_blank">Richardson, Chris (2018). Microservices Patterns: With examples in Java, First Edition</a>, </cite><cite class="citation book cs1" id="CITEREFGammaHelmJohnsonVlissides1994">[<a href="https://microservices.io/" target="_blank">companion web site</a>] </cite> </p><p> </p><p><b>YouTube Videos</b>: </p><ol style="text-align: left;"><li><a href="https://www.youtube.com/watch?v=98LdFA-_zfA" target="_blank">Christopher Alexander - Patterns in Architecture</a></li><ol><li>The 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications (OOPSLA). San Jose, California, October of 1996 <br /></li></ol><li>... <br /></li></ol>Kelvin D. Meekshttp://www.blogger.com/profile/17848925262437218501noreply@blogger.com0