chore: upgrade docusaurus and deps

Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2024-07-11 23:50:54 +02:00
parent 64a520eca5
commit 2d11a9dc27
Signed by: mfocko
SSH key fingerprint: SHA256:5YXD7WbPuK60gxnG6DjAwJiS9+swoWj33/HFu8g8JVo
21 changed files with 1528 additions and 346 deletions

View file

@ -232,7 +232,7 @@ Since it might seem a bit scary, I will disect it by parts.
We pass to the sorting function **copy** of the numbers we got, this ensures that once we are checking the more strict postcondition, we can gather the necessary information even after sorting the list in-situ, i.e. we can check if the `result` is really a `permutation` of the `numbers` even though the sorting functions has modified the passed in list. We pass to the sorting function **copy** of the numbers we got, this ensures that once we are checking the more strict postcondition, we can gather the necessary information even after sorting the list in-situ, i.e. we can check if the `result` is really a `permutation` of the `numbers` even though the sorting functions has modified the passed in list.
:::caution :::warning[caution]
Now we get to the more complicated part and it is the _decorators_. Now we get to the more complicated part and it is the _decorators_.

View file

@ -49,7 +49,7 @@ You can control the robot using the following interface:
- `robot.left_is_clear()` — to check if you can step to the left - `robot.left_is_clear()` — to check if you can step to the left
- analogically for `front` and `right` - analogically for `front` and `right`
:::caution :::warning[caution]
Helper functions / procedures are allowed. Return values are allowed. Helper functions / procedures are allowed. Return values are allowed.

View file

@ -140,7 +140,7 @@ If you wonder why, I'll try to describe it intuitively:
binary tree of height `y`, in each node we do some work in constant time, binary tree of height `y`, in each node we do some work in constant time,
therefore we can just sum the ones. therefore we can just sum the ones.
:::warning :::danger
It would've been more complicated to get an exact result. In the equation above It would've been more complicated to get an exact result. In the equation above
we are assuming that the width of the pyramid is bound by the height. we are assuming that the width of the pyramid is bound by the height.

View file

@ -126,7 +126,7 @@ the pyramid:
it will be interleaved with the next step, therefore it is easier to keep the it will be interleaved with the next step, therefore it is easier to keep the
retrievals in the following point. retrievals in the following point.
:::caution :::warning[caution]
You might have noticed it's still not that easy, cause we're not having full You might have noticed it's still not that easy, cause we're not having full
cache right from the beginning, but the sum of those logarithms cannot be cache right from the beginning, but the sum of those logarithms cannot be
@ -141,7 +141,7 @@ the pyramid:
2. We retrieve it from the cache. Same as in first point, but only twice, so we 2. We retrieve it from the cache. Same as in first point, but only twice, so we
get $2 \cdot \log_2{n}$. get $2 \cdot \log_2{n}$.
:::caution :::warning[caution]
It's done twice because of the `.containsKey()` in the `if` condition. It's done twice because of the `.containsKey()` in the `if` condition.
@ -233,7 +233,7 @@ $$
\sum_{y=0}^{\mathtt{pyramid.length} - 1} \mathtt{pyramid}\left[y\right]\mathtt{.length} \sum_{y=0}^{\mathtt{pyramid.length} - 1} \mathtt{pyramid}\left[y\right]\mathtt{.length}
$$ $$
:::caution :::warning[caution]
If you're wondering whether it's correct because of the second `if` in our If you're wondering whether it's correct because of the second `if` in our
function, your guess is right. However we are expressing the complexity in the function, your guess is right. However we are expressing the complexity in the

View file

@ -70,7 +70,7 @@ Slide down in this case is equal to `1074`.
## Solving the problem ## Solving the problem
:::caution :::warning[caution]
I will describe the following ways you can approach this problem and implement I will describe the following ways you can approach this problem and implement
them in _Java_[^1]. them in _Java_[^1].

View file

@ -187,7 +187,7 @@ as it should be. However, there is one difference. Second path no longer satisfi
the condition of a _leaf_. Technically it relaxes the 5th rule, because we leave the condition of a _leaf_. Technically it relaxes the 5th rule, because we leave
out some of the nodes. We should probably avoid that. out some of the nodes. We should probably avoid that.
:::caution :::warning[caution]
With the second idea, you may also feel that we are “bending” the rules a bit, With the second idea, you may also feel that we are “bending” the rules a bit,
especially the definition of the “leaf” nodes. especially the definition of the “leaf” nodes.

View file

