added to forte
This commit is contained in:
parent
1466b5db32
commit
2f509c9251
7
Cargo.lock
generated
7
Cargo.lock
generated
|
@ -483,6 +483,7 @@ dependencies = [
|
|||
"futures-intrusive",
|
||||
"gif",
|
||||
"image",
|
||||
"pollster",
|
||||
"tokio",
|
||||
"wgpu",
|
||||
]
|
||||
|
@ -1401,6 +1402,12 @@ dependencies = [
|
|||
"miniz_oxide",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pollster"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.17"
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" rel="icon" type="image/x-icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link rel="icon" href="resources/favicon.svg" type="image/x-icon"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
@ -321,14 +321,14 @@ code {
|
|||
.property {
|
||||
color: #586e75;
|
||||
}
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header><h1> Fishbowl <a target="_blank" href="https://github.com/Xterminate1818/fishbowl"><svg style="padding-bottom: 0.2em;" viewBox="0 0 128 128"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" fill-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Vector Math - Standard Library </h2></header><div class="content"><h2 class="distinct"> Gallery </h2><div class="pure-g"><div class="pure-u-1-3"><img class="pure-img" src="/resources/mona_lisa.gif" title="Mona Lisa - Leonardo da Vinci"/></div><div class="pure-u-1-3"><img title="Wanderer above the Sea of Fog - Caspar David Friederich" class="pure-img" src="/resources/wanderer.gif"/></div><div class="pure-u-1-3"><img class="pure-img" title="The Starry Night - Vincent van Gogh" src="/resources/starry_night.gif"/></div></div><h2 class="distinct"> Motivation </h2>
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header><h1> Fishbowl <a href="https://github.com/Xterminate1818/fishbowl" target="_blank"><svg style="padding-bottom: 0.2em;" viewBox="0 0 128 128"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z" fill-rule="evenodd"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Vector Math - Standard Library </h2></header><div class="content"><h2 class="distinct"> Gallery </h2><div class="pure-g"><div class="pure-u-1-3"><img class="pure-img" src="/resources/mona_lisa.gif" title="Mona Lisa - Leonardo da Vinci"/></div><div class="pure-u-1-3"><img class="pure-img" title="Wanderer above the Sea of Fog - Caspar David Friederich" src="/resources/wanderer.gif"/></div><div class="pure-u-1-3"><img class="pure-img" title="The Starry Night - Vincent van Gogh" src="/resources/starry_night.gif"/></div></div><h2 class="distinct"> Motivation </h2>
|
||||
Physics solvers tend to be very complex software. In the
|
||||
past, I toyed around with physics solvers for different kinds of geometries, but
|
||||
struggled to implement these algorithms in a way that was both convincing
|
||||
and performant. The idea for Fishbowl came from a video by the creator
|
||||
Pezzza. They describe the high-level implementation details of a Verlet
|
||||
Integration solver. This approach caught my interest.
|
||||
<div class="video"><iframe referrerpolicy="strict-origin-when-cross-origin" frameborder="0" allowfullscreen title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" src="https://www.youtube-nocookie.com/embed/lS_qeBy3aQI?si=gLrHCWO-XUSP0T0j"></iframe></div>
|
||||
<div class="video"><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" title="YouTube video player" allowfullscreen src="https://www.youtube-nocookie.com/embed/lS_qeBy3aQI?si=gLrHCWO-XUSP0T0j" frameborder="0"></iframe></div>
|
||||
Pezza's work is very impressive, particularly the demonstration at the end
|
||||
which proves the program is deterministic. However, the focus of Pezzza's
|
||||
project was to create a performant real-time application. I was instead
|
||||
|
@ -376,7 +376,7 @@ code {
|
|||
Keep in mind the web version below will be slower and generate lower quality
|
||||
results than the native application, as it is being run on my home server with
|
||||
limited resources.
|
||||
<br/><br/><img hidden id="result_image" height="512" class="pure-img centered" width="512"/><form id="fishForm" style="justify-content: center;" method="post" class="pure-form-stacked" enctype="multipart/form-data"><fieldset><label for="file"> Select an image </label><input accept="image/bmp,image/gif,image/vnd.microsoft.icon,image/jpeg,image/png,image/tiff,image/webp" id="file" type="file" name="image" required/><br/><input class="pure-button pure-button-primary" type="submit" value="Run Fishbowl"/></fieldset></form><!----><script>
|
||||
<br/><br/><img class="pure-img centered" id="result_image" hidden height="512" width="512"/><form id="fishForm" class="pure-form-stacked" style="justify-content: center;" method="post" enctype="multipart/form-data"><fieldset><label for="file"> Select an image </label><input required name="image" id="file" accept="image/bmp,image/gif,image/vnd.microsoft.icon,image/jpeg,image/png,image/tiff,image/webp" type="file"/><br/><input class="pure-button pure-button-primary" value="Run Fishbowl" type="submit"/></fieldset></form><!----><script>
|
||||
|
||||
const form = document.getElementById("fishForm");
|
||||
const image = document.getElementById("result_image");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link type="image/x-icon" rel="icon" href="resources/favicon.svg"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link rel="icon" type="image/x-icon" href="resources/favicon.svg"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
@ -321,7 +321,7 @@ code {
|
|||
.property {
|
||||
color: #586e75;
|
||||
}
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> Forte <a href="https://github.com/Xterminate1818/forte" target="_blank"><svg style="padding-bottom: 0.2em;" viewBox="0 0 128 128"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" fill-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Programming Language - Hackathon </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> Forte <a target="_blank" href="https://github.com/Xterminate1818/forte"><svg style="padding-bottom: 0.2em;" viewBox="0 0 128 128"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z" fill-rule="evenodd"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Programming Language - Hackathon </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
In February of 2024, I competed at RowdyHacks during the 9th
|
||||
annual Hackathon. This was my second time attending, having
|
||||
<a href="/projects/fractal-viewer" class="link">
|
||||
|
@ -387,10 +387,31 @@ code {
|
|||
difficult to pull off.
|
||||
<h2 class="distinct"> Safety </h2>
|
||||
Creating a memory safe assembly language presents much different challenges
|
||||
from a compiled language like Rust. There are no compile-time checks or
|
||||
guarantees, any string of bytes could be interpreted as a "program." The core
|
||||
design principle of Forte is to make unsecure programs impossible (or at least
|
||||
very difficult) to express, and to make static analysis simple. This is a delicate
|
||||
balance to strike - limiting Forte's capabilities necessarily makes it more
|
||||
cumbersome and less performant.
|
||||
</div></div></div></body></html>
|
||||
from a compiled language like Rust. There are no compile-time checks or
|
||||
guarantees, any string of bytes could be interpreted as a "program." The
|
||||
core design principle of Forte is to make unsecure programs impossible (or
|
||||
at least very difficult) to express, and to make static analysis simple.
|
||||
This is a delicate balance to strike - limiting Forte's capabilities
|
||||
necessarily makes it more cumbersome and less performant. I believe we are
|
||||
at a point in history where making this trade-off is the right move. Modern
|
||||
processors are unbelievably fast, security concerns far outweigh
|
||||
performance concerns in most use cases. Writing machine assembly by hand is
|
||||
far less common today, and so the ergonomics of an assembly language are
|
||||
also less of a concern.
|
||||
<h2 class="distinct"> Limitations </h2>
|
||||
Forte is the first programming language I've written, and it was hacked
|
||||
together in less than 24 hours. It is certainly not production ready, and
|
||||
not every feature is implemented yet. Other features are technically functional,
|
||||
but exist as mostly placeholders for when I can find a better way to implement them.
|
||||
<br/><br/>
|
||||
Evaluating branching and looping code during the Warmup is very difficult to achieve.
|
||||
I very quickly run into the
|
||||
<a class="link" href="https://en.wikipedia.org/wiki/Halting_problem">
|
||||
Halting Problem</a>,
|
||||
and feasibility limits where I to try and implement this sort of algorithm on real
|
||||
hardware. Solutions I've considered are requiring code branches to have the same net effect
|
||||
on stack size, forcing branches to execute another function rather than exist inline, replacing
|
||||
loops with some form of recursion, or outright removing branches and loops altogether. Without
|
||||
solving this problem, it is impossible to make the Warmup phase do its job, and so it is mostly
|
||||
vestigial. As of now, Forte is only really capable of simple linear programs.
|
||||
<h2 class="distinct"> Try it Out </h2></div></div></div></body></html>
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" type="image/x-icon" rel="icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" rel="icon" type="image/x-icon"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
@ -321,7 +321,7 @@ code {
|
|||
.property {
|
||||
color: #586e75;
|
||||
}
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> Fractal Explorer <a target="_blank" href="https://github.com/Xterminate1818/rowdyhacks-2023"><svg viewBox="0 0 128 128" style="padding-bottom: 0.2em;"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" fill-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Parallel Algorithms - Optimization - Hackathon Finalist </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> Fractal Explorer <a href="https://github.com/Xterminate1818/rowdyhacks-2023" target="_blank"><svg viewBox="0 0 128 128" style="padding-bottom: 0.2em;"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z" fill-rule="evenodd"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Parallel Algorithms - Optimization - Hackathon Finalist </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
In March of 2023 I attended RowdyHacks 8, my first hackathon. I was
|
||||
in the middle of my Calculus II class, which I was enjoying a lot. With
|
||||
Math at the front of my mind, I decided to write a program to visualize
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" type="image/x-icon" rel="icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" rel="icon" type="image/x-icon"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
@ -321,7 +321,7 @@ code {
|
|||
.property {
|
||||
color: #586e75;
|
||||
}
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> HTML Templating Engine <a target="_blank" href="https://github.com/Xterminate1818/html"><svg viewBox="0 0 128 128" style="padding-bottom: 0.2em;"><title> View source on GitHub </title><g fill="#181616"><path d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z" fill-rule="evenodd" clip-rule="evenodd"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Front End - Parser Design </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> HTML Templating Engine <a href="https://github.com/Xterminate1818/html" target="_blank"><svg style="padding-bottom: 0.2em;" viewBox="0 0 128 128"><title> View source on GitHub </title><g fill="#181616"><path d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z" fill-rule="evenodd" clip-rule="evenodd"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Front End - Parser Design </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
HTML is a powerful tool for creating static web pages, but
|
||||
is not easily modular or scalable. Front end frameworks like
|
||||
React provide reusable components. I want to use components
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link rel="icon" href="resources/favicon.svg" type="image/x-icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link rel="icon" type="image/x-icon" href="resources/favicon.svg"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
@ -321,7 +321,7 @@ code {
|
|||
.property {
|
||||
color: #586e75;
|
||||
}
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> Rust HTTP Server <a target="_blank" href="https://github.com/Xterminate1818/server"><svg viewBox="0 0 128 128" style="padding-bottom: 0.2em;"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" fill-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Keywords: Back End - TCP - SSL </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> Rust HTTP Server <a target="_blank" href="https://github.com/Xterminate1818/server"><svg viewBox="0 0 128 128" style="padding-bottom: 0.2em;"><title> View source on GitHub </title><g fill="#181616"><path fill-rule="evenodd" clip-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Keywords: Back End - TCP - SSL </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
As a systems programmer, I want to understand the technologies
|
||||
I use at a very low level. Modern web stacks abstract away the
|
||||
process of handling TCP connections, serving SSL certificates,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" rel="icon" type="image/x-icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link type="image/x-icon" href="resources/favicon.svg" rel="icon"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" rel="icon" type="image/x-icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link type="image/x-icon" href="resources/favicon.svg" rel="icon"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
@ -321,7 +321,7 @@ code {
|
|||
.property {
|
||||
color: #586e75;
|
||||
}
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> nd-range <a target="_blank" href="https://github.com/Xterminate1818/nd-range"><svg viewBox="0 0 128 128" style="padding-bottom: 0.2em;"><title> View source on GitHub </title><g fill="#181616"><path d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z" clip-rule="evenodd" fill-rule="evenodd"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Vector Math - Standard Library </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><header class="header"><h1> nd-range <a href="https://github.com/Xterminate1818/nd-range" target="_blank"><svg style="padding-bottom: 0.2em;" viewBox="0 0 128 128"><title> View source on GitHub </title><g fill="#181616"><path clip-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z" fill-rule="evenodd"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g></svg></a></h1><h2> Vector Math - Standard Library </h2></header><div class="content"><h2 class="distinct"> Motivation </h2>
|
||||
The Rust standard library provides several 'Range' types which
|
||||
represent integers inside a given bounds (i.e. 1 ≤ n ≤ 100).
|
||||
Ranges can be iterated over, and used for bounds testing of numbers.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link rel="icon" href="resources/favicon.svg" type="image/x-icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link type="image/x-icon" href="resources/favicon.svg" rel="icon"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" rel="icon" type="image/x-icon"/><style>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta content="width=device-width, initial-scale=1" name="viewport"/><title> <loganGatlin/> </title><link href="resources/favicon.svg" rel="icon" type="image/x-icon"/><style>
|
||||
/*!
|
||||
Pure v3.0.0
|
||||
Copyright 2013 Yahoo!
|
||||
|
@ -321,6 +321,6 @@ code {
|
|||
.property {
|
||||
color: #586e75;
|
||||
}
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><div class="header"><h1> This page is under construction </h1><h2> Check back later </h2><a class="link" href="/home"><button class="pure-button pure-button-primary button-xlarge">
|
||||
</style></head><body><div class="pure-g"><div class="pure-u-1-1"><div class="header"><h1> This page is under construction </h1><h2> Check back later </h2><a href="/home" class="link"><button class="pure-button pure-button-primary button-xlarge">
|
||||
Return Home
|
||||
</button></a></div></div></div></body></html>
|
|
@ -192,12 +192,34 @@
|
|||
difficult to pull off.
|
||||
<h2 class="distinct"> Safety </h2>
|
||||
Creating a memory safe assembly language presents much different challenges
|
||||
from a compiled language like Rust. There are no compile-time checks or
|
||||
guarantees, any string of bytes could be interpreted as a "program." The core
|
||||
design principle of Forte is to make unsecure programs impossible (or at least
|
||||
very difficult) to express, and to make static analysis simple. This is a delicate
|
||||
balance to strike - limiting Forte's capabilities necessarily makes it more
|
||||
cumbersome and less performant.
|
||||
from a compiled language like Rust. There are no compile-time checks or
|
||||
guarantees, any string of bytes could be interpreted as a "program." The
|
||||
core design principle of Forte is to make unsecure programs impossible (or
|
||||
at least very difficult) to express, and to make static analysis simple.
|
||||
This is a delicate balance to strike - limiting Forte's capabilities
|
||||
necessarily makes it more cumbersome and less performant. I believe we are
|
||||
at a point in history where making this trade-off is the right move. Modern
|
||||
processors are unbelievably fast, security concerns far outweigh
|
||||
performance concerns in most use cases. Writing machine assembly by hand is
|
||||
far less common today, and so the ergonomics of an assembly language are
|
||||
also less of a concern.
|
||||
<h2 class="distinct"> Limitations </h2>
|
||||
Forte is the first programming language I've written, and it was hacked
|
||||
together in less than 24 hours. It is certainly not production ready, and
|
||||
not every feature is implemented yet. Other features are technically functional,
|
||||
but exist as mostly placeholders for when I can find a better way to implement them.
|
||||
<br/><br/>
|
||||
Evaluating branching and looping code during the Warmup is very difficult to achieve.
|
||||
I very quickly run into the
|
||||
<a class="link" href="https://en.wikipedia.org/wiki/Halting_problem">
|
||||
Halting Problem</a>,
|
||||
and feasibility limits where I to try and implement this sort of algorithm on real
|
||||
hardware. Solutions I've considered are requiring code branches to have the same net effect
|
||||
on stack size, forcing branches to execute another function rather than exist inline, replacing
|
||||
loops with some form of recursion, or outright removing branches and loops altogether. Without
|
||||
solving this problem, it is impossible to make the Warmup phase do its job, and so it is mostly
|
||||
vestigial. As of now, Forte is only really capable of simple linear programs.
|
||||
<h2 class="distinct"> Try it Out </h2>
|
||||
</div>
|
||||
|
||||
</Container>
|
||||
|
|
192
nohup.out
Normal file
192
nohup.out
Normal file
|
@ -0,0 +1,192 @@
|
|||
warning: unused imports: `Write`, `cell::RefCell`, `path::Path`
|
||||
--> /home/logan/fishbowl/src/lib.rs:3:3
|
||||
|
|
||||
3 | cell::RefCell,
|
||||
| ^^^^^^^^^^^^^
|
||||
4 | future::join,
|
||||
5 | io::{Cursor, Write},
|
||||
| ^^^^^
|
||||
6 | path::Path,
|
||||
| ^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(unused_imports)]` on by default
|
||||
|
||||
warning: field `uniform_buffer` is never read
|
||||
--> /home/logan/fishbowl/src/draw.rs:108:3
|
||||
|
|
||||
103 | pub struct QuickDraw {
|
||||
| --------- field in this struct
|
||||
...
|
||||
108 | uniform_buffer: Buffer,
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(dead_code)]` on by default
|
||||
|
||||
warning: `fishbowl` (lib) generated 2 warnings (run `cargo fix --lib -p fishbowl` to apply 1 suggestion)
|
||||
warning: unused import: `tiny_http::Header`
|
||||
--> src/get.rs:6:5
|
||||
|
|
||||
6 | use tiny_http::Header;
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(unused_imports)]` on by default
|
||||
|
||||
warning: unused variable: `query`
|
||||
--> src/get.rs:14:13
|
||||
|
|
||||
14 | let (url, query) = url.split_once('?').unwrap_or((url, ""));
|
||||
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
|
||||
|
|
||||
= note: `#[warn(unused_variables)]` on by default
|
||||
|
||||
warning: function `graceful_cleanup` is never used
|
||||
--> src/main.rs:15:4
|
||||
|
|
||||
15 | fn graceful_cleanup() {
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(dead_code)]` on by default
|
||||
|
||||
warning: `server` (bin "server") generated 3 warnings (run `cargo fix --bin "server"` to apply 1 suggestion)
|
||||
Finished `release` profile [optimized] target(s) in 0.11s
|
||||
start.sh: 3: watchexec: not found
|
||||
18:35 INFO - Get AT "/home"
|
||||
warning: unused imports: `Write`, `cell::RefCell`, `path::Path`
|
||||
--> /home/logan/fishbowl/src/lib.rs:3:3
|
||||
|
|
||||
3 | cell::RefCell,
|
||||
| ^^^^^^^^^^^^^
|
||||
4 | future::join,
|
||||
5 | io::{Cursor, Write},
|
||||
| ^^^^^
|
||||
6 | path::Path,
|
||||
| ^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(unused_imports)]` on by default
|
||||
|
||||
warning: field `uniform_buffer` is never read
|
||||
--> /home/logan/fishbowl/src/draw.rs:108:3
|
||||
|
|
||||
103 | pub struct QuickDraw {
|
||||
| --------- field in this struct
|
||||
...
|
||||
108 | uniform_buffer: Buffer,
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(dead_code)]` on by default
|
||||
|
||||
warning: `fishbowl` (lib) generated 2 warnings (run `cargo fix --lib -p fishbowl` to apply 1 suggestion)
|
||||
warning: unused import: `tiny_http::Header`
|
||||
--> src/get.rs:6:5
|
||||
|
|
||||
6 | use tiny_http::Header;
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(unused_imports)]` on by default
|
||||
|
||||
warning: unused variable: `query`
|
||||
--> src/get.rs:14:13
|
||||
|
|
||||
14 | let (url, query) = url.split_once('?').unwrap_or((url, ""));
|
||||
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
|
||||
|
|
||||
= note: `#[warn(unused_variables)]` on by default
|
||||
|
||||
warning: function `graceful_cleanup` is never used
|
||||
--> src/main.rs:15:4
|
||||
|
|
||||
15 | fn graceful_cleanup() {
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(dead_code)]` on by default
|
||||
|
||||
warning: `server` (bin "server") generated 3 warnings (run `cargo fix --bin "server"` to apply 1 suggestion)
|
||||
Finished `release` profile [optimized] target(s) in 0.11s
|
||||
start.sh: 3: watchexec: not found
|
||||
18:36 INFO - Get AT "/home"
|
||||
18:36 INFO - Get AT "/home"
|
||||
19:09 INFO - Get AT "/robots.txt"
|
||||
19:09 INFO - Get AT "/"
|
||||
19:09 INFO - Get AT "/home"
|
||||
19:09 INFO - Get AT "/home"
|
||||
19:09 INFO - Get AT "/home"
|
||||
19:09 INFO - Get AT "/favicon.ico"
|
||||
19:09 INFO - Get AT "/resources/favicon.svg"
|
||||
19:09 INFO - Get AT "/resources/favicon.svg"
|
||||
19:14 INFO - Get AT "/home"
|
||||
19:14 INFO - Get AT "/home"
|
||||
19:14 INFO - Get AT "/resume.pdf"
|
||||
19:14 INFO - Get AT "/home"
|
||||
19:14 INFO - Get AT "/projects/http-server"
|
||||
19:15 INFO - Get AT "/projects/forte"
|
||||
19:16 INFO - Get AT "/projects/forte"
|
||||
warning: unused imports: `Write`, `cell::RefCell`, `path::Path`
|
||||
--> /home/logan/fishbowl/src/lib.rs:3:3
|
||||
|
|
||||
3 | cell::RefCell,
|
||||
| ^^^^^^^^^^^^^
|
||||
4 | future::join,
|
||||
5 | io::{Cursor, Write},
|
||||
| ^^^^^
|
||||
6 | path::Path,
|
||||
| ^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(unused_imports)]` on by default
|
||||
|
||||
warning: field `uniform_buffer` is never read
|
||||
--> /home/logan/fishbowl/src/draw.rs:108:3
|
||||
|
|
||||
103 | pub struct QuickDraw {
|
||||
| --------- field in this struct
|
||||
...
|
||||
108 | uniform_buffer: Buffer,
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(dead_code)]` on by default
|
||||
|
||||
warning: `fishbowl` (lib) generated 2 warnings (run `cargo fix --lib -p fishbowl` to apply 1 suggestion)
|
||||
warning: unused import: `tiny_http::Header`
|
||||
--> src/get.rs:6:5
|
||||
|
|
||||
6 | use tiny_http::Header;
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(unused_imports)]` on by default
|
||||
|
||||
warning: unused variable: `query`
|
||||
--> src/get.rs:14:13
|
||||
|
|
||||
14 | let (url, query) = url.split_once('?').unwrap_or((url, ""));
|
||||
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
|
||||
|
|
||||
= note: `#[warn(unused_variables)]` on by default
|
||||
|
||||
warning: function `graceful_cleanup` is never used
|
||||
--> src/main.rs:15:4
|
||||
|
|
||||
15 | fn graceful_cleanup() {
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(dead_code)]` on by default
|
||||
|
||||
warning: `server` (bin "server") generated 3 warnings (run `cargo fix --bin "server"` to apply 1 suggestion)
|
||||
Finished `release` profile [optimized] target(s) in 0.13s
|
||||
19:19 INFO - Get AT "/projects/forte"
|
||||
19:20 INFO - Get AT "/projects/forte"
|
||||
19:22 INFO - Get AT "/projects/forte"
|
||||
19:24 INFO - Get AT "/projects/forte"
|
||||
19:25 INFO - Get AT "/"
|
||||
19:25 INFO - Get AT "/home"
|
||||
19:26 INFO - Get AT "/projects/forte"
|
||||
19:40 INFO - Get AT "/robots.txt"
|
||||
19:40 INFO - Get AT "/"
|
||||
19:40 INFO - Get AT "/home"
|
||||
19:40 INFO - Get AT "/home"
|
||||
19:40 INFO - Get AT "/home"
|
||||
19:40 INFO - Get AT "/favicon.ico"
|
||||
19:40 INFO - Get AT "/resources/favicon.svg"
|
||||
19:40 INFO - Get AT "/resources/favicon.svg"
|
||||
19:40 INFO - Get AT "/projects/forte"
|
||||
19:41 INFO - Get AT "/projects/forte"
|
||||
19:41 INFO - Get AT "/projects/forte"
|
||||
19:42 INFO - Get AT "/home"
|
23
src/main.rs
23
src/main.rs
|
@ -23,10 +23,10 @@ fn graceful_cleanup() {
|
|||
.arg(format!("{}", last_pid))
|
||||
.output()
|
||||
.unwrap();
|
||||
},
|
||||
}
|
||||
None => {
|
||||
log::warn!("Did not find previous PID");
|
||||
},
|
||||
}
|
||||
};
|
||||
let pid = std::process::id();
|
||||
let mut file = std::fs::File::create(PID_PATH).unwrap();
|
||||
|
@ -37,13 +37,12 @@ fn graceful_cleanup() {
|
|||
async fn main() {
|
||||
// graceful_cleanup();
|
||||
let _h = logging::init();
|
||||
// let ssl = tiny_http::SslConfig {
|
||||
// certificate:
|
||||
// include_bytes!("../lgatlin.dev.cert").to_vec(),
|
||||
// private_key:
|
||||
// include_bytes!("../../lgatlin.dev.priv").to_vec(), };
|
||||
// let server = Server::https("0.0.0.0:443", ssl).unwrap();
|
||||
let server = Server::http("0.0.0.0:8080").unwrap();
|
||||
let ssl = tiny_http::SslConfig {
|
||||
certificate: include_bytes!("../lgatlin.dev.cert").to_vec(),
|
||||
private_key: include_bytes!("../../lgatlin.dev.priv").to_vec(),
|
||||
};
|
||||
let server = Server::https("0.0.0.0:443", ssl).unwrap();
|
||||
// let server = Server::http("0.0.0.0:8080").unwrap();
|
||||
|
||||
let router = Arc::new(Router::new());
|
||||
let post = Arc::new(PostHandler);
|
||||
|
@ -112,11 +111,7 @@ async fn main() {
|
|||
}
|
||||
}
|
||||
|
||||
async fn handle_connection(
|
||||
mut request: Request,
|
||||
route: Arc<Router>,
|
||||
post: Arc<PostHandler>,
|
||||
) {
|
||||
async fn handle_connection(mut request: Request, route: Arc<Router>, post: Arc<PostHandler>) {
|
||||
use tiny_http::*;
|
||||
let response = match request.method() {
|
||||
Method::Get | Method::Head => route.construct_response(request.url()).await,
|
||||
|
|
Loading…
Reference in a new issue