Skip to content

Instantly share code, notes, and snippets.

@menduz
menduz / sphere-normals.hlsl
Created May 30, 2020 13:15
Spherical normal encoding
// Encoding:
normalOut=normalize(normalIn.xy)*sqrt(normalIn.z*0.5+0.5);
// Decoding:
normal.z=length2(normalOut.xy)*2- 1;
normal.xy=normalize(normalOut.xy)*sqrt(1- normal.z*normal.z);
@menduz
menduz / db.ts
Last active April 14, 2021 13:25
database ts
// USAGE:
async function getUser(userId: string): Promise<User> {
return getSqlClient(async (SQL, poolClient) => {
// await poolClient.query()
const result = await SQL`SELECT * FROM users WHERE user_id = ${userId}`
return result.rows[0]
})
}
@menduz
menduz / game.ts
Last active February 3, 2021 14:04
loading kernel modules from Decentraland's SDK scene
executeTask(async () => {
const module = await dcl.loadModule('@decentraland/CommunicationsController')
const rpcResult = await dcl.callRpc(module.rpcHandle, 'send' /* remote method */, [message /* argument list */])
/**
The code avobe is the same as:
import {send} from "@decentraland/CommunicationsController"
@menduz
menduz / readme.md
Last active January 22, 2021 15:23
Unified NFT naming for blockchain based Metaverses

A common way to refer to assets across the metaverse projects

Identifying a blockchain asset is difficult. Wallets, exchanges, tools and other pieces of software need to know the specifics about how to interact with the project's infrastructure to get images or to render content. This proposal shows a temptative solution to the content addressing mechanisms to embed our crypto-art, assets, wearables and avatars into metaverse(s).

URN

@menduz
menduz / index.sh
Created October 6, 2020 12:37
Lock pan mac
# install dependencies
brew install pam_yubico
if sc_auth identities | grep PIV --quiet
then
# run lock with sudo
sudo bash ./lockpan-1.sh
else
@menduz
menduz / url-parser.ts
Last active January 5, 2021 16:03
url-parser-types.ts
/**
* Creates object types compliant with https://github.com/pillarjs/path-to-regexp
*
* ParseUrlParams<"/users/:user_id/:test+"> = { user_id: string, test: string | string[] }
*
* @public
*/
export type ParseUrlParams<State extends string, Memo extends Record<string, any> = {}> = string extends State
? ParseUrlParams.ParserError<"ParseUrlParams got generic string type">
: State extends `${infer _}:${infer Rest}`
@menduz
menduz / dataview-polyfill.js
Created October 6, 2020 01:46 — forked from tjmehta/dataview-polyfill.js
DataView (and ArrayBuffer) polyfill that works in any engine (including old IE).
void function(global){
if ('DataView' in global && 'ArrayBuffer' in global) {
return;
}
var hide = (function(){
// check if we're in ES5
if (typeof Object.getOwnPropertyNames === 'function' && !('prototype' in Object.getOwnPropertyNames)) {
var hidden = { enumerable: false };
#include <eternity.hpp>
ScriptSystem::ScriptSystem() {
m_platform = 0;
m_isolate = 0;
m_scriptableCount = 0;
m_scriptablePoolSize = 0;
m_scriptables = 0;
}
Script::Script() {
}
Script::~Script() {
}
void Script::Initialize(char* src) {
v8::Isolate* isolate = v8::Isolate::GetCurrent();
@menduz
menduz / mental-models.md
Created August 18, 2020 14:35
Mental models
  • Confirmation bias: a pattern that causes one to notice or look for things that confirm one's beliefs rather that counter-evidence.

  • Loss aversion: Loss aversion refers to people's tendency to prefer avoiding losses to acquiring equivalent gains: it is better to not lose $5 than to find $5. The principle is very prominent in the domain of economics. What distinguishes loss aversion from risk aversion is that the utility of a monetary payoff depends on what was previously experienced or was expected to happen. Some studies have suggested that losses are twice as powerful, psychologically, as gains.

  • Intuition:  Personal experience coded into your personal neural network, which means your