diff --git a/abaixo-aos-prints-ode-aos-logs/slides.html b/abaixo-aos-prints-ode-aos-logs/slides.html index 23c548a..9f62bc4 100644 --- a/abaixo-aos-prints-ode-aos-logs/slides.html +++ b/abaixo-aos-prints-ode-aos-logs/slides.html @@ -8,41 +8,40 @@ * @auto-scaling true * @size 16:9 1280px 720px * @size 4:3 960px 720px - */div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) code.hljs{display:block;overflow-x:auto;padding:1em}div#\:\$p>svg>foreignObject>section code.hljs{padding:3px 5px}div#\:\$p>svg>foreignObject>section .hljs{background:#000;color:#f8f8f8}div#\:\$p>svg>foreignObject>section .hljs-comment,div#\:\$p>svg>foreignObject>section .hljs-quote{color:#aeaeae;font-style:italic}div#\:\$p>svg>foreignObject>section .hljs-keyword,div#\:\$p>svg>foreignObject>section .hljs-selector-tag,div#\:\$p>svg>foreignObject>section .hljs-type{color:#e28964}div#\:\$p>svg>foreignObject>section .hljs-string{color:#65b042}div#\:\$p>svg>foreignObject>section .hljs-subst{color:#daefa3}div#\:\$p>svg>foreignObject>section .hljs-link,div#\:\$p>svg>foreignObject>section .hljs-regexp{color:#e9c062}div#\:\$p>svg>foreignObject>section .hljs-name,div#\:\$p>svg>foreignObject>section .hljs-section,div#\:\$p>svg>foreignObject>section .hljs-tag,div#\:\$p>svg>foreignObject>section .hljs-title{color:#89bdff}div#\:\$p>svg>foreignObject>section .hljs-class .hljs-title,div#\:\$p>svg>foreignObject>section .hljs-doctag,div#\:\$p>svg>foreignObject>section .hljs-title.class_{text-decoration:underline}div#\:\$p>svg>foreignObject>section .hljs-bullet,div#\:\$p>svg>foreignObject>section .hljs-number,div#\:\$p>svg>foreignObject>section .hljs-symbol{color:#3387cc}div#\:\$p>svg>foreignObject>section .hljs-params,div#\:\$p>svg>foreignObject>section .hljs-template-variable,div#\:\$p>svg>foreignObject>section .hljs-variable{color:#3e87e3}div#\:\$p>svg>foreignObject>section .hljs-attribute{color:#cda869}div#\:\$p>svg>foreignObject>section .hljs-meta{color:#8996a8}div#\:\$p>svg>foreignObject>section .hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic}div#\:\$p>svg>foreignObject>section .hljs-addition{background-color:#253b22;color:#f8f8f8}div#\:\$p>svg>foreignObject>section .hljs-deletion{background-color:#420e09;color:#f8f8f8}div#\:\$p>svg>foreignObject>section .hljs-selector-class{color:#9b703f}div#\:\$p>svg>foreignObject>section .hljs-selector-id{color:#8b98ab}div#\:\$p>svg>foreignObject>section .hljs-emphasis{font-style:italic}div#\:\$p>svg>foreignObject>section .hljs-strong{font-weight:700}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section :is(h2,marp-h2),div#\:\$p>svg>foreignObject>section :is(h3,marp-h3),div#\:\$p>svg>foreignObject>section :is(h4,marp-h4),div#\:\$p>svg>foreignObject>section :is(h5,marp-h5),div#\:\$p>svg>foreignObject>section :is(h6,marp-h6){margin:.5em 0 0}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1) strong,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2) strong,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3) strong,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4) strong,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5) strong,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6) strong{font-weight:inherit}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h2,marp-h2)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h3,marp-h3)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h4,marp-h4)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h5,marp-h5)::part(auto-scaling),div#\:\$p>svg>foreignObject>section :is(h6,marp-h6)::part(auto-scaling){max-height:580px}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1){font-size:1.8em}div#\:\$p>svg>foreignObject>section :is(h2,marp-h2){font-size:1.5em}div#\:\$p>svg>foreignObject>section :is(h3,marp-h3){font-size:1.3em}div#\:\$p>svg>foreignObject>section :is(h4,marp-h4){font-size:1.1em}div#\:\$p>svg>foreignObject>section :is(h5,marp-h5){font-size:1em}div#\:\$p>svg>foreignObject>section :is(h6,marp-h6){font-size:.9em}div#\:\$p>svg>foreignObject>section blockquote,div#\:\$p>svg>foreignObject>section p{margin:1em 0 0}div#\:\$p>svg>foreignObject>section ol>li,div#\:\$p>svg>foreignObject>section ul>li{margin:.3em 0 0}div#\:\$p>svg>foreignObject>section ol>li>p,div#\:\$p>svg>foreignObject>section ul>li>p{margin:.6em 0 0}div#\:\$p>svg>foreignObject>section code{display:inline-block;font-family:Roboto Mono,monospace;font-size:.8em;letter-spacing:0;margin:-.1em .15em;padding:.1em .2em;vertical-align:baseline}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre){display:block;margin:1em 0 0;overflow:visible}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre) code{box-sizing:border-box;font-size:.7em;margin:0;min-width:100%;padding:.5em}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre)::part(auto-scaling){max-height:calc(580px - 1em)}div#\:\$p>svg>foreignObject>section blockquote{margin:1em 0 0;padding:0 1em;position:relative}div#\:\$p>svg>foreignObject>section blockquote:after,div#\:\$p>svg>foreignObject>section blockquote:before{content:"“";display:block;font-family:Times New Roman,serif;font-weight:700;position:absolute}div#\:\$p>svg>foreignObject>section blockquote:before{left:0;top:0}div#\:\$p>svg>foreignObject>section blockquote:after{bottom:0;right:0;transform:rotate(180deg)}div#\:\$p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#\:\$p>svg>foreignObject>section mark{background:transparent}div#\:\$p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0;margin:1em 0 0}div#\:\$p>svg>foreignObject>section table td,div#\:\$p>svg>foreignObject>section table th{border-style:solid;border-width:1px;padding:.2em .4em}div#\:\$p>svg>foreignObject>section footer,div#\:\$p>svg>foreignObject>section header,div#\:\$p>svg>foreignObject>section:after{box-sizing:border-box;font-size:66%;height:70px;line-height:50px;overflow:hidden;padding:10px 25px;position:absolute}div#\:\$p>svg>foreignObject>section:after{--marpit-root-font-size:66%}div#\:\$p>svg>foreignObject>section header{top:0}div#\:\$p>svg>foreignObject>section footer,div#\:\$p>svg>foreignObject>section header{left:0;right:0}div#\:\$p>svg>foreignObject>section footer{bottom:0}div#\:\$p>svg>foreignObject>section{word-wrap:break-word;--color-background:#fff8e1;--color-background-stripe:rgba(69,90,100,.1);--color-foreground:#455a64;--color-dimmed:#6a7a7d;--color-highlight:#0288d1;background-color:var(--color-background);background-image:linear-gradient(135deg,hsla(0,0%,53%,0),hsla(0,0%,53%,.02) 50%,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.05));color:var(--color-foreground);font-family:Lato,Avenir Next,Avenir,Trebuchet MS,Segoe UI,sans-serif;font-size:35px;height:720px;letter-spacing:1.25px;line-height:1.35;padding:70px;width:1280px}div#\:\$p>svg>foreignObject>section{--marpit-root-font-size:35px}div#\:\$p>svg>foreignObject>section:after{bottom:0;font-size:80%;right:0}div#\:\$p>svg>foreignObject>section:after{--marpit-root-font-size:80%}div#\:\$p>svg>foreignObject>section a,div#\:\$p>svg>foreignObject>section mark{color:var(--color-highlight)}div#\:\$p>svg>foreignObject>section code{background:var(--color-dimmed);color:var(--color-background)}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1) strong,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2) strong,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3) strong,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4) strong,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5) strong,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6) strong{color:var(--color-highlight)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre){background:var(--color-foreground)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre)>code{background:transparent}div#\:\$p>svg>foreignObject>section blockquote:after,div#\:\$p>svg>foreignObject>section blockquote:before,div#\:\$p>svg>foreignObject>section footer,div#\:\$p>svg>foreignObject>section header,div#\:\$p>svg>foreignObject>section section:after{color:var(--color-dimmed)}div#\:\$p>svg>foreignObject>section table td,div#\:\$p>svg>foreignObject>section table th{border-color:var(--color-foreground)}div#\:\$p>svg>foreignObject>section table thead th{background:var(--color-foreground);color:var(--color-background)}div#\:\$p>svg>foreignObject>section table tbody>tr:nth-child(odd) td,div#\:\$p>svg>foreignObject>section table tbody>tr:nth-child(odd) th{background:var(--color-background-stripe,transparent)}div#\:\$p>svg>foreignObject>section>:first-child,div#\:\$p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#\:\$p>svg>foreignObject>section:where(.invert){--color-background:#455a64;--color-background-stripe:rgba(255,248,225,.1);--color-foreground:#fff8e1;--color-dimmed:#dad8c8;--color-highlight:#81d4fa}div#\:\$p>svg>foreignObject>section:where(.gaia){--color-background:#0288d1;--color-background-stripe:rgba(255,248,225,.1);--color-foreground:#fff8e1;--color-dimmed:#cce2de;--color-highlight:#81d4fa}div#\:\$p>svg>foreignObject>section:where(.lead){display:flex;flex-flow:column nowrap;justify-content:center}div#\:\$p>svg>foreignObject>section:where(.lead) :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h2,marp-h2),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h3,marp-h3),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h4,marp-h4),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h5,marp-h5),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h6,marp-h6){text-align:center}div#\:\$p>svg>foreignObject>section:where(.lead) p{text-align:center}div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h1,marp-h1),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h2,marp-h2),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h3,marp-h3),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h4,marp-h4),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h5,marp-h5),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h6,marp-h6),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>p{text-align:left}div#\:\$p>svg>foreignObject>section:where(.lead) ol>li>p,div#\:\$p>svg>foreignObject>section:where(.lead) ul>li>p{text-align:left}div#\:\$p>svg>foreignObject>section:where(.lead) table{margin-left:auto;margin-right:auto}div#\:\$p>svg>foreignObject>section img[alt~=center]{display:block;margin:0 auto}div#\:\$p>svg>foreignObject>section[data-marpit-scope-66CMAaqZ] :is(h1,marp-h1){font-size:100px;text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-7nrILLMs] :is(h1,marp-h1){font-size:100px;text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-bDc48brK] :is(h1,marp-h1){text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-Zsgg1Td5] p{font-size:100px;text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-VXLQ04Em] :is(h1,marp-h1){font-size:60px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-5VoBRuWI] :is(h1,marp-h1){font-size:110px;text-align:center;margin-top:180px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-SMJdVCxX] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-5rKa1EHw] :is(h1,marp-h1){font-size:55px;margin-bottom:150px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-b59utrCy] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-8PVgI2iS] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-ns2aVC8i] p{font-size:55px;text-align:center;margin-top:180px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-rvQlsytO] p{font-size:55px;text-align:center;margin-top:250px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-vnO0XYz4] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-RpM9AZdm] :is(h1,marp-h1){font-size:55px;margin-bottom:170px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-gobRbcmm] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-D8osYo4Y] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-SQArRoUs] :is(h1,marp-h1){font-size:55px;text-align:center;margin-top:260px}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure>figcaption{position:absolute;border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content],div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#\:\$p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}
svg>foreignObject>section blockquote:before{left:0;top:0}div#\:\$p>svg>foreignObject>section blockquote:after{bottom:0;right:0;transform:rotate(180deg)}div#\:\$p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#\:\$p>svg>foreignObject>section mark{background:transparent}div#\:\$p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0;margin:1em 0 0}div#\:\$p>svg>foreignObject>section table td,div#\:\$p>svg>foreignObject>section table th{border-style:solid;border-width:1px;padding:.2em .4em}div#\:\$p>svg>foreignObject>section footer,div#\:\$p>svg>foreignObject>section header,div#\:\$p>svg>foreignObject>section:after{box-sizing:border-box;font-size:66%;height:70px;line-height:50px;overflow:hidden;padding:10px 25px;position:absolute}div#\:\$p>svg>foreignObject>section:after{--marpit-root-font-size:66%}div#\:\$p>svg>foreignObject>section header{top:0}div#\:\$p>svg>foreignObject>section footer,div#\:\$p>svg>foreignObject>section header{left:0;right:0}div#\:\$p>svg>foreignObject>section footer{bottom:0}div#\:\$p>svg>foreignObject>section{word-wrap:break-word;--color-background:#fff8e1;--color-background-stripe:rgba(69,90,100,.1);--color-foreground:#455a64;--color-dimmed:#6a7a7d;--color-highlight:#0288d1;background-color:var(--color-background);background-image:linear-gradient(135deg,hsla(0,0%,53%,0),hsla(0,0%,53%,.02) 50%,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.05));color:var(--color-foreground);font-family:Lato,Avenir Next,Avenir,Trebuchet MS,Segoe UI,sans-serif;font-size:35px;height:720px;letter-spacing:1.25px;line-height:1.35;padding:70px;width:1280px}div#\:\$p>svg>foreignObject>section{--marpit-root-font-size:35px}div#\:\$p>svg>foreignObject>section:after{bottom:0;font-size:80%;right:0}div#\:\$p>svg>foreignObject>section:after{--marpit-root-font-size:80%}div#\:\$p>svg>foreignObject>section a,div#\:\$p>svg>foreignObject>section mark{color:var(--color-highlight)}div#\:\$p>svg>foreignObject>section code{background:var(--color-dimmed);color:var(--color-background)}div#\:\$p>svg>foreignObject>section :is(h1,marp-h1) strong,div#\:\$p>svg>foreignObject>section :is(h2,marp-h2) strong,div#\:\$p>svg>foreignObject>section :is(h3,marp-h3) strong,div#\:\$p>svg>foreignObject>section :is(h4,marp-h4) strong,div#\:\$p>svg>foreignObject>section :is(h5,marp-h5) strong,div#\:\$p>svg>foreignObject>section :is(h6,marp-h6) strong{color:var(--color-highlight)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre){background:var(--color-foreground)}div#\:\$p>svg>foreignObject>section :is(pre,marp-pre)>code{background:transparent}div#\:\$p>svg>foreignObject>section blockquote:after,div#\:\$p>svg>foreignObject>section blockquote:before,div#\:\$p>svg>foreignObject>section footer,div#\:\$p>svg>foreignObject>section header,div#\:\$p>svg>foreignObject>section section:after{color:var(--color-dimmed)}div#\:\$p>svg>foreignObject>section table td,div#\:\$p>svg>foreignObject>section table th{border-color:var(--color-foreground)}div#\:\$p>svg>foreignObject>section table thead th{background:var(--color-foreground);color:var(--color-background)}div#\:\$p>svg>foreignObject>section table tbody>tr:nth-child(odd) td,div#\:\$p>svg>foreignObject>section table tbody>tr:nth-child(odd) th{background:var(--color-background-stripe,transparent)}div#\:\$p>svg>foreignObject>section>:first-child,div#\:\$p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#\:\$p>svg>foreignObject>section:where(.invert){--color-background:#455a64;--color-background-stripe:rgba(255,248,225,.1);--color-foreground:#fff8e1;--color-dimmed:#dad8c8;--color-highlight:#81d4fa}div#\:\$p>svg>foreignObject>section:where(.gaia){--color-background:#0288d1;--color-background-stripe:rgba(255,248,225,.1);--color-foreground:#fff8e1;--color-dimmed:#cce2de;--color-highlight:#81d4fa}div#\:\$p>svg>foreignObject>section:where(.lead){display:flex;flex-flow:column nowrap;justify-content:center}div#\:\$p>svg>foreignObject>section:where(.lead) :is(h1,marp-h1),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h2,marp-h2),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h3,marp-h3),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h4,marp-h4),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h5,marp-h5),div#\:\$p>svg>foreignObject>section:where(.lead) :is(h6,marp-h6){text-align:center}div#\:\$p>svg>foreignObject>section:where(.lead) p{text-align:center}div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h1,marp-h1),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h2,marp-h2),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h3,marp-h3),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h4,marp-h4),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h5,marp-h5),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>:is(h6,marp-h6),div#\:\$p>svg>foreignObject>section:where(.lead) blockquote>p{text-align:left}div#\:\$p>svg>foreignObject>section:where(.lead) ol>li>p,div#\:\$p>svg>foreignObject>section:where(.lead) ul>li>p{text-align:left}div#\:\$p>svg>foreignObject>section:where(.lead) table{margin-left:auto;margin-right:auto}div#\:\$p>svg>foreignObject>section img[alt~=center]{display:block;margin:0 auto}div#\:\$p>svg>foreignObject>section[data-marpit-scope-vjSuDoa0] :is(h1,marp-h1){text-align:center;margin-top:120px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-vjSuDoa0] :is(h3,marp-h3){text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-4SazRgSn] :is(h1,marp-h1){font-size:100px;text-align:center;margin-top:150px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-XWcK1JLn] :is(h1,marp-h1){font-size:100px;text-align:center;margin-top:200px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-RpZXqrBY] :is(h1,marp-h1){text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-RpZXqrBY] img{margin-top:30px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-yW4Hz9rK] :is(h1,marp-h1){font-size:100px;text-align:center;margin-top:200px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-l0dZo6UZ] :is(h1,marp-h1){text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-9JExtQF4] p{font-size:100px;text-align:center}div#\:\$p>svg>foreignObject>section[data-marpit-scope-AHaZkQIj] :is(h1,marp-h1){font-size:60px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-qqvcTFwa] :is(h1,marp-h1){font-size:70px;text-align:center;margin-top:230px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-tPazH1lE] img{margin-top:140px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-PmPY5yVj] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-J5JE5U6m] :is(h1,marp-h1){font-size:55px;margin-bottom:150px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-m0wUeAW4] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-Z93ERRCx] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-VHyPdaQU] p{font-size:55px;text-align:center;margin-top:180px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-zQhquuSi] p{font-size:55px;text-align:center;margin-top:250px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-9ZgJJIKL] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-6NLRGRjA] :is(h1,marp-h1){font-size:55px;margin-bottom:170px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-Xy8hQqnO] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-scope-KRiA1mDU] :is(h1,marp-h1){font-size:55px}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure>figcaption{position:absolute;border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=content],div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#\:\$p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#\:\$p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}

