Code Monkey home page Code Monkey logo

personal-site's Introduction

Aidan Sawyer

Personal and professional site written with vanilla web standards and a little lit-html, hosted on AWS at aidan-sawyer.com.

purpose

This site was made as:

  • a front-facing hub to introduce myself to those who don't know me (or want to know more) [about,resume]
  • a space to track and show my ongoing work and personal portfolio. [about,projects]
  • a place for me to coordinate and display my current thoughts and interests [blog]
  • an exercise and exhibition of my skills, design principles, and approach

running it locally

prerequisites:

$ npm install -g npx
$ npm install

running:

$ npm run start

site map

page description
home welcome, introduction, and worklog
about resume for employers displaying data from atla5/resume
projects list of projects with descriptions stored in projects.json
talks presentations and workshops I've given over the years, fed by presentations.json

design rationale

A huge motivating design concept I've grown to appreciate this year (2019) is the principle of least power. I speak about it in the about page, so I won't belabor the point too much here, but suffice it to say, the workings of this site are incredibly simple - and they're meant to be. Try disabling javascript and reloading the page, and you'll see most of the functionality remains intact due to a corollary focus on progressive enhancement and graceful degradation.

Another main principle implemented in the design of this website (and a central tenant of my general design philosophy) was the principle of the 'separation of concerns' (also known as 'functional decomposition', or 'single responsibility' and linked closely with the 'unix philosophy').

This drive to reduce higher-order requirements into sub-systems and components helped to:

increase... by reducing...
understandability individual complexity
maintainability size (cognitive chunks)
agility/flexibility coupling between systems
speed extraneous/irrelevant pieces
focus/clarity to essentials

Specific examples of the implementations of this principle can be seen in the use of

  • multiple repositories instead of a monolithic entity with many parts
  • distributed json storing data where it belongs (next to what it's describing)
  • functional css for reusable elements of singular description/content
  • restricted scope such that each repo is useful and justifiable unto itself

roadmap

  • simplify design/scope - ensure everything that can/should be is decoupled, independent, and quick
  • optimize tech/loading - reduce dependency load and avoid loading everything at once
  • custom domain - move to aidan-sawyer.com instead of using the boilerplate atla5.github.io
  • consume utils/css - extract the common css (e.g. .pam, .large-text) into atla5/utils
  • implement the blog - to live-load entries from atla5/blog using showdownjs
  • add lib-re subdomain to showcase my work on library/archive/museum (LAM) tech

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.