markhjeffery

markhjeffery

Vector Search with JavaScript: page 8

Title: Name of Book: description (page number)
Example: Programming Flutter: ‘pub get’ command not working (page 15)

I downloaded the sample code, and executed the first example on page 8. Full text output provided:

markjeffery@Mac getting_started_with_vector_search % node name_this_book.js 
(node:23483) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///Users/markjeffery/Downloads/code/getting_started_with_vector_search/name_this_book.js is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to /Users/markjeffery/package.json.
(Use `node --trace-warnings ...` to show where the warning was created)
[dotenv@17.1.0] injecting env (0) from .env (tip: ⚙️  write to custom object with { processEnv: myObject })
No cached data found. Starting fresh.
Scraping up to 50 book titles from Pragmatic Bookshelf...
  - Fetching page 1
  - Fetching page 2
  - Fetching page 3
  - Fetching page 4
  - Fetching page 5

    Finished scraping. 50 titles captured.
Generating embeddings for all titles...
  (1/50) A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 2: Level Up Your Core Programming Skills
Generating embedding for: "A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 2: Level Up Your Core Programming Skills"
  (2/50) Advanced Hands-on Rust: Level up Your Coding Skills
Generating embedding for: "Advanced Hands-on Rust: Level up Your Coding Skills"
  (3/50) Ash Framework: Create Declarative Elixir Web Apps
Generating embedding for: "Ash Framework: Create Declarative Elixir Web Apps"
  (4/50) Network Programming in Elixir and Erlang: Write High-Performance, Scalable, and Reliable Apps with TCP and UDP
Generating embedding for: "Network Programming in Elixir and Erlang: Write High-Performance, Scalable, and Reliable Apps with TCP and UDP"
  (5/50) Programming Phoenix LiveView: Interactive Elixir Web Programming Without Writing Any JavaScript
Generating embedding for: "Programming Phoenix LiveView: Interactive Elixir Web Programming Without Writing Any JavaScript"
  (6/50) The Healthy Programmer, Second Edition: Refactor Your Fitness, Improve Your Mind
Generating embedding for: "The Healthy Programmer, Second Edition: Refactor Your Fitness, Improve Your Mind"
  (7/50) Kotlin Brain Teasers: Exercise Your Mind
Generating embedding for: "Kotlin Brain Teasers: Exercise Your Mind"
  (8/50) Real-World Kanban, Second Edition: Do Less, Accomplish More with Lean Thinking
Generating embedding for: "Real-World Kanban, Second Edition: Do Less, Accomplish More with Lean Thinking"
  (9/50) Vector Search with JavaScript: Build Intelligent Search Systems with AI
Generating embedding for: "Vector Search with JavaScript: Build Intelligent Search Systems with AI"
  (10/50) Hotwire Native for Rails Developers: Build Native Mobile Apps Using Your Server
Generating embedding for: "Hotwire Native for Rails Developers: Build Native Mobile Apps Using Your Server"
  (11/50) Kotlin Coroutine Confidence: Untangle Your Async, Ship Safety at Speed
Generating embedding for: "Kotlin Coroutine Confidence: Untangle Your Async, Ship Safety at Speed"
  (12/50) More OCaml: Algorithms, Methods & Diversions
Generating embedding for: "More OCaml: Algorithms, Methods & Diversions"
  (13/50) Agile Web Development with Rails 8
Generating embedding for: "Agile Web Development with Rails 8"
  (14/50) simplicity: sustainable, humane, and effective software development
Generating embedding for: "simplicity: sustainable, humane, and effective software development"
  (15/50) Next-Level A/B Testing: Repeatable, Rapid, and Flexible Product Experimentation
Generating embedding for: "Next-Level A/B Testing: Repeatable, Rapid, and Flexible Product Experimentation"
  (16/50) Cruising Along with Java: Modernize and Modularize with the Latest Features
Generating embedding for: "Cruising Along with Java: Modernize and Modularize with the Latest Features"
  (17/50) Elixir Patterns: The essential BEAM handbook for the busy developer
Generating embedding for: "Elixir Patterns: The essential BEAM handbook for the busy developer"
  (18/50) Northwind Elixir Traders: Learn Elixir and database modeling with Ecto and SQLite, all in one project
Generating embedding for: "Northwind Elixir Traders: Learn Elixir and database modeling with Ecto and SQLite, all in one project"
  (19/50) Rails Scales!: Practical Techniques for Performance and Growth
