<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Production on NoRaincheck</title><link>https://noraincheck.github.io/tags/production/</link><description>Recent content in Production on NoRaincheck</description><generator>Hugo</generator><language>en-US</language><copyright>NoRaincheck</copyright><lastBuildDate>Sat, 01 Mar 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://noraincheck.github.io/tags/production/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting SQL for Feature Transformations as a Standard</title><link>https://noraincheck.github.io/posts/setting-sql-for-feature-transformations-as-a-standard/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid>https://noraincheck.github.io/posts/setting-sql-for-feature-transformations-as-a-standard/</guid><description>&lt;h2 id="setting-sql-for-feature-transformations-as-a-standard"&gt;Setting SQL for Feature Transformations as a Standard&lt;/h2&gt;&#10;&lt;p&gt;&lt;em&gt;March 2025&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;So Spark&amp;rsquo;s &lt;code&gt;SQLTransformer&lt;/code&gt; is probably the first (and only?) documented,&#10;formal, specification for doing SQL transformations specifically for machine&#10;learning preprocessing. I think that is interesting for a variety of reasons,&#10;with the biggest one being opportunities for standardisation, in particular for&#10;real-time flows. Having a well-optimised SQL transformation engine could be&#10;immensely valuation. The reason why this hasn&amp;rsquo;t occured is probably because&#10;industry standard today still relies on Python as the execution engine, however&#10;this because untenable in scenarios where Python is an inappropriate production&#10;programming language choice. At the same time, Spark is typically too expensive&#10;of a dependency to justify low latency workflows. Nevertheless lets quickly look&#10;at the specification and considerations for using the language with an&#10;alternative computation backend.&lt;/p&gt;</description></item><item><title>rqlite - a Production Experiment</title><link>https://noraincheck.github.io/posts/rqlite-a-production-experiment/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://noraincheck.github.io/posts/rqlite-a-production-experiment/</guid><description>&lt;h2 id="rqlite---a-production-experiment"&gt;rqlite - a Production Experiment&lt;/h2&gt;&#10;&lt;p&gt;&lt;em&gt;January 2025&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;rqlite&lt;/code&gt; is a distributed version of sqlite using the raft consensus algorithm.&#10;The great thing about rqlite actually has nothing to do with the underlying&#10;tech, but more to do with broad developer experience and that is the defaults&#10;with the provided&#10;&lt;a href="https://github.com/rqlite/helm-charts/tree/master"&gt;helm charts&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;It just feels like I&amp;rsquo;m the target audience - someone who wants to quickly push&#10;&lt;code&gt;rqlite&lt;/code&gt; to production with the minimal dependencies and gives me enough to&#10;shoot myself in the foot. Compared with &lt;code&gt;postgres&lt;/code&gt; helm charts, &lt;code&gt;rqlite&lt;/code&gt;&#10;presumes that you &lt;em&gt;may&lt;/em&gt; want to just use it as-is, without even a values file.&#10;That is a welcome change, whereas almost anything from the bitnami one expects&#10;you as a developer will make modifications. Something in that model does not&#10;&lt;em&gt;feel&lt;/em&gt; quite right. This friction (although seemingly trivial) converted me to&#10;use &lt;code&gt;rqlite&lt;/code&gt; (the other reason is I was using &lt;code&gt;sqlite&lt;/code&gt; for my tests which meant&#10;I didn&amp;rsquo;t need to worry about changing any code to ensure compatibility between&#10;different sql dialects).&lt;/p&gt;</description></item><item><title>LLMs - in Review (2024)</title><link>https://noraincheck.github.io/posts/llms-in-review-2024/</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0000</pubDate><guid>https://noraincheck.github.io/posts/llms-in-review-2024/</guid><description>&lt;h2 id="llms---in-review-2024"&gt;LLMs - in Review (2024)&lt;/h2&gt;&#10;&lt;p&gt;&lt;em&gt;December 2024&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;2024 was the first year where I took LLMs seriously. I successfully hosted a&#10;Llama 70b parameter model in production which was used as with&#10;&lt;a href="https://www.continue.dev/"&gt;continue.dev&lt;/a&gt; for a self-hosted co-pilot&#10;replacement, along with a code autocomplete like&#10;&lt;a href="https://qwenlm.github.io/blog/qwen2.5-coder-family/"&gt;Qwen Coder&lt;/a&gt; or&#10;&lt;a href="https://deepseekcoder.github.io/"&gt;Deepseek&lt;/a&gt;, these were fine replacements and&#10;surprisingly robust.&#10;&lt;a href="https://huggingface.co/docs/text-generation-inference/index"&gt;Huggingface&amp;rsquo;s TGI&lt;/a&gt;&#10;along with &lt;a href="https://github.com/triton-inference-server/server"&gt;Triton Server&lt;/a&gt;&#10;were the main heroes for this project, (Triton was used to serve &lt;code&gt;onnx&lt;/code&gt; models&#10;for embeddings) though I&amp;rsquo;ve yet to find a &amp;ldquo;good&amp;rdquo; embedding model. At this stage&#10;in time, most of the vector database solutions &amp;ldquo;feel&amp;rdquo; the same and can all&#10;seemingly be trivially hosted via Kubernetes.&lt;/p&gt;</description></item><item><title>Python &amp; TypeScript - in Review (2024)</title><link>https://noraincheck.github.io/posts/python-typescript-in-review-2024/</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0000</pubDate><guid>https://noraincheck.github.io/posts/python-typescript-in-review-2024/</guid><description>&lt;h2 id="python--typescript---in-review-2024"&gt;Python &amp;amp; TypeScript - in Review (2024)&lt;/h2&gt;&#10;&lt;p&gt;&lt;em&gt;December 2024&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;One thing that I like to stress is the importance of &lt;em&gt;tooling&lt;/em&gt; and&#10;&lt;a href="https://en.wikipedia.org/wiki/Convention_over_configuration"&gt;relying on defaults&lt;/a&gt;.&#10;By being able to speak consistently within ones own projects or using commonly&#10;seen patterns reduces the mental overhead. These could be folder structures or&#10;idioms, especially things which permeate across different programming languages&#10;or frameworks.&lt;/p&gt;&#10;&lt;p&gt;Here are some of my thoughts on Python and TypeScript; coming from someone who&#10;is predominantly a Python developer and does minimal front-end work.&lt;/p&gt;</description></item></channel></rss>