update website
This commit is contained in:
parent
c6495852ba
commit
354e41873a
17 changed files with 441 additions and 319 deletions
|
@ -6,7 +6,7 @@ timestamp: 2022-06-01T00:00:00-04:00
|
||||||
|
|
||||||
Much like any ordinary child, I spent much of my childhood watching math videos on YouTube. During this time I discovered many channels that you might already be familiary with: [3Blue1Brown](https://www.youtube.com/c/3blue1brown), [Numberphile](https://www.youtube.com/user/numberphile), [Stand-up Maths](https://www.youtube.com/user/standupmaths), and many, many others. I credit these videos with inspiring me to continue my fascination with mathematics. However, one of these channels rises above all others in terms of how it shaped me: [Vihart](https://www.youtube.com/user/Vihart).
|
Much like any ordinary child, I spent much of my childhood watching math videos on YouTube. During this time I discovered many channels that you might already be familiary with: [3Blue1Brown](https://www.youtube.com/c/3blue1brown), [Numberphile](https://www.youtube.com/user/numberphile), [Stand-up Maths](https://www.youtube.com/user/standupmaths), and many, many others. I credit these videos with inspiring me to continue my fascination with mathematics. However, one of these channels rises above all others in terms of how it shaped me: [Vihart](https://www.youtube.com/user/Vihart).
|
||||||
|
|
||||||
Vi's videos, although lacking in pixels, more than make up for it with their humor, art, music, and beautiful introductions into various mathematics concepts that one would be lucky to even mention in a school curriculum. These videos introduced me to [$$ \tau $$](https://www.youtube.com/watch?v=FtxmFlMLYRI) (tau) - the superior circle constant, equal to the ratio between a circle's circumference and its radius (two times $$ \pi $$). Each day this June, leading up to June 28 ([tau day](https://tauday.org)), I will be posting a creative demonstration of the beauty of this constant, circles, and mathematics as a whole.
|
Vi's videos, although lacking in pixels, more than make up for it with their humor, art, music, and beautiful introductions into various mathematics concepts that one would be lucky to even mention in a school curriculum. These videos introduced me to [$\tau$](https://www.youtube.com/watch?v=FtxmFlMLYRI) (tau) - the superior circle constant, equal to the ratio between a circle's circumference and its radius (two times $\pi$). Each day this June, leading up to June 28 ([tau day](https://tauday.org)), I will be posting a creative demonstration of the beauty of this constant, circles, and mathematics as a whole.
|
||||||
|
|
||||||
All code used to generate these visualizations will be available [on GitHub](https://github.com/TriMill/28-days-of-tau/) the same day the blog post is released.
|
All code used to generate these visualizations will be available [on GitHub](https://github.com/TriMill/28-days-of-tau/) the same day the blog post is released.
|
||||||
|
|
||||||
|
@ -14,6 +14,6 @@ All code used to generate these visualizations will be available [on GitHub](htt
|
||||||
|
|
||||||
![Day 1 - Labyrinth](/static/i/blog/tau-day1.png)
|
![Day 1 - Labyrinth](/static/i/blog/tau-day1.png)
|
||||||
|
|
||||||
This image shows the digits of tau (as represented in a base-10 positional system) by assigning each one an angle, where 0 is directly right and each subsequent digit is $$ \frac{\tau}{10} $$ radians counterclockwise. The first digit is right next to the center, and following digits are further out and connected by arcs.
|
This image shows the digits of tau (as represented in a base-10 positional system) by assigning each one an angle, where 0 is directly right and each subsequent digit is $\frac{\tau}{10}$ radians counterclockwise. The first digit is right next to the center, and following digits are further out and connected by arcs.
|
||||||
|
|
||||||
[GitHub](https://github.com/TriMill/28-days-of-tau/tree/main/day1)
|
[GitHub](https://github.com/TriMill/28-days-of-tau/tree/main/day1)
|
|
@ -8,6 +8,6 @@ timestamp: 2022-06-03T00:00:00-04:00
|
||||||
|
|
||||||
![Day 3 - Polygons](/static/i/blog/tau-day3.png)
|
![Day 3 - Polygons](/static/i/blog/tau-day3.png)
|
||||||
|
|
||||||
One of the oldest methods known to calculate circle constants is inscribing polygons of increasing side counts within circles. It is easy to find the area of these polygons, and as the number of sides increases the area approaches $$ \frac{\tau}{2} $$ (assuming a circle with radius 1).
|
One of the oldest methods known to calculate circle constants is inscribing polygons of increasing side counts within circles. It is easy to find the area of these polygons, and as the number of sides increases the area approaches $\frac{\tau}{2}$ (assuming a circle with radius 1).
|
||||||
|
|
||||||
[GitHub](https://github.com/TriMill/28-days-of-tau/tree/main/day3)
|
[GitHub](https://github.com/TriMill/28-days-of-tau/tree/main/day3)
|
|
@ -9,5 +9,5 @@ My favorite number is 12. Some people I have talked to do not understand the con
|
||||||
- 12 has 6 factors (1, 2, 3, 4, 6, and 12), which is more factors than any positive integer less than it.
|
- 12 has 6 factors (1, 2, 3, 4, 6, and 12), which is more factors than any positive integer less than it.
|
||||||
- The dodecahedron, one of the five platonic solids (and the only one to have pentagonal faces), has 12 faces. The cube (the only platonic solid with square faces) has 12 edges.
|
- The dodecahedron, one of the five platonic solids (and the only one to have pentagonal faces), has 12 faces. The cube (the only platonic solid with square faces) has 12 edges.
|
||||||
- Base 12 is a very good positional number system, much more practical than base 10 (although not as good as base 6)
|
- Base 12 is a very good positional number system, much more practical than base 10 (although not as good as base 6)
|
||||||
- The Riemann zeta function evaluated at -1 is equal to $$ \frac{-1}{12} $$
|
- The Riemann zeta function evaluated at -1 is equal to $\frac{-1}{12}$
|
||||||
- i like it :)
|
- i like it :)
|
|
@ -4,8 +4,7 @@ desc: The future of syndication is finally here
|
||||||
timestamp: 2022-07-04T12:49:00-04:00
|
timestamp: 2022-07-04T12:49:00-04:00
|
||||||
---
|
---
|
||||||
|
|
||||||
![citrons: "we should have a unified GEORGE RSS feed that combines all of the RSS feeds in GEORGE
|
![citrons: "we should have a unified GEORGE RSS feed that combines all of the RSS feeds in GEORGE"](/static/i/blog/rssb_origins.png)
|
||||||
"](/static/i/blog/rssb_origins.png)
|
|
||||||
|
|
||||||
When this idea was brought up a few months ago, I stated in response that I would pursue it at a later date if no one else had (possibly). Recently, that later date has occured.
|
When this idea was brought up a few months ago, I stated in response that I would pursue it at a later date if no one else had (possibly). Recently, that later date has occured.
|
||||||
|
|
||||||
|
|
|
@ -16,5 +16,5 @@ If you are not happy with preexisting pies, it is quite simple to innovate an en
|
||||||
|
|
||||||
With pie, the possibilities are endless.
|
With pie, the possibilities are endless.
|
||||||
|
|
||||||
[^1]: [this list](https://thepizzacalc.com/pizza-toppings-list-4/) includes 80 standard pizza toppings. this yields $$ 2^{80} $$ possible pizzas. if a human lives for 100 years and eats 3 meals per day, they will eat about 110,000 meals, which is far less than $$ 2^{80} $$.
|
[^1]: [this list](https://thepizzacalc.com/pizza-toppings-list-4/) includes 80 standard pizza toppings. this yields $2^{80}$ possible pizzas. if a human lives for 100 years and eats 3 meals per day, they will eat about 110,000 meals, which is far less than $2^{80}$.
|
||||||
|
|
||||||
|
|
BIN
flaskr/static/i/bg.png
Normal file
BIN
flaskr/static/i/bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 747 B |
BIN
flaskr/static/i/bg_light.png
Normal file
BIN
flaskr/static/i/bg_light.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 736 B |
76
flaskr/static/pygments.css
Normal file
76
flaskr/static/pygments.css
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
.codehilite .c { color: #999999; font-style: italic } /* Comment */
|
||||||
|
.codehilite .err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
||||||
|
.codehilite .esc { color: #d0d0d0 } /* Escape */
|
||||||
|
.codehilite .g { color: #d0d0d0 } /* Generic */
|
||||||
|
.codehilite .k { color: #6ab825; font-weight: bold } /* Keyword */
|
||||||
|
.codehilite .l { color: #d0d0d0 } /* Literal */
|
||||||
|
.codehilite .n { color: #d0d0d0 } /* Name */
|
||||||
|
.codehilite .o { color: #d0d0d0 } /* Operator */
|
||||||
|
.codehilite .x { color: #d0d0d0 } /* Other */
|
||||||
|
.codehilite .p { color: #d0d0d0 } /* Punctuation */
|
||||||
|
.codehilite .ch { color: #999999; font-style: italic } /* Comment.Hashbang */
|
||||||
|
.codehilite .cm { color: #999999; font-style: italic } /* Comment.Multiline */
|
||||||
|
.codehilite .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */
|
||||||
|
.codehilite .cpf { color: #999999; font-style: italic } /* Comment.PreprocFile */
|
||||||
|
.codehilite .c1 { color: #999999; font-style: italic } /* Comment.Single */
|
||||||
|
.codehilite .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */
|
||||||
|
.codehilite .gd { color: #d22323 } /* Generic.Deleted */
|
||||||
|
.codehilite .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */
|
||||||
|
.codehilite .gr { color: #d22323 } /* Generic.Error */
|
||||||
|
.codehilite .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
|
||||||
|
.codehilite .gi { color: #589819 } /* Generic.Inserted */
|
||||||
|
.codehilite .go { color: #cccccc } /* Generic.Output */
|
||||||
|
.codehilite .gp { color: #aaaaaa } /* Generic.Prompt */
|
||||||
|
.codehilite .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */
|
||||||
|
.codehilite .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */
|
||||||
|
.codehilite .gt { color: #d22323 } /* Generic.Traceback */
|
||||||
|
.codehilite .kc { color: #6ab825; font-weight: bold } /* Keyword.Constant */
|
||||||
|
.codehilite .kd { color: #6ab825; font-weight: bold } /* Keyword.Declaration */
|
||||||
|
.codehilite .kn { color: #6ab825; font-weight: bold } /* Keyword.Namespace */
|
||||||
|
.codehilite .kp { color: #6ab825 } /* Keyword.Pseudo */
|
||||||
|
.codehilite .kr { color: #6ab825; font-weight: bold } /* Keyword.Reserved */
|
||||||
|
.codehilite .kt { color: #6ab825; font-weight: bold } /* Keyword.Type */
|
||||||
|
.codehilite .ld { color: #d0d0d0 } /* Literal.Date */
|
||||||
|
.codehilite .m { color: #3677a9 } /* Literal.Number */
|
||||||
|
.codehilite .s { color: #ed9d13 } /* Literal.String */
|
||||||
|
.codehilite .na { color: #bbbbbb } /* Name.Attribute */
|
||||||
|
.codehilite .nb { color: #24909d } /* Name.Builtin */
|
||||||
|
.codehilite .nc { color: #447fcf; text-decoration: underline } /* Name.Class */
|
||||||
|
.codehilite .no { color: #40ffff } /* Name.Constant */
|
||||||
|
.codehilite .nd { color: #ffa500 } /* Name.Decorator */
|
||||||
|
.codehilite .ni { color: #d0d0d0 } /* Name.Entity */
|
||||||
|
.codehilite .ne { color: #bbbbbb } /* Name.Exception */
|
||||||
|
.codehilite .nf { color: #447fcf } /* Name.Function */
|
||||||
|
.codehilite .nl { color: #d0d0d0 } /* Name.Label */
|
||||||
|
.codehilite .nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */
|
||||||
|
.codehilite .nx { color: #d0d0d0 } /* Name.Other */
|
||||||
|
.codehilite .py { color: #d0d0d0 } /* Name.Property */
|
||||||
|
.codehilite .nt { color: #6ab825; font-weight: bold } /* Name.Tag */
|
||||||
|
.codehilite .nv { color: #40ffff } /* Name.Variable */
|
||||||
|
.codehilite .ow { color: #6ab825; font-weight: bold } /* Operator.Word */
|
||||||
|
.codehilite .w { color: #666666 } /* Text.Whitespace */
|
||||||
|
.codehilite .mb { color: #3677a9 } /* Literal.Number.Bin */
|
||||||
|
.codehilite .mf { color: #3677a9 } /* Literal.Number.Float */
|
||||||
|
.codehilite .mh { color: #3677a9 } /* Literal.Number.Hex */
|
||||||
|
.codehilite .mi { color: #3677a9 } /* Literal.Number.Integer */
|
||||||
|
.codehilite .mo { color: #3677a9 } /* Literal.Number.Oct */
|
||||||
|
.codehilite .sa { color: #ed9d13 } /* Literal.String.Affix */
|
||||||
|
.codehilite .sb { color: #ed9d13 } /* Literal.String.Backtick */
|
||||||
|
.codehilite .sc { color: #ed9d13 } /* Literal.String.Char */
|
||||||
|
.codehilite .dl { color: #ed9d13 } /* Literal.String.Delimiter */
|
||||||
|
.codehilite .sd { color: #ed9d13 } /* Literal.String.Doc */
|
||||||
|
.codehilite .s2 { color: #ed9d13 } /* Literal.String.Double */
|
||||||
|
.codehilite .se { color: #ed9d13 } /* Literal.String.Escape */
|
||||||
|
.codehilite .sh { color: #ed9d13 } /* Literal.String.Heredoc */
|
||||||
|
.codehilite .si { color: #ed9d13 } /* Literal.String.Interpol */
|
||||||
|
.codehilite .sx { color: #ffa500 } /* Literal.String.Other */
|
||||||
|
.codehilite .sr { color: #ed9d13 } /* Literal.String.Regex */
|
||||||
|
.codehilite .s1 { color: #ed9d13 } /* Literal.String.Single */
|
||||||
|
.codehilite .ss { color: #ed9d13 } /* Literal.String.Symbol */
|
||||||
|
.codehilite .bp { color: #24909d } /* Name.Builtin.Pseudo */
|
||||||
|
.codehilite .fm { color: #447fcf } /* Name.Function.Magic */
|
||||||
|
.codehilite .vc { color: #40ffff } /* Name.Variable.Class */
|
||||||
|
.codehilite .vg { color: #40ffff } /* Name.Variable.Global */
|
||||||
|
.codehilite .vi { color: #40ffff } /* Name.Variable.Instance */
|
||||||
|
.codehilite .vm { color: #40ffff } /* Name.Variable.Magic */
|
||||||
|
.codehilite .il { color: #3677a9 } /* Literal.Number.Integer.Long */
|
|
@ -40,6 +40,8 @@
|
||||||
--accent-1: #2aca98;
|
--accent-1: #2aca98;
|
||||||
--accent-1-dark: #268d78;
|
--accent-1-dark: #268d78;
|
||||||
--error: #ee6d7d;
|
--error: #ee6d7d;
|
||||||
|
--error-bg: #9b3440;
|
||||||
|
--bgimg: url("/static/i/bg.png");
|
||||||
}
|
}
|
||||||
.only-theme-light {
|
.only-theme-light {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -58,6 +60,8 @@
|
||||||
--accent-2: #0f7904;
|
--accent-2: #0f7904;
|
||||||
--accent-2-dark: #094a05;
|
--accent-2-dark: #094a05;
|
||||||
--error: #a50518;
|
--error: #a50518;
|
||||||
|
--error-bg: #ee6d7d;
|
||||||
|
--bgimg: url("/static/i/bg_light.png");
|
||||||
}
|
}
|
||||||
.only-theme-dark {
|
.only-theme-dark {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -73,6 +77,8 @@
|
||||||
--accent-1: #2aca98;
|
--accent-1: #2aca98;
|
||||||
--accent-1-dark: #268d78;
|
--accent-1-dark: #268d78;
|
||||||
--error: #ee6d7d;
|
--error: #ee6d7d;
|
||||||
|
--error-bg: #9b3440;
|
||||||
|
--bgimg: url("/static/i/bg.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
:root.theme-light {
|
:root.theme-light {
|
||||||
|
@ -84,18 +90,8 @@
|
||||||
--accent-1: #0642c3;
|
--accent-1: #0642c3;
|
||||||
--accent-1-dark: #07136d;
|
--accent-1-dark: #07136d;
|
||||||
--error: #a50518;
|
--error: #a50518;
|
||||||
}
|
--error-bg: #ee6d7d;
|
||||||
|
--bgimg: url("/static/i/bg_light.png");
|
||||||
:root.theme-special {
|
|
||||||
--bg: #ffff00;
|
|
||||||
--bg-intense: #ffffff;
|
|
||||||
--bg-faded: #00ff00;
|
|
||||||
--fg: #ff00ff;
|
|
||||||
--fg-faded: #ff0000;
|
|
||||||
--accent-1: #00ffff;
|
|
||||||
--accent-1-dark: #0000ff;
|
|
||||||
--error: #000000;
|
|
||||||
font-family: "Comic Sans MS", cursive;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
|
@ -130,7 +126,9 @@ h1 {
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background: var(--bg);
|
background-image: var(--bgimg);
|
||||||
|
background-color: var(--bg);
|
||||||
|
image-rendering: pixelated;
|
||||||
width: min(750px, 90vw);
|
width: min(750px, 90vw);
|
||||||
margin: auto;
|
margin: auto;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
@ -256,3 +254,32 @@ button:active, input[type=button]:active {
|
||||||
.error {
|
.error {
|
||||||
color: var(--error);
|
color: var(--error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#abdetect-container {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#abthankyou {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
color: var(--fg-faded);
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ad {
|
||||||
|
z-index: 99999;
|
||||||
|
background: var(--error-bg);
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
color: var(--fg);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
|
@ -3,13 +3,16 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>{{ meta.title }}</title>
|
|
||||||
|
|
||||||
<meta name="author" content="trimill">
|
<meta name="author" content="trimill">
|
||||||
<meta name="description" content="{{ meta.desc }}">
|
<meta name="description" content="{{ meta.desc }}">
|
||||||
|
<meta name="theme-color" content="#2aca98">
|
||||||
<meta property="og:description" content="{{ meta.desc }}">
|
<meta property="og:description" content="{{ meta.desc }}">
|
||||||
<meta property="og:title" content="{{ meta.title }}">
|
<meta property="og:title" content="{{ meta.title }}">
|
||||||
<meta property="og:site_name" content="trimill.xyz">
|
<meta property="og:site_name" content="trimill.xyz">
|
||||||
|
<meta property="og:image" content="{{ url_for('static', filename='logo640.png') }}">
|
||||||
|
|
||||||
|
<title>{{ meta.title }}</title>
|
||||||
|
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ url_for('static', filename='logo16.png') }}">
|
<link rel="icon" type="image/png" sizes="16x16" href="{{ url_for('static', filename='logo16.png') }}">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='logo32.png') }}">
|
<link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='logo32.png') }}">
|
||||||
|
@ -18,6 +21,7 @@
|
||||||
<link rel="icon" type="image/png" sizes="640x640" href="{{ url_for('static', filename='logo640.png') }}">
|
<link rel="icon" type="image/png" sizes="640x640" href="{{ url_for('static', filename='logo640.png') }}">
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
|
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
{% if meta.fullscreen == True %}
|
{% if meta.fullscreen == True %}
|
||||||
|
@ -38,22 +42,16 @@
|
||||||
<a href="/blog/">Blog™</a> ·
|
<a href="/blog/">Blog™</a> ·
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" style="position: sticky;">
|
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" style="position: sticky;">
|
||||||
<a href="?theme={{ data.next_theme[theme] | safe }}">
|
<a href="?theme={{ data.next_theme[theme] | safe }}">
|
||||||
<!--<rect width="8" height="8" fill="#00000000">-->
|
|
||||||
{% if theme == "dark" %}
|
{% if theme == "dark" %}
|
||||||
<path d="M2.72 0c-1.58.53-2.72 2.02-2.72 3.78 0 2.21 1.79 4 4 4 1.76 0 3.25-1.14 3.78-2.72-.4.13-.83.22-1.28.22-2.21 0-4-1.79-4-4 0-.45.08-.88.22-1.28z" />
|
<path d="M2.72 0c-1.58.53-2.72 2.02-2.72 3.78 0 2.21 1.79 4 4 4 1.76 0 3.25-1.14 3.78-2.72-.4.13-.83.22-1.28.22-2.21 0-4-1.79-4-4 0-.45.08-.88.22-1.28z" />
|
||||||
<title>Dark theme</title>
|
<title>Dark theme</title>
|
||||||
{% elif theme == "light" %}
|
{% elif theme == "light" %}
|
||||||
<path d="M4 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-3.5 1.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-6 2.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z" />
|
<path d="M4 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-3.5 1.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-6 2.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z" />
|
||||||
<title>Light theme</title>
|
<title>Light theme</title>
|
||||||
{% elif theme == "special" %}
|
|
||||||
<image href="/static/i/apioform1.png" width="8" height="8" />
|
|
||||||
transform="translate(0 1)">
|
|
||||||
<title>Ocular apiation occuring, do not close page until eyes have been apiated to completion.</title>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<path d="M3.41 0a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 1 0 .44.88l3-1.5a.5.5 0 0 0-.31-.94zm1 1.5a.5.5 0 0 0-.13.06l-4 2a.5.5 0 1 0 .44.88l4-2a.5.5 0 0 0-.31-.94zm0 2a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 0 0 .22.94h2a.5.5 0 0 0 .16-1l1.06-.56a.5.5 0 0 0-.31-.94zm-2.56 3.5a.5.5 0 0 0 .16 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0z" transform="translate(1)" />
|
<path d="M3.41 0a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 1 0 .44.88l3-1.5a.5.5 0 0 0-.31-.94zm1 1.5a.5.5 0 0 0-.13.06l-4 2a.5.5 0 1 0 .44.88l4-2a.5.5 0 0 0-.31-.94zm0 2a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 0 0 .22.94h2a.5.5 0 0 0 .16-1l1.06-.56a.5.5 0 0 0-.31-.94zm-2.56 3.5a.5.5 0 0 0 .16 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0z" transform="translate(1)" />
|
||||||
<title>System default theme</title>
|
<title>System default theme</title>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<!--</rect>-->
|
|
||||||
</a>
|
</a>
|
||||||
</svg>
|
</svg>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -68,6 +66,21 @@
|
||||||
</main>
|
</main>
|
||||||
{% if meta.fullscreen != True %}
|
{% if meta.fullscreen != True %}
|
||||||
<hr>
|
<hr>
|
||||||
|
<div id="abdetect-container">
|
||||||
|
<span class="ad-slot" id="ad">
|
||||||
|
you aren't using an adblocker! click
|
||||||
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/">here (firefox)</a> or
|
||||||
|
<a href="https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm">here (chrome)</a> to install one.
|
||||||
|
</span>
|
||||||
|
<span id="abthankyou">
|
||||||
|
thank you for using an adblocker!
|
||||||
|
</span>
|
||||||
|
<span style="visibility: hidden;">
|
||||||
|
you aren't using an adblocker! click
|
||||||
|
<a href="">here (firefox)</a> or
|
||||||
|
<a href="">here (chrome)</a> to install one.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
{% block footer_content %}{% endblock %}
|
{% block footer_content %}{% endblock %}
|
||||||
<footer>
|
<footer>
|
||||||
{{ data.feet | random | safe }}
|
{{ data.feet | random | safe }}
|
||||||
|
|
|
@ -2,13 +2,14 @@
|
||||||
{% block head %}
|
{% block head %}
|
||||||
<!-- KaTex -->
|
<!-- KaTex -->
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="/static/pygments.css">
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.js" integrity="sha384-X/XCfMm41VSsqRNQgDerQczD69XqmjOOOwYQvr/uuC+j4OPoNhVgjdGFwhvN02Ja" crossorigin="anonymous"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.js" integrity="sha384-X/XCfMm41VSsqRNQgDerQczD69XqmjOOOwYQvr/uuC+j4OPoNhVgjdGFwhvN02Ja" crossorigin="anonymous"></script>
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
renderMathInElement(document.body, {
|
renderMathInElement(document.body, {
|
||||||
delimiters: [
|
delimiters: [
|
||||||
{left: '$$', right: '$$', display: false},
|
{left: '$', right: '$', display: false},
|
||||||
{left: '\\[', right: '\\]', display: true},
|
{left: '\\[', right: '\\]', display: true},
|
||||||
],
|
],
|
||||||
throwOnError : false
|
throwOnError : false
|
||||||
|
|
|
@ -36,18 +36,16 @@
|
||||||
{% block footer_content %}
|
{% block footer_content %}
|
||||||
|
|
||||||
{% if theme == "light" %}
|
{% if theme == "light" %}
|
||||||
<iframe height="50" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23f6f5f2&c_fg=%2328262b&c_links=%230642c3&c_george=%230d8101&c_underline=%230d8101" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
<iframe title="GEORGE" height="50" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23f6f5f2&c_fg=%2328262b&c_links=%230642c3&c_george=%230d8101&c_underline=%230d8101" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
||||||
{% elif theme == "special" %}
|
|
||||||
<iframe height="50" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23ffff00&c_fg=%23ff00ff&c_links=%2300ffff&c_george=%2300ff00&c_underline=%2300ff00" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
|
||||||
{% elif theme == "system" %}
|
{% elif theme == "system" %}
|
||||||
<iframe height="50" class="only-theme-dark" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23131720&c_fg=%23e6ded6&c_links=%232aca98&c_george=%23268d78&c_underline=%23268d78" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
<iframe title="GEORGE" height="50" class="only-theme-dark" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23131720&c_fg=%23e6ded6&c_links=%232aca98&c_george=%23268d78&c_underline=%23268d78" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
||||||
<iframe height="50" class="only-theme-light" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23f6f5f2&c_fg=%2328262b&c_links=%230642c3&c_george=%230d8101&c_underline=%230d8101" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
<iframe title="GEORGE" height="50" class="only-theme-light" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23f6f5f2&c_fg=%2328262b&c_links=%230642c3&c_george=%230d8101&c_underline=%230d8101" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
||||||
{% else %}
|
{% else %}
|
||||||
<iframe height="50" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23131720&c_fg=%23e6ded6&c_links=%232aca98&c_george=%23268d78&c_underline=%23268d78" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
<iframe title="GEORGE" height="50" src="https://george.gh0.pw/embed.cgi?trimill&c_bg=%23131720&c_fg=%23e6ded6&c_links=%232aca98&c_george=%23268d78&c_underline=%23268d78" style="border:none;width:100%;" sandbox="allow-top-navigation"></iframe>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<iframe src="https://john.citrons.xyz/embed?ref=trimill.xyz" style="margin-left:auto;display:block;margin-right:auto;max-width:732px;width:100%;height:94px;border:none;"></iframe>
|
<iframe title="johnvertisement" src="https://john.citrons.xyz/embed?ref=trimill.xyz" style="margin-left:auto;display:block;margin-right:auto;max-width:732px;width:100%;height:94px;border:none;"></iframe>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -2,18 +2,26 @@
|
||||||
{% extends "/_base.html" %}
|
{% extends "/_base.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<h2><a href="https://g.trimill.xyz/trimill/complexpr">complexpr</a></h2>
|
<h2><a href="https://cx.trimill.xyz/">CXGraph</a></h2>
|
||||||
<p>
|
<p>
|
||||||
Complexpr is a toy programming language with an interpreter written in Rust. It is dynamically typed, with
|
CXGraph is the successor to Complex Grapher. It allows the definition of multiple functions,
|
||||||
native support for rational and complex numbers, lists and maps, and first-class functions. It features
|
iteration, and interactive sliders and draggable points. It is implemented primarily in Rust
|
||||||
pipeline operators (similar to Elixir's <code>|></code>) to express nested function calls more cleanly.
|
using WASM and WebGPU.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2><a href="https://g.trimill.xyz/trimill/talc">Talc</a></h2>
|
||||||
|
<p>
|
||||||
|
Talc is a procedural/functional programming language implemented in Rust. It supports
|
||||||
|
several numeric types, first-class functions, file I/O, string manipulation, exceptions,
|
||||||
|
and several other features.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2><a href="https://g.trimill.xyz/trimill/quectocraft">Quectocraft</a></h2>
|
<h2><a href="https://g.trimill.xyz/trimill/quectocraft">Quectocraft</a></h2>
|
||||||
<p>
|
<p>
|
||||||
Quectocraft is an extensible, ultra-minimalist implementation of a Minecraft server. By doing away with most
|
Quectocraft is an extensible, ultra-minimalist implementation of a Minecraft server.
|
||||||
features of the vanilla server (such as world generation and interaction) it can run without consuming many system
|
By doing away with most features of the vanilla server (such as world generation and
|
||||||
resources. It is written primarily in Rust, but can load simple plugins written in Lua to add chat features and commands.
|
interaction) it can run without consuming many system resources. It is written primarily
|
||||||
|
in Rust, but can load simple plugins written in Lua to add chat features and commands.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2><a href="https://g.trimill.xyz/trimill/rss-bundler">RSS Bundler</a></h2>
|
<h2><a href="https://g.trimill.xyz/trimill/rss-bundler">RSS Bundler</a></h2>
|
||||||
|
@ -22,19 +30,19 @@
|
||||||
feeds, merges them together, and stores and serves the result. RSS Bundler is written in Rust.
|
feeds, merges them together, and stores and serves the result. RSS Bundler is written in Rust.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2><a href="/projects/complex_grapher">Complex grapher</a></h2>
|
|
||||||
<p>
|
|
||||||
Complex grapher allows you to functions using <a href="https://en.wikipedia.org/wiki/Domain_coloring">domain coloring</a>.
|
|
||||||
Functions are written in a custom expression language and compiled to GLSL. WebGL is then used to generate a color for each pixel.
|
|
||||||
Complex grapher also has support for iterating functions, allowing you to generate fractals such as the Mandelbrot and Julia sets.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2><a href="/projects/zzcxz_vis">zzcxz visualizer</a></h2>
|
<h2><a href="/projects/zzcxz_vis">zzcxz visualizer</a></h2>
|
||||||
<p>
|
<p>
|
||||||
zzcxz visualizer displays a force-directed graph of <a href="https://zzcxz.citrons.xyz/">zzcxz</a>, a collaborative interactive
|
zzcxz visualizer displays a force-directed graph of <a href="https://zzcxz.citrons.xyz/">zzcxz</a>, a collaborative interactive
|
||||||
fiction project. It is written in JavaScript and uses D3.js.
|
fiction project. It is written in JavaScript and uses D3.js.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h2><a href="https://g.trimill.xyz/trimill/complexpr">complexpr</a></h2>
|
||||||
|
<p>
|
||||||
|
Complexpr is a toy programming language with an interpreter written in Rust. It is dynamically typed, with
|
||||||
|
native support for rational and complex numbers, lists and maps, and first-class functions. It features
|
||||||
|
pipeline operators (similar to Elixir's <code>|></code>) to express nested function calls more cleanly.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2><a href="https://g.trimill.xyz/trimill/sysh">sysh</a></h2>
|
<h2><a href="https://g.trimill.xyz/trimill/sysh">sysh</a></h2>
|
||||||
<p>
|
<p>
|
||||||
sysh is a shell that allows users to run Linux syscalls directly. It supports the entire set of x86_64 syscalls, as well as
|
sysh is a shell that allows users to run Linux syscalls directly. It supports the entire set of x86_64 syscalls, as well as
|
||||||
|
|
Loading…
Reference in a new issue