diff --git a/.gitignore b/.gitignore index 957b1d91f..06bbdea67 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ content/.obsidian .obsidian assets/indices/linkIndex.json assets/indices/contentIndex.json +*.ps1 diff --git a/content/Attachments/screenshots/freestyle-generator.md b/content/Attachments/screenshots/freestyle-generator.md new file mode 100644 index 000000000..c4521d7d9 --- /dev/null +++ b/content/Attachments/screenshots/freestyle-generator.md @@ -0,0 +1,28 @@ + +![300](https://i.imgur.com/RGsVI94.jpg) +![300](https://i.imgur.com/1VxppyF.jpg) +![300](https://i.imgur.com/IVlvyiu.jpg) + +![300](https://i.imgur.com/LYUsZsc.jpg) +![300](https://i.imgur.com/W250pFy.jpg) +![300](https://i.imgur.com/TKILRGr.jpg) + +![300](https://i.imgur.com/X3o6CVM.jpg) +![300](https://i.imgur.com/EPtSXXq.jpg) +![300](https://i.imgur.com/3hiej7Q.jpg) + +![300](https://i.imgur.com/tQpOVdO.jpg) +![300](https://i.imgur.com/GgsO55c.jpg) +![300](https://i.imgur.com/QxPoMv1.jpg) + +![300](https://i.imgur.com/golxYiJ.jpg) +![300](https://i.imgur.com/b4P43Tt.jpg) +![300](https://i.imgur.com/ldPPltS.jpg) + +![300](https://i.imgur.com/RiBdUWY.jpg) +![300](https://i.imgur.com/zDesOpU.jpg) +![300](https://i.imgur.com/iqpbmoY.jpg) + +![300](https://i.imgur.com/MUnXEJ5.jpg) +![300](https://i.imgur.com/IVRkQId.jpg) +![300](https://i.imgur.com/wHizjAN.jpg) \ No newline at end of file diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195025_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195025_Freestyle Generator.jpg new file mode 100644 index 000000000..b2c018a5a Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195025_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195030_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195030_Freestyle Generator.jpg new file mode 100644 index 000000000..a72c03b2b Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195030_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195040_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195040_Freestyle Generator.jpg new file mode 100644 index 000000000..199638d43 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195040_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195045_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195045_Freestyle Generator.jpg new file mode 100644 index 000000000..9f01d60fc Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195045_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195052_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195052_Freestyle Generator.jpg new file mode 100644 index 000000000..2becaf3b6 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195052_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195059_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195059_Freestyle Generator.jpg new file mode 100644 index 000000000..66fc9e29a Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195059_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195106_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195106_Freestyle Generator.jpg new file mode 100644 index 000000000..ee3902389 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195106_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195110_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195110_Freestyle Generator.jpg new file mode 100644 index 000000000..b06fde768 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195110_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195116_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195116_Freestyle Generator.jpg new file mode 100644 index 000000000..ea538046e Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195116_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195123_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195123_Freestyle Generator.jpg new file mode 100644 index 000000000..31603331a Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195123_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195127_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195127_Freestyle Generator.jpg new file mode 100644 index 000000000..347dc5847 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195127_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195132_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195132_Freestyle Generator.jpg new file mode 100644 index 000000000..158ae5a7b Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195132_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195138_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195138_Freestyle Generator.jpg new file mode 100644 index 000000000..c00770cf9 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195138_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195204_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195204_Freestyle Generator.jpg new file mode 100644 index 000000000..feddc9ec9 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195204_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195211_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195211_Freestyle Generator.jpg new file mode 100644 index 000000000..e4e7a6b72 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195211_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195220_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195220_Freestyle Generator.jpg new file mode 100644 index 000000000..6c549e3c7 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195220_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195311_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195311_Freestyle Generator.jpg new file mode 100644 index 000000000..4551e4c2e Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195311_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195321_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195321_Freestyle Generator.jpg new file mode 100644 index 000000000..047b757d2 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195321_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195328_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195328_Freestyle Generator.jpg new file mode 100644 index 000000000..ecc4f1791 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195328_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195349_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195349_Freestyle Generator.jpg new file mode 100644 index 000000000..7a5dc21c2 Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195349_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195355_Freestyle Generator.jpg b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195355_Freestyle Generator.jpg new file mode 100644 index 000000000..8cd17b24b Binary files /dev/null and b/content/Attachments/screenshots/freestylegenerator/Screenshot_20220409-195355_Freestyle Generator.jpg differ diff --git a/content/Attachments/screenshots/getatrick.md b/content/Attachments/screenshots/getatrick.md new file mode 100644 index 000000000..a05c94abb --- /dev/null +++ b/content/Attachments/screenshots/getatrick.md @@ -0,0 +1,23 @@ +![300](Attachments/screenshots/getatrick/Screenshot_20220409-191929_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-191934_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192004_Opera.jpg) + +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192053_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192109_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192115_Opera.jpg) + +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192121_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192223_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192304_Opera.jpg) + +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192327_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-192532_Opera.jpg) +![300](Attachments/screenshots/getatrick/Screenshot_20220409-191832_Opera.jpg) + +![300](Screenshot_20220409-192248_Opera%201.jpg) + +![300](Screenshot_20220409-192346_Opera%201.jpg) + +![300](Screenshot_20220409-192442_Opera%201.jpg) + +![300](Attachments/screenshots/getatrick/Screenshot_20220409-191939_Opera.jpg) \ No newline at end of file diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-191832_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191832_Opera.jpg new file mode 100644 index 000000000..5b0607789 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191832_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-191929_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191929_Opera.jpg new file mode 100644 index 000000000..419947484 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191929_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-191934_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191934_Opera.jpg new file mode 100644 index 000000000..a59863ab7 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191934_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-191939_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191939_Opera.jpg new file mode 100644 index 000000000..519ddfb75 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-191939_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192004_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192004_Opera.jpg new file mode 100644 index 000000000..332d0ec48 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192004_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192053_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192053_Opera.jpg new file mode 100644 index 000000000..44de9f5de Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192053_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192109_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192109_Opera.jpg new file mode 100644 index 000000000..05f665594 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192109_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192115_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192115_Opera.jpg new file mode 100644 index 000000000..f164afd48 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192115_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192121_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192121_Opera.jpg new file mode 100644 index 000000000..474fc1eed Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192121_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192133_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192133_Opera.jpg new file mode 100644 index 000000000..6c01e7e90 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192133_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192204_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192204_Opera.jpg new file mode 100644 index 000000000..cde1cf01d Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192204_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192223_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192223_Opera.jpg new file mode 100644 index 000000000..73977c21b Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192223_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192248_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192248_Opera.jpg new file mode 100644 index 000000000..20945fe6e Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192248_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192304_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192304_Opera.jpg new file mode 100644 index 000000000..496f49357 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192304_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192327_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192327_Opera.jpg new file mode 100644 index 000000000..aabaa6227 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192327_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192346_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192346_Opera.jpg new file mode 100644 index 000000000..b94ab3e97 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192346_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192442_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192442_Opera.jpg new file mode 100644 index 000000000..cddbb5ad3 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192442_Opera.jpg differ diff --git a/content/Attachments/screenshots/getatrick/Screenshot_20220409-192532_Opera.jpg b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192532_Opera.jpg new file mode 100644 index 000000000..15df47ce9 Binary files /dev/null and b/content/Attachments/screenshots/getatrick/Screenshot_20220409-192532_Opera.jpg differ diff --git a/content/Attachments/screenshots/scooter-trick-generator.md b/content/Attachments/screenshots/scooter-trick-generator.md new file mode 100644 index 000000000..3232b1487 --- /dev/null +++ b/content/Attachments/screenshots/scooter-trick-generator.md @@ -0,0 +1,13 @@ +![](Screenshot_20220409-195535_Scooter%20Trick%20Generator%201.jpg) +![](Screenshot_20220409-195539_Scooter%20Trick%20Generator%201.jpg) +![](Screenshot_20220409-195547_Scooter%20Trick%20Generator%201.jpg) + +![](Screenshot_20220409-195555_Scooter%20Trick%20Generator%201.jpg) +![](Screenshot_20220409-195600_Scooter%20Trick%20Generator%201.jpg) +![](Screenshot_20220409-195629_Scooter%20Trick%20Generator%201.jpg) + +![300](Screenshot_20220409-195454_Scooter%20Trick%20Generator%201.jpg) +![](Screenshot_20220409-195650_Scooter%20Trick%20Generator%201.jpg) +![](Screenshot_20220409-195439_Scooter%20Trick%20Generator%201.jpg) + +![](Screenshot_20220409-195637_Scooter%20Trick%20Generator%201.jpg) \ No newline at end of file diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195439_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195439_Scooter Trick Generator.jpg new file mode 100644 index 000000000..fb2514bef Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195439_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195454_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195454_Scooter Trick Generator.jpg new file mode 100644 index 000000000..1878469fe Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195454_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195535_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195535_Scooter Trick Generator.jpg new file mode 100644 index 000000000..d4c36c459 Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195535_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195539_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195539_Scooter Trick Generator.jpg new file mode 100644 index 000000000..53f335601 Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195539_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195547_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195547_Scooter Trick Generator.jpg new file mode 100644 index 000000000..c6c92d824 Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195547_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195555_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195555_Scooter Trick Generator.jpg new file mode 100644 index 000000000..c4dc83cd1 Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195555_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195600_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195600_Scooter Trick Generator.jpg new file mode 100644 index 000000000..20639d248 Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195600_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195629_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195629_Scooter Trick Generator.jpg new file mode 100644 index 000000000..2ec9708cc Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195629_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195637_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195637_Scooter Trick Generator.jpg new file mode 100644 index 000000000..bd8523a41 Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195637_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195650_Scooter Trick Generator.jpg b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195650_Scooter Trick Generator.jpg new file mode 100644 index 000000000..fb0526f24 Binary files /dev/null and b/content/Attachments/screenshots/scootertrickgenerator/Screenshot_20220409-195650_Scooter Trick Generator.jpg differ diff --git a/content/Attachments/screenshots/screenshots.md b/content/Attachments/screenshots/screenshots.md new file mode 100644 index 000000000..ac51ea8e8 --- /dev/null +++ b/content/Attachments/screenshots/screenshots.md @@ -0,0 +1,9 @@ +[mobile-app-ass-03](notes/mobile-app-ass-03.md) + +- [freestyle-generator](Attachments/screenshots/freestyle-generator.md) +- [getatrick](Attachments/screenshots/getatrick.md) +- [scooter-trick-generator](Attachments/screenshots/scooter-trick-generator.md) +- [skateboard-tricks](Attachments/screenshots/skateboard-tricks.md) +- [skate-dice](Attachments/screenshots/skate-dice.md) +- [skategen](Attachments/screenshots/skategen.md) +- [skatetricks](Attachments/screenshots/skatetricks.md) \ No newline at end of file diff --git a/content/Attachments/screenshots/skate-dice.md b/content/Attachments/screenshots/skate-dice.md new file mode 100644 index 000000000..9c20c8e2b --- /dev/null +++ b/content/Attachments/screenshots/skate-dice.md @@ -0,0 +1,5 @@ +![](Attachments/screenshots/skatedice/Screenshot_20220409-192630_Skate%20Dice.jpg) +![](Attachments/screenshots/skatedice/Screenshot_20220409-192642_Skate%20Dice.jpg) +![](Attachments/screenshots/skatedice/Screenshot_20220409-192744_Skate%20Dice.jpg) + +![300](Attachments/screenshots/skatedice/Screenshot_20220409-192624_Skate%20Dice.jpg) \ No newline at end of file diff --git a/content/Attachments/screenshots/skateboard-tricks.md b/content/Attachments/screenshots/skateboard-tricks.md new file mode 100644 index 000000000..934a47704 --- /dev/null +++ b/content/Attachments/screenshots/skateboard-tricks.md @@ -0,0 +1,10 @@ +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-193841_Skateboard%20tricks.jpg) +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-193846_Skateboard%20tricks.jpg) +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-193856_Skateboard%20tricks.jpg) + +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-193912_Skateboard%20tricks.jpg) +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-194012_Skateboard%20tricks.jpg) +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-194026_Skateboard%20tricks.jpg) + +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-194033_Skateboard%20tricks.jpg) +![](Attachments/screenshots/skateboardtricks/Screenshot_20220409-193823_Skateboard%20tricks.jpg) \ No newline at end of file diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193823_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193823_Skateboard tricks.jpg new file mode 100644 index 000000000..22ab3a608 Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193823_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193841_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193841_Skateboard tricks.jpg new file mode 100644 index 000000000..ed4e7d944 Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193841_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193846_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193846_Skateboard tricks.jpg new file mode 100644 index 000000000..c2d8300f5 Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193846_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193856_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193856_Skateboard tricks.jpg new file mode 100644 index 000000000..0e2000e7f Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193856_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193912_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193912_Skateboard tricks.jpg new file mode 100644 index 000000000..b1c730bf3 Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-193912_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194012_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194012_Skateboard tricks.jpg new file mode 100644 index 000000000..db97a4c0d Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194012_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194026_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194026_Skateboard tricks.jpg new file mode 100644 index 000000000..5aca42bf6 Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194026_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194033_Skateboard tricks.jpg b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194033_Skateboard tricks.jpg new file mode 100644 index 000000000..f8da35105 Binary files /dev/null and b/content/Attachments/screenshots/skateboardtricks/Screenshot_20220409-194033_Skateboard tricks.jpg differ diff --git a/content/Attachments/screenshots/skatedice/Screenshot_20220409-192624_Skate Dice.jpg b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192624_Skate Dice.jpg new file mode 100644 index 000000000..bcca2e939 Binary files /dev/null and b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192624_Skate Dice.jpg differ diff --git a/content/Attachments/screenshots/skatedice/Screenshot_20220409-192630_Skate Dice.jpg b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192630_Skate Dice.jpg new file mode 100644 index 000000000..998731fe5 Binary files /dev/null and b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192630_Skate Dice.jpg differ diff --git a/content/Attachments/screenshots/skatedice/Screenshot_20220409-192642_Skate Dice.jpg b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192642_Skate Dice.jpg new file mode 100644 index 000000000..59c541c86 Binary files /dev/null and b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192642_Skate Dice.jpg differ diff --git a/content/Attachments/screenshots/skatedice/Screenshot_20220409-192744_Skate Dice.jpg b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192744_Skate Dice.jpg new file mode 100644 index 000000000..0d287995d Binary files /dev/null and b/content/Attachments/screenshots/skatedice/Screenshot_20220409-192744_Skate Dice.jpg differ diff --git a/content/Attachments/screenshots/skategen.md b/content/Attachments/screenshots/skategen.md new file mode 100644 index 000000000..1bbf96da7 --- /dev/null +++ b/content/Attachments/screenshots/skategen.md @@ -0,0 +1,18 @@ +![](Attachments/screenshots/skategen/Screenshot_20220409-194631_Skate%20Gen.jpg) +![](Attachments/screenshots/skategen/Screenshot_20220409-194658_Skate%20Gen.jpg) +![](Attachments/screenshots/skategen/Screenshot_20220409-194703_Skate%20Gen.jpg) + +![](Attachments/screenshots/skategen/Screenshot_20220409-194729_Skate%20Gen.jpg) +![](Attachments/screenshots/skategen/Screenshot_20220409-194828_Skate%20Gen.jpg) +![](Attachments/screenshots/skategen/Screenshot_20220409-194921_Skate%20Gen.jpg) + +![](Attachments/screenshots/skategen/Screenshot_20220409-194835_Skate%20Gen.jpg) +![](Attachments/screenshots/skategen/Screenshot_20220409-194912_Skate%20Gen.jpg) +![](Attachments/screenshots/skategen/Screenshot_20220409-194928_Skate%20Gen.jpg) + +![](Attachments/screenshots/skategen/Screenshot_20220409-194933_Skate%20Gen.jpg) +![](Attachments/screenshots/skategen/Screenshot_20220409-194619_Skate%20Gen.jpg) + +![](Attachments/screenshots/skategen/Screenshot_20220409-194741_Skate%20Gen.jpg) + +![](Attachments/screenshots/skategen/Screenshot_20220409-194857_Skate%20Gen.jpg) \ No newline at end of file diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194619_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194619_Skate Gen.jpg new file mode 100644 index 000000000..9e5dbf7fb Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194619_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194631_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194631_Skate Gen.jpg new file mode 100644 index 000000000..2a3f26b20 Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194631_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194658_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194658_Skate Gen.jpg new file mode 100644 index 000000000..f249fc956 Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194658_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194703_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194703_Skate Gen.jpg new file mode 100644 index 000000000..d7602d100 Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194703_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194729_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194729_Skate Gen.jpg new file mode 100644 index 000000000..1446f5885 Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194729_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194741_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194741_Skate Gen.jpg new file mode 100644 index 000000000..2b2f6d4aa Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194741_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194828_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194828_Skate Gen.jpg new file mode 100644 index 000000000..1cc2b135c Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194828_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194835_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194835_Skate Gen.jpg new file mode 100644 index 000000000..6569e3a42 Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194835_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194857_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194857_Skate Gen.jpg new file mode 100644 index 000000000..dfc372f66 Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194857_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194912_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194912_Skate Gen.jpg new file mode 100644 index 000000000..fbe6b1f7c Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194912_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194921_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194921_Skate Gen.jpg new file mode 100644 index 000000000..b26c9a9d2 Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194921_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194928_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194928_Skate Gen.jpg new file mode 100644 index 000000000..961f848db Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194928_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skategen/Screenshot_20220409-194933_Skate Gen.jpg b/content/Attachments/screenshots/skategen/Screenshot_20220409-194933_Skate Gen.jpg new file mode 100644 index 000000000..3843354aa Binary files /dev/null and b/content/Attachments/screenshots/skategen/Screenshot_20220409-194933_Skate Gen.jpg differ diff --git a/content/Attachments/screenshots/skatetricks.md b/content/Attachments/screenshots/skatetricks.md new file mode 100644 index 000000000..bb10cb233 --- /dev/null +++ b/content/Attachments/screenshots/skatetricks.md @@ -0,0 +1,36 @@ +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193029_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193032_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193038_Skate%20Tricks.jpg) + +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193052_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193104_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193146_Skate%20Tricks.jpg) + +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193156_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193213_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193244_Skate%20Tricks.jpg) + +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193252_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193257_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193312_Skate%20Tricks.jpg) + +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193318_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193322_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193424_Skate%20Tricks.jpg) + +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193448_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193520_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193544_Skate%20Tricks.jpg) + +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193604_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193756_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193714_Skate%20Tricks.jpg) + +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193749_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193720_Skate%20Tricks.jpg) +![](Attachments/screenshots/skatetricks/Screenshot_20220409-193025_Skate%20Tricks.jpg) + +![200](Attachments/screenshots/skatetricks/Screenshot_20220409-193552_Skate%20Tricks.jpg) +![200](Attachments/screenshots/skatetricks/Screenshot_20220409-193620_Skate%20Tricks.jpg) + +![200](Attachments/screenshots/skatetricks/Screenshot_20220409-193431_Skate%20Tricks.jpg) \ No newline at end of file diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193025_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193025_Skate Tricks.jpg new file mode 100644 index 000000000..079fbe7ab Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193025_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193029_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193029_Skate Tricks.jpg new file mode 100644 index 000000000..519ce7c19 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193029_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193032_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193032_Skate Tricks.jpg new file mode 100644 index 000000000..df04cd13d Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193032_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193038_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193038_Skate Tricks.jpg new file mode 100644 index 000000000..c645f61ac Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193038_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193052_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193052_Skate Tricks.jpg new file mode 100644 index 000000000..3be1d8e42 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193052_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193104_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193104_Skate Tricks.jpg new file mode 100644 index 000000000..6daf10251 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193104_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193146_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193146_Skate Tricks.jpg new file mode 100644 index 000000000..6a3d4bb36 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193146_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193156_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193156_Skate Tricks.jpg new file mode 100644 index 000000000..e3387a8d8 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193156_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193213_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193213_Skate Tricks.jpg new file mode 100644 index 000000000..169ce0290 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193213_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193244_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193244_Skate Tricks.jpg new file mode 100644 index 000000000..fdf6b992c Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193244_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193252_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193252_Skate Tricks.jpg new file mode 100644 index 000000000..1cc8db939 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193252_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193257_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193257_Skate Tricks.jpg new file mode 100644 index 000000000..4b23a22c9 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193257_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193312_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193312_Skate Tricks.jpg new file mode 100644 index 000000000..00c17ecbe Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193312_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193318_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193318_Skate Tricks.jpg new file mode 100644 index 000000000..6cddcf9f3 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193318_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193322_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193322_Skate Tricks.jpg new file mode 100644 index 000000000..27d7597e2 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193322_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193424_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193424_Skate Tricks.jpg new file mode 100644 index 000000000..68e6b220c Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193424_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193431_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193431_Skate Tricks.jpg new file mode 100644 index 000000000..fc653c672 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193431_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193448_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193448_Skate Tricks.jpg new file mode 100644 index 000000000..604c44973 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193448_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193520_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193520_Skate Tricks.jpg new file mode 100644 index 000000000..6b892d23f Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193520_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193544_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193544_Skate Tricks.jpg new file mode 100644 index 000000000..4f4b9a48a Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193544_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193552_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193552_Skate Tricks.jpg new file mode 100644 index 000000000..d55f15742 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193552_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193604_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193604_Skate Tricks.jpg new file mode 100644 index 000000000..1ec41be4a Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193604_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193620_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193620_Skate Tricks.jpg new file mode 100644 index 000000000..6fc04611d Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193620_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193714_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193714_Skate Tricks.jpg new file mode 100644 index 000000000..d09807937 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193714_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193720_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193720_Skate Tricks.jpg new file mode 100644 index 000000000..9ba498ec8 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193720_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193749_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193749_Skate Tricks.jpg new file mode 100644 index 000000000..044d28025 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193749_Skate Tricks.jpg differ diff --git a/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193756_Skate Tricks.jpg b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193756_Skate Tricks.jpg new file mode 100644 index 000000000..78683b242 Binary files /dev/null and b/content/Attachments/screenshots/skatetricks/Screenshot_20220409-193756_Skate Tricks.jpg differ diff --git a/content/_index.md b/content/_index.md index bdce35ad6..51ede36a6 100644 --- a/content/_index.md +++ b/content/_index.md @@ -12,6 +12,10 @@ title: "Jet Hughes" # 2 Other - [templates](notes/templates.md) +- [bash-tricks](cheatsheets/bash-tricks.md) +- [git-cheat-sheet](cheatsheets/git-cheat-sheet.md) +- [latex-cheat-sheet](cheatsheets/latex-cheat-sheet.md) +- [puml-cheat-sheet](cheatsheets/puml-cheat-sheet.md) # 3 Projects - @@ -25,5 +29,4 @@ title: "Jet Hughes" - [dotnet](notes/dotnet.md) # 6 Books - - The book of illusions diff --git a/content/daily_notes/2022-05-08.md b/content/daily_notes/2022-05-08.md new file mode 100644 index 000000000..72725370b --- /dev/null +++ b/content/daily_notes/2022-05-08.md @@ -0,0 +1,28 @@ +[2022-05-07](daily_notes/2022-05-07) << [daily-notes](notes/daily-notes.md) >> [2022-05-09](daily_notes/2022-05-09) + +--- +# 08-05-22 +[Pump - Aerosmith](spotify:album:4VWobt8JHr24Gq2qUZK7DB) +[Hey! No running in the back-arc basin!](https://imgs.xkcd.com/comics/deep_end.png) + + +## Todos +- [x] use 1001 albums api +- [x] 11:00 Cosc201 Lecture +- [ ] 12:00 Info201 Lab 8 +- [ ] Info201 Lecture 14 +- [ ] Info201 Lecture 18 +- [ ] info 202 api's lecture +- [ ] 11:00 Cosc201 18 + +## Lecture/Labs + + +## Projects +- python ai weekly review +- spotify clone + +## Links +- [202 lab book](C:\Users\Jet%20Hughes\Documents\Personal\COSC202LabBook-2.pdf) +- [i201 cousework](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) +- [i201 Assignments](https://open.spotify.com/album/23DJ3KNE5JXi61G31T2Kni?si=-zZEHXIxT2qOEN6_Ns5C5Ql) \ No newline at end of file diff --git a/content/daily_notes/2022-05-09.md b/content/daily_notes/2022-05-09.md new file mode 100644 index 000000000..e9b2e2003 --- /dev/null +++ b/content/daily_notes/2022-05-09.md @@ -0,0 +1,27 @@ +[2022-05-08](daily_notes/2022-05-08) << [daily-notes](notes/daily-notes.md) >> [2022-05-10](daily_notes/2022-05-10) + +--- +# 09-05-22 +[Dog Man Star - Suede](spotify:album:1LgpJjBJIRQhkJ01oZR3Cn) +![Hey! No running in the back-arc basin!](https://imgs.xkcd.com/comics/deep_end.png) + + +## Todos +- [ ] 12:00 Info201 Lab 8 +- [ ] Info201 Lecture 14 +- [ ] Info201 Lecture 18 +- [ ] info 202 api's lecture +- [x] 11:00 Cosc201 18 + +## Lecture/Labs +- [ ] 11:00 Cosc202 Lecture +- [ ] 12:00 Cosc201 lab + +## Projects +- python ai weekly review +- spotify clone + +## Links +- [202 lab book](C:\Users\Jet%20Hughes\Documents\Personal\COSC202LabBook-2.pdf) +- [i201 cousework](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) +- [i201 Assignments](https://open.spotify.com/album/23DJ3KNE5JXi61G31T2Kni?si=-zZEHXIxT2qOEN6_Ns5C5Ql) \ No newline at end of file diff --git a/content/notes/06-business-functions-and-use-cases.md b/content/notes/06-business-functions-and-use-cases.md index fd2ce28cc..3d6d6ed9e 100644 --- a/content/notes/06-business-functions-and-use-cases.md +++ b/content/notes/06-business-functions-and-use-cases.md @@ -3,20 +3,23 @@ title: "06-business-functions-and-use-cases" tags: - info201 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 270 --- -[[notes/approaches-to-systems-development]] +[approaches-to-systems-development](notes/approaches-to-systems-development.md) 1. What are the two main approaches to systems development and how do they differ -[[notes/business-functions]] +[business-functions](notes/business-functions.md) 2. What are business functions 3. What is a use case 4. What is a use case diagram used for -[[notes/use-case-diagrams]] +[use-case-diagrams](notes/use-case-diagrams.md) - dependencies - includes diff --git a/content/notes/07-business-process-modelling.md b/content/notes/07-business-process-modelling.md index 3a028b127..e97c012d9 100644 --- a/content/notes/07-business-process-modelling.md +++ b/content/notes/07-business-process-modelling.md @@ -3,6 +3,9 @@ title: "07-business-process-modelling" tags: - info201 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 270 --- - understand core onepts realted to business process mondelling @@ -10,7 +13,7 @@ tags: - understand the elemeents of a UML activity diagram 1. What is a business process -- [[notes/business-process]] -- [[notes/business-process-model]] -- [[notes/business-process-model-and-notation]] -- [[notes/UML]] +- [business-process](notes/business-process.md) +- [business-process-model](notes/business-process-model.md) +- [business-process-model-and-notation](notes/business-process-model-and-notation.md) +- [unified-modelling-language](notes/unified-modelling-language.md) diff --git a/content/notes/07-heuristic-evaluation-cont.md b/content/notes/07-heuristic-evaluation-cont.md index c16e1793d..783323c9e 100644 --- a/content/notes/07-heuristic-evaluation-cont.md +++ b/content/notes/07-heuristic-evaluation-cont.md @@ -3,6 +3,9 @@ title: "07-heuristic-evaluation-cont" tags: - info203 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 250 --- [heuristic-evaluation](notes/heuristic-evaluation.md) diff --git a/content/notes/07-testing.md b/content/notes/07-testing.md index 4c30c83a5..ec8fe2541 100644 --- a/content/notes/07-testing.md +++ b/content/notes/07-testing.md @@ -3,11 +3,14 @@ title: "07-testing" tags: - cosc202 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 270 --- -- [[notes/testing]] -- [[notes/test-driven-development]] -- [[notes/unit-testing]] +- [testing](notes/testing.md) +- [test-driven-development](notes/test-driven-development.md) +- [unit-testing](notes/unit-testing.md) - undnerstand that testing is useful for detecting bugs - contrast different types of testting diff --git a/content/notes/08-debugging.md b/content/notes/08-debugging.md index e0e1a05ef..3391a4f20 100644 --- a/content/notes/08-debugging.md +++ b/content/notes/08-debugging.md @@ -3,6 +3,9 @@ title: "08-debugging" tags: - cosc202 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 250 --- -[[notes/debugging]] +[debugging](notes/debugging.md) diff --git a/content/notes/09-stacks-and-queues.md b/content/notes/09-stacks-and-queues.md deleted file mode 100644 index 1cf016cc0..000000000 --- a/content/notes/09-stacks-and-queues.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "09-stacks-and-queues" -tags: -- cosc201 -- lecture ---- - -- [[notes/stacks-and-queues]] -- [[notes/priority-queue]] -- [[notes/heap]] \ No newline at end of file diff --git a/content/notes/09-stacks-queues-heaps.md b/content/notes/09-stacks-queues-heaps.md new file mode 100644 index 000000000..e93de70f7 --- /dev/null +++ b/content/notes/09-stacks-queues-heaps.md @@ -0,0 +1,13 @@ +--- +title: "09-stacks-queues-heaps" +tags: +- cosc201 +- lecture +sr-due: 2022-05-10 +sr-interval: 1 +sr-ease: 210 +--- + +- [stacks-and-queues](notes/stacks-and-queues.md) +- [priority-queue](notes/priority-queue.md) +- [heap](notes/heap.md) \ No newline at end of file diff --git a/content/notes/10-continuous-integration-1.md b/content/notes/10-continuous-integration-1.md index 99fc749f6..3bb910c13 100644 --- a/content/notes/10-continuous-integration-1.md +++ b/content/notes/10-continuous-integration-1.md @@ -3,6 +3,9 @@ title: "10-continuous-integration-1" tags: - cosc202 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 250 --- [continuous-integration](notes/continuous-integration.md) diff --git a/content/notes/10-design-heuristics-1.md b/content/notes/10-design-heuristics-1.md index 71091831b..dcc48bc35 100644 --- a/content/notes/10-design-heuristics-1.md +++ b/content/notes/10-design-heuristics-1.md @@ -3,6 +3,9 @@ title: "10-design-heuristics-1" tags: - info203 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 250 --- ## 1 Wizard of OZ diff --git a/content/notes/10-heaps-and-heapsort.md b/content/notes/10-heaps-and-heapsort.md index d7504635f..e146e5b1b 100644 --- a/content/notes/10-heaps-and-heapsort.md +++ b/content/notes/10-heaps-and-heapsort.md @@ -11,11 +11,11 @@ tags: [heaps-and-heapsort](notes/heaps-and-heapsort.md) -## 0.1 Overview +# 1 Overview [[notes/heap]] -## 0.2 Operations -### 0.2.1 Add element +# 2 Operations +## 2.1 Add element Assumptions - access first vacant position - set (or find) the value $H.q$ stored in any (occupied) position $q$ @@ -34,7 +34,7 @@ end while ``` -### 0.2.2 Remove the maximum +## 2.2 Remove the maximum Outcome: Change H by removing its maximum (i.e., root) value wile maintaining the heap conditions ``` @@ -55,14 +55,14 @@ return v ``` -### 0.2.3 Complexity +## 2.3 Complexity In addition, we move along a branch from an added element up to the root, fixing violations as we go In removal, we move from the root down through some branch until all violations are fixed (can only occur if node has children) So both loops do most Ο(lg n) -### 0.2.4 Storage +## 2.4 Storage ![](https://i.imgur.com/04qVrGQ.png#invert) - Array @@ -75,18 +75,18 @@ So both loops do most Ο(lg n) - get children of q --> (2 * q) ± 2 - identify if q is root --> q == 0 -### 0.2.5 Implementation +## 2.5 Implementation Use java.util.PriorityQueue -## 0.3 Heap Sort +# 3 Heap Sort In place and ϴ(n lg n) - start with array - using itself as a heap, add the elements one at a time until all been added - Then remove them one at a time - the largest elements gets removed first and the place where is needs to be put gets freed from the map -## 0.4 Heap vs Merge +# 4 Heap vs Merge heap --> in place, ϴ(n lg n) merge --> not in place, Ο(n lg n) diff --git a/content/notes/10-oop-concepts-and-uml.md b/content/notes/10-oop-concepts-and-uml.md index 6d68db8d0..f4794be83 100644 --- a/content/notes/10-oop-concepts-and-uml.md +++ b/content/notes/10-oop-concepts-and-uml.md @@ -3,6 +3,14 @@ title: "10-oop-concepts-and-uml" tags: - info201 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 270 --- +1. what is the concept of encapsulation and how is it enforced for objects +2. how does and object refernce differ from a relational foreign key +3. give an example of how difference UML diagram types can be linked when modelling a system +- [object](notes/object.md) +- [unified-modelling-language](notes/unified-modelling-language.md) \ No newline at end of file diff --git a/content/notes/11-class-diagrams.md b/content/notes/11-class-diagrams.md index 82fb81766..7449f82eb 100644 --- a/content/notes/11-class-diagrams.md +++ b/content/notes/11-class-diagrams.md @@ -1,6 +1,6 @@ --- title: "11-class-diagrams" -aliases: Class Diagrams +aliases: tags: - info201 - lecture @@ -9,137 +9,4 @@ sr-interval: 20 sr-ease: 250 --- -[Class Diagrams](notes/11-class-diagrams.md) - -e.g., ![](https://i.imgur.com/rFmUs5r.png) -![](https://i.imgur.com/1kO9BDk.png) - - -## 1 Stereotypes -add further meaning to fields and methods -- e.g., << unique >>, << abstrat >>, << interface >>, - -## 2 Packages -group classes together -break system to logical chunks -package diagram, a class diagram with nothing but packages - -![](https://i.imgur.com/UiXZeha.png) - -## 3 Associations -UML anaglogue of ERD relationsips -- multiplicity -- realtionshpa nd role names - -PlUS -- naviagability --> instances of one class can pass messages to instances of another -- several differnt types, e.g., composition, aggregation, associateive classes - -### 3.1 multuplicity -![](https://i.imgur.com/1dSergW.png) -![](https://i.imgur.com/4TKsBKd.png) - -ERDsd effectively only do zero one many -UML can to any non negative integer -default is 1 - -### 3.2 association names -![](https://i.imgur.com/btif86K.png) - -- usuallya verb phrase like "assings", "manages", "enrols in" ... -- more useful is conpetual level diagrams -- optional arrow head () - -### 3.3 Role names -![](https://i.imgur.com/3HEG9yN.png) - -At conceptual level, indicates role of class in association. - -At implementation level: -- implies a field in class at opposite end -- should include visibility -- closely related to navigability - -### 3.4 Navigability -![](https://i.imgur.com/beoNmcQ.png) - -specifies whether we can "navigate from one end of an association to another" -affects how we code access paths between objects - -e.g., -- loan instance can see loanitem instances it contains via private field items -- a loanitem instance can't see loan instance that contains it -- must alwasy include relevant role names -- no arrows = two arrows = bidirectional - -#### 3.4.1 why not always bidirectional - -- more complex code --> many references/collections to manage -- navigation paths are not all equally important - - e.g., "what items are in this loan" vs "what loans does this item appear in" - - determined by requrements and typical usage -- some classes are more "central" - - usually at the "one" end of accociations - - often represent transactional entities e.g., loan, sale, order - - navigability readiates outwards from them - -there are exceptions as always e.g., patron <-> item - - -### 3.5 Aggregation -![](https://i.imgur.com/FI21bfD.png) - -one class is made up of one or more other classes -container and content instances _can_ exist separately -usually implied by multiplicity and navigability - -e.g., -- computer is made u of several components -- library catalogue is made up of many items - - -### 3.6 Composition -![](https://i.imgur.com/2ryJXSM.png) - -stonger form of aggregation -container and content _cannot_ exist separately -usually implied by multiplicity and navigability - -e.g., -- building contains many rooms -- loan includes several items - -- coicident lifetime -- multiplicity at least 1 at both ends -- deleting an containter must also delete all associated contents -- creating a container should also create some contents - - -### 3.7 Associative classes -![](https://i.imgur.com/Rq91xGx.png) -![](https://i.imgur.com/zzOlLV1.png) - -- used for conceptual design -- similar to associative entities - - many to many relationship with additional independent fields - - resolved into class at implementation level - -### 3.8 Specialisation generalisation -![](https://i.imgur.com/kfI2YSe.png) - -class inheritance -- e.g., book and disc are subclasses of (specialise) Item -- inherit all public fields and methods of superclass -- can add their own fields and methods -- Compare with specialisation of actors and use cases - -## 4 Domain class model\ -![](https://i.imgur.com/JFHQOFA.png) - -only modles the associations among concepts from problem domain - -can be at conceptual level or implementation level - -## 5 System class model -![](https://i.imgur.com/KsQuCd5.png) -Models associations among domain objects and system components; implementation level only +[class-diagrams](notes/class-diagrams.md) \ No newline at end of file diff --git a/content/notes/13-design-heuristics-4.md b/content/notes/13-design-heuristics-4.md index 681d75406..c3fc1ced1 100644 --- a/content/notes/13-design-heuristics-4.md +++ b/content/notes/13-design-heuristics-4.md @@ -4,6 +4,9 @@ aliases: tags: - info203 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 250 --- aesthetic and minimalist diff --git a/content/notes/14-balancing-bsts.md b/content/notes/14-balancing-bsts.md index d7b613362..b17f74d83 100644 --- a/content/notes/14-balancing-bsts.md +++ b/content/notes/14-balancing-bsts.md @@ -11,6 +11,6 @@ sr-ease: 250 [balancing-binary-search-trees](notes/balancing-binary-search-trees.md) -- [avl-trees](notes/avl-trees.md) +- [avl-trees](notes/avl-trees.md) - [red-black-trees](notes/red-black-trees.md) - [treaps](notes/treaps.md) diff --git a/content/notes/15-containers.md b/content/notes/15-containers.md index 0be205b40..6326673c8 100644 --- a/content/notes/15-containers.md +++ b/content/notes/15-containers.md @@ -4,16 +4,23 @@ aliases: tags: - cosc202 - lecture -sr-due: 2022-05-09 -sr-interval: 7 +sr-due: 2022-05-27 +sr-interval: 18 sr-ease: 250 --- [containers](notes/containers.md) * Describe what software containers are + * basically lightweight virtual machines - Explain why containers are useful + - Encapsulate a computing environment - Outline the role of container registries + - Store and share *images* + - E.g., dockerHub - Contrast different ways to interact with containers + - Files: e.g., CI/CD SSG's + - Network: - Understand security risks inherent in container use + - diff --git a/content/notes/15-dynamic-programming.md b/content/notes/15-dynamic-programming.md index 8a3185500..f2a53294a 100644 --- a/content/notes/15-dynamic-programming.md +++ b/content/notes/15-dynamic-programming.md @@ -4,11 +4,23 @@ aliases: tags: - lecture - cosc201 -sr-due: 2022-05-07 -sr-interval: 3 +sr-due: 2022-05-19 +sr-interval: 10 sr-ease: 250 --- +- [dynamic-programming](notes/dynamic-programming.md) +- [memoization](notes/memoization.md) + + + + + + + + + + What is dynamic programming? Dynamic is just a name chosen so that it cannot be used ina bad way i.e., it cannot have bad connotations. @@ -22,7 +34,7 @@ In more than three words: Trading space (remembering useful answers) for time (n $f_{0}= f_{1}= 1, f_{n}=f_{n-1}+ f_{n-2}\ for\ n > 1$ -the obvious recursive implementation require exponential time becuase the recursive sub-problems +the obvious recursive implementation requires exponential time becuase the recursive sub-problems - compute $f_n-1$, and - compute $f_n-2$ overlap (the first generates an instance of the second in the next recurive call) @@ -62,7 +74,6 @@ public static long fibMEM(int n) { - supported automatically in some languages (e.g., Python's @functools.cache, and any symbolic programming language) # DP vs memoization - bottom typically compute *all* simpler versions of the problem. When this is neccessary then DP will be faster. However it only a small proportion of the previous case are actually needed it may be better to use memoization. sometimes we can reduct the storage need for DP too. e.g., in the following fibonacci example better fibonacci @@ -78,7 +89,6 @@ public long fibDP (int n) { } ``` - # DP vs Divide and conquer d and c is splitting into chunks with *no overlap*. So there's nothing to gain by remembering one part, since it cant help in solving any other part. diff --git a/content/notes/16-compilers.md b/content/notes/16-compilers.md index 3716b1af5..f892dc976 100644 --- a/content/notes/16-compilers.md +++ b/content/notes/16-compilers.md @@ -4,8 +4,8 @@ aliases: tags: - cosc202 - lecture -sr-due: 2022-05-05 -sr-interval: 3 +sr-due: 2022-05-22 +sr-interval: 13 sr-ease: 250 --- @@ -16,64 +16,15 @@ sr-ease: 250 - compiler front vs back end - why producing precise compiler errors is hard -# What is a compiler? -Compilers are used to build stored programs. Things that are stored on the disk that you can run. They use source code in a **high level** language, and output machine code in a binary file. This file can be loaded and run by hardware. Example langauges include C, C++, Java (sorf of) -An interpreter is more of an interactive tool. The interpreter program (e.g., python) runs of the CPU and execute your program. Interpretee laguages include (python, ruby, shell, R, js, PHP). +- [compiler](notes/compiler.md) +- [interpreter](notes/interpreter.md) + +# What is a compiler? +A [compiler](notes/compiler.md) is used to build stored programs. Things that are stored on the disk that you can run. They use source code in a **high level** language, and output machine code in a binary file. This file can be loaded and run by hardware. Example langauges include C, C++, Java (sorf of) + +An [interpreter](notes/interpreter.md) is more of an interactive tool. The interpreter program (e.g., python) runs of the CPU and execute your program. Interpreted laguages include (python, ruby, shell, R, js, PHP). Usually compiled program are smaller and run faster, but interpreted languages are more convienient -The line between compiled and interpreted is becoming less clear with things like the JVM, Scala, and python .pyc files. - -# Compiler stages (traditional) -- lexical analysis (lexing) - source code -> tokens - - a token is a meaningful substring of source code - - e.g., - - input - "x=10+y" - - ouput - [var(x), ASSIGN, int(10), PLUS, var(y)] -- parsing - convert token stream to abstract syntax tree (AST) - - output given above input - - assign(v(x), expression(add(10, v(y)))) - - defines the structure of the program -- optimising - rework AST, e.g., drop unreachable code - - dead code removal - - e.g.,: -```java -if(false){ - //do stuff -} -``` -- emitting - output machine code to e.g., binary file - -# Compiler stages Modern -new langauge being released. Not really a common solution. Originally we would for example design a compiler for each language like C and Fortran. - -Now we split the front end and the back end. -## Front end -- language specific -- lexing and parsing -- output compiler-internal intermediate code -## Back end -- optimise intermediate code -- output machine code e.g., for target CPU hardware - -## Compiler families -- GCC - Gnu compiler collection - old and messy code -- LLVM - low level virtual machine - cleaner code - open-source -- Microsoft and Intel compilers - - ms compilers aim to support development for windows - - mentioned before: Intel compilers optimise for Intel Hardware - -# Compiler output -Typically compiler output object code. This contains machine code, but is not yet executable. - -There is another linking stage, where the object code is linked together into executable programs. At this stage code from libraries and other languages can be joined. e.g., assembly and C. - -Most compilers compile and link. - -# Java Compilers -javac produces JVm bytecode. this bytecode was orginally interpreted by `java`. This extra layer was initally created to help with porting java on new hardware. Now `java` recompiles to java hardware CPU. This is done 'just-in-time' in RAM and doesn't ouput machine code. The JIT compiler is triggered when code is first (or repeatedly used). - -# Compiler errors -Producing good error messages is important and difficult as the compiler doesn't usually know exactly where/what the error was. Errors can occur within expanded macros - +The line between compiled and interpreted is becoming less clear with things like the JVM, Scala, and python .pyc files. \ No newline at end of file diff --git a/content/notes/16-hasing-maps-sets.md b/content/notes/16-hasing-maps-sets.md new file mode 100644 index 000000000..62f665834 --- /dev/null +++ b/content/notes/16-hasing-maps-sets.md @@ -0,0 +1,101 @@ +--- +title: "16-hasing-maps-sets" +aliases: +tags: +- cosc201 +- lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 250 +--- + +# Maps and Sets +I the compsci context a *map* contrains a *set* of *keys* each with an associated *value*. A map consists of a set of keys. A map can aslso store a set by igorning the values for each key. Thesre are three fundamental operations. +- `put(k, v)` : add the mapping from k to v either by adding k iff its not alreaady present or by changing the associated value +- `get(k)` : return the value associated iwht k if k is present +- `remove(k)` : remove the key k (and any associated value) + +[BST](notes/binary-search-tree.md) can provide us with a set or map implementation whre the cost of each operation is $O(lg\ n)$ . But his requires an underlying order on keys, which might not be needed. + +## In a perfect world +- keys from a class k, valuyes from a class v +- there are only 4000 possible keys +- each key, k, has a unique four digit identifier than we can obtain in constant time as `k.id();` + +```java +V[] map = new V[10000]; + +public V put(K key, V value){ + V old = map[k.id()]; + map[k.id()] = value; + return old; //to match java map interface +} + +public V get(K key){ + return map[k.id()]; +} + +public V remove(K key){ + V old = map[k.id()]; + map[k.id()] = null; + return old; +} +``` + +works but: +- we need to allocate 10000 spaces of storage +- require `k.id();` in constant time +- cannot store null values (key not present vs key is mapped to null) (we will need more storage) + +so: +- we should only require storage for what we need, not for all possible keys +- need to use `Array` for constant time add, remove, get. (we may need to resize the array sometimes) + +## Considering space +```java +V[] map = new V[53]; + +public V put(K key, V value){ + V old = map[k.id() % v.length]; + map[k.id() % v.length] = value; + return old; //to match java map interface +} + +public V get(K key){ + return map[k.id() % v.length]; +} + +public V remove(K key){ + V old = map[k.id() % v.length]; + map[k.id() % v.length] = null; + return old; +} + +``` + +Problem: +- some keys can be duplicated + +## Solving k.id() +- solution is to make one up. +- since collisions are inevitable, uniqueness is not required +- made up ID called a `hash code` +- a *hash function* take objects from a class as input and produces a value from a fixed finite set of values (in Java, an `int`) +- properites it should have + - should be fast to compute $O(1)$ + - shoud be uniform (even when we take modulo) + +This sounds hard, but for commonly used classes (e.g., strings) there are already good has functions. Good enough is usually good enough. IDE can usually suggest something that is good enough. A hashcode function will usually come with an equals function to distinguish between collions and actual equal values + + +## Collisions: Chaining/open addressing +- array elements are called buckets +- each bucket is a *list* of key-value pairs +- when a mapping is added, + - if empty add it (creating a new list if required) + - otherwise check to see if there is a collision or an actual equality with each item of the list + - If there is an equality -> change its value + - otherwise just add it to the list +- get and removing are handled similarly + +we need to keep the load factor (how full the map is) small so that the chains dont't get to long \ No newline at end of file diff --git a/content/notes/16-reverse engineering.md b/content/notes/16-reverse engineering.md index 9f58f4501..dd94c8dc5 100644 --- a/content/notes/16-reverse engineering.md +++ b/content/notes/16-reverse engineering.md @@ -4,11 +4,14 @@ aliases: tags: - info201 - lecture +sr-due: 2022-05-11 +sr-interval: 3 +sr-ease: 270 --- # Java -> UML reverse engineering -reverse of foward engineering +reverse of [uml-java-forward-engineering](notes/uml-java-forward-engineering.md) - parse java doe and egenerate corresponding uml diagrams - useful to generate models of existing systems diff --git a/content/notes/17-collision-resolution-probing.md b/content/notes/17-collision-resolution-probing.md new file mode 100644 index 000000000..2e78f8514 --- /dev/null +++ b/content/notes/17-collision-resolution-probing.md @@ -0,0 +1,50 @@ +--- +title: "17-collision-resolution-probing" +aliases: +tags: +- cosc201 +- lecture +sr-due: 2022-05-12 +sr-interval: 3 +sr-ease: 250 +--- + +[animation demo](https://echo360.net.au/lesson/0e13f645-a91f-46c6-89d9-e3c31097b960/classroom#sortDirection=desc) + +Chaining (lists of k-v pairs in each bucket) breaks locailty of reference within the array and ay not be suitable for high-performance implementations. + +It works in java because objects are stored as references anyway, you need to look elsewhere in memory anyway. + +So the advantage of probing is negated. + +In C you know how many bytes of memory a k v pair will occupy. So you can store them as a continuous block of memory. Now you can take advatage of the locality of reference and the speed it provides. + +To do this the contents of bucket should not be a list. they should be null, or a single kv pair. + +each kv pair has a *home spot* it would like to go to: this is the modulo remainder from last lecture. + +# linear probing +- if a kv's home is already full, we move it into the next spot (wrapping to the beginning when we reach the end) in the array. +- frequency of collisions and time to find a new space are proportional to the *load factor* (percetage of occupied slots) +- the load factor is capped and the array is resized when the cap is exceeded + +## Insertion cost +proportional to the number of filled blocks we search before we find an empty one. As long as the load factor is not to high this is on average $O(1)$ + +## Search +Proportional to the number of cells we search before finding the one we want or an empty cell + +## Resize +Create a new table of (about double) the size and insert all the elements of the table into it. If we dont double, exactly, we "scamble" the modulo remainder a bit more to reduce collions. cost is $\theta(n)$. This can be *amortised* across those elements to give $O(1)$ is the amortised sense + +### Amortised cost +- the operations of a dynamic data structure have amortised cost $O(1)$, if + - there is constant $C>0$ such that, + - for every positive integer $k$, and + - any sequence of $k$ operations on the data structure (from initalisation), + - the average time per operation is less than $C$ + +## Deletion +we cant just empty cells as this will break search. We could: +1. we could replace it by a "tombstone" maker. This counts as "full" for search and load purposes, but empty for insertion. +2. we search foward form the element we're removing until we find something that belongs in that location or earlier - swap it back into this location and repeat until an empty cell is found. \ No newline at end of file diff --git a/content/notes/17-data-access.md b/content/notes/17-data-access.md index de3ffa6d1..6882f2515 100644 --- a/content/notes/17-data-access.md +++ b/content/notes/17-data-access.md @@ -4,92 +4,15 @@ aliases: tags: - info201 - lecture -sr-due: 2022-05-08 -sr-interval: 3 +sr-due: 2022-05-15 +sr-interval: 7 sr-ease: 250 --- [revision questions](https://i.imgur.com/mPmQ28v.png) - -Most infosystems require persistent data. e.g., -- save to file -- save to database -Some systems require several persistent data stores. e.g., multiple databases. - -# File based - -doesn't scale well - -- demlimited text e.g., CSV TSV - - easy to create and process - - portable - - lowest common denominator -- structured text e.g., JSON, XML, YAML - - many tools for querying and transforming data - - portable also -- Serialiased data Structures (*usually* binary) - - more compact - - easy to do - - single user only - - no automatic failure recovery - - no querying - - versioning issues - - no standards - - less portable - -# Databases -- managed by DBMS - - usually SQL based - - also noSQL for unstructured big data -- advantages - - multi user support - - transactions (failure recovery) - - (centralised) constraints and referntial integrity - - flexible and ad-hoc querying - * manage large data - - -# Database APIs -- most dbmss have a native datbase api - - usually proprietry and limited to just that product - - often the only option for noSQL dbmss -- also generic database apis - - work with multiple dbmss - - same code works with any supported dbms -- for sql dbmss - - ODBC microsoft - - JDBC java - - DB-API python - - PDO php - - DBI perl - -# How to manage persistent data access -1. domain objects interact directly with the data store - - write to file or send sql statements - - not easy to change -2. domain objects interact with data store via a mediator - - either standalone class or implementation of a data access interface - - data access objects DAOs - - encapsulates all access to persistent data - -# Designing DAOs -- general rule: one DAO per "logical unit" of data access -- many DAOs are just for one class e.g., `PatronDAO` -- some involve many classes - - things like header/lines objects are always managed together - - complex operations that join multiple tables or domain classes -- different use cases (features) use different sets of DAOs e.g., - - add, find, edit patron ⇒ `PatronDAO` - - lend items ⇒ `LoanDAO`, `ItemDAO`, `PatronDAO` -- object construction and deconstruction coded into DAOs - -## Multiple implementation of the same DAO -[DAO versions](https://i.imgur.com/UZzffto.png) - -# JDBC for sql -- [jdbc slide](https://i.imgur.com/Dy79jcM.png) -- [jdbs slide what is does](https://i.imgur.com/NAr95En.png) -- [jdb issues](https://i.imgur.com/WR7qUae.png) -- [alternatives](https://i.imgur.com/rYhiX8o.png) -- [jdbi](https://i.imgur.com/OcNKIfH.png) +[data-access](notes/data-access.md) +- [file-based-storage](notes/file-based-storage.md) +- [database-based-storage](notes/database-based-storage.md) +- [data-access-object](notes/data-access-object.md) +- [java-database-connectibity](notes/java-database-connectibity.md) \ No newline at end of file diff --git a/content/notes/17-linkers-and-loaders.md b/content/notes/17-linkers-and-loaders.md index 0e62d22a5..148c66d24 100644 --- a/content/notes/17-linkers-and-loaders.md +++ b/content/notes/17-linkers-and-loaders.md @@ -4,8 +4,8 @@ aliases: tags: - lecture - cosc202 -sr-due: 2022-05-08 -sr-interval: 3 +sr-due: 2022-05-16 +sr-interval: 8 sr-ease: 250 --- @@ -16,77 +16,6 @@ sr-ease: 250 - Describe what linkers achieve - Contrast static and dynamic linking of libraries -# Operating Systems -## Userspace -This is where applications run. Computer resources are isolated in compute and data -- cannot access memory belonging to another process -- cannot directly access hardware -- cannot occupy all of the CPUs time on one application - -## Kernal -"all seeing and all powerful" The kernel sits below the userspace and manages resource allocation and directly controls harware. Usuallly you dont directly interact with the kernel when developing software. You do interact indirectly with the kernel, it permits your interactions with the environment (input/output from/to files, network, and terminals). The standard library usually insulates you from the OS kernel, may abstract over different OSs, and do operations in an OS-agnostic way. - -## C program example -[400](https://i.imgur.com/1PlLlQ5.png) [400](https://i.imgur.com/bBQp3TH.png) - -## OS Program loaders -There identify the types of file that is being executed. E.g., a #! at the beginning of a file tells the OS which interpreter to run that file through. Otherwise it will look into the binary file, loads any dynamic libraries, and adjusts the executable code to point to shared libraries in RAM. Eventaully the OS will point the CPU at the binary machine code, first creating an OS process to contain code execution so it cannot overwrite memory belonging to another process - -## Java Program "loader" -Java was designed to be portable, and minimose effort to port to another OS. Java "hides" the OS from you. It can dynamically load classes at runtime, thus avoiding an explicit linking stage. Java class loaders can read .class files. The Top-level ClassLoader is written in native code. It loads internal classes like HashMap. Then ClassLoader subclasses written in java can be loaded. - -## Even higher level computing abstractions -- Java Enterprise edition - - run code is exisintg application server - - most of the time the app framework is running - - your code injects key classes with custom business logic -- .NET is similar -- Web application programming - - stacks offer page templating, business rules, databases -- Cloud native application - -# Linkers -- Linkers facilitate use of code in multiple languages, e.g. - - use C for programming speed of developer; - - use Assembly language for running speed of code - - But these days: often hard to beat optimising compilers! -- Linkers effect interaction with libraries in two ways: - - Static linking: build libraries’ code into your application - - Dynamic linking: library connected in at load or run-time -- Linkers facilitate interaction with OS - - -## Static linking -- Statically linked libraries are built into executable - - We’ve previously discussed the dependency problems: - - Every executable carries the weight of the library code - - Also, bug fixing requires rebuilding the whole program -- However, static linking is straightforward - - e.g., nothing much OS-specific about static linking - - Library calls are just function calls within userspace -- Alternative is for linking not to finish at compile-time - - Linker could add code to link at runtime - - More commonly, linker tells OS more linking needed later - -## Dynamic linking -- Dynamic linking is common on modern OSs, e.g., - - DLLs on Windows: Dynamic Link Libraries - - SOs on Linux, Solaris: Shared Objects - - DyLibs on macOS: Dynamically loaded modules -- One copy of dynamic library shared by all executables - - efficiently uses memory: load into RAM once; share to all -- Fixing bugs / security flaws is streamlined: - - just upgrade the single copy of the library - - all processes will adopt fixed library (when they next start) - -## Managing dynamic libraries -- Dynamic libraries may have different ownership - - Some dynamic libraries will be part of the OS distribution - - Others installed along with apps that need those libraries -- Can track installable library use with reference counters - - Software installer checks whether library is already present: - - if not, install library, set reference count to one - - if so, increase reference count by one - - Uninstaller decreases reference count: deletes if at zero - - But your reference counting needs to be reliable - - ... unlike early Windows OSs: so called ‘DLL hell’ \ No newline at end of file +- [operating-system](notes/operating-system.md) +- [loader](notes/loader.md) +- [linker](notes/linker.md) \ No newline at end of file diff --git a/content/notes/17-ethics-in-hci.md b/content/notes/18-ethics-in-hci.md similarity index 93% rename from content/notes/17-ethics-in-hci.md rename to content/notes/18-ethics-in-hci.md index 7359c4029..065305354 100644 --- a/content/notes/17-ethics-in-hci.md +++ b/content/notes/18-ethics-in-hci.md @@ -1,5 +1,5 @@ --- -title: "17-ethics-in-hci" +title: "18-ethics-in-hci" aliases: tags: - info203 diff --git a/content/notes/UML.md b/content/notes/UML.md deleted file mode 100644 index 0e02a0f4f..000000000 --- a/content/notes/UML.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: "UML" -tags: -- info201 ---- - -A standard set of model constructs and notation defined by the object management group - -specify what not how - -- activity diagrams - - high level for business prcesses workflows - - low level for dtailed business logic -- advantages - - describe workflows - - specify relative processing rder of activites - - simple - - can be shown to stakeholders for checking and confirmation - -enables implementation-independent specification of: -- user/system interactions -- partitioning of responsibility -- integration with larger or existing systems -- data flow and dependency -- order of operations (algorithms and processes) -- concurrent operations - -## 1 why is is useful -- helps develop efficient effective correct designs -- better communication with project stakeholders -- gives a big picture view of the project system -- independent of specific programming languages or development processes -- de facto standard for modelling OO systems - -## 2 what it is not -- visual modelling software -- a programming languages -- a software development process, method, or methodology - -## 3 Types of diagram -### 3.1 structural - -![](https://i.imgur.com/zS15EFj.png#invert) - -### 3.2 behavioural - -![](https://i.imgur.com/4lj2QIt.png#invert) - -### 3.3 Linked diagrams -each digram type models a dfiferenct aspect of the system -many of the diagrams link to each other -- e.g., use case, sequence, activity -- e.g., object, communication - -e.g., - -![](https://i.imgur.com/CWGGErM.png) -![](https://i.imgur.com/PKHcpMx.png) - - -### 3.4 Activites and transitions - -![](https://i.imgur.com/1G14Ntn.png) - -- activities - - take place over some pariod of time - - linked by transitions (arrows) - - only one starting point potentaily many ending conditions - -- Transitions - - have guard conditions that must be satisfied before the transition can occur - -### 3.5 Decision points -- represent conditional branching -- two or more alternative transitions depending on condition -- every transiiton exiting the decision point must have a guard condition - -![](https://i.imgur.com/KCufkgX.png) - -### 3.6 Synchonisation bars -- represents two or more activites running in parallel -- transitions can be split into mutiple paths and recombined later -- if a workflow is split then it must be recombined on the same diagram - -![](https://i.imgur.com/IVfP7vt.png) - -### 3.7 swim lanes -- same as BPMN -- show who is responsible for a process -- can represent - - business organisations - - depts - - people (actors) -- can simplify processes - -![](https://i.imgur.com/cRiZjtE.png) - - -### 3.8 relationships to use cases -- use case diagrams show the high level interactions between actors and cases -- high level activity diagrams show the sequence of use cases within a workflow - -![](https://i.imgur.com/3b9f2va.png) - - -#### 3.8.1 example - -![](https://i.imgur.com/dKHjIdu.png) - -![](https://i.imgur.com/yCAjqkZ.png) - -![](https://i.imgur.com/RifaVaq.png) - -### 3.9 Example producing a book - -![](https://i.imgur.com/X5aFAt2.png) - -![](https://i.imgur.com/AKVAshk.png) \ No newline at end of file diff --git a/content/notes/Untitled.md b/content/notes/Untitled.md deleted file mode 100644 index f8fb8a79a..000000000 --- a/content/notes/Untitled.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "<% tp.file.cursor(1) %>Untitled" -aliases: <% tp.file.cursor(2) %> -tags: -- <% tp.file.cursor(3) %> ---- - -<% tp.file.cursor(4) %> diff --git a/content/notes/activity-diagrams.md b/content/notes/activity-diagrams.md new file mode 100644 index 000000000..5c735aadb --- /dev/null +++ b/content/notes/activity-diagrams.md @@ -0,0 +1,69 @@ +--- +title: "activity-diagrams" +aliases: +tags: +- info201 +--- + +[](https://i.imgur.com/zpwJJ5d.png) +[](https://i.imgur.com/PKHcpMx.png) + + +### 3.4 Activites and transitions + +[](https://i.imgur.com/1G14Ntn.png) + +- activities + - take place over some pariod of time + - linked by transitions (arrows) + - only one starting point potentaily many ending conditions + +- Transitions + - have guard conditions that must be satisfied before the transition can occur + +### 3.5 Decision points +- represent conditional branching +- two or more alternative transitions depending on condition +- every transiiton exiting the decision point must have a guard condition + +[](https://i.imgur.com/KCufkgX.png) + +### 3.6 Synchonisation bars +- represents two or more activites running in parallel +- transitions can be split into mutiple paths and recombined later +- if a workflow is split then it must be recombined on the same diagram + +[](https://i.imgur.com/IVfP7vt.png) + +### 3.7 swim lanes +- same as BPMN +- show who is responsible for a process +- can represent + - business organisations + - depts + - people (actors) +- can simplify processes + +[](https://i.imgur.com/cRiZjtE.png) + + +### 3.8 relationships to use cases +- use case diagrams show the high level interactions between actors and cases +- high level activity diagrams show the sequence of use cases within a workflow + +[](https://i.imgur.com/3b9f2va.png) + + +#### 3.8.1 example + +[](https://i.imgur.com/dKHjIdu.png) + +[](https://i.imgur.com/yCAjqkZ.png) + +[](https://i.imgur.com/RifaVaq.png) + +### 3.9 Example producing a book + +[](https://i.imgur.com/X5aFAt2.png) + +[](https://i.imgur.com/AKVAshk.png) diff --git a/content/notes/behaviour-driven-development.md b/content/notes/behaviour-driven-development.md new file mode 100644 index 000000000..45b26e6a2 --- /dev/null +++ b/content/notes/behaviour-driven-development.md @@ -0,0 +1,15 @@ +--- +title: "behaviour-driven-development" +aliases: BDD +tags: +- info201 +--- + +Models should be created with the users needs in mind. +Required bahaviour determines acceptance criteria +This is called Behaviour Driven Development [[BDD]] + +**Resources** +[Domain Driven Design with BDD](https://www.youtube.com/watch?v=Ju50D11EIoE) +[DDD videos](https://www.youtube.com/playlist?list=PLZBNtT95PIW3BPNYF5pYOi4MJjg_boXCG) + diff --git a/content/notes/brainstorming.md b/content/notes/brainstorming.md new file mode 100644 index 000000000..971e4b1f2 --- /dev/null +++ b/content/notes/brainstorming.md @@ -0,0 +1,116 @@ +# Concept 1 - Snowboard trick generator. + +This will be a mobile app that snowboarders can use to automatically generate random tricks. This app will be useful because snowboarders (riders) often get tunnel vision on a certain style of tricks or even a single trick. Using a algorithm to generate tricks provides a way for them to escape this focus. It can also be used when playing a game of SNOW, which is similar to a game of SKATE. + +# Initial Ideas +- customisable trick generator + - trick lists --> users can create lists for the generator to choose a trick from + - some built in lists + - share lists with friends + - options + - trick types + - jump + - rail + - pipe + - butters + - flips + - spins + - grabs + - spin direction + - bring back or not + - stance + - regular + - goofy +- daily trick + - same for all users? + - auto notification + - schedule + - weekly + - custom + - auto when at an altitude +- App widget with daily trick? +- search for tricks + - options similar to generator + - save tricks to a list for generator +- link with other users + - methods + - qr code + - url/link + - contact + - social media + - people + - friends + - coach + - parents + - features + - daily/sheduled trick group + - how would this work with altitude detector + - share trick lists + - community section for trick lists + - like spotify playlists + - users can share tutorials +- Ease of use - (hard to use with gloves) + - voice controls + - gesture controls +- goals tracking + - goal lists + - daily/weekly/yearly goals + - trick generator can choose a trick from goals + - share (or keep private) with coach and friends + - trick tutorials + +# Final Choices +### Core features +- customisable generator + - all options no trick lists +- daily trick + - Notification + - able to set a schedule or have it go when at an altitude +- links with friends + - Do same tricks + - link with QR code or url + +The first core feature of the app is the customisable trick generator. It should be very easy and quick to use. This presents an interesting problem as while snowboarding, users are wearing large mittens, and the air can be very cold for hands. It would be ideal if it could be used while wearing mittens. + +The second core feature of the app is the Daily Trick. This means that users get a notification with a random trick from the trick generator. This feature could allows users to get the benefit of the trick generator without having to open the app on the mountain. However, the issue here is that most people don't snowboard everyday. To get around this, I could allows the users to schedule days on which to recieve a daily trick, or I could alert them whenever they are on a mountain by monitoring their altitude. Of course the second option has some privacy issues that will need to be considered. + +The third core feature of the app is the link with friends. This is a core feature because snowboarders will typically rider with a group of friends. Being able to join a 'trick group' means these groups can do the same trick and 'compete' against each other. + +# Existing Apps +- For skateboarding: + - [getatrick.com](https://getatrick.com) + - skate gen mobile app + - Skate Tricks + - Skateboard tricks + - Skate Dice +- Freestyle Generator for inline skating, tramp and skiing +- Scooter trick generator + +[screenshots]() + +## Summary +### Overview +I was able to find only 7 apps with similar functionality to what I am planning. Of these none 5 were for skateboarding 2 for other sports and zero for snowboarding. + +### Functionality of the apps +These 7 apps all had varying degreee of complexity. Some were just simple customizable trick generators, while others were fully fledged coaching and goal tracking apps with community features and other extras. Although I am not planning to make large complicated app, I can still draw from them for guidance as most of them did have a trick generator. + +Aesthetic/style of the apps + + +Conclusion + + +## Skate Dice +Skate dice was one of the most intresting the apps I found. It had a very unique approach using a "shake the phone" gesture to "roll" the dice. However it has a paywall for premium features such as more tricks, settings, and a "tricktionary". From what I was able to use I think is was the most simple and intuitive apps. It also had an aesthetic that fit the culture of the sport. All these features combined made it very enjoyable to use. + +### How does this app inform mine +- Keep design simple +- Maybe incorporate some gestures +- Consider using an aesthetic wich matches the culture/sport + +![100](Attachments/screenshots/skatedice/Screenshot_20220409-192630_Skate%20Dice.jpg) + + +## Skate tricks +This app is a much more fully featured solution. It is oriented towards learning skateboarding, and keeping track of you progress while doing it. It also has a built in trick generator, and game of skate. One of the most unique features it had that the other apps didn't was a trick of the day. This is one of the core features I want to include in my app. Another interesting feature it had was a page informing the user about injury prevention. \ No newline at end of file diff --git a/content/notes/class-diagrams.md b/content/notes/class-diagrams.md new file mode 100644 index 000000000..7c02acf24 --- /dev/null +++ b/content/notes/class-diagrams.md @@ -0,0 +1,139 @@ +--- +title: "class-diagrams" +aliases: +tags: +- info201 +--- + + +[General example](https://i.imgur.com/rFmUs5r.png) +[ERD vs class diagram](https://i.imgur.com/1kO9BDk.png) + +## 1 Stereotypes +add further meaning to fields and methods +- e.g., << unique >>, << abstrat >>, << interface >>, + +## 2 Packages +group classes together +break system to logical chunks +package diagram, a class diagram with nothing but packages + +[Packages](https://i.imgur.com/UiXZeha.png) + +## 3 Associations +UML anaglogue of ERD relationsips +- multiplicity +- realtionshpa nd role names + +PlUS +- naviagability --> instances of one class can pass messages to instances of another +- several differnt types, e.g., composition, aggregation, associateive classes + +### 3.1 multuplicity +[multiplicity-1](https://i.imgur.com/1dSergW.png) +[multiplicity-2](https://i.imgur.com/4TKsBKd.png) + +ERDsd effectively only do zero one many +UML can to any non negative integer +default is 1 + +### 3.2 association names +[named associations](https://i.imgur.com/btif86K.png) + +- usuallya verb phrase like "assings", "manages", "enrols in" ... +- more useful is conpetual level diagrams +- optional arrow head () + +### 3.3 Role names +[role names](https://i.imgur.com/3HEG9yN.png) + +At conceptual level, indicates role of class in association. + +At implementation level: +- implies a field in class at opposite end +- should include visibility +- closely related to navigability + +### 3.4 Navigability +[navigability](https://i.imgur.com/beoNmcQ.png) + +specifies whether we can "navigate from one end of an association to another" +affects how we code access paths between objects + +e.g., +- loan instance can see loanitem instances it contains via private field items +- a loanitem instance can't see loan instance that contains it +- must alwasy include relevant role names +- no arrows = two arrows = bidirectional + +#### 3.4.1 why not always bidirectional + +- more complex code --> many references/collections to manage +- navigation paths are not all equally important + - e.g., "what items are in this loan" vs "what loans does this item appear in" + - determined by requrements and typical usage +- some classes are more "central" + - usually at the "one" end of accociations + - often represent transactional entities e.g., loan, sale, order + - navigability readiates outwards from them + +there are exceptions as always e.g., patron <-> item + + +### 3.5 Aggregation +[aggregation](https://i.imgur.com/FI21bfD.png) + +one class is made up of one or more other classes +container and content instances _can_ exist separately +usually implied by multiplicity and navigability + +e.g., +- computer is made u of several components +- library catalogue is made up of many items + + +### 3.6 Composition +[composition](https://i.imgur.com/2ryJXSM.png) + +stonger form of aggregation +container and content _cannot_ exist separately +usually implied by multiplicity and navigability + +e.g., +- building contains many rooms +- loan includes several items + +- coicident lifetime +- multiplicity at least 1 at both ends +- deleting an containter must also delete all associated contents +- creating a container should also create some contents + + +### 3.7 Associative classes +[associative classes 1](https://i.imgur.com/Rq91xGx.png) +[associative classes 1](https://i.imgur.com/zzOlLV1.png) + +- used for conceptual design +- similar to associative entities + - many to many relationship with additional independent fields + - resolved into class at implementation level + +### 3.8 Specialisation generalisation +[specialisation and generalisation](https://i.imgur.com/kfI2YSe.png) + +class inheritance +- e.g., book and disc are subclasses of (specialise) Item +- inherit all public fields and methods of superclass +- can add their own fields and methods +- Compare with specialisation of actors and use cases + +## 4 Domain class model +[domain class model](https://i.imgur.com/JFHQOFA.png) + +only modles the associations among concepts from problem domain + +can be at conceptual level or implementation level + +## 5 System class model +[system class model](https://i.imgur.com/KsQuCd5.png) +Models associations among domain objects and system components; implementation level only \ No newline at end of file diff --git a/content/notes/compiler.md b/content/notes/compiler.md new file mode 100644 index 000000000..202847558 --- /dev/null +++ b/content/notes/compiler.md @@ -0,0 +1,51 @@ +--- +title: "compiler" +aliases: Compiler, compilers, Compilers +tags: +- cosc202 +--- + +# What are they/what do they do +- used to build stored *programs* + - usually program are written in a *high level* *compiled* language + - C, C++, Java, C#, etc +- Output machine code in binary + - This can be loaded and run by hardware + +# Traditional Stages of Compilation +**lexing**: This is the step where the source code is converted into *tokens*. A token is a "meaningful substring of source code". + +e.g.: `x = 10 + y` ⇒ `[var(x), ASSIGN, int(10), PLUS, var(y)]` + +**parsing**:*Token Steam* is converted to *abstract syntax tree* *(AST)* . This defines the structure of the program + +e.g.: above output ⇒ `assign(v(x), expression(add(10, v(y))))` + +**optimising**: Unreachable (dead) code is removed, and other optimisations are made + +e.g.: `if(false){do stuff}` would be removed + +**emitting**: machine code is ouput to e.g., a binary file + +# Modern Stages of Compilation +Since there are many new languages being released, it is no longer practical to design a compiler for each language. So we now split compilation info a *front end* and a *back end* + +**Front end**: Language specific, lexing and parsing. Outputs *compiler-internal intermediate* code + +**Back end**: Language agnostic, optimisation. Outputs machine code to target CPU hardware + +# Compiler families +- GCC - Gnu compiler collection - old and messy code +- LLVM - low level virtual machine - cleaner code - open-source +- Microsoft and Intel compilers + - ms compilers aim to support development for windows + - mentioned before: Intel compilers optimise for Intel Hardware + +# Output +Compilers usually ouput *object code*. This contains machine code, but is not yet exectuable. There is another stage [linking](notes/linker.md), where the object code is *linked* with together with libraries and other languages, and made exececutable. + +# Java Compilers +javac produces JVm bytecode. this bytecode was orginally run on `java` [Interpreter](notes/interpreter.md). This extra layer was initally created to help with porting java on new hardware. Now `java` recompiles to java hardware CPU. This is done 'just-in-time' in RAM and doesn't ouput machine code. The JIT compiler is triggered when code is first (or repeatedly used). + +# Compiler errors +Producing good error messages is important and difficult as the compiler doesn't usually know exactly where/what the error was. Errors can occur within expanded macros \ No newline at end of file diff --git a/content/notes/containers.md b/content/notes/containers.md index 077166060..0597cbe8c 100644 --- a/content/notes/containers.md +++ b/content/notes/containers.md @@ -47,14 +47,14 @@ tags: # Example container interacting with files - Let’s build the containers lab website - Input: Markdown files -- Output: HTML website -- Can use this container within CI +- Output: HTML website +- Can use this container within [CI](notes/continuous-integration.md) pipelines - Active container can rebuild ‘live’: - source files are watched for changes - changes trigger rebuilding target files - can reload browser to see changes rapidly - Note: this example is an optional part of containers lab - - docker run −−rm −−mount \ type=bind , source=$ {PWD} , ta rge t=/ s r v / j e k y l l \ j e k y l l / j e k y l l : pages j e k y l l bu i ld + - `docker run −−rm −−mount \ type=bind, source=${PWD}, target=/srv/jekyll\jekyll/jekyll:pages jekyllbuild` # Example container interacting over network - Lesson builder can host an internal web server @@ -65,7 +65,7 @@ tags: - Connections routed through to container - Usually connections limited to interactions with the host OS - . . . but containers can support internet-facing servers - - docker run −−rm − i t −−mount \ type=bind , source=$ {PWD} , ta rge t=/ s r v / j e k y l l \ −p 1 2 7. 0. 0. 1: 4 0 0 0: 4 0 0 0 \ j e k y l l / j e k y l l : 3 j e k y l l se rve + - `docker run −−rm − i t −−mount \ type=bind , source=$ {PWD} , target=/srv/jekyll\ −p127.0.0.1:4000:4000\jekyll/jekyll:3jekyllserve` # Inter-container interactions - Can build apps by composing multiple containers diff --git a/content/notes/cosc-201-lectures.md b/content/notes/cosc-201-lectures.md deleted file mode 100644 index a46eae063..000000000 --- a/content/notes/cosc-201-lectures.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "cosc-201-lectures" -tags: -- cosc201 -- lectures ---- -links: [[notes/cosc-201]] - -- [07-mergesort-1](notes/07-mergesort-1.md) -- [08-mergesort-2](notes/08-mergesort-2.md) -- [09-stacks-and-queues](notes/09-stacks-and-queues.md) -- [10-heaps-and-heapsort](notes/10-heaps-and-heapsort.md) -- [11-sets-maps-trees](notes/11-sets-maps-trees.md) -- [12-binary-search-tree-operations](notes/12-binary-search-tree-operations.md) -- [13-bst-traversals-and-balance](notes/13-bst-traversals-and-balance.md) -- [14-balancing-bsts](notes/14-balancing-bsts.md) -- [15-dynamic-programming](notes/15-dynamic-programming.md) \ No newline at end of file diff --git a/content/notes/cosc-201-outline.md b/content/notes/cosc-201-outline.md deleted file mode 100644 index 2605aec2d..000000000 --- a/content/notes/cosc-201-outline.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "cosc-201-outline" -tags: -- cosc201 -- outline ---- -links: [[notes/cosc-201]] - -- [[notes/aymptotic-notation]] -- [[notes/induction]] -- [[notes/analysis-of-recursive-algorithms]] -- [[notes/union-find]] -- [[notes/heap]] -- [[notes/sorting]] -- [[notes/heapsort]] -- [[notes/mergesort]] -- [[notes/quicksort]] -- [divide-and-conquer](notes/divide-and-conquer.md) -- [unite-and-conquer](notes/unite-and-conquer.md) -- [avl-trees](notes/avl-trees.md) -- [red-black-trees](notes/red-black-trees.md) -- [treaps](notes/treaps.md) -- [balancing-binary-search-trees](notes/balancing-binary-search-trees.md) \ No newline at end of file diff --git a/content/notes/cosc-201.md b/content/notes/cosc-201.md index df90bdabd..a4dfcb948 100644 --- a/content/notes/cosc-201.md +++ b/content/notes/cosc-201.md @@ -8,10 +8,37 @@ tags: --- links: [_index](_index.md) -- [cosc-201-outline](notes/cosc-201-outline.md) -- [cosc-201-lectures](notes/cosc-201-lectures.md) - -# 0.1 Assignments - +# Assignments - [[notes/assignment-01]] -- [[notes/assignment-02]] \ No newline at end of file +- [[notes/assignment-02]] + +# Lectures +- [07-mergesort-1](notes/07-mergesort-1.md) +- [08-mergesort-2](notes/08-mergesort-2.md) +- [09-stacks-queues-heaps](notes/09-stacks-queues-heaps.md) +- [10-heaps-and-heapsort](notes/10-heaps-and-heapsort.md) +- [11-sets-maps-trees](notes/11-sets-maps-trees.md) +- [12-binary-search-tree-operations](notes/12-binary-search-tree-operations.md) +- [13-bst-traversals-and-balance](notes/13-bst-traversals-and-balance.md) +- [14-balancing-bsts](notes/14-balancing-bsts.md) +- [15-dynamic-programming](notes/15-dynamic-programming.md) +- [16-hasing-maps-sets](notes/16-hasing-maps-sets.md) +- [17-collision-resolution-probing](notes/17-collision-resolution-probing.md) + +# Outline +- [aymptotic-notation](notes/aymptotic-notation.md) +- [induction](notes/induction.md) +- [analysis-of-recursive-algorithms](notes/analysis-of-recursive-algorithms.md) +- [union-find](notes/union-find.md) +- [heap](notes/heap.md) +- [heaps-and-heapsort](notes/heaps-and-heapsort.md) +- [mergesort](notes/mergesort.md) +- [[quicksort](notes/quicksort.md)] +- [divide-and-conquer](notes/divide-and-conquer.md) +- [unite-and-conquer](notes/unite-and-conquer.md) +- [avl-trees](notes/avl-trees.md) +- [red-black-trees](notes/red-black-trees.md) +- [treaps](notes/treaps.md) +- [balancing-binary-search-trees](notes/balancing-binary-search-trees.md) +- [dynamic-programming](notes/dynamic-programming.md) +- [memoization](notes/memoization.md) \ No newline at end of file diff --git a/content/notes/cosc-202-lectures.md b/content/notes/cosc-202-lectures.md deleted file mode 100644 index 08c89ae64..000000000 --- a/content/notes/cosc-202-lectures.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "cosc-202-lectures" -tags: -- lectures -- cosc202 ---- -links: [cosc-202](notes/cosc-202.md) - -- -- [07-testing](notes/07-testing.md) -- [08-debugging](notes/08-debugging.md) -- [09-documentation](notes/09-documentation.md) -- [10-continuous-integration-1](notes/10-continuous-integration-1.md) -- [11-continuous-integration-2](notes/11-continuous-integration-2.md) -- [12-automation](notes/12-automation) -- [13-code-librarires](notes/13-code-librarires.md) -* -- [15-containers](notes/15-containers.md) -- [16-compilers](notes/16-compilers.md) -- [17-linkers-and-loaders](notes/17-linkers-and-loaders.md) \ No newline at end of file diff --git a/content/notes/cosc-202-outline.md b/content/notes/cosc-202-outline.md deleted file mode 100644 index 81f0ffbf5..000000000 --- a/content/notes/cosc-202-outline.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "cosc-202-outline" -tags: -- cosc202 -- outline ---- -links: [[notes/cosc-202]] - -- [[notes/consoles-terminals-shells]] -- [[notes/git]] -- [[notes/ethics-in-cs]] -- [[notes/integrated-development-environments]] -- [[notes/branch]] -- [[notes/testing]] -- [[notes/test-driven-development]] -- [[notes/unit-testing]] -- [[notes/debugging]] -- [[notes/documentation]] -- [[notes/continuous-integration]] -- [automation](notes/automation.md) -- [containers](notes/containers.md) - - diff --git a/content/notes/cosc-202.md b/content/notes/cosc-202.md index 2a860001b..f45a23aec 100644 --- a/content/notes/cosc-202.md +++ b/content/notes/cosc-202.md @@ -8,11 +8,34 @@ tags: --- links: [_index](_index.md) -- [cosc-202-lectures](notes/cosc-202-lectures.md) -- [cosc-202-outline](notes/cosc-202-outline.md) +# Lectures +- [07-testing](notes/07-testing.md) +- [08-debugging](notes/08-debugging.md) +- [09-documentation](notes/09-documentation.md) +- [10-continuous-integration-1](notes/10-continuous-integration-1.md) +- [11-continuous-integration-2](notes/11-continuous-integration-2.md) +- [12-automation](notes/12-automation) +- [13-code-librarires](notes/13-code-librarires.md) +* +- [15-containers](notes/15-containers.md) +- [16-compilers](notes/16-compilers.md) +- [17-linkers-and-loaders](notes/17-linkers-and-loaders.md) -# 1 Assignments - -- -# 2 Resources +# Outline +- [consoles-terminals-shells](notes/consoles-terminals-shells.md) +- [git](notes/git.md) +- [ethics-in-cs](notes/ethics-in-cs.md) +- [integrated-development-environments](notes/integrated-development-environments.md) +- [branch](notes/branch.md) +- [testing](notes/testing.md) +- [test-driven-development](notes/test-driven-development.md) +- [unit-testing](notes/unit-testing.md) +- [debugging](notes/debugging.md) +- [documentation](notes/documentation.md) +- [continuous-integration](notes/continuous-integration.md) +- [automation](notes/automation.md) +- [containers](notes/containers.md) +- [linker](notes/linker.md) +- [loader](notes/loader.md) +- [operating-system](notes/operating-system.md) diff --git a/content/notes/data-access-object.md b/content/notes/data-access-object.md new file mode 100644 index 000000000..525a75ea1 --- /dev/null +++ b/content/notes/data-access-object.md @@ -0,0 +1,28 @@ +--- +title: "data-access-object" +aliases: DAO, DAOs, Data Access Object +tags: +- info201 +--- + +# Designing DAOs +- general rule: one DAO per "logical unit" of data access +- many DAOs are just for one class e.g., `PatronDAO` +- some involve many classes + - things like header/lines objects are always managed together + - complex operations that join multiple tables or domain classes +- different use cases (features) use different sets of DAOs e.g., + - add, find, edit patron ⇒ `PatronDAO` + - lend items ⇒ `LoanDAO`, `ItemDAO`, `PatronDAO` +- object construction and deconstruction coded into DAOs + +# Multiple implementation of the same DAO +e.g.,: +- `PatronDAO` interface +- `PatronCollectionDAO` class for in memore data +- `PatronJdbcDAO` class for SQL databases +- `PatronCsv` class for CSV files +- all classes implement the `PatronDAO` interface + +Having these options allows you to easily switch between, dev, test, and prod, and privileged and non privileged access + diff --git a/content/notes/data-access.md b/content/notes/data-access.md new file mode 100644 index 000000000..b773e9091 --- /dev/null +++ b/content/notes/data-access.md @@ -0,0 +1,27 @@ +--- +title: "data-access" +aliases: Data Access, data access +tags: +- info201 +--- + +Most infosystems require persistent data. e.g., +- save to file +- save to database +Some systems require several persistent data stores. e.g., multiple databases. + +There are three main approaches: +- [file-based-storage](notes/file-based-storage.md) +- [database-based-storage](notes/database-based-storage.md) + +# How to manage persistent data access +1. domain objects interact directly with the data store + - write to file or send sql statements + - not easy to change +2. domain objects interact with data store via a mediator + - either standalone class or implementation of a data access interface + - [data-access-object](notes/data-access-object.md) + - encapsulates all access to persistent data + +# JDBC +[JDBC](notes/java-database-connectibity.md) is a Framework for working with (SQL) databases in Java. It was designed to be independent of the DBMS you are using. The same java code *should* work on all SQL DBMSs (*just* change the driver) \ No newline at end of file diff --git a/content/notes/database-based-storage.md b/content/notes/database-based-storage.md new file mode 100644 index 000000000..24162b730 --- /dev/null +++ b/content/notes/database-based-storage.md @@ -0,0 +1,32 @@ +--- +title: "database-based-storage" +aliases: Database storage +tags: +- info201 +--- + +- managed by DBMS + - usually SQL based + - also noSQL for unstructured big data +- advantages + - multi user support + - transactions (failure recovery) + - (centralised) constraints and referntial integrity + - flexible and ad-hoc querying + * manage large data + +# Database APIS +APIs #unfinished + +- most dbmss have a native datbase api + - usually proprietry and limited to just that product + - often the only option for noSQL dbmss +- also generic database apis + - work with multiple dbmss + - same code works with any supported dbms +- for sql dbmss + - ODBC microsoft + - JDBC java + - DB-API python + - PDO php + - DBI perl \ No newline at end of file diff --git a/content/notes/domain-driven-design.md b/content/notes/domain-driven-design.md new file mode 100644 index 000000000..f2e11cae1 --- /dev/null +++ b/content/notes/domain-driven-design.md @@ -0,0 +1,41 @@ +--- +title: "domain-driven-design" +aliases: DDD +tags: +- info201 +--- + +>A method of designing software by designing models of the domain and creating software which conforms to those models + +Ubiquitous language -> The language a team agrees on to describe ideas in the problem domain +- This laguage becomes more and more refined as it is used +- This reduces misunderstandings + +Diagram: +```mermaid + flowchart LR + subgraph Tactical Design Tools + subgraph Service + direction TB + B(Project) + C(Layers) + D(Modules) + E(Design Patters) + F(OOP) + G(Classes) + H(Objects) + I(Exe, jar, zip) + end + end +``` + +``` mermaid + flowchart LR + subgraph Strategic Design Tools + direction LR + Domain-->Sub-Domain1-->Service1 + Domain-->Sub-Domain2-->Service2 + Domain-->Sub-Domain3-->Service3 + end + +``` diff --git a/content/notes/dynamic-programming.md b/content/notes/dynamic-programming.md new file mode 100644 index 000000000..afee3e722 --- /dev/null +++ b/content/notes/dynamic-programming.md @@ -0,0 +1,67 @@ +--- +title: "dynamic-programming" +aliases: dynamic programming, DP +tags: +- cosc201 +--- + +A method of designing algorithms, where a higher amount of space is used, in order to gain reduction in time. This usually done by *remembering previous calculations*. Typically these algorithms are done *bottom-up* i.e., by computing the "base case" first. + +Recursive algorithms can often be converted to counter-controlled for/while loops by: +- initialising memory for answers +- working from the bottom up +- returning the answer + +```java +public long fibDP (int n) { + long[] f = new long[n+1]; + f[0] = 1; f[1] = 0; + for(int i = 2; i <= n; i++){ + f[i] = f[i-1] + f[i-2]; + } + return f[n]; +} +``` +A similar effect can be achieved using *memoization* (caching) + +# DP vs memoization +A DP algorithm will typically compute *all* simpler versions of the problem. When this is neccessary then DP will be faster. However if only a small proportion of the simpler cases are actually needed it may be better to use memoization. Sometimes we can reduct the storage need for DP too. e.g., in the following fibonacci example + +```java +public long fibDP (int n) { + int a = 1, b = 1, c = 1; + for(int i = 2; i <= n; i++){ + c = a + b; + a = b; + b = c; + } + return c; +} +``` + +**Note:** Divide and conquer algorithms cannot be sped up by DP as Divide and Conquers splits into chunks with *no overlap*. This means there is nothing to remember by remembering previous calculations. + +# Route Counting Example + +![](https://i.imgur.com/AKl2fY5.png) + +Compute the number of routes from A to Z travelling only east or south. + +Number of routes to Z is the sum of the number of routes to Z's western and northern neighbors. This is true for all nodes except for the edges. + +The ideas to to fill the grid with numbers, where each node is the sum of its preceding neighbors. + +```java +public long count(int rows,int cols){ + long[][] counts = new long[rows][cols]; + //init edges to 1 + for (rows){ + for (cols){ + counts[r][c] = counts[r-1][c] + counts[r][c-1]; + } + } + return counts[rows-1][cols-1]; +} +``` + +- since we can copute all the values in one row just from the preceding row, we could reduce the extra space requirement from rows x cols to just cols \ No newline at end of file diff --git a/content/notes/file-based-storage.md b/content/notes/file-based-storage.md new file mode 100644 index 000000000..915ad4156 --- /dev/null +++ b/content/notes/file-based-storage.md @@ -0,0 +1,25 @@ +--- +title: "file-based-storage" +aliases: file based storage +tags: +- info201 +--- + +doesn't scale well + +- demlimited text e.g., CSV TSV + - easy to create and process + - portable + - lowest common denominator +- structured text e.g., JSON, XML, YAML + - many tools for querying and transforming data + - portable also +- Serialiased data Structures (*usually* binary) + - more compact + - easy to do + - single user only + - no automatic failure recovery + - no querying + - versioning issues + - no standards + - less portable diff --git a/content/notes/idea.md b/content/notes/idea.md new file mode 100644 index 000000000..e1343af64 --- /dev/null +++ b/content/notes/idea.md @@ -0,0 +1,6 @@ +1. Snowboard coaching app + 1. goals + 2. daily/manual/weekly trick generator + 3. +2. Album of the day generator + 1. from besteveralbums.com \ No newline at end of file diff --git a/content/notes/info-201-lectures.md b/content/notes/info-201-lectures.md deleted file mode 100644 index 1ebefb499..000000000 --- a/content/notes/info-201-lectures.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "info-201-lectures" -tags: -- info201 ---- -links: [[notes/info-201]] - -- -- [04-requirements](notes/04-requirements) -- [06-business-functions-and-use-cases](notes/06-business-functions-and-use-cases.md) -- [07-business-process-modelling](notes/07-business-process-modelling.md) -- [08-business-patterns](notes/08-business-patterns.md) -- [09-data-modelling-and-normalisation](notes/09-data-modelling-and-normalisation.md) -- [10-oop-concepts-and-uml](notes/10-oop-concepts-and-uml.md) -- [11-class-diagrams](notes/11-class-diagrams.md) -- [12-modelling-behaviour](notes/12-modelling-behaviour.md) -- [13-UML-sequence-diagrams](notes/13-UML-sequence-diagrams.md) -- -- [15-from-models-to-code-and-back](notes/15-from-models-to-code-and-back.md) -- [16-reverse engineering](notes/16-reverse%20engineering.md) -- [17-data-access](notes/17-data-access.md) - diff --git a/content/notes/info-201-outline.md b/content/notes/info-201-outline.md deleted file mode 100644 index df1b40fff..000000000 --- a/content/notes/info-201-outline.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "info-201-outline" -tags: -- info201 ---- -links: [[notes/info-201]] - -- [version-control-system](notes/version-control-system.md) -- [stakeholders](notes/stakeholders.md) -- [business-analyst](notes/business-analyst.md) -- [developer](notes/developer.md) -- [models](notes/models.md) -- [systems-development-life-cycle](notes/systems-development-life-cycle.md) -- [agile-development](notes/agile-development.md) -- [scrum](notes/scrum.md) -- [predictive-adaptive-spectrum](notes/predictive-adaptive-spectrum.md) -- [requirements](notes/requirements.md) -- [requirements-document](notes/requirements-document.md) -- [requirements-guidelines](notes/requirements-guidelines.md) -- [requirements-engineering](notes/requirements-engineering.md) -- [requirements-elicitation](notes/requirements-elicitation.md) -- [approaches-to-systems-development](notes/approaches-to-systems-development.md) -- [business-functions](notes/business-functions.md) -- [use-case-diagrams](notes/use-case-diagrams.md) -- [business-process](notes/business-process.md) -- [business-process-model](notes/business-process-model.md) -- [business-process-model-and-notation](notes/business-process-model-and-notation.md) -- [UML](notes/UML.md) -- [entity-relationship-diagrams](notes/entity-relationship-diagrams.md) -- [modelling behaviour](notes/modelling-behaviour.md) -- [conceptual-vs-ipmlementation-models](notes/conceptual-vs-ipmlementation-models.md) -- [redundancy-and-anomalies](notes/redundancy-and-anomalies.md) -- [dependencies](notes/dependencies.md) -- [normalisation](notes/normalisation.md) -- [round-trip-engineering](notes/round-trip-engineering.md) -- [uml-java-forward-engineering](notes/uml-java-forward-engineering.md) diff --git a/content/notes/info-201.md b/content/notes/info-201.md index 93723a062..3b66549a3 100644 --- a/content/notes/info-201.md +++ b/content/notes/info-201.md @@ -8,10 +8,62 @@ tags: --- links: [_index](_index.md) -- [info-201-lectures](notes/info-201-lectures.md) -- [info-201-outline](notes/info-201-outline.md) - - [coursework tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) - [assignments tiddlywiki](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/info201_assignments.html) - [labs folder](file:///"C:/Users/Jet%20Hughes/Documents/Personal/courses/info-201/Labs") +# Lectures +- [04-requirements](notes/04-requirements) +- [06-business-functions-and-use-cases](notes/06-business-functions-and-use-cases.md) +- [07-business-process-modelling](notes/07-business-process-modelling.md) +- [08-business-patterns](notes/08-business-patterns.md) +- [09-data-modelling-and-normalisation](notes/09-data-modelling-and-normalisation.md) +- [10-oop-concepts-and-uml](notes/10-oop-concepts-and-uml.md) +- [11-class-diagrams](notes/11-class-diagrams.md) +- [12-modelling-behaviour](notes/12-modelling-behaviour.md) +- [13-UML-sequence-diagrams](notes/13-UML-sequence-diagrams.md) +- +- [15-from-models-to-code-and-back](notes/15-from-models-to-code-and-back.md) +- [16-reverse engineering](notes/16-reverse%20engineering.md) +- [17-data-access](notes/17-data-access.md) + + +# Outline +- [version-control-system](notes/version-control-system.md) +- [stakeholders](notes/stakeholders.md) +- [business-analyst](notes/business-analyst.md) +- [developer](notes/developer.md) +- [models](notes/models.md) +- [systems-development-life-cycle](notes/systems-development-life-cycle.md) +- [agile-development](notes/agile-development.md) +- [scrum](notes/scrum.md) +- [predictive-adaptive-spectrum](notes/predictive-adaptive-spectrum.md) +- [domain-driven-design](notes/domain-driven-design.md) +- [behaviour-driven-development](notes/behaviour-driven-development.md) +- [requirements](notes/requirements.md) +- [requirements-document](notes/requirements-document.md) +- [requirements-guidelines](notes/requirements-guidelines.md) +- [requirements-engineering](notes/requirements-engineering.md) +- [requirements-elicitation](notes/requirements-elicitation.md) +- [approaches-to-systems-development](notes/approaches-to-systems-development.md) +- [business-functions](notes/business-functions.md) +- [business-process](notes/business-process.md) +- [business-process-model](notes/business-process-model.md) +- [business-process-model-and-notation](notes/business-process-model-and-notation.md) +- [unified-modelling-language](notes/unified-modelling-language.md)] +- [use-case-diagrams](notes/use-case-diagrams.md) + - [what-are-uml-diagrams](notes/what-are-uml-diagrams.md) + - [use-case-diagrams](notes/use-case-diagrams.md) + - [entity-relationship-diagrams](notes/entity-relationship-diagrams.md) + - [class-diagrams](notes/class-diagrams.md) +- [modelling behaviour](notes/modelling-behaviour.md) +- [conceptual-vs-ipmlementation-models](notes/conceptual-vs-ipmlementation-models.md) +- [redundancy-and-anomalies](notes/redundancy-and-anomalies.md) +- [dependencies](notes/dependencies.md) +- [normalisation](notes/normalisation.md) +- [round-trip-engineering](notes/round-trip-engineering.md) +- [uml-java-forward-engineering](notes/uml-java-forward-engineering.md) +- [data-access](notes/data-access.md) +- [data-access-object](notes/data-access-object.md) +- [java-database-connectibity](notes/java-database-connectibity.md) + diff --git a/content/notes/info-203-lectures.md b/content/notes/info-203-lectures.md deleted file mode 100644 index a51886f14..000000000 --- a/content/notes/info-203-lectures.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "info-203-lectures" -tags: -- info203 ---- -link: [[notes/info-203]] - -- [04-evaluation-methods-birth-of-hci](notes/04-evaluation-methods-birth-of-hci.md) -- [07-heuristic-evaluation-cont](notes/07-heuristic-evaluation-cont.md) -- [08-personas-and-scenarios](notes/08-personas-and-scenarios.md) -- [09-paper-prototypes-wiz-of-oz-video-prototypes](notes/09-paper-prototypes-wiz-of-oz-video-prototypes.md) -- [10-design-heuristics-1](notes/10-design-heuristics-1.md) -- [11-design-heuristics-2](notes/11-design-heuristics-2.md) -- [12-design-heuristics-3](notes/12-design-heuristics-3.md) -- [13-design-heuristics-4](notes/13-design-heuristics-4.md) -- [14-direct-manipulation-and-mental-models](notes/14-direct-manipulation-and-mental-models.md) -- [15-mental-models-representation-matters-distributing-cognition](notes/15-mental-models-representation-matters-distributing-cognition.md) -- [16-distributing-cognition-and-visual-design-typography](notes/16-distributing-cognition-and-visual-design-typography.md) -- [17-grids-grouping-alignment-reading-and-navigation](notes/17-grids-grouping-alignment-reading-and-navigation.md) \ No newline at end of file diff --git a/content/notes/info-203-outline.md b/content/notes/info-203-outline.md deleted file mode 100644 index 5207bc86c..000000000 --- a/content/notes/info-203-outline.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "info-203-outline" -tags: -- info203 ---- -links: [[notes/info-203]] - -- [big-picture](notes/big-picture.md) -- [birth-of-hci](notes/birth-of-hci.md) -- [user-experience](notes/user-experience.md) -- [usbability](notes/usbability.md) -- [prototyping](notes/prototyping.md) -- [evaluating-designs](notes/evaluating-designs.md) -- [Design Heuristics](notes/design-heuristics.md) - - [error-prevention](notes/error-prevention.md) - - [flexibility-and-efficiency](notes/flexibility-and-efficiency.md) - - [aesthetic-and-minimalist-design](notes/aesthetic-and-minimalist-design.md) - - [consistency-and-standards](notes/consistency-and-standards.md) - - [recognition-over-recall](notes/recognition-over-recall.md) - - [user-freedom-and-control](notes/user-freedom-and-control.md) - - [familiar-metaphors-and-language](notes/familiar-metaphors-and-language.md) - - [show-system-status](notes/show-system-status.md) -- [needfinding](notes/needfinding.md) -- [participant-observation](notes/participant-observation.md) -- [interviewing](notes/interviewing.md) -- [storyboards](notes/storyboards.md) -- [personas-and-scenarios](notes/personas-and-scenarios.md) -- [mental-models](notes/mental-models.md) -- [representation-and-distributing-cognition](notes/representation-and-distributing-cognition.md) -- [visual-design](notes/visual-design.md) -- [visual-design-typography](notes/visual-design-typography.md) \ No newline at end of file diff --git a/content/notes/info-203-videos.md b/content/notes/info-203-videos.md deleted file mode 100644 index 9afe6a73b..000000000 --- a/content/notes/info-203-videos.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "info-203-videos" -tags: -- info203 ---- -links: [[notes/info-203]] - -- [heuristic-evaluation](notes/heuristic-evaluation.md) -- [storyboards-mockups-paper-prototypes](notes/storyboards-mockups-paper-prototypes.md) -- [wizard-of-oz](notes/wizard-of-oz.md) -- [video-prototyping](notes/video-prototyping.md) -- [direct-manipulation-video](notes/direct-manipulation-video.md) -- [mental-models-video](notes/mental-models-video.md) -* [visual-design-video](notes/visual-design-video.md) \ No newline at end of file diff --git a/content/notes/info-203.md b/content/notes/info-203.md index eed0ffc58..c2fbc5db5 100644 --- a/content/notes/info-203.md +++ b/content/notes/info-203.md @@ -7,9 +7,57 @@ tags: - info203 --- links:[_index](_index.md) +- [mobile-app-ass-03](notes/mobile-app-ass-03.md) -- [info-203-outline](notes/info-203-outline.md) -- [info-203-lectures](notes/info-203-lectures.md) -- [info-203-videos](notes/info-203-videos.md) +# Assignments +[mobile-app-ass-03](notes/mobile-app-ass-03.md) -- [mobile-app-ass-03](203-mobile-app/mobile-app-ass-03.md) \ No newline at end of file +# Lectures +- [04-evaluation-methods-birth-of-hci](notes/04-evaluation-methods-birth-of-hci.md) +- [07-heuristic-evaluation-cont](notes/07-heuristic-evaluation-cont.md) +- [08-personas-and-scenarios](notes/08-personas-and-scenarios.md) +- [09-paper-prototypes-wiz-of-oz-video-prototypes](notes/09-paper-prototypes-wiz-of-oz-video-prototypes.md) +- [10-design-heuristics-1](notes/10-design-heuristics-1.md) +- [11-design-heuristics-2](notes/11-design-heuristics-2.md) +- [12-design-heuristics-3](notes/12-design-heuristics-3.md) +- [13-design-heuristics-4](notes/13-design-heuristics-4.md) +- [14-direct-manipulation-and-mental-models](notes/14-direct-manipulation-and-mental-models.md) +- [15-mental-models-representation-matters-distributing-cognition](notes/15-mental-models-representation-matters-distributing-cognition.md) +- [16-distributing-cognition-and-visual-design-typography](notes/16-distributing-cognition-and-visual-design-typography.md) +- [17-grids-grouping-alignment-reading-and-navigation](notes/17-grids-grouping-alignment-reading-and-navigation.md) +- [18-ethics-in-hci](notes/18-ethics-in-hci.md) + +# Outline +- [big-picture](notes/big-picture.md) +- [birth-of-hci](notes/birth-of-hci.md) +- [user-experience](notes/user-experience.md) +- [usbability](notes/usbability.md) +- [prototyping](notes/prototyping.md) +- [evaluating-designs](notes/evaluating-designs.md) +- [Design Heuristics](notes/design-heuristics.md) + - [error-prevention](notes/error-prevention.md) + - [flexibility-and-efficiency](notes/flexibility-and-efficiency.md) + - [aesthetic-and-minimalist-design](notes/aesthetic-and-minimalist-design.md) + - [consistency-and-standards](notes/consistency-and-standards.md) + - [recognition-over-recall](notes/recognition-over-recall.md) + - [user-freedom-and-control](notes/user-freedom-and-control.md) + - [familiar-metaphors-and-language](notes/familiar-metaphors-and-language.md) + - [show-system-status](notes/show-system-status.md) +- [needfinding](notes/needfinding.md) +- [participant-observation](notes/participant-observation.md) +- [interviewing](notes/interviewing.md) +- [storyboards](notes/storyboards.md) +- [personas-and-scenarios](notes/personas-and-scenarios.md) +- [mental-models](notes/mental-models.md) +- [representation-and-distributing-cognition](notes/representation-and-distributing-cognition.md) +- [visual-design](notes/visual-design.md) +- [visual-design-typography](notes/visual-design-typography.md) + +# Videos +- [heuristic-evaluation](notes/heuristic-evaluation.md) +- [storyboards-mockups-paper-prototypes](notes/storyboards-mockups-paper-prototypes.md) +- [wizard-of-oz](notes/wizard-of-oz.md) +- [video-prototyping](notes/video-prototyping.md) +- [direct-manipulation-video](notes/direct-manipulation-video.md) +- [mental-models-video](notes/mental-models-video.md) +* [visual-design-video](notes/visual-design-video.md) \ No newline at end of file diff --git a/content/notes/inital-ui-designs.md b/content/notes/inital-ui-designs.md new file mode 100644 index 000000000..961ee1a2c --- /dev/null +++ b/content/notes/inital-ui-designs.md @@ -0,0 +1,7 @@ +[mobile-app-ass-03](notes/mobile-app-ass-03.md) + +Core features +- Customisable Generator +- Daily Trick +- Link with friends + diff --git a/content/notes/interpreter.md b/content/notes/interpreter.md new file mode 100644 index 000000000..6a1c6daea --- /dev/null +++ b/content/notes/interpreter.md @@ -0,0 +1,12 @@ +--- +title: "interpreter" +aliases: Interpreter +tags: +- cosc202 +--- + +# What are they/what do they do +- "Interactive" tool to run *high level interpreted* languages. + - pythonm ruby, shell, R, js, PHP +- The interpreter program runs on CPU and executes program line by ine + diff --git a/content/notes/java-database-connectibity.md b/content/notes/java-database-connectibity.md new file mode 100644 index 000000000..f3c85434c --- /dev/null +++ b/content/notes/java-database-connectibity.md @@ -0,0 +1,13 @@ +--- +title: "java-database-connectibity" +aliases: JDBC +tags: +- info201 +--- +- ![jdbc slide](https://i.imgur.com/Dy79jcM.png) +- ![jdbs slide what is does](https://i.imgur.com/NAr95En.png) +- ![jdb issues](https://i.imgur.com/WR7qUae.png) +- ![alternatives](https://i.imgur.com/rYhiX8o.png) +- ![jdbi](https://i.imgur.com/OcNKIfH.png) + + diff --git a/content/notes/linker.md b/content/notes/linker.md new file mode 100644 index 000000000..713771e4f --- /dev/null +++ b/content/notes/linker.md @@ -0,0 +1,51 @@ +--- +title: "linker" +aliases: Linker, linking +tags: +- cosc202 +--- + + +- Linkers facilitate use of code in multiple languages, e.g. + - use C for programming speed of developer; + - use Assembly language for running speed of code + - But these days: often hard to beat optimising compilers! +- Linkers effect interaction with libraries in two ways: + - Static linking: build libraries’ code into your application + - Dynamic linking: library connected in at load or run-time +- Linkers facilitate interaction with OS + +## Static linking +- Statically linked libraries are built into executable + - We’ve previously discussed the dependency problems: + - Every executable carries the weight of the library code + - Also, bug fixing requires rebuilding the whole program +- However, static linking is straightforward + - e.g., nothing much OS-specific about static linking + - Library calls are just function calls within userspace +- Alternative is for linking not to finish at compile-time + - Linker could add code to link at runtime + - More commonly, linker tells OS more linking needed later + +## Dynamic linking +- Dynamic linking is common on modern OSs, e.g., + - DLLs on Windows: Dynamic Link Libraries + - SOs on Linux, Solaris: Shared Objects + - DyLibs on macOS: Dynamically loaded modules +- One copy of dynamic library shared by all executables + - efficiently uses memory: load into RAM once; share to all +- Fixing bugs / security flaws is streamlined: + - just upgrade the single copy of the library + - all processes will adopt fixed library (when they next start) + +## Managing dynamic libraries +- Dynamic libraries may have different ownership + - Some dynamic libraries will be part of the OS distribution + - Others installed along with apps that need those libraries +- Can track installable library use with reference counters + - Software installer checks whether library is already present: + - if not, install library, set reference count to one + - if so, increase reference count by one + - Uninstaller decreases reference count: deletes if at zero + - But your reference counting needs to be reliable + - ... unlike early Windows OSs: so called ‘DLL hell’ \ No newline at end of file diff --git a/content/notes/loader.md b/content/notes/loader.md new file mode 100644 index 000000000..5bde64bb2 --- /dev/null +++ b/content/notes/loader.md @@ -0,0 +1,27 @@ +--- +title: "loader" +aliases: Loader, Program Loader, Loaders, loaders, program loaders +tags: +- cosc202 +--- + +An executable file e.g., greet has to be **loaded and run** by your [OS](notes/operating-system.md). Depending on your OS and your harwdare this might need to be done differently + +## C program example +[400](https://i.imgur.com/1PlLlQ5.png) [400](https://i.imgur.com/bBQp3TH.png) + +## OS Program loaders +There identify the types of file that is being executed. E.g., a #! at the beginning of a file tells the OS which interpreter to run that file through. Otherwise it will look into the binary file, loads any dynamic libraries, and adjusts the executable code to point to shared libraries in RAM. Eventaully the OS will point the CPU at the binary machine code, first creating an OS process to contain code execution so it cannot overwrite memory belonging to another process + +## Java Program "loader" +Java was designed to be portable, and minimose effort to port to another OS. Java "hides" the OS from you. It can dynamically load classes at runtime, thus avoiding an explicit linking stage. Java class loaders can read .class files. The Top-level ClassLoader is written in native code. It loads internal classes like HashMap. Then ClassLoader subclasses written in java can be loaded. + +## Even higher level computing abstractions +- Java Enterprise edition + - run code is exisintg application server + - most of the time the app framework is running + - your code injects key classes with custom business logic +- .NET is similar +- Web application programming + - stacks offer page templating, business rules, databases +- Cloud native application \ No newline at end of file diff --git a/content/notes/memoization.md b/content/notes/memoization.md new file mode 100644 index 000000000..8439c7ee6 --- /dev/null +++ b/content/notes/memoization.md @@ -0,0 +1,24 @@ +--- +title: "memoization" +aliases: caching +tags: +- cosc201 +--- + +A method of designing algorithms which is similar to dynamic programming in that previously calculated answers are stored in memory + +- initialising memory for answers +- work from top down +- whenever a result is computed store it in memory +- look up computed values (if you can) when needed + +```java +static HashMap fib = new HashMap<>(); +public static long fibMEM(int n) { + if(n <= 1) return 1; + if(!fib.containsKey(n)) { + fib.put(n, fibMEM(n-1) + fibMEM(n-2)); + } + return fib.get(n); +} +``` \ No newline at end of file diff --git a/content/notes/mobile-app-ass-03.md b/content/notes/mobile-app-ass-03.md new file mode 100644 index 000000000..ae94c96b2 --- /dev/null +++ b/content/notes/mobile-app-ass-03.md @@ -0,0 +1,24 @@ +--- +title: "mobile-app-ass-03" +aliases: +tags: +- assignment +- cosc203 +--- + +[pdf](https://blackboard.otago.ac.nz/bbcswebdav/pid-2827493-dt-content-rid-18385743_1/courses/INFO203_S1DNIE_2022/Assignment3.pdf) + +[idea](notes/idea.md) +[brainstorming](notes/brainstorming.md) +[mobile-app-personas-and-scenarios](notes/mobile-app-personas-and-scenarios.md) + +--- +Initial UI designs +Storyboard +Low Fidelity Prototypes +Design Descisions / informal evaluation +High fidelity prototype +Submission + + + diff --git a/content/notes/mobile-app-personas-and-scenarios.md b/content/notes/mobile-app-personas-and-scenarios.md new file mode 100644 index 000000000..9326ac2ca --- /dev/null +++ b/content/notes/mobile-app-personas-and-scenarios.md @@ -0,0 +1,28 @@ +# Primary Persona + +## Kyle the Casual Snowboarder + +Goals +- Wants to find new challenging and interesting tricks to learn +- wants to have fun +### Anxieties and Motivations +- Motivated by the idea of learning new tricks +- Anxious about nothing, he is fearless +### Frustrations and Concerns +- Cant think of new tricks +- Tired of doing the same old tricks + +### Needs and Expectations +- Wants an app that can think for him (he is not very smart) +- Wants to put in minimal effort to use the app + +### Scenario +Kyle wakes up in the morning at 6:45 to go snowboarding with his friends. He sees he has a notification from the trick generator app. The trick for today is a switch back lip. Kyle is excited to try the trick. Kyles friends have also seen the daily trick on their phones. When they meet up on the mountain they all learn the trick and have fun. After they have all done a switch back lip. They decide they want to try another trick. Kyle his phone out of his pocket, opens the app, which loads almost instantly, and generates a trick with only one tap.`12` + +## Users +- coaches +- parents +- snowboarders + - beginners + - casual riders + - competitive \ No newline at end of file diff --git a/content/notes/models.md b/content/notes/models.md index ed9c37c73..8fb1da21b 100644 --- a/content/notes/models.md +++ b/content/notes/models.md @@ -4,4 +4,10 @@ tags: - info201 --- +> "A model is an informative representation of an object, person or system" +Software is made up of models. It is not only "code" +Models can be high level (mockups etc) or low level (code) +Models can be executable (code, ec) or not (diagrams) + +Models are used in [domain-driven-design](notes/domain-driven-design.md) and in [behaviour-driven-development](notes/behaviour-driven-development.md) diff --git a/content/notes/object.md b/content/notes/object.md new file mode 100644 index 000000000..7ee6ba7ac --- /dev/null +++ b/content/notes/object.md @@ -0,0 +1,58 @@ +--- +title: "object" +aliases: Object +tags: +- info201 +--- +# Objects +an abastraction of somethin gin a problem domain, reflecting the capabilities of the system to keep information about it interact with it or both + +entities in any of the software nmodelling int implmenation spaces that are enatly defined by their identity state and behaviour + +similar to an entity but can also incude dynamic behaviour + +oop is programming and modelling using objects + +## Objects as a Model of reality +theoreftically objects give us better omodels of reality + +richer variaty of data types +- able to more closely model complexity of real world entities +- compart with most data bases (numbers, text, datess) +- objects and their operations (behaviour) are self contained +- facilitate code reuse + +## Basic features of objects + +state + +behaviour + +## Classes and instances +class : definition of object structure and behaviour +instance : object occurence, derived from a particular class + + +## References +pointer dirctly to object _instance_ + + +## encapsulation +decouples internal implementation from public API +- can chagne each independently +- e.g., performance, differnt algroithms +- APi stability is important + +state and behaviour separated into pubic and private +- all fields should be private +- some methods will also be private + +## Inheritance +usually via specialisation - aka subclass, subtype + +subclasses inherit public state and behaviour from superclass +- can define additional properties and behaviour + +enable polumorphism +- e.g., Integer and Rational both subcalss Number + diff --git a/content/notes/operating-system.md b/content/notes/operating-system.md new file mode 100644 index 000000000..55413aa18 --- /dev/null +++ b/content/notes/operating-system.md @@ -0,0 +1,16 @@ +--- +title: "operating-system" +aliases: Operating System, OS, OSs, Operating Systems +tags: +- cosc202 +--- + + +# Userspace +This is where applications run. Computer resources are isolated in compute and data +- cannot access memory belonging to another process +- cannot directly access hardware +- cannot occupy all of the CPUs time on one application + +# Kernal +"all seeing and all powerful" The kernel sits below the userspace and manages resource allocation and directly controls harware. Usuallly you dont directly interact with the kernel when developing software. You do interact indirectly with the kernel, it permits your interactions with the environment (input/output from/to files, network, and terminals). The standard library usually insulates you from the OS kernel, may abstract over different OSs, and do operations in an OS-agnostic way. \ No newline at end of file diff --git a/content/notes/priority-queue.md b/content/notes/priority-queue.md index 005bacbca..41d128bc2 100644 --- a/content/notes/priority-queue.md +++ b/content/notes/priority-queue.md @@ -9,7 +9,7 @@ tags: - each entry hase a value and a priority (key) - removal returns the item with the greatest priority -## 1 Implementation +# Implementation 1. stoes items and priorities in an array. Add at the end ϴ(1), remove by finding the maximum and exchaning with the end element ϴ(n) 2. stores items and their priorities in an array (or list) in sorted order. now removal is ϴ(1) bu addition in Ο(n) diff --git a/content/notes/unified-modelling-language.md b/content/notes/unified-modelling-language.md new file mode 100644 index 000000000..90642977d --- /dev/null +++ b/content/notes/unified-modelling-language.md @@ -0,0 +1,13 @@ +--- +title: "unified-modelling-language" +aliases: UML +tags: +- info201 +--- + +- [what-are-uml-diagrams](notes/what-are-uml-diagrams.md) +- [use-case-diagrams](notes/use-case-diagrams.md) +- [class-diagrams](notes/class-diagrams.md) +- [entity relationship diagram](notes/entity-relationship-diagrams.md) +- [activity-diagrams](notes/activity-diagrams.md) + diff --git a/content/notes/what-are-uml-diagrams.md b/content/notes/what-are-uml-diagrams.md new file mode 100644 index 000000000..86406fb53 --- /dev/null +++ b/content/notes/what-are-uml-diagrams.md @@ -0,0 +1,56 @@ +--- +title: "what-are-uml-diagrams" +aliases: +tags: +- info201 +--- + +A standard set of model constructs and notation defined by the object management group + +specify what not how + +- activity diagrams + - high level for business prcesses workflows + - low level for dtailed business logicP +- advantages + - describe workflows + - specify relative processing rder of activites + - simple + - can be shown to stakeholders for checking and confirmation + +enables implementation-independent specification of: +- user/system interactions +- partitioning of responsibility +- integration with larger or existing systems +- data flow and dependency +- order of operations (algorithms and processes) +- concurrent operations + +## 1 why is is useful +- helps develop efficient effective correct designs +- better communication with project stakeholders +- gives a big picture view of the project system +- independent of specific programming languages or development processes +- de facto standard for modelling OO systems + +## 2 what it is not +- visual modelling software +- a programming languages +- a software development process, method, or methodology + +## 3 Types of diagram +### 3.1 structural + +[](https://i.imgur.com/zS15EFj.png#invert) + +### 3.2 behavioural + +[](https://i.imgur.com/4lj2QIt.png#invert) + +### 3.3 Linked diagrams +each digram type models a dfiferenct aspect of the system +many of the diagrams link to each other +- e.g., use case, sequence, activity +- e.g., object, communication + +e.g., diff --git a/content/private/templates/DailyTemplate.md b/content/private/templates/DailyTemplate.md index cb7530ae0..43a35932f 100644 --- a/content/private/templates/DailyTemplate.md +++ b/content/private/templates/DailyTemplate.md @@ -3,6 +3,8 @@ --- # <% tp.date.now("DD-MM-YY") %> <% tp.user.album() %> +<% tp.user.xkdc() %> + ## Todos