<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://3-ark.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://3-ark.github.io/" rel="alternate" type="text/html" /><updated>2026-11-10T13:05:59+00:00</updated><id>https://3-ark.github.io/feed.xml</id><title type="html">Product Wiki &amp;amp; Developer Hub</title><subtitle>Personal knowledge management, product documentation, and engineering updates.</subtitle><entry><title type="html">Introducing N-Gram Cipher: Reversible Natural English Steganography</title><link href="https://3-ark.github.io/blog/2026/03/04/introducing-ngram-cipher/" rel="alternate" type="text/html" title="Introducing N-Gram Cipher: Reversible Natural English Steganography" /><published>2026-03-04T12:00:00+00:00</published><updated>2026-03-04T12:00:00+00:00</updated><id>https://3-ark.github.io/blog/2026/03/04/introducing-ngram-cipher</id><content type="html" xml:base="https://3-ark.github.io/blog/2026/03/04/introducing-ngram-cipher/"><![CDATA[<p>We are excited to introduce <a href="https://github.com/3-ark/ngram-cipher"><strong><code class="language-plaintext highlighter-rouge">3-ark/ngram-cipher</code></strong></a>—a modern cryptographic steganography engine for JavaScript and TypeScript!</p>

<p><code class="language-plaintext highlighter-rouge">ngram-cipher</code> transforms encrypted payloads into natural-sounding, syntactically coherent English prose (journalistic reports) or poetic verses that are <strong>100% losslessly reversible</strong>.</p>

<hr />

<h2 id="why-n-gram-steganography">Why N-Gram Steganography?</h2>

<p>Traditional steganography conceals data in image pixels, audio waveforms, or whitespace formatting. However, when communicating across text-only messaging channels, email, or social media platforms, non-text files are often heavily re-encoded, stripped, or flagged by security scanners.</p>

<p><code class="language-plaintext highlighter-rouge">ngram-cipher</code> solves this by transforming ciphertext directly into realistic natural language text:</p>
<ul>
  <li><strong>AES-256-GCM Authenticated Encryption</strong>: Strong symmetric security with PBKDF2 key derivation (100,000 SHA-256 iterations).</li>
  <li><strong>Statistical Language Models</strong>: Uses dynamic N-gram statistical scoring from Google Books datasets to ensure word continuations follow natural syntactic and semantic distributions.</li>
  <li><strong>Grammar &amp; Variety Rules</strong>: Generates varied sentence structures with appositives, clauses, and reporting verbs, while actively preventing structural repetition across consecutive sentences.</li>
  <li><strong>100% Exact Recovery</strong>: Employs power-of-two slot allocation and CRC32 verification to ensure bit-exact decryption every time.</li>
</ul>

<hr />

<h2 id="interactive-browser-demo">Interactive Browser Demo</h2>

<p>You can try the cipher directly in your browser on our new documentation page:</p>

<p>👉 <strong><a href="/docs/ngram-cipher/">Try the N-Gram Cipher Interactive Demo</a></strong></p>

<div class="language-typescript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">import</span> <span class="p">{</span> <span class="nx">encode</span><span class="p">,</span> <span class="nx">decode</span> <span class="p">}</span> <span class="k">from</span> <span class="dl">"</span><span class="s2">ngram-cipher</span><span class="dl">"</span><span class="p">;</span>

<span class="c1">// Encrypt &amp; hide in news prose</span>
<span class="kd">const</span> <span class="nx">carrierText</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">encode</span><span class="p">(</span><span class="dl">"</span><span class="s2">Top secret deployment instructions</span><span class="dl">"</span><span class="p">,</span> <span class="dl">"</span><span class="s2">ArkPassword123</span><span class="dl">"</span><span class="p">);</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">carrierText</span><span class="p">);</span>
<span class="cm">/*
"A regional leader approved the measure. The executive announced the directive in Paris;
Local investment remained 14.5% in Madrid..."
*/</span>

<span class="c1">// Reversibly extract &amp; decrypt</span>
<span class="kd">const</span> <span class="nx">decrypted</span> <span class="o">=</span> <span class="k">await</span> <span class="nx">decode</span><span class="p">(</span><span class="nx">carrierText</span><span class="p">,</span> <span class="dl">"</span><span class="s2">ArkPassword123</span><span class="dl">"</span><span class="p">);</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">decrypted</span><span class="p">);</span> <span class="c1">// "Top secret deployment instructions"</span>
</code></pre></div></div>

