Example code and book manuscript for Mark Watson's book "Practical Artificial Intelligence Development With Racket"
Using Racket Scheme for implementing many short AI examples including LLMs, vector datastore, NLP, semantic web and non-AI utilities.
Dear readers, I hope you enjoy these examples!
Link to book on LeanPub:
Read this book in the manuscript subdirectory:
The code is contained in the same repository as the manuscript, but in the subdirectory source-code:
Copyright 2022-2025 Mark Watson. All rights reserved.
This book may be shared using the Creative Commons "share and share alike, no modifications, no commercial reuse" license.
Copyright 2022-2025 Mark Watson. All rights reserved.
Find the text to the Apace 2 license here: https://www.apache.org/licenses/LICENSE-2.0.txt
Combining my public code repository with my manuscript repository and making it public could offer several advantages:
- I am evaluating using GitHub Copilot Workspace for AI assited writing, coding, and project planning.
- Simplified Management: Having a single repository for both the manuscript and the source code can streamline repository management. This consolidation can simplify version control, reduce the overhead of maintaining multiple repositories, and make it easier to manage issues, pull requests, and contributions in one place.
- Enhanced Collaboration: A unified repository can encourage collaboration among a wider audience, including both developers and writers. This setup can facilitate a more integrated workflow where contributors can easily reference and contribute to both the manuscript and the associated code, fostering a holistic approach to project development.
- Consistent Documentation: Combining repositories ensures that documentation is centralized, providing a single source of truth for both the manuscript and the code. This can improve the consistency and accessibility of documentation, making it easier for users to find and understand all relevant information in one place.
- Increased Visibility and Engagement: By making the manuscript repository public, you increase its visibility, potentially attracting more readers and contributors. This can lead to more feedback, more contributions, and greater overall engagement with your work. Public repositories also benefit from increased search engine visibility, which can help attract a broader audience.
- Integrated Issue Tracking: With a single repository, you can track issues related to both the manuscript and the code in one place. This can make it easier to manage feedback and contributions, streamline the resolution of issues, and ensure that all project-related discussions are centralized.
- Easier Synchronization: Maintaining a single repository eliminates the need to synchronize updates across multiple repositories. This can reduce the risk of inconsistencies and ensure that the manuscript and code are always up to date with each other.
Combining my public code repository with my manuscript repository and making it public might introduce several challenges:
- Security and Privacy: Making your manuscript repository public exposes all its contents to everyone, which could include sensitive data or unpublished work. This might lead to unintended access to drafts, private notes, or other non-final materials that you didn’t intend to share publicly.
- Repository Management Complexity: Keeping the manuscript and code in separate repositories allows for more straightforward management. Each repository can have its own set of permissions, contributing guidelines, and issue tracking. Combining them might complicate these processes and make it harder to manage contributions and track issues effectively.
- Risk of Unwanted Contributions: Public repositories can receive contributions from anyone. While this is generally positive for code, it might not be desirable for manuscripts. Managing and vetting contributions for accuracy and relevance can become burdensome.
- Intellectual Property and Licensing Conflicts: Combining repositories might lead to confusion regarding licensing terms. Ensuring that the Creative Commons license for the manuscript and any potential different licenses for the code are correctly interpreted and enforced could be challenging.
- Clarity and Focus: Separate repositories help maintain a clear distinction between code and manuscript content. This separation can help users navigate and understand the purpose of each repository more easily. Combining them might create a cluttered repository structure, making it harder for users to find what they need.