tweaks, adding selector to menu, adding draught frame
This commit is contained in:
parent
ff49854819
commit
2eb6c93b43
15
config.toml
15
config.toml
@ -56,26 +56,31 @@ paginate = 40
|
|||||||
url = "mixonomer/"
|
url = "mixonomer/"
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Dev & Engineering"
|
name = "Selector"
|
||||||
weight = 2
|
weight = 2
|
||||||
|
url = "selector/"
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Dev & Engineering"
|
||||||
|
weight = 3
|
||||||
url = "dev-engineering/"
|
url = "dev-engineering/"
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Music"
|
name = "Music"
|
||||||
weight = 3
|
weight = 4
|
||||||
url = "music/"
|
url = "music/"
|
||||||
|
|
||||||
#[[menu.main]]
|
#[[menu.main]]
|
||||||
# name = "Art"
|
# name = "Art"
|
||||||
# weight = 4
|
# weight = 5
|
||||||
# url = "art/"
|
# url = "art/"
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Posts"
|
name = "Posts"
|
||||||
weight = 5
|
weight = 6
|
||||||
url = "posts/"
|
url = "posts/"
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "About"
|
name = "About"
|
||||||
weight = 6
|
weight = 7
|
||||||
url = "about/"
|
url = "about/"
|
@ -10,7 +10,7 @@ draft: false
|
|||||||
|
|
||||||
{{% image-box-link src="/posts/markov/StateTopology.png" href="/posts/markov" title="Hidden Markov Models" caption="MATLAB" %}}
|
{{% image-box-link src="/posts/markov/StateTopology.png" href="/posts/markov" title="Hidden Markov Models" caption="MATLAB" %}}
|
||||||
|
|
||||||
# [Infrastructure]({{< ref "infra" >}})
|
# [Infrastructure]({{< relref "infra" >}})
|
||||||
|
|
||||||
I manage my local and cloud infrastructure with __Terraform__ + __Ansible__ + __Docker__. I've found this stack incredibly powerful so I've written a post about my patterns and what I love about it.
|
I manage my local and cloud infrastructure with __Terraform__ + __Ansible__ + __Docker__. I've found this stack incredibly powerful so I've written a post about my patterns and what I love about it.
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ I manage my local and cloud infrastructure with __Terraform__ + __Ansible__ + __
|
|||||||
|
|
||||||
Basically, Terraform creates and destroys infrastructure, Ansible manages the OS-level stuff and then the services I run use docker compose. I use a _bootstrap_ Ansible role instead of golden images.
|
Basically, Terraform creates and destroys infrastructure, Ansible manages the OS-level stuff and then the services I run use docker compose. I use a _bootstrap_ Ansible role instead of golden images.
|
||||||
|
|
||||||
[Read More]({{< ref "infra" >}})
|
[Read More]({{< relref "infra" >}})
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -16,7 +16,11 @@ The project took about 3 weeks off and on. Initially, I wanted to model the game
|
|||||||
|
|
||||||
The MiniMax algorithm was also a bit of a pain. The algorithm relies on a tree structure for which I used the [IndexTree crate](https://crates.io/crates/indextree). Instead of using pointers between nodes that could rely on unsafe code, this library instead relies on a single backing array of nodes. Working out how to effectively create, populate and traverse the trees while following the borrow checker's rules was a good test.
|
The MiniMax algorithm was also a bit of a pain. The algorithm relies on a tree structure for which I used the [IndexTree crate](https://crates.io/crates/indextree). Instead of using pointers between nodes that could rely on unsafe code, this library instead relies on a single backing array of nodes. Working out how to effectively create, populate and traverse the trees while following the borrow checker's rules was a good test.
|
||||||
|
|
||||||
{{< figure src="screenshot.png" caption="Javascript UI with a Rust-controlled canvas" >}}
|
# Try it out below...
|
||||||
|
|
||||||
|
<iframe src="https://draught.sarsoo.xyz/" style="width: 100%; height: 1000px"></iframe>
|
||||||
|
|
||||||
|
## Under the hood
|
||||||
|
|
||||||
The performance of the game and the AI was pretty impressive. This was also without any Alpha-Beta pruning, a method to reduce the number of tree nodes that need searching. Below are the results of a basic benchmark for expanding the MiniMax tree to given depths both in development mode and release mode.
|
The performance of the game and the AI was pretty impressive. This was also without any Alpha-Beta pruning, a method to reduce the number of tree nodes that need searching. Below are the results of a basic benchmark for expanding the MiniMax tree to given depths both in development mode and release mode.
|
||||||
|
|
||||||
@ -40,4 +44,4 @@ Ultimately, I was pretty happy with the project and it can now be used as a test
|
|||||||
|
|
||||||
[GitHub Repo](https://github.com/sarsoo/draught)
|
[GitHub Repo](https://github.com/sarsoo/draught)
|
||||||
|
|
||||||
[Try it out!](https://draught.sarsoo.xyz/)
|
# [Try it out!](https://draught.sarsoo.xyz/)
|
@ -46,7 +46,7 @@ The front-end was written in __React__, which I also learnt in the process. It w
|
|||||||
|
|
||||||
The app sits in the background now, it has replaced [__Smarter Playlists__](http://playlistmachinery.com/) for my _smart playlists_ and its been a good testbed to play with more cloud services.
|
The app sits in the background now, it has replaced [__Smarter Playlists__](http://playlistmachinery.com/) for my _smart playlists_ and its been a good testbed to play with more cloud services.
|
||||||
|
|
||||||
[Try It Out](https://mixonomer.sarsoo.xyz/)
|
# [Try It Out](https://mixonomer.sarsoo.xyz/)
|
||||||
|
|
||||||
[Github](https://github.com/Sarsoo/Mixonomer)
|
[Github](https://github.com/Sarsoo/Mixonomer)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user