A Byte of Coding Issue 393

A Byte of Coding Issue 393

A Byte of Coding

Hey-yo,

Hope you all had a nice weekend. I spent yesterday migrating the newsletter website to be deployed via caprover. I wrote a short post about it here. For me personally, I find that the less tedious my deployment strategy, the more likely I’ll work and update a piece of software. There’s a non-trivial upfront cost to getting it set up, but it pays of within 10 updates.

I’ve also been trying to integrate more AI tools for development wherever I can. Surprisingly it has made writing code a lot more fun. I was getting to the point where writing familiar code was boring and working on new things was tedious, but with the AI tools I found I could speed up both. I tried out the Cursor IDE for a bit, but it felt super clunky. I’m sure it’s good for someone who uses VSCode full-time, but for me it was the coding equivalent of swimming through molasses. So instead I decided to commit to learning the keybindings for chatgpt.nvim and adding copilot.vim.

The combination of the two has been really fun. There are still some imperfections; AI editing existing code with chatgpt.nvim doesn’t feel great, because there isn’t really a good way to keep the old code and paste in the new code (it defaults to replacing), and auto-completion for CoC and copilot share the same keybinding, which can be a nuisance. However being able to write “Write a NodeJS script that pulls data from the xyz api and inserts it into a local postgresql database” and have it spit out something that is 97% of the way there feels great.

If you have any recommendations for AI tools that made your life easier, let me know 🙂 I’d love to check them out!

Anyway, here’s the issue.

Made possible through generous sponsorship by:

Published: 8 September 2023

Tags: clojure

Bruno Bonacci explores the differences and utilities of lazy, chunked, and buffered sequences in Clojure.

Some highlights:

  • Discusses the three types of sequences in Clojure: truly lazy, chunked, and buffered, with a focus on how buffered sequences optimize performance

  • Buffered sequences fill a buffer with pre-realized items, reducing wait times and improving processing efficiency

  • Provides practical examples to illustrate the behavior of these sequences in code, enhancing understanding of their impact on Clojure applications

Published: 26 April 2024

Tags: clojure, concurrency

Eric Normand delves into the utilization of virtual threads in Clojure through Project Loom, highlighting their efficiency for handling millions of concurrent threads and optimizing CPU use.

Some highlights:

  • Virtual threads offer lightweight concurrency on the JVM, enhancing resource sharing without the complexities of asynchronous code

  • Key differences include the non-preemptive nature of virtual threads compared to OS threads, affecting task scheduling and CPU monopolization

  • Practical coding examples illustrate the advantages of virtual threads in Clojure for tasks like merging RSS feeds, emphasizing parallel execution and efficient resource management

Published: 16 February 2024

Tags: sponsored, auth, architecture

WorkOS has published a guide that “surfaces complexities and implementation details” for supporting user-team-organization relationships in B2B auth.

Some highlights:

  • “if you ever want to sell to an enterprise your backend needs to be ready to support complex models of users and teams”

  • looks at the different ways you can implement the database tables for modeling the organization

  • most of the complexity comes from users that need to be a part of multiple organizations

Published: 25 April 2024

Tags: ai, machine learning, llms

Bruce Schneier, in collaboration with Judith Donath, discusses the implications of large language models (LLMs) on the web ecosystem, exploring how they transform the dynamics between content creators and audiences.

Some highlights:

  • The essay addresses the shift from search engine optimization (SEO) to large-language-model optimization (LLMO), which could prioritize AI-generated content manipulation

  • Highlights the potential loss of connection between content creators and their audiences, emphasizing the risk to human-driven content creation

  • Suggests looking for strategies for maintaining a web ecosystem that values and supports human creativity and knowledge production, countering the dominance of AI in content synthesis

A Newsletter You’ll Love: Stay ahead on the business of AI

Need ONE newsletter to stay on top of everything?

Prompts daily will make you more productive at work and help you look smarter in front of your friends (seriously!)

It’s also FREE to sign up!

Thanks for your Support!

Big thanks to all of the Patreon supports and company sponsors. If you want to support the newsletter you can checkout the Patreon page. It's not necessary, but it lets me know that I'm doing a good job and that you're finding value in the content.