diff --git a/.github/workflows/neocities.yml b/.github/workflows/neocities.yml index 942cd3e..c4c33f8 100644 --- a/.github/workflows/neocities.yml +++ b/.github/workflows/neocities.yml @@ -6,7 +6,7 @@ on: - master env: - node-version: lts/* + node-version: 21 FORCE_COLOR: 2 concurrency: # prevent concurrent deploys doing starnge things diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 25ae17d..18a53fa 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - node-version: [lts/*] + node-version: [21] steps: - uses: actions/checkout@v4 diff --git a/package.json b/package.json index 56c0caa..773334a 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,8 @@ "tape": "^5.0.0", "top-bar.css": "^3.0.0", "top-bun": "^7.0.0", - "uhtml-isomorphic": "^2.1.0", - "typescript": "~5.2.2" + "typescript": "~5.2.2", + "uhtml-isomorphic": "^2.1.0" }, "engines": { "node": ">=16.0.0", diff --git a/src/README.md b/src/README.md deleted file mode 100644 index 7625f89..0000000 --- a/src/README.md +++ /dev/null @@ -1,392 +0,0 @@ ---- -title: null ---- -
- avatar -

Bret Comnes

-

Professional & amateur computer programmer

-
- -
- -
-

Breadcrum

-
- - - - Screenshot of Breadcrum.app - - -
Breadcrum: a bookmarking service with full text archiving and search and podcasting support for media from all around the web.
-
- -
- -
-

gumcast

-
- gumcast logo -
Custom API service allowing you to subscribe to any product on Gumroad as a Podcast.
-
- -
- -
-

HifiWi.fi

-
- - - - Screenshot of hifiwi.fi - - -
HifiWi.fi: High fidelity internet products. Catch all technical contracting (App development to mesh network deployments).
-
- -
- -
-

pkg automation

-
- a picture of the future -
Fully Automated Luxury Space Age Package Maintenance, as a blog post. (image Source)
-
- -
- -
-

Hyperamp

-
- Screenshot of Hyperamp -
Cross platform audio library app. (Download Beta)
-
- -
- -
-

News Feed Tools

-
- Screenshot of JSONFeed-to-RSS -
Simple tools to support a JSON Feed first workflow, while still supporting legacy RSS and Atom for websites and podcasting.
-
- -
- -
-

Archlinux Arm

-
- arch arm logo -
Automated provisioning of Archlinx Arm images for Rasberry Pi hardware with Hashicorp's Packer and other various micro-scale devops experiments.
-
- -
- -
-

vhs-tape

-
- VHS-Tape logo -
Generic component unit testing with async/await. (Logo by @tony-go)
-
- -
- -
-

Littlstar Portfolio

-
- - rad screenshot - -
A look at my work at Little Star Media Inc.
-
- -
- -
-

Netlify Portfolio

-
- Screenshot of Netlify website -
I worked at Netlify on product features, platform architecture and open-source.
-
- -
- -
-

Datcast

-
- Datcast logo -
Podcast exploring the people building the p2p web with @jimpick
-
- - - - - -
- -
-

Websockets

-
- Screenshot of Websockets writeup -
Experiments and abstractions with Websockets and a write up of the discoveries made regarding universal Node.js/DOM modules.
-
- -
- -
-

Hypermodul.es

-
- Screenshot of hypermodules website -
Open source development studio LLC. (Closed 2021)
-
- -
- -
-

elenacomnes.com

-
- Screenshot of elenacomnes.com website -
A minimalist, creative website.
-
- -
- -
-

css-pkg

-
- Screenshot of css-pkg website -
An org supporting CSS as node packaged modules, ready for consumption directly out of node_modules and installed with npm or yarn.
-
- -
- -
-

Choo

-
- Choo website screenshot -
Maintainer and core contributor to the choo framework and ecosystem, a lightweight and decomposable alternative to frameworks like React.
-
- -
- -
-

Nanocomponent

-
- Screenshot of nanocomponent life cycle -
Primary author of Nanocomponent, a standalone component model that works well with choo. Shoutout lrlna for the algorithm illustration.
-
- -
- -
-

Standard JS

-
- Screenshot of Standard website -
Maintainer, contributor and advisor to the Standard JS linter and formatter project, used by Timbl and B.Eich.
-
- -
- -
-

Browserify

-
- Screenshot of Browserify website -
Maintainer and contributor to Browserify and ecosystem.
-
- -
- -
-

Node.js

-
- Screenshot of Node.js handbook -
The Node.js handbook captures resources and anthropological artifacts relevant to learning Node.js.
-
- -
- -
-

Dat

-
- Screenshot of flattree website -
Contributing to the Dat module ecosystem and provided early review of the hypercore protocol spec.
-
- -
- -
-

Go

-
- Screenshot of goref -
A Golang concentrate for refreshing your memory on the go programming language.
-
- -
- -
-

Leveldb

-
- Screenshot of level-auto-index -
level-auto-index creates and maintains supplementary LevelDB indexes automatically.
-
- -
- -
-

Electron

-
- Screenshot of Mooon.app -
Creating Electron apps, developer tools and contributing to the Electron prebuild ecosystem to help improve native modules in Electron.
-
- -
- -
-

.dotfiles

-
- Screenshot of my terminal -
These are my .dotfiles, don't wear em out. I've also written a few notes on how I like to do things.
-
- -
- -
-

$ edit

-
- Screenshot of Tron Legacy theme. -
Here are a few themes and plugins I help maintain, as well as my editor settings.
-
- -
- -
-

Late 2016 Reading List

-
- Screenshot of 2016 reading list -
A list of things I was reading in late 2016.
-
-
- -
diff --git a/src/about.md b/src/about.md deleted file mode 100644 index 97a91d8..0000000 --- a/src/about.md +++ /dev/null @@ -1,6 +0,0 @@ -# About - -[![Actions Status](https://github.com/bcomnes/bret.io/workflows/tests/badge.svg)](https://github.com/bcomnes/bret.io/actions) -![Deploy to neociteis](https://github.com/bcomnes/bret.io/workflows/Deploy%20to%20neociteis/badge.svg) - -This is a simple professional website that is generated using [bcomnes/siteup](https://github.com/bcomnes/siteup). \ No newline at end of file diff --git a/src/about/README.md b/src/about/README.md new file mode 100644 index 0000000..e119018 --- /dev/null +++ b/src/about/README.md @@ -0,0 +1,7 @@ +# About + +This is [Bret Comnes](https://bret.io)' personal website built with the follwowing tools: + +```json +{{{ vars.pkg }}} +``` diff --git a/src/about/page.vars.js b/src/about/page.vars.js new file mode 100644 index 0000000..5b1d72a --- /dev/null +++ b/src/about/page.vars.js @@ -0,0 +1,11 @@ +import { readFile } from 'node:fs/promises' +import { join } from 'node:path' +const __dirname = import.meta.dirname + +export default async () => { + const pkg = await readFile(join(__dirname, '../../package.json')) + + return { + pkg + } +} diff --git a/src/blog/2023/page.js b/src/blog/2023/page.js index ea408ff..27f6544 100644 --- a/src/blog/2023/page.js +++ b/src/blog/2023/page.js @@ -1,6 +1,6 @@ /** * @template T - * @typedef {import('@siteup/cli').PageFunction} PageFunction + * @typedef {import('top-bun').PageFunction} PageFunction */ export const vars = { diff --git a/src/blog/2023/reorganized/README.md b/src/blog/2023/reorganized/README.md new file mode 100644 index 0000000..a3b52e9 --- /dev/null +++ b/src/blog/2023/reorganized/README.md @@ -0,0 +1,24 @@ +--- +layout: article +title: "Reorganized" +publishDate: "2023-12-02T20:49:41.713Z" +--- + +Behold, a mildly redesigned and reorganized landing page: + +![screenshot of the new website](./img/screenshot.png) + +It's still not great, but it should make it easier to keep it up to date going forward. + +It has 3 sections: + +- [Featured Projects](/#): important projects of note. +- [Recent Posts](/#recent-posts ): now that this site has proper blog support, I can highlight recent posts on the landing page. +- [Open Source](/#open-source): interesting and notable projects that have found some use and that I still maintain. This section now includes a bunch of open source work from the past year that I've never had time to write about. +- [Past projects](/#past-projects): inactive projects that are not longer active, but still interesting enough to share. + +I removed a bunch of older inactive projects and links and stashed them in a [project](/projects/previous-projects/). + +Additionally, the edit button in the page footer now takes you to the correct page in GitHub for editing, so if you ever see a typo, feel free to send in a fix! + +Finally, the [about](/about/) page includes a live dump of the dependencies that were used to build the website. diff --git a/src/blog/2023/reorganized/img/screenshot.png b/src/blog/2023/reorganized/img/screenshot.png new file mode 100644 index 0000000..ce79c4f --- /dev/null +++ b/src/blog/2023/reorganized/img/screenshot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5b83050d2250a721358b11412476678db48e2ce4ec140348b4a391f9924b110 +size 346564 diff --git a/src/blog/page.js b/src/blog/page.js index c4bf42e..7df98df 100644 --- a/src/blog/page.js +++ b/src/blog/page.js @@ -3,7 +3,7 @@ import { dirname, basename } from 'node:path' /** * @template T - * @typedef {import('@siteup/cli').PageFunction} PageFunction + * @typedef {import('top-bun').PageFunction} PageFunction */ export const vars = { diff --git a/src/booklist.md b/src/booklist.md deleted file mode 100644 index 959a169..0000000 --- a/src/booklist.md +++ /dev/null @@ -1,19 +0,0 @@ -# Booklist - -Books I've read and enjoyed for various reasons. - - -## Technical Books - -### Javascript - -### Go - -### Swift & Objective-C - -### Unix - -## Non-Fiction - -## Fiction - diff --git a/src/components/blog-index-list/index.css b/src/components/blog-index-list/index.css new file mode 100644 index 0000000..0288308 --- /dev/null +++ b/src/components/blog-index-list/index.css @@ -0,0 +1,15 @@ +.blog-index-list { + padding-left: 0px; + + & .blog-entry { + width: 100%; + display: inline-flex; + justify-content: space-between; + } + & .blog-entry-link {} + & .blog-entry-date { + color: var(--accent-foreground); + font-family: var(--font-code); + flex-shrink: 0; + } +} diff --git a/src/language-bullets.css b/src/components/language-bullets.css similarity index 93% rename from src/language-bullets.css rename to src/components/language-bullets.css index 454e0c5..932cc1f 100644 --- a/src/language-bullets.css +++ b/src/components/language-bullets.css @@ -40,6 +40,10 @@ li.objc::before { color: #6866fb; } +li.cpp::before { + color: #f34b7d; +} + li.docker::before { color: #384d54; } diff --git a/src/feeds.template.js b/src/feeds.template.js index 5a59e67..bdc0e1d 100644 --- a/src/feeds.template.js +++ b/src/feeds.template.js @@ -3,7 +3,7 @@ import jsonfeedToAtom from 'jsonfeed-to-atom' /** * @template T - * @typedef {import('@siteup/cli').TemplateAsyncIterator} TemplateAsyncIterator + * @typedef {import('top-bun').TemplateAsyncIterator} TemplateAsyncIterator */ /** @type {TemplateAsyncIterator<{ diff --git a/src/globals/global.css b/src/globals/global.css index 02797a6..c2bd6cd 100644 --- a/src/globals/global.css +++ b/src/globals/global.css @@ -60,7 +60,7 @@ footer > .top-bar-link:first-child { margin-left: unset; } -@media screen and (max-width: 72em) { +@media screen and (max-width: 106em) { footer.top-bar { position: inherit; top: inherit; @@ -68,7 +68,7 @@ footer > .top-bar-link:first-child { } } -@media screen and (max-width: 78em) { +@media screen and (max-width: 106em) { nav.top-bar { backdrop-filter: contrast(100%) blur(10px); z-index: 1; /* float over interactive content below */ diff --git a/src/globals/global.vars.js b/src/globals/global.vars.js index 14eca42..fe9230a 100644 --- a/src/globals/global.vars.js +++ b/src/globals/global.vars.js @@ -6,6 +6,7 @@ export default async function globalVars () { authorName: 'Bret Comnes', authorUrl: 'https://bret.io', authorImgUrl: '/favicons/apple-touch-icon-1024x1024.png', - authorImgAlt: 'Picture of author' + authorImgAlt: 'Picture of author', + githubRootUrl: 'https://github.com/bcomnes/bret.io/blob/master/src/' } } diff --git a/src/static/atom.svg b/src/globals/static/atom.svg similarity index 100% rename from src/static/atom.svg rename to src/globals/static/atom.svg diff --git a/src/static/bsky.png b/src/globals/static/bsky.png similarity index 100% rename from src/static/bsky.png rename to src/globals/static/bsky.png diff --git a/src/static/github.svg b/src/globals/static/github.svg similarity index 100% rename from src/static/github.svg rename to src/globals/static/github.svg diff --git a/src/static/jsonfeed.svg b/src/globals/static/jsonfeed.svg similarity index 100% rename from src/static/jsonfeed.svg rename to src/globals/static/jsonfeed.svg diff --git a/src/static/light-dark.svg b/src/globals/static/light-dark.svg similarity index 100% rename from src/static/light-dark.svg rename to src/globals/static/light-dark.svg diff --git a/src/static/mastodon.svg b/src/globals/static/mastodon.svg similarity index 100% rename from src/static/mastodon.svg rename to src/globals/static/mastodon.svg diff --git a/src/static/neocitieshead.svg b/src/globals/static/neocitieshead.svg similarity index 100% rename from src/static/neocitieshead.svg rename to src/globals/static/neocitieshead.svg diff --git a/src/static/npm.svg b/src/globals/static/npm.svg similarity index 100% rename from src/static/npm.svg rename to src/globals/static/npm.svg diff --git a/src/static/twtr.svg b/src/globals/static/twtr.svg similarity index 100% rename from src/static/twtr.svg rename to src/globals/static/twtr.svg diff --git a/src/jobs/landrover.md b/src/jobs/landrover.md deleted file mode 100644 index 8dd3e4d..0000000 --- a/src/jobs/landrover.md +++ /dev/null @@ -1,45 +0,0 @@ -# Jaguar Land Rover - -At Jaguar Land Rover I worked as a Javascript developer working on various internal infrastructure products and product prototype applications. - -## Infotainment Prototypes - -I was lead developer on various in-vehicle operating system prototypes targeting the following experiences: - -- Rear seat infotainment systems. -- Application IO architecture relating to communication with vehicular CAN buses. -- Express based (Node.js) servers for coordinating applications running across multiple screens. -- Prototype implementations of JLR's next generation in vehicle operating system. -- Hardware accelerated GUIs using Qt. -- Implementing novel media library experiences and HMIs. -- Facilitate user testing and focus sessions. - -## Internal infrastrucutre - -The JLR Portland office had recently opened when I joined and I was able to contribute in various ways to their internal infrastructure. - -### SSO - -I designed and developed a custom single sign-on service for the on-premise hosted infrastructure using the following technologies: - -- Express -- Browserify -- Passport -- Node.js -- Debian -- Google apps - -### Documentation server - -I developed a custom documentation server that integrated with the SSO service that provided a CI service for building and updating various internal documentation websites that use various static site generators. Built with: - -- Express -- Browserify -- Nginx -- Jekyll -- Metalsmith - -*[HMI]: Human machine interface -*[CAN]: Controller area network -*[SSO]: Single Sign On -*[CI]: Continuous integration diff --git a/src/jobs/page.js b/src/jobs/page.js index 342a749..295de2e 100644 --- a/src/jobs/page.js +++ b/src/jobs/page.js @@ -1,6 +1,6 @@ /** * @template T - * @typedef {import('@siteup/cli').PageFunction} PageFunction + * @typedef {import('top-bun').PageFunction} PageFunction */ export const vars = { diff --git a/src/jobs/psu.md b/src/jobs/psu.md deleted file mode 100644 index e5965a9..0000000 --- a/src/jobs/psu.md +++ /dev/null @@ -1 +0,0 @@ -# PSU Academic Research Computing diff --git a/src/jobs/zhealth.md b/src/jobs/zhealth.md deleted file mode 100644 index 0a6d4ce..0000000 --- a/src/jobs/zhealth.md +++ /dev/null @@ -1,11 +0,0 @@ -# Zhealth Etch CV Suite - -At Zhealth, I helped develop a custom structured documentation app for doctors and physicians in cardiac surgery centers. The app's claim to fame was its ability reduce a 30 minute documentation session down to 3 minutes, while recording precise observations that wasn't possible by the standard 'by hand' recording methods. - -Etch implemented a custom interactive SVG bodymap engine that allowed for direct input on top of an industry standard cardiac model. - -## Etch CV - -## Registry - -## IT and small office support diff --git a/src/layouts/article.layout.js b/src/layouts/article.layout.js index 23f045b..dc996c6 100644 --- a/src/layouts/article.layout.js +++ b/src/layouts/article.layout.js @@ -14,15 +14,15 @@ export default function articleLayout (args) {

${vars.title}