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
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This will also download any necessary third-party files. Note that all
# downloads are proxied over Tor (using `torify').
# This will also download any necessary third-party files.
##
set -euo pipefail
@ -56,7 +55,7 @@ get-fonts()
dest="$fontdir/$font"
test ! -f "$dest" || continue
torify wget "$src" -O "$dest"
wget "$src" -O "$dest"
done
# 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
### GENERATED BY gen-makefile ###
TORIFY="${TORIFY-torify}"
images := $( cut -d' ' -f1 "$remote_file" | tr '\n' ' ' )
.PHONY: all check clean
@ -44,7 +42,7 @@ while read out url convert; do
dest="$out"
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

1
papers/tpl 120000
View File

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

View File

@ -10,9 +10,9 @@
<body>
<div id="header">
<div class="leftcol">
<h1 class="name">Michael T. Gerwitz</h1>
<h1 class="name">Mike Gerwitz</h1>
<h2 class="name-subline">
Software Engineer and Activist For User Freedom
Software Engineer, Activist For User Freedom
</h2>
</div>
<div id="infobox">
@ -25,17 +25,6 @@
<dd>
<a href="https://mikegerwitz.com/">https://mikegerwitz.com/</a>
</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>
<dd>
<tt>D6E9 B930 028A 6C38 F43B</tt><br />
@ -99,11 +88,10 @@
<section id="objective">
<h2>Objective</h2>
<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
users' freedoms</a>, strive to innovate, and embrace
challenge. Looking to at some point transition into an educator
and/or research role in any of my areas of expertise.
users' freedoms</a>, strive to innovate, embrace
challenge, and seek to make a positive social and cultural impact.
</p>
</section>
@ -111,20 +99,31 @@
<h2>Summary</h2>
<p>
I am a self-driven and passionate hacker with over twenty years'
experience in various areas of software development. I&nbsp;am
a <a href="https://gnu.org/philosophy/free-sw.html">free
software</a> activist with a focus on user&nbsp;privacy and
security; a volunteer and maintainer for
the <a href="https://gnu.org">GNU Project</a>; and both author and
contributor to various free software projects. I&nbsp;seek an
innovative team of hackers that are passionate about their work
and will challenge my wide range of skills. A&nbsp;prospective
employer must be willing to use and write
experience in many areas of software development and computer
science. I&nbsp;am an activist for user freedom with a focus on
user&nbsp;privacy and security. I&nbsp;seek an innovative team of
hackers that are passionate about their work and will challenge my
wide range of skills and interests. I&nbsp;focus primarily on
compiler construction and the creation of declarative
domain-specific languages and abstractions to simplify development
and improve the correctness of complex systems. Some of my
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"
href="https://gnu.org/philosophy/free-sw.html">free software</a>,
and be positive toward software freedom and the free software
movement. I am also interested in academic/research settings as
both a hacker and as an&nbsp;educator.
movement.
</p>
</section>
@ -134,18 +133,18 @@
<dt>Ryan Specialty Group (formerly LoVullo Associates, Inc.)</dt>
<dd class="period">March 2009&ndash;Present</dd>
<dd class="desc">
Principal software developer.
Designs, develops, and maintains web applications; application
frameworks; server software; and compilers for domain-specific
languages (DSLs) for an Excess and Surplus Lines Insurance
Agency. Most work involves developing complex online raters to provide
comparative insurance quotes; integrating and automating various
systems; and providing a suite of development tools and DSLs to
support those systems. Responsible for developer training and
knowledge transfer through design discussions, documentation,
peer programming, and code review. Involved in every aspect of
the development process and many decisions regarding the
technical direction of the organization.
Principal software engineer.
Designs, develops, and maintains compilers for domain-specific
languages (DSLs); application frameworks; server software; and
web applications for an Excess and Surplus Lines Insurance
Agency. Most work involves developing complex online raters to
provide comparative insurance quotes; integrating and automating
various systems; and providing a suite of development tools and
DSLs to support those systems. Responsible for developer
training and knowledge transfer through design discussions,
documentation, peer programming, and code review. Involved in
every aspect of the development process and many decisions
regarding the technical direction of the organization.
</dd>
<dd class="desc">
A number of projects written for my employer have
@ -155,38 +154,16 @@
</dd>
<dd class="desc">
<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>Sed</li>
<li>JavaScript (ECMAScript)</li>
<li>TypeScript</li>
<li>XSLT</li>
<li>Shell&nbsp;(POSIX, Bash)</li>
<li>SQL Anywhere</li>
<li>Symfony 2+</li>
<li>PHP</li>
<li>Texinfo</li>
<li>TeX&nbsp(Plain, LaTeX2e)</li>
<li>Vim</li>
<li>XSLT&nbsp;(1&ndash;3)</li>
<li>TeX&nbsp;(Plain, LaTeX2e)</li>
<li>HTML</li>
<li>CSS</li>
</ul>
</dd>
@ -194,26 +171,72 @@
<dd class="period">March 2006&ndash;March 2009</dd>
<dd class="desc">
Worked as a freelance web developer primarily through vWorker
(previously RentACoder) with a 10/10 rating, ranked higher than 99% of
all other developers.
(previously RentACoder).
</dd>
</dl>
</section>
<section id="projects">
<h2>Projects</h2>
<p class="nopgbrk">
Listed here are both my own projects and those to which I have
made notable contributions.
I have many miscellaneous projects and scripts that are not
listed here; see my
<a data-print="true"
href="https://mikegerwitz.com/projects">Projects page</a>
for a full list.
</p>
<div class="sec-header">
<h2>Projects</h2>
<p>
Listed here are both my own projects and those to which I have
made notable contributions.
I have many miscellaneous projects and scripts that are not
listed here; see my
<a data-print="true"
href="https://mikegerwitz.com/projects">Projects page</a>
for a full list.
</p>
</div>
<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>
<dd class="period">November 2010&ndash;Present</dd>
<dd class="period">November 2010&ndash;2017</dd>
<dd class="type">Author</dd>
<dd class="desc">
A Classical Object-Oriented framework for JavaScript, intended to
@ -236,7 +259,9 @@
also my paper <a href="http://mikegerwitz.com/papers/coope"
class="title">Classifical Object-Oriented Programming with
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 class="desc">
<ul class="lang detail-list">
@ -250,79 +275,33 @@
</ul>
</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>
</dt>
<dd class="period">2010&ndash;Present</dd>
<dd class="type">Author</dd>
<dd class="desc">
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.
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
JavaScript,
drastically simplifying development and maintenance.
JavaScript.
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.
</dd>
<dd class="desc">
This project integrates tightly with TAME for its classification
system.
system and depenedency analysis.
</dd>
<dd class="desc">
<ul class="lang detail-list">
<li>Rust</li>
<li>XSLT 2&ndash;3</li>
<li>JavaScript (ECMAScript 2016)</li>
<li>Node.js</li>
<li>XSLT 2&ndash;3</li>
<li>Shell (Bash)</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>
</dd>
@ -358,8 +337,6 @@
<dd class="desc">
<ul class="lang detail-list">
<li>C (ANSI C, C11)</li>
<li>GDB</li>
<li>GNU Make</li>
<li>Gnulib (Test Headers)</li>
</ul>
</dd>
@ -367,11 +344,11 @@
</section>
<section id="articles">
<h2>Articles, Talks, and Publications</h2>
<h2>Articles, Talks, and Papers</h2>
<p>
I am an avid technical writer and activist; my writings are
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
notable. <span class="print-only">Direct links are provided in the
online version of this résumé.</span>
@ -379,18 +356,18 @@
<dl>
<dt>
<a href="http://mikegerwitz.com/papers/tpl.pdf">
<a href="/papers/tpl.pdf">
The TAME Programming Language Living Document</a></dt>
<dd class="period">May 2021&ndash;Present</dd>
<dd class="desc">
This document is an attempt to formally consider certain parts of
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.
</dd>
<dt>
<a href="https://mikegerwitz.com/talks">
<a href="/talks">
Adopting Free Software Ideals</a></dt>
<dd class="period">March 2021</dd>
<dd class="desc">
@ -400,7 +377,7 @@
</dd>
<dt>
<a href="https://mikegerwitz.com/talks">
<a href="/talks">
Computational Symbiosis: Methods That Meld Mind and Machine</a></dt>
<dd class="period">March 2019</dd>
<dd class="desc">
@ -411,7 +388,17 @@
</dd>
<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>
<dd class="period">March 2018</dd>
<dd class="desc">
@ -421,7 +408,7 @@
</dd>
<dt>
<a href="https://mikegerwitz.com/talks">
<a href="/talks">
The Surreptitious Assault On Privacy, Security, and Freedom</a></dt>
<dd class="period">March 2017</dd>
<dd class="desc">
@ -432,7 +419,7 @@
</dd>
<dt>
<a href="https://mikegerwitz.com/talks">
<a href="/talks">
Restore Online Freedom!</a></dt>
<dd class="period">March 2016</dd>
<dd class="desc">
@ -454,7 +441,7 @@
</dd>
<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>
<dd class="period">June 2013</dd>
<dd class="desc">
@ -467,7 +454,7 @@
</dd>
<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>
<dd class="period">May 2012</dd>
<dd class="desc">
@ -488,7 +475,7 @@
</dd>
<dt>
<a href="http://mikegerwitz.com/papers/coope">
<a href="/papers/coope.pdf">
Classical Object-Oriented Programming with ECMAScript</a></dt>
<dd class="period">February 2012&ndash;April 2012</dd>
<dd class="desc">
@ -500,27 +487,32 @@
<a href="https://www.gnu.org/software/easejs/manual/Implementation-Details.html">the
implementation used by GNU ease.js</a>. Paper is incomplete.
</dd>
</dl>
<p>
These are from my early teenage years:
</p>
<dl>
<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>
<dd class="period">June 2004</dd>
<dd class="desc">
Mention in PC Magazine for a project named iBrowser, the world's
first voice recognition web browser. Created with a remote friend
at the age of fourteen. Personally handled voice recognition,
popup blocker, and most other aspects of development.
Mention in PC Magazine at the age of fourteen for a project
named iBrowser, a voice recognition web browser. Created with a
remote friend. Personally handled voice recognition, popup
blocker, and most other aspects of development.
</dd>
<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>
<dd class="period">February 2003</dd>
<dd class="desc">
Received Planet Source Code's Superior Coding Contest Award for
the voice recognition tutorial
<a href="http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=43096&amp;lngWId=1">
&quot;Talk To Your Computer&quot;</a> at the age of thirteen.
the voice recognition tutorial &quot;Talk To Your Computer&quot;
at the age of thirteen.
</dd>
</dl>
</section>
@ -533,14 +525,13 @@
GNU Project</a></dt>
<dd class="period">December 2013&ndash;Present</dd>
<dd class="desc">
I am the author and maintainer
of <a href="https://gnu.org/s/easejs">GNU ease.js</a>; one of
I serve on the <a href="https://www.gnu.org/contact/gnu-advisory">GNU
Advisory Committie&nbsp;(GAC)</a>; was previously one of
the <a href="https://www.gnu.org/help/evaluation.html">GNU&nbsp;software
evaluators</a> that review software offered to GNU; exercise
various administrative duties; and participate in general
discussions regarding the GNU Project as a whole.
I participate in general activism pursuant to the goals of GNU,
including addressing the issue
evaluators</a> that review software offered to GNU; and used to exercise
various administrative duties&nbsp;(GNUisance). I participate in
general activism pursuant to the goals of GNU, including
addressing the issue
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
B.V. CEO)
@ -548,7 +539,7 @@
license all GitLab EE JavaScript</a>, and worked on the
<a href="https://www.gnu.org/software/repo-criteria.html">GNU
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>
<dt>
@ -593,207 +584,6 @@
</dd>
</dl>
</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 id="misc">
@ -803,20 +593,20 @@
</div>
<div id="footer">
<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>
</div>
<div id="footer-print" class="print-only">
<p>
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
résumé, please visit:
<br />
https://mikegerwitz.com/docs/about/resume
https://mikegerwitz.com/about/resume
</p>
<p>
Copyright &copy; 2021 Mike Gerwitz
Copyright &copy; 2023 Mike Gerwitz
</p>
</div>
</body>

View File

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

View File

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

View File

@ -67,7 +67,7 @@
<ul>
<li><a href="/about">About</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="/rss">RSS Feed</a></li>
</ul>
@ -78,9 +78,9 @@
<ul>
<li><a href="/posts">Posts</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="/projects/thoughts">Website Source Code</a></li>
<li><a href="//forge.mikegerwitz.com/mikegerwitz/thoughts">Website Source Code</a></li>
</ul>
</nav>
@ -101,7 +101,7 @@
</section>
<p id="copyright">
Copyright &copy; 2021 Mike Gerwitz.
Copyright &copy; 2023 Mike Gerwitz.
Licensed under the Creative Commons Attribution-ShareAlike&nbsp;4.0
International License.
</p>