<p>Check out the code and documentation on <a href="https://github.com/3-ark/ngram-cipher">GitHub</a>.</p>]]></content><author><name></name></author><category term="cryptography" /><category term="release" /><category term="steganography" /><category term="cryptography" /><category term="aes-gcm" /><category term="n-gram" /><category term="typescript" /><category term="steganography" /><category term="open-source" /><summary type="html"><![CDATA[We are excited to introduce 3-ark/ngram-cipher—a modern cryptographic steganography engine for JavaScript and TypeScript!]]></summary></entry><entry><title type="html">Introducing InsightPage Style: Obsidian Plugin for Rich Visualizations &amp;amp; Interactive Notes</title><link href="https://3-ark.github.io/blog/2026/03/03/introducing-insightpage-style-obsidian-plugin/" rel="alternate" type="text/html" title="Introducing InsightPage Style: Obsidian Plugin for Rich Visualizations &amp;amp; Interactive Notes" /><published>2026-03-03T12:00:00+00:00</published><updated>2026-03-03T12:00:00+00:00</updated><id>https://3-ark.github.io/blog/2026/03/03/introducing-insightpage-style-obsidian-plugin</id><content type="html" xml:base="https://3-ark.github.io/blog/2026/03/03/introducing-insightpage-style-obsidian-plugin/"><![CDATA[<p>We are thrilled to introduce the official Obsidian community plugin: <a href="https://github.com/3-ark/insightpage-style"><strong>InsightPage Style (<code class="language-plaintext highlighter-rouge">3-ark/insightpage-style</code>)</strong></a>!</p>

<p>InsightPage Style brings the exact same visual components and interactive diagrams powering our web assistant and note vault directly into your local <strong>Obsidian</strong> desktop experience.</p>

<hr />

<h2 id="what-is-insightpage-style">What is InsightPage Style?</h2>

<p>While standard Markdown is great for structured text, complex technical notes often require rich visual aids—interactive timelines, responsive charts, geographic maps, musical notation, and discrete inline comments.</p>

<p><a href="https://github.com/3-ark/insightpage-style">InsightPage Style</a> seamlessly integrates these capabilities into Obsidian using familiar Markdown code blocks and custom syntax.</p>

<hr />

<h2 id="key-features--highlights">Key Features &amp; Highlights</h2>

<h3 id="1-observable-plot--yaml-charts-plot-chart">1. Observable Plot &amp; YAML Charts (<code class="language-plaintext highlighter-rouge">plot</code>, <code class="language-plaintext highlighter-rouge">chart</code>)</h3>
<p>Render declarative data visualizations using <a href="https://observablehq.com/@observablehq/plot">Observable Plot</a> and D3, or write concise YAML configurations powered by Chart.js syntax:</p>

<ul>
  <li><strong>Chart.js Types</strong>: Bar, Line, Pie, Doughnut, Radar, and Sankey diagrams.</li>
  <li><strong>Observable Plot</strong>: Full JavaScript execution context with access to <code class="language-plaintext highlighter-rouge">Plot</code>, <code class="language-plaintext highlighter-rouge">d3</code>, and vault file loading via <code class="language-plaintext highlighter-rouge">fetch()</code>.</li>
</ul>

<pre><code class="language-chart">type: bar
labels: ["Q1", "Q2", "Q3", "Q4"]
series:
  - title: "Productivity Index"
    data: [65, 82, 90, 115]
width: 500px
</code></pre>

<h3 id="2-zoomable-event-timelines-timeline">2. Zoomable Event Timelines (<code class="language-plaintext highlighter-rouge">timeline</code>)</h3>
<p>Plot milestones, multi-month development phases, and ongoing projects with interactive pan and zoom controls:</p>
<ul>
  <li>Supports JSON, YAML, or JS object literals.</li>
  <li>Category filtering toggles and dynamic “Today” indicator line.</li>
  <li>SVG export and copy actions built-in.</li>
</ul>

<h3 id="3-interactive-leaflet-maps-map-leaflet">3. Interactive Leaflet Maps (<code class="language-plaintext highlighter-rouge">map</code>, <code class="language-plaintext highlighter-rouge">leaflet</code>)</h3>
<p>Embed interactive maps directly into your notes:</p>
<ul>
  <li>Customizable markers, popups, and radius circles.</li>
  <li>Polylines and polygons for routes and zones.</li>
  <li>Support for custom tile servers and raw GeoJSON layers.</li>
</ul>

<h3 id="4-abc-sheet-music-notation--audio-player-abc-abcjs">4. ABC Sheet Music Notation &amp; Audio Player (<code class="language-plaintext highlighter-rouge">abc</code>, <code class="language-plaintext highlighter-rouge">abcjs</code>)</h3>
<p>Write sheet music with standard ABC notation:</p>
<ul>
  <li>Built-in interactive synthesizer audio playback (Play/Pause/Seek).</li>
  <li>Real-time visual note highlighting synchronized with audio playback.</li>
  <li>MIDI file export (<code class="language-plaintext highlighter-rouge">.midi</code>) and source copy controls.</li>
</ul>

<h3 id="5-inline-popover-comments-cmt">5. Inline Popover Comments (<code class="language-plaintext highlighter-rouge">::cmt[...]</code>)</h3>
<p>Add compact popover comments directly inside paragraph text:</p>
<ul>
  <li>Compact emoji badge trigger in preview mode.</li>
  <li>Hover or click to reveal formatted callout notes.</li>
  <li>Clean print and PDF export styling.</li>
</ul>

<hr />

<h2 id="open-source--community">Open Source &amp; Community</h2>

<p>The plugin is 100% open-source under the AGPL-3.0 license.</p>

