Heavy updates including style and content.

This commit is contained in:
Pat Garrity 2024-04-11 22:33:29 -05:00
parent 4367443a66
commit bdf9c39baa
Signed by: pfm
GPG key ID: 5CA5D21BAB7F3A76
3 changed files with 293 additions and 23 deletions

139
src/assets/gs.css Normal file
View file

@ -0,0 +1,139 @@
html {
box-sizing: border-box;
}
body {
font-size: 100%;
line-height: 1;
font-family: sans-serif;
margin: 0;
padding: 0;
color: #000000;
}
a {
color: #0002cd;
}
a:visited {
color: #0002cd;
}
a:hover {
color: #333333;
text-decoration: none;
}
div#container {
width: 90ch;
margin-left: auto;
margin-right: auto;
}
header h1 {
font-size: 2.5rem;
font-family: Iosevka, monospace;
}
nav {
font-family: Iosevka, monospace;
font-size: 1.2rem;
background-color: #f6eeff;
padding: 0.5rem;
}
nav ul {
list-style: none;
margin: 0;
padding: 0;
}
nav ul li {
display: inline-block;
margin: 0;
padding: 0;
}
nav ul li:not(:first-child) {
margin-left: 1rem;
}
nav a {
font-weight: 800;
}
main {
line-height: 1.25;
font-size: 1.1rem;
}
main h1 {
padding: 0;
border-bottom: 1px dashed #333;
font-family: Iosevka, monospace;
font-size: 2rem;
}
main h2 {
padding: 0;
font-family: Iosevka, monospace;
font-size: 1.5rem;
}
dl {
padding: 1rem;
background-color: #f6f6f6;
}
dl dt {
font-weight: 800;
}
dl dt:not(:first-child) {
margin-top: 0.75rem;
}
dl dd {
margin: 0;
padding: 0;
}
footer {
margin-top: 1rem;
border-top: 1px solid #cccccc;
padding-top: 1rem;
}
table, tr, td {
margin: 0;
padding: 0;
border: 0;
}
dl.project-list {
width: 100%;
font-size: 1rem;
padding: 0;
margin: 0;
background-color: #fff;
}
dl.project-list dt {
width: 100%;
margin-top: 1rem;
padding: 0.5rem;
display: block;
background-color: #f0f0f0;
border-top: 1px solid #999;
border-left: 1px solid #999;
border-right: 1px solid #999;
font-family: Iosevka, monospace;
}
dl.project-list dd {
width: 100%;
padding: 0.5rem;
border-bottom: 1px solid #999;
border-left: 1px solid #999;
border-right: 1px solid #999;
}

View file

