Following instructions from the excellent https://www.rinkeby.io/
A full node lets you access all state. There is a light node (state-on-demand) and wallet-only (no state) instructions as well,
import mobx from "mobx" | |
import store from "store" | |
export default function(_this) { | |
let firstRun = true | |
// will run on change | |
mobx.autorun(() => { | |
// on load check if there's an existing store on localStorage and extend the store | |
if (firstRun) { |
var cameraZ = camera.position.z; | |
var planeZ = 5; | |
var distance = cameraZ - planeZ; | |
var aspect = viewWidth / viewHeight; | |
var vFov = camera.fov * Math.PI / 180; | |
var planeHeightAtDistance = 2 * Math.tan(vFov / 2) * distance; | |
var planeWidthAtDistance = planeHeightAtDistance * aspect; | |
// or |
Following instructions from the excellent https://www.rinkeby.io/
A full node lets you access all state. There is a light node (state-on-demand) and wallet-only (no state) instructions as well,
#!/usr/bin/env bash | |
usage() { | |
echo "$(basename $0) VM" | |
} | |
get_vm_id() { | |
qm list | awk '/'"${1}"'/ { print $1 }' | |
} |
package main | |
import ( | |
"fmt" | |
"os" | |
"errors" | |
"path/filepath" | |
"context" | |
"bytes" |
chain: ropsten | |
# Use automated Chrome to verify all contracts on etherscan.io | |
# You need to install Splinter package: | |
# pip install splinter | |
verify_on_etherscan: no | |
browser_driver: chrome | |
contracts: |
Converting a canvas animation to a video with the MediaRecorder API.
Say we have a prop.users of the shape:
const users = [
{username: 'bob', age: 30, tags: [{name: 'work', id: 1}, {name: 'boring', id: 2}]},
{username: 'jim', age: 25, tags: [{name: 'home', id: 3}, {name: 'fun', id: 4}]},
{username: 'jane', age: 30, tags: [{name: 'vacation', id: 5}, {name: 'fun', id: 4}]}
];
/** | |
* @author qiao / https://github.com/qiao | |
* @author mrdoob / http://mrdoob.com | |
* @author alteredq / http://alteredqualia.com/ | |
* @author WestLangley / http://github.com/WestLangley | |
* @author erich666 / http://erichaines.com | |
*/ | |
// This set of controls performs orbiting, dollying (zooming), and panning. | |
// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). |
{ | |
"presets": ["@babel/preset-typescript", "next/babel"], | |
} | |
/* tslint:disable */ | |
const withCss = require("@zeit/next-css"); | |
const withSass = require("@zeit/next-sass"); | |
const withTypescript = require("@zeit/next-typescript"); | |
const withSourceMaps = require("@zeit/next-source-maps"); |