<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://teckyianlim.me/feed.xml" rel="self" type="application/atom+xml"/><link href="https://teckyianlim.me/" rel="alternate" type="text/html" hreflang="en"/><updated>2026-01-30T09:25:21+00:00</updated><id>https://teckyianlim.me/feed.xml</id><title type="html">blank</title><subtitle></subtitle><entry><title type="html">A post testing the features of al-folio</title><link href="https://teckyianlim.me/blog/2023/test/" rel="alternate" type="text/html" title="A post testing the features of al-folio"/><published>2023-08-01T03:59:00+00:00</published><updated>2023-08-01T03:59:00+00:00</updated><id>https://teckyianlim.me/blog/2023/test</id><content type="html" xml:base="https://teckyianlim.me/blog/2023/test/"><![CDATA[<p>This posts is just me testing out some features that I can add to future blog posts.</p> <h2 id="simple-stuff">Simple stuff</h2> <h4 id="lists">lists</h4> <ul> <li>item 1</li> <li>item 2</li> </ul> <h4 id="numbered-lists">numbered lists</h4> <ol> <li>corgi</li> <li>shibainu</li> </ol> <h4 id="code">code</h4> <p>Syntax highlighting for code blocks for different languages</p> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span><span class="cp">
</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="o">*</span> <span class="n">argv</span><span class="p">[]){</span>
  
  <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">name</span><span class="p">;</span>

  <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"What's your name? "</span><span class="p">;</span>
  <span class="n">std</span><span class="o">::</span><span class="n">cin</span> <span class="o">&gt;&gt;</span> <span class="n">name</span><span class="p">;</span>
  <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"Hi, "</span> <span class="o">&lt;&lt;</span> <span class="n">name</span> <span class="o">&lt;&lt;</span> <span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span>

  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
  <span class="p">}</span>
</code></pre></div></div> <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">sys</span>

<span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">argv</span><span class="p">):</span>
  <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">Hello</span><span class="sh">"</span><span class="p">)</span>

<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="sh">'</span><span class="s">__main__</span><span class="sh">'</span><span class="p">:</span>
  <span class="nf">main</span><span class="p">(</span><span class="n">sys</span><span class="p">.</span><span class="n">argv</span><span class="p">)</span>
</code></pre></div></div> <h2 id="math">math</h2> <p>Math display and support uses <a href="https://docs.mathjax.org/en/v3.2-latest/index.html">MathJax3</a>.</p> <p>\begin{aligned} \nabla \cdot \mathbf{E} &amp;= \frac {\rho} {\varepsilon_0} \newline \nabla \cdot \mathbf{B} &amp;= 0 \newline \nabla \times \mathbf{E} &amp;= - \frac{\partial\mathbf{B}}{\partial{t}} \newline \nabla \times \mathbf{B} &amp;= \mu_0\left(\mathbf{J} + \varepsilon_0 \frac{\partial \mathbf{E}} {\partial t} \right) \label{eq:maxwell} \end{aligned}</p> <p>MathJax will automatically number equations:</p> <p>\begin{equation} \label{eq:cauchy-schwarz} \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \end{equation}</p> <p>We can also refer to \eqref{eq:cauchy-schwarz} in text.</p> <h2 id="figures-and-images">figures and images</h2> <h4 id="simple-embed">simple embed</h4> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/sdxl_1-0_corgi-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/sdxl_1-0_corgi-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/sdxl_1-0_corgi-1400.webp"/> <img src="/assets/img/sdxl_1-0_corgi.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> <h4 id="zoomable">zoomable</h4> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/sdxl_1-0_chase-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/sdxl_1-0_chase-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/sdxl_1-0_chase-1400.webp"/> <img src="/assets/img/sdxl_1-0_chase.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" data-zoomable="" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> <h4 id="mermaid-diagrams">mermaid diagrams</h4> <div class="jekyll-diagrams diagrams mermaid"> <svg id="mermaid-1769765122522" width="100%" xmlns="http://www.w3.org/2000/svg" height="100%" style="max-width:450px;" viewBox="-50 -10 450 231"><style>#mermaid-1769765122522 .label{font-family:trebuchet ms,verdana,arial;color:#333}#mermaid-1769765122522 .node circle,#mermaid-1769765122522 .node ellipse,#mermaid-1769765122522 .node polygon,#mermaid-1769765122522 .node rect{fill:#ececff;stroke:#9370db;stroke-width:1px}#mermaid-1769765122522 .node.clickable{cursor:pointer}#mermaid-1769765122522 .arrowheadPath{fill:#333}#mermaid-1769765122522 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-1769765122522 .edgeLabel{background-color:#e8e8e8}#mermaid-1769765122522 .cluster rect{fill:#ffffde!important;stroke:#aa3!important;stroke-width:1px!important}#mermaid-1769765122522 .cluster text{fill:#333}#mermaid-1769765122522 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-1769765122522 .actor{stroke:#ccf;fill:#ececff}#mermaid-1769765122522 text.actor{fill:#000;stroke:none}#mermaid-1769765122522 .actor-line{stroke:grey}#mermaid-1769765122522 .messageLine0{marker-end:"url(#arrowhead)"}#mermaid-1769765122522 .messageLine0,#mermaid-1769765122522 .messageLine1{stroke-width:1.5;stroke-dasharray:"2 2";stroke:#333}#mermaid-1769765122522 #arrowhead{fill:#333}#mermaid-1769765122522 #crosshead path{fill:#333!important;stroke:#333!important}#mermaid-1769765122522 .messageText{fill:#333;stroke:none}#mermaid-1769765122522 .labelBox{stroke:#ccf;fill:#ececff}#mermaid-1769765122522 .labelText,#mermaid-1769765122522 .loopText{fill:#000;stroke:none}#mermaid-1769765122522 .loopLine{stroke-width:2;stroke-dasharray:"2 2";marker-end:"url(#arrowhead)";stroke:#ccf}#mermaid-1769765122522 .note{stroke:#aa3;fill:#fff5ad}#mermaid-1769765122522 .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-size:14px}#mermaid-1769765122522 .section{stroke:none;opacity:.2}#mermaid-1769765122522 .section0{fill:rgba(102,102,255,.49)}#mermaid-1769765122522 .section2{fill:#fff400}#mermaid-1769765122522 .section1,#mermaid-1769765122522 .section3{fill:#fff;opacity:.2}#mermaid-1769765122522 .sectionTitle0,#mermaid-1769765122522 .sectionTitle1,#mermaid-1769765122522 .sectionTitle2,#mermaid-1769765122522 .sectionTitle3{fill:#333}#mermaid-1769765122522 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px}#mermaid-1769765122522 .grid .tick{stroke:#d3d3d3;opacity:.3;shape-rendering:crispEdges}#mermaid-1769765122522 .grid path{stroke-width:0}#mermaid-1769765122522 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-1769765122522 .task{stroke-width:2}#mermaid-1769765122522 .taskText{text-anchor:middle;font-size:11px}#mermaid-1769765122522 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px}#mermaid-1769765122522 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-1769765122522 .taskText0,#mermaid-1769765122522 .taskText1,#mermaid-1769765122522 .taskText2,#mermaid-1769765122522 .taskText3{fill:#fff}#mermaid-1769765122522 .task0,#mermaid-1769765122522 .task1,#mermaid-1769765122522 .task2,#mermaid-1769765122522 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-1769765122522 .taskTextOutside0,#mermaid-1769765122522 .taskTextOutside1,#mermaid-1769765122522 .taskTextOutside2,#mermaid-1769765122522 .taskTextOutside3{fill:#000}#mermaid-1769765122522 .active0,#mermaid-1769765122522 .active1,#mermaid-1769765122522 .active2,#mermaid-1769765122522 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-1769765122522 .activeText0,#mermaid-1769765122522 .activeText1,#mermaid-1769765122522 .activeText2,#mermaid-1769765122522 .activeText3{fill:#000!important}#mermaid-1769765122522 .done0,#mermaid-1769765122522 .done1,#mermaid-1769765122522 .done2,#mermaid-1769765122522 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-1769765122522 .doneText0,#mermaid-1769765122522 .doneText1,#mermaid-1769765122522 .doneText2,#mermaid-1769765122522 .doneText3{fill:#000!important}#mermaid-1769765122522 .crit0,#mermaid-1769765122522 .crit1,#mermaid-1769765122522 .crit2,#mermaid-1769765122522 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-1769765122522 .activeCrit0,#mermaid-1769765122522 .activeCrit1,#mermaid-1769765122522 .activeCrit2,#mermaid-1769765122522 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-1769765122522 .doneCrit0,#mermaid-1769765122522 .doneCrit1,#mermaid-1769765122522 .doneCrit2,#mermaid-1769765122522 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-1769765122522 .activeCritText0,#mermaid-1769765122522 .activeCritText1,#mermaid-1769765122522 .activeCritText2,#mermaid-1769765122522 .activeCritText3,#mermaid-1769765122522 .doneCritText0,#mermaid-1769765122522 .doneCritText1,#mermaid-1769765122522 .doneCritText2,#mermaid-1769765122522 .doneCritText3{fill:#000!important}#mermaid-1769765122522 .titleText{text-anchor:middle;font-size:18px;fill:#000}
#mermaid-1769765122522 g.classGroup text{fill:#9370db;stroke:none;font-family:trebuchet ms,verdana,arial;font-size:10px}#mermaid-1769765122522 g.classGroup rect{fill:#ececff;stroke:#9370db}#mermaid-1769765122522 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-1769765122522 .classLabel .box{stroke:none;stroke-width:0;fill:#ececff;opacity:.5}#mermaid-1769765122522 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-1769765122522 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-1769765122522 #compositionEnd,#mermaid-1769765122522 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-1769765122522 #aggregationEnd,#mermaid-1769765122522 #aggregationStart{fill:#ececff;stroke:#9370db;stroke-width:1}#mermaid-1769765122522 #dependencyEnd,#mermaid-1769765122522 #dependencyStart,#mermaid-1769765122522 #extensionEnd,#mermaid-1769765122522 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-1769765122522 .branch-label,#mermaid-1769765122522 .commit-id,#mermaid-1769765122522 .commit-msg{fill:#d3d3d3;color:#d3d3d3}</style><style>#mermaid-1769765122522{color:#000;font:normal normal 400 normal 16px / normal "Times New Roman"}</style><g></g><g><line id="actor0" x1="75" y1="5" x2="75" y2="220" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="0" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="75" dy="0">John</tspan></text></g><g><line id="actor1" x1="275" y1="5" x2="275" y2="220" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="200" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="275" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="275" dy="0">Alice</tspan></text></g><defs><marker id="arrowhead" refX="5" refY="2" markerWidth="6" markerHeight="4" orient="auto"><path d="M 0,0 V 4 L6,2 Z"></path></marker></defs><defs><marker id="crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="16" refY="4"><path fill="black" stroke="#000000" stroke-width="1px" d="M 9,2 V 6 L16,4 Z" style="stroke-dasharray: 0, 0;"></path><path fill="none" stroke="#000000" stroke-width="1px" d="M 0,1 L 6,7 M 6,1 L 0,7" style="stroke-dasharray: 0, 0;"></path></marker></defs><g><text x="175" y="93" class="messageText" style="text-anchor: middle;">Hello John, how are you?</text><line x1="275" y1="100" x2="75" y2="100" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="175" y="128" class="messageText" style="text-anchor: middle;">Great!</text><line x1="75" y1="135" x2="275" y2="135" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><rect x="0" y="155" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="187.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="75" dy="0">John</tspan></text></g><g><rect x="200" y="155" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="275" y="187.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="275" dy="0">Alice</tspan></text></g></svg> </div>]]></content><author><name></name></author><category term="experimental-posts"/><category term="code"/><summary type="html"><![CDATA[also a reference for myself in the future]]></summary></entry><entry><title type="html">Building an AI security camera with a web UI in 100 lines of code</title><link href="https://teckyianlim.me/blog/2021/building-an-ai-security-camera-with-a-web-ui-in-100-lines-of-code/" rel="alternate" type="text/html" title="Building an AI security camera with a web UI in 100 lines of code"/><published>2021-09-19T10:45:30+00:00</published><updated>2021-09-19T10:45:30+00:00</updated><id>https://teckyianlim.me/blog/2021/building-an-ai-security-camera-with-a-web-ui-in-100-lines-of-code</id><content type="html" xml:base="https://teckyianlim.me/blog/2021/building-an-ai-security-camera-with-a-web-ui-in-100-lines-of-code/"><![CDATA[]]></content><author><name></name></author></entry></feed>