Generating embedding for: "Rails Scales!: Practical Techniques for Performance and Growth"
  (20/50) Become an Effective Software Engineering Manager: How to Be the Leader Your Development Team Needs
Generating embedding for: "Become an Effective Software Engineering Manager: How to Be the Leader Your Development Team Needs"
  (21/50) Clojure Brain Teasers: Exercise Your Mind
Generating embedding for: "Clojure Brain Teasers: Exercise Your Mind"
  (22/50) Creating Great Teams, Second Edition: How Self-Selection Lets People Excel
Generating embedding for: "Creating Great Teams, Second Edition: How Self-Selection Lets People Excel"
  (23/50) Agile Web Development with Rails 7.2
Generating embedding for: "Agile Web Development with Rails 7.2"
  (24/50) C# Brain Teasers: Exercise Your Mind
Generating embedding for: "C# Brain Teasers: Exercise Your Mind"
  (25/50) Guiding Star OKRs: A New Approach to Setting and Achieving Goals
Generating embedding for: "Guiding Star OKRs: A New Approach to Setting and Achieving Goals"
  (26/50) Business Success with Open Source: Strengthen Your Business with Free and Open Source Software
Generating embedding for: "Business Success with Open Source: Strengthen Your Business with Free and Open Source Software"
  (27/50) MySQL 9 Essentials
Generating embedding for: "MySQL 9 Essentials"
  (28/50) tmux 3: Productive Mouse-Free Development
Generating embedding for: "tmux 3: Productive Mouse-Free Development"
  (29/50) Real-World Event Sourcing: Distribute, Evolve, and Scale Your Elixir Applications
Generating embedding for: "Real-World Event Sourcing: Distribute, Evolve, and Scale Your Elixir Applications"
  (30/50) The New and Improved Flask Mega-Tutorial
Generating embedding for: "The New and Improved Flask Mega-Tutorial"
  (31/50) Regular Expressions Machinery: The Illustrated Guide
Generating embedding for: "Regular Expressions Machinery: The Illustrated Guide"
  (32/50) The Art of Functional Programming
Generating embedding for: "The Art of Functional Programming"
  (33/50) Engineering Elixir Applications: Navigate Each Stage of Software Delivery with Confidence
Generating embedding for: "Engineering Elixir Applications: Navigate Each Stage of Software Delivery with Confidence"
  (34/50) Jetpack Compose 1.7 Essentials
Generating embedding for: "Jetpack Compose 1.7 Essentials"
  (35/50) The Case of the Crimson Test Suite: An Introduction to Swift Testing
Generating embedding for: "The Case of the Crimson Test Suite: An Introduction to Swift Testing"
  (36/50) Pragmatic Unit Testing in Java with JUnit, Third Edition
Generating embedding for: "Pragmatic Unit Testing in Java with JUnit, Third Edition"
  (37/50) Serverless Apps on Cloudflare: Build Solutions, Not Infrastructure
Generating embedding for: "Serverless Apps on Cloudflare: Build Solutions, Not Infrastructure"
  (38/50) C# 13 Programming Essentials: .NET 9 Edition
Generating embedding for: "C# 13 Programming Essentials: .NET 9 Edition"
  (39/50) Android Studio Koala Essentials-Kotlin Edition
Generating embedding for: "Android Studio Koala Essentials-Kotlin Edition"
  (40/50) Seven Obscure Languages in Seven Weeks: Rediscovering the Tools That Built the Future
Generating embedding for: "Seven Obscure Languages in Seven Weeks: Rediscovering the Tools That Built the Future"
  (41/50) iOS 18 App Development Essentials
Generating embedding for: "iOS 18 App Development Essentials"
  (42/50) Escape Velocity: Better Metrics for Agile Teams
Generating embedding for: "Escape Velocity: Better Metrics for Agile Teams"
  (43/50) Test-Driven React, Second Edition: Find Problems Early, Fix Them Quickly, Code with Confidence
Generating embedding for: "Test-Driven React, Second Edition: Find Problems Early, Fix Them Quickly, Code with Confidence"
  (44/50) Android Studio Koala Essentials-Java Edition
Generating embedding for: "Android Studio Koala Essentials-Java Edition"
  (45/50) Become a Great Engineering Leader: Build Effective Skills to Lead and Grow
Generating embedding for: "Become a Great Engineering Leader: Build Effective Skills to Lead and Grow"
  (46/50) Machine Learning in Elixir: Learning to Learn with Nx and Axon
Generating embedding for: "Machine Learning in Elixir: Learning to Learn with Nx and Axon"
  (47/50) Automate Your Home Using Go: Build a Personal Data Center with Raspberry Pi, Docker, Prometheus, and Grafana
