summaryrefslogtreecommitdiff
path: root/resume
diff options
context:
space:
mode:
Diffstat (limited to 'resume')
-rw-r--r--resume/resume.html18
-rw-r--r--resume/resume.js67
2 files changed, 40 insertions, 45 deletions
diff --git a/resume/resume.html b/resume/resume.html
index c9f1b37..219933f 100644
--- a/resume/resume.html
+++ b/resume/resume.html
@@ -108,24 +108,24 @@
<address>
<ul class="fakelist">
<li>
- <svg class="icon" role="img" height="12" width="12" fill="none" stroke="currentcolor" stroke-linecap="round" stroke-width="1.1">
+ <svg class="icon" role="img" width="12" height="12" viewBox="0 0 640 640">
<title>cgit:</title>
- <path aria-hidden="true" d="m8 9 3-3-3-3 M4 3 l-3 3 3 3"/>
+ <path aria-hidden="true" fill="#ac0000" d="M 215 628c-42-15-70-43-82-83-13-40-9-45 31-45 25 0 34 7 47 32 19 39 61 52 139 45 66-7 90-31 90-87 0-39 0-39-32-29-38 10-141 12-188 3-18-4-48-22-66-41-34-34-34-34-34-182 0-137 2-150 23-181 28-41 82-60 172-59 124 0 195 48 195 131 0 25-3 28-35 28-30 0-35-3-35-23 0-42-26-65-83-72-30-4-73-3-98 2-62 12-79 48-79 168 0 142 23 172 131 174 85 2 129-29 129-90 0-17 6-20 36-17 37 3 37 3 35 118-3 142-15 174-78 201-50 21-167 25-218 7 z"/>
</svg>
<a href="https://cgit.alxu.ca/">cgit.alxu.ca</a>
</li>
<li>
- <svg class="icon" role="img" height="12" width="12" fill="none" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1">
+ <svg class="icon" role="img" width="12" height="12" viewBox="0 0 325 317">
<title>GitHub:</title>
- <path aria-hidden="true" d="m4.625 9.7566971c-2.5.75-2.5-1.25-3.5-1.5m7 3v-1.935a1.685 1.685 0 0 0 -.47-1.305c1.57-.175 3.22-.77 3.22-3.5a2.72 2.72 0 0 0 -.75-1.875 2.535 2.535 0 0 0 -.045-1.885s-.59-.175-1.955.74a6.69 6.69 0 0 0 -3.5 0c-1.365-.915-1.955-.74-1.955-.74a2.535 2.535 0 0 0 -.045 1.885 2.72 2.72 0 0 0 -.75 1.89c0 2.71 1.65 3.305 3.22 3.5a1.685 1.685 0 0 0 -.47 1.29v1.935"/>
+ <path aria-hidden="true" fill="#1b1817" d="m163 0c-90 0-163 73-163 163 0 72 46 133 111 154 8 2 11-3 11-7v-28c-45 10-55-22-55-22-7-19-18-24-18-24-15-10 1-10 1-10 17 1 25 17 25 17 15 25 38 18 48 14 1-11 5-18 10-22-36-4-74-18-74-81 0-17 6-32 16-43-1-4-7-21 2-44 0 0 14-4 45 17 13-3 27-5 41-5 13 0 27 2 40 5 31-21 45-17 45-17 9 23 3 40 2 44 10 11 17 26 17 43 0 63-39 77-75 81 6 5 11 15 11 30v45c0 4 3 9 11 7 65-21 111-82 111-154 0-90-72-163-162-163"/>
</svg>
<a href="https://github.com/Hello71">@Hello71</a> <span style="font-style: normal">[</span><a href="https://github.com/search?q=type%3Apr+author%3AHello71&amp;s=created">PRs</a><span style="font-style: normal">]</span>
</li>
<li>
<svg class="icon" role="img" width="15" height="16" fill="none">
<title>The Mail Archive:</title>
- <path aria-hidden="true" stroke="#c21" d="M 1.5 8 l 0 -6.5 l 2.8 6.4 l 2.8 -6.4 l 0 6.5" stroke-linecap="butt" stroke-linejoin="bevel" />
- <path aria-hidden="true" stroke="#000" d="M 8 15 l 3 -7 l 3 7 M 9.5 12.2 l 3 0" />
+ <path aria-hidden="true" stroke="#c21" d="M1.5 8l0-6.5l2.8 6.4l2.8-6.4l0 6.5" stroke-linecap="butt" stroke-linejoin="bevel" />
+ <path aria-hidden="true" stroke="#000" d="M8 15l3-7l3 7M9.5 12.2l3 0" />
</svg>
<a href="https://www.mail-archive.com/search?a=1&l=all&from=alex+xu+(hello71)&o=newest">Alex Xu</a>
</li>
@@ -198,7 +198,7 @@
<div><h4><b><a href="https://github.com/Dwarf-Therapist/Dwarf-Therapist">Dwarf Therapist</a></b></h4></div>
<div class="date"><b>Aug.&nbsp;2014&ndash;Sept.&nbsp;2017</b><span class="date-punct">:</span></div>
</div>
- <p><a href="https://github.com/Dwarf-Therapist/Dwarf-Therapist/commits?author=Hello71">Implemented cross-bit ptrace, migrated from qmake to CMake, and refactored code</a>.</p>
+ <p><a href="https://github.com/Dwarf-Therapist/Dwarf-Therapist/commits?author=Hello71">Implemented cross-bit ptrace, migrated from qmake to CMake, and refactored C++ code</a>.</p>
</section>
<section class="entry">
<div class="entry-header">
@@ -211,11 +211,11 @@
<div class="gap"></div>
<h2 class="left" style="font-size: 1.4em">Skills</h2>
<div class="right">
- <p><strong>Alpine</strong>, Debian Linux; FreeBSD; Docker; <strong>Git</strong>; NGINX; <strong>WireGuard</strong>; TCP/IP; HTTP(S); DNS; SSH</p>
+ <p>Alpine, Debian Linux; FreeBSD; Docker; Git; NGINX; WireGuard; TCP/IP; HTTP(S); DNS; SSH</p>
</div>
<h3 class="left">Programming</h3>
<div class="right">
- <p><strong>C</strong>; C++; Go; <strong>Python</strong>; <strong>bash, POSIX sh</strong>; GNU make; HTML; CSS; JavaScript; SQL</p>
+ <p>C; C++; Go; Python; bash, POSIX sh; GNU make; HTML; CSS; JavaScript; SQL</p>
</div>
<script src="resume.js"></script>
</body>
diff --git a/resume/resume.js b/resume/resume.js
index 4f66f24..500b49c 100644
--- a/resume/resume.js
+++ b/resume/resume.js
@@ -1,46 +1,41 @@
(document => {
'use strict';
- const mangleurls = () => {
+ let timeout, pending = [];
+ const flush = () => {
+ clearTimeout(timeout);
+ navigator.sendBeacon('https://www.alxu.ca/analytics', new Blob([JSON.stringify(pending)], {type: 'application/json'}));
+ pending = [];
+ };
+ const queue = (kind, details) => {
+ clearTimeout(timeout);
+ pending.push({created_ts: Date.now(), kind: kind, details: details});
+ timeout = setTimeout(flush, 2000);
+ };
+ queue('l', '');
+ document.addEventListener('visibilitychange', () => {
+ queue('v', document.visibilityState);
+ if (document.visibilityState === 'hidden')
+ flush();
+ });
+ document.addEventListener('click', e => {
+ const a = e.target.closest('a');
+ if (a)
+ queue('c', a.href);
+ });
+ window.addEventListener('beforeprint', () => {
for (let el of document.getElementsByTagName('a')) {
const href = el.href.replace(/^javascript:location=(.*);void 0$/, '$1');
el.setAttribute('data-href', el.href);
if (href != el.href) el.href = eval(href);
- else el.href = 'https://alxu.ca/analytics?url=' + href.replace(/[%&;]/g, s=>'%'+s.charCodeAt(0).toString(16));
+ else el.href = 'https://www.alxu.ca/analytics?url=' + href.replace(/[%&;]/g, s=>'%'+s.charCodeAt(0).toString(16));
}
- };
- if (location.hostname === 'www.alxu.ca') {
- let timeout, pending = [];
- const flush = () => {
- clearTimeout(timeout);
- navigator.sendBeacon('/analytics', new Blob([JSON.stringify(pending)], {type: 'application/json'}));
- pending = [];
- };
- const queue = (kind, details) => {
- clearTimeout(timeout);
- pending.push({created_ts: Date.now(), kind: kind, details: details});
- timeout = setTimeout(flush, 2000);
- };
- queue('l', '');
- document.addEventListener('visibilitychange', () => {
- queue('v', document.visibilityState);
- if (document.visibilityState === 'hidden')
- flush();
- });
- document.addEventListener('click', e => {
- const a = e.target.closest('a');
- if (a)
- queue('c', a.href);
- });
- window.addEventListener('beforeprint', mangleurls);
- window.addEventListener('afterprint', () => {
- for (let el of document.getElementsByTagName('a')) {
- el.href = el.getAttribute('data-href');
- el.removeAttribute('data-href');
- }
- });
- } else {
- mangleurls();
- }
+ });
+ window.addEventListener('afterprint', () => {
+ for (let el of document.getElementsByTagName('a')) {
+ el.href = el.getAttribute('data-href');
+ el.removeAttribute('data-href');
+ }
+ });
const css = document.styleSheets[0];
if (window.safari) {
css.insertRule('@media print{@page{margin:10mm}}', css.cssRules.length);