Over-Engineering Tic-Tac-Toe: Over-Bytes — Deep Dive

--

A conversation exploring intelligent AI in Tic-Tac-Toe using the JDK and deep-diving into our journey on the road so far using Google’s fantastic NotebookLM.

This is the second article in the mini-series of interludes for the overall Multi-Part Series: Road to JDK 25 — Over-Engineering Tic-Tac-Toe.

As a reminder, our series aims to over-engineer tic-tac-toe primarily using finalized features from Java Enhancement Proposals but with the long wait to the next JDK — version 24, and with me in the midst of some past-due travel and time spent with family, I’m taking the liberty of exploring both the wider Java ecosystem and modern engineering, learning, and artificial intelligence topics.

Locked behind a paywall? Find all of my articles in “The Life of Brian” the digital garden.

In case you missed it, the Java Development Kit (JDK) 23 went general availability on September 17th 2024 — to explore what’s new see my last article here:

and the companion GitHub repository: here.

Photo by Hoodh Ahmed on Unsplash

Over Bytes: Deep-Dive

Introducing NotebookLM

Every now and then a technology comes along that really blows my mind, gets me excited, and makes me imagine a future filled with possibilities. It happened with virtual reality, it happened when I first started using ChatGPT, and it’s happened again now using Google’s NotebookLM.

By way of background, NotebookLM is described on Google’s webpage as:

Your personalized AI research assistant powered by Google’s most capable model, Gemini 1.5 Pro.

A pretty dry description in and of itself. Tiago Forte — Author of Building a Second Brain, describes it more effusively as:

The best software ever created for leveraging AI in your creative work.

Without a hint of hyberbole, this description might just be more accurate! Just listen to what it did with my last interlude article: Over-Engineering Tic-Tac-Toe — An Algorithmic Interlude after I asked it to create and Audio Overview — deep diving on the topic based only on the article as a source:

Over Bytes: Deep Dive — Over-Engineering Tic-Tac-Toe — Algorithms

Now, I like to think I have good habits when it comes to learning, note-taking and research. I use Obsidian for taking notes and highlighting articles, as well as bunch of useful plugins, and use Google Scholar and Zotero for recording references and citations — aka “standing on the shoulders of giants”. I use the PARA method to organize these, and on occasion I make the extra effort to publish an article or blog on the topic (you’re welcome). The latter takes a lot time and energy to get right. However:

Writing technical and often niche articles in a way that is engaging, and exciting, and accessible is hard.

Some of us love to read technical books, others are visual learners, whilst others prefer a good podcast or audiobook to wrap their heads around topics. For each of those avenues its important to have trusted sources, accurate information but to also be engaging and memorable — a reason to care.

I personally enjoy a good conversational podcast, and to hear one generated within minutes off of the back of one article I created, along with the humor, the umms and ahhs, the oh-so-human pauses, anecdotes, and phrases really brought it to life for me — it’s a real game-changer for creative work, research, and study.

Even then, I’ve only scratched the surface. It can do so much more that I’ve barely even tried: generating study guides, timelines, study questions, FAQs, and more — drawing from your own curated sources.

For sure, though, look out for more use of NotebookLM in my over-engineering series under the new topic: Over Bytes: Deep Dive.

Meanwhile, why not catch up with the Road to JDK series up to JDK 23 in a new way — it’s not perfect (e.g. see descriptions of ‘random’ use in Java), and the usual generative AI disclaimer applies:

NotebookLM may still sometimes give inaccurate responses, so you may want to confirm any facts independently.

but the results are engaging:

Over Bytes: Deep Dive — Over-Engineering Tic-Tac-Toe — Versions 17 to 23

That’s all for now, next up in this mini-series of interludes we will take a stop a the service station— We’re going beyond the JDK: building modern cloud-native tic-tac-toe micro-services!

What’s the framework I would personally choose to build modern cloud native services and UIs? Spoiler: It’s not Spring or Spring Boot, and certainly not using JSPs, or JSF…

Disclaimer: The views and opinions expressed in this blog are based on my personal experiences and knowledge acquired throughout my career. They do not necessarily reflect the views of or experiences at my current or past employers.

Next Steps

  • Are you a student or developer? Comment & share your own opinions, favorite learning and study resources, or book recommendations.
  • Follow my blog (or digital garden) for future updates on my engineering exploits and professional / personal development tips.
  • Connect with @briancorbinxyz on social media channels.
  • Subscribe!

--

--

Brian Corbin XYZ - TheCodeInfluencer

“I write because I don’t know what I think until I read what I say.”