@ -1,22 +1,32 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Garrity Software</title> <title>Garrity Software - About</title>
<meta name="author" content="pfm" /> <meta name="author" content="pfm" />
<meta name="description" content="Garrity Software Homepage" /> <meta name="description" content="Garrity Software Homepage" />
<link rel="stylesheet" type="text/css" href="assets/gs.css">
</head> </head>
<body> <body>
<div id="container">
<!-- Header/Logo -------------------------------------------------------------->
<header> <header>
<h1>Garrity Software</h1> <h1>Garrity Software</h1>
</header> </header>
<!-- Navigation --------------------------------------------------------------->
<nav> <nav>
<ul> <ul>
<li><a href="index.html">about</a></li> <li><a href="index.html">about</a></li>
<li><a href="products.html">products</a></li> <li><a href="products.html">products</a></li>
<li><a href="oss.html">open source</a></li> <li><a href="oss.html">open source</a></li>
<li><a href="donate.html">donate</a></li> <li><a href="donate.html">donate</a></li>
<li><a href="contact.html">contact</a></li>
</ul> </ul>
</nav> </nav>
<!-- Main Content ------------------------------------------------------------->
<main> <main>
<section id="short-description"> <section id="short-description">
<p><em>Garrity Software</em> (GS) is a <p><em>Garrity Software</em> (GS) is a
@ -28,11 +38,11 @@ and is primarily producing open source libraries.</p></section>
<section id="mission"> <section id="mission">
<h1>Mission</h1> <h1>Mission</h1>
<p>Garrity Software aims to produce high quality software while supporting a <p>Garrity Software aims to produce high quality software to solve a variety of
small number of employees, enabling them to work less, spend time with their problems. At the same time, it aims to remain small in size and provide a stable
families, and pursue their own interests. GS also aims to provide open source living for a small number of people, enabling them to work less, spend time with
software for everyone to use, and to financially support open source their families, and pursue their own interests. Finally, GS aims to provide open
development.</p> source software and to financially support open source development.</p>
<h2 id="donations">Donations</h2> <h2 id="donations">Donations</h2>
<p>If you want to support the GS mission or open source work, please consider <p>If you want to support the GS mission or open source work, please consider
@ -41,7 +51,7 @@ development.</p>
<h2 id="roadmap">Roadmap and Progress</h2> <h2 id="roadmap">Roadmap and Progress</h2>
<p>The GS vision is non-trivial to achieve. Quality open source projects are a <p>The GS vision is non-trivial to achieve. Quality open source projects are a
starting point, but supporting employees and open source projects requires starting point, but supporting employees and open source projects requires
products and income. GS </p> products and income. GS has a coarse-grained roadmap towards the mission.</p>
<p>Current Status: <strong>Bootstrapping</strong></p> <p>Current Status: <strong>Bootstrapping</strong></p>
@ -60,7 +70,7 @@ products and income. GS </p>
<dt>Hire to Five</dt> <dt>Hire to Five</dt>
<dd>Bring in additional people until the arbitrary threshold of five <dd>Bring in additional people until the arbitrary threshold of five
employees is met. Cease hiring.</dd> employees is met.</dd>
<dt>Sustain</dt> <dt>Sustain</dt>
<dd>Hit a balance point that supports year-to-year stability in line with <dd>Hit a balance point that supports year-to-year stability in line with
@ -70,24 +80,39 @@ products and income. GS </p>
<section id="sustainable-organization"> <section id="sustainable-organization">
<h1>Sustainable Organization</h1> <h1>Sustainable Organization</h1>
<p>Garrity Software is focused on operating in a sustainable way that promotes
a particular operating model and lifestyle, rather than pursuing unbounded <h2>Sustainability</h2>
growth. We define such an organization in the following way, specifically
catered to a small company vision:</p> <p>Garrity Software is based on the premise of sustainability. This is measured
in terms of employee needs and company performance. The goal is a balance where
GS earns enough to support a small number of employees that do not need to work
a full week. To achieve this goal, GS needs to earn enough money and have stable
enough products. At the same time, GS needs to resist unbounded growth and
becoming too large. The steady state should have employees that can both
maintain current products and pursue new work without needing to put in extra
time.</p>
<h2>Execution</h2>
<ul> <ul>
<li>Establish core products that produce reliable income.</li> <li>Establish strong core products that produce reliable income.</li>
<li>The company is never beholden to external investors.</li> <li>Never allow the organization to become beholden to external investors.</li>
<li>The company does not spend money it does not have.</li> <li>Do not spend money that GS does not have.</li>
<li>Minimize pursuit of growth after supporting five total employees.</li> <li>Limit staff to five total employees.</li>
<li>Employees reliably work four day weeks (or less).</li> <li>Establish four day work weeks starting with the first hire.</li>
<li>Employees receive a comfortable income that accounts for benefits and allows them to support their families.</li> <li>Ensure that hiring only starts when enough income exists to support a comfortable living wage (including things like health care) for any hired person.</li>
<li>Once stability is achieved, funding is set aside to donate to other open source and sustainable projects.</li> <li>Establish a fund to donate to, or otherwise support, open source development.</li>
</ul> </ul>
<p>Minimizing growth does not mean that work will cease, rather that the focus
might change to open source development, targeted product improvements, and
starting new products that align with employee interests, with a smaller focus
on sales or increasing revenue in general.</p>
</section> </section>
</main> </main>
<!-- Footer ------------------------------------------------------------------->
<footer>
Content Copyright © Patrick Garrity
</footer>
</div>
</body> </body>
</html> </html>

