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

PromptBros: plea in mitigation and two judgments

Following my previous blogpost, I have made a chat agent on PromptBros to illustrate the input of advocates in crafting a plea in mitigation. As a student, I was sometimes quite puzzled about the value the advocate adds when conducting a plea in mitigation. In some cases, the value is clear: where there is sentencing guidelines from the legislation or the Court of Appeal, or when a case is an excepted offence for which suspended sentence is available....

August 20, 2024

Tic-tac-toe: first draft

After feeding my previous blogpost into my PromptPros account, my Llama Sonar Chat agent quickly generated a passable first draft HTML file to work on. The only slight issue I encountered was that the return value of a spliced array is another array: so to get the number out I have to do let move = emptySpacesArray.splice(index, 1)[0] The first draft is now at this commit. Directions for next steps:...

August 15, 2024

Tic-tac-toe: reflections on a classic programming challenge

Coding up a game such as Tic-tac-toe is a classic programming challenge, but one which I never took much more than passing interest. I mean: I can see it is a good quick-start tutorial to a language/tool (e.g. React quick start). I also really enjoyed it when I did it for the first time. But after the first time, why do it again and again and again? But recently I changed my mind....

August 15, 2024

Table Talk of Nick Ribal

Who wrote these articles. All the misinterpretations are my own. Styling web components HTML was originally designed for documents. For documents, the cascading styles of CSS makes sense: you want uniform styling across the global environment, with fall-backs as necessary. But for web apps, the document model doesn’t make sense. You want separate components for different things (buttons, menus etc). For a component, you want all the styles to be confined to the component itself: you don’t want a situation where the overall style sheet may affect the look of a button....

August 7, 2024