Skip to content

Instantly share code, notes, and snippets.

View stagas's full-sized avatar
🤸

stagas stagas

🤸
View GitHub Profile
@stagas
stagas / design-web-lang.md
Last active August 11, 2023 07:27
Design draft for a high-level Web language.

Design draft for a high-level Web language.

  • Good editor support.
  • Good package management and distribution channels.
  • Good interfaces.
    • All modern goodies - Pattern matching, Tuple/Records, ?
    • First-class Reactive interfaces.
    • JSX (or any style XML-in-lang, first-class)
  • Good interoperability.
  • Quick to compile.
@stagas
stagas / TestFboChangeBuffer.cpp
Created September 11, 2020 15:48 — forked from roxlu/TestFboChangeBuffer.cpp
Comparing the performance of different ping/pong techniques when using FBOs. One version uses two fbos and swaps between these, the other switches the draw and read buffer. See these results https://docs.google.com/spreadsheets/d/1ZyTQGkjYQajQtu8OvgRyaXJl46F4rZJStBCEK2kebgE/edit?usp=sharing for a comparison. It seems that switching read / draw b…
#include <poly/Log.h>
#include <TestFboChangeBuffer.h>
using namespace poly;
TestFboChangeBuffer::TestFboChangeBuffer()
:fbo(0)
,dx(0)
{
tex[0] = 0;
Potentially unhandled rejection [3] TypeError: Error loading "index" at http://localhost:8080/index.js
Error loading "index" from "test.js" at http://localhost:8080/test/test.js
Cannot read property 'name' of null
at l (http://localhost:8080/test/vendor/es6-module-loader.js:7:16462)
at j (http://localhost:8080/test/vendor/es6-module-loader.js:7:16047)
at k (http://localhost:8080/test/vendor/es6-module-loader.js:7:16389)
at http://localhost:8080/test/vendor/es6-module-loader.js:7:14764
at O (http://localhost:8080/test/vendor/es6-module-loader.js:7:7453)
at K (http://localhost:8080/test/vendor/es6-module-loader.js:7:7085)
at y.7.y.when (http://localhost:8080/test/vendor/es6-module-loader.js:7:10759)
@stagas
stagas / reexport.js
Created January 13, 2013 15:54
example passing deps around with exports.
// common.js
exports.app = require('./app')
exports.db = require('./db')
// app.js
var common = require('./common')
var db = common.db
var app = module.exports = express()
var n = +(process.argv[2] || 10000)
var cp = require('child_process')
var child = cp.fork(__dirname + '/worker.js')
console.log('trying', n, 'messages')
var total = n
child.on('message', function () {
if (!--total) console.log('completed %d roundtrips', n - total)
@stagas
stagas / a.js
Created March 17, 2012 11:57
test for global leak
module.exports = foo = 'hello'
@stagas
stagas / protocol.js
Created December 31, 2011 11:41
Thinking about a human-readable multi-line pubsub api for irc bots...
var EventEmitter = require('events').EventEmitter,
util = require('util');
// TODO:
// * tags (BEGIN somehashhere\nsomehashhere data)
// * line numbers (begin somehash\nsomehash:12 data)
var Buffer = exports.Buffer = function (o) {
o = o || {};
@stagas
stagas / nextTick-for-browser.js
Created September 18, 2011 18:59
nextTick implementation for the browser
// nextTick - by stagas / public domain
var nextTick = (function () {
var queue = [];
var dirty = false;
var fn;
var hasPostMessage = !!window.postMessage;
var messageName = 'nexttick';
var trigger = (function () {
return hasPostMessage
? function trigger () {
@stagas
stagas / memoizenchaos.js
Created August 23, 2011 10:52
recursive memoize
var express = require('express')
, memoize = require('memoize')
, cache = require('chaos')('cache')
, Beatport = require('beatport')
memoize.set('debug', true)
var bp = memoize('beatport-mem', memoize('beatport', Beatport({ perPage: 10, sortBy: 'releaseDate desc' }), {
expire: 1000 * 60 * 60 * 24
, store: cache
@stagas
stagas / prompt.js
Created August 7, 2011 08:14
prompt
var readline = require('readline')
, rl = readline.createInterface(process.stdin, process.stdout)
function prompt (str, cb) {
rl.setPrompt(str)
rl.prompt()
rl.once('line', cb)
}
prompt('> ', function (str) {