@ -64,7 +64,7 @@ And then follow up on that with the actual backstory from Dijkstra himself:
> — Edsger Dijkstra, in an interview with Philip L. Frana, Communications of the > — Edsger Dijkstra, in an interview with Philip L. Frana, Communications of the
> ACM, 2001 > ACM, 2001
:::caution Precondition :::warning Precondition
As our own naïve algorithm, Dijkstra's algorithm has a precondition that places As our own naïve algorithm, Dijkstra's algorithm has a precondition that places
a requirement of _no edges with negative weights_ in the graph. This a requirement of _no edges with negative weights_ in the graph. This

View file

@ -32,7 +32,7 @@ Let's be honest here, majority of the checks rely on the static analysis, cause
you can't do anything else during the compile-time, right? Therefore we can you can't do anything else during the compile-time, right? Therefore we can
basically say that we are relying on the compiler to “solve” all of our issues. basically say that we are relying on the compiler to “solve” all of our issues.
:::warning :::danger
I'm not doubting the fact that compiler can prevent **a lot** of the memory I'm not doubting the fact that compiler can prevent **a lot** of the memory
errors, I'm just saying it's not realistic to cover **everything**. errors, I'm just saying it's not realistic to cover **everything**.
@ -249,7 +249,7 @@ just worse for me, part of this post may be also influenced by this fact.
### Rust in Linux ### Rust in Linux
:::caution :::warning[caution]
As someone who has seen the way Linux kernel is built in the RHEL ecosystem, how As someone who has seen the way Linux kernel is built in the RHEL ecosystem, how
complex the whole thing is and how much resources you need to proceed, I have complex the whole thing is and how much resources you need to proceed, I have

View file

@ -25,7 +25,7 @@ This post is inspired/triggered by the following Mastodon post:
<!--truncate--> <!--truncate-->
:::caution Disclaimer :::warning Disclaimer
You may take my opinion with a grain of salt, since I'm affiliated with Red Hat, You may take my opinion with a grain of salt, since I'm affiliated with Red Hat,
but at the same time I've also seen the other side of the fence, so I know how but at the same time I've also seen the other side of the fence, so I know how
@ -175,7 +175,7 @@ that contain packages. The way you go around this is rather simple, you choose
some set of _critical_ packages that you guarantee support for (like Linux some set of _critical_ packages that you guarantee support for (like Linux
kernel, openSSL, etc.) and maintain those with all the QA processes in place. kernel, openSSL, etc.) and maintain those with all the QA processes in place.
:::caution Unpopular opinion :::warning Unpopular opinion
This is also one of the reasons why I'm quite against packaging anything and This is also one of the reasons why I'm quite against packaging anything and
everything into the Linux distribution. In my opinion it is impossible to everything into the Linux distribution. In my opinion it is impossible to

View file

@ -297,7 +297,7 @@ However after running that command, we will get the following:
And the `color_eyre::install()?` is quite straightforward. We just initialize the And the `color_eyre::install()?` is quite straightforward. We just initialize the
error reporting by _color eyre_. error reporting by _color eyre_.
:::caution :::warning[caution]
Notice that we had to add `Ok(())` to the end of the function and adjust the Notice that we had to add `Ok(())` to the end of the function and adjust the
return type of the `main` to `Result<()>`. It is caused by the _color eyre_ that return type of the `main` to `Result<()>`. It is caused by the _color eyre_ that

View file

@ -153,7 +153,7 @@ println!("Common elements: {:?}", top.intersection(&bottom));
Common elements: [3] Common elements: [3]
``` ```
:::caution :::warning[caution]
Notice that we need to do `&bottom`. It explicitly specifies that `.intersection` Notice that we need to do `&bottom`. It explicitly specifies that `.intersection`
**borrows** the `bottom`, i.e. takes an immutable reference to it. **borrows** the `bottom`, i.e. takes an immutable reference to it.

View file

@ -34,7 +34,7 @@ way:
- checking whether they are correct indices for the `Vec<Vec<T>>` - checking whether they are correct indices for the `Vec<Vec<T>>`
- indexing `Vec<Vec<T>>` with them - indexing `Vec<Vec<T>>` with them
:::caution :::warning[caution]
I'm getting familiar with Rust and starting to “abuse” it… While doing so, I'm I'm getting familiar with Rust and starting to “abuse” it… While doing so, I'm
also uncovering some “features” that I don't really like. Therefore I will mark also uncovering some “features” that I don't really like. Therefore I will mark
@ -142,7 +142,7 @@ where
} }
``` ```
:::caution **«↯»** Why can't we use one function? :::warning **«↯»** Why can't we use one function?
When we consider a `Vec<T>`, we don't need to consider containers as `T`, Rust When we consider a `Vec<T>`, we don't need to consider containers as `T`, Rust
implements indexing as traits `Index<T>` and `IndexMut<T>` that do the dirty work implements indexing as traits `Index<T>` and `IndexMut<T>` that do the dirty work
@ -382,7 +382,7 @@ fn day() -> String {
} }
``` ```
:::caution `type_name` :::warning `type_name`
This feature is still experimental and considered to be internal, it is not This feature is still experimental and considered to be internal, it is not
advised to use it any production code. advised to use it any production code.

