Chris Zetter
Latest posts
rgSQL: A test suite for database engines
Booknotes: Feedback wanted and the sample solution
Booknotes 7. I’m writing a guide to building your own database server . Here’s what I’ve been doing: Feedback wanted I’m giving a small number of people access to the guide in exchange for their feedback. If you would like to read the first few chapters and start your implementation send me a message . A book in two parts In the interest of releasing early, I’ve split up my original plan for the…
Booknotes: Grouping and my favourite HYTRADBOI talks
Booknotes 6. I’m writing a guide to building your own database server . Here’s what I’ve been doing: Progress This week I’ve hit the milestone of having a complete sample implementation! Grouping and aggregation Grouping and aggregation were the most complex parts to implement. This complexity comes from how grouping changes the structure of the data it acts on and how that interacts with type…
Booknotes: Web-first and making PDFs
Booknotes 5. I’m writing a guide to building your own database server . Here’s what I’ve been doing: Progress This week I’ve continued with my sample implementation so it can handle filtering, sorting, limiting and joins. I’ve also written a chapter about references. Building web-first I’m mildly frustrated when technical books are only available in a fixed-size PDF or in a non-so-nicely formatted…
Booknotes: Parsing and tokenization
Booknotes 4. I’m writing a guide to building your own database server . Here’s what I’ve been doing: Progress This week I’ve continued with my sample implementation which has helped me to go back and improve the first four chapters. A new chapter appears In my last booknotes I said that I’ve restarted my sample implementation so I can go through the test-suite as someone following the guide for…
Booknotes: Talks
Booknotes 3. I’m writing a guide to building your own database server . Here’s what I’ve been doing: Progress I’ve written more on the chapter on joining data and made improvements to the test runner. Talks I’ve submitted a lighting talk to HYTRADBOI . The slightly-silly talk goes some of the shade the PostgreSQL documentation throws on the SQL standard. I also have an idea for a talk about…
Booknotes: A bag of tuples
Booknotes 2. I’m writing a guide to building your own database server . Here’s what I’ve been doing: Progress This week I’ve been working on two chapters, the first is about implementing filtering, sorting and limiting data (with WHERE , ORDER BY and LIMIT ) and the second is about joining data. Researching A question I’ve tried to answer this week is why the syntax for CAST is CAST(value AS type)…
Booknotes: Writing portable code
Booknotes 1. I’m writing a guide to building your own database server . Here’s what I’ve been doing: Progress - My aim is to get the first part of the guide in a releasable state by April. I’ve written 6 of the 10ish chapters so far and have a rough outline for the rest. Portable code - The book comes with tests to help guide your implementation. So that the tests are as easy to run as possible…
Using the mob tool for productive pairing
This post is based on a talk I gave at LRUG in February 2023, which you can stream . I started using the remote mob and pair programming tool mob with my team. I’ll explain what the tool does and how it helps to maintain momentum and productivity while pairing. I’m a big fan of pair and mob programming. It’s the quickest way to share knowledge, skills and make progress on many problems. I’m always…
My cookbook
There are so many recipes on the web, all competing for keywords. When I find one that I like, and is easy to follow, and uses ingredients that are easy to come by, AND doesn’t measure butter by volume , I want to make sure I save it. When I gave writing weeknotes a go this year, I liked having a place that I could record and make notes on the the recipes I had made. After I stopped writing…
Generating random maps
After learning about the BSicons that Wikipedia uses to build route maps for transport systems, I wanted to see if I could use BSicons in randomly generated maps. A route map of Line 4 of the Shanghai Metro that has been built with BSicons. Automatic matching I wanted to include as many different BSicons as possible in my generated maps. I made a copy of all the BSicons from Wikipedia and created…
Mapping anything with BSicons
If you go to the Wikipedia page for the Forth and Clyde Canal , the Trans-Siberian Railway or the London Circle Line you may notice that they all have route maps with a similar visual style. A route map of the Glasgow subway from Wikipedia. How do the many Wikipedia contributors create all these similar-looking maps? The answer is BSicons . BSicons BSicons are the building blocks for these route…
Weeknotes: Lockdown activities
Weeknotes 14. Mapping - I live close to the Norton Common nature reserve in Letchworth. Over the last few visits I’ve explored more of it so I can improve it on Open Street Map . I’m quite happy with where it’s at now, especially compared to the two paths mapped on Google’s version Offsite - Farewill usually has off-sites every couple of months. We had a virtual one this time around and was nice…
Weeknotes: Hair, birds and trains
Weeknotes 13. Bird Table - I put a GoPro in the garden and filmed a couple of birds that I tempted on-camera with some dried mealworms. The blue tit is in half-speed since it was barely there at all. Hair - MY FRINGE IS OUT OF CONTROL . I’m using two hair clips to keep it out of my eyes. I don’t feel brave enough to trim it myself yet. Baking - I made some more port-brownies and a rhubarb crumble…
Weeknotes: Lower latency
Weeknotes 12. Crossword improvements - I’ve had some lovely messages from people who are enjoying using Several People are Solving . I’ve also seen the traffic jump from 10 people a day a month ago to more than 250 people a day now. I’ve spent a bit more time on it and there are now more links to crosswords from the home page. I want to colour-in moves so you can see who made them, but I’m not…
Weeknotes: Working from home more & how toilet roll is really made
Weeknotes 11. Toilet roll - I thought I knew how it was made, but then I watched a clip from the BBC and I’m now convinced that they steal toilet paper from giants and then use some kind of shrink-ray to ready it for consumers. WFH - Starting Thursday this week we’ve been asked to work from home until further notice. I’m thinking about if there are changes we could try in our team to help us…
Weeknotes: Magic paste and the roundest animal
Weeknotes 10. Magic paste - I’m continuing with an endless stream of house chores. This week I added a towel rail and hooks to the bathroom. Next on my todo list is filling some old drill holes in the bathroom with some magic paste and researching how on earth to fit curtain rails/poles to our bay window. SSL Certs - I spent some time managing my Dokku-powered web server. I got an email from Let’s…
Weeknotes: Double Double Helix Staircases
Weeknotes 9. Gatsby - I’ve been using Gatsby a lot at work for the last few weeks. It’s a flexible static site generator that’s able to create pages from different content sources. We use it a lot with the Contentful API to build pages. The downside is that I find it’s GraphQL functionality less well documented and I’m unsure of what expected behaviour is for some queries. Some query operators…
Weeknotes: Rebasing and Baking
Weeknotes 8. Making it easier to rebase from Atom - This week Atom 1.43 was released. This was exciting for me because this included a change that I made in September that added ‘Copy Commit SHA’ and ‘Copy Commit Subject’ actions to Atom’s git tab. I use git’s auto-squashing a lot and thought this would make creating ‘fixup!’ and ‘squash!’ commits easier. Free-from Baking - I started the weekend…