Abaixo aos prints, ode aos logs!

-

Renan de Assis

-
-

É minha primeira vez palestrando em um evento oficial!

+;"> +

Essa é minha primeira python nordeste!

É minha pri } ;--marpit-advanced-background-split:33%;" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right">

Quem sou eu?

+
    +
  • (auto descrição)
  • +
Quem sou eu? ;--marpit-advanced-background-split:33%;" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right">

Quem sou eu?

    -
  • -

    Bacharel em Física

    -
  • -
  • -

    Trabalho com engenharia de software no Serasa
    +

  • Bacharel em Física
  • +
  • Trabalho com engenharia de software no Serasa
    center
    -

@@ -128,7 +126,7 @@

Quem sou eu?

display: block; margin: 0 auto; } -" lang="pt-BR" class="invert" style="" data-marpit-advanced-background="pseudo" data-marpit-advanced-background-split="right">
Quem sou eu? display: block; margin: 0 auto; } -;--marpit-advanced-background-split:33%;" data-marpit-advanced-background="background" data-marpit-advanced-background-split="right">
Quem sou eu?
  • Gosto de vôlei, jogos de tabuleiro e tenho uma tatuagem do desenho Avatar
    • -
    • Já fiz aulas de dança de salão
    • -
    • Auxilio na organização das Python Brasil
    • +
    • Já auxiliei na organização de eventos Python Brasil
      +
    -
    +;" data-marpit-pagination-total="40">

    AVISOS

    -
      -
    • Contexto de aplicações web
    • -
    • Minhas considerações no que eu aprendi pela vida e tudo aqui é debatível
    • -
    -
    +;" data-marpit-pagination-total="40">

    AVISOS

      -
    • Contexto de aplicações web
    • -
    • Minhas considerações no que eu aprendi pela vida e tudo aqui é debatível
    • -
    • Palestra informativa e pra deixar gostinho de curiosidade
    • +
    • Contexto de aplicações web
    • +
    • Minhas considerações do que eu aprendi na vida
    • +
    • Tudo aqui é debatível
    • +
    • Palestra informativa e pra deixar gostinho de curiosidade
      +center
    -

    -
    +;" data-marpit-pagination-total="40">

    O que são logs?

    -
    O que são logs? display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Não tem nada a ver com logaritmo

    center

    @@ -223,16 +218,20 @@

    Não tem nada a ver com logaritmo display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    O que são logs?

    -

    É uma expressão utilizada para descrever o processo de registro de eventos relevantes em um sistema computacional.

    +
    +
    +

    É uma expressão utilizada para descrever o processo de registro de eventos relevantes em um sistema computacional.¹

    +
    +
    • Registro: "escrever" ou "marcar" algo em algum lugar
    • Eventos que aconteceram no passado e podem ser observados
    -
    O que são logs? display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Eventos relevantes?

    Exemplos de eventos:

      -
    1. login
    2. -
    3. logoff
    4. -
    5. Algum erro no sistema
    6. -
    7. Um sucesso em uma requisição externa
    8. +
    9. login
    10. +
    11. logoff
    12. +
    13. Algum erro no sistema
    14. +
    15. Um sucesso em uma requisição externa
    Eventos relevantes? display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Quando usar prints?

    • Retorno rápido em ambiente local
    • @@ -273,10 +272,10 @@

      Quando usar prints?

      display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

      Quando usar logs?

    -
    Quando usar logs? display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Quando usar logs?

    TODO O RESTO

    @@ -296,7 +295,7 @@

    Quando usar logs?

    display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Lib padrão de logging do python

    center

    @@ -309,7 +308,7 @@

    Lib padrão de logging do python +;" data-marpit-pagination-total="40">

    Conceitos de logs - níveis

    center

    @@ -321,7 +320,7 @@

    Conceitos de logs - níveis

    display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Conceitos de logs - níveis

    center

    @@ -333,7 +332,7 @@

    Conceitos de logs - níveis

    display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Conceitos de logs - níveis

    center

    @@ -346,7 +345,7 @@

    Conceitos de logs - níveis

    display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Conceitos de logs - formatação

    center

    @@ -358,7 +357,7 @@

    Conceitos de logs - formataç display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Conceitos de logs - formatação

    center

    @@ -370,7 +369,7 @@

    Conceitos de logs - formata display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> +;" data-marpit-pagination-total="40">

    Conceitos de logs - armazenamento

    • Relembrando: logs são registros de eventos em algum lugar
    • @@ -385,7 +384,7 @@

      Conceitos de logs - armazenamento

      +;" data-marpit-pagination-total="40">

      Conceitos de logs - armazenamento

      • Relembrando: logs são registros de eventos em algum lugar
      • @@ -400,7 +399,7 @@

        Conceitos de logs - armazenamento +;" data-marpit-pagination-total="40">

        Logs + computacão em nuvem

          @@ -422,7 +421,7 @@

          Logs + computacão em nuvem

          display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39" data-marpit-advanced-background="background">
          Logs + computacão em nuvem display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39" data-marpit-advanced-background="content">
          +;" data-marpit-pagination-total="40" data-marpit-advanced-background="content">
          Logs + computacão em nuvem display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> -

          Logs + ferramentas de monitoramento e observabilidade

          +;" data-marpit-pagination-total="40"> +

          Logs + ferramentas de observabilidade

          • Existem ferramentas muito mais poderosas de monitoramento da performance das aplicações (APM)
          • Podem integrar com serviços de computação em nuvem
          • @@ -452,7 +451,7 @@

            Logs + ferramentas

          -
          Logs + ferramentas display: block; margin: 0 auto; } -;" data-marpit-pagination-total="39"> -

          Loguru

          +;" data-marpit-pagination-total="40"> +

          Alternativa à biblioteca logging

          -
          +;" data-marpit-pagination-total="40"> +

          center

          +
          +

          Simplificação de logs em python com loguru

          center

          -
          +;" data-marpit-pagination-total="40">

          Simplificação de logs em python com loguru

          center

          -
          +;" data-marpit-pagination-total="40">

          Simplificação de logs em python com loguru

          Apenas um comando para configurações

          center

          -
          +;" data-marpit-pagination-total="40">

          Simplificação de logs em python com loguru

          Formatação de strings com sintaxe mais recente { } ao invés de %

          center
          center

          -
          +;" data-marpit-pagination-total="40">

          A MELHOR FUNCIONALIDADE
          (na minha opinião)

          -
          +;--marpit-advanced-background-split:50%;" data-marpit-pagination-total="40" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right">

          Logs estruturados

          -
          +;" data-marpit-pagination-total="40">

          Simplificação de logs em python com loguru

          center

            @@ -566,27 +576,27 @@

            Simplificação
          • Informações facilmente manipuláveis
          -
          +;" data-marpit-pagination-total="40">

          Simplificação de logs em python com loguru

          center

          -
          +;" data-marpit-pagination-total="40">

          Simplificação de logs em python com loguru

          • Consigo adicionar informações personalizadas do meu fluxo
          • @@ -594,66 +604,73 @@

            Simplificação

            center
            center

          -
          +;" data-marpit-pagination-total="40">

          Simplificação de logs em python com loguru

          • E adicionar essas informações em todo um contexto

          center

          -
          -

          Usem, testem, fuçem o loguru

          +;" data-marpit-pagination-total="40"> +

          Resumo da ópera

          +
            +
          • Logs são registros de eventos relevantes em um sistema computacional
          • +
          • Usem prints apenas em situações específicas
          • +
          • A lib de logging padrão é extremamente poderosa e personalizável
          • +
          • Usem, testem, fuçem o loguru
          • +
          -
          +;" data-marpit-pagination-total="40">

          Agradecimentos

            -
          • Equipe de organização da Python Sudeste s2
          • -
          • Eduardo Mendes (vide Dunossauro) pela live de python Nº198 sobre logs que inspirou essa palestra
            +
          • Equipe de organização da Python Nordeste s2
          • +
          • Eduardo Mendes (vide Dunossauro) pela live de python Nº198 sobre logs que inspirou essa palestra
            center
          -
          +;" data-marpit-pagination-total="40">

          Dúvidas?

          Linkedin: /in/renan-asantos/
          Telegram: @renan_asantos
          -Github: renan-assis-santos

          +Github: renan-asantos

          center

          To muito nervoso até porque... aí troca de slide

          Tô considerando o contexto de aplicações web, então são aplicações que ficam o tempo inteiro de pé (em loop infinito digamos assim) rodando em um servidor recebendo requisições. Não sei como seriam usados logs em outros contextos e ficaria contente se outra hora alguém viesse me falar -Vou passar por cima de alguns conceitos aqui, visto que é uma palestra informativa e pra deixar gostinho de quero mais

          retorno rápido no ambiente local na sua maquina ambiente controlado ou se for em um script que vai rodar apenas uma vez pra um determinado fim

          A seguir vou mostrar algumas funcionalidades dos logs que não existem nos prints e como é uma ferramenta poderosa

          No desenvolvimento web atual costumamos usar plataformas de computação em nuvem como a do Google (GCP) ou da Amazon (AWS)

          Explicar o que são aqui

          https://github.com/marp-team/awesome-marp?tab=readme-ov-file#themes +

          * Aplicações que ficam o tempo inteiro de pé (em loop infinito, digamos assim) rodando em um servidor recebendo requisições. +* Não sei como seriam usados logs em outros contextos se outra hora alguém viesse me falar +* Vou passar por cima de alguns conceitos aqui, visto que é uma palestra informativa e pra deixar gostinho de quero mais

          A seguir vou mostrar algumas funcionalidades dos logs que não existem nos prints e como é uma ferramenta poderosa

          No desenvolvimento web atual costumamos usar plataformas de computação em nuvem como a do Google (GCP) ou da Amazon (AWS)

          https://github.com/marp-team/awesome-marp?tab=readme-ov-file#themes https://github.com/dunossauro/fastapi-do-zero/tree/main/slides @@ -663,22 +680,5 @@

          Dúvidas?

          https://stackoverflow.com/questions/69154809/how-to-align-image-below-text-header-in-marp-or-marpit -https://ayharano.github.io/pyse2024/#/ - -# Boas práticas em python (10min) - -1. Para que cada nível de log é recomendado? -2. É legal adicionar um nível de log mais baixo (tipo DEBUG) quando estiver testando -3. E em produção ser INFO pra cima -4. Colocar apenas o necessário na mensagem e o resto deixar pro json -5. Recomendações de segurança do que logar e o que não. Tirar informações sensíveis -6. O que gravar no log? - 6.1 **Data/hora (timestamp), nome do arquivo que gerou o log**![alt text](<carbon (1).png>) - 6.2 **Nome da função, Caminho de um arquivo, linha do código que gerou o log** - 6.3 **Mensagens padronizadas (sucesso/falha de execução)** - 6.4 **Informações úteis para usuários/desenvolvedores** - -* Quando criamos essas aplicacoes e rodamos localmente na nossa máquina da pra debugar (colocar uns print na hora e testar pra ver o que tá rolando), mas em um servidor n da pra mexer no código que tá rodando de forma tão simples e rápida e dps tirar ou iniciar um debugger. -* Com logs da pra ter uma visão constante e em "níveis" de criticidade como informativos, de avisos ou de erros no nosso sistema. -* Em resumo logs vão ajudar em dois pontos: ajudar um desenvolvedor a ver o que tá rolando no sistema sem precisar modificar o código e com isso ver onde tá algum erro e corrigir e a outra é colocar alertas tipo "se der algum log crítico me avisa no whats" algo assim.

          \ No newline at end of file diff --git a/abaixo-aos-prints-ode-aos-logs/slides.pdf b/abaixo-aos-prints-ode-aos-logs/slides.pdf index 4a69ee8..38744a8 100644 Binary files a/abaixo-aos-prints-ode-aos-logs/slides.pdf and b/abaixo-aos-prints-ode-aos-logs/slides.pdf differ