I hereby claim:
- I am sperand-io on github.
- I am sperandio (https://keybase.io/sperandio) on keybase.
- I have a public key whose fingerprint is 8306 489A 5C3D 5795 190C D8BA BBC4 D1BD 40D1 8F90
To claim this, I am signing this object:
| import * as THREE from 'three'; | |
| const camera = new THREE.PerspectiveCamera( | |
| 45, | |
| window.innerWidth / window.innerHeight, | |
| 0.1, | |
| 100 | |
| ); | |
| camera.position.set(3, 3, 5); |
| { | |
| "$schema": "http://json-schema.org/draft-07/schema#", | |
| "title": "CanonicalInvoice", | |
| "description": "Represents a standardized invoice document that captures all essential billing information, line items, and related business documents. This schema defines the complete structure for representing commercial invoices in a canonical format.", | |
| "type": "object", | |
| "$defs": { | |
| "Address": { | |
| "title": "Address", | |
| "description": "Physical location information including street address, city, state/region, postal code and country", | |
| "type": "object", |
| // https://segment.com/docs/connections/functions/destination-functions/ | |
| export const track = insertEvent | |
| export const identify = insertEvent | |
| export const page = insertEvent | |
| export const screen = insertEvent | |
| export const group = insertEvent | |
| // https://docs.rockset.com/rest-api/#patchdocuments | |
| const insertEvent = async (msg, { collection, workspace, apiKey }) => { | |
| const endpoint = `https://api.rs2.usw2.rockset.com/v1/orgs/self/ws/${workspace}/collections/${collection}/docs` |
| async function track(e, settings) { | |
| return await send(e, settings) | |
| } | |
| async function identify(e, settings) { | |
| return await send(e, settings) | |
| } | |
| async function group(e, settings) { | |
| return await send(e, settings) |
| /** | |
| * Steps to use: | |
| * 1. Create CF Worker, copy and paste this in | |
| * 2. (Optional) Update configuration defaults | |
| * - If you want to manage in code, do so below under "Static Configuration" | |
| * - If you want dynamic custom config: Create CFW KV namespace, link them, and add reference below | |
| * | |
| * - You can overwrite default path prefix for loading analytics.js (<yourdomain>/ajs) | |
| * (corresponding KV entry: `script_path_prefix`) | |
| * - You can overwrite default path prefix for handling first-party data collection (<yourdomain>/data) |
| // To get started, make sure you're using the latest version of the analytics.js snippet (4.1.0 or above) | |
| // and remove the `analytics.load("YOUR_WRITE_KEY")` call. then drop this script below the snippet. | |
| // this is a standalone script for modern browsers. if you'd like to target older browsers, include | |
| // a fetch polyfill and use that instead of window.fetch. This would require that you build and package the | |
| // script somehow (rollup, webpack, browserify, etc). You may also want to transpile it to ES5 w eg Babel. | |
| // This script is configured to make all collection opt-in (rather than opt-out) for all users. | |
| // If you want to conditionally require whether or not to block data collection before affirmative consent, use something | |
| // like inEU below and pass that function into `conditionallyLoadAnalytics`. If you want to collect data until the user |
| // adds a check (`g.auryc[fn] !== wrapper`) to prevent the recursion when auryc isn’t loaded yet | |
| // fixed the usage of `arguments` | |
| function safeInvoke(g, fn) { | |
| return function wrapper() { | |
| if (g.auryc && typeof g.auryc[fn] !== 'undefined' && g.auryc[fn] !== wrapper) { | |
| g.auryc[fn].call(this, Array.prototype.slice.call(arguments, 0)); | |
| } | |
| else { | |
| g.aurycReadyCb.push(function () { |
| // on page with the payment/login button that they leave from | |
| var link = document.getElementById('paymentOrLoginLinkElementID') | |
| var href = link.getAttribute('href'); | |
| link.addEventListener('click', function(event){ | |
| // before progressing to the link, save the referrer | |
| event.preventDefault(); | |
| sessionStorage.setItem('ctxReferrer', document.referrer); | |
| window.location.href = href; | |
| }); |
I hereby claim:
To claim this, I am signing this object:
| <script> | |
| !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.1.0"; | |
| // add this line below | |
| window.heap = window.heap || |