![dog eyes closeup](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.c4656f65.jpg&w=3840&q=75)
I set out to write an article on how big O notation doesn’t help to compare algorithms at small input sizes. I planned a quick demo to show how constant factors matter. Instead, I found all my assumptions and abstractions broken.
![circle grill](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.eeb71469.jpg&w=3840&q=75)
One universal technique for getting software systems to perform faster is to make them do less work. For database queries, this means both asking for less and getting the system to work more efficiently. Read this article to help your queries do less work today.
![circle grill](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.8cc1415d.jpg&w=3840&q=75)
SingleStore started as MemSQL (YC11) with a memory-optimized skiplist-based table structure. And although it has evolved to feature support disk-based columnar storage, if you look closely enough the row store is still there, and still amazing for some workloads.
![bird judge](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.bb80a81d.jpg&w=3840&q=75)
You’ve maintained an uneasy contract with the web for years — you know web sites scrape every last byte of your information, but you tolerate it because it’s invisible. They don’t JUDGE YOU as a user. At least, not until now. Click onward for the opinion DeepSeek R1 has of YOUR information.
![big trilobite](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.f17ebe12.jpg&w=3840&q=75)
Another article only two days later? Well, I needed to know how my VPS is doing, and this is another straightforward use case for SingleStore: a backend for monitoring! Journey with me to understand my server’s performance.
![big succulent](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.a2ac0e54.jpg&w=3840&q=75)
Ever wonder how to build a scalable high-performance real-time application? SingleStore is as close to a drop-in solution as you can get, but you might not know how to get started. If so, this article is for you. Follow along while I build an analytics solution for my web site.
![cat face](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.3c4026b1.jpg&w=3840&q=75)
Images here are powered by Tractor Loader, a glue library for
NextJS and Sharp that enables inline image transformation in JSX
or MDX, like ![cat](./img.jpg?crop=400,400,400,400&tractor)
. So far, I am the only user of this
library 😢. But perhaps the next user could be you! Read my pitch.
![wood corner](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.389f413b.jpg&w=3840&q=75)
I designed and built some gift boxes out of maple, walnut and padauk. Although I laser-cut all of the pieces, I went to great lengths to avoid exposing charred edges. Like most of my craft projects this turned into way more work than I expected. Read on for the full story.
![spider web](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.8d46a833.jpg&w=3840&q=75)
With only ChatGPT, a web browser, and a random topic, can I generate and load millions of rows of highly-tailored data into SingleStore and highlight key features, all in the space of 5 minutes? With some new scripts and workflow I think I can probably do it, and that you can too! Let’s find out!
![dog face](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.0a9ba232.jpg&w=3840&q=75)
The JSON Schema project has fought the fight against schema-free JSON for many years. Using the same technique as in a previous article, I’ve brought JSON Schema to SingleStore. Use it to validate your INSERTs, UPDATEs, or even as a high-performance query tool. Add some sanity to your JSON today with a simple SQL statement.
![wet alpine garden](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.620a16ac.jpg&w=3840&q=75)
SingleStore now offers a novel scheduled jobs service, enabling any Python or SQL task to be run on a schedule. I’ve used it to sprinkle some AI ✨ on the home page of weather.bingo. Learn how I did it.
![pink and purple leaf](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.b4ec6978.jpg&w=3840&q=75)
SQL makes writing UDFs for complex string, JSON, and blob manipulation awkward. What if instead you could write those UDFs in Go or C/C++ and leverage industry-standard libraries? What if you could safely add such functions to your database just by pasting a GitHub URL? The dream is real.
![felt and wood](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.b54aff95.jpg&w=3840&q=75)
The Streamlit project is an easy way to visualize data. It works great with SingleStore as a data source, so I’ve connected it up to weather.bingo. Check it out!.
![two fish](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.488d039a.jpg&w=3840&q=75)
You’ve probably seen the computer language benchmark game — but how about a real-time comparison in your browser? Join me as I implement a brute-force solution to the traveling salesman problem in C, C#, Go, and TypeScript, and find out how they perform on your own machine.
![mesh](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.b0c25511.jpg&w=3840&q=75)
Faster AND Cheaper? Bounce a few terabytes of data into SingleStore without paying cross-AZ transfer fees using a technique I’m calling the S3 Trampoline. Learn how it’s done.
![moss](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.7d7f362a.jpg&w=3840&q=75)
I hate waiting for data loads. It’s time to stop waiting and load some data at speed. See how I set up a fast system to load over a terabyte of data and 2 billion rows into SingleStore in under 20 minutes.
![seattle](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.e5de7714.jpg&w=3840&q=75)
The magic of vector search comes from the model, but even today’s most sophisticated models might still be at the “first year at Hogwarts” level. See how I found some nonsensical results from OpenAI’s latest.
![aurora](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.4b7a7395.jpg&w=3840&q=75)
The location search on weather.bingo is fast. Really — try it now. It just works, globally, with no third-party APIs required. With Vercel Edge functions, this sort of low-latency auto-complete is within the grasp of smaller sites on hobby plans. Learn how.
![sea](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.3ff5978b.jpg&w=3840&q=75)
Did it rain yesterday? The weather apps never tell you what the weather was, only what it will be. For time travelers and historians like myself, this is a major problem. Now with weather.bingo on the SingleStore Free Shared Tier I’ve solved that problem forever. Here’s how.
![underwater](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.f85ffbc3.jpg&w=3840&q=75)
I recently wrote an article on the SingleStore Engineering Blog on our use of the BSON Data Type in SingleStore’s latest release. That provides a brief overview of BSON in SingleStore — but what about the minute details of the type itself? Here’s an in-depth guide to the entirety of the BSON data type.
![crab](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.ac7ba98c.jpg&w=3840&q=75)
Hundreds of readers wrote to complain about the sluggish performance of the slider on the previous article. Fundamentally the non-SIMD version of the program took long enough to cause noticeable lag in the UI — because the thread used for DOM updates was also the one used for the long-running test. Here’s how I used Web Workers to fix it.
![a fungus](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.77b5cc60.jpg&w=3840&q=75)
NativeAOT-LLVM does not yet support SIMD through System.Numerics.Vector. However, it’s straightforward to reimplement the same functionality — if you don’t mind getting your hands a bit dirty with WebAssembly intrinsics in C. Here’s how.
![a lichen](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.1d0ef416.jpg&w=3840&q=75)
DotNet WebAssembly has been tied up with the Blazor project which is an awkward fit for use cases that don’t involve a Blazor UI. Now we have something better. NativeAOT-LLVM compiles C# to WebAssembly using LLVM, and makes interop with JavaScript and other languages like C/C++ straightforward. See how straightforward integration is with NextJS.
![ferns](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fimg.32198798.jpg&w=3840&q=75)
Where Is The Content?
0 — Feb 21 24Most of the fun of having a personal website is in recreating it every few years…? This is the simplest layout yet, based on NextJS 14 App Router, DotNet 8, and Tractor Loader for image manipulation. I’ll recycle the content from my old site eventually and replay it here — message me on X/Twitter if there’s anything in particular you miss.