software architecture reading list workshop teams
https://www.georgefairbanks.com/assets/pdf/Haiku-tutorial-2011-06-24-final.pdf
^^ this is A++, but ignore the OOP-y references for now.
| // highlighted.js | |
| // patched to adapt to external layout changes | |
| /*! (c) Andrea Giammarchi @webreflection ISC */ | |
| !function(){"use strict";var e=function(e,t){var n=function(e){for(var t=0,n=e.length;t<n;t++)r(e[t])},r=function(e){var t=e.target,n=e.attributeName,r=e.oldValue;t.attributeChangedCallback(n,r,t.getAttribute(n))};return function(o,a){var l=o.constructor.observedAttributes;return l&&e(a).then((function(){new t(n).observe(o,{attributes:!0,attributeOldValue:!0,attributeFilter:l});for(var e=0,a=l.length;e<a;e++)o.hasAttribute(l[e])&&r({target:o,attributeName:l[e],oldValue:null})})),o}};function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from( |
| const template = document.createElement('template') | |
| template.innerHTML = /*html*/` | |
| <style> | |
| * { | |
| font-size: 200%; | |
| } | |
| span { | |
| width: 4rem; | |
| display: inline-block; |
| { | |
| "scripts": { | |
| "size": "rm -rf .tmp/ && npx ncc build index.js -o .tmp -m -q && gzip .tmp/index.js && wc -c < .tmp/index.js.gz | xargs", | |
| } | |
| } |
| /* | |
| UI controls bound to CSS Custom Properties for on-the-fly tweaks. | |
| Also draws an auto-updating grid. | |
| > - updates to this gist must republish a new gisthostfor.me | |
| > - only works for numeric props for now | |
| It's a native WebComponent, so it can be dropped in style guides | |
| without affecting or being affected by the environmental CSS. |
| # Problem set: You need to instantiate `Pages` from `Files`, | |
| # picked up using the standard `File.read` method. | |
| # | |
| # For whatever reason, the `path` is the filename. | |
| # and the `data` are the contents of the File. | |
| # ---- | |
| # Modelling: | |
| # | |
| # To decouple the persistence layer and the domain layer, | |
| # I introduce a new class `Entry` which acts as an intermediary. |
The key words
must,must not,required,shall,shall not
should,should not,recommended,may, andoptionalin this
document are to be interpreted as described in [RFC 2119][rfc-2119].
| #!/bin/bash | |
| # Conventional Commits "commit-msg" git hook # | |
| # | |
| # Installs a "Conventional Commit" commit-msg Git hook | |
| # See more: https://www.conventionalcommits.org/ | |
| # | |
| # Usage: | |
| # - Copy this file to your repo | |
| # - Run it once: bash install-cc-hook.sh |
| // Activate the 'Default Dark' theme and then customise it | |
| // Drop this in the editor | |
| { | |
| "extends": "Default Dark.sublime-theme", | |
| "variables": { | |
| "vcs_untracked": "var(--greenish)", | |
| "vcs_modified": "var(--orangish)", | |
| "vcs_missing": "var(--redish)", | |
| "vcs_staged": "var(--bluish)", | |
| "vcs_added": "var(--greenish)", |