View file

@ -419,7 +419,7 @@ I think that we can definitely agree on the fact that `RefMut<'_, T>` is not the
than implementing the interface, because it **cannot** satisfy the type requirements than implementing the interface, because it **cannot** satisfy the type requirements
of the trait. of the trait.
:::caution :::warning[caution]
I wonder how are we expected to deal with this conflict, if and when, we need I wonder how are we expected to deal with this conflict, if and when, we need
both the `.borrow_mut()` of the trait and `.borrow_mut()` of the `RefCell<T>`. both the `.borrow_mut()` of the trait and `.borrow_mut()` of the `RefCell<T>`.

View file

@ -24,7 +24,7 @@ the 2nd part…
::: :::
:::caution Rant :::danger Rant
This was the most obnoxious problem of this year… and a lot of Rust issues have This was the most obnoxious problem of this year… and a lot of Rust issues have
been hit. been hit.
@ -251,36 +251,38 @@ fun fact on top of that is the type of the comparator
Once we remove the `dyn` keyword, compiler yells at us and also includes a way Once we remove the `dyn` keyword, compiler yells at us and also includes a way
how to get a more thorough explanation of the error by running how to get a more thorough explanation of the error by running
```shell
$ rustc --explain E0782 $ rustc --explain E0782
```
which shows us which shows us
Trait objects must include the `dyn` keyword. > Trait objects must include the `dyn` keyword.
>
Erroneous code example: > Erroneous code example:
>
``` > ```
trait Foo {} > trait Foo {}
fn test(arg: Box<Foo>) {} // error! > fn test(arg: Box<Foo>) {} // error!
``` > ```
>
Trait objects are a way to call methods on types that are not known until > Trait objects are a way to call methods on types that are not known until
runtime but conform to some trait. > runtime but conform to some trait.
>
Trait objects should be formed with `Box<dyn Foo>`, but in the code above > Trait objects should be formed with `Box<dyn Foo>`, but in the code above
`dyn` is left off. > `dyn` is left off.
>
This makes it harder to see that `arg` is a trait object and not a > This makes it harder to see that `arg` is a trait object and not a
simply a heap allocated type called `Foo`. > simply a heap allocated type called `Foo`.
>
To fix this issue, add `dyn` before the trait name. > To fix this issue, add `dyn` before the trait name.
>
``` > ```
trait Foo {} > trait Foo {}
fn test(arg: Box<dyn Foo>) {} // ok! > fn test(arg: Box<dyn Foo>) {} // ok!
``` > ```
>
This used to be allowed before edition 2021, but is now an error. > This used to be allowed before edition 2021, but is now an error.
:::danger Rant :::danger Rant
@ -319,7 +321,7 @@ you as you move.
::: :::
:::caution :::warning[caution]
It's second to last day and I went “_bonkers_” on the Rust :smile: Proceed to It's second to last day and I went “_bonkers_” on the Rust :smile: Proceed to
read _Solution_ part on your own risk. read _Solution_ part on your own risk.
@ -343,7 +345,7 @@ and, well, let's use `z` for a timestamp, cause why not, right? :wink:
#### Evaluating the blizzards #### Evaluating the blizzards
:::caution :::warning[caution]
I think that this is the most perverted abuse of the traits in the whole 4 weeks I think that this is the most perverted abuse of the traits in the whole 4 weeks
of AoC in Rust… of AoC in Rust…

View file

@ -7,7 +7,7 @@ last_update:
date: 2023-03-07 date: 2023-03-07
--- ---
:::caution :::warning[caution]
Deadline for the submission of the bonus is **March 16th 24:00**. Deadline for the submission of the bonus is **March 16th 24:00**.

View file

@ -7,7 +7,7 @@ last_update:
date: 2023-03-13 date: 2023-03-13
--- ---
:::caution :::warning[caution]
Deadline for the submission of the bonus is **March 23th 24:00**. Deadline for the submission of the bonus is **March 23th 24:00**.

View file