106
src/oss.html Normal file
View file

@ -0,0 +1,106 @@
<!DOCTYPE html>
<html>
<head>
<title>Garrity Software - Open Source</title>
<meta name="author" content="pfm" />
<meta name="description" content="Garrity Software Homepage" />
<link rel="stylesheet" type="text/css" href="assets/gs.css">
</head>
<body>
<div id="container">
<!-- Header/Logo -------------------------------------------------------------->
<header>
<h1>Garrity Software</h1>
</header>
<!-- Navigation --------------------------------------------------------------->
<nav>
<ul>
<li><a href="index.html">about</a></li>
<li><a href="products.html">products</a></li>
<li><a href="oss.html">open source</a></li>
<li><a href="donate.html">donate</a></li>
<li><a href="contact.html">contact</a></li>
</ul>
</nav>
<!-- Main Content ------------------------------------------------------------->
<main>
<section id="open-source">
<h1>Open Source</h1>
<p>Garrity Software exposes all non-product software as open source under the
MIT license.</p>
</section>
<section id="scala">
<h2>Scala</h2>
<p>All GS projects are currently implemented in Scala 3. No Scala 2 artifacts
are available. GS typically leans towards the newest available Scala versions.
GS projects heavily leverage Cats, Cats Effect and FS2. GS libraries typically
try to minimize size and dependency scope.</p>
<p>GS does not yet build libraries for Scala Native or ScalaJS.</p>
</section>
<section id="vcs">
<h2>Version Control (Git)</h2>
<p>GS uses self-hosted version control at
<a href="https://git.garrity.co/garrity-software">https://git.garrity.co/garrity-software</a>.
All code is available, though registration is not available at this time. Once
all setup is complete, accounts may be granted to allow for contributions.</p>
</section>
<section id="maven">
<h2>Maven</h2>
<p>GS provides a Maven server and does not upload artifacts to other public
Maven/Ivy repositories at this time.</p>
<pre><code></code>resolvers += "garrity-software-gs" at "https://maven.garrity.co/gs"</pre>
<p>No credentials are required to use this repository.</p>
</section>
<section id="api-docs">
<h2>API Documentation</h2>
<p>ScalaDoc is not yet published.</p>
</section>
<section id="projects">
<h2>Projects</h2>
<dl class="project-list">
<dt><a href="https://git.garrity.co/garrity-software/gs-uuid">gs-uuid</a>
(Scala 3) (Library)</dt>
<dd>Uses <a href="https://github.com/cowtowncoder/java-uuid-generator/">JUG</a>
and ported code from Jackson to provide an opaque <code>UUID</code> type
over <code>java.util.UUID</code>, backed by custom rendering and parsing.</dd>
<dt><a href="https://git.garrity.co/garrity-software/gs-slug">gs-slug</a>
(Scala 3) (Library)</dt>
<dd>Provides a <code>Slug</code> type. This type relies on a very small set of
ASCII characters and is intended for URL-safe identifiers.</dd>
<dt><a href="https://git.garrity.co/garrity-software/gs-hex">gs-hex</a>
(Scala 3) (Library)</dt>
<dd>Small, efficient, Hexadecimal conversion library with encoder/decoder type
classes and support for basic types. Based on handling byte arrays.</dd>
<dt><a href="https://git.garrity.co/garrity-software/gs-blob">gs-blob</a>
(Scala 3) (Library)</dt>
<dd>Opaque type (<code>Blob</code>) and tools (e.g. encoding) for "blobs" -
arrays of bytes.</dd>
</dl>
</section>
</main>
<!-- Footer ------------------------------------------------------------------->
<footer>
Content Copyright © Patrick Garrity
</footer>
</div>
</body>
</html>