Get List
git branch --list
Local & Remote List
git branch -a
| ▲ ▼ ◀ ▶ ⬡ ⬢ △ ▽ ◁ ▷ ⮝ ⮟ ⮜ ⮞ ↶ ↷ ↺ ↻ ︿ ﹀ ˄ ˅ ‹ › 〈 〉 ▴ ▾ ◂ ▸ | |
| ⭗ ⯎ ⯏ ⬖ ⬗ ⬘ ⬙ ⬚ ◇ ◆ ◈ ⋄ ⬦ ⬥ ◌ ◎ ◍ ◙ ◐ ◑ ◒ ◓ ◔ ◕ ▢ ▣ ▤ ▥ ▦ ◘ ◙ ◚ ◛ |
| /* | |
| const ubo = new Ubo([ | |
| { name:'time', type:GTYPE.f32, init:22 }, | |
| { name:'num', type:GTYPE.f32, init:100 }, | |
| { name:'vec', type:GTYPE.vec3, init:[1,2,3] }, | |
| ]); | |
| ubo.time = 999; | |
| ubo.vec = [5,6,7]; |
Find & Pick an opensource project that provides same or similar features to shopify. Learn the method of how to self host which ever solution is picked. Be it regular web hosting or some sort of docker hosting.
Some of these projects also provide a hosting service. They just setup a server with the project preconfigured & ready for use. At that point you are on your own on how use the web app, they will only handle the hosting side of things. This might be a good option as long as its a good hosting service.
| // let [clips, aSkel, aGrp] = await loadAnimations( `${url}/anim/source-animation.glb` ); | |
| // let aHelper = new THREE.SkeletonHelper( aSkel.bones[0] ); | |
| // App.scene.add( aGrp || aSkel.bones[0], aHelper ); | |
| // const mixer = new THREE.AnimationMixer( new THREE.Object3D() ); | |
| // const action = this.mixer.clipAction( clips[0], aSkel.bones[0] ); | |
| // action.play(); | |
| async function loadAnimations( url ){ | |
| const tf = await new GLTFLoader().loadAsync( url ); |
| // new HotKeys().reg( 'ctrl+s', e=>console.log( 'woot' ) ); | |
| export default class HotKeys{ | |
| items = []; | |
| constructor(){ window.addEventListener( 'keydown', this.onKeyDown ); } | |
| dispose(){ window.removeEventListener( 'keydown', this.onKeyDown ); } | |
| reg( str, fn ){ | |
| // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| import * as THREE from 'three'; | |
| export default class SkyGradientMaterial extends THREE.RawShaderMaterial { | |
| static createBox(scl = 1): THREE.Mesh { | |
| const geo = new THREE.BoxGeometry(2, 2, 2); | |
| const mesh = new THREE.Mesh(geo, new SkyGradientMaterial()); | |
| mesh.scale.setScalar(scl); | |
| return mesh; | |
| } |
| function downloadText(fName: string, txt: string) { | |
| const blob = new Blob([txt], { type: 'text/plain;charset=utf-8;' }); | |
| const url = window.URL.createObjectURL(blob); | |
| const link = document.createElement('a'); | |
| link.href = url; | |
| link.download = fName; | |
| link.target = '_blank'; | |
| // link.click(); | |
| link.dispatchEvent(new MouseEvent('click')); |