Skip to content

Instantly share code, notes, and snippets.

Avatar
💜
Pondering Paradigms

Chris Thoburn runspired

💜
Pondering Paradigms
View GitHub Profile
@runspired
runspired / scan.js
Created September 12, 2023 05:28
Element Scan
View scan.js
function timedGet(selector) { let start = performance.now(); let all = document.querySelectorAll(selector); let end = performance.now(); return { start, end, all }; }
function iterateAll(selector, cb) {
let data = timedGet(selector);
for (let e of data.all) cb(e);
let end = performance.now();
console.log({ start: data.start, iter: data.end, end, duration: end - data.start })
}
seen2 = new Set(); iterateAll('*', (e) => seen2.add(e));
@runspired
runspired / controllers.application\.js
Last active April 14, 2023 21:51
Transactional Bulk Endpoint
View controllers.application\.js
import Controller from '@ember/controller';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { recordIdentifierFor } from '@ember-data/store';
let count = 2;
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
@service store;
View controllers.application\.js
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { set, action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
export default class ApplicationController extends Controller {
@service store;
@service archive;
@tracked archivedRecord = null;
@runspired
runspired / controllers.application\.js
Last active April 12, 2023 01:55
Immutable Proxy
View controllers.application\.js
import Controller from '@ember/controller';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
class Ref {
@tracked p = 0;
}
function immutable(value, tag) {
return new Proxy(value, {
View controllers.application\.js
import Controller from '@ember/controller';
import { Promise as RSVPromise } from 'rsvp';
const a = new Promise(() => {});
const b = new RSVPromise(() => {});
function isFn(val) {
return typeof value === 'function' && typeof value.nodeType !== 'number'
}
View controllers.application\.js
import Controller from '@ember/controller';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
}
View controllers.application\.js
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class ApplicationController extends Controller {
@service native;
appName = this.native.alsoNative.native.greeting;
}
View controllers.application\.js
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class ApplicationController extends Controller {
@service store;
appUser = this.store.push({
type: 'user',
id: '1',
attributes: { name: 'Ember Twiddle' }
@runspired
runspired / hyrums-law-thoburn-addendum.md
Last active March 10, 2023 00:35
Thoburn's Addendum to Hyrum's Law
View hyrums-law-thoburn-addendum.md
@runspired
runspired / github-action-example.yml
Last active March 4, 2023 02:26
Parallel Brotli Compression in a Github Actions Workflow
View github-action-example.yml
# Ubuntu machines have 2 cores, but larger runners can have a lot more
# parallel will auto use number of virtual cores
# brotli, and parallel are both available out of the box on github's ubuntu machines
jobs:
build-assets:
steps:
- uses: actions/checkout@v3
# - name: Build