@ -9,7 +9,7 @@ last_update:
# Garbage Collection # Garbage Collection
:::caution Exam environment :::warning Exam environment
- During the exam you will be provided with a barebone _exam session_ on the - During the exam you will be provided with a barebone _exam session_ on the
_faculty computers_. _faculty computers_.
@ -48,7 +48,7 @@ can see only two commands being used:
- `..` that moves you up one level (in case you are in `/`, does nothing), or - `..` that moves you up one level (in case you are in `/`, does nothing), or
- is a valid directory in the current working directory. - is a valid directory in the current working directory.
:::caution :::warning[caution]
There are no guarantees or restrictions on the names of the files or There are no guarantees or restrictions on the names of the files or
directories! directories!
@ -144,6 +144,7 @@ $$
You can have a look at the example usage of your program. We can run your You can have a look at the example usage of your program. We can run your
program from the shell like program from the shell like
```
$ ./garbage_collect shell_history.txt -gt 10000000 $ ./garbage_collect shell_history.txt -gt 10000000
24933642 /d 24933642 /d
14848514 /b.txt 14848514 /b.txt
@ -151,6 +152,7 @@ program from the shell like
$ ./garbage_collect shell_history.txt -f 70000000 30000000 $ ./garbage_collect shell_history.txt -f 70000000 30000000
24933642 /d 24933642 /d
```
## Requirements and notes ## Requirements and notes

View file

@ -9,7 +9,7 @@ last_update:
# Watching Cams # Watching Cams
:::caution Exam environment :::warning Exam environment
- During the exam you will be provided with a barebone _exam session_ on the - During the exam you will be provided with a barebone _exam session_ on the
_faculty computers_. _faculty computers_.
@ -61,7 +61,9 @@ Each “scan” (i.e. reading) of the cameras consists of the following data:
And they are compiled into one reading such as: And they are compiled into one reading such as:
```
camera_ID: plate timestamp camera_ID: plate timestamp
```
There should be always **at least one** space in between each part of the There should be always **at least one** space in between each part of the
reading. Readings are separated by the commas, which may, but don't have to, be reading. Readings are separated by the commas, which may, but don't have to, be
@ -126,10 +128,13 @@ of the output.
You can also have a look at example usage of your program. We can run your You can also have a look at example usage of your program. We can run your
program from the shell like program from the shell like
```
$ ./cams example_1.txt $ ./cams example_1.txt
```
And it will produce an output: And it will produce an output:
```
*** ABC-12-34 *** *** ABC-12-34 ***
25: Fri Oct 1 10:50:56 2021 25: Fri Oct 1 10:50:56 2021
@ -157,6 +162,7 @@ And it will produce an output:
*** YourMum *** *** YourMum ***
42: Thu May 4 05:14:42 2023 42: Thu May 4 05:14:42 2023
```
## Requirements and notes ## Requirements and notes

View file

@ -13,7 +13,7 @@ last_update:
Most likely WSL, VM or VPS. If you consider setting up either of those PITA, then Most likely WSL, VM or VPS. If you consider setting up either of those PITA, then
VSCode + SSH to _aisa_ might be the best option for you. VSCode + SSH to _aisa_ might be the best option for you.
:::caution VSCode @ aisa :::warning VSCode @ aisa
Be careful when using VSCode on aisa, most notably: Be careful when using VSCode on aisa, most notably:

View file

@ -14,10 +14,10 @@
"write-heading-ids": "docusaurus write-heading-ids" "write-heading-ids": "docusaurus write-heading-ids"
}, },
"dependencies": { "dependencies": {
"@docusaurus/core": "^3.1.1", "@docusaurus/core": "3.0.0",
"@docusaurus/plugin-client-redirects": "^3.1.1", "@docusaurus/plugin-client-redirects": "3.0.0",
"@docusaurus/preset-classic": "^3.1.1", "@docusaurus/preset-classic": "3.0.0",
"@docusaurus/theme-mermaid": "^3.1.1", "@docusaurus/theme-mermaid": "3.0.0",
"@mdx-js/react": "^3.0.0", "@mdx-js/react": "^3.0.0",
"clsx": "^1.2.1", "clsx": "^1.2.1",
"docusaurus-plugin-sass": "^0.2.4", "docusaurus-plugin-sass": "^0.2.4",
@ -27,12 +27,13 @@
"prism-react-renderer": "^2.1.0", "prism-react-renderer": "^2.1.0",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"rehype-katex": "7", "rehype-katex": "^7.0.0",
"remark-math": "6", "remark-math": "^6.0.0",
"sass": "^1.63.6" "sass": "^1.63.6"
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "^3.1.1" "@docusaurus/module-type-aliases": "3.0.0",
"@docusaurus/types": "3.0.0"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [
@ -47,6 +48,6 @@
] ]
}, },
"engines": { "engines": {
"node": ">=16.14" "node": ">=18.0"
} }
} }

1683
yarn.lock

File diff suppressed because it is too large Load diff