Skip to content

Commit

Permalink
Blog post on UML and the Strategy Design Pattern (#52)
Browse files Browse the repository at this point in the history
* My RSE blog post makes a contribution towards explaining UML and the Strategy Design Pattern followed
by a practical example from option pricing.

In particular, we:
- Introduce UML and its role in software architecture
- Detail the Strategy Pattern and its components (Context, Strategy Interface, ConcreteStrategy)
- Include a practical example of pricing European options using the Black-Scholes-Merton equation
- Integrate relevant mathematical expressions and explanations

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* - Making `markdownlint` happy (hopefully) by removing blank lines.
- Fix trailing whitespace issues

* Improved explanation of the financial contract
that is priced in this tutorial.

* Incremental commit of the
restructured introduction that aims at being more explanatory and clearer on what the blog post deals with. This sets and simultaneously limits expectations and provides the reader with a clear overview.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add RSECon24 blog

* Apply suggestions from Dan's review

Co-authored-by: Dan Cummins <[email protected]>

* include avatar links

* include Rivers State

* add some details to conclusion

* some more details

* mlc: Ignore requests to sqlitebrowser.org

* Apply suggestions from code review

Co-authored-by: Alex Dewar <[email protected]>

* Update docs/posts/20240920_rsecon_2024.md

Co-authored-by: Alex Dewar <[email protected]>

* Centre RSECon24 logo

This small change centre-aligns the RSECon24 logo to make it consistent with the RSLondon blog post.

* pyproject.toml: Relax Python version requirements

Given that mkdocs works with a range of Python versions, we don't need to constrain users to a specific version as we do with other projects, so let's relax the requirement a bit to ease local development.

Closes #23.

* Remove codespell and use Spellcheck GitHub action

* Add custom wordlist

* Use preferred character for apostrophe

* Update wordlist

* Change when workflow is run

* Fix CI workflow to fix "externally managed" error

* PR feeback implementation

* Set British dialect

* Trying additional markdown config

* Remove additional markdown config

It does not seem possible to ignore the front matter of the markdown files, meaning that author names, etc., must be included in the whitelist.

* Amend wordlist and fix spelling

* Use pipx to install poetry

* Ignore bad link

* mkdocs: Enable pymdownx.tilde extension

* Fix dead link in RSECon 2022 post

Fixes #70.

* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/pre-commit/pre-commit-hooks: v4.6.0 → v5.0.0](pre-commit/pre-commit-hooks@v4.6.0...v5.0.0)
- [github.com/igorshubovych/markdownlint-cli: v0.41.0 → v0.42.0](igorshubovych/markdownlint-cli@v0.41.0...v0.42.0)

* pre-commit: Use `markdownlint-fix` hook cf. `markdownlint`

There's no difference except that `markdownlint-fix` will automatically
fix some errors. Let's use it to minimise the amount of time we have to
spend mindlessly fiddling with whitespace.

* Configure `markdownlint` using config file

This is clearer than adding extra args.

* markdownlint: Re-enable MD041

Requires a top-level heading. See: https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md#md041---first-line-in-file-should-be-a-top-level-header

None of our posts actually violate this rule, so let's re-enable it.

* pyproject.toml: Remove duplicate entry for pre-commit

* pyproject.toml: Remove redundant docs group

* pyproject.toml: Fix name of package

* pyproject.toml: Fix email

* Regenerate poetry.lock

* - Improved tutorial: Adapted functional programming paradigm and changed UML diagrams and Oython code accordingly.
- Expanded the overall text.
- Included a section on the put-call parity to test the fair pricing
- Increased the number of references

* attempt to avoid spell-checking code blocks as well as references.

* another attempt to save spell checker from itself by modifying
`.spellcheck.yml`

* .

* .

* .

* .

* .

* Implemented most of Alex's review requests.

Moreover, I reformatted the references sections as well as in-text references.

Also, I slightly refined the text for fluency and improved some explanations.

* Amended `References` section so markdown lint stops complaining. The original implementation renders beautifully and without errors on my local machine, but the pre-commit hooks complain.

* attempt to make spellcheck pass.The only place I have 'Modeling' in my blog post is in the References section and I thought to disable spellcheck like so

<!-- spell-check-ignore -->
...
<!-- end-spell-check-ignore -->

will make it pass, but as it stands it does not.

* Implemented reviewer's suggestions.

* Make Spellcheck pass. All else is good to go.

* Make Spellcheck pass. All else is good to go.

* Apply suggestions from code review

Co-authored-by: Dan Cummins <[email protected]>

* Update docs/posts/20241031_design_patterns_2024.md

* Update docs/posts/20241031_design_patterns_2024.md

* Update 20241031_design_patterns_2024.md

Committed @dc2917's suggestion.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Diego Alonso Álvarez <[email protected]>
Co-authored-by: Saranjeet Kaur <[email protected]>
Co-authored-by: Dan Cummins <[email protected]>
Co-authored-by: Alex Dewar <[email protected]>
Co-authored-by: Alex Dewar <[email protected]>
Co-authored-by: Adrian D'Alessandro <[email protected]>
Co-authored-by: Ryan Smith <[email protected]>
  • Loading branch information
9 people authored Oct 29, 2024
1 parent 7288b0f commit 579ed99
Show file tree
Hide file tree
Showing 4 changed files with 498 additions and 0 deletions.
41 changes: 41 additions & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,44 @@ Zenodo
Zsh
zsh
Álvarez
OOP
UML
Vlissides
al
et
Booch
incentivises
plantuml
startuml
enduml
synonymously
counterparty
frac
Scholes
Shreve
rT
ln
sqrt
cdot
BlackScholesOption
OptionPriceStrategy
european
dataclass
dataclasses
np
numpy
scipy
cdf
PV
Springer
Rumbaugh
nd
se
Gemma
ies
Modeling
iplantuml
ConcreteStrategy
labeled
isclose
Creational
Loading

0 comments on commit 579ed99

Please sign in to comment.