https://github.com/mike014/open-source-contributions
To continue contributing to innovative projects in sound design and audio programming, with a focus on creative and open-source solutions.
https://github.com/mike014/open-source-contributions
Last synced: 10 months ago
JSON representation
To continue contributing to innovative projects in sound design and audio programming, with a focus on creative and open-source solutions.
- Host: GitHub
- URL: https://github.com/mike014/open-source-contributions
- Owner: Mike014
- License: mit
- Created: 2025-01-06T21:10:07.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-09T15:58:05.000Z (about 1 year ago)
- Last Synced: 2025-01-26T12:14:20.614Z (12 months ago)
- Size: 30.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Michele Grimaldi - Portfolio
## 🛠️ Open Source Contributions
### unDAW
- Contributed to the [unDAW](https://github.com/Amir-BK/unDAW) project, an open-source Digital Audio Workstation (DAW) for **Unreal Engine**.
- My spatial audio codes, available in the repository [My-Cpp-Codes-For-UnrealEngine](https://github.com/Mike014/My-Cpp-Codes-For-UnrealEngine), were integrated into the project.
- Focused on algorithms for improving spatial audio rendering and optimizing audio performance.
---
### Axelrod
- Worked on the [Axelrod](https://github.com/Axelrod-Python/Axelrod) project, a framework for simulating strategies and tournaments in the prisoner's dilemma.
- **Key Contributions (using Tox for testing and debugging):**
- **Fix test issues and optimize test execution**:
- Used **Tox** to identify and fix the `TestOpponent` import error in `test_sequence_player.py`.
- Refactored test classes with `__init__` constructors to resolve `PytestCollectionWarning`.
- Addressed **UserWarnings** in `test_memoryone.py` and `test_memorytwo.py` related to default player settings, ensuring better compatibility.
- Handled the seed reproducibility warning in `test_player.py` to guarantee deterministic test results.
- Resolved the `RuntimeWarning` in `test_zero_determinant.py` caused by invalid division.
- Optimized test execution by running tests in parallel with **pytest-xdist** to improve efficiency.
- Fixed minor warnings related to test strategies and examples.
- Refactored `test_tournament.py`:
- Renamed files from `stochastic_tournament` to `deterministic_tournament` for consistency.
- Added logic to remove existing output files before re-generating them to prevent conflicts.
- Improved seed handling for deterministic and stochastic tournaments.
- Updated `OpponentTest` class:
- Renamed from `TestOpponent` for clarity and better pytest compatibility.
- Removed the `__init__` constructor and replaced it with a static `strategy` method.
- Adjusted Hypothesis-based tests (`test_property.py`):
- Replaced `.example()` with the `@given` decorator for better random test generation.
- Reduced test examples (`max_examples=3`) to speed up execution without affecting coverage.
- **Documentation improvements**:
- Updated `docs/Makefile`:
- Removed the `-W` flag to prevent warnings from being treated as errors during documentation builds.
- Added comments to clarify changes and facilitate future updates.
- Revised `CHANGES.md` to document fixes, improvements, and new optimizations in tests and configurations.
- **Configuration updates**:
- Enhanced `tox.ini`:
- Added `pytest-xdist` for parallel test execution.
- Included `isort` and `black` checks for code consistency.
- Updated Python environment configurations to support Python 3.11 and Python 3.12.
- Consolidated and updated dependencies in `requirements.txt` and `docs/requirements.txt`:
- Added missing dependencies (`pytest`, `pytest-xdist`, `tox`, `numpy`, etc.).
- Updated versions of several libraries (e.g., `numpy`, `hypothesis`, `matplotlib`) to ensure compatibility.
- **Performance and reliability**:
- Used Tox to debug and fix warnings related to reproducibility, including seed warnings and floating-point operations.
- Improved test reproducibility by centralizing seed initialization and ensuring consistent random behavior across runs.
- Enhanced test reliability by enforcing deterministic outputs in `test_tournament.py`.
This work was completed with **Tox** as the primary tool for testing, debugging, and ensuring compatibility across multiple Python environments.
### LiSE
## Recap of Work on the **[LiSE](https://github.com/Mike014/LiSE)** Project
### ***First Commit***
- Created a new Python virtual environment (`venv312`) to ensure compatibility with Python 3.12, using the required modules.
- Installed necessary dependencies, including `msgpack`, `pytest`, `tox`, `black`, and `isort`.
- Configured `tox` to test the project in a specific Python environment (3.12).
- Used `pytest` to run the project tests and resolved the following issues:
- **DeprecationWarnings** related to the use of `ast.Num` and `ast.Str`, updating them to ensure compatibility with Python 3.14.
- **PytestUnknownMarkWarnings**: Corrected or registered custom markers `@pytest.mark.big` and `@pytest.mark.slow` to avoid warnings.
- Used **Black** to automatically format the project code according to PEP 8 standards.
- Used **isort** to organize imports in the code files.
- Fixed sorting errors and formatted the following files:
- Example files (`examples/*.py`).
- Main modules (`LiSE/`, `ELiDE/`).
- Test files (`tests/*.py`).
- Resolved a warning related to `tarfile.py` by specifying the `filter` argument to prepare for upcoming changes in Python 3.14.
- Applied fixes compatible with future versions of the language to ensure backward compatibility and project scalability.
- Properly configured the Git user:
- **Email**: `mikgrimaldi7@gmail.com`.
- **Username**: `Mike014`.
- Made a significant commit with the message:
> "Fix warnings and format code, Resolved DeprecationWarnings, formatted code with Black, and cleaned up imports using isort."
- Planned to push changes to the GitHub repository [LiSE](https://github.com/Mike014/LiSE.git).
- The work improved:
- Code readability.
- Future compatibility of the project with newer Python versions.
- Code structure and consistency.
- Ready to share the changes with the open-source project community.
### ***Second Commit***
Refactored code, improved documentation, and updated configuration:
- Applied code refactoring across multiple files for consistency and readability.
- Enhanced the Sphinx documentation:
- Added detailed sections for `Introduction`, `Design`, and `ELiDE`.
- Improved the structure and formatting of `.rst` files.
- Updated and tested the project setup:
- Improved `setup.py` to handle encoding and enhanced dependency management.
- Fixed issues in `eqversion.py` and `main.py` for better compatibility and error handling.
- Improved tox configuration to include additional checks:
- Added `isort` and `black` commands to the `tox.ini` configuration.
- Personalized pytest markers for better test categorization.
- Incorporated `pylint` for static code analysis:
- Fixed critical issues such as unused variables (`W0613`), undefined loop variables (`W0631`), and improper imports (`E0401`).
- Enhanced code quality by addressing naming style inconsistencies (`C0103`) and missing docstrings (`C0114`, `C0116`).
- Achieved a score improvement from 6.59/10 to 7.58/10.
- Conducted successful tests using tox:
- 198 tests passed, 7 skipped, 8 warnings in 535.68 seconds.
- Specific file changes:
- `eqversion.py`: Fixed logic for version comparison and added better error messages.
- `main.py`: Improved path handling and added fallback for missing modules.
- `setup.py`: Enhanced dependency parsing and fixed encoding issues.
- `tox.ini`: Enhanced test commands and added personalized markers.
- Updated `README.md` with comprehensive details about configuration files, Python modules, and documentation structure.
### ***Third Commit***t
Added data exploration and visualization scripts:
- Created explore_data.py:
Added a function get_tables to retrieve the names of all tables in the specified SQLite database.
Included detailed docstrings for better understanding and documentation.
- Created visualize_data.py:
Added functionality to visualize the distribution of a specific column in a table from the SQLite database using matplotlib and seaborn.
Included example usage to demonstrate how to use the functions to explore and visualize data from the database.
- Example usage in visualize_data.py:
Demonstrated how to connect to the database, retrieve table names, and visualize data from a specific table and column.
Ensured compatibility and proper error handling for missing tables or columns.
Improved project structure and documentation to facilitate data analysis and visualization tasks.
## 🎮 Video Games
Contributed to the development of several indie video games, working on both sound design and code implementation:
1. [Cats' Craving](https://sephuni.itch.io/cats-craving)
- Role: Created immersive audio and implemented gameplay logic using **Unreal Engine**.
2. [My Clicky Game Music](https://m1k3-s0und.itch.io/my-clicky-game-music)
- Role: Created dynamic music and wrote gameplay code.
3. [Xenolith](https://lucabrunetti.itch.io/xenolith)
- Role: Optimized the audio engine and implemented gameplay features.
4. [Ninja Pizza and the Lost Pineapple Sauce](https://lucabrunetti.itch.io/ninja-pizza-and-the-lost-pineapple-sauce-version-xxl-turbo-italian-edition-2)
- Role: Designed sound effects, composed music, and programmed audio events in gameplay.
---
## 🎧 Key Skills
- **Audio Programming**: Unreal Engine (C++, Blueprint), JUCE.
- **Sound Design**: Creating sound effects and dynamic music for games and applications.
- **Backend Development**: Python for optimizing workflows and resolving issues (e.g., Axelrod project).
- **Optimization and Debugging**: Resolving complex issues and optimizing workflows in open-source projects.
---
## 🌟 Objectives
To continue growing in my role as a **Back-End Software Developer**, with expertise in **Python**, **C++**, and **audio programming for video games**. My goal is to contribute to innovative projects that leverage my technical skills to develop robust and efficient solutions in gaming and software development.
---
📫 **Contact**
- GitHub: [Mike014](https://github.com/Mike014)
- Email: [mikgrimaldi7@gmail.com](mailto:mikgrimaldi7@gmail.com)