parent
00d582d0c7
commit
d1057534ec
4 changed files with 359 additions and 372 deletions
@ -1,93 +1,78 @@ |
||||
{% extends "base.html" %} |
||||
|
||||
{% block head %} |
||||
{{ super() }} |
||||
|
||||
<meta name="description" content="The personal website of Tanner Collin." /> |
||||
<meta name="summary" content="The personal website of Tanner Collin." /> |
||||
{% endblock %} |
||||
|
||||
{% block info %} |
||||
<picture> |
||||
<source type="image/webp" srcset="/theme/me.webp"> |
||||
<source type="image/jpeg" srcset="/theme/me.jpg"> |
||||
<img src="/theme/me.jpg" width="128" height="164" class="me" alt="me smiling wide and looking into the camera lit up brightly"> |
||||
</picture> |
||||
|
||||
<div class="info"> |
||||
<h1>Tanner Collin</h1> |
||||
<p class="contact-icons"> |
||||
<a href="mailto:site4@tannercollin.com" rel="noreferrer noopener"><img alt="email" src="/theme/mail.svg" width="20" height="20" /></a> |
||||
<a href="https://t.me/tannercollin" target="_blank" rel="noreferrer noopener"><img alt="telegram" src="/theme/telegram.svg" width="20" height="20" /></a> |
||||
<a href="https://github.com/tannercollin" target="_blank" rel="noreferrer noopener"><img alt="github" src="/theme/github.svg" width="20" height="20" /></a> |
||||
</p> |
||||
</div> |
||||
{{ super() }} |
||||
<meta name="description" content="The personal website of Tanner Collin." /> |
||||
<meta name="summary" content="The personal website of Tanner Collin." /> |
||||
{% endblock %} |
||||
|
||||
{% block content %} |
||||
<div class="content index"> |
||||
<p> |
||||
Hi, I'm Tanner! I like home automation, <a href="/sensors">sensors</a>, privacy, bots, Python, Debian, coffee, and makerspaces. |
||||
</p> |
||||
|
||||
<h2>Contact Info</h2> |
||||
|
||||
<p> |
||||
Email: <a href="mailto:site4@tannercollin.com">site4@tannercollin.com</a> <br /> |
||||
Telegram: <a href="https://t.me/tannercollin" target="_blank" rel="noreferrer noopener">@tannercollin</a> |
||||
</p> |
||||
|
||||
<h2>Resume</h2> |
||||
|
||||
<ul> |
||||
<li>Firmware Engineer at <a class="external" href="https://cabanablockchain.com" target="_blank" rel="noreferrer noopener">Cabana Blockchain</a>, 2018–</li> |
||||
<li>Lead Hardware Engineer at <a class="external" href="https://criticalcontrol.com/" target="_blank" rel="noreferrer noopener">Critical Control</a>, 2016–2018</li> |
||||
<li>Electrical Engineer at <a class="external" href="https://www.opener.aero/" target="_blank" rel="noreferrer noopener">Opener Aero</a>, 2016–2016</li> |
||||
<li>Electrical Engineer Intern at <a class="external" href="https://www.pason.com/" target="_blank" rel="noreferrer noopener">Pason Systems</a>, 2014–2015</li> |
||||
<li>BSc. Electrical Engineering from University of Calgary</li> |
||||
</ul> |
||||
|
||||
<h2>Projects</h2> |
||||
|
||||
<p> |
||||
My main hobby is working on software projects. I typically design websites or |
||||
build tools that make my life easier. |
||||
</p> |
||||
|
||||
{% for article in articles_page.object_list if article.category.name == 'Projects' %} |
||||
<h3><a href="{{ article.url }}">{{ article.title }}</a></h3> |
||||
<div class="summary"> |
||||
{{ article.summary }} |
||||
</div> |
||||
{% endfor %} |
||||
<div class="content index"> |
||||
<p> |
||||
Hi, I'm Tanner! I like home automation, <a href="/sensors">sensors</a>, privacy, bots, Python, Debian, coffee, and makerspaces. |
||||
</p> |
||||
|
||||
<h3> |
||||
<a class="external" href="https://github.com/tannercollin/standardnotes-fs" target="_blank" rel="noreferrer noopener">standardnotes-fs</a> |
||||
</h3> |
||||
<div class="summary"> |
||||
<p>A filesystem that mounts your Standard Notes account as a directory of text files that you can edit.</p> |
||||
</div> |
||||
<h2>Contact Info</h2> |
||||
|
||||
<h2>Creations</h2> |
||||
<p> |
||||
Email: <a href="mailto:site4@tannercollin.com">site4@tannercollin.com</a> <br /> |
||||
Telegram: <a href="https://t.me/tannercollin" target="_blank" rel="noreferrer noopener">@tannercollin</a> |
||||
</p> |
||||
|
||||
<p>Sometimes I create art or interactive tech.</p> |
||||
<h2>Resume</h2> |
||||
|
||||
{% for article in articles_page.object_list if article.category.name == 'Creations' %} |
||||
<h3><a href="{{ article.url }}">{{ article.title }}</a></h3> |
||||
<div class="summary"> |
||||
{{ article.summary }} |
||||
</div> |
||||
{% endfor %} |
||||
<ul> |
||||
<li>Firmware Engineer at <a class="external" href="https://cabanablockchain.com" target="_blank" rel="noreferrer noopener">Cabana Blockchain</a>, 2018–</li> |
||||
<li>Lead Hardware Engineer at <a class="external" href="https://criticalcontrol.com/" target="_blank" rel="noreferrer noopener">Critical Control</a>, 2016–2018</li> |
||||
<li>Electrical Engineer at <a class="external" href="https://www.opener.aero/" target="_blank" rel="noreferrer noopener">Opener Aero</a>, 2016–2016</li> |
||||
<li>Electrical Engineer Intern at <a class="external" href="https://www.pason.com/" target="_blank" rel="noreferrer noopener">Pason Systems</a>, 2014–2015</li> |
||||
<li>BSc. Electrical Engineering from University of Calgary</li> |
||||
</ul> |
||||
|
||||
<h2>Projects</h2> |
||||
|
||||
<p> |
||||
My main hobby is working on software projects. I typically design websites or |
||||
build tools that make my life easier. |
||||
</p> |
||||
|
||||
{% for article in articles_page.object_list if article.category.name == 'Projects' %} |
||||
<h3><a href="{{ article.url }}">{{ article.title }}</a></h3> |
||||
<div class="summary"> |
||||
{{ article.summary }} |
||||
</div> |
||||
|
||||
{% endfor %} |
||||
|
||||
<h3> |
||||
<a class="external" href="https://github.com/tannercollin/standardnotes-fs" target="_blank" rel="noreferrer noopener">standardnotes-fs</a> |
||||
</h3> |
||||
<div class="summary"> |
||||
<p>A filesystem that mounts your Standard Notes account as a directory of text files that you can edit.</p> |
||||
</div> |
||||
|
||||
<h2>Creations</h2> |
||||
|
||||
<p>Sometimes I create art or interactive tech.</p> |
||||
|
||||
{% for article in articles_page.object_list if article.category.name == 'Creations' %} |
||||
<h3><a href="{{ article.url }}">{{ article.title }}</a></h3> |
||||
<div class="summary"> |
||||
{{ article.summary }} |
||||
</div> |
||||
|
||||
{% endfor %} |
||||
|
||||
<h2>Writing</h2> |
||||
|
||||
<h2>Writing</h2> |
||||
<p>Various articles, mostly about computers.</p> |
||||
|
||||
<p>Various articles, mostly about computers.</p> |
||||
{% for article in articles_page.object_list if article.category.name == 'Writing' %} |
||||
<h3><a href="{{ article.url }}">{{ article.title }}</a></h3> |
||||
<div class="summary"> |
||||
{{ article.summary }} |
||||
</div> |
||||
|
||||
{% for article in articles_page.object_list if article.category.name == 'Writing' %} |
||||
<h3><a href="{{ article.url }}">{{ article.title }}</a></h3> |
||||
<div class="summary"> |
||||
{{ article.summary }} |
||||
{% endfor %} |
||||
</div> |
||||
{% endfor %} |
||||
</div> |
||||
{% endblock %} |
||||
|
@ -1,265 +1,265 @@ |
||||
html { |
||||
overflow-y: scroll; |
||||
} |
||||
|
||||
body { |
||||
text-rendering: optimizeLegibility; |
||||
font-family: serif; |
||||
} |
||||
|
||||
a { |
||||
text-decoration: none; |
||||
outline: none; |
||||
} |
||||
|
||||
a.external { |
||||
background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23fff' stroke='%23000' d='M1.5 4.518h5.982V10.5H1.5z'/%3E%3Cpath fill='%23000' d='M5.765 1H11v5.39L9.427 7.937l-1.31-1.31L5.393 9.35l-2.69-2.688 2.81-2.808L4.2 2.544z'/%3E%3Cpath fill='%23fff' d='m9.995 2.004.022 4.885L8.2 5.07 5.32 7.95 4.09 6.723l2.882-2.88-1.85-1.852z'/%3E%3C/svg%3E%0A"); |
||||
background-position: center right; |
||||
background-repeat: no-repeat; |
||||
padding-right: 15px; |
||||
} |
||||
|
||||
.info h1 { |
||||
font: 1.1rem/1.0 sans-serif; |
||||
} |
||||
|
||||
.index h3 { |
||||
font: 1.1rem/1.5 serif; |
||||
} |
||||
|
||||
.source { |
||||
font: 0.9rem/1.5 serif; |
||||
} |
||||
|
||||
pre { |
||||
font-size: 0.9rem; |
||||
line-height: 1.2; |
||||
padding: 1rem; |
||||
overflow-x: auto; |
||||
} |
||||
|
||||
:not(pre)>code { |
||||
padding: 0 2px; |
||||
font-size: 0.8rem; |
||||
} |
||||
|
||||
.container { |
||||
max-width: 56rem; |
||||
margin: 2rem auto 12rem auto; |
||||
} |
||||
|
||||
.footer { |
||||
font: 0.9rem/1.5 serif; |
||||
text-align: center; |
||||
} |
||||
|
||||
.toc { |
||||
float: right; |
||||
padding: 0.75rem; |
||||
padding-top: 0; |
||||
margin-left: 0.75rem; |
||||
} |
||||
|
||||
.toc ul { |
||||
padding-left: 1.2rem; |
||||
margin: 0; |
||||
} |
||||
|
||||
.toc li { |
||||
margin-top: 0.75rem; |
||||
} |
||||
|
||||
.content p.metadata { |
||||
font: 0.9rem/1.0 serif; |
||||
font-style: italic; |
||||
} |
||||
|
||||
.content div.summary p { |
||||
margin-top: -0.6rem; |
||||
margin-left: 1.5rem; |
||||
} |
||||
|
||||
.content { |
||||
max-width: 36rem; |
||||
} |
||||
|
||||
.content-wide { |
||||
max-width: none; |
||||
} |
||||
|
||||
.content p { |
||||
font: 1.1rem/1.5 serif; |
||||
} |
||||
|
||||
.content ul { |
||||
padding-left: 1.1rem; |
||||
} |
||||
|
||||
.content li { |
||||
font: 1.1rem/1.5 serif; |
||||
} |
||||
|
||||
.content img { |
||||
width: 100%; |
||||
max-width: 36rem; |
||||
height: auto; |
||||
} |
||||
|
||||
.content .aside { |
||||
display: inline; |
||||
float: left; |
||||
position: relative; |
||||
width: 8rem; |
||||
margin-left: -9rem; |
||||
font-size: 0.9rem; |
||||
} |
||||
|
||||
.toclink:not(:hover) { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
@media screen and (min-width:36rem) { |
||||
.content { |
||||
margin-left: 10rem; |
||||
} |
||||
|
||||
.bar { |
||||
margin-top: 2px; |
||||
float: left; |
||||
width: 8rem; |
||||
text-align: right; |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.bar .me { |
||||
width: 100%; |
||||
display: block; |
||||
} |
||||
|
||||
.bar .info { |
||||
margin-top: 1.75rem; |
||||
} |
||||
|
||||
.bar .contact-icons a { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.bar .contact-icons img { |
||||
width: 1.25rem; |
||||
height: 1.25rem; |
||||
margin-left: 0.5rem; |
||||
} |
||||
} |
||||
|
||||
@media screen and (max-width:36rem) { |
||||
.bar { |
||||
overflow: auto; |
||||
margin-top: -0.5rem; |
||||
} |
||||
|
||||
.bar .me { |
||||
float: left; |
||||
height: 6.5rem; |
||||
width: auto; |
||||
} |
||||
|
||||
.bar .info { |
||||
float: left; |
||||
margin-top: 0.5rem; |
||||
margin-left: 1.5rem; |
||||
} |
||||
|
||||
.bar .contact-icons { |
||||
margin-top: 1rem; |
||||
margin-left: 0.25rem; |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.bar .contact-icons a { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.bar .contact-icons img { |
||||
width: 1.25rem; |
||||
height: 1.25rem; |
||||
margin-right: 1rem; |
||||
} |
||||
} |
||||
|
||||
|
||||
body { |
||||
background-color: #fff; |
||||
color: #000; |
||||
} |
||||
|
||||
a { |
||||
color: #000; |
||||
border-bottom: 1px solid #000; |
||||
} |
||||
|
||||
a:visited { |
||||
color: #555; |
||||
border-bottom: 1px solid #555; |
||||
} |
||||
|
||||
a.return-home:visited, a.toclink:visited, .toc a:visited { |
||||
color: inherit; |
||||
border-bottom: inherit; |
||||
} |
||||
|
||||
pre { |
||||
background-color: #ddd; |
||||
} |
||||
|
||||
:not(pre)>code { |
||||
background-color: #ddd; |
||||
} |
||||
|
||||
.toc { |
||||
background-color: #ddd; |
||||
} |
||||
|
||||
.content p.metadata { |
||||
color: #555; |
||||
} |
||||
|
||||
@media (prefers-color-scheme: dark) { |
||||
body { |
||||
background-color: #000; |
||||
color: #fff; |
||||
} |
||||
|
||||
a { |
||||
color: #fff; |
||||
border-bottom: 1px solid #fff; |
||||
} |
||||
|
||||
a:visited { |
||||
color: #aaa; |
||||
border-bottom: 1px solid #aaa; |
||||
} |
||||
|
||||
pre { |
||||
background-color: #222; |
||||
} |
||||
|
||||
:not(pre)>code { |
||||
background-color: #222; |
||||
} |
||||
|
||||
.toc { |
||||
background-color: #222; |
||||
} |
||||
|
||||
.content p.metadata { |
||||
color: #aaa; |
||||
} |
||||
|
||||
.content img { |
||||
filter: brightness(75%); |
||||
} |
||||
|
||||
.contact-icons img { |
||||
filter: invert(1); |
||||
} |
||||
} |
||||
html { |
||||
overflow-y: scroll; |
||||
} |
||||
|
||||
body { |
||||
text-rendering: optimizeLegibility; |
||||
font-family: serif; |
||||
} |
||||
|
||||
a { |
||||
text-decoration: none; |
||||
outline: none; |
||||
} |
||||
|
||||
a.external { |
||||
background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23fff' stroke='%23000' d='M1.5 4.518h5.982V10.5H1.5z'/%3E%3Cpath fill='%23000' d='M5.765 1H11v5.39L9.427 7.937l-1.31-1.31L5.393 9.35l-2.69-2.688 2.81-2.808L4.2 2.544z'/%3E%3Cpath fill='%23fff' d='m9.995 2.004.022 4.885L8.2 5.07 5.32 7.95 4.09 6.723l2.882-2.88-1.85-1.852z'/%3E%3C/svg%3E%0A"); |
||||
background-position: center right; |
||||
background-repeat: no-repeat; |
||||
padding-right: 15px; |
||||
} |
||||
|
||||
.info h1 { |
||||
font: 1.1rem/1.0 sans-serif; |
||||
} |
||||
|
||||
.index h3 { |
||||
font: 1.1rem/1.5 serif; |
||||
} |
||||
|
||||
.source { |
||||
font: 0.9rem/1.5 serif; |
||||
} |
||||
|
||||
pre { |
||||
font-size: 0.9rem; |
||||
line-height: 1.2; |
||||
padding: 1rem; |
||||
overflow-x: auto; |
||||
} |
||||
|
||||
:not(pre)>code { |
||||
padding: 0 2px; |
||||
font-size: 0.8rem; |
||||
} |
||||
|
||||
.container { |
||||
max-width: 56rem; |
||||
margin: 2rem auto 12rem auto; |
||||
} |
||||
|
||||
.footer { |
||||
font: 0.9rem/1.5 serif; |
||||
text-align: center; |
||||
} |
||||
|
||||
.toc { |
||||
float: right; |
||||
padding: 0.75rem; |
||||
padding-top: 0; |
||||
margin-left: 0.75rem; |
||||
} |
||||
|
||||
.toc ul { |
||||
padding-left: 1.2rem; |
||||
margin: 0; |
||||
} |
||||
|
||||
.toc li { |
||||
margin-top: 0.75rem; |
||||
} |
||||
|
||||
.content p.metadata { |
||||
font: 0.9rem/1.0 serif; |
||||
font-style: italic; |
||||
} |
||||
|
||||
.content div.summary p { |
||||
margin-top: -0.6rem; |
||||
margin-left: 1.5rem; |
||||
} |
||||
|
||||
.content { |
||||
max-width: 36rem; |
||||
} |
||||
|
||||
.content-wide { |
||||
max-width: none; |
||||
} |
||||
|
||||
.content p { |
||||
font: 1.1rem/1.5 serif; |
||||
} |
||||
|
||||
.content ul { |
||||
padding-left: 1.1rem; |
||||
} |
||||
|
||||
.content li { |
||||
font: 1.1rem/1.5 serif; |
||||
} |
||||
|
||||
.content img { |
||||
width: 100%; |
||||
max-width: 36rem; |
||||
height: auto; |
||||
} |
||||
|
||||
.content .aside { |
||||
display: inline; |
||||
float: left; |
||||
position: relative; |
||||
width: 8rem; |
||||
margin-left: -9rem; |
||||
font-size: 0.9rem; |
||||
} |
||||
|
||||
.toclink:not(:hover) { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
@media screen and (min-width:36rem) { |
||||
.content { |
||||
margin-left: 10rem; |
||||
} |
||||
|
||||
.bar { |
||||
margin-top: 2px; |
||||
float: left; |
||||
width: 8rem; |
||||
text-align: right; |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.bar .me { |
||||
width: 100%; |
||||
display: block; |
||||
} |
||||
|
||||
.bar .info { |
||||
margin-top: 1.75rem; |
||||
} |
||||
|
||||
.bar .contact-icons a { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.bar .contact-icons img { |
||||
width: 1.25rem; |
||||
height: 1.25rem; |
||||
margin-left: 0.5rem; |
||||
} |
||||
} |
||||
|
||||
@media screen and (max-width:36rem) { |
||||
.bar { |
||||
overflow: auto; |
||||
margin-top: -0.5rem; |
||||
} |
||||
|
||||
.bar .me { |
||||
float: left; |
||||
height: 6.5rem; |
||||
width: auto; |
||||
} |
||||
|
||||
.bar .info { |
||||
float: left; |
||||
margin-top: 0.5rem; |
||||
margin-left: 1.5rem; |
||||
} |
||||
|
||||
.bar .contact-icons { |
||||
margin-top: 1rem; |
||||
margin-left: 0.25rem; |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.bar .contact-icons a { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.bar .contact-icons img { |
||||
width: 1.25rem; |
||||
height: 1.25rem; |
||||
margin-right: 1rem; |
||||
} |
||||
} |
||||
|
||||
|
||||
body { |
||||
background-color: #fff; |
||||
color: #000; |
||||
} |
||||
|
||||
a { |
||||
color: #000; |
||||
border-bottom: 1px solid #000; |
||||
} |
||||
|
||||
a:visited { |
||||
color: #555; |
||||
border-bottom: 1px solid #555; |
||||
} |
||||
|
||||
a.return-home:visited, a.toclink:visited, .toc a:visited { |
||||
color: inherit; |
||||
border-bottom: inherit; |
||||
} |
||||
|
||||
pre { |
||||
background-color: #ddd; |
||||
} |
||||
|
||||
:not(pre)>code { |
||||
background-color: #ddd; |
||||
} |
||||
|
||||
.toc { |
||||
background-color: #ddd; |
||||
} |
||||
|
||||
.content p.metadata { |
||||
color: #555; |
||||
} |
||||
|
||||
@media (prefers-color-scheme: dark) { |
||||
body { |
||||
background-color: #000; |
||||
color: #fff; |
||||
} |
||||
|
||||
a { |
||||
color: #fff; |
||||
border-bottom: 1px solid #fff; |
||||
} |
||||
|
||||
a:visited { |
||||
color: #aaa; |
||||
border-bottom: 1px solid #aaa; |
||||
} |
||||
|
||||
pre { |
||||
background-color: #222; |
||||
} |
||||
|
||||
:not(pre)>code { |
||||
background-color: #222; |
||||
} |
||||
|
||||
.toc { |
||||
background-color: #222; |
||||
} |
||||
|
||||
.content p.metadata { |
||||
color: #aaa; |
||||
} |
||||
|
||||
.content img { |
||||
filter: brightness(75%); |
||||
} |
||||
|
||||
.contact-icons img { |
||||
filter: invert(1); |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue