Compare commits

...

7 Commits

Author SHA1 Message Date
Mike Gerwitz d70018fb93
resume: Update employer project URLs
Updated to reference new locations since I introduced
https://forge.mikegerwitz.com/.
2023-12-18 02:27:10 -05:00
Mike Gerwitz d127a226a3
resume: Move TAME up
This project is more important than the others.
2023-12-18 02:24:37 -05:00
Mike Gerwitz 4a510f8286
Resume update
It's been a couple of years since this page has been updated.  It has
received a cleanup---removing information that I find to be unnecessary
or redundant---and some minor updates.

Note that the removed phone number has not been in use for at least a
couple of years; I apologize for anyone who may have tried to reach me,
however unlikely that is.  I am not replacing it with a working number,
since I don't want unsolicited calls.

I decided to update all of this in a single commit rather than
commenting on and rationalizing each individual change.
2023-12-18 02:20:30 -05:00
Mike Gerwitz c5e3931450
Remove proxying via torify
This network-level concern is not appropriate for this repository.

When I originally added it, my thought was that I'd be helping to
protect the privacy of people who cloned the repository.  But that
responsibility does not belong here.

I don't need to proxy through Tor anymore through software, as I have
since handled privacy-related networking concerns elsewhere (whether it
be at the router or host OS level).
2023-12-17 12:01:57 -05:00
Mike Gerwitz fcbc8f2689
Footer copyright year update 2023
Granted, it's about to be 2024.
2023-12-17 11:49:52 -05:00
Mike Gerwitz 35278a3f07
Update footer links for forge and social
These were updated in the header and other parts of the site previously;
I somehow overlooked these.
2023-12-17 11:49:38 -05:00
Mike Gerwitz 32e70b2e4c
papers/tpl: Add missing symlink
This has been missing since 2021 bb54e77a09.
2023-12-17 11:49:00 -05:00
7 changed files with 176 additions and 385 deletions

View File

@ -16,8 +16,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# This will also download any necessary third-party files. Note that all # This will also download any necessary third-party files.
# downloads are proxied over Tor (using `torify').
## ##
set -euo pipefail set -euo pipefail
@ -56,7 +55,7 @@ get-fonts()
dest="$fontdir/$font" dest="$fontdir/$font"
test ! -f "$dest" || continue test ! -f "$dest" || continue
torify wget "$src" -O "$dest" wget "$src" -O "$dest"
done done
# Verify that we haven't been served bad files. This should only happen # Verify that we haven't been served bad files. This should only happen

View File

@ -22,8 +22,6 @@ declare -r remote_file=remote-list
cat <<EOF cat <<EOF
### GENERATED BY gen-makefile ### ### GENERATED BY gen-makefile ###
TORIFY="${TORIFY-torify}"
images := $( cut -d' ' -f1 "$remote_file" | tr '\n' ' ' ) images := $( cut -d' ' -f1 "$remote_file" | tr '\n' ' ' )
.PHONY: all check clean .PHONY: all check clean
@ -44,7 +42,7 @@ while read out url convert; do
dest="$out" dest="$out"
echo "$dest": echo "$dest":
printf "\t\$(TORIFY) wget -O %q %q\n" "$dest" "$url" printf "\t\wget -O %q %q\n" "$dest" "$url"
test -n "$convert" || continue test -n "$convert" || continue

1
papers/tpl 120000
View File

@ -0,0 +1 @@
../submodule/tame/design/tpl/

View File

@ -10,9 +10,9 @@
<body> <body>
<div id="header"> <div id="header">
<div class="leftcol"> <div class="leftcol">
<h1 class="name">Michael T. Gerwitz</h1> <h1 class="name">Mike Gerwitz</h1>
<h2 class="name-subline"> <h2 class="name-subline">
Software Engineer and Activist For User Freedom Software Engineer, Activist For User Freedom
</h2> </h2>
</div> </div>
<div id="infobox"> <div id="infobox">
@ -25,17 +25,6 @@
<dd> <dd>
<a href="https://mikegerwitz.com/">https://mikegerwitz.com/</a> <a href="https://mikegerwitz.com/">https://mikegerwitz.com/</a>
</dd> </dd>
<dt>Phone:</dt>
<dd>
<span class="nocss">
My phone number is obscured using CSS as a precaution against
scrapers.
Since you're not using a stylesheet,
simply reverse this string: 09299096171.
Ignore the garbage that follows:
</span>
+1 <div class="phone">9<span class="phony">76</span>80</div>
</dd>
<dt>GPG:</dt> <dt>GPG:</dt>
<dd> <dd>
<tt>D6E9 B930 028A 6C38 F43B</tt><br /> <tt>D6E9 B930 028A 6C38 F43B</tt><br />
@ -99,11 +88,10 @@
<section id="objective"> <section id="objective">
<h2>Objective</h2> <h2>Objective</h2>
<p> <p>
Full-time software engineer with a passionate team of Software engineer or researcher with a passionate team of
hackers that <a href="https://gnu.org/philosophy/free-sw.html">respect hackers that <a href="https://gnu.org/philosophy/free-sw.html">respect
users' freedoms</a>, strive to innovate, and embrace users' freedoms</a>, strive to innovate, embrace
challenge. Looking to at some point transition into an educator challenge, and seek to make a positive social and cultural impact.
and/or research role in any of my areas of expertise.
</p> </p>
</section> </section>
@ -111,20 +99,31 @@
<h2>Summary</h2> <h2>Summary</h2>
<p> <p>
I am a self-driven and passionate hacker with over twenty years' I am a self-driven and passionate hacker with over twenty years'
experience in various areas of software development. I&nbsp;am experience in many areas of software development and computer
a <a href="https://gnu.org/philosophy/free-sw.html">free science. I&nbsp;am an activist for user freedom with a focus on
software</a> activist with a focus on user&nbsp;privacy and user&nbsp;privacy and security. I&nbsp;seek an innovative team of
security; a volunteer and maintainer for hackers that are passionate about their work and will challenge my
the <a href="https://gnu.org">GNU Project</a>; and both author and wide range of skills and interests. I&nbsp;focus primarily on
contributor to various free software projects. I&nbsp;seek an compiler construction and the creation of declarative
innovative team of hackers that are passionate about their work domain-specific languages and abstractions to simplify development
and will challenge my wide range of skills. A&nbsp;prospective and improve the correctness of complex systems. Some of my
employer must be willing to use and write personal interests include programming language history and
theory, formal methods and proofs, logic and type theory,
cryptography, philosophy and ethics, and writing.
</p>
<p>
The focus of my research in recent years has been pursuant to
addressing problems of practical user freedom—to make various
aspects of freedom in computing accessible to more users in
concrete and tangible ways that are meaningful to them beyond
abstract principle and philosophy.
</p>
<p>
A&nbsp;prospective employer must be willing to use and write
<a data-print="true" <a data-print="true"
href="https://gnu.org/philosophy/free-sw.html">free software</a>, href="https://gnu.org/philosophy/free-sw.html">free software</a>,
and be positive toward software freedom and the free software and be positive toward software freedom and the free software
movement. I am also interested in academic/research settings as movement.
both a hacker and as an&nbsp;educator.
</p> </p>
</section> </section>
@ -134,18 +133,18 @@
<dt>Ryan Specialty Group (formerly LoVullo Associates, Inc.)</dt> <dt>Ryan Specialty Group (formerly LoVullo Associates, Inc.)</dt>
<dd class="period">March 2009&ndash;Present</dd> <dd class="period">March 2009&ndash;Present</dd>
<dd class="desc"> <dd class="desc">
Principal software developer. Principal software engineer.
Designs, develops, and maintains web applications; application Designs, develops, and maintains compilers for domain-specific
frameworks; server software; and compilers for domain-specific languages (DSLs); application frameworks; server software; and
languages (DSLs) for an Excess and Surplus Lines Insurance web applications for an Excess and Surplus Lines Insurance
Agency. Most work involves developing complex online raters to provide Agency. Most work involves developing complex online raters to
comparative insurance quotes; integrating and automating various provide comparative insurance quotes; integrating and automating
systems; and providing a suite of development tools and DSLs to various systems; and providing a suite of development tools and
support those systems. Responsible for developer training and DSLs to support those systems. Responsible for developer
knowledge transfer through design discussions, documentation, training and knowledge transfer through design discussions,
peer programming, and code review. Involved in every aspect of documentation, peer programming, and code review. Involved in
the development process and many decisions regarding the every aspect of the development process and many decisions
technical direction of the organization. regarding the technical direction of the organization.
</dd> </dd>
<dd class="desc"> <dd class="desc">
A number of projects written for my employer have A number of projects written for my employer have
@ -155,38 +154,16 @@
</dd> </dd>
<dd class="desc"> <dd class="desc">
<ul class="lang detail-list"> <ul class="lang detail-list">
<li>Ant</li>
<li>Autotools (Autoconf, Automake)</li>
<li>AWK (Gawk)</li>
<li>CSS&nbsp;3</li>
<li>Docker</li>
<li>GitLab&nbsp;(self-hosted)</li>
<li>Git</li>
<li>GNU ease.js</li>
<li>GNU Emacs</li>
<li>GNU/Linux</li>
<li>Graphana</li>
<li>HTML&nbsp;5</li>
<li>Java</li>
<li>JavaScript (ECMAScript&nbsp;3+)</li>
<li>M4</li>
<li>Memcached</li>
<li>MongoDB</li>
<li>MSSQL</li>
<li>Neo4j</li>
<li>Node.js</li>
<li>PHP&nbsp;(4&ndash;7)</li>
<li>Prometheus</li>
<li>RabbitMQ</li>
<li>Rust</li> <li>Rust</li>
<li>Sed</li> <li>JavaScript (ECMAScript)</li>
<li>TypeScript</li>
<li>XSLT</li>
<li>Shell&nbsp;(POSIX, Bash)</li> <li>Shell&nbsp;(POSIX, Bash)</li>
<li>SQL Anywhere</li> <li>PHP</li>
<li>Symfony 2+</li>
<li>Texinfo</li> <li>Texinfo</li>
<li>TeX&nbsp(Plain, LaTeX2e)</li> <li>TeX&nbsp;(Plain, LaTeX2e)</li>
<li>Vim</li> <li>HTML</li>
<li>XSLT&nbsp;(1&ndash;3)</li> <li>CSS</li>
</ul> </ul>
</dd> </dd>
@ -194,26 +171,72 @@
<dd class="period">March 2006&ndash;March 2009</dd> <dd class="period">March 2006&ndash;March 2009</dd>
<dd class="desc"> <dd class="desc">
Worked as a freelance web developer primarily through vWorker Worked as a freelance web developer primarily through vWorker
(previously RentACoder) with a 10/10 rating, ranked higher than 99% of (previously RentACoder).
all other developers.
</dd> </dd>
</dl> </dl>
</section> </section>
<section id="projects"> <section id="projects">
<h2>Projects</h2> <div class="sec-header">
<p class="nopgbrk"> <h2>Projects</h2>
Listed here are both my own projects and those to which I have <p>
made notable contributions. Listed here are both my own projects and those to which I have
I have many miscellaneous projects and scripts that are not made notable contributions.
listed here; see my I have many miscellaneous projects and scripts that are not
<a data-print="true" listed here; see my
href="https://mikegerwitz.com/projects">Projects page</a> <a data-print="true"
for a full list. href="https://mikegerwitz.com/projects">Projects page</a>
</p> for a full list.
</p>
</div>
<dl data-print-links="true"> <dl data-print-links="true">
<dt><a href="https://forge.mikegerwitz.com/employer/tame">TAME</a>
</dt>
<dd class="period">2012&ndash;Present</dd>
<dd class="type">Author</dd>
<dd class="desc">
This system was developed at LoVullo Associates to handle the
complexity of comparative insurance rating systems.
It is a domain-specific language&nbsp;(DSL) that is itself
a metalanguage through the use of templates,
encouraging the creation of specialized sub-DSLs.
TAME processes only numerical input and output,
driven by higher-order predicates.
Calculations and predicates are written declaratively without
regard for order of execution.
The system has powerful dependency resolution and data flow
analysis capabilities.
</dd>
<dd class="desc">
TAME consists of a macro processor (implementing a metalanguage),
numerous compilers for various targets
(JavaScript, HTML documentation and debugging environment,
LaTeX, dependency graph output, and others),
linkers,
and supporting tools.
The input grammar is embedded within&nbsp;XML,
and the majority of the project
(including the macro processor, compilers, and linkers)
is written in XSLT.
The project is undergoing a
<a href="https://forge.mikegerwitz.com/employer/tame/src/branch/main/tamer">rewrite
in Rust&nbsp;(TAMER)</a>.
</dd>
<dd class="desc">
<ul class="lang detail-list">
<li>Rust</li>
<li>XSLT 2&ndash;3</li>
<li>JavaScript (ECMAScript 2016)</li>
<li>AWK</li>
<li>Sed</li>
<li>Shell (Bash)</li>
<li>PHP</li>
<li>Autotools (Autoconf, Automake)</li>
</ul>
</dd>
<dt><a href="https://gnu.org/s/easejs">GNU ease.js</a></dt> <dt><a href="https://gnu.org/s/easejs">GNU ease.js</a></dt>
<dd class="period">November 2010&ndash;Present</dd> <dd class="period">November 2010&ndash;2017</dd>
<dd class="type">Author</dd> <dd class="type">Author</dd>
<dd class="desc"> <dd class="desc">
A Classical Object-Oriented framework for JavaScript, intended to A Classical Object-Oriented framework for JavaScript, intended to
@ -236,7 +259,9 @@
also my paper <a href="http://mikegerwitz.com/papers/coope" also my paper <a href="http://mikegerwitz.com/papers/coope"
class="title">Classifical Object-Oriented Programming with class="title">Classifical Object-Oriented Programming with
ECMAScript</a>. Copyright has been assigned to the Free Software ECMAScript</a>. Copyright has been assigned to the Free Software
Foundation. Foundation. I no longer maintain this project, and recommend
TypeScript in its place, which provides most of ease.js'
features and is a compiler rather than a framework.
</dd> </dd>
<dd class="desc"> <dd class="desc">
<ul class="lang detail-list"> <ul class="lang detail-list">
@ -250,79 +275,33 @@
</ul> </ul>
</dd> </dd>
<dt><a href="https://mikegerwitz.com/projects/liza/">Liza Data <dt><a href="https://forge.mikegerwitz.com/employer/liza">Liza Data
Collection Framework</a> Collection Framework</a>
</dt> </dt>
<dd class="period">2010&ndash;Present</dd> <dd class="period">2010&ndash;Present</dd>
<dd class="type">Author</dd> <dd class="type">Author</dd>
<dd class="desc"> <dd class="desc">
Data collection and processing framework developed at LoVullo Data collection and processing framework developed at LoVullo
Associates to handle hundreds of complex conditional inputs for Associates to handle thousands of complex conditional inputs for
even more complex comparative rating systems. even more complex comparative rating systems.
It contains a powerful type and validation system and
controls inputs via predicates over a&nbsp;complex graph of
classifications.
Programs are defined using a declarative DSL which compiles into Programs are defined using a declarative DSL which compiles into
JavaScript, JavaScript.
drastically simplifying development and maintenance.
The&nbsp;client is a web application which integrates and shares code The&nbsp;client is a web application which integrates and shares code
with a RESTful server. with the server using Node.js.
It also contains its own tools for debugging and introspection. It also contains its own tools for debugging and introspection.
</dd> </dd>
<dd class="desc"> <dd class="desc">
This project integrates tightly with TAME for its classification This project integrates tightly with TAME for its classification
system. system and depenedency analysis.
</dd> </dd>
<dd class="desc"> <dd class="desc">
<ul class="lang detail-list"> <ul class="lang detail-list">
<li>Rust</li>
<li>XSLT 2&ndash;3</li>
<li>JavaScript (ECMAScript 2016)</li> <li>JavaScript (ECMAScript 2016)</li>
<li>Node.js</li> <li>Node.js</li>
<li>XSLT 2&ndash;3</li>
<li>Shell (Bash)</li> <li>Shell (Bash)</li>
<li>Autotools (Autoconf, Automake)</li> <li>Autotools (Autoconf, Automake)</li>
<li>Rust</li>
</ul>
</dd>
<dt><a href="https://mikegerwitz.com/projects/tame/">TAME</a>
</dt>
<dd class="period">2012&ndash;Present</dd>
<dd class="type">Author</dd>
<dd class="desc">
This system was developed at LoVullo Associates to handle the
complexity of comparative insurance rating systems.
It is a domain-specific language&nbsp;(DSL) that itself
encourages,
through the use of templates,
the creation of sub-DSLs.
TAME processes only numerical input and output,
driven by higher-order predicates.
Calculations and predicates are written declaratively without
regard for order of execution.
The system has powerful dependency resolution and data flow
analysis capabilities.
</dd>
<dd class="desc">
TAME consists of a macro processor (implementing a metalanguage),
numerous compilers for various targets
(JavaScript, HTML documentation and debugging environment,
LaTeX, dependency graph output, and others),
linkers,
and supporting tools.
The input grammar is XML,
and the majority of the project
(including the macro processor, compilers, and linkers)
is written in XSLT.
</dd>
<dd class="desc">
<ul class="lang detail-list">
<li>XSLT 2</li>
<li>JavaScript (ECMAScript 2016)</li>
<li>AWK</li>
<li>Sed</li>
<li>Shell (Bash)</li>
<li>PHP</li>
<li>Autotools (Autoconf, Automake)</li>
</ul> </ul>
</dd> </dd>
@ -358,8 +337,6 @@
<dd class="desc"> <dd class="desc">
<ul class="lang detail-list"> <ul class="lang detail-list">
<li>C (ANSI C, C11)</li> <li>C (ANSI C, C11)</li>
<li>GDB</li>
<li>GNU Make</li>
<li>Gnulib (Test Headers)</li> <li>Gnulib (Test Headers)</li>
</ul> </ul>
</dd> </dd>
@ -367,11 +344,11 @@
</section> </section>
<section id="articles"> <section id="articles">
<h2>Articles, Talks, and Publications</h2> <h2>Articles, Talks, and Papers</h2>
<p> <p>
I am an avid technical writer and activist; my writings are I am an avid technical writer and activist; my writings are
available available
<a data-print="true" href="http://mikegerwitz.com/papers">on my <a data-print="true" href="/papers">on my
personal website</a>. This section highlights the most personal website</a>. This section highlights the most
notable. <span class="print-only">Direct links are provided in the notable. <span class="print-only">Direct links are provided in the
online version of this résumé.</span> online version of this résumé.</span>
@ -379,18 +356,18 @@
<dl> <dl>
<dt> <dt>
<a href="http://mikegerwitz.com/papers/tpl.pdf"> <a href="/papers/tpl.pdf">
The TAME Programming Language Living Document</a></dt> The TAME Programming Language Living Document</a></dt>
<dd class="period">May 2021&ndash;Present</dd> <dd class="period">May 2021&ndash;Present</dd>
<dd class="desc"> <dd class="desc">
This document is an attempt to formally consider certain parts of This document is an attempt to formally consider certain parts of
TAME as it undergoes redesign and reimplementation as part of the TAME as it undergoes redesign and reimplementation as part of the
TAMER project. It is considered a living document&mdash;it is not TAMER project. It is considered a living document&mdash;it is not
likely to ever be a finished work. likely to ever be a finished work.
</dd> </dd>
<dt> <dt>
<a href="https://mikegerwitz.com/talks"> <a href="/talks">
Adopting Free Software Ideals</a></dt> Adopting Free Software Ideals</a></dt>
<dd class="period">March 2021</dd> <dd class="period">March 2021</dd>
<dd class="desc"> <dd class="desc">
@ -400,7 +377,7 @@
</dd> </dd>
<dt> <dt>
<a href="https://mikegerwitz.com/talks"> <a href="/talks">
Computational Symbiosis: Methods That Meld Mind and Machine</a></dt> Computational Symbiosis: Methods That Meld Mind and Machine</a></dt>
<dd class="period">March 2019</dd> <dd class="period">March 2019</dd>
<dd class="desc"> <dd class="desc">
@ -411,7 +388,17 @@
</dd> </dd>
<dt> <dt>
<a href="https://mikegerwitz.com/talks"> <a href="/2019/02/ghcq-exceptional-access-e2ee-decentralization-reproducible">
GHCQs “Exceptional Access”, End-To-End Encryption,
Decentralization, and Reproducible Builds</a></dt>
<dd class="period">Feb 2019</dd>
<dd class="desc">
Refutation of the GHCQ's “Principles for a More Informed
Exceptional Access Debate”.
</dd>
<dt>
<a href="/talks">
The Ethics Void</a></dt> The Ethics Void</a></dt>
<dd class="period">March 2018</dd> <dd class="period">March 2018</dd>
<dd class="desc"> <dd class="desc">
@ -421,7 +408,7 @@
</dd> </dd>
<dt> <dt>
<a href="https://mikegerwitz.com/talks"> <a href="/talks">
The Surreptitious Assault On Privacy, Security, and Freedom</a></dt> The Surreptitious Assault On Privacy, Security, and Freedom</a></dt>
<dd class="period">March 2017</dd> <dd class="period">March 2017</dd>
<dd class="desc"> <dd class="desc">
@ -432,7 +419,7 @@
</dd> </dd>
<dt> <dt>
<a href="https://mikegerwitz.com/talks"> <a href="/talks">
Restore Online Freedom!</a></dt> Restore Online Freedom!</a></dt>
<dd class="period">March 2016</dd> <dd class="period">March 2016</dd>
<dd class="desc"> <dd class="desc">
@ -454,7 +441,7 @@
</dd> </dd>
<dt> <dt>
<a href="http://mikegerwitz.com/2013/06/National-Uproar-A-Comprehensive-Overview-of-the-NSA-Leaks-and-Revelations"> <a href="/2013/06/national-uproar-a-comprehensive-overview-of-the-nsa-leaks-and-revelations">
National Uproar: A Comprehensive Overview of the NSA Leaks and Revelations</a></dt> National Uproar: A Comprehensive Overview of the NSA Leaks and Revelations</a></dt>
<dd class="period">June 2013</dd> <dd class="period">June 2013</dd>
<dd class="desc"> <dd class="desc">
@ -467,7 +454,7 @@
</dd> </dd>
<dt> <dt>
<a href="http://mikegerwitz.com/papers/git-horror-story"> <a href="/2012/05/a-git-horror-story-repository-integrity-with-signed-commits">
A Git Horror Story: Repository Integrity With Signed Commits</a></dt> A Git Horror Story: Repository Integrity With Signed Commits</a></dt>
<dd class="period">May 2012</dd> <dd class="period">May 2012</dd>
<dd class="desc"> <dd class="desc">
@ -488,7 +475,7 @@
</dd> </dd>
<dt> <dt>
<a href="http://mikegerwitz.com/papers/coope"> <a href="/papers/coope.pdf">
Classical Object-Oriented Programming with ECMAScript</a></dt> Classical Object-Oriented Programming with ECMAScript</a></dt>
<dd class="period">February 2012&ndash;April 2012</dd> <dd class="period">February 2012&ndash;April 2012</dd>
<dd class="desc"> <dd class="desc">
@ -500,27 +487,32 @@
<a href="https://www.gnu.org/software/easejs/manual/Implementation-Details.html">the <a href="https://www.gnu.org/software/easejs/manual/Implementation-Details.html">the
implementation used by GNU ease.js</a>. Paper is incomplete. implementation used by GNU ease.js</a>. Paper is incomplete.
</dd> </dd>
</dl>
<p>
These are from my early teenage years:
</p>
<dl>
<dt> <dt>
<a href="http://www.pcmag.com/article2/0,2817,1586638,00.asp"> <a href="http://web.archive.org/web/20080507155153/http://www.pcmag.com/article2/0,2817,1586638,00.asp">
PC Magazine Mention&mdash;iBrowser</a></dt> PC Magazine Mention&mdash;iBrowser</a></dt>
<dd class="period">June 2004</dd> <dd class="period">June 2004</dd>
<dd class="desc"> <dd class="desc">
Mention in PC Magazine for a project named iBrowser, the world's Mention in PC Magazine at the age of fourteen for a project
first voice recognition web browser. Created with a remote friend named iBrowser, a voice recognition web browser. Created with a
at the age of fourteen. Personally handled voice recognition, remote friend. Personally handled voice recognition, popup
popup blocker, and most other aspects of development. blocker, and most other aspects of development.
</dd> </dd>
<dt> <dt>
<a href="http://www.planet-source-code.com/vb/contest/AllTimeHallOfFame.asp?lngWId=1"> <a href="http://web.archive.org/web/20040213235111/http://www.planet-source-code.com/vb/contest/AllTimeHallOfFame.asp?lngWId=1">
Planet Source Code Superior Coding Contest Winner</a></dt> Planet Source Code Superior Coding Contest Winner</a></dt>
<dd class="period">February 2003</dd> <dd class="period">February 2003</dd>
<dd class="desc"> <dd class="desc">
Received Planet Source Code's Superior Coding Contest Award for Received Planet Source Code's Superior Coding Contest Award for
the voice recognition tutorial the voice recognition tutorial &quot;Talk To Your Computer&quot;
<a href="http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=43096&amp;lngWId=1"> at the age of thirteen.
&quot;Talk To Your Computer&quot;</a> at the age of thirteen.
</dd> </dd>
</dl> </dl>
</section> </section>
@ -533,14 +525,13 @@
GNU Project</a></dt> GNU Project</a></dt>
<dd class="period">December 2013&ndash;Present</dd> <dd class="period">December 2013&ndash;Present</dd>
<dd class="desc"> <dd class="desc">
I am the author and maintainer I serve on the <a href="https://www.gnu.org/contact/gnu-advisory">GNU
of <a href="https://gnu.org/s/easejs">GNU ease.js</a>; one of Advisory Committie&nbsp;(GAC)</a>; was previously one of
the <a href="https://www.gnu.org/help/evaluation.html">GNU&nbsp;software the <a href="https://www.gnu.org/help/evaluation.html">GNU&nbsp;software
evaluators</a> that review software offered to GNU; exercise evaluators</a> that review software offered to GNU; and used to exercise
various administrative duties; and participate in general various administrative duties&nbsp;(GNUisance). I participate in
discussions regarding the GNU Project as a whole. general activism pursuant to the goals of GNU, including
I participate in general activism pursuant to the goals of GNU, addressing the issue
including addressing the issue
of <a data-print="true" href="https://www.gnu.org/s/easejs/whyfreejs.html">non-free of <a data-print="true" href="https://www.gnu.org/s/easejs/whyfreejs.html">non-free
JavaScript</a>. Notably, I worked with Sytse Sijbrandij (GitLab JavaScript</a>. Notably, I worked with Sytse Sijbrandij (GitLab
B.V. CEO) B.V. CEO)
@ -548,7 +539,7 @@
license all GitLab EE JavaScript</a>, and worked on the license all GitLab EE JavaScript</a>, and worked on the
<a href="https://www.gnu.org/software/repo-criteria.html">GNU <a href="https://www.gnu.org/software/repo-criteria.html">GNU
ethical repository criteria</a>. ethical repository criteria</a>.
Much of my free time is dedicated toward GNU volunteer work. Much of my free time was historically dedicated toward GNU volunteer work.
</dd> </dd>
<dt> <dt>
@ -593,207 +584,6 @@
</dd> </dd>
</dl> </dl>
</section> </section>
<section id="skills">
<h2>Skills, Studies, and Interests</h2>
<p>
Each item below is ordered by experience, descending.
Languages actively used are those that I most often write projects in,
either personally or at work.
Infrequent languages are those that I&nbsp;have used to write or
modify software, but do not have intimate knowledge
of. Date, if present, indicates last year used.
</p>
<dl>
<dt>Languages&mdash;Actively Used</dt>
<dd class="desc">
<ul class="detail-list">
<li>(X)HTML
<ul>
<li>XHTML 1.1</li>
<li>HTML 5</li></ul></li>
<li>CSS
<ul>
<li>2</li>
<li>3</li></ul></li>
<li>PHP
<ul>
<li>4&ndash;7</li></ul></li>
<li>JavaScript
<ul>
<li>ECMAScript 3+</li></ul></li>
<li>Shell
<ul>
<li>POSIX</li>
<li>Bash</li></ul></li>
<li>C
<ul>
<li>ANSI</li>
<li>C89</li>
<li>C11</li></ul></li>
<li>TeX
<ul>
<li>Plain</li>
<li>LaTeX2e</li></ul></li>
<li>AWK
<ul>
<li>POSIX</li>
<li>Gawk</li></ul></li>
<li>Lisp
<ul>
<li>Elisp</li>
<li>RnRS Scheme</li>
<li>Guile Scheme</li>
<li>Racket</li>
<li>Chez Scheme</li></ul></li>
<li>XSLT
<ul>
<li>1&ndash;3</li></ul></li>
<li>Texinfo
<li>SQL
<ul>
<li>MySQL</li>
<li>SQLAnywhere</li>
<li>MSSQL</li></ul></li>
<li>Rust</li>
<li>Lua</li>
<li>M4</li>
</ul>
</dd>
<dt>Languages&mdash;Infrequent</dt>
<dd class="desc">
<ul class="detail-list">
<li>C++<sup>(2005)</sup></li>
<li>Scala<sup>(2012)</sup></li>
<li>Java<sup>(2014)</sup></li>
<li>Clojure<sup>(2014)</sup></li>
<li>x86{,_64} ASM<sup>(2013)</sup></li>
<li>Haskell<sup>(2014)</sup></li>
<li>Python<sup>(2006)</sup></li>
<li>Ruby<sup>(2014)</sup></li>
<li>Perl<sup>(2009)</sup></li>
<li>Troff<sup>(2011)</sup></li>
<li>MOS 6502 ASM<sup>(2013)</sup></li>
</ul>
</dd>
</dl>
<p>
There are a few languages that I no longer use because they are
either <a href="http://gnu.org/philosophy/free-sw.html">non-free</a>
or focus on non-free operating systems.
</p>
<dl>
<dt>Languages&mdash;Defunct</dt>
<dd class="desc">
<ul class="detail-list">
<li>ASP<sup>(2004)</sup></li>
<li>Visual Basic<sup>(2006)</sup>
<ul>
<li>6</li>
<li>.NET</li></ul></li>
<li>BASIC<sup>(2005)</sup>
<ul>
<li>QBASIC</li></ul></li>
</ul>
</dd>
</dl>
<p>
Studies differ from interests in that the former are actively
or have been in the past researched; whereas the latter are
occasionally visited, but otherwise pending formal study.
</p>
<dl>
<dt>Studies&mdash;Computer Science</dt>
<dd class="desc">
<ul class="detail-list">
<li>Compilers</li>
<li>Type Theory</li>
<li>Programming Languages
<ul>
<li>Theory</li>
<li>History</li></ul></li>
<li>Security
<ul>
<li>Domain-Specific</li>
<li>Implicit In Other Skills/Studies</li></ul></li>
<li>Cryptography
<ul>
<li>Implementation</li>
<li>Algorithms</li></ul></li>
<li>Combinatory Logic
<ul>
<li>Point-Free Programming</li>
<li>Concatenative and Stack-Based Languages</li>
<li>Church-Turing</li></ul></li>
<li>Logic
<ul>
<li>Proof Theory</li>
<li>Propositional</li>
<li>Predicate</li>
<li>Higher-order</li>
<li>Modal</li></ul></li>
<li>Linear Algebra</li>
<li>Graph Theory</li>
</ul>
</dd>
<dt>Studies&mdash;Legal and Political</dt>
<dd class="desc">
<ul class="detail-list">
<li>Software Licensing
<ul>
<li>GNU General Public License and variants</li>
<li>Various licenses</li></ul></li>
<li>Copyright
<ul>
<li>Law</li>
<li>Fair Use</li>
<li>Copyleft</li></ul></li>
<li>Privacy
<ul>
<li>Cryptography</li>
<li>Law</li></ul></li>
<li>Surveillance
<ul>
<li>NSA</li>
<li>GHCQ</li>
<li>Five Eyes</li>
<li>FISA</li>
<li>Domestic</li>
<li>Snowden</li>
<li>Court Cases</li></ul></li>
<li>Patents
<ul>
<li>Court Cases</li>
<li>Reform</li></ul></li>
</ul>
</dd>
<dt>Studies&mdash;Miscellaneous</dt>
<dd class="desc">
<ul class="detail-list">
<li>History of Computing
<ul>
<li>Unix / Multics / Lisp Machines</li>
<li>MIT</li>
<li>Bell Labs</li>
<li>Hacking</li>
<li>Historical Figures</li>
<li>Machines</li></ul></li>
<li>Typesetting</li>
<li>English Writing
<ul>
<li>Predominantly American</li></ul></li>
</ul>
</dd>
</dd>
</dl>
</section>
</div> </div>
<div id="misc"> <div id="misc">
@ -803,20 +593,20 @@
</div> </div>
<div id="footer"> <div id="footer">
<p class="copyright"> <p class="copyright">
Copyright &copy; 2021 <a href="https://mikegerwitz.com/">Mike Gerwitz</a> Copyright &copy; 2023 <a href="https://mikegerwitz.com/">Mike Gerwitz</a>
</p> </p>
</div> </div>
<div id="footer-print" class="print-only"> <div id="footer-print" class="print-only">
<p> <p>
This document is a print version of my online résumé; it has been This document is a print version of my online résumé; it has been
modified to display certain information inline, whilst removing modified to display certain information inline, while removing
other information not suitable for paper. For the complete other information not suitable for paper. For the complete
résumé, please visit: résumé, please visit:
<br /> <br />
https://mikegerwitz.com/docs/about/resume https://mikegerwitz.com/about/resume
</p> </p>
<p> <p>
Copyright &copy; 2021 Mike Gerwitz Copyright &copy; 2023 Mike Gerwitz
</p> </p>
</div> </div>
</body> </body>

View File

@ -33,8 +33,11 @@ abbr {
margin-top: 2ex; margin-top: 2ex;
} }
.pgbrk { div.sec-header {
page-break-before: always; break-inside: avoid;
}
dt, dd.perod, dd.type {
break-inside: avoid;
} }
.print-only { .print-only {

View File

@ -124,7 +124,7 @@ h1 { font-size: 2.2em; }
#content dl > dd.desc > ul.lang::before { #content dl > dd.desc > ul.lang::before {
display: inline; display: inline;
font-weight: bold; font-weight: bold;
content: 'Languages/Tools: '; content: 'Principal Languages/Tools: ';
} }
/* using li nodes rather than ul itself rids extra whitespace */ /* using li nodes rather than ul itself rids extra whitespace */

View File

@ -67,7 +67,7 @@
<ul> <ul>
<li><a href="/about">About</a></li> <li><a href="/about">About</a></li>
<li><a href="/about/resume">Résumé</a></li> <li><a href="/about/resume">Résumé</a></li>
<li><a href="https://social.mikegerwitz.com/">GNU Social</a></li> <li><a href="https://pleroma.mikegerwitz.com/">Social</a></li>
<li><a href="/about/inside">GNU/Linux Inside</a></li> <li><a href="/about/inside">GNU/Linux Inside</a></li>
<li><a href="/rss">RSS Feed</a></li> <li><a href="/rss">RSS Feed</a></li>
</ul> </ul>
@ -78,9 +78,9 @@
<ul> <ul>
<li><a href="/posts">Posts</a></li> <li><a href="/posts">Posts</a></li>
<li><a href="/talks">Talks</a></li> <li><a href="/talks">Talks</a></li>
<li><a href="/projects">Projects</a></li> <li><a href="//forge.mikegerwitz.com/">Projects</a></li>
<li><a href="/papers">Papers</a></li> <li><a href="/papers">Papers</a></li>
<li><a href="/projects/thoughts">Website Source Code</a></li> <li><a href="//forge.mikegerwitz.com/mikegerwitz/thoughts">Website Source Code</a></li>
</ul> </ul>
</nav> </nav>
@ -101,7 +101,7 @@
</section> </section>
<p id="copyright"> <p id="copyright">
Copyright &copy; 2021 Mike Gerwitz. Copyright &copy; 2023 Mike Gerwitz.
Licensed under the Creative Commons Attribution-ShareAlike&nbsp;4.0 Licensed under the Creative Commons Attribution-ShareAlike&nbsp;4.0
International License. International License.
</p> </p>