<ul>
  <li><strong>GitHub Repository</strong>: <a href="https://github.com/3-ark/insightpage-style">https://github.com/3-ark/insightpage-style</a></li>
  <li><strong>Interactive Showcase</strong>: Explore live web demos on our <a href="/Rendering%20Showcase/">Rendering Showcase</a>.</li>
  <li><strong>Sample Visualizations</strong>: Check out <a href="/Example%20Chart/">Example Chart</a>, <a href="/Example%20Map/">Example Map</a>, and <a href="/Example%20Timeline/">Example Timeline</a>.</li>
</ul>

<p>Check out the repository on GitHub, try it out in your Obsidian vault, and let us know what you think!</p>]]></content><author><name></name></author><category term="obsidian" /><category term="release" /><category term="plugins" /><category term="obsidian" /><category term="charts" /><category term="maps" /><category term="timelines" /><category term="abcjs" /><category term="markdown" /><category term="open-source" /><summary type="html"><![CDATA[We are thrilled to introduce the official Obsidian community plugin: InsightPage Style (3-ark/insightpage-style)!]]></summary></entry><entry><title type="html">InsightPage v1.0.5 Release: Hybrid RAG Search &amp;amp; Local LLM Support</title><link href="https://3-ark.github.io/blog/2026/03/02/insightpage-v1-0-5-release/" rel="alternate" type="text/html" title="InsightPage v1.0.5 Release: Hybrid RAG Search &amp;amp; Local LLM Support" /><published>2026-03-02T14:30:00+00:00</published><updated>2026-03-02T14:30:00+00:00</updated><id>https://3-ark.github.io/blog/2026/03/02/insightpage-v1-0-5-release</id><content type="html" xml:base="https://3-ark.github.io/blog/2026/03/02/insightpage-v1-0-5-release/"><![CDATA[<p>We are excited to announce the release of <strong>InsightPage v1.0.5</strong>!</p>

<p>This milestone update brings major improvements to search accuracy, local model integration, and note synchronization.</p>

<h2 id="highlights-of-v105">Highlights of v1.0.5</h2>

<h3 id="1-bm25--semantic-hybrid-rag">1. BM25 + Semantic Hybrid RAG</h3>
<p>By combining keyword matching (BM25) with semantic embeddings and MMR reranking, InsightPage can now locate exact terms and conceptual matches across thousands of saved notes in milliseconds.</p>

<h3 id="2-native-support-for-on-device-models">2. Native Support for On-Device Models</h3>
<p>You can now connect InsightPage to local model runners like Ollama or LM Studio with zero data leaving your machine.</p>

<p>Install InsightPage directly from the <a href="https://chromewebstore.google.com/detail/insightpage/pbeehgjcmoangcnpjnbojdcfmppgbbcc?authuser=0&amp;hl=en">Chrome Web Store</a>.</p>

<p>Read the full documentation in our <a href="/docs/insightpage/getting-started/">InsightPage Docs</a>.</p>]]></content><author><name></name></author><category term="product-release" /><category term="insightpage" /><category term="ai" /><category term="rag" /><category term="release" /><category term="local-first" /><summary type="html"><![CDATA[We are excited to announce the release of InsightPage v1.0.5!]]></summary></entry><entry><title type="html">Welcome to the Product Wiki &amp;amp; Engineering Blog</title><link href="https://3-ark.github.io/blog/2026/03/01/welcome-to-product-wiki/" rel="alternate" type="text/html" title="Welcome to the Product Wiki &amp;amp; Engineering Blog" /><published>2026-03-01T10:00:00+00:00</published><updated>2026-03-01T10:00:00+00:00</updated><id>https://3-ark.github.io/blog/2026/03/01/welcome-to-product-wiki</id><content type="html" xml:base="https://3-ark.github.io/blog/2026/03/01/welcome-to-product-wiki/"><![CDATA[<p>Welcome to our combined product wiki and blog repository!</p>

<p>This site serves two main purposes:</p>
<ol>
  <li><strong>Product Documentation (<code class="language-plaintext highlighter-rouge">/docs/</code>)</strong>: Comprehensive user guides, architecture specifications, and API documentation for our products like <strong>InsightPage Assistant</strong>.</li>
  <li><strong>Product Blog (<code class="language-plaintext highlighter-rouge">/blog/</code>)</strong>: Engineering updates, product announcements, and technical deep dives.</li>
</ol>

<h2 id="how-this-wiki-works">How This Wiki Works</h2>

<p>This wiki is hosted directly on <strong>GitHub Pages</strong> powered by Jekyll. Markdown files placed in <code class="language-plaintext highlighter-rouge">docs/</code> automatically form the documentation tree, while articles placed in <code class="language-plaintext highlighter-rouge">_posts/</code> automatically populate the product blog.</p>

<p>Stay tuned for more updates!</p>]]></content><author><name></name></author><category term="general" /><category term="updates" /><category term="wiki" /><category term="blog" /><category term="product" /><summary type="html"><![CDATA[Welcome to our combined product wiki and blog repository!]]></summary></entry></feed>