<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Development on Latacora</title><link>https://www.latacora.com/categories/development/</link><description>Recent content in Development on Latacora</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 10 Nov 2025 10:00:00 -0500</lastBuildDate><atom:link href="https://www.latacora.com/categories/development/index.xml" rel="self" type="application/rss+xml"/><item><title>Writing MCP servers in Clojure with Ring and Malli</title><link>https://www.latacora.com/blog/2025/11/10/mcp-sdk/</link><pubDate>Mon, 10 Nov 2025 10:00:00 -0500</pubDate><guid>https://www.latacora.com/blog/2025/11/10/mcp-sdk/</guid><description>&lt;h2 id="introduction" class="heading-with-anchor"&gt;
&lt;a href="#introduction" class="heading-anchor-link" aria-label="Link to Introduction"&gt;
Introduction
&lt;span class="heading-anchor-icon" aria-hidden="true"&gt;#&lt;/span&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Large language models, agents, and
&lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro" target="_blank" rel="noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt;
are impossible to escape in today&amp;rsquo;s tech climate. At Latacora, we take a
thoughtful and pragmatic approach towards new technologies like these. Are they
going to solve all the world&amp;rsquo;s problems? &lt;em&gt;No&lt;/em&gt;. Is it important that we
understand them and be able to build software that integrates into emerging
ecosystems? &lt;em&gt;Yes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Internally we&amp;rsquo;ve built a MCP server to query our Datomic databases using
natural language, but now we&amp;rsquo;re open sourcing the underlying Clojure library so
others can easily build robust MCP servers for the emerging LLM agent ecosystem
too.&lt;/p&gt;</description></item><item><title>Loud subshells</title><link>https://www.latacora.com/blog/2018/06/21/loud-subshells/</link><pubDate>Thu, 21 Jun 2018 12:21:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/06/21/loud-subshells/</guid><description>&lt;p&gt;Default shells usually end in &lt;code&gt;$&lt;/code&gt;. Unless you’re root and it’s &lt;code&gt;#&lt;/code&gt;. That
tradition has been around forever: people recognized the need to highlight
you’re not just some random shmoe.&lt;/p&gt;
&lt;p&gt;These days we have lots of snazzy shell magic. You might still su, but you’re
more likely to sudo. We still temporarily assume extra privileges. If you have
access to more than one set of systems, like production and staging, you
probably have ways of putting on a particular hat. Some combination of setting
an environment variable, adding a key to ssh-agent, or assuming an AWS role
with &lt;a href="https://github.com/99designs/aws-vault" target="_blank" rel="noopener noreferrer"&gt;aws-vault&lt;/a&gt;. You know, so you
don&amp;rsquo;t accidentally blow away prod.&lt;/p&gt;</description></item><item><title>Cryptographic right answers</title><link>https://www.latacora.com/blog/cryptographic-right-answers/</link><pubDate>Tue, 03 Apr 2018 15:25:00 -0400</pubDate><guid>https://www.latacora.com/blog/cryptographic-right-answers/</guid><description>&lt;p&gt;We’re less interested in empowering developers and a lot more pessimistic about
the prospects of getting this stuff right.&lt;/p&gt;
&lt;p&gt;There are, in the literature and in the most sophisticated modern systems,
“better” answers for many of these items. If you’re building for low-footprint
embedded systems, you can use STROBE and a sound, modern, authenticated
encryption stack entirely out of a single SHA-3-like sponge constructions. You
can use NOISE to build a secure transport protocol with its own AKE. Speaking
of AKEs, there are, like, 30 different password AKEs you could choose from.&lt;/p&gt;</description></item></channel></rss>