From bdf9c39baa5bdfdfa1cf5357c6404c1104ada9ac Mon Sep 17 00:00:00 2001 From: Pat Garrity Date: Thu, 11 Apr 2024 22:33:29 -0500 Subject: [PATCH] Heavy updates including style and content. --- src/assets/gs.css | 139 ++++++++++++++++++++++++++++++++++++++++++++++ src/index.html | 71 +++++++++++++++-------- src/oss.html | 106 +++++++++++++++++++++++++++++++++++ 3 files changed, 293 insertions(+), 23 deletions(-) create mode 100644 src/assets/gs.css create mode 100644 src/oss.html diff --git a/src/assets/gs.css b/src/assets/gs.css new file mode 100644 index 0000000..fc7629e --- /dev/null +++ b/src/assets/gs.css @@ -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; +} diff --git a/src/index.html b/src/index.html index 37259da..1b605c9 100644 --- a/src/index.html +++ b/src/index.html @@ -1,22 +1,32 @@ - Garrity Software + Garrity Software - About + + +
+ +

Garrity Software

+ + + +

Garrity Software (GS) is a @@ -28,11 +38,11 @@ and is primarily producing open source libraries.

Mission

-

Garrity Software aims to produce high quality software while supporting a -small number of employees, enabling them to work less, spend time with their -families, and pursue their own interests. GS also aims to provide open source -software for everyone to use, and to financially support open source -development.

+

Garrity Software aims to produce high quality software to solve a variety of +problems. At the same time, it aims to remain small in size and provide a stable +living for a small number of people, enabling them to work less, spend time with +their families, and pursue their own interests. Finally, GS aims to provide open +source software and to financially support open source development.

Donations

If you want to support the GS mission or open source work, please consider @@ -41,7 +51,7 @@ development.

Roadmap and Progress

The GS vision is non-trivial to achieve. Quality open source projects are a starting point, but supporting employees and open source projects requires -products and income. GS

+products and income. GS has a coarse-grained roadmap towards the mission.

Current Status: Bootstrapping

@@ -60,7 +70,7 @@ products and income. GS

Hire to Five
Bring in additional people until the arbitrary threshold of five - employees is met. Cease hiring.
+ employees is met.
Sustain
Hit a balance point that supports year-to-year stability in line with @@ -70,24 +80,39 @@ products and income. GS

Sustainable Organization

-

Garrity Software is focused on operating in a sustainable way that promotes -a particular operating model and lifestyle, rather than pursuing unbounded -growth. We define such an organization in the following way, specifically -catered to a small company vision:

+ +

Sustainability

+ +

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.

+ +

Execution

+
    -
  • Establish core products that produce reliable income.
  • -
  • The company is never beholden to external investors.
  • -
  • The company does not spend money it does not have.
  • -
  • Minimize pursuit of growth after supporting five total employees.
  • -
  • Employees reliably work four day weeks (or less).
  • -
  • Employees receive a comfortable income that accounts for benefits and allows them to support their families.
  • -
  • Once stability is achieved, funding is set aside to donate to other open source and sustainable projects.
  • +
  • Establish strong core products that produce reliable income.
  • +
  • Never allow the organization to become beholden to external investors.
  • +
  • Do not spend money that GS does not have.
  • +
  • Limit staff to five total employees.
  • +
  • Establish four day work weeks starting with the first hire.
  • +
  • Ensure that hiring only starts when enough income exists to support a comfortable living wage (including things like health care) for any hired person.
  • +
  • Establish a fund to donate to, or otherwise support, open source development.
-

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.

+
+ + +
+Content Copyright © Patrick Garrity +
+ +
+ diff --git a/src/oss.html b/src/oss.html new file mode 100644 index 0000000..a66e301 --- /dev/null +++ b/src/oss.html @@ -0,0 +1,106 @@ + + + + Garrity Software - Open Source + + + + + + +
+ + +
+

Garrity Software

+
+ + + + + +
+ +
+

Open Source

+

Garrity Software exposes all non-product software as open source under the +MIT license.

+
+ +
+

Scala

+

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.

+

GS does not yet build libraries for Scala Native or ScalaJS.

+
+ +
+

Version Control (Git)

+

GS uses self-hosted version control at +https://git.garrity.co/garrity-software. +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.

+
+ +
+

Maven

+

GS provides a Maven server and does not upload artifacts to other public +Maven/Ivy repositories at this time.

+
resolvers += "garrity-software-gs" at "https://maven.garrity.co/gs"
+

No credentials are required to use this repository.

+
+ +
+

API Documentation

+

ScalaDoc is not yet published.

+
+ +
+

Projects

+
+ +
gs-uuid + (Scala 3) (Library)
+
Uses JUG + and ported code from Jackson to provide an opaque UUID type + over java.util.UUID, backed by custom rendering and parsing.
+ +
gs-slug + (Scala 3) (Library)
+
Provides a Slug type. This type relies on a very small set of + ASCII characters and is intended for URL-safe identifiers.
+ +
gs-hex + (Scala 3) (Library)
+
Small, efficient, Hexadecimal conversion library with encoder/decoder type + classes and support for basic types. Based on handling byte arrays.
+ +
gs-blob + (Scala 3) (Library)
+
Opaque type (Blob) and tools (e.g. encoding) for "blobs" - + arrays of bytes.
+ +
+
+ +
+ + + + +
+ + +