Generating embedding for: "Automate Your Home Using Go: Build a Personal Data Center with Raspberry Pi, Docker, Prometheus, and Grafana"
  (48/50) Server-Driven Web Apps with htmx: Any Language, Less Code, Simpler Code
Generating embedding for: "Server-Driven Web Apps with htmx: Any Language, Less Code, Simpler Code"
  (49/50) The Stress Equation: Reduce Burnout, Increase Happiness and Productivity
Generating embedding for: "The Stress Equation: Reduce Burnout, Increase Happiness and Productivity"
  (50/50) A Common-Sense Guide to Data Structures and Algorithms in JavaScript, Volume 1: Level Up Your Core Programming Skills
Generating embedding for: "A Common-Sense Guide to Data Structures and Algorithms in JavaScript, Volume 1: Level Up Your Core Programming Skills"
file:///Users/markjeffery/Downloads/code/getting_started_with_vector_search/name_this_book.js:50
  return data.data[0].embedding;
                  ^

TypeError: Cannot read properties of undefined (reading '0')
    at getEmbedding (file:///Users/markjeffery/Downloads/code/getting_started_with_vector_search/name_this_book.js:50:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async Promise.all (index 1)
    at async embedTitles (file:///Users/markjeffery/Downloads/code/getting_started_with_vector_search/name_this_book.js:119:3)
    at async main (file:///Users/markjeffery/Downloads/code/getting_started_with_vector_search/name_this_book.js:148:13)

Node.js v23.11.0

It looks like it fails at the last book!

Does this look like an error on my side, or yours?

Most Liked

hummusonrails

hummusonrails

Author of Vector Search with JavaScript

Hi @markhjeffery

So glad to hear it is working for you now!

I investigated the issue earlier today and added a few more error handlers to the script’s ingestion of titles from PragProg, making it more resilient. I also updated the package.json to remove that initial error you saw.

You can find the latest code on the book’s GitHub repository. Nothing substantially changed, except for the addition of error handlers and the removal of the initial warning.

Appreciate you bringing it up here!

Ben

markhjeffery

markhjeffery

Thanks for the changes. I had to do a bit of debugging to find the error, good to see that it is handled differently now.

Looking forward to the rest of the book!

Mark

Where Next?

Popular Pragmatic Bookshelf topics Top

ianwillie
Hello Brian, I have some problems with running the code in your book. I like the style of the book very much and I have learnt a lot as...
New
lirux
Hi Jamis, I think there’s an issue with a test on chapter 6. I own the ebook, version P1.0 Feb. 2019. This test doesn’t pass for me: ...
New
jdufour
Hello! On page xix of the preface, it says there is a community forum "… for help if your’re stuck on one of the exercises in this book… ...
New
New
jskubick
I’m running Android Studio “Arctic Fox” 2020.3.1 Patch 2, and I’m embarrassed to admit that I only made it to page 8 before running into ...
New
fynn
This is as much a suggestion as a question, as a note for others. Locally the SGP30 wasn’t available, so I ordered a SGP40. On page 53, ...
New
jskubick
I think I might have found a problem involving SwitchCompat, thumbTint, and trackTint. As entered, the SwitchCompat changes color to hol...
New
adamwoolhether
Is there any place where we can discuss the solutions to some of the exercises? I can figure most of them out, but am having trouble with...
New
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1063 24245 395
New
PragmaticBookshelf
Stop developing web apps with yesterday’s tools. Today, developers are increasingly adopting Clojure as a web-development platform. See f...
New
Rainer
My first contact with Erlang was about 2 years ago when I used RabbitMQ, which is written in Erlang, for my job. This made me curious and...
New
PragmaticBookshelf
Use WebRTC to build web applications that stream media and data in real time directly from one user to another, all in the browser. ...
New
mafinar
This is going to be a long an frequently posted thread. While talking to a friend of mine who has taken data structure and algorithm cou...
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
New
First poster: AstonJ
Jan | Rethink the Computer. Jan turns your computer into an AI machine by running LLMs locally on your computer. It’s a privacy-focus, l...
New
CommunityNews
A Brief Review of the Minisforum V3 AMD Tablet. Update: I have created an awesome-minisforum-v3 GitHub repository to list information fo...
New
PragmaticBookshelf
A masterclass in the fundamentals and principles of functional programming. Minh Quang Tran The Art of Functional Programming is a ma...
New

Sub Categories: