1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <link href="./_app/immutable/entry/start.g_0iWlOH.js" rel="modulepreload"> 7 <link href="./_app/immutable/chunks/ChoCI9rI.js" rel="modulepreload"> 8 <link href="./_app/immutable/chunks/C13OYbmF.js" rel="modulepreload"> 9 <link href="./_app/immutable/chunks/BUApaBEI.js" rel="modulepreload"> 10 <link href="./_app/immutable/chunks/l-skqgtG.js" rel="modulepreload"> 11 <link href="./_app/immutable/entry/app.B7aSsGuy.js" rel="modulepreload"> 12 <link href="./_app/immutable/chunks/PPVm8Dsz.js" rel="modulepreload"> 13 <link href="./_app/immutable/chunks/DK5OO_Mq.js" rel="modulepreload"> 14 <link href="./_app/immutable/chunks/Dx9Aq05K.js" rel="modulepreload"> 15 <link href="./_app/immutable/chunks/Dh6VU2Vh.js" rel="modulepreload"> 16 <link href="./_app/immutable/chunks/Dq2F0vMs.js" rel="modulepreload"> 17 <link href="./_app/immutable/chunks/DS2cX3lD.js" rel="modulepreload"> 18 <link href="./_app/immutable/chunks/NH9XF9fq.js" rel="modulepreload"> 19 <link href="./_app/immutable/chunks/mS5FoejI.js" rel="modulepreload"> 20 <link href="./_app/immutable/nodes/0.DkfRyk_Z.js" rel="modulepreload"> 21 <link href="./_app/immutable/chunks/BNS2hzk-.js" rel="modulepreload"> 22 <link href="./_app/immutable/chunks/DyODkPUN.js" rel="modulepreload"> 23 <link href="./_app/immutable/nodes/2.BWrur8sS.js" rel="modulepreload"> 24 <link href="./_app/immutable/chunks/lX5DAAky.js" rel="modulepreload"> 25 <link href="./_app/immutable/chunks/L_t0-rZf.js" rel="modulepreload"> 26 <link href="./_app/immutable/chunks/BUZTOPnh.js" rel="modulepreload"> 27 <!--1uha8ag--><meta name="description" content="NawaMan's Blog â a personal blog by Nawapunth Manusitthipol on software engineering, programming, and technology. Readers can sign in to leave comments."/> <meta property="og:title" content="NawaMan's Blog"/> <meta property="og:type" content="website"/> <meta property="og:description" content="A personal blog by Nawapunth Manusitthipol on software engineering, programming, and technology."/><!----><title>NawaMan's Blog</title> 28 <link href="./_app/immutable/assets/0.D2rMdD2N.css" rel="stylesheet"> 29 <link href="./_app/immutable/assets/CodeBlock.BFT4pIA2.css" rel="stylesheet"> 30 <link href="./_app/immutable/assets/content-th.DJQntuJf.css" rel="stylesheet"> 31 <link href="./_app/immutable/assets/content-th.CYdpnau0.css" rel="stylesheet"> 32 <link href="./_app/immutable/assets/content-th.BfNrxlLE.css" rel="stylesheet"> 33 <link href="./_app/immutable/assets/2.DhlA90bH.css" rel="stylesheet"> 34 </head> 35 <body data-sveltekit-preload-data="hover"> 36 <div style="display: contents"><!--[--><!--[--><!----><nav class="navbar svelte-q971rm"><div class="nav-content svelte-q971rm"><a href="/blog/" class="nav-link svelte-q971rm">BLOG</a> <a href="/projects" class="nav-link svelte-q971rm">PROJECTS</a> <a href="/contact" class="nav-link svelte-q971rm">CONTACT</a></div></nav><!----> <main class="svelte-12qhfyh"><!----><div class="home svelte-1uha8ag"><section class="recent svelte-1uha8ag"><h2 class="svelte-1uha8ag">Recent posts</h2> <ul class="svelte-1uha8ag"><!--[--><li class="svelte-1uha8ag"><a href="/blog/2026-06-18#FourPromises">CodingBooth improves development experience</a> <span class="meta svelte-1uha8ag">2026-06-18 · CodingBooth</span></li><li class="svelte-1uha8ag"><a href="/blog/2026-05-29#WorksOnMyMachine">Ending "It Works on My Machine" with CodingBooth</a> <span class="meta svelte-1uha8ag">2026-05-29 · CodingBooth</span></li><li class="svelte-1uha8ag"><a href="/blog/2026-05-14#CodingBooth">Introducing CodingBooth</a> <span class="meta svelte-1uha8ag">2026-05-14 · CodingBooth</span></li><li class="svelte-1uha8ag"><a href="/blog/2023-01-18#LayoutMode">CSS LayoutMode</a> <span class="meta svelte-1uha8ag">2023-01-18 · WebDev</span></li><!--]--></ul> <a class="btn primary svelte-1uha8ag" href="/blog/2026-06-18#FourPromises">Read the latest post</a></section> <header class="about svelte-1uha8ag"><h1 class="svelte-1uha8ag">NawaMan's Blog</h1> <p class="tagline svelte-1uha8ag">A personal blog by <strong>Nawapunth Manusitthipol</strong> on software engineering, 37 programming, and technology.</p> <h2 class="purpose-heading svelte-1uha8ag">What this application does</h2> <p class="purpose svelte-1uha8ag">NawaMan's Blog is a website that publishes articles and notes about softw
37are development, 38 programming, and technology. Anyone can read every article for free â no account is required.</p> <p class="purpose svelte-1uha8ag">The blog also lets readers leave comments on each post. To post a comment, a reader can 39 optionally sign in with their <strong>Google</strong> or GitHub account (or sign in 40 anonymously). The application requests this Google sign-in only to identify the comment's 41 author by name and profile picture and to moderate and rate-limit comments. It does not use 42 your Google account for any other purpose, and it does not access your Gmail, Drive, Calendar, 43 or contacts. For full details, see our <a href="/privacy">Privacy Policy</a> and <a href="/terms">Terms of Service</a>.</p> <div class="actions svelte-1uha8ag"><a href="/projects">Projects</a> <a href="/contact">Contact</a></div></header></div><!----><!----></main> <footer class="site-footer svelte-12qhfyh"><hr/> <p class="svelte-12qhfyh">© 2017-2026 â <b>Nawa</b>punth <b>Man</b>usitthipol</p> <p class="svelte-12qhfyh"><a href="/privacy">Privacy Policy</a> · <a href="/terms">Terms of Service</a></p></footer><!----><!--]--> <!--[!--><!--]--><!--]--> 44 45
45<script> 46 { 47 __sveltekit_1amtvap = { 48 base: new URL(".", location).pathname.slice(0, -1) 49 }; 50 51 const element = document.currentScript.parentElement; 52 53 Promise.all([ 54 import("./_app/immutable/entry/start.g_0iWlOH.js"), 55 import("./_app/immutable/entry/app.B7aSsGuy.js") 56 ]).then(([kit, app]) => { 57 kit.start(app, element, { 58 node_ids: [0, 2], 59 data: [null,null], 60 form: null, 61 error: null 62 }); 63 }); 64 } 65 </script>
65 66 </div> 67 </body> 68</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.