PageSourceSearch

https://katat.me/

html katat.me collected 2026-10-09 22:08:01 UTC 11,895 bytes, 69 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head>
4<title>posts</title>
5<meta name="viewport" content="width=device-width,initial-scale=1">
6<script async type="module">import mermaid from"https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs"</script>
vendor: 1 bytes, line 6
6
7<script async src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/prism.min.js" integrity="sha512-hpZ5pDCF2bRCweL5WoA0/N1elet1KYL5mx3LP555Eg/0ZguaHawxNvEjF6O3rufAChs16HVNhEc6blF/rZoowQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 1 bytes, line 7
7
8<script async src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/plugins/autoloader/prism-autoloader.min.js" integrity="sha512-sv0slik/5O0JIPdLBCR2A3XDg/1U3WuDEheZfI/DI5n8Yqc3h5kjrnr46FGBNiUAJF7rE4LHKwQ/SoSLRKAxEA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 1 bytes, line 8
8
9<script async src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/lucide.min.js"></script>
vendor: 1 bytes, line 9
9
10<script>window.addEventListener("load",(()=>{document.querySelectorAll(".callout").forEach((e=>{const t=getComputedStyle(e).getPropertyValue("--callout-icon"),l=t&&t.trim().replace(/^lucide-/,"");if(l){const t=e.querySelector(".callout-title");if(t){const e=document.createElement("div"),c=document.createElement("i");e.appendChild(c),c.setAttribute("icon-name",l),e.setAttribute("class","callout-icon"),t.insertBefore(e,t.firstChild)}}})),lucide.createIcons(),Array.from(document.querySelectorAll(".callout.is-collapsible")).forEach((e=>{e.querySelector(".callout-title").addEventListener("click",(t=>{e.classList.contains("is-collapsed")?e.classList.remove("is-collapsed"):e.classList.add("is-collapsed")}))}))}))</script>
vendor: 1 bytes, line 10
10
11<script async src="https://fastly.jsdelivr.net/npm/[email protected]/dist/force-graph.min.js"></script>
vendor: 1 bytes, line 11
11
12<script async src="https://fastly.jsdelivr.net/npm/@alpinejs/[email protected]/dist/cdn.min.js"></script>
vendor: 1 bytes, line 12
12
13<script src="https://fastly.jsdelivr.net/npm/[email protected]/dist/cdn.min.js" async></script>
13
14<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/themes/prism-okaidia.min.css" integrity="sha512-mIs9kKbaw6JZFfSuo+MovjU+Ntggfoj8RwAmJbVXQ5mkAX5LlgETQEweFPI18humSPHymTb5iikEOKWF7I8ncQ==" crossorigin="anonymous" referrerpolicy="no-referrer" async>
15<script src="https://fastly.jsdelivr.net/npm/[email protected]/dist/fetch.umd.min.js" crossorigin="anonymous" referrerpolicy="no-referrer" async></script>
15
16<link href="/styles/digital-garden-base.css" rel="stylesheet">
17<link href="/styles/obsidian-base.css" rel="stylesheet">
18<link href="/styles/_theme.0daa9905.css" rel="stylesheet">
19<link href="/styles/custom-style.css" rel="stylesheet">
20<link rel="icon" href="/favicon.ico" sizes="any">
21<link rel="icon" href="/favicon.svg" type="image/svg+xml">
22<link rel="apple-touch-icon" href="/apple-touch-icon.png">
23<link rel="manifest" href="/manifest.webmanifest">
24<style></style>
25</head>
26<body class="theme-light markdown-preview-view markdown-rendered markdown-preview-section">
27<nav class="navbar">
28<div class="navbar-inner">
29<ul>
30<li><a href="/">blog</a></li>
31<li><a href="/blog/hi">me</a></li>
32</ul>
33</div>
34</nav>
35<main class="content cm-s-obsidian">
36<header>
37<h1></h1>
38<div class="header-meta">
39<div class="header-tags">
40</div>
41</div>
42</header>
43<h3><span><a style="text-decoration:none;color:inherit" href="/blog/thin-website" target="_blank" rel="noopener">Thin Website</a></span></h3><p><span>2024-09-07</span></p><p><span><img src="https://katat.me/img/user/blog/attachments/IMG_8743.jpeg" referrerpolicy="no-referrer"><br>
44This post explores these three key aspects to demonstrate why static websites are an attractive option for writers seeking a long-term, manageable online presence. I will argue why it is better to refer to static websites as 'thin websites' and provide a brief introduction to using Obsidian to publish your writings.</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/wuko/pdf-tips-tricks" target="_blank" rel="noopener">Clear barriers for insights with PDF</a></span></h3><p><span>2023-09-24</span></p><p><span>a simple workaround to get insights from restricted contents</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/wuko/updates-09-10" target="_blank" rel="noopener">Summary with soul, Insight equals value</a></span></h3><p><span>2023-09-10</span></p><p><span>Here are some recent updates on wuko.ai that cover optimizing the default summary for the initial email for a webpage, improving the accuracy of URL parsing in emails, and enhancing ways to share your discovered insights.</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/wuko/0.10" target="_blank" rel="noopener">wuko 0.10</a></span></h3><p><span>2023-04-04</span></p><p><span><img src="https://katat.me/img/user/blog/assets/wuko/0-10/final.png" referrerpolicy="no-referrer"><br>
45This release enhances the user experience by updating the extension icon to reflect processing status for lengthy web page content.</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/wuko-pdf" target="_blank" rel="noopener">Hookup with PDF</a></span></h3><p><span>2023-09-16</span></p><p><span>Discover the dynamic partnership of PDF and GPT in enhancing the learning and reading experience. Learn how tools like wuko.ai are leveraging the strengths of both to transform how we interact with dense and long content, making knowledge acquisition a breeze. Read on to explore the future of learning!</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/intro-email-gpt" target="_blank" rel="noopener">wuko.ai: Evolve your mailbox into an intelligent read-it-later hub</a></span></h3><p><span>2023-06-25</span></p><p><span><img src="https://katat.me/img/user/blog/assets/wuko/00005-2760524022.png" referrerpolicy="no-referrer"><br>
46Elevate your reading experiences with your existing email address. No additional apps needed.</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/wuko/intro" target="_blank" rel="noopener">wuko: talk to the souls behind web pages</a></span></h3><p><span>2023-03-23</span></p><p><span><img src="https://katat.me/img/user/blog/assets/wuko/intro/logo.png" referrerpolicy="no-referrer"><br>
47Introducing wuko.ai, a Chrome extension to ask questions about the content on web pages via ChatGPT</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/email-insight-extension-v1" target="_blank" rel="noopener">Emailing You Insights</a></span></h3><p><span>2023-08-05</span></p><p><span><img src="https://katat.me/img/user/blog/assets/wuko/wuko-extension-v1/at-cross-platform.png" referrerpolicy="no-referrer"><br>
48A simple chrome extension to receive insights of web pages through your email</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/ZK+Regex" target="_blank" rel="noopener">ZK Regex</a></span></h3><p><span>2023-02-19</span></p><p><span><img src="https://katat.me/img/user/blog/assets/tumblr_pep7kan09p1qbgdnxo1_1280.png" referrerpolicy="no-referrer"><br>
49Verifying patterns in ZK from theory to circom circuit</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/Sum+check+-+overview" target="_blank" rel="noopener">Sum Check Protocol - part 1: Overview</a></span></h3><p><span>2022-11-03</span></p><p><span>Overview with a diagram for Sum Check protocol explained by a simple diagram</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/Triangle+counting" target="_blank" rel="noopener">Sum Check Protocol - part 2: Triangle counting</a></span></h3><p><span>2022-11-04</span></p><p><span>Triangle counting and the way towards Sum Check protocol</span></p><h3><span><a style="text-decoration:none;color:inherit" href="/blog/Sum+check+-+benchmarks" target="_blank" rel="noopener">Sum Check Protocol - part 3: Benchmark</a></span></h3><p><span>2022-11-04</span></p><p><span>Implementations and their benchmarks of Sum Check protocol</span></p>
50</main>
51<aside>
52<div class="sidebar">
53<div class="sidebar-container">
54</div>
55</div>
56</aside>
57<style>#tooltip-wrapper{background:var(--background-primary);padding:1em;border-radius:4px;overflow:hidden;position:fixed;width:80%;max-width:400px;height:auto;max-height:300px;font-size:.8em;box-shadow:0 5px 10px rgba(0,0,0,.1);opacity:0;transition:opacity .1s;
57unicode-bidi:plaintext;overflow-y:scroll;z-index:10}#tooltip-wrapper:after{content:"";position:absolute;z-index:1;bottom:0;left:0;pointer-events:none;width:100%;unicode-bidi:plaintext;height:75px}</style>
58<div style="opacity:0;display:none" id="tooltip-wrapper">
59<div id="tooltip-content">
60</div>
61</div>
62<iframe style="display:none;height:0;width:0" id="link-preview-iframe" src="">
63</iframe>
64<script>var opacityTimeout,contentTimeout,transitionDurationMs=100,iframe=document.getElementById("link-preview-iframe"),tooltipWrapper=document.getElementById("tooltip-wrapper"),tooltipContent=document.getElementById("tooltip-content"),linkHistories={};function hideTooltip(){opacityTimeout=setTimeout((function(){tooltipWrapper.style.opacity=0,contentTimeout=setTimeout((function(){tooltipContent.innerHTML="",tooltipWrapper.style.display="none"}),transitionDurationMs+1)}),transitionDurationMs)}function showTooltip(t){var e=t.target,o=e.getClientRects()[e.getClientRects().length-1],i=window.pageYOffset||document.documentElement.scrollTop,n=t.target.getAttribute("href");if(-1===n.indexOf("http")||-1!==n.indexOf(window.location.host)){let t=n.split("#")[0];linkHistories[t]?(tooltipContent.innerHTML=linkHistories[t],tooltipWrapper.style.display="block",setTimeout((function(){if(tooltipWrapper.style.opacity=1,-1!=n.indexOf("#")){let t=n.split("#")[1];const e=tooltipWrapper.querySelector(`[id='${t}']`);e.classList.add("referred"),e.scrollIntoView({behavior:"smooth"},!0)}else tooltipWrapper.scroll(0,0)}),1)):(iframe.src=t,iframe.onload=function(){tooltipContentHtml="",tooltipContentHtml+='<div style="font-weight: bold; unicode-bidi: plaintext;">'+iframe.contentWindow.document.querySelector("h1").innerHTML+"</div>",tooltipContentHtml+=iframe.contentWindow.document.querySelector(".content").innerHTML,tooltipContent.innerHTML=tooltipContentHtml,linkHistories[t]=tooltipContentHtml,tooltipWrapper.style.display="block",tooltipWrapper.scrollTop=0,setTimeout((function(){if(tooltipWrapper.style.opacity=1,-1!=n.indexOf("#")){let t=n.split("#")[1];const e=tooltipWrapper.querySelector(`[id='${t}']`);e.classList.add("referred"),console.log(e),e.scrollIntoView({behavior:"smooth"},!0)}else tooltipWrapper.scroll(0,0)}),1)}),tooltipWrapper.style.left=o.left-tooltipWrapper.offsetWidth/2+o.width/2+"px",window.innerHeight-o.top<tooltipWrapper.offsetHeight?tooltipWrapper.style.top=o.top+i-tooltipWrapper.offsetHeight-10+"px":window.innerHeight-o.top>tooltipWrapper.offsetHeight&&(tooltipWrapper.style.top=o.top+i+35+"px"),o.left+o.width/2<tooltipWrapper.offsetWidth/2?tooltipWrapper.style.left="10px":document.body.clientWidth-o.left-o.width/2<tooltipWrapper.offsetWidth/2&&(tooltipWrapper.style.left=document.body.clientWidth-tooltipWrapper.offsetWidth-20+"px")}}function setupListeners(t){t.addEventListener("mouseleave",(function(t){hideTooltip()})),tooltipWrapper.addEventListener("mouseleave",(function(t){hideTooltip()})),t.addEventListener("mouseenter",(function(t){clearTimeout(opacityTimeout),clearTimeout(contentTimeout),showTooltip(t)})),tooltipWrapper.addEventListener("mouseenter",(function(t){clearTimeout(opacityTimeout),clearTimeout(contentTimeout)}))}window.addEventListener("load",(function(t){document.querySelectorAll(".internal-link").forEach(setupListeners),document.querySelectorAll(".backlink-card a").forEach(setupListeners)}))</script>
vendor: 1 bytes, line 64
64
65<script defer="defer" src="/_vercel/insights/script.js"></script>
vendor: 1 bytes, line 65
65
66<script defer="defer" src="/_vercel/speed-insights/script.js"></script>
vendor: 1 bytes, line 66
66
67<script>lucide.createIcons({attrs:{class:["svg-icon"]}})</script>
67
68</body>
69</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.