Fashions in technology: a reverie

I was listening to Vercel founder Guillermo Rauch’s interview in the background, and fell into a reverie about changes of fashion in technology. The first, most obvious point is the almost ubiquitous equation of technology with computers in contemporary parlance. Just one or two generations ago, “technology” would be most connected with analogue hardware: cf. 董啟章’s 天工開物‧栩栩如真. And so much changed has happened even with recognisably modern computers. There was the birth of UNIX in the 1960s, the first popular operating system that is written in a high level language and meant to be portable across different machines: cf....

October 7, 2024

Four weeks without code: some reflections

Because of travel, I spent four weeks in August to September almost entirely without touching the IDE. There were times when I missed this mildly: there is an almost meditative quality to sitting down and wrangling with the computer. But all in all, the time flew by with festivities and friends. When I came back, I was surprised by how much I forgot and how much I remembered: The project structure had left my mind almost completely....

October 2, 2024

Chronology of a Judgment: a 1 day project

I was lucky to have a day entirely free, and decided to spend it on a project long at the back of my mind: Chronology of a Judgment. I remember a period wondering why it was not possible to generate a draft chronological automatically from a Microsoft Word document. The computer just needs to: go through the document pause whenever there is a date save the date and the sentence create a table with a date column, a sentence column and a paragraph number column put everything in chronological order How hard can it be?...

October 1, 2024

My first portfolio website

I thought I would use Next and v0 to very quickly create a portfolio website. With a degree of familiarity with Next, the process was straightforward: Use npx create-next-app@latest to create a Next repository, choosing Typescript, Tailwind and App router. Use v0 to make UI components. A LLM Chat interface is provided, and an npx command (in the format of npx shadcn@latest add "https://v0.dev/URL) is available to install the resulting component into the project....

September 25, 2024

Next auth, Resend and Sivers

1 Next Auth I completed the backend part of t3 tutorial today. The author introduced Next Auth with Email Provider in a very well motivated way. The idea behind the Email Provider is that the website would send an email to the user’s email address; the email would contain a “magic link” with which the user can log in. The concept is intuitive, but to set it up and run it on a local machine is not easy: at the least, you’d need too set up some kind of service such as Mailgun or Resend....

September 3, 2024

T3: some set up notes

1 Setting up Postgres To set up T3, I need Prisma. To go through Prisma quick start, I need Postgres. Postgres docs recommend downloading a binary for Macs. But this didn’t work for me: brew was much more straightforward. Once the installation is done, it is easy to follow the tutorial at the start of the official docs. 2 What is the name of the Postgres database that my Prisma client is accessing?...

September 2, 2024

Chris Bernhardt Turing's Vision

I picked this up in Fulda Staat library, and am very pleasantly surprised by the fluent exposition. I first came across finite automata over a decade ago when I read the New Turing Omnibus, back then recommended reading for the Cambridge computer science applicants. I got so interested at one point I considered switching subjects right away. But the presentation in the New Turing Omnibus is a bit out dated, and also left quite a lot of gaps to be worked out by the students....

August 31, 2024

Reading Next.js docs

Around 1.5 months ago, I took on two projects that uses Next.js and Supabase. I was initially very excited to have real projects to work on, with the guidance of seasoned professionals. But after working on each project for around 5-10 hours, I stalled. There just seemed to be so many nitty-gritty little things I had to learn in an unpleasant stop-and-start fashion. For example, Next.js clearly uses the directory structure to mirror different URL routes....

August 30, 2024

2 years of self-learning

Just a few markers, before my memory is corrupted by new experiences. I started programming from scratch in August 2022. The very first steps were with Scratch (a tool mainly for children developed by MIT), and then C. The jump from Scratch to C was huge. C is a compiled language, and with the School 42 curriculum a lot of hard work was required to make even the simplest thing (e....

August 25, 2024

PromptBros: plan for a minimal legal chatbot

To tease out PromptBro’s capacity to help users create unique LLM experiences, I decided on a new side-project: creating a minimal legal chatbot. By now (August 2024), the risks of using LLMs for legal research are well known. The tale of the American lawyer who submitted hallucinated cases to Court has become part of legal folklore. On the other end of the spectrum, there are already a number of dedicated startups in the crowded LegalTech eco-system surrounding the use of LLMs....

August 20, 2024