56 lines
3.6 KiB
Markdown
56 lines
3.6 KiB
Markdown
# DD-SWNG-20251020-V
|
|
This README takes the place of the usual spots on the public.dillerdigital.com server.
|
|
|
|
- [Class Recordings on OneDrive](https://dillerdigital-my.sharepoint.com/:f:/g/personal/tim_dillerdigital_onmicrosoft_com/Eh74L3f0Z1hFvIul8oCvmb0BnRL9-b59aM-6J5jd1tuQ_A?e=wjcFeW) (Access expires 7 Nov 2025)
|
|
|
|
# Fancy Math Project
|
|
- Install for editing from top level of this repo:
|
|
```
|
|
$ pip install -e .
|
|
```
|
|
|
|
# Day 1 Resources
|
|
- [Our class repository on the Diller Digital git server](https://git.dillerdigital.com/DillerDigitalStudents/DD-SWNG-20251020-V)
|
|
- [Help for SSH errors](https://docs.gitea.com/help/faq?_highlight=ssh#ssh-common-errors)
|
|
- Command to list all the files in git repository under version control: `git ls-files`
|
|
|
|
# Day 2 Resources
|
|
- Daniel Kahneman's [Thinking, Fast and Slow](https://archive.org/details/DanielKahnemanThinkingFastAndSlow?)
|
|
- The Python [PEP8 Guide](https://peps.python.org/pep-0008/)
|
|
- The [Black](https://pypi.org/project/black/#description) Python code style checker / enforcer.
|
|
- The Mathworks' [MATLAB Style Guide](https://www.mathworks.com/matlabcentral/fileexchange/46056-matlab-style-guidelines-2-0)
|
|
- A community-maintained [Style Guide for MATLAB](https://sites.google.com/site/matlabstyleguidelines/home)
|
|
## For the C Language
|
|
- [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
|
|
- [`cpplint`](https://github.com/cpplint/cpplint) is a style _linter_ for C that checks against the Google C++ Style Guide.
|
|
- [LLVM Code Style Guide](https://llvm.org/docs/CodingStandards.html)
|
|
- [`clang-tidy`](https://clang.llvm.org/extra/clang-tidy/) Can be configured to a variety of code styles.
|
|
|
|
# Day 3 Resources
|
|
- *Python Typing is for Humans*: [Unital.dev blog](https://www.unital.dev/blog/python-typing-is-for-humans/) or [LinkedIn](https://www.linkedin.com/pulse/python-typing-humans-corran-webster-u66ee)
|
|
- [*Domain Driven Design*](https://www.oreilly.com/library/view/domain-driven-design-tackling/0321125215/) (O'Reilly)
|
|
- [PyData Sphinx Theme](https://pydata-sphinx-theme.readthedocs.io/en/stable/)
|
|
- [Sphinx AutoAPI](https://sphinx-autoapi.readthedocs.io/en/latest/)
|
|
- Find the refactoring Give It A Try in `files/convert_mass.py`
|
|
|
|
# Day 4 Resourecs
|
|
- The [Day 4 Notebook](files/Day4.ipynb) is in `files/Day4.ipynb`.
|
|
- [Arrays and Lists](https://blog.dillerdigital.com/arrays-and-lists/) from the Diller Digital Blog
|
|
- [Cython](https://cython.org/) - tool for building C extensions in Python. Particularly good for seamlessly handing off Numpy `ndarray`s to C-array code. Tim and Corran's former coworker Kurt Smith literally [wrote the book](https://www.oreilly.com/library/view/cython/9781491901731/) on Cython.
|
|
- [`ctypes`](https://docs.python.org/3/library/ctypes.html) - a lower level tool for extending Python with C.
|
|
- [Tim's favorite logging setup](https://github.com/timdiller/favorite_logging_setup) on Github.
|
|
- [`line_profiler`](https://kernprof.readthedocs.io/en/latest/#line-profiler-basic-usage) written by Tim and Corran's former coworker Robert Kern (hence the name `kernprof` for the command line tool). Summary of usage:
|
|
```
|
|
> pip install line_profiler
|
|
# add `from line_profiler import profile` to module to be profiled
|
|
# decorate functions to be profiled with `@profile`
|
|
> kernprof -l module_to_profile.py
|
|
Wrote profile results to 'module_to_profile.py.lprof'
|
|
Inspect results with:
|
|
python -m line_profiler -rmt module_to_profile.py.lprof
|
|
> python -m line_profiler -rmt module_to_profile.py.lprof
|
|
```
|
|
|
|
# Day 5 Resources
|
|
- [5 Worlds](https://www.joelonsoftware.com/2002/05/06/five-worlds/) from Joel Spolsky's blog.
|