parent
e2e8198be5
commit
2974b5a5f1
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
||||||
POSTCARD LICENSE
|
POSTCARD LICENSE
|
||||||
|
|
||||||
Copyright 2023-12-05 christopher.p.brown@gmail.com
|
Copyright 2023-12-05 dozens@tilde.team
|
||||||
|
|
||||||
You are free to use this software under the following conditions:
|
You are free to use this software under the following conditions:
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@ and then exported to pdf.
|
||||||
|
|
||||||
[3]: https://mustache.github.io/
|
[3]: https://mustache.github.io/
|
||||||
|
|
||||||
|
It also writes to html and text.
|
||||||
|
|
||||||
## You Will Need
|
## You Will Need
|
||||||
|
|
||||||
1. groff 1.23.0: for typesetting and pdf output (with the ms macro package; it *should* be installed anywhere groff is installed)
|
1. groff 1.23.0: for typesetting and pdf output (with the ms macro package; it *should* be installed anywhere groff is installed)
|
||||||
|
|
|
@ -0,0 +1,199 @@
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
width: 8.5in;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-bottom: solid 1px black;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.basics {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
.summary {
|
||||||
|
margin: 1em;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
section div {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: end;
|
||||||
|
|
||||||
|
p:nth-child(2) {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#experience div:first-child {
|
||||||
|
p:first-child {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: larger;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#projects > div > p:first-child {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.role {
|
||||||
|
text-decoration: underline;
|
||||||
|
font-size: large;
|
||||||
|
}
|
||||||
|
section.table div {
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: start;
|
||||||
|
|
||||||
|
p:first-child{
|
||||||
|
text-align: right;
|
||||||
|
width: 10em;
|
||||||
|
margin-right: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p:nth-child(2) {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<header>
|
||||||
|
<h1>Richard Hendriks</h1>
|
||||||
|
<div class="basics">
|
||||||
|
<p>
|
||||||
|
richard.hendriks@mail.com - (912) 555-4321
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
https://soundcloud.example.com/dandymusicnl
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
San Francisco, CA 94115
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="summary">
|
||||||
|
<p>
|
||||||
|
Richard hails from Tulsa. He has earned degrees from the University of Oklahoma and Stanford. (Go Sooners and Cardinal!) Before starting Pied Piper, he worked for Hooli as a part time software developer. While his work focuses on applied information theory, mostly optimizing lossless compression schema of both the length-limited and adaptive variants, his non-work interests range widely, everything from quantum computing to chaos theory. He could tell you about it, but THAT would NOT be a "length-limited" conversation!
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section id="experience">
|
||||||
|
<h2>Professional Experience</h2>
|
||||||
|
<article>
|
||||||
|
<div class="location">
|
||||||
|
<p>
|
||||||
|
Pied Piper
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Palo Alto, CA
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="position">
|
||||||
|
<p class="role">
|
||||||
|
CEO/President
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
2013-12-01—2014-12-01
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
<li>Build an algorithm for artist to detect if their music was violating copy right infringement laws</li>
|
||||||
|
<li>Successfully won Techcrunch Disrupt</li>
|
||||||
|
<li>Optimized an algorithm that holds the current world record for Weisman Scores</li>
|
||||||
|
</ul>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="projects">
|
||||||
|
<h2>Projects</h2>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Miss Direction
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
2016-08-24
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
A mapping engine that misguides you
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
missdirection.example.com
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Won award at AIHacks 2016</li>
|
||||||
|
<li>Built by all women team of newbie programmers</li>
|
||||||
|
<li>Using modern technologies such as GoogleMaps, Chrome Extension and Javascript</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="skills" class="table">
|
||||||
|
<h2>Skills</h2>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Web Development
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
HTML, CSS, Javascript
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Compression
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Mpeg, MP4, GIF
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="awards">
|
||||||
|
<h2>Awards</h2>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Digital Compression Pioneer Award, Techcrunch
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
2014-11-01
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="education">
|
||||||
|
<h2>Education</h2>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
University of Oklahoma, Information Technology
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
2011-06-01—2014-01-01
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="interests" class="table">
|
||||||
|
<h2>Interests</h2>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Wildlife
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Ferrets, Unicorns
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
|
@ -0,0 +1,66 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[1mRichard Hendriks[0m
|
||||||
|
richard.hendriks@mail.com (912) 5554321
|
||||||
|
https://soundcloud.example.com/dandymusicnl
|
||||||
|
San Francisco, CA 94115
|
||||||
|
[4mRichard[24m [4mhails[24m [4mfrom[24m [4mTulsa.[24m [4mHe[24m [4mhas[24m [4mearned[24m [4mdegrees[24m [4mfrom[24m [4mthe[24m [4mUniversity[24m [4mof[0m
|
||||||
|
[4mOklahoma[24m [4mand[24m [4mStanford.[24m [4m(Go[24m [4mSooners[24m [4mand[24m [4mCardinal!)[24m [4mBefore[24m [4mstarting[24m [4mPied[0m
|
||||||
|
[4mPiper,[24m [4mhe[24m [4mworked[24m [4mfor[24m [4mHooli[24m [4mas[24m [4ma[24m [4mpart[24m [4mtime[24m [4msoftware[24m [4mdeveloper.[24m [4mWhile[0m
|
||||||
|
[4mhis[24m [4mwork[24m [4mfocuses[24m [4mon[24m [4mapplied[24m [4minformation[24m [4mtheory,[24m [4mmostly[24m [4moptimizing[0m
|
||||||
|
[4mlossless[24m [4mcompression[24m [4mschema[24m [4mof[24m [4mboth[24m [4mthe[24m [4mlengthlimited[24m [4mand[24m [4madaptive[0m
|
||||||
|
[4mvariants,[24m [4mhis[24m [4mnonwork[24m [4minterests[24m [4mrange[24m [4mwidely,[24m [4meverything[24m [4mfrom[24m [4mquantum[0m
|
||||||
|
[4mcomputing[24m [4mto[24m [4mchaos[24m [4mtheory.[24m [4mHe[24m [4mcould[24m [4mtell[24m [4myou[24m [4mabout[24m [4mit,[24m [4mbut[24m [4mTHAT[24m [4mwould[0m
|
||||||
|
[4mNOT[24m [4mbe[24m [4ma[24m [4m"lengthlimited"[24m [4mconversation![0m
|
||||||
|
|
||||||
|
|
||||||
|
[1mProfessional Experience[0m
|
||||||
|
|
||||||
|
[1mPied Piper [22mPalo Alto, CA
|
||||||
|
[1mCEO/President [22m2013120120141201
|
||||||
|
Build an algorithm for artist to detect if their music was violating
|
||||||
|
copy right infringement laws
|
||||||
|
Successfully won Techcrunch Disrupt
|
||||||
|
Optimized an algorithm that holds the current world record for Weis
|
||||||
|
man Scores
|
||||||
|
|
||||||
|
|
||||||
|
[1mProjects[0m
|
||||||
|
|
||||||
|
[1mMiss Direction [22m20160824
|
||||||
|
A mapping engine that misguides you
|
||||||
|
missdirection.example.com
|
||||||
|
Won award at AIHacks 2016
|
||||||
|
Built by all women team of newbie programmers
|
||||||
|
Using modern technologies such as GoogleMaps, Chrome Extension and
|
||||||
|
Javascript
|
||||||
|
|
||||||
|
|
||||||
|
[1mSkills[0m
|
||||||
|
|
||||||
|
Web Development HTML, CSS, Javascript
|
||||||
|
Compression Mpeg, MP4, GIF
|
||||||
|
|
||||||
|
|
||||||
|
[1mAwards[0m
|
||||||
|
|
||||||
|
Digital Compression Pioneer Award, Techcrunch 20141101
|
||||||
|
|
||||||
|
|
||||||
|
[1mEducation[0m
|
||||||
|
|
||||||
|
University of Oklahoma, Information Technology 2011060120140101
|
||||||
|
|
||||||
|
|
||||||
|
[1mInterests[0m
|
||||||
|
|
||||||
|
Wildlife Ferrets, Unicorns
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
65
justfile
65
justfile
|
@ -1,27 +1,74 @@
|
||||||
|
toml:="src/example.toml"
|
||||||
|
tmpl:="template/pdf.tmpl"
|
||||||
|
outpdf:="dist/example.pdf"
|
||||||
|
outhtm:="dist/example.html"
|
||||||
|
outtxt:="dist/example.txt"
|
||||||
|
|
||||||
|
|
||||||
# show all recipes
|
# show all recipes
|
||||||
default:
|
default:
|
||||||
just --list --unsorted
|
just --list --unsorted
|
||||||
|
|
||||||
|
|
||||||
# format toml
|
# format toml
|
||||||
fmt:
|
fmt:
|
||||||
taplo fmt example.toml
|
taplo fmt {{toml}}
|
||||||
|
|
||||||
|
|
||||||
# validate toml
|
# validate toml
|
||||||
validate:
|
validate:
|
||||||
taplo lint example.toml
|
taplo lint {{toml}}
|
||||||
|
|
||||||
# create pdf
|
|
||||||
pdf:
|
# create view
|
||||||
|
_view:
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
for f in "lib/lambdas.js" "{{toml}}"
|
||||||
|
do
|
||||||
|
if [ "$f" -nt lib/view.js ]
|
||||||
|
then
|
||||||
ed<<EOF
|
ed<<EOF
|
||||||
i
|
i
|
||||||
module.exports =
|
module.exports =
|
||||||
.
|
.
|
||||||
r !taplo get -f example.toml -o json
|
r !taplo get -f {{toml}} -o json
|
||||||
-1s/$/,
|
-1s/$/,
|
||||||
.r lambdas.js
|
.r lib/lambdas.js
|
||||||
w view.js
|
w lib/view.js
|
||||||
q
|
q
|
||||||
EOF
|
EOF
|
||||||
mustache view.js resume.template \
|
fi
|
||||||
| groff -ms -t -Tpdf > example.pdf
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# create pdf
|
||||||
|
@pdf: _view
|
||||||
|
-[ lib/view.js -nt {{outpdf}} ] \
|
||||||
|
&& echo "Creating PDF" \
|
||||||
|
&& mustache lib/view.js {{tmpl}} \
|
||||||
|
| groff -ms -t -Tpdf > {{outpdf}} \
|
||||||
|
|| echo "No update"
|
||||||
|
|
||||||
|
# start a watcher
|
||||||
|
watch:
|
||||||
|
ls {{toml}} {{tmpl}} | entr -c just pdf
|
||||||
|
|
||||||
|
|
||||||
|
# create text
|
||||||
|
@text: _view
|
||||||
|
-[ lib/view.js -nt {{outtxt}} ] \
|
||||||
|
&& echo "Creating txt" \
|
||||||
|
&& mustache lib/view.js {{tmpl}} \
|
||||||
|
| nroff -ms -t \
|
||||||
|
| iconv -c -f utf-8 -t ascii \
|
||||||
|
> {{outtxt}} \
|
||||||
|
|| echo "No update"
|
||||||
|
|
||||||
|
|
||||||
|
# create html
|
||||||
|
@html: _view
|
||||||
|
-[ lib/view.js -nt {{outhtm}} ] \
|
||||||
|
&& echo "Creating html" \
|
||||||
|
&& mustache lib/view.js template/html.tmpl \
|
||||||
|
> {{outhtm}} \
|
||||||
|
|| echo "No update"
|
||||||
|
|
|
@ -0,0 +1,207 @@
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
width: 8.5in;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-bottom: solid 1px black;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.basics {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
.summary {
|
||||||
|
margin: 1em;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
section div {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: end;
|
||||||
|
|
||||||
|
p:nth-child(2) {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#experience div:first-child {
|
||||||
|
p:first-child {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: larger;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#projects > div > p:first-child {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.role {
|
||||||
|
text-decoration: underline;
|
||||||
|
font-size: large;
|
||||||
|
}
|
||||||
|
section.table div {
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: start;
|
||||||
|
|
||||||
|
p:first-child{
|
||||||
|
text-align: right;
|
||||||
|
width: 10em;
|
||||||
|
margin-right: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p:nth-child(2) {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<header>
|
||||||
|
{{#basics}}
|
||||||
|
<h1>{{name}}</h1>
|
||||||
|
<div class="basics">
|
||||||
|
<p>
|
||||||
|
{{email}} - {{phone}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{#profiles}} {{{url}}} {{/profiles}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{location.city}}, {{location.postalCode}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="summary">
|
||||||
|
<p>
|
||||||
|
{{{summary}}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{{/basics}}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section id="experience">
|
||||||
|
<h2>Professional Experience</h2>
|
||||||
|
{{#work}}
|
||||||
|
<article>
|
||||||
|
<div class="location">
|
||||||
|
<p>
|
||||||
|
{{{name}}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{{location}}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{{#role}}
|
||||||
|
<div class="position">
|
||||||
|
<p class="role">
|
||||||
|
{{{position}}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{startDate}}—{{endDate}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
{{#highlights}}
|
||||||
|
<li>{{{.}}}</li>
|
||||||
|
{{/highlights}}
|
||||||
|
</ul>
|
||||||
|
{{/role}}
|
||||||
|
</article>
|
||||||
|
{{/work}}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="projects">
|
||||||
|
<h2>Projects</h2>
|
||||||
|
{{#projects}}
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
{{name}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{endDate}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
{{description}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{{url}}}
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
{{#highlights}}
|
||||||
|
<li>{{{.}}}</li>
|
||||||
|
{{/highlights}}
|
||||||
|
</ul>
|
||||||
|
{{/projects}}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="skills" class="table">
|
||||||
|
<h2>Skills</h2>
|
||||||
|
{{#skills}}
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
{{{name}}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{#join}} {{{keywords}}} {{/join}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{{/skills}}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="awards">
|
||||||
|
<h2>Awards</h2>
|
||||||
|
<div>
|
||||||
|
{{#awards}}
|
||||||
|
<p>
|
||||||
|
{{title}}, {{awarder}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{date}}
|
||||||
|
</p>
|
||||||
|
{{/awards}}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="education">
|
||||||
|
<h2>Education</h2>
|
||||||
|
{{#education}}
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
{{institution}}, {{area}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{startDate}}—{{endDate}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{{/education}}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="interests" class="table">
|
||||||
|
<h2>Interests</h2>
|
||||||
|
{{#interests}}
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
{{name}}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{{#join}} {{{keywords}}} {{/join}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{{/interests}}
|
||||||
|
</section>
|
||||||
|
</main>
|
|
@ -4,6 +4,8 @@
|
||||||
.nr FM .5i \" tighter footer margin
|
.nr FM .5i \" tighter footer margin
|
||||||
.nr PI 2n \" tighter paragraph indentation (for bullet lists)
|
.nr PI 2n \" tighter paragraph indentation (for bullet lists)
|
||||||
.nr PD 0 \" tighter paragraph spacing
|
.nr PD 0 \" tighter paragraph spacing
|
||||||
|
.nr PO 0.75i \" smaller page offset
|
||||||
|
.nr LL 7i \" longer line length
|
||||||
.
|
.
|
||||||
.
|
.
|
||||||
.
|
.
|
||||||
|
@ -63,7 +65,10 @@ T{
|
||||||
.sp 0.5
|
.sp 0.5
|
||||||
.LG
|
.LG
|
||||||
{{{name}}}
|
{{{name}}}
|
||||||
T};{{{location}}}
|
T};T{
|
||||||
|
.sp 0.5
|
||||||
|
{{{location}}}
|
||||||
|
T}
|
||||||
{{#role}}
|
{{#role}}
|
||||||
{{{position}}};{{startDate}}\*[-]{{endDate}}
|
{{{position}}};{{startDate}}\*[-]{{endDate}}
|
||||||
{{#highlights}}
|
{{#highlights}}
|
||||||
|
@ -214,5 +219,4 @@ T}
|
||||||
{{/interests}}
|
{{/interests}}
|
||||||
.TE
|
.TE
|
||||||
.KE
|
.KE
|
||||||
|
.\" vim: filetype=groff
|
||||||
|
|
Loading…
Reference in New Issue