A streamlined workspace for experimenting with machine learning and artificial intelligence concepts using isolated development environments. This project provides a consistent foundation for testing various ML/AI approaches while maintaining clean, reproducible setups for each experiment.
Prerequisites:
Getting Started:
- Clone this repository
- Open in VS Code
- When prompted, click "Reopen in Container" or press
Ctrl+Shift+P→ "Dev Containers: Reopen in Container" - Navigate to any sample project:
cd samples/project-name - Follow the project-specific README for setup instructions
├── .devcontainer/ # Development container configuration
├── samples/ # Individual ML/AI experiments
│ ├── tutorial-1/ # Self-contained uv project
│ ├── tutorial-2/ # Another independent experiment
│ └── ... # Growing collection of samples
├── docs/ # Documentation and articles
│ ├── tutorial-1/ # Matching documentation
│ ├── tutorial-2/ # Articles and notes
│ └── ...
└── README.md # This file
Each tutorial in samples/ follows a consistent structure:
- Self-contained uv project with isolated dependencies
- Interactive Jupyter notebooks for hands-on learning
- Production-ready code in
src/directories - Practical examples using real datasets
- Unit tests demonstrating proper usage
- Project README with clear setup instructions
This project uses VS Code Development Containers to provide a consistent, reproducible development environment. DevContainers solve the "it works on my machine" problem by packaging your development environment in a Docker container.
Consistency Across Teams:
- Everyone works with identical Python versions, system libraries, and tools
- No more time spent on environment setup differences
- New team members can start contributing immediately
Isolation and Clean State:
- Each project runs in its own containerized environment
- No conflicts between different Python versions or system packages
- Easy to reset to a clean state when experiments go wrong
Reproducibility:
- Development environment is version-controlled alongside code
- Environments can be recreated months or years later
- Perfect for research and educational content where reproducibility matters
Zero Local Setup:
- No need to install Python, Jupyter, or ML libraries locally
- Works on any machine that can run Docker and VS Code
- Ideal for workshops, courses, and collaborative projects
DevContainers are particularly valuable when:
- Teaching or Learning: Students get identical environments without setup headaches
- Research and Experimentation: Easy to try different library versions or Python releases
- Team Collaboration: Ensures consistent behavior across different developer machines
- Content Creation: Tutorials and examples work reliably for all users
- Multi-Project Work: Switch between different ML stacks without conflicts
Core Tools:
- Python 3.11: Modern Python with excellent ML library support
- uv: Ultra-fast Python package manager for dependency management
- Jupyter Lab: Interactive computing environment for experimentation
- Docker: Containerization for consistent environments
Machine Learning Ready:
- Pre-configured for popular ML frameworks (PyTorch, TensorFlow, scikit-learn)
- Jupyter extensions for enhanced notebook experience
- Common data science libraries readily available
Experimentation:
- Testing different ML frameworks side-by-side
- Comparing model implementations without dependency conflicts
- Rapid prototyping with clean environments
Learning and Teaching:
- Following along with tutorials in guaranteed-working environments
- Creating educational content with reproducible examples
- Sharing projects without "dependency hell"
Research and Development:
- Exploring new AI libraries in isolation
- Archiving experimental work with complete environment snapshots
- Collaborating on research with consistent toolchains
Each sample project is designed for independent exploration:
- Navigate:
cd samples/project-name - Setup: Follow project-specific README instructions
- Activate: Use uv to manage the isolated environment
- Experiment: Run notebooks (
jupyter lab) or scripts (python main.py) - Iterate: Make changes without affecting other projects
The beauty of this setup is that each project maintains its own dependency isolation while sharing the same underlying development container infrastructure.
Each tutorial includes comprehensive documentation in the docs/ directory:
- Personal notes for development insights
- Platform-specific articles for Medium, LinkedIn, etc.
- Technical deep-dives for advanced topics
- Tutorial guides for step-by-step learning
This is a living collection of ML/AI experiments. Samples may be added, updated, or removed as the field evolves and new techniques emerge. Each sample is self-contained, making it easy to:
- Add new experimental projects
- Update existing tutorials with latest libraries
- Remove outdated approaches
- Share individual projects independently
- Each sample includes its own README with specific instructions
- Check the
docs/directory for detailed explanations and background - DevContainer issues: Ensure Docker is running and VS Code has the Dev Containers extension
Start exploring by opening any sample project and diving into the interactive notebooks. The development environment is ready to go – just focus on learning and building!