<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Csp on Aayush Bajaj's Augmenting Infrastructure</title><link>https://abaj.ai/tags/csp/</link><description>Recent content in Csp on Aayush Bajaj's Augmenting Infrastructure</description><generator>Hugo</generator><language>en</language><copyright>© 2026 Aayush Bajaj</copyright><lastBuildDate>Fri, 10 Jul 2026 08:20:25 +1000</lastBuildDate><atom:link href="https://abaj.ai/tags/csp/index.xml" rel="self" type="application/rss+xml"/><item><title>Hashiwokakero (Bridges) Solver</title><link>https://abaj.ai/wiki/ai/csp/hashiwokakero/</link><pubDate>Fri, 10 Jul 2026 08:09:53 +1000</pubDate><guid>https://abaj.ai/wiki/ai/csp/hashiwokakero/</guid><description>&lt;p>hashiwokakero (&amp;ldquo;build bridges&amp;rdquo;, nikoli) hands you a grid of numbered islands and asks you to join them with bridges until every number is spent. it is the friendliest possible introduction to constraint satisfaction: the constraints are few and visual, propagation alone solves most human-published puzzles, and when it doesn&amp;rsquo;t, you get to write a backtracking search. this page documents my solver at &lt;code>code/private/hashi/&lt;/code> — a go rewrite of a uni assignment originally in c — including the debugging session that writing this page forced on it.&lt;span class="margin-note" data-note="the repo&amp;#39;s own README opens with a life lesson: &amp;#39;whenever you port code, make sure it is correct before translating otherwise you will introduce a suicidal amount of bugs.&amp;#39; foreshadowing.">
 &lt;span class="margin-note-indicator">𐃏&lt;/span>
&lt;/span>
&lt;/p></description></item><item><title>Sudoku</title><link>https://abaj.ai/wiki/ai/csp/sudoku/</link><pubDate>Fri, 10 Jul 2026 07:43:56 +1000</pubDate><guid>https://abaj.ai/wiki/ai/csp/sudoku/</guid><description>&lt;p>sudoku is the drosophila of constraint satisfaction: small enough to hold in your head, rich enough to demonstrate every solving paradigm that matters. this page works through four of them against my actual code — a backtracking solver with \(O(1)\) constraint sets (&lt;code>arcade/references/sudoku/solver.py&lt;/code>), a dart port that also &lt;em>generates&lt;/em> puzzles (arcade-mobile), an integer-programming formulation solved for real with scipy, and the exact-cover view that leads to knuth&amp;rsquo;s algorithm x. every timing below is a real run on this machine.&lt;/p></description></item><item><title>Concurrency</title><link>https://abaj.ai/wiki/se/implementation/concurrency/</link><pubDate>Thu, 09 Jul 2026 21:02:56 +1000</pubDate><guid>https://abaj.ai/wiki/se/implementation/concurrency/</guid><description>&lt;p>&lt;strong>concurrency&lt;/strong> is structure: many logical tasks in flight, interleaved on however many cpus you have (possibly one). &lt;strong>parallelism&lt;/strong> is hardware: tasks literally executing at the same instant. a single-core machine juggling 400 socket connections is concurrent, not parallel; a gpu multiplying matrices is parallel, barely concurrent. you &lt;em>design&lt;/em> concurrency; you &lt;em>buy&lt;/em> parallelism (Tanenbaum, Andrew S., 2008).&lt;/p>
&lt;h2 id="threads-and-shared-memory">threads and shared memory&lt;a href="#threads-and-shared-memory" class="post-heading__anchor" aria-hidden="true">#&lt;/a>
&lt;/h2>
&lt;p>a thread is an independent stream of execution inside one address space: own stack and registers, shared everything else. the sharing is the point — and the disease.&lt;/p></description></item></channel></rss>