website

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 6ec82432a5ef6854f1149a76e8cb78b77523165f
Author: Silas Brack <silasbrack@gmail.com>
Date:   Mon, 24 Jun 2024 22:36:18 +0200

First commit.

Diffstat:
A.prettierrc.json | 4++++
Aindex.html | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atufte.css | 566+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 635 insertions(+), 0 deletions(-)

diff --git a/.prettierrc.json b/.prettierrc.json @@ -0,0 +1,4 @@ +{ + "printWidth": 120 +} + diff --git a/index.html b/index.html @@ -0,0 +1,65 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="utf-8" /> + <title>Silas Brack</title> + <link rel="stylesheet" href="tufte.css" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + </head> + + <body> + <article> + <h1 id="tufte-css">Silas' Blog</h1> + <p class="subtitle">Data Scientist</p> + + <section> + <p>I'm currently employed as a Data Scientist, Senior Associate at Saxo Bank.</p> + <p> + I work on developing AI and machine learning solutions and deploying them to production. For me, this is both + by training in-house models and using pre-trained models (and combining the two). In my time at Saxo, I've + worked on many projects, including both of the client-facing products my team has released: + </p> + <ul> + <li> + A representation learning model that learns which stocks <q>Others were interested in</q> for a given stock. + This model was our first to be integrated into the Saxo Bank platform and used by our customers. As of April + 2024, this model has seen a continuous increase in the number of interactions, and is currently sitting at + around 70&#x202F;000 monthly interactions. + </li> + <li> + A customer support chatbot which showed a 150% improvement over previous solutions in reducing client + interactions requiring human support. My implementation also reduced costs by around $85&#x202F;000 a year, + eliminated several highly time-consuming manual steps, and was trivial to extend to all languages covered by + Saxo. + </li> + <!-- <li>A recommender system</li> --> + </ul> + <p>Previously, I've also worked as a C# developer at MAN Energy Solutions.</p> + <p> + I recently finished my master's in Mathematical Modelling and Computation at the Technical University of + Denmark. During my thesis, I worked on implicit matrix algorithms for performing the Laplace approximation in + Søren Hauberg's group in the section for Cognitive Systems of DTU Compute. + </p> + <p> + Academically, I'm interested in machine learning and statistics, from deep learning to network science to + Bayesian inference to forecasting. I love mathematics and would like to learn more&mdash;though mostly for its + applications. I really enjoy sitting down and writing code. Finally, I'm interested in the intersection of + science and society, and science communication is quite important to me. I spend a lot of time trying to learn + more about how to effectively communicate ideas and really enjoy teaching. + </p> + <p> + I think it's important to be well-rounded and to have a broad understanding of the world. On the side, I like + reading about the humanities, especially economics, philosophy, sociology, and history. I suspect life is + intrinsically meaningless; I just try to make the most of it by learning, teaching, appreciating beauty + wherever I can, and by prioritising doing things I enjoy. Because of this, I try to spend a lot of time + engaging with the arts by reading, watching films, and listening to music. I also really like to cook, and + have developed a reputation for my food among my friends. + </p> + <p> + <a href="https://github.com/silasbrack">Here</a> is my GitHub if you are interested, and + <a href="https://www.linkedin.com/in/silasbrack/">I'm also on LinkedIn</a>. + </p> + </section> + </article> + </body> +</html> diff --git a/tufte.css b/tufte.css @@ -0,0 +1,566 @@ +@charset "UTF-8"; + +/* Import ET Book styles + adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */ + +@font-face { + font-family: "et-book"; + src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot"); + src: + url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"), + url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.woff") format("woff"), + url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.ttf") format("truetype"), + url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.svg#etbookromanosf") format("svg"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "et-book"; + src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot"); + src: + url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot?#iefix") + format("embedded-opentype"), + url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff") format("woff"), + url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.ttf") + format("truetype"), + url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.svg#etbookromanosf") + format("svg"); + font-weight: normal; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: "et-book"; + src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot"); + src: + url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"), + url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.woff") format("woff"), + url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.ttf") format("truetype"), + url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.svg#etbookromanosf") format("svg"); + font-weight: bold; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "et-book-roman-old-style"; + src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot"); + src: + url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot?#iefix") + format("embedded-opentype"), + url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff"), + url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.ttf") format("truetype"), + url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.svg#etbookromanosf") format("svg"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +/* Tufte CSS styles */ +html { + font-size: 15px; +} + +body { + width: 87.5%; + margin-left: auto; + margin-right: auto; + padding-left: 12.5%; + font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif; + background-color: #fffff8; + color: #111; + max-width: 1400px; + counter-reset: sidenote-counter; +} + +/* Adds dark mode */ +@media (prefers-color-scheme: dark) { + body { + background-color: #151515; + color: #ddd; + } +} + +h1 { + font-weight: 400; + margin-top: 4rem; + margin-bottom: 1.5rem; + font-size: 3.2rem; + line-height: 1; +} + +h2 { + font-style: italic; + font-weight: 400; + margin-top: 2.1rem; + margin-bottom: 1.4rem; + font-size: 2.2rem; + line-height: 1; +} + +h3 { + font-style: italic; + font-weight: 400; + font-size: 1.7rem; + margin-top: 2rem; + margin-bottom: 1.4rem; + line-height: 1; +} + +hr { + display: block; + height: 1px; + width: 55%; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} + +p.subtitle { + font-style: italic; + margin-top: 1rem; + margin-bottom: 1rem; + font-size: 1.8rem; + display: block; + line-height: 1; +} + +.numeral { + font-family: et-book-roman-old-style; +} + +.danger { + color: red; +} + +article { + padding: 5rem 0rem; +} + +section { + padding-top: 1rem; + padding-bottom: 1rem; +} + +p, +dl, +ol, +ul { + font-size: 1.4rem; + line-height: 2rem; +} + +p { + margin-top: 1.4rem; + margin-bottom: 1.4rem; + padding-right: 0; + vertical-align: baseline; +} + +/* Chapter Epigraphs */ +div.epigraph { + margin: 5em 0; +} + +div.epigraph > blockquote { + margin-top: 3em; + margin-bottom: 3em; +} + +div.epigraph > blockquote, +div.epigraph > blockquote > p { + font-style: italic; +} + +div.epigraph > blockquote > footer { + font-style: normal; +} + +div.epigraph > blockquote > footer > cite { + font-style: italic; +} +/* end chapter epigraphs styles */ + +blockquote { + font-size: 1.4rem; +} + +blockquote p { + width: 55%; + margin-right: 40px; +} + +blockquote footer { + width: 55%; + font-size: 1.1rem; + text-align: right; +} + +section > p, +section > footer, +section > table { + width: 55%; +} + +/* 50 + 5 == 55, to be the same width as paragraph */ +section > dl, +section > ol, +section > ul { + width: 50%; + -webkit-padding-start: 5%; +} + +dt:not(:first-child), +li:not(:first-child) { + margin-top: 0.25rem; +} + +figure { + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; + max-width: 55%; + -webkit-margin-start: 0; + -webkit-margin-end: 0; + margin: 0 0 3em 0; +} + +figcaption { + float: right; + clear: right; + margin-top: 0; + margin-bottom: 0; + font-size: 1.1rem; + line-height: 1.6; + vertical-align: baseline; + position: relative; + max-width: 40%; +} + +figure.fullwidth figcaption { + margin-right: 24%; +} + +/* Links: replicate underline that clears descenders */ +a:link, +a:visited { + color: inherit; +} + +.no-tufte-underline:link { + background: unset; + text-shadow: unset; +} + +a:link, +.tufte-underline, +.hover-tufte-underline:hover { + text-decoration: none; + background: + -webkit-linear-gradient(#fffff8, #fffff8), + -webkit-linear-gradient(#fffff8, #fffff8), + -webkit-linear-gradient(currentColor, currentColor); + background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), + linear-gradient(currentColor, currentColor); + -webkit-background-size: + 0.05em 1px, + 0.05em 1px, + 1px 1px; + -moz-background-size: + 0.05em 1px, + 0.05em 1px, + 1px 1px; + background-size: + 0.05em 1px, + 0.05em 1px, + 1px 1px; + background-repeat: no-repeat, no-repeat, repeat-x; + text-shadow: + 0.03em 0 #fffff8, + -0.03em 0 #fffff8, + 0 0.03em #fffff8, + 0 -0.03em #fffff8, + 0.06em 0 #fffff8, + -0.06em 0 #fffff8, + 0.09em 0 #fffff8, + -0.09em 0 #fffff8, + 0.12em 0 #fffff8, + -0.12em 0 #fffff8, + 0.15em 0 #fffff8, + -0.15em 0 #fffff8; + background-position: + 0% 93%, + 100% 93%, + 0% 93%; +} + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + a:link, + .tufte-underline, + .hover-tufte-underline:hover { + background-position-y: 87%, 87%, 87%; + } +} + +/* Adds dark mode */ +@media (prefers-color-scheme: dark) { + a:link, + .tufte-underline, + .hover-tufte-underline:hover { + text-shadow: + 0.03em 0 #151515, + -0.03em 0 #151515, + 0 0.03em #151515, + 0 -0.03em #151515, + 0.06em 0 #151515, + -0.06em 0 #151515, + 0.09em 0 #151515, + -0.09em 0 #151515, + 0.12em 0 #151515, + -0.12em 0 #151515, + 0.15em 0 #151515, + -0.15em 0 #151515; + } +} + +a:link::selection, +a:link::-moz-selection { + text-shadow: + 0.03em 0 #b4d5fe, + -0.03em 0 #b4d5fe, + 0 0.03em #b4d5fe, + 0 -0.03em #b4d5fe, + 0.06em 0 #b4d5fe, + -0.06em 0 #b4d5fe, + 0.09em 0 #b4d5fe, + -0.09em 0 #b4d5fe, + 0.12em 0 #b4d5fe, + -0.12em 0 #b4d5fe, + 0.15em 0 #b4d5fe, + -0.15em 0 #b4d5fe; + background: #b4d5fe; +} + +/* Sidenotes, margin notes, figures, captions */ +img { + max-width: 100%; +} + +.sidenote, +.marginnote { + float: right; + clear: right; + margin-right: -60%; + width: 50%; + margin-top: 0.3rem; + margin-bottom: 0; + font-size: 1.1rem; + line-height: 1.3; + vertical-align: baseline; + position: relative; +} + +.sidenote-number { + counter-increment: sidenote-counter; +} + +.sidenote-number:after, +.sidenote:before { + font-family: et-book-roman-old-style; + position: relative; + vertical-align: baseline; +} + +.sidenote-number:after { + content: counter(sidenote-counter); + font-size: 1rem; + top: -0.5rem; + left: 0.1rem; +} + +.sidenote:before { + content: counter(sidenote-counter) " "; + font-size: 1rem; + top: -0.5rem; +} + +blockquote .sidenote, +blockquote .marginnote { + margin-right: -82%; + min-width: 59%; + text-align: left; +} + +div.fullwidth, +table.fullwidth { + width: 100%; +} + +div.table-wrapper { + overflow-x: auto; + font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif; +} + +.sans { + font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif; + letter-spacing: 0.03em; +} + +code, +pre > code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 1rem; + line-height: 1.42; + -webkit-text-size-adjust: 100%; /* Prevent adjustments of font size after orientation changes in iOS. See https://github.com/edwardtufte/tufte-css/issues/81#issuecomment-261953409 */ +} + +.sans > code { + font-size: 1.2rem; +} + +h1 > code, +h2 > code, +h3 > code { + font-size: 0.8em; +} + +.marginnote > code, +.sidenote > code { + font-size: 1rem; +} + +pre > code { + font-size: 0.9rem; + width: 52.5%; + margin-left: 2.5%; + overflow-x: auto; + display: block; +} + +pre.fullwidth > code { + width: 90%; +} + +.fullwidth { + max-width: 90%; + clear: both; +} + +span.newthought { + font-variant: small-caps; + font-size: 1.2em; +} + +input.margin-toggle { + display: none; +} + +label.sidenote-number { + display: inline-block; + max-height: 2rem; /* should be less than or equal to paragraph line-height */ +} + +label.margin-toggle:not(.sidenote-number) { + display: none; +} + +.iframe-wrapper { + position: relative; + padding-bottom: 56.25%; /* 16:9 */ + padding-top: 25px; + height: 0; +} + +.iframe-wrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +@media (max-width: 760px) { + body { + width: 84%; + padding-left: 8%; + padding-right: 8%; + } + + hr, + section > p, + section > footer, + section > table { + width: 100%; + } + + pre > code { + width: 97%; + } + + section > dl, + section > ol, + section > ul { + width: 90%; + } + + figure { + max-width: 90%; + } + + figcaption, + figure.fullwidth figcaption { + margin-right: 0%; + max-width: none; + } + + blockquote { + margin-left: 1.5em; + margin-right: 0em; + } + + blockquote p, + blockquote footer { + width: 100%; + } + + label.margin-toggle:not(.sidenote-number) { + display: inline; + } + + .sidenote, + .marginnote { + display: none; + } + + .margin-toggle:checked + .sidenote, + .margin-toggle:checked + .marginnote { + display: block; + float: left; + left: 1rem; + clear: both; + width: 95%; + margin: 1rem 2.5%; + vertical-align: baseline; + position: relative; + } + + label { + cursor: pointer; + } + + div.table-wrapper, + table { + width: 85%; + } + + img { + width: 100%; + } +} +