tag:blogger.com,1999:blog-30859194891806344602024-03-18T10:42:48.252-07:00Confucius-Ma HomeShare information on IT Data Web Technical DIY Sportsconfusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.comBlogger54125tag:blogger.com,1999:blog-3085919489180634460.post-75749500067089615322024-03-18T10:42:00.000-07:002024-03-18T10:42:10.802-07:00Regular Expressions 101<p><span style="font-family: times; font-size: medium;"> </span><span style="font-family: times; font-size: large;"><b>/^.*ezsend\/link\/([\w-]+)\/([\w-]+)\/([\w-]+)?.*$</b></span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhibqYipsqJoCfE9X3DqnZE38vODAXivUfd9V4CZ2_1tx-nlNqUHrxBKuCFw9HMLtUycPW-eKMgONTkzVvQv2-YJRIrHcmz-htXP6LW9TDTJO1A6p130XNRkW0SLwl8385pwGdJ2uDx1TK7cmr0ws011H8-yQpW0XJe5Ij8RO98YZyin_jNec59PGtwzPM/s1919/Screenshot%202024-03-18%20113454.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="943" data-original-width="1919" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhibqYipsqJoCfE9X3DqnZE38vODAXivUfd9V4CZ2_1tx-nlNqUHrxBKuCFw9HMLtUycPW-eKMgONTkzVvQv2-YJRIrHcmz-htXP6LW9TDTJO1A6p130XNRkW0SLwl8385pwGdJ2uDx1TK7cmr0ws011H8-yQpW0XJe5Ij8RO98YZyin_jNec59PGtwzPM/w400-h196/Screenshot%202024-03-18%20113454.png" width="400" /></a></div><span style="font-family: times; font-size: large;">Regular expression sounds very intimating....</span><span style="font-family: times; font-size: large;">Good site for testing - </span><span style="font-family: times; font-size: medium;">https://regex101.com/</span><p></p><p><span style="font-family: times; font-size: large;">Let's break down the regular expression ^.*ezsend\/link\/([\w-]+)\/([\w-]+)\/([\w-]+)?.*$:</span></p><p><span style="font-family: times; font-size: large;">^: Asserts the start of the string.</span></p><p><span style="font-family: times; font-size: medium;">.*: Matches any character (.) zero or more times (*). This part is used to match any characters before the "ezsend/link" part of the URL.</span></p><p><span style="font-family: times; font-size: medium;">ezsend\/link\/: Matches the literal string "ezsend/link/".</span></p><p><span style="font-family: times; font-size: medium;">([\w-]+): This is the first capturing group, denoted by the parentheses. It matches one or more word characters (\w) or hyphens (-). Word characters include letters, digits, and underscores.</span></p><p><span style="font-family: times; font-size: medium;">\/: Matches the forward slash / after the first token.</span></p><p><span style="font-family: times; font-size: medium;">([\w-]+): This is the second capturing group, which matches the second token similar to the first one.</span></p><p><span style="font-family: times; font-size: medium;">\/: Matches the forward slash / after the second token.</span></p><p><span style="font-family: times; font-size: medium;">([\w-]+)?: This is the third capturing group, matching the third token similar to the first two. The ? makes this group optional, allowing the pattern to match URLs with or without a third token.</span></p><p><span style="font-family: times; font-size: medium;">.*: Matches any remaining characters after the third token, if present.</span></p><p><span style="font-family: times; font-size: medium;">$: Asserts the end of the string.</span></p><p><span style="font-family: times; font-size: medium;"><b>Here's how this regex works:</b></span></p><p><span style="font-family: times; font-size: large;">It starts by matching any characters before "ezsend/link/", ensuring that the URL contains this path.</span></p><p><span style="font-family: times; font-size: medium;">Then, it matches the three tokens separated by forward slashes, allowing hyphens in each token.</span></p><p><span style="font-family: times; font-size: medium;">The third token is optional, indicated by the ?.</span></p><p><span style="font-family: times; font-size: medium;">Finally, it matches any remaining characters in the URL until the end of the string.</span></p><p><span style="font-family: times; font-size: medium;">This regular expression is designed to capture the three tokens from URLs containing hyphens in each token, such as "xSwAAAAAAAA", "l-f1bdGQ92Q", and "ftG-CggAAAA".</span></p><p><br /></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-32203396055042852062024-03-18T10:32:00.000-07:002024-03-18T10:32:28.170-07:00ModelState.Clear vs TryValidateModel(manageModel)<p><span style="font-family: times; font-size: medium;"> </span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: times; font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMcSfhRR6juTu1inpdfm9MQ8hkgkyxXEDLTKhe2Irwe0EwLYPi2vi-AgYMepaerahpgfIrJi7m6mlBc761KDBgnRoTE6Ryd79Ayoz37pFhVQnnV9kC0HyxYH5ovuy_f6P2JzJJk7QzPp2zHIRQ2IN7EI77KGP4VxKm6Fqhrhdo_V2DFwpgEReDiHBxRd4/s351/OIG4%20(12).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="351" data-original-width="351" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMcSfhRR6juTu1inpdfm9MQ8hkgkyxXEDLTKhe2Irwe0EwLYPi2vi-AgYMepaerahpgfIrJi7m6mlBc761KDBgnRoTE6Ryd79Ayoz37pFhVQnnV9kC0HyxYH5ovuy_f6P2JzJJk7QzPp2zHIRQ2IN7EI77KGP4VxKm6Fqhrhdo_V2DFwpgEReDiHBxRd4/w400-h400/OIG4%20(12).jpg" width="400" /></a></span></div><span style="font-family: times; font-size: medium;"><br /></span><p></p><p><span style="font-family: times; font-size: medium;">`ModelState.Clear()` and `TryValidateModel(manageModel)` are both methods commonly used in ASP.NET Core applications to manage model validation.</span></p><p><span style="font-family: times; font-size: large;">1. `ModelState.Clear()`: This method is used to clear any model state errors that have been added to the `ModelState` dictionary. In ASP.NET Core, `ModelState` is a dictionary-like object that holds information about the state of model binding and validation for a given request. It stores information about model properties and their validation errors. Calling `ModelState.Clear()` removes all existing validation errors, effectively resetting the model state to a clean state.</span></p><p><span style="font-family: times; font-size: medium;">2. `TryValidateModel(manageModel)`: This method is used to manually trigger model validation for a specified model object (`manageModel` in this case). By calling `TryValidateModel(manageModel)`, you are instructing ASP.NET Core to validate the specified model object against any validation rules defined in its associated data annotations or custom validation logic. If validation succeeds, the method returns `true`, indicating that the model is valid. If validation fails, the method returns `false`, and any validation errors are added to the `ModelState` dictionary.</span></p><p><span style="font-family: times; font-size: medium;">In summary, `ModelState.Clear()` is used to clear any existing model state errors, while `TryValidateModel(manageModel)` is used to manually trigger model validation for a specific model object. These methods are often used together to ensure that model validation is performed correctly in ASP.NET Core applications.</span></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-40778211478576824262024-03-18T10:29:00.000-07:002024-03-18T10:29:22.085-07:00 evt.preventDefault vs evt.stopPropagation<p><span style="font-family: times; font-size: medium;"> </span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: times; font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf1yc-Ewi55bxMh7jWBPNIqyuaj_XAM08UY94s6E_U829nsRxI981tDONGw5oQLC8nAU69VPCR29dIb0TwUbY8EByBHbi_R-74qJc9vkvy6uJMMWeHNwfqhktrdFGGbjwSYajKSI8VQejCtwUipe7h4O5eHFHJDlWyXhK0tSO9QwWLP4xEX2UQCVkuSOw/s351/OIG2%20(21).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="351" data-original-width="351" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf1yc-Ewi55bxMh7jWBPNIqyuaj_XAM08UY94s6E_U829nsRxI981tDONGw5oQLC8nAU69VPCR29dIb0TwUbY8EByBHbi_R-74qJc9vkvy6uJMMWeHNwfqhktrdFGGbjwSYajKSI8VQejCtwUipe7h4O5eHFHJDlWyXhK0tSO9QwWLP4xEX2UQCVkuSOw/w400-h400/OIG2%20(21).jpg" width="400" /></a></span></div><span style="font-family: times; font-size: medium;"><br /></span><p></p><p><span style="font-family: times; font-size: medium;">evt.preventDefault()` and `evt.stopPropagation()` are both methods commonly used in JavaScript to control event propagation and behavior.</span></p><p><span style="font-family: times; font-size: medium;">1. `evt.preventDefault()`: This method is used to prevent the default behavior of an event. In many cases, when an event (such as a click or form submission) occurs, the browser executes some default behavior associated with that event. For example, clicking on a link navigates the browser to the URL specified in the link's `href` attribute. By calling `evt.preventDefault()` inside an event handler function, you can prevent this default behavior from occurring. This is useful when you want to handle an event in a custom way, such as submitting a form via Ajax instead of the default form submission behavior.</span></p><p><span style="font-family: times; font-size: medium;">2. `evt.stopPropagation()`: This method is used to stop the propagation of an event through the DOM tree. When an event occurs on an element, it typically "bubbles" up through the DOM tree, triggering event handlers on ancestor elements. By calling `evt.stopPropagation()`, you prevent the event from propagating any further in the DOM tree. This means that event handlers on parent elements will not be executed. This is useful when you want to handle an event on a specific element without triggering event handlers on its ancestors.</span></p><p><span style="font-family: times; font-size: medium;">In summary, `evt.preventDefault()` is used to prevent the default behavior of an event, while `evt.stopPropagation()` is used to stop the event from propagating further through the DOM tree. Both methods are commonly used together to control event behavior in JavaScript applications.</span></p><p><br /></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-71571486287032075972024-02-20T13:21:00.000-08:002024-02-21T09:00:40.689-08:00AI席卷全球龙头狂卷<p>最近几天,AI市场竞争日趋激烈。各大科技公司都在积极布局AI领域,推出各种新产品和新服务。特别时谷歌双子座(Google Gemini)和OpenAi 索拉(Sora),连我这样的小白也心潮起伏,决定恶补学习不能被时代浪潮抛弃啊:)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9ag_p5iYGyUNrBHjZknqVBebukYYJLoLawi88OJCAsGmMC2dWsImc7sqWNJ9E9g8bgCVEkg0eF6gMMsaHRfGCmDgS1tfM_J3umbwz6PmdtvMDoz3wPrjojAkRFGoSHfiTmTcUJpfuxaNtomjER5KPzGCfMaK8uR0B72KZ0nNugWvJv6xWUgK_TzIvOls/s1536/Gemini_Generated_Image.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1536" data-original-width="1536" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9ag_p5iYGyUNrBHjZknqVBebukYYJLoLawi88OJCAsGmMC2dWsImc7sqWNJ9E9g8bgCVEkg0eF6gMMsaHRfGCmDgS1tfM_J3umbwz6PmdtvMDoz3wPrjojAkRFGoSHfiTmTcUJpfuxaNtomjER5KPzGCfMaK8uR0B72KZ0nNugWvJv6xWUgK_TzIvOls/w400-h400/Gemini_Generated_Image.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn18XQlPm0Q79WIMp5fvrX6V2xKxOJKv5e1jwWz4q6JtjS1CppQXCOGL78C7Pynteufu4ndlkz44h4CLfDW7bAy93K91NZJgND9zIzD4zayOgTOgS7x3tAuVvyIRZPQi0ChA774l-7iXLXJ7khBZmXeZhPWs0_jt9RVzCszgBWAo02V8ShKS6V0VeHt7Y/s578/Screenshot%202024-02-20%20141959.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="578" data-original-width="573" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn18XQlPm0Q79WIMp5fvrX6V2xKxOJKv5e1jwWz4q6JtjS1CppQXCOGL78C7Pynteufu4ndlkz44h4CLfDW7bAy93K91NZJgND9zIzD4zayOgTOgS7x3tAuVvyIRZPQi0ChA774l-7iXLXJ7khBZmXeZhPWs0_jt9RVzCszgBWAo02V8ShKS6V0VeHt7Y/w396-h400/Screenshot%202024-02-20%20141959.png" width="396" /></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-_XuJhaWG6DedKRBPGxVyID1FFqQP4pdEOyxU9MIzue1uEEwkD_-mobvgF7u7xGtEftQ6YqXZXEwN-mxJoJO6gcm01fOJ583XeDZKEvx1aCIIF8x6dLn2DedjtZTeTjrQvNY62vC3pEr7hDAtOi2qtQAETaph-KfC2D8MJ70WU11e0rnauc-gcA6UXfM/s652/Screenshot%202024-02-20%20141839.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="652" data-original-width="599" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-_XuJhaWG6DedKRBPGxVyID1FFqQP4pdEOyxU9MIzue1uEEwkD_-mobvgF7u7xGtEftQ6YqXZXEwN-mxJoJO6gcm01fOJ583XeDZKEvx1aCIIF8x6dLn2DedjtZTeTjrQvNY62vC3pEr7hDAtOi2qtQAETaph-KfC2D8MJ70WU11e0rnauc-gcA6UXfM/w368-h400/Screenshot%202024-02-20%20141839.png" width="368" /></a></div><br /></div><p><b>主要竞争者和热点</b></p><p>目前,AI市场的主要竞争者包括:</p><p>谷歌:谷歌在AI领域拥有强大的技术实力和丰富的资源,是AI市场的主要领导者。</p><p>微软:微软在AI领域也进行了大量投入,在一些细分领域具有领先优势。</p><p>亚马逊:亚马逊在AI领域主要集中在云服务方面,为企业提供AI解决方案。</p><p>Facebook:Facebook在AI领域主要集中在自然语言处理和计算机视觉方面。</p><p>百度:百度是中国领先的AI公司,在搜索、广告、自动驾驶等领域拥有广泛的应用。</p><p>阿里巴巴:阿里巴巴是中国另一家领先的AI公司,在电商、金融、物流等领域拥有广泛的应用。</p><p><b>竞争热点</b></p><p>自然语言处理:自然语言处理是AI领域的重要分支,主要研究人机之间的语言交互。</p><p>计算机视觉:计算机视觉是AI领域的重要分支,主要研究计算机对图像和视频的理解和处理。</p><p>机器学习:机器学习是AI的核心技术,主要研究计算机从数据中学习和自动改进的能力。</p><p>深度学习:深度学习是机器学习的一个重要分支,主要使用人工神经网络进行学习。</p><p>本人小白,一直在用Chatgpt帮助写程序,没有花钱也没有花精力,只是免费3.5;觉得写程序足够了,虽然它的知识库比较旧。今天加圈,希望向高手学习,我不由得抛出一块砖:),敬请指教。</p><p>下面主要就三家-聊天室(Chatgpt),谷歌双子座(Google Gemini)),微软副驾驶(Copilot)做个入门比较。</p><p>打开后我输入:</p><p><b>可否写一篇最新人工智能AI产品介绍比较,比如 coze,Taskade,copilot,Google Gemini, discord,midjourney, openai chatgpt,Sora等等</b></p><p>Chatgpt3.5回答:当我上次更新知识库时,即2022年1月,我并没有收集到关于所有这些产品的详细信息。然而,我可以根据我之前了解到的信息和推测为你提供一些一般性的介绍。请注意,这些信息可能已经过时,建议查阅最新的资料以获取准确和详细的信息。</p><p>因为这一原因,不再做比较,等搞好4.0再说。</p><p>Gemini和Copilot回答基本相似,都提及了刚刚推出的Sora和Gemini。Gemini还给了个比较表,而Copolit附上了信息来源地址。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBos5TCt9aCXKLquSUINSaOc4dJG2U9eESUs4lHunotXxVKMnRe5lS0uVG7ocFsKeJIs6pUgc95REmjIpRF1CNP76IqExRH8BL8Ep0Qp_dfzGJvvNsTWSQqciQm-3VtQ24qjGgd0aKI2AMFvB19Zkmxsw_3vPe8t9A9fBhQ7655HKLXCOl8kmDHjy5cFs/s769/Screenshot%202024-02-20%20135155.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="769" data-original-width="666" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBos5TCt9aCXKLquSUINSaOc4dJG2U9eESUs4lHunotXxVKMnRe5lS0uVG7ocFsKeJIs6pUgc95REmjIpRF1CNP76IqExRH8BL8Ep0Qp_dfzGJvvNsTWSQqciQm-3VtQ24qjGgd0aKI2AMFvB19Zkmxsw_3vPe8t9A9fBhQ7655HKLXCOl8kmDHjy5cFs/w346-h400/Screenshot%202024-02-20%20135155.png" width="346" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf45DHvhCOdf0D9MK3jFySs25LK75ZqjuCZHTMhyC8-tPDmnFj4IC-Axj1IErJvIEZSi_ZcqZahQdBLJMKvQ59Ig99WG4S0xysEqZ10ccXec0OeTwFOKfqzV_SN1Kf-guqKwgDLXH_F-UzMJqOXICRMq0RXmjBLuchX1S2e4FTFGCve371q5F7EjaVHG4/s884/Screenshot%202024-02-20%20135513.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="884" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf45DHvhCOdf0D9MK3jFySs25LK75ZqjuCZHTMhyC8-tPDmnFj4IC-Axj1IErJvIEZSi_ZcqZahQdBLJMKvQ59Ig99WG4S0xysEqZ10ccXec0OeTwFOKfqzV_SN1Kf-guqKwgDLXH_F-UzMJqOXICRMq0RXmjBLuchX1S2e4FTFGCve371q5F7EjaVHG4/w400-h285/Screenshot%202024-02-20%20135513.png" width="400" /></a></div><br /><div><br /></div><div>接着提问:<span face="-apple-system, Roboto, SegoeUI, "Segoe UI", "Helvetica Neue", Helvetica, "Microsoft YaHei", "Meiryo UI", Meiryo, "Arial Unicode MS", sans-serif" style="background-color: white; color: #111111; font-size: 16px; white-space-collapse: preserve;"><b>可否具体详细介绍并列出您的排行及推荐</b></span></div><div><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;"><b><br /></b></span></span></div><div><b style="color: #111111; font-family: -apple-system, Roboto, SegoeUI, "Segoe UI", "Helvetica Neue", Helvetica, "Microsoft YaHei", "Meiryo UI", Meiryo, "Arial Unicode MS", sans-serif; white-space-collapse: preserve;">Copilot</b><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;"><b>排行推荐:<i>Cozen,Taskade,Copilot,Gemini,Discord,Midjourney,Chatgpt, Sora</i></b></span></span></div><div><b style="color: #111111; font-family: -apple-system, Roboto, SegoeUI, "Segoe UI", "Helvetica Neue", Helvetica, "Microsoft YaHei", "Meiryo UI", Meiryo, "Arial Unicode MS", sans-serif; white-space-collapse: preserve;">Gemini</b><b style="color: #111111; font-family: -apple-system, Roboto, SegoeUI, "Segoe UI", "Helvetica Neue", Helvetica, "Microsoft YaHei", "Meiryo UI", Meiryo, "Arial Unicode MS", sans-serif; white-space-collapse: preserve;">排行推荐:Gemini,Chatgpt,Copilot,Midjourney,Sora</b></div><div><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;"><b> </b></span></span></div><div><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;">Gemini把自己排第一,Copilot还挺谦虚,不过力压Gemini:)</span></span></div><div><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;"><br /></span></span></div><div><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;">接着做了一些生成图片和诗词指令,都还不错,Gemini似乎快一些,谷歌毕竟是老牌实力雄厚,听说这次全力以赴试图登上AI龙头位置。免费二年使用还是有很大吸引力,Copilot免费版本似乎也不错,交费三家差不多,20美元左右。</span></span></div><div><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;"><br /></span></span></div><div><span face="-apple-system, Roboto, SegoeUI, Segoe UI, Helvetica Neue, Helvetica, Microsoft YaHei, Meiryo UI, Meiryo, Arial Unicode MS, sans-serif" style="color: #111111;"><span style="white-space-collapse: preserve;">图像生成Copilot用的是Dall-E-OpenAI开发的一系列图像生成器,而G</span></span><span style="color: #111111;"><span style="white-space-collapse: preserve;">Gemini使用Imagen生成图像,Imagen是Google AI于2023年5月推出的一个文本到图像扩散模型,可以生成逼真和富有创意的图像。</span></span></div><div><span face=""Google Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #1f1f1f; font-size: 16px; white-space-collapse: preserve;"><br /></span></div><div><span face=""Google Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #1f1f1f; font-size: 16px; white-space-collapse: preserve;">输入:</span><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><span style="white-space-collapse: preserve;"><b>请创作一首有关龙的传人之词,词牌为《西江月》</b></span></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><span style="white-space-collapse: preserve;">完全失败,三家全都是驴头不对马嘴,Coplit可能觉得不好意思,生成了不少图片。</span></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><span style="white-space-collapse: preserve;"><b><br /></b></span></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><span style="white-space-collapse: preserve;">再输入:<b>您知道西江月多少字吗?</b></span></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><span style="white-space-collapse: preserve;">回答倒是正确50字上下阕,但就是写不出来,知识库还没有那么广,慢慢学习。</span></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><span style="white-space-collapse: preserve;"><br /></span></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2-VSUTpPPs0NmPKmLOmQPmkbTT8IlvWZcDSwCN3nXMSPyP9QU0fLs1VqlNGt8Uk8Yc3LAs4CdI079Bz9Tpepkn-XzpeJpmJf1HgWhhmAn0c4FtYswAmGVgDz-zMX6-6V7f9fmAwEiYb1XnClJq5Ri7Kb523l6at9wzqXSpOErnOKDOAXNtJklJS2j77M/s1626/Screenshot%202024-02-20%20145253.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="847" data-original-width="1626" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2-VSUTpPPs0NmPKmLOmQPmkbTT8IlvWZcDSwCN3nXMSPyP9QU0fLs1VqlNGt8Uk8Yc3LAs4CdI079Bz9Tpepkn-XzpeJpmJf1HgWhhmAn0c4FtYswAmGVgDz-zMX6-6V7f9fmAwEiYb1XnClJq5Ri7Kb523l6at9wzqXSpOErnOKDOAXNtJklJS2j77M/w400-h209/Screenshot%202024-02-20%20145253.png" width="400" /></a></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div>咋天首次用AI写了个春节报道文案,还是不错能省一半时间:)喜欢写作的我也许可以在这方面用用功,</span><span face=""Google Sans", "Helvetica Neue", sans-serif" style="color: #1f1f1f;">听说不少写手</span><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">写个大纲出文本,再用文本出图,发表在亚马逊自嗨平台(self publishing)。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">最后谈谈现在流行的一个工程师,就是<b>Prompt Engineer-指令工程师。</b></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><b>具体职责:</b></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">研究和理解各种生成式 AI 模型的特性和能力。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">分析用户需求,并将其转化为清晰具体的指令 (prompt) 给 AI 模型。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">设计、测试和优化不同的 prompt,以获得最佳的输出结果。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">评估和分析 AI 模型的输出,并根据需要进行调整和改进。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">根据特定领域和任务,开发和应用 prompt 工程技术。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">与其他团队成员 (如数据科学家、工程师) 合作,构建和实现 AI 应用。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><b>所需技能:</b></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">人工智能、自然语言处理 (NLP) 和机器学习方面的知识。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">扎实的编程能力,熟悉各种编程语言和工具。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">优秀的沟通和写作能力,能够清晰地表达自己的想法。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">批判性思维和解决问题的能力,能够分析复杂的场景并找到解决方案。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">对新技术和趋势的敏感性,并愿意不断学习和提升技能。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><b><br /></b></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><b>职业发展路径:</b></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">随着经验的积累,可以进一步提升技术水平,成为资深 prompt engineer。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">可以专注于特定的领域,成为该领域的专家。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">转向管理岗位,带领团队开发和实施 AI 应用。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">创业,建立自己的 AI 公司。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><b><br /></b></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><b>薪资水平:</b></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;">Prompt engineer 的薪资水平因地域、经验、公司规模等因素而异。在美国,prompt engineer 的平均年薪约为 150,000 美元。</span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #1f1f1f;"><b>是不是很诱人?!AI说我消减了不少工作,但我也创造了许多机会,所言虚否?!</b></span></div>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-45813554631701302012023-12-14T13:23:00.000-08:002023-12-15T07:23:48.968-08:00Bootstrap<p><span face="Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="color: #374151; white-space-collapse: preserve;"><b><span style="font-size: large;">Bootstrap</span></b>, very cool, a popular front-end framework for building responsive and visually appealing websites.</span></p><p><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600; white-space-collapse: preserve;">d-inline</code><span face="Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="color: #374151; font-size: 16px; white-space-collapse: preserve;"> is a utility class that sets the display property of an element to </span><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600; white-space-collapse: preserve;">inline</code><span face="Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="color: #374151; font-size: 16px; white-space-collapse: preserve;">.</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style-image: initial; list-style-position: initial; margin: 1.25em 0px; padding: 0px; text-align: left;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; display: block; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px; min-height: 28px; padding-left: 0.375em; white-space-collapse: preserve;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Margin and Padding:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">m-1</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">m-2</code>, ... <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">m-5</code>: Margin classes for spacing (1 to 5).</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">p-1</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">p-2</code>, ... <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">p-5</code>: Padding classes for spacing (1 to 5).</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">mx-3</code>: Horizontal margin.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">px-3</code>: Horizontal padding.</li></ul></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; display: block; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px; min-height: 28px; padding-left: 0.375em; white-space-collapse: preserve;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Text Alignment:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">text-center</code>: Center-align text.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">text-right</code>: Right-align text.</li></ul></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; display: block; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px; min-height: 28px; padding-left: 0.375em; white-space-collapse: preserve;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Background and Color:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">bg-primary</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">bg-secondary</code>, ...: Background color classes.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">text-primary</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">text-secondary</code>, ...: Text color classes.</li></ul></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; display: block; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px; min-height: 28px; padding-left: 0.375em; white-space-collapse: preserve;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span color="var(--tw-prose-bold)" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; font-weight: 600;">Buttons:</span></p></li><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; display: flex; flex-direction: column; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px; white-space-collapse: preserve;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">btn</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">btn-primary</code>, ...: Bootstrap button classes.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.875em; font-weight: 600;">btn-outline-primary</code>: Outline button with primary color.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><b><span style="font-size: large;"><br /></span></b></li></ul></ul><b style="color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; white-space-collapse: preserve;"><span style="font-size: large;">Bootstrap</span></b><span face="Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="color: #374151; font-size: 16px; white-space-collapse: preserve;">, </span><span face="Söhne, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, Helvetica Neue, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji" style="color: #374151;"><span style="white-space-collapse: preserve;">Here is the Documentation site for it:
<a href="https://getbootstrap.com/docs/5.0/utilities/api/">https://getbootstrap.com/docs/5.0/utilities/api/</a></span></span>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-38370661404723441542023-12-14T10:48:00.000-08:002023-12-14T13:23:41.843-08:00WordPress - Useful Links<p><b>Very good WordPress tutorials</b>: <a href="https://www.wpbeginner.com/"><b>https://www.wpbeginner.com/</b></a></p><p><b>Display posts plugin and tutorials:</b></p><p><b><a href="https://displayposts.com/tutorials/">https://displayposts.com/tutorials/</a><br /></b></p><p><a href="https://wordpress.org/plugins/display-post-types/"><b>https://wordpress.org/plugins/display-post-types/</b></a><br /></p><p><br /></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-5897960127747697562023-12-14T10:29:00.000-08:002023-12-14T13:23:49.508-08:00WordPress - PHP<p><b>Making new menu and display location:</b></p><p>1. Code Snippets » Add Snippet </p>
<div><span style="color: red; font-family: monospace;"><?php</span></div><div><span style="color: red; font-family: monospace;"> function wpb_top_right_menu() </span></div><div><span style="color: red; font-family: monospace;">{</span></div><div><span style="color: red; font-family: monospace;"> register_nav_menu('top-right-menu',__( 'Top Right Menu' ));</span></div><div><span style="color: red; font-family: monospace;">}</span></div><div><span style="color: red; font-family: monospace;">add_action( 'init', 'wpb_top_right_menu' );</span><span style="color: red; font-family: monospace;">?></span></div><div><span style="color: red; font-family: monospace;"><br /></span></div><div><span style="color: red; font-family: monospace;"><span style="color: black; font-family: "Times New Roman";">2. </span></span>Appearance » Theme File Editor » Header(typically)</div><div><br /></div><div><span style="color: red; font-family: monospace;">wp_nav_menu( array( 'theme_location'=>'top-right-menu', 'container_class'=>'top-right-class' ) );</span></div>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-35753358642342131462023-12-14T10:20:00.000-08:002023-12-14T10:25:25.951-08:00WordPress - CSS<p>I am helping alumnus to build a WordPress website, quite interesting.</p><p><b>Additional CSS</b>: good way to custom the style.</p><p><b><i>Remove the page title:</i></b></p><p><span style="color: red;">.bread_crumb</span></p><p><span style="color: red;">{ display: none; }</span></p><p><b><i>For custom top right menu:</i></b></p><p><span style="color: red;">div.top-right-class ul {</span></p><p><span style="white-space: normal;"><span style="color: red;"><span style="white-space: pre;"> </span>float:right;</span></span></p><p><span style="color: red;"> margin:20px 0px 20px 0px;</span></p><p><span style="color: red;"> list-style-type: none;</span></p><p><span style="color: red;"> list-style: none;</span></p><p><span style="color: red;"> list-style-image: none;</span></p><p><span style="color: red;"> text-align:right;</span></p><p><span style="color: red;"> display:inline-block;</span></p><p><span style="color: red;">}</span></p><p><span style="color: red;">div.top-right-class li {</span></p><p><span style="color: red;"> padding: 0px 20px 0px 0px;</span></p><p><span style="color: red;"> display: inline-block;</span></p><p><span style="color: red;">} </span></p><p><span style="color: red;">div.top-right-class a {</span><span style="color: red;"> color:blue; </span><span style="color: red;">}</span></p><p><b><i>Remove 1st letter drop cap:</i></b></p><p><span style="color: red;">.entry-content > p:first-of-type:first-letter{</span></p><p><span style="white-space: normal;"><span style="color: red;"><span style="white-space: pre;"> </span>font-size: 100%;</span></span></p><p><span style="color: red;"> <span> </span><span> </span>line-height: 1; </span></p><p><span style="white-space: normal;"><span style="color: red;"><span style="white-space: pre;"> </span>margin-right:-10px;</span></span></p><p><span><span><i><b style="color: black; white-space: normal;">Display posts </b><b>style</b><b style="color: black; white-space: normal;">:</b></i></span></span></p><p><span style="color: red;">.display-posts-listing .listing-item { clear: both; }</span></p><p><span style="color: red;">.display-posts-listing img {</span></p><p><span style="color: red;"> float: left;</span></p><p><span style="color: red;"> margin: 0 10px 10px 0;</span></p><p><span style="color: red;">}</span></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-15790855118123108612023-11-28T13:35:00.000-08:002023-12-15T07:26:54.396-08:00MVC - C# Reference<blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><b><span style="font-size: large;">? </span></b>A question mark (?) is used to denote a nullable type. A nullable type can represent all the values of its underlying non-nullable value type plus an additional null value. This is particularly useful when dealing with value types, which cannot normally be assigned a null value. </blockquote><blockquote><p><b><i></i></b></p><blockquote><p><b><i><span style="color: red;">int? nullableInt = 42; // Valid assignment</span></i></b></p><p><b><i><span style="color: red;">nullableInt = null; // Valid assignment</span></i></b></p><p><b><i><span style="color: red;">DateTime? nullableDateTime = DateTime.Now; // Valid assignment</span></i></b></p><p><b><i><span style="color: red;">nullableDateTime = null; // Valid assignment</span></i></b></p></blockquote><p><b><i></i></b></p><p><b><span style="font-size: large;">??</span></b> The ?? operator, also known as the null-coalescing operator, is used for handling null values in a concise way. It provides a way to return a default value when the left-hand operand is null. </p><blockquote><p><i><b><span style="color: red;">string proName = pro?[0]?.Name ?? "Default Value";</span></b></i></p></blockquote><p>The #pragma warning disable directive is used in C# to disable specific compiler warnings: <b><i>#pragma warning disable CS8602</i></b></p><p><b><span style="font-size: large;">Target-typed</span></b> new expressions are a feature introduced in C# 9.0. They allow you to omit the type in the new expression when the type can be inferred from the surrounding context. This helps reduce redundancy in your code and makes it more concise. </p><p></p><blockquote><p><b><i><span style="color: red;">// Without target-typed new expression</span></i></b></p><p><b><i><span style="color: red;">List<string> names = new List<string>();</span></i></b></p><p><b><i><span style="color: red;">// With target-typed new expression (C# 9.0 and later)</span></i></b></p><p><b><i><span style="color: red;">List<string> names = new(); </span></i></b></p></blockquote></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p style="text-align: left;"><b><span style="font-size: large;">The update-database</span> </b>command is part of the Entity Framework Migrations workflow and is crucial for keeping the database schema in sync with your code changes. It's a powerful tool that automates the process of evolving the database as your application evolves, making it easier to manage changes to your data model over time.</p></blockquote><blockquote><p style="text-align: left;"><span> </span><span> </span><b><i>Applying Database Migrations/Creating the Initial Database/Applying Subsequent <span> </span>Migrations/Rolling Back Migrations</i></b></p></blockquote><blockquote><p><span style="color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; white-space-collapse: preserve;">In Entity Framework, the </span><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-weight: 600; white-space-collapse: preserve;"><span style="font-size: large;">DbContext</span></code><span style="color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; white-space-collapse: preserve;"> class provides a set of methods to interact with the underlying database using LINQ queries. Here are some common methods associated with </span><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600; white-space-collapse: preserve;">DbSet</code><span style="color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; white-space-collapse: preserve;"> that allow you to perform various operations:</span></p><ol style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; counter-reset: list-number 0; display: flex; flex-direction: column; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; list-style: none; margin: 1.25em 0px; padding: 0px; white-space-collapse: preserve;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-bold); font-weight: 600;">Query Operations:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">FirstOrDefault</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">SingleOrDefault</code>: Retrieve the first or a single entity that satisfies a condition.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">Where</code>: Filter entities based on a condition.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">OrderBy</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">OrderByDescending</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">ThenBy</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">ThenByDescending</code>: Order entities based on one or more properties.</li></ul></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-bold); font-weight: 600;">Insert/Update Operations:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">Add</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">AddRange</code>: Add a new entity or a collection of entities to the context.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">Attach</code>: Attaches an entity or a disconnected graph of entities to the context.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">Update</code>: Marks an entity or entities as modified.</li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">Remove</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">RemoveRange</code>: Remove an entity or a collection of entities from the context.</li></ul></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-bold); font-weight: 600;">Save Changes:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">SaveChanges</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">SaveChangesAsync</code>: Persist changes made in the context to the underlying database.</li></ul></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-bold); font-weight: 600;">Bulk Operations:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;">Entity Framework Core (EF Core) has introduced extensions like <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">BulkInsert</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">BulkUpdate</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">BulkDelete</code> for handling bulk operations efficiently.</li></ul></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-bold); font-weight: 600;">Raw SQL Queries:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: flex; flex-direction: column; list-style: disc; margin: 0px 0px 0px 1rem; padding: 0px;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; min-height: 28px; padding-left: 0.375em;"><code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">FromSqlRaw</code>, <code style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: var(--tw-prose-code); font-family: "Söhne Mono", Monaco, "Andale Mono", "Ubuntu Mono", monospace !important; font-size: 0.875em; font-weight: 600;">FromSqlInterpolated</code>: Execute raw SQL queries.</li></ul></li></ol><p><br /></p></blockquote><div><span face="Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="color: #374151; font-size: 16px; white-space-collapse: preserve;"><br /></span></div><p></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-9100261120040216002021-05-14T11:04:00.027-07:002021-05-15T16:58:29.949-07:00ORCL - Pivot<p>Sometime users request converting multiple rows to columns for same ID, like the following:</p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif">with l as</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> (select '333' id, 'email1' email, 1 xsequence </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> from dual</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> union</span><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> select '333' id, 'email2' email, 2 xsequence</span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> from dual</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> union</span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> select '333' id, 'email3' email, 3 xsequence</span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> from dual)</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"><span style="background-color: white;"></span></span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif">select * from l;</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"><b>333<span style="white-space: pre;"> </span>email1<span style="white-space: pre;"> </span>1</b></span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"><b>333<span style="white-space: pre;"> </span>email2<span style="white-space: pre;"> </span>2</b></span></p><p><b><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"></span></b></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"><b>333<span style="white-space: pre;"> </span>email3<span style="white-space: pre;"> </span>3</b></span></p><p><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">Sometimes users are OK with comma concatenated</span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> like this (with listagg function):</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"></span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"><b>333<span style="white-space: pre;"> </span>email1,email2,email3 (one column)</b></span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif">And most time users want like this: </span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"></span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"><b>333<span style="white-space: pre;"> </span>email1<span style="white-space: pre;"> </span>email2<span style="white-space: pre;"> </span>email3 (3 columns)</b></span></p><p><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">So in order to get that, I used to do an old way: first rank() them and doing case then group max, like the following:</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif">select n.id, max(email1) e1, max(email2) e2, max(email3) e3</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> from (select m.id, </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> case </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> when rn = 1 then </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">m.email </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> end email1,</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> case </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">when rn = 2 then </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">m.email </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">end email2,</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> case </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">when rn = 3 then m</span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">.email </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif">end email3</span></p><p><span face="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif"> from m) n </span><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif"> group by id</span></p><div>By using Pivot, it will cut the CASE and MAX, just like this:</div><div><br /></div><div><div><span style="color: red; font-size: large;"><b><i>select * from m pivot (max(email) for rn in(1, 2, 3))</i></b></span></div></div><div><br /></div><div><span style="font-size: large;"><i><div>with l as</div><div> (select '333' id, 'email1' email, 1 xsequence</div><div> from dual</div><div> union</div><div> select '333' id, 'email2' email, 2 xsequence</div><div> from dual</div><div> union</div><div> select '333' id, 'email3' email, 3 xsequence</div><div> from dual),</div><div>m as</div><div> (select distinct l.id, l.email,</div><div> rank() over(partition by l.id order by l.xsequence) rn </div><div> from l)</div><div style="font-weight: bold;">select * from m pivot (max(email) for rn in(1, 2, 3))</div></i></span></div><div><br /></div><div>If you want to select them for other joined query, you could set the column alias to get rid of the number(rn), since you can not pick/select the column started with numbers.</div><div><br /></div><div><div>select * from m</div><div>pivot (max(email) for rn in(<b><span style="font-size: medium;">1 as e1, 2 as e2, 3 as e3</span>))</b></div></div><div><br /></div><div>I made a video to show the process, thanks for watching!</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="YOUTUBE_video_class" height="532" src="https://www.youtube.com/embed/UIjHrNzrq08" width="640" youtube-src-id="UIjHrNzrq08"></iframe></div><br /><div>You can online search for Pivot documentation and examples.</div><p><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif" style="background-color: white; font-size: 16px;"><b>"</b>Oracle 11g introduced the new </span><code style="border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">PIVOT</code><span face="-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif" style="background-color: white; font-size: 16px;"> clause that allows you to write cross-tabulation queries which transpose rows into columns, aggregating data in the process of the transposing. As a result, the output of a pivot operation returns more columns and fewer rows than the starting data set.</span></p><p style="background-color: white; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size: 16px;">In this syntax, following the <code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">PIVOT</code> keyword are three clauses:</p><ul style="background-color: white; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size: 16px; padding: 0px 0px 0px 1rem;"><li style="list-style-type: none; margin: 0px 0px 1rem 1rem;"><code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">pivot_clause</code> specifies the column(s) that you want to aggregate. The <code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">pivot_clause</code> performs an implicitly <code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">GROUP BY</code> based on all columns which are not specified in the clause, along with values provided by the <code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">pivot_in_clause</code>.</li><li style="list-style-type: none; margin: 0px 0px 1rem 1rem;"><code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">pivot_for_clause</code> specifies the column that you want to group or pivot.</li><li style="list-style-type: none; margin: 0px 0px 1rem 1rem;"><code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">pivot_in_clause</code> defines a filter for column(s) in the <code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">pivot_for_clause</code>. The aggregation for each value in the <code style="background-color: var(--inline-code-bg-color); border-radius: 3px; color: var(--inline-code-color); font-family: var(--font-family-code); font-size: 0.85rem; padding: 0.25rem 0.3rem;">pivot_in_clause</code> will be rotated into a separate column.<b>"</b></li></ul>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-11419606084752420052021-05-10T14:37:00.006-07:002021-05-10T15:05:00.208-07:00Windows 10 Your Phone<p>Just found Windows 10’s Your Phone app on my $300 ThinkPad Yoga book, which I really like. The App links your android phone with PC. Of course it works with iPhone but it's said it works best for Android users, letting you text from your PC, sync your notifications, and wirelessly transfer photos back and forth, also screen your phone to TV.</p><p>OK, Sounds pretty good, usually I USB connect my Huawei Pro20 with PC to transfer files, specially pictures and songs. So with Phone app we can do those wirelessly, WIRELESSLY, yes, nowadays it's a very popular thing.</p><p>Setup Your Phone is extremely easy, just click Windows Logo on your PC and scroll down the bottom, click it and follow along, I made a silly video, you can watch if you like to support my starting YouTube Channel. </p><p>Also a quick tip about the Windows OneDrive, OneDrive is Microsoft's cloud storage for consumers, and it is built into Windows 10. For free, it comes with 15 GB of storage, and there are a couple of paid tiers to increase that storage. 15GB is plenty for normal people:), but make sure you are aware of the OneDrive sync options.</p><p>The OneDrive cloud icon in the Windows taskbar notification area, right click it will show some options/tasks you can do. I also added a little talk about this on the below clip.</p><p>Well, let's leave our phones somewhere and focus on the PC:))</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="YOUTUBE_video_class" height="352" src="https://www.youtube.com/embed/zGuP1AKzskU" width="640" youtube-src-id="zGuP1AKzskU"></iframe></div><br /><p><br /></p><p><br /></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-26879658990939417802021-04-19T14:48:00.009-07:002021-04-19T15:08:03.278-07:00Linked to NetEase Email Account<p>I have been having a NetEase free email account (something@163.com) for long time and mainly use for subscription registration (less important than Hotmail/Gmail:) and usually link the account with Microsoft Windows default Inbox.</p><p>Then suddenly not working and complaining about the password not correct and I tried quite time and failed. After search on line and found the problem so I would like to share it. (Long Live Internet Search!)</p><p>Basically the problem is that the password is not the pass loign to NetEase email account and it's the one you generate form NetEase account.</p><p>1. login to NetEase account and <b>Setting -> POP3/SMTP/IMAP</b></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRkark2EoGPGcAd6K8Zz8aQkx_gJ9NbL-DE7Y_BCnaHDMABtNxGlfZxSsrkB9utmsY_01ye6l5GDy-GGSImEdsZBsEyBTylPhiQNYI3kYn3Gkg3F8QLD3Qhhsbze9YrKlkWxx9kNPccwA/s349/1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="349" data-original-width="269" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRkark2EoGPGcAd6K8Zz8aQkx_gJ9NbL-DE7Y_BCnaHDMABtNxGlfZxSsrkB9utmsY_01ye6l5GDy-GGSImEdsZBsEyBTylPhiQNYI3kYn3Gkg3F8QLD3Qhhsbze9YrKlkWxx9kNPccwA/w309-h400/1.png" width="309" /></a></div>2. <b>Make sure the receiving/sending servie is open</b><p></p><div class="nui-form-title title-width i18n-start-server" style="color: #757575; float: left; line-height: 30px; padding-left: 20px; padding-right: 20px; text-align: right; vertical-align: top; width: 145px; zoom: 1;"><b>开启服务</b>:</div><div class="nui-form-cont" style="line-height: 30px; overflow: hidden; vertical-align: top; zoom: 1;"><span class="nui-chkGroup nui-chkGroup-vertical" id="normal-user" style="background-color: #f9f9f9; color: #3b3b3b; display: block; font-family: "Microsoft Yahei", verdana; font-size: 12px;"><label class="nui-chk nui-chk-hasText" style="clear: both; display: inline-block; float: left; line-height: 14px; margin: 10px 0px 0px; outline: 0px; position: relative; vertical-align: middle; white-space: nowrap; zoom: 1;"><div class="switch-btn-wrapper" style="width: 236px;"><span class="option-text i18n-imap-server" style="color: #151515;">IMAP/SMTP服务</span><div class="switch-wrapper" style="float: right;"><span class="switch-res i18n-closed" id="imap-switch-res" style="color: #666666;"><b>已开启</b></span> | <span class="switch-btn-close" id="imap-switch" style="color: #003399; cursor: pointer;">关闭</span></div></div></label><label class="nui-chk nui-chk-hasText" style="clear: both; display: inline-block; float: left; line-height: 14px; margin: 10px 0px 0px; outline: 0px; position: relative; vertical-align: middle; white-space: nowrap; zoom: 1;"><div class="switch-btn-wrapper" style="width: 236px;"><span class="option-text i18n-pop3-server" style="color: #151515;">POP3/SMTP服务</span><div class="switch-wrapper" style="float: right;"><span class="switch-res i18n-closed" id="pop3-switch-res" style="color: #666666;"><b>已开启</b></span> | <span class="switch-btn-close" id="pop3-switch" style="color: #003399; cursor: pointer;">关闭</span></div><div><span class="switch-btn-close" style="color: #003399; cursor: pointer;"><br /></span></div></div></label></span></div><div class="nui-form-item nui-form-item-pad-0" style="background-color: #f9f9f9; color: #3b3b3b; font-family: "Microsoft Yahei", verdana; font-size: 12px; padding: 0px; position: relative; z-index: 2; zoom: 1;"><div class="nui-form-title title-width i18n-server-address" style="color: #757575; float: left; line-height: 30px; padding-left: 20px; padding-right: 20px; text-align: right; vertical-align: top; width: 145px; zoom: 1;">服务器地址:</div><div class="nui-form-cont" style="line-height: 30px; overflow: hidden; vertical-align: top; zoom: 1;"><div id="free-163-server"><div><span class="i18n-pop3-server-address">POP3服务器</span>: pop.163.com</div><div><span class="i18n-smtp-server-address">SMTP服务器</span>: smtp.163.com</div><div><span class="i18n-imap-server-address">IMAP服务器</span>: imap.163.com</div></div></div></div><div class="nui-form-item nui-form-item-pad-0" style="background-color: #f9f9f9; color: #3b3b3b; font-family: "Microsoft Yahei", verdana; font-size: 12px; padding: 0px; position: relative; z-index: 2; zoom: 1;"><div class="nui-form-title title-width i18n-safe-support" style="color: #757575; float: left; line-height: 30px; padding-left: 20px; padding-right: 20px; text-align: right; vertical-align: top; width: 145px; zoom: 1;">安全支持:</div><div class="nui-form-cont" style="line-height: 30px; overflow: hidden; vertical-align: top; zoom: 1;"><div class="i18n-safe-support-tips">POP3/SMTP/IMAP服务全部支持SSL连接</div></div></div><p>3. Go to<b> </b><span style="background-color: #f9f9f9; color: #757575; font-family: "Microsoft Yahei", verdana; font-size: 12px; text-align: right;">授权密码管理, </span>and <b>get the passcode and use this code fro your Inbox setup</b></p><div class="nui-settingForm nui-form" style="background: rgb(249, 249, 249); border-radius: 0px 0px 3px 3px; color: #3b3b3b; font-family: "Microsoft Yahei", verdana; font-size: 12px; overflow: hidden; position: relative;"><div class="nui-form-item" id="authcode-mgt-group" style="padding: 16px 0px 10px; position: relative; z-index: 2; zoom: 1;"><div class="nui-form-cont" style="line-height: 30px; overflow: hidden; vertical-align: top; zoom: 1;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhacHq1Bn7-RJtIk-02I0DzTLiR3G_JhLCpwa8PzNreDMWNs5LzxKgg7ndFsAAK1IslCS750-6qWpFpkgNU53_NuWEF8p5BuiWvG40szQTTt0d4Y4E82ny9nDmlyg1aZakqRU4W4NP42sk/s685/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="240" data-original-width="685" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhacHq1Bn7-RJtIk-02I0DzTLiR3G_JhLCpwa8PzNreDMWNs5LzxKgg7ndFsAAK1IslCS750-6qWpFpkgNU53_NuWEF8p5BuiWvG40szQTTt0d4Y4E82ny9nDmlyg1aZakqRU4W4NP42sk/w640-h224/3.png" width="640" /></a></div></div></div></div><div class="SKY-gOpt-fMaincont" style="background-color: white; color: #222222; font-family: "Microsoft Yahei", verdana; font-size: 12px; padding: 0px; position: relative; zoom: 1;"><div class="SKY-gOpt-wTitle" style="background: rgb(233, 233, 233); border-radius: 3px 3px 0px 0px; height: 34px; line-height: 34px; margin-top: 18px; overflow: hidden; padding: 0px 10px; position: relative;"><br /></div></div><p>4. Go to Windows Inbox Accounts -> <b>Add account </b></p><p>Using the bottom two options: Other account POP, IMAP or Advance setup</p><p>It's easy just to use Other account POP, IMAP, click it and enter the information</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiduvPJktaJGZN-rkr4JcTFSOBv1apDb9luGC-ahLMvx3Vjp6VZEV0mOawnshbwbJ7i9-ajv_uKlD5mDRW4EXHXdHeAxM9SzBZbQw26NYGTa0oFDvV971XeL-G-OfEZ8W_W8EHXSndPL3g/s489/2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="489" data-original-width="456" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiduvPJktaJGZN-rkr4JcTFSOBv1apDb9luGC-ahLMvx3Vjp6VZEV0mOawnshbwbJ7i9-ajv_uKlD5mDRW4EXHXdHeAxM9SzBZbQw26NYGTa0oFDvV971XeL-G-OfEZ8W_W8EHXSndPL3g/w597-h640/2.png" width="597" /></a></div><br /><p>Pleave your question if you have:))</p><p><br /></p><p><b><br /></b></p><p><b></b></p><div class="separator" style="clear: both; text-align: center;"><b><br /></b></div><b><br /><br /></b><p></p><p><br /></p><p><br /></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-28395016209953586192020-12-29T15:35:00.008-08:002020-12-29T15:38:24.918-08:00NFL Fantasy Championship 2020<p>The last NFL fantasy week is coming and as the league No.1, hopefully I will win the final week, and I believe so:)))</p><p>Here is my championship team to be:)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjScDeIvHKpMak0rJViCl4RvGFYQvzAhbQ0zmYh-_3GOu8ccAkYq5QySzY48qbPzeFKe787y0w22vp_9JXniXVMA4Ww7jZOP5bIP6jhG0kU7kLya0RhosjpNWLZRPoggNVK0Tk0gIDeKpM/s590/starter.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="590" data-original-width="405" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjScDeIvHKpMak0rJViCl4RvGFYQvzAhbQ0zmYh-_3GOu8ccAkYq5QySzY48qbPzeFKe787y0w22vp_9JXniXVMA4Ww7jZOP5bIP6jhG0kU7kLya0RhosjpNWLZRPoggNVK0Tk0gIDeKpM/s16000/starter.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWI1w45vmbm80ONIQp5Yp1SphtF7RZuuNUELkf9H5y_cfiwZBBCAzcbBZgJEUddHPEvvRmQ30WvoLZWop4t67Mt0i1ZDlv1mayzkpWvoUrw-t7bJxVG_o9o30EsOroDdvnFXH3aTWRqtc/s1683/final_standing.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="785" data-original-width="1683" height="299" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWI1w45vmbm80ONIQp5Yp1SphtF7RZuuNUELkf9H5y_cfiwZBBCAzcbBZgJEUddHPEvvRmQ30WvoLZWop4t67Mt0i1ZDlv1mayzkpWvoUrw-t7bJxVG_o9o30EsOroDdvnFXH3aTWRqtc/w640-h299/final_standing.png" width="640" /></a></div><br /><p><br /></p><p><br /></p><p><br /></p>confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-51773681393423401712019-09-04T10:09:00.002-07:002019-09-04T10:10:26.441-07:00ORCL - MATCH_RECOGNIZEFrom time to time, collages ask me about doing max consecutive count, let's say we want to know a donor most continuous donation year total, we used to do the hard way* until we tried using the <span style="background-color: transparent; color: black; display: inline; float: none; font-family: "times new roman"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">match_recognize ().</span><br />
<br />
Courtesy to https://oracle-base.com/articles/12c/pattern-matching-in-oracle-database-12cr1, my favorite Oracle knowledge website.<br />
<br />
<span style="background-color: transparent; color: #212529; display: inline; float: none; font-family: , "blinkmacsystemfont" , "segoe ui" , "roboto" , "helvetica neue" , "arial" , "noto sans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol" , "noto color emoji"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">"Introduced in Oracle 8i, </span><a href="https://oracle-base.com/articles/misc/analytic-functions" style="-webkit-text-stroke-width: 0px; background-color: transparent; box-sizing: border-box; color: #337ab7; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">Analytic Functions</a><span style="background-color: transparent; color: #212529; display: inline; float: none; font-family: , "blinkmacsystemfont" , "segoe ui" , "roboto" , "helvetica neue" , "arial" , "noto sans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol" , "noto color emoji"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">, also known as windowing functions, allow developers to perform tasks in SQL that were previously confined to procedural languages. Oracle 12c has added the </span><code style="-webkit-text-stroke-width: 0px; background-color: transparent; box-sizing: border-box; color: black; font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">MATCH_RECOGNIZE</code><span style="background-color: transparent; color: #212529; display: inline; float: none; font-family: , "blinkmacsystemfont" , "segoe ui" , "roboto" , "helvetica neue" , "arial" , "noto sans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol" , "noto color emoji"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"> clause into the analytic function syntax to make pattern matching from SQL simpler. This article gives a flavour of what can be done using the </span><code style="-webkit-text-stroke-width: 0px; background-color: transparent; box-sizing: border-box; color: black; font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">MATCH_RECOGNIZE</code><span style="background-color: transparent; color: #212529; display: inline; float: none; font-family: , "blinkmacsystemfont" , "segoe ui" , "roboto" , "helvetica neue" , "arial" , "noto sans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol" , "noto color emoji"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"> clause, but you will need to refer to the </span><a href="http://docs.oracle.com/database/121/DWHSG/pattern.htm" style="-webkit-text-stroke-width: 0px; background-color: transparent; box-sizing: border-box; color: #337ab7; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">documentation</a><span style="background-color: transparent; color: #212529; display: inline; float: none; font-family: , "blinkmacsystemfont" , "segoe ui" , "roboto" , "helvetica neue" , "arial" , "noto sans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol" , "noto color emoji"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"> to understand the true level of complexity possible."</span><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br />
<b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br />
So here is the new baby:))<br />
<br />
select max(runs) <br />
from <br />
(select * <br />
from (select distinct g.gift_donor_id, g.gift_year_of_giving from gift g where g.gift_donor_id = '00000xxxxx') <br />
match_recognize ( <br />
order by gift_year_of_giving <br />
measures <br />
first(gift_year_of_giving) as first_run, <br />
last(gift_year_of_giving) as last_run, <br />
count(*) as runs, <br />
match_number() as grp <br />
pattern ( strt consecutive* ) <br />
define <br />
consecutive as gift_year_of_giving = ( prev (gift_year_of_giving ) + 1 ) <br />
))<br />
<br />
From Oracle:<br />
<div style="-webkit-text-stroke-width: 0px; background-color: transparent; box-sizing: border-box; color: #222222; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 300; letter-spacing: normal; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
What does this query do? The following explains each line in the <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">MATCH_RECOGNIZE</code> clause:</div>
<span style="background-color: transparent; color: #222222; display: inline; float: none; font-family: "helvetica neue" , "neue helvetica" , "arial" , sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
</span>
<br />
<ul style="-webkit-text-stroke-width: 0px; background-color: transparent; box-sizing: border-box; color: #222222; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 22.4px; list-style-position: outside; list-style-type: disc; margin-bottom: 20px; margin-left: 35px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 10px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<li style="box-sizing: border-box; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-weight: 300; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">PARTITION</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">BY</code> divides the data from the <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Ticker</code> table into logical groups where each group contains one stock symbol.</div>
</li>
<li style="box-sizing: border-box; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-weight: 300; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">ORDER</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">BY</code> orders the data within each logical group by <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">tstamp</code>.</div>
</li>
<li style="box-sizing: border-box; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-weight: 300; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">MEASURES</code> defines three measures: the timestamp at the beginning of a V-shape (<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">start_tstamp</code>), the timestamp at the bottom of a V-shape (<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">bottom_tstamp</code>), and the timestamp at the end of the a V-shape (<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">end_tstamp</code>). The <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">bottom_tstamp</code> and <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">end_tstamp</code> measures use the <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">LAST()</code> function to ensure that the values retrieved are the final value of the timestamp within each pattern match.</div>
</li>
<li style="box-sizing: border-box; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-weight: 300; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">ONE</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">ROW</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">PER</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">MATCH</code> means that for every pattern match found, there will be one row of output.</div>
</li>
<li style="box-sizing: border-box; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-weight: 300; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">AFTER</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">MATCH</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">SKIP</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">TO</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">LAST</code> <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">UP</code> means that whenever you find a match you restart your search at the row that is the last row of the <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">UP</code> pattern variable. A pattern variable is a variable used in a <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">MATCH_RECOGNIZE</code> statement, and is defined in the <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">DEFINE</code> clause.</div>
</li>
<li style="box-sizing: border-box; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-weight: 300; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">PATTERN (STRT DOWN+ UP+)</code> says that the pattern you are searching for has three pattern variables: <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">STRT</code>, <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">DOWN</code>, and <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">UP</code>. The plus sign (<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">+</code>) after <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">DOWN</code> and <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">UP</code> means that at least one row must be mapped to each of them. The pattern defines a regular expression, which is a highly expressive way to search for patterns.</div>
</li>
<li style="box-sizing: border-box; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue","Neue Helvetica",Arial,sans-serif; font-size: 14px; font-weight: 300; line-height: 19.6px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 1260px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">DEFINE</code> gives us the conditions that must be met for a row to map to your row pattern variables <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">STRT</code>, <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">DOWN</code>, and <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">UP</code>. Because there is no condition for <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">STRT</code>, any row can be mapped to <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">STRT</code>. Why have a pattern variable with no condition? You use it as a starting point for testing for matches. Both <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">DOWN</code> and <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">UP</code> take advantage of the <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">PREV()</code> function, which lets them compare the price in the current row to the price in the prior row. <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">DOWN</code> is matched when a row has a lower price than the row that preceded it, so it defines the downward (left) leg of our V-shape. A row can be mapped to <code class="codeph" style="background-color: transparent; box-sizing: border-box; color: black; font-family: "menlo","monaco","Courier New",Courier,mono,serif; font-size: 13px; font-weight: 400; line-height: 20.99px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">UP</code> if the row has a higher price than the row that preceded it.</div>
</li>
</ul>
*Hard way:):<br />
<br />
with years as<br />
(<br />
select distinct g.id, g.giving_year<br />
from gift, allocation a<br />
where g.gift_associated_allocation = a.allocation_code and a.athletics_ind = 'Y'--upper(a.short_name) like '%ATHLETICS%'<br />
order by g.id, g.gift_year<br />
)<br />
select id, ayear from_yr, byear to_year, yearcon<br />
from<br />
(<br />
select<br />
a.id,<br />
a.year ayear,<br />
b.year byear,<br />
(b.year - a.year)+1 yearcon,<br />
dense_rank() over (partition by a.id order by (b.year - a.year) desc) rank<br />
from<br />
years a<br />
join years b on a.id = b.id and b.year > a.year<br />
where<br />
b.year - a.year = <br />
(select count(*)-1<br />
from years a1<br />
where a.id = a1.id<br />
and a1.year between a.year and b.year)<br />
) <br />
where rank = 1 and yearcon>=10<br />
order by 4 descconfusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-12656502247857720152019-09-04T09:45:00.001-07:002019-09-04T10:27:36.355-07:00Come on, Google!Personally I have great feeling about Google technology until today!:((<br />
<br />
As an outdoor person, I love to blog my travel, hiking and often post a lot of images.<br />
<br />
Due to some unpleasant reason I need to remove some images from my blog, I thought all my uploaded images should be easily managed by me, so I removed some images form my blog and google photo, but the images still exist with the link like:<br />
https://1.bp.blogspot.com/-7T5MQDsXSVE/XVbUdA38OvI/AAAAAAAAR7I/Qr4UsMF6FBEXlKtmQIgtMZbFDMGLuaj1gCLcBGAs/s1600/IMG_20190731_123441.jpg<br />
<br />
So I spent about two hours to figure out how to remove the images, then I found out that you have to request removal of images such as in:<br />
https://www.google.com/webmasters/tools/removals?pli=1<br />
<br />
Well, I have to say that sucks! Just want to mark it for any future use or anyone have same experience with me.<br />
<div class="zippy-container zippy-focus" style="-webkit-text-stroke-width: 0px; background-color: #f1f3f4; color: #3c4043; font-family: Roboto,"Helvetica Neue",Helvetica,sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0.96px; orphans: 2; outline-color: invert; outline-style: none; outline-width: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<a aria-expanded="true" class="zippy zippy-searchresults index2 goog-zippy-expanded" data-stats-id="searchresults" data-stats-idx="2,4" data-stats-ignore="" data-stats-imp="" data-stats-ve="2" href="https://www.blogger.com/null" name="searchresults" role="button" style="background-attachment: scroll; background-clip: border-box; background-color: transparent; background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; border-bottom-color: rgb(26, 115, 232); border-bottom-style: none; border-bottom-width: 0px; border-top-color: rgb(218, 220, 224); border-top-style: solid; border-top-width: 0.96px; box-sizing: border-box; color: #1a73e8; cursor: pointer; display: inline-block; font-family: Roboto,Helvetica Neue,sans-serif; font-size: 16px; font-weight: 400; height: 56.96px; line-height: 24px; margin-bottom: 0px; margin-left: -0.96px; margin-right: -0.96px; margin-top: -0.96px; padding-bottom: 16px; padding-left: 16px; padding-right: 49.92px; padding-top: 16px; position: relative; right: auto; text-decoration: none; top: auto; transform: none; width: 702px;" tabindex="0">Remove a deleted image from search results </a></div>
<span style="background-color: transparent; color: #3c4043; display: inline; float: none; font-family: "roboto" , "helvetica neue" , "helvetica" , sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
</span><br />
<br />
<div class="zippy-overflow" style="-webkit-text-stroke-width: 0px; background-color: transparent; color: #3c4043; font-family: Roboto,"Helvetica Neue",Helvetica,sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: -16px; margin-right: -16px; margin-top: 0px; orphans: 2; outline-color: invert; outline-style: none; outline-width: 0px; overflow: hidden; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<div class="zippy-content" style="background-color: transparent; height: 284px; left: auto; margin-bottom: 0px; margin-left: 16px; margin-right: 16px; margin-top: 0px; outline-color: invert; outline-style: none; outline-width: 0px; overflow: auto; padding-bottom: 18.88px; padding-left: 32px; padding-right: 25.92px; padding-top: 0.96px; position: relative; top: auto; transition-delay: 0s; transition-duration: 0.218s; transition-property: margin-top; transition-timing-function: cubic-bezier(0, 0, 0.58, 1); width: 644.08px;">
<div style="margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px;">
After an image is removed from a website, it may still appear in search results for a little while.</div>
<div style="margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px;">
To remove these images from search results, follow these steps:</div>
<ol style="margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; outline-color: invert; outline-style: none; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<li style="margin-bottom: 4px; margin-left: 20px; margin-right: 0px; margin-top: 4px;">Search on images.google.com for the image you want to find.</li>
<li style="margin-bottom: 4px; margin-left: 20px; margin-right: 0px; margin-top: 4px;">Select the image link by right clicking on the image thumbnail and choosing <strong style="font-weight: 500;">Copy link address</strong>.<br style="outline-color: transparent; outline-style: none; outline-width: 0px; word-wrap: break-word;" />
<strong style="font-weight: 500;">Note</strong>: Different browsers may have different names for copying link location.</li>
<li style="margin-bottom: 4px; margin-left: 20px; margin-right: 0px; margin-top: 4px;">Go to the <a href="https://www.google.com/webmasters/tools/removals?pli=1" rel="noopener" style="background-image: none; background-repeat: repeat; color: #1a73e8; display: inline; height: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; position: static; text-decoration: none; top: auto; width: auto;" target="_blank">Remove outdated content</a> page.</li>
<li style="margin-bottom: 4px; margin-left: 20px; margin-right: 0px; margin-top: 4px;">In the box next to "Request removal," paste the URL.</li>
<li style="margin-bottom: 4px; margin-left: 20px; margin-right: 0px; margin-top: 4px;">Click <strong style="font-weight: 500;">Request removal</strong>.
<ul style="list-style-type: disc; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; outline-color: invert; outline-style: none; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<li style="float: none; font-size: 13.93px; list-style-type: none; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-left: 16px;">If you see the message "We think the image or web page you're trying to remove hasn't been removed by the site owner," follow the steps on the screen to give us more information.</li>
<li style="float: none; font-size: 13.93px; list-style-type: none; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-left: 16px;">If you see the message "This content is no longer live on the website," click <strong style="font-weight: 500;">Request removal</strong>.<h2 style="-webkit-text-stroke-width: 0px; background-color: transparent; color: #202124; font-family: "Google Sans",Roboto,sans-serif; font-size: 24px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 32px; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 32px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
Why Google doesn’t remove most images</h2>
<span style="background-color: transparent; color: #3c4043; display: inline; float: none; font-family: "roboto" , "helvetica neue" , "helvetica" , sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
</span><div style="-webkit-text-stroke-width: 0px; background-color: transparent; color: #3c4043; font-family: Roboto,"Helvetica Neue",Helvetica,sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
Most images that show up in Google’s search results are from websites that aren’t owned by Google. Since we aren’t the owners of these sites, we can’t remove the images from the web.</div>
<span style="background-color: transparent; color: #3c4043; display: inline; float: none; font-family: "roboto" , "helvetica neue" , "helvetica" , sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
</span><div style="-webkit-text-stroke-width: 0px; background-color: transparent; color: #3c4043; font-family: Roboto,"Helvetica Neue",Helvetica,sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
Even if we delete the image from Google’s search results, the image still exists and can be found on other search engines, or if people visit the URL directly.</div>
<span style="background-color: transparent; color: #3c4043; display: inline; float: none; font-family: "roboto" , "helvetica neue" , "helvetica" , sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
</span><div style="-webkit-text-stroke-width: 0px; background-color: transparent; color: #3c4043; font-family: Roboto,"Helvetica Neue",Helvetica,sans-serif; font-size: 13.93px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
This is why your best option is to <a href="https://support.google.com/websearch/answer/9109" style="color: #1a73e8; text-decoration: none;">contact the site's webmaster</a> who can remove the page entirely.</div>
</li>
</ul>
</li>
</ol>
</div>
</div>
confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-72472507168542111972015-05-05T09:25:00.004-07:002015-05-05T09:34:06.723-07:00ORCL - CONTINUEIFAbout 17 years ago, my 1st IT job is maintaining a sql load program for hospital medical records at Alberta Health. Today we have an imodule routine to fetch the records and load into database.<br />
<br />
My colleague had some trouble with the data with embedded line breaks before ending the recordes, and ask me if I could help. I could not help to jump on my "first love" :)) special feeling about sqlloader:))<br />
<br />
sqlloader offer two possibilities : - courtesy to <a href="http://gerardnico.com/wiki/">http://gerardnico.com/wiki/</a>!<br />
<ul>
<li class="level1"><div class="li">
if you have a special character at the end of each line: the stream record format</div>
</li>
</ul>
Using the STR attribute, we can specify a new end-of-line character (or sequence of characters). This allows us to create an input data file that has some special character at the end of each line. The newline is no longer special. <br />
<ul>
<li class="level1"><div class="li">
if you don't have a special character at the end of each line: the CONTINUEIF statement.</div>
</li>
</ul>
<div class="li">
Here is the sample data for us:<br />
<br />
"100045678","address is<br />
super street<br />
18999 Edmonton Alberta<br />
T6R4Y3" ............................................<br />
"2","the degree is MBA<br />
UT<br />
1998" ............................................</div>
<div class="li">
</div>
<div class="li">
The each field inside data looks enclosed with double quotes "xxx", so we could simple add the CONTINUEIF to control the end of records.</div>
<div class="li">
</div>
<div class="li">
From Oracle:</div>
<h3 class="sect2">
Using CONTINUEIF to Assemble Logical Records</h3>
Use <code>CONTINUEIF</code> if the number of physical records to be combined varies. The <code>CONTINUEIF</code> clause is followed by a condition that is evaluated for each physical record, as it is read. For example, two records might be combined if a pound sign (#) were in byte position 80 of the first record. If any other character were there, the second record would not be added to the first.<br />
The full syntax for <code>CONTINUEIF</code> adds even more flexibility:<br />
<div class="li">
<img alt="Description of continueif.gif follows" src="http://docs.oracle.com/cd/B28359_01/server.111/b28319/img/continueif.gif" height="131" title="Description of continueif.gif follows" width="819" /><br />
<a href="http://docs.oracle.com/cd/B28359_01/server.111/b28319/img_text/continueif.htm" id="sthref959">Description of the illustration continueif.gif</a></div>
<a href="http://docs.oracle.com/cd/B28359_01/server.111/b28319/ldr_control_file.htm#g1022570">Table 8-2</a> describes the parameters for the <code>CONTINUEIF</code> clause.<br />
<br />
Therefore we ask the loader to continue the record if see a break line not followed by a double quote, which means it's not the end of records!<br />
<br />
LOAD DATA<br />
INFILE 'giftdata.dat'<br />
CONTINUEIF LAST != '"'<br />
INTO TABLE conversion<br />
APPEND<br />
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' <br />
(<br />
"ID",<br />
"DESCRIPTION" CHAR(500)<br />
)<br />
<br />
Cheers!confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-26570976911208378942014-10-22T09:40:00.003-07:002014-10-22T09:42:24.470-07:00Drupal - Rotating BannersPlaying website is my hobby since year 2000 when we set up an IT company. It's interesting to try to stay current while my daily job is mainly database stuff:). So I keep revamping my website from WordPress, Joomla, now Drupal, just to learning some new stuff.<br />
<br />
Imaging 2000 until now, how the technology changed. It only takes 10 minutes to have a good, professional looking website and so many free themes you could choose. I had some popular Drupal themes, but I had problem to make the rotating banners working....<br />
<br />
Documentation! Documentation! I had to be patient to read carefully on the documentation. Sometimes I was just lazy to read :(((. I missed whole bunch modules and now I would like to share those steps from Drupal site(<a href="https://www.drupal.org/node/1786134">https://www.drupal.org/node/1786134</a>).<br />
<br />
"Rotating Banners requires two other modules and a pair of scripts to function.<br />
The dependent modules are Media, <a href="http://drupal.org/project/media">http://drupal.org/project/media</a>, and Styles, <a href="http://drupal.org/project/styles">http://drupal.org/project/styles</a>. <br />
The two server scripts are jquery.cycle.all.min.js and jquery.easing.1.3.js. <br />
The first script can be downloaded here: <a href="http://jquery.malsup.com/cycle/download.html">http://jquery.malsup.com/cycle/download.html</a>.<br />
Once you download it, rename it to jquery.cycle.js.<br />
The second can be downloaded here: <a href="http://gsgd.co.uk/sandbox/jquery/easing/">http://gsgd.co.uk/sandbox/jquery/easing/</a><br />
Once you download it, rename it to jquery.easing.js.<br />
Install rotating Banners through the Administration/Modules page.<br />
Then copy both scripts to the following directory: …/sites/all/modules/rotating_banner/includes/.<br />
This will create an interface in the Admin/Structure/Blocks menu."<br />
<br />
Basically we need media, style, and 2 jQuery scripts, and media needs Ctools module! I totally missed Requirement section! I am thinking I am close to retirement:(<br />
<br />
The weird thing I found after installing Rotating Banners/Ctools, some modules got unchecked such as Toolbar, Locale etc., so I had to enable them again.confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-4639326175290541322014-05-02T09:46:00.003-07:002014-11-19T13:34:17.932-08:002013-14 NBA Playoff<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHAJZ7ku3VZ39VtL6sFqaUZGyQsPxIi3FpfSaOiZ4aPWxIdY9N7K-iSjVW1ZbeLk5k24iApDUARnMg-eEaZ7j2gQI74VVvqRqsXXDBTYSz6FTXSyy5rcIoi7X8I2LP_llGXR0ocEZh-Nw/s1600/playoff.fw.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHAJZ7ku3VZ39VtL6sFqaUZGyQsPxIi3FpfSaOiZ4aPWxIdY9N7K-iSjVW1ZbeLk5k24iApDUARnMg-eEaZ7j2gQI74VVvqRqsXXDBTYSz6FTXSyy5rcIoi7X8I2LP_llGXR0ocEZh-Nw/s1600/playoff.fw.png" height="300" width="640" /></a></div>
<br />confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com1tag:blogger.com,1999:blog-3085919489180634460.post-293243225688330542014-02-04T11:04:00.004-08:002018-08-31T12:27:13.047-07:00ORCL - REGEXP_REPLACE<span style="color: teal;"><span style="color: teal;">I really like the listagg function, but it can not be used with distinct.</span></span><br />
<span style="color: teal;"></span><br />
<span style="color: teal;">Sometimes I want remove the duplicate values return form listagg function and I don't like to use subquery, etc.</span><br />
<span style="color: teal;"></span><br />
<span style="color: teal;">Finally I found a great solution using regular expression! really cool and I thought maybe useful to someone:))</span><br />
<span style="color: teal;"><span style="color: teal;"></span></span><br />
<span style="color: teal;"><span style="color: teal;"></span></span><br />
<span style="color: teal;"><span style="color: teal;">select</span></span><span style="color: navy;"><span style="color: navy;"> </span></span><span style="color: blue;"><span style="color: blue;">'1223-1223-1223-1345'</span></span><span style="color: navy;"><span style="color: navy;"> t1, </span></span><span style="color: teal;"><span style="color: teal;">rtrim</span></span><span style="color: navy;"><span style="color: navy;">( REGEXP_REPLACE(</span></span><span style="color: blue;"><span style="color: blue;">'1223-1223-1223-1345'</span></span><span style="color: navy;"><span style="color: navy;">, </span></span><span style="color: blue;"><span style="color: blue;">'([^-]*)(-\1)+($|-)'</span></span><span style="color: navy;"><span style="color: navy;">, </span></span><span style="color: blue;"><span style="color: blue;">'\1\3'</span></span><span style="color: navy;"><span style="color: navy;">), </span></span><span style="color: blue;"><span style="color: blue;">'-'</span></span><span style="color: navy;"><span style="color: navy;">) t2</span></span><br />
<span style="color: navy;"><span style="color: navy;">
</span></span><span style="color: teal;"><span style="color: teal;"></span></span><br />
<span style="color: teal;"><span style="color: teal;">from</span></span><span style="color: navy;"><span style="color: navy;"> dual;</span></span><br />
<br />
1223-1223-1223-1345 will be 1223-1345, <strong>but be sure the list is order by the item!</strong><br />
<br />
Here is a example for me:<br />
<br />
select regexp_replace( (listagg(a.short_name, ',' ) within group (order by a.short_name)), '([^,]*)(,\1)+($|,)','\1\3') <br />
<br />
from gift g, allocation a where g.gift_donor_id = l.gift_donor_id and g.gift_associated_allocation = a.allocation_code and a.alloc_school = 'LS') distinct_allocs <br />
<span style="color: blue;"></span><br />
Explanation is following: Courtesy to <span style="color: #cc6611;">Srinivasan - bean farmer </span> <br />
<br />
<a href="http://srinisqlwork.blogspot.com/2016/12/sql-remove-duplicates-in-listagg-result.html">http://srinisqlwork.blogspot.com/2016/12/sql-remove-duplicates-in-listagg-result.html</a><br />
<br />
Understanding the solution with example:<br />
<div dir="ltr">
<i>select</i></div>
<div dir="ltr">
<i>REGEXP_REPLACE( 'English,English,English,Hindi,Hindi,Kannada,Kannada,Kannada,Tamil,Tamil,Telugu,Telugu','([^,]*)(,\1)+($|,)' ,'\1\3')</i></div>
<div dir="ltr">
<i>from dual</i></div>
<div dir="ltr">
<b>1. Understanding regExMatch expression: '([^,]*)(,\1)+($|,)'</b></div>
<div dir="ltr">
There are three groups in above expression</div>
<div dir="ltr">
group 1: <b>([^,]*) </b>: match all or no characters till comma </div>
<div dir="ltr">
match Result: <b>English</b></div>
<div dir="ltr">
group 2: <i><b>(,\1)+ </b></i>:<b> </b> \1 - stands for first group which is Kannada, so it becomes (,English)+, meaning match one or more occurrences of ',English'.</div>
<div dir="ltr">
match Result: <b>,English,English</b></div>
<div dir="ltr">
group 3: <i><b>($|,) </b></i>: $ stands for 'end of string', | stands or. So it says match either end of string or a comma</div>
<div dir="ltr">
match Result: <b>, </b>(this is comma which is following group2 match: <b>,English,English)</b></div>
<div dir="ltr">
<b>2. Understanding <i>regExReplace </i>expression '\1\3':</b></div>
<div dir="ltr">
\1\3 represent the group number which are used in regExMatch expression.</div>
<div dir="ltr">
replace Result: English,<br />
<br />
<h1 class="refsect1">
<a href="https://www.blogger.com/null" id="SQLRF06302"></a>REGEXP_REPLACE</h1>
<div class="subhead1">
<a href="https://www.blogger.com/null" id="sthref1914"></a>Syntax</div>
<img alt="Description of regexp_replace.gif follows" height="162" src="https://docs.oracle.com/cd/B19306_01/server.102/b14200/img/regexp_replace.gif" title="Description of regexp_replace.gif follows" width="713" /><br />
<a href="https://docs.oracle.com/cd/B19306_01/server.102/b14200/img_text/regexp_replace.htm" id="sthref1915">Description of the illustration regexp_replace.gif</a><br />
<br />
<div class="subhead1">
<a href="https://www.blogger.com/null" id="sthref1916"></a>Purpose</div>
<code>REGEXP_REPLACE</code> extends the functionality of the <code>REPLACE</code> function by letting you search a string for a regular expression pattern. By default, the function returns <code><span class="codeinlineitalic">source_char</span></code> with every occurrence of the regular expression pattern replaced with <code><span class="codeinlineitalic">replace_string</span></code>. The string returned is in the same character set as <code><span class="codeinlineitalic">source_char</span></code>. The function returns <code>VARCHAR2</code> if the first argument is not a LOB and returns <code>CLOB</code> if the first argument is a LOB.<br />
This function complies with the POSIX regular expression standard and the Unicode Regular Expression Guidelines. For more information, please refer to <a href="https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_posix.htm#g693775">Appendix C, "Oracle Regular Expression Support"</a>.<br />
<ul>
<li><code><span class="codeinlineitalic">source_char</span></code> is a character expression that serves as the search value. It is commonly a character column and can be of any of the datatypes <code>CHAR</code>, <code>VARCHAR2</code>, <code>NCHAR</code>, <code>NVARCHAR2</code>, <code>CLOB</code> or <code>NCLOB</code>.</li>
<li><code><span class="codeinlineitalic">pattern</span></code> is the regular expression. It is usually a text literal and can be of any of the datatypes <code>CHAR</code>, <code>VARCHAR2</code>, <code>NCHAR</code>, or <code>NVARCHAR2</code>. It can contain up to 512 bytes. If the datatype of <code><span class="codeinlineitalic">pattern</span></code> is different from the datatype of <code><span class="codeinlineitalic">source_char</span></code>, Oracle Database converts <code><span class="codeinlineitalic">pattern</span></code> to the datatype of <code><span class="codeinlineitalic">source_char</span></code>. For a listing of the operators you can specify in <code><span class="codeinlineitalic">pattern</span></code>, please refer to <a href="https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_posix.htm#g693775">Appendix C, "Oracle Regular Expression Support"</a>.</li>
<li><code><span class="codeinlineitalic">replace_string</span></code> can be of any of the datatypes <code>CHAR</code>, <code>VARCHAR2</code>, <code>NCHAR</code>, <code>NVARCHAR2</code>, <code>CLOB</code>, or <code>NCLOB</code>. If <code><span class="codeinlineitalic">replace_string</span></code> is a <code>CLOB</code> or <code>NCLOB</code>, then Oracle truncates <code><span class="codeinlineitalic">replace_string</span></code> to 32K. The <code><span class="codeinlineitalic">replace_string</span></code> can contain up to 500 backreferences to subexpressions in the form <code>\n</code>, where <code>n</code> is a number from 1 to 9. If <code>n</code> is the backslash character in <code><span class="codeinlineitalic">replace_string</span></code>, then you must precede it with the escape character (<code>\\</code>). For more information on backreference expressions, please refer to the notes to <a href="https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_posix.htm#g693775">"Oracle Regular Expression Support"</a>, <a href="https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_posix001.htm#BABJDBHB">Table C-1</a>.</li>
<li><code><span class="codeinlineitalic">position</span></code> is a positive integer indicating the character of <code><span class="codeinlineitalic">source_char</span></code> where Oracle should begin the search. The default is 1, meaning that Oracle begins the search at the first character of <code><span class="codeinlineitalic">source_char</span></code>.</li>
<li><code><span class="codeinlineitalic">occurrence</span></code> is a nonnegative integer indicating the occurrence of the replace operation:<br />
<ul>
<li>If you specify 0, then Oracle replaces all occurrences of the match.</li>
<li>If you specify a positive integer <code><span class="codeinlineitalic">n</span></code>, then Oracle replaces the <code><span class="codeinlineitalic">n</span></code>th occurrence.</li>
</ul>
</li>
<li><code><span class="codeinlineitalic">match_parameter</span></code> is a text literal that lets you change the default matching behavior of the function. This argument affects only the matching process and has no effect on <code><span class="codeinlineitalic">replace_string</span></code>. You can specify one or more of the following values for <code><span class="codeinlineitalic">match_parameter</span></code>:<br />
<ul>
<li><code>'i'</code> specifies case-insensitive matching.</li>
<li><code>'c'</code> specifies case-sensitive matching.</li>
<li><code>'n'</code> allows the period (.), which is the match-any-character character, to match the newline character. If you omit this parameter, the period does not match the newline character.</li>
<li><code>'m'</code> treats the source string as multiple lines. Oracle interprets <code>^</code> and <code>$</code> as the start and end, respectively, of any line anywhere in the source string, rather than only at the start or end of the entire source string. If you omit this parameter, Oracle treats the source string as a single line.</li>
<li>'x' ignores whitespace characters. By default, whitespace characters match themselves.</li>
</ul>
If you specify multiple contradictory values, Oracle uses the last value. For example, if you specify <code>'ic'</code>, then Oracle uses case-sensitive matching. If you specify a character other than those shown above, then Oracle returns an error.<br />
If you omit <code><span class="codeinlineitalic">match_parameter</span></code>, then:<br />
<ul>
<li>The default case sensitivity is determined by the value of the <code>NLS_SORT</code> parameter.</li>
<li>A period (.) does not match the newline character.</li>
<li>The source string is treated as a single line.</li>
</ul>
</li>
</ul>
</div>
confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-67157914558000112842013-11-12T13:08:00.001-08:002014-11-18T12:17:39.772-08:00How are you, Air Canada?!About 20 years ago, my 1st flight with Air Canada, I still remember that's Dec 8, a very cold winter day, ground covered with all snow. I arrived in Edmonton, but I lost one of my bag with bottles of expensive Chinese Mao Tai if you know some liquor from China:). That time my spoken English and listening are so limited, but I had to communicate with Air Canada to get my bag back. After a few weeks my bag was dragged to my apartment and finally I got it back even though the Mao Tai was opened, I guess it was checked by some officer:(<br />
<br />
1996 I went to my home town through Shanghai with Air Canada, my home town is about 6 hours bus from Shanghai at that time without highway yet. Again I lost one new luggage, which I just bought for this trip. I left my home town contact information and went home; a few days later my new luggage came dirty on crowded bus, mot much complained, I felt fortune to get it back in just a few days.<br />
<br />
<br />
2005 I visited China with whole family by Air Canada and again we missed one luggage on the way back to Canada! After a few month registering case on Air Canada website and talking to agents, I almost had no hope to get my luggage back (only compensation by Air Canada is $100!). Well, it was finally located and sent it back to me. When I opened my out-of-shape luggage, most gift/stuff was squeezed. Well, what can I say, it came back after a few month travelling around world, I wish I could did this free travelling!<br />
<br />
<script charset="utf-8" src="http://ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fyanai-20%2F8009%2Fd5fc2126-dc5b-4174-9893-f2ed7d9e0be6&Operation=GetScriptTemplate" type="text/javascript"> </script> <noscript><a HREF="http://ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fyanai-20%2F8009%2Fd5fc2126-dc5b-4174-9893-f2ed7d9e0be6&Operation=NoScript">Amazon.com Widgets</A></noscript>
<strong><span style="font-size: large;">Until</span></strong> now such losing luggage experience gave me a big stress every time I travel with checked luggage, I was so worried and always triple check to make sure I keep those luggage receipts in case any luggage gets lost. Recently I travel to China a lot to visit my parents and I believe Air Canada improved the process about the checked luggage, but unfortunately I encounter some new headache about cancelled and delayed air flights.<br />
<br />
This Summer (2013) we booked tickets with Air Canada and we were stuck at Vancouver! That evening all passenger were on board and airplane is driving out and ready to take off, after 30 minutes waiting Captain told us there were some air-conditioning issue to fix before taking off. So we were patiently waiting and then were told that airplane had to go back for checking, shortly after reaching the dock we were notified to get off and wait inside. Soon it announced that the flight cancelled. <br />
<br />
What a chaos and we had some miscommunication and finally whole family ran to some hotel outside airport in the Vancouver city at 2am in the morning and had to get back airport for re-check-in for another airplane departing at next day 9am. A lot of passenger were mad, especially those with connection flights, one of lady was so upset and ask all of us refuse to aboard, but nobody listened to her, since everyone was so tired and wanted to leave as soon as we could and got over with this. I was pretty sad to see that lady was screaming and kicking the coupon paper which Air Canada offers for this chaos, it's 15% off next purchase, come on, I don't think that lady will take Air Canada again:(<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ydi0daEolkQamhG8GF8-t_PNLlArmVNX-OBrKq7a5ZxIqJzGV2or1Y7orCpbkO1zOw-p_4tpihpB3OHgeUKoaX2zwvB6L65oyBhpOHEyfVE3XSONUWEoMMGfx10hdNo1kI70jwVwe4I/s1600/ChinaHotSummer+006.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ydi0daEolkQamhG8GF8-t_PNLlArmVNX-OBrKq7a5ZxIqJzGV2or1Y7orCpbkO1zOw-p_4tpihpB3OHgeUKoaX2zwvB6L65oyBhpOHEyfVE3XSONUWEoMMGfx10hdNo1kI70jwVwe4I/s1600/ChinaHotSummer+006.JPG" height="422" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKVBbpotX2Z8VmilQkpgLD8nSD6Mxt8E3EoRIGIK57d9nrtXGk_Fe2CEsPonVAQOCgkENWMzz-LeMWV8WOr9M0Qr7WqUQa0TlyPGjVH82tlngJ-VROq96BTsEU89C0OiT33JNrgK9qcJw/s1600/ChinaHotSummer+007.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKVBbpotX2Z8VmilQkpgLD8nSD6Mxt8E3EoRIGIK57d9nrtXGk_Fe2CEsPonVAQOCgkENWMzz-LeMWV8WOr9M0Qr7WqUQa0TlyPGjVH82tlngJ-VROq96BTsEU89C0OiT33JNrgK9qcJw/s1600/ChinaHotSummer+007.JPG" height="422" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKicfvkRlqsRIvou5qw2__d0X0RrgiWPT8HPwqJgIIJP5LM_4CZLaTnXPqYaQcuD_NKSok6ZU_QcyRgQJDabFPAeVQKmF1H2InPyzeLaYy5oslMOSYCq3NAPLR2TMEj2aKNY8FrhO1oyo/s1600/ChinaHotSummer+010.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKicfvkRlqsRIvou5qw2__d0X0RrgiWPT8HPwqJgIIJP5LM_4CZLaTnXPqYaQcuD_NKSok6ZU_QcyRgQJDabFPAeVQKmF1H2InPyzeLaYy5oslMOSYCq3NAPLR2TMEj2aKNY8FrhO1oyo/s1600/ChinaHotSummer+010.JPG" height="422" width="640" /></a></div>
<br />
We were glad to take off next day and arrived safely in Beijing even it's was 12 hours delay, I have sympathy for those who missed next connecting flight, train or bus. When coming back the flight was delay again! We were late at Vancouver, and could not catch the booked flight to Edmonton. This time we were experienced with no panic and we were staying in the Fairmount hotel inside Vancouver airport, not bad, my daughters were excited to stay this nice hotel for a few hours. <br />
<br />
That's my stories with Air Canada, I just want to say Air Canada, how are you doing? I wish you getting better and I heard news doing well. Do I ride with Air Canada again?<br />
<br />
Yes, I think so, there are many reasons, just to speak a couple :))<br />
1. I am a Canadian, hohoho<br />
2. I just know a high school classmate, working at Air Canada Montreal office, Mr Yu, hahaha<br />
......<br />
<br />
Do I choose Air Canada if there is other option? I don't know honestly....confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-41591458817239611292013-10-07T11:46:00.000-07:002014-11-19T13:34:50.570-08:00UTF-8 without BOMI promise this post will be good:)<br />
<br />
A while ago set up a group forum using phpbb, overall phpbb3 is not bad even though it lacks of some popular features and you need some module for some popular features.<br />
<br />
As more and more posts on our forum, I thought it might be a good idea to mark those posts with over a certain number of views. I checked and phpbb3 comes with popular topic based on posts, I want to have popular posts based on views.<br />
<br />
Thanks and hates to <a href="http://startrekguide.com/mods">http://startrekguide.com/mods</a>, I found that some simple update of a few php files could get what I wanted:)) since I am so lazy and web stuff is just one of my hobbies. Why I hate? After I followed the instruction to update those files, I found the crazy warning about "Cannot modify header information - headers already sent by (output started t /includes/acp/acp_board.php:1)"!<br />
<br />
What the heck? I changed file back (didn't save a copy since I was thinking those changes are so simple:(). Still same error pops up, double checked the space, commas, etc, still same error! It gets me frustrated, so I decided to change configure php file (even it says don't touch this file:( ) to uncomment the debug mode line to see what's really going on. Damn, even worse, whole phpbb forum is not running!<br />
<br />
Thanks to the Internet search, sounds like I was having some encoding type issue, I edited those files in notepad to make sure same as UTF-8, but still same thing! Searched again, I was educated that I need to save as UTF-8 without BOM, the notepad doesn't have this option so called BOM:(<br />
<br />
After downloaded notepad++ and edit the files and applied the changes according to <a href="http://startrekguide.com/mods">http://startrekguide.com/mods</a>, now I havd to say thanks. After that everything was working properly:)<br />
<br />
I thought I should write this out and again LONG LIVE INTERNET SEARCH! (mostly google or baidu?:))<br />
<h1 class="firstHeading" id="firstHeading" lang="en">
<span dir="auto">Byte order mark</span></h1>
<div id="bodyContent">
<div id="siteSub">
From Wikipedia, the free encyclopedia</div>
<div class="mw-jump" id="jump-to-nav">
</div>
<div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="en">
The <b>byte order mark</b> (<b>BOM</b>) is a <a href="http://en.wikipedia.org/wiki/Unicode" title="Unicode">Unicode</a> character used to signal the <a href="http://en.wikipedia.org/wiki/Endianness" title="Endianness">endianness</a> (byte order) of a text file or stream. It is encoded at <span class="nowrap">U+FEFF</span> <span class="smallcaps" style="font-variant: small-caps;">byte order mark</span> (BOM). BOM use is optional, and, if used, should appear at the start of the text stream. Beyond its specific use as a byte-order indicator, the BOM character may also indicate which of the several Unicode representations the text is encoded in.<sup class="reference" id="cite_ref-unicode_FAQ_1-0"><a href="http://en.wikipedia.org/wiki/Byte_order_mark#cite_note-unicode_FAQ-1">[1]</a></sup></div>
</div>
confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-78519130765961444552013-08-29T09:44:00.001-07:002014-11-19T13:35:03.944-08:00ORCL - FORMAT_ERROR_BACKTRACE <div style="-webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: 12px/16px arial, helvetica, sans-serif; letter-spacing: normal; list-style: none; margin: 0px 0px 10px; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: Georgia, "Times New Roman", serif;">Having a few packages to send email around, often I find exception error is hard to trace since I was just using SQLerrm function in exception, which only shows the error without telling the source.</span></div>
<div style="-webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: 12px/16px arial, helvetica, sans-serif; letter-spacing: normal; list-style: none; margin: 0px 0px 10px; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: Georgia, "Times New Roman", serif;">1st I thought I could look for ways to find where exactly the error occurs, such as showing function/procedure name, then after a little online search, I found dbms_utility package has a nice function: FORMAT_ERROR_BACKTRACE, which displays the error line number, better than function/procedure name!</span><br />
<span style="font-family: Georgia;"></span> </div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: Georgia, "Times New Roman", serif;">This procedure displays the call stack at the point where an exception was raised, even if the procedure is called from an exception handler in an outer scope. The output is similar to the output of the<span class="Apple-converted-space"> </span><code style="font-family: monospace; font-size: 12px;">SQLERRM</code><span class="Apple-converted-space"> </span>function, but not subject to the same size limitation.</span></div>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<a href="https://www.blogger.com/null" id="sthref574" name="sthref574"></a><span style="font-family: Georgia, "Times New Roman", serif;">Syntax</span></div>
<pre class="oac_no_warn" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: monospace; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px;" xml:space="preserve"><span style="font-family: Georgia, "Times New Roman", serif;">DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
RETURN VARCHAR2;
</span></pre>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<a href="https://www.blogger.com/null" id="sthref575" name="sthref575"></a><span style="font-family: Georgia, "Times New Roman", serif;">Return value</span></div>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: Georgia, "Times New Roman", serif;"> </span></div>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: Georgia, "Times New Roman", serif;">NICE! Also if you want to look at full error stack, check FORMAT_ERROR_STACK function.</span></div>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: Georgia, "Times New Roman", serif;"> </span></div>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: Georgia, "Times New Roman", serif;">To use, just simply add such line (red) as the below:</span></div>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
</div>
<div class="titleinrefsubsect" style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-size-adjust: none; font-stretch: normal; font: small/19px Tahoma, sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
EXCEPTION<br />
WHEN OTHERS THEN<br />
<strong><span style="color: red;">dbms_output.put_line (dbms_utility.FORMAT_ERROR_BACKTRACE);</span></strong><br />
V_MSG_SUB_ERROR := V_MSG_SUB_ERROR;<br />
V_MSG_ERROR := V_MSG_ERROR || SQLERRM || '</div>
' || <strong><span style="color: red;">dbms_utility.FORMAT_ERROR_BACKTRACE</span></strong> || V_MSG_SIG;<br />
UTL_MAIL.SEND(SENDER => EMAIL_FROM,<br />
RECIPIENTS => EMAIL_ERROR_TO,<br />
CC => EMAIL_BCC,<br />
SUBJECT => V_MSG_SUB_ERROR,<br />
MESSAGE => V_MSG_ERROR,<br />
MIME_TYPE => 'text/html');<br />
END;<br />
<div style="-webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: 12px/16px arial, helvetica, sans-serif; letter-spacing: normal; list-style: none; margin: 0px 0px 10px; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<br /></div>
<div style="-webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: 12px/16px arial, helvetica, sans-serif; letter-spacing: normal; list-style: none; margin: 0px 0px 10px; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
"In a real-world application, the error backtrace could be very long. Generally, debuggers and support people don't really want to have to deal with the entire stack; they are mostly going to be interested in that top-most entry. The developer of the application might even like to display that critical information to the users so that they can immediately and accurately report the problem to the support staff. In this case, it is necessary to parse the backtrace string and retrieve just the top-most entry." - by <em>Steven Feuerstein</em> </div>
<div style="-webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0px; background-color: white; color: black; font-size-adjust: none; font-stretch: normal; font: 12px/16px arial, helvetica, sans-serif; letter-spacing: normal; list-style: none; margin: 0px 0px 10px; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<em></em> </div>
confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-13156332380184905492013-04-19T08:50:00.000-07:002013-04-19T09:33:03.856-07:00Home 2 routers with 2 ssidsWe had the Cisco Linksys router at home for quite time, maybe 2,3 years. Since we moved into the current house, the upstairs wireless singal is kind of weak, especaily for Dell/HP laptops. So I decided buy a new router.<br />
<br />
After some homework, I bought WestDigital Mynet N750, was thinking about N900 with DLNA support and 7 ports, but the comments on N750 looks better than N900. Anyway, I may check out N900 later some time, so far N750 singal is pretty good.<br />
<br />
With 2 routers I have now I decided to setup 2 routers with 2 ssids, one is for N, one is for mixed B/G since I am still using 1st Gen iPod (ancient, isn't it?) and a HP mini laptop (very slow). Even though my network skill is very rusty, but I thought it should be easy to set up.<br />
<br />
Pretty easy to set up and the old iPod is connected to the 2nd router, obtaining right IP address, just could not get into Internet complainting about DNS problem, then set the DNS to the 1st router default gateway. Then it is all working:). This reminds me of old days when I was taking Network Specialist courses.<br />
<br />
Some key points I could think of:<br />
<br />
Any router had external and internal IP address, internal IP is easy and most time is just DHCP, external IP is what ever the IP talking outside the own network, for 2nd router the external IP is the IP within 1st router range, and for 1st router is the IP with my Internet Service Provider network range. <br />
<br />
DNS is just like chain pass from internal to external, from router 2 go to router 1, then router to ISP DNS server to find real route to the web pages you want to see.<br />
<br />
And also dont forget the 2 routers are in different subnets (1.1 and 0.1, you can do whatever number you want, just keep 192.168 or if you prefer the other private network start with 10 and 172).<br />
<br />
Here is the diagram of my home network of 2 routers with 2 ssids:)<br />
<br />
Next I will talk a bit about the hot DLNA topic.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYoKT_RzRpZ9eMv1t9D_n6CPhoEKEYvpkaWbZeUIA3_KRbgRlZiRrA8rF1VtytX2Lj1JFFhrIN1p54Mu3Iy6iXQ3XYCe7HQyOnghRVHs1dh59RQIXWuOYHAOKJru769bjbyh5F1udQn5k/s1600/mynet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYoKT_RzRpZ9eMv1t9D_n6CPhoEKEYvpkaWbZeUIA3_KRbgRlZiRrA8rF1VtytX2Lj1JFFhrIN1p54Mu3Iy6iXQ3XYCe7HQyOnghRVHs1dh59RQIXWuOYHAOKJru769bjbyh5F1udQn5k/s1600/mynet.png" height="425" width="640" /></a></div>
<br />
<br />confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-10454265865103403742013-03-19T13:05:00.002-07:002013-03-27T14:13:01.932-07:00Joomla or WordpressDoing some web site revamp recently, and amazed by the easiness and friendless of making website and there are so many nice templates you could choose, too many choice.<br />
<br />
Looks Word press is very popular and I did get one for one of my clients, and will make it ready for themselves to update the content. For Joomla, was working with it before, and seems more complicated and powerful than Word press. <br />
<br />
For my next project, I would like to choose Joomla if I could get the template I like. Now start to clean our hosting site stuff, so many blog/forum when I was testing. I would like to have one good forum package well support multiple languages such as English and Chinese.<br />
<br />
Over all, here is a nice way to decide if you have difficult to choose which one:<br />
(picture from <a href="http://www.sitepoint.com/">http://www.sitepoint.com/</a> and thanks!)<br />
<br />
Just now working on 2 templates, one is WordPress, one is Joomla, WordPress is OK to apply the dump.sql, but Joomla is a pain when dealing with different version. If I have time, I will definitely create my own template instead of buying. The version compatibility of Joomla is sure a pain.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAuzbywpZx9XqvO5rZHzlVBgIRZ8MP0bHFLFjjaQUbkE8IENyHbPWHM92rOUu9FRgCc2MSom1ueUENyqco2pwygT3zP4tRUeIUL2iaQdD-c_VHVeCqr4pXwMj3j_8VfZKfeBMXhJL1q0/s1600/WordPress-vs-Joomla.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAuzbywpZx9XqvO5rZHzlVBgIRZ8MP0bHFLFjjaQUbkE8IENyHbPWHM92rOUu9FRgCc2MSom1ueUENyqco2pwygT3zP4tRUeIUL2iaQdD-c_VHVeCqr4pXwMj3j_8VfZKfeBMXhJL1q0/s1600/WordPress-vs-Joomla.png" width="650" /></a></div>
confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com0tag:blogger.com,1999:blog-3085919489180634460.post-21680322226120071552013-03-14T14:38:00.001-07:002013-03-15T14:39:17.577-07:00Confucius and ConfusionSounds really funny, since I was very young I am a confused boy, very puzzled and bewildered, but never lost for what I want. <br />
<br />
I am confused by the life, the meaning of life, and think the world is full of confusion. That's why I picked confusion as my nick. Then I tried to find the adjective for confusion and I don't like confusional(?), so I decided to use confusious(even though no such word), then people are thinking I was wrong and should be confucius. Well, should I change this to the famous ancient great Master Kong? Let me know your answer:)<br />
<br />
Confucius Says (子曰)is so profound, and let's review the Top 10 quotes from Master Kong (so many and I just pick what I like:):<br />
<br />
Just a thought: I have to say sorry to Master Kong, since in the end he was confused and failed. The Only savior is Our Lord! Don't you agree?!<br />
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
1. “Never impose on others what you would not choose for yourself.”</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-size: xx-small; font-stretch: normal; font: 12px/24px 宋体; letter-spacing: normal; text-indent: 24px; text-transform: none; white-space: normal; word-spacing: 0px;">己所不欲,勿施于人。</span></h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
2. “Real knowledge is to know the extent of one’s ignorance.”</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-size: xx-small; font-stretch: normal; font: small/18px arial; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">知之为知之,不知为不知,是知也。</span></h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
3. “Keep what you say and carry out what you do.”<pre accuse="aContent" class="answer-text mb-10" id="answer-content-887724017" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 14px/24px arial, "courier new", courier, 宋体, monospace; letter-spacing: normal; margin: 0px 0px 10px; padding: 0px; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px; word-wrap: break-word;"><span style="font-size: small;">言必信,行必果。</span></pre>
</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
4. “A gentleman sets strict demands on himself while a petty man set strict demands on others.”</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #e0cb89; color: #464646; display: inline !important; float: none; font-size: xx-small; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">君子求诸己,小人求诸人。</span></h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
5. “The Superior Man is aware of Righteousness, the inferior man is aware of advantage.”</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-size: xx-small; font-stretch: normal; font: small/18px arial; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">君子喻於义,小人喻於利。</span></h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
6. “The gentleman wishes to be slow in speech but quick in action.”<pre accuse="aContent" class="best-text mb-10" id="best-content-301298070" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #fffcf6; color: #333333; font-size-adjust: none; font-stretch: normal; font: 14px/24px arial, "courier new", courier, 宋体, monospace; letter-spacing: normal; margin: 0px 0px 10px; padding: 0px; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px; word-wrap: break-word;">君子欲讷于言而敏于行。</pre>
</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
7. “When I walk along with two others, they may serve me as my teachers.”</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; color: #3f3f3f; display: inline !important; float: none; font-size-adjust: none; font-size: xx-small; font-stretch: normal; font: 12px/22.79px Arial; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">三人行,必有我师焉。</span></h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
8. “He who learns but does not think, is lost. He who thinks but does not learn is in great danger.”</h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-size: xx-small; font-stretch: normal; font: small/18px arial; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">学而不思则罔,思而不学则殆。</span></h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
9. “He that would perfect his work must first sharpen his tools.”</h3>
<h2 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; color: black; font-family: "Times New Roman"; font-size: 14px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: 26px; margin: 0px; padding: 0px; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" title="孔子说:“工欲善其事,必先利其器">
<span style="font-size: small;">工欲善其事,必先利其器。</span></h2>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
10. “If you look into your own heart, and you find nothing wrong there, what is there to worry about? What is there to fear?” </h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-size: xx-small; font-stretch: normal; font: small/18px arial; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">君子坦荡荡,小人长戚戚。</span></h3>
<h3 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 24px/33px Georgia, serif; letter-spacing: normal; margin: 0px 0px 10px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none; white-space: normal; word-spacing: 0px; word-wrap: break-word;">
<span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: black; display: inline !important; float: none; font-size-adjust: none; font-stretch: normal; font: small/18px arial; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><pre accuse="aContent" class="answer-text mb-10" id="answer-content-887724017" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-size-adjust: none; font-stretch: normal; font: 14px/24px arial, "courier new", courier, 宋体, monospace; letter-spacing: normal; margin: 0px 0px 10px; padding: 0px; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px; word-wrap: break-word;">太多啦,加一个:有朋自远方来,不亦乐乎?
Is it not delightful to have friends coming from distant quarters?</pre>
</span></h3>
confusionhttp://www.blogger.com/profile/02298754807519498784noreply@blogger.com2