Skip to content

Instantly share code, notes, and snippets.

@renesugar
renesugar / arraybuffer.transfer.js
Created May 11, 2021 03:16 — forked from nphyx/arraybuffer.transfer.js
A polyfill for ArrayBuffer.prototype.transfer that is substantially faster than a naive byte-by-byte transfer implementation.
if(typeof(ArrayBuffer.prototype.transfer) === "undefined") {
ArrayBuffer.prototype.transfer = function transfer(old) {
var dva, dvb, i, mod;
dva = new DataView(this);
dvb = new DataView(old);
mod = this.byteLength%8+1;
for(i = 0; i <= old.byteLength-mod; i+=8) dva.setFloat64(i, dvb.getFloat64(i));
mod = this.byteLength%4+1;
if(i < old.byteLength-mod) {
dva.setUint32(i, dvb.getUint32(i));
function memcpy (src, srcOffset, dst, dstOffset, length) {
var i
src = src.subarray || src.slice ? src : src.buffer
dst = dst.subarray || dst.slice ? dst : dst.buffer
src = srcOffset ? src.subarray ?
src.subarray(srcOffset, length && srcOffset + length) :
src.slice(srcOffset, length && srcOffset + length) : src
@renesugar
renesugar / utf8.js
Created May 10, 2021 22:42 — forked from pascaldekloe/utf8.js
JavaScript UTF-8 encoding and decoding with TypedArray
// This is free and unencumbered software released into the public domain.
// Marshals a string to an Uint8Array.
function encodeUTF8(s) {
var i = 0, bytes = new Uint8Array(s.length * 4);
for (var ci = 0; ci != s.length; ci++) {
var c = s.charCodeAt(ci);
if (c < 128) {
bytes[i++] = c;
continue;
@renesugar
renesugar / index.js
Created May 9, 2021 02:20 — forked from max-mapper/index.js
fast loading of a large dataset into leveldb
// data comes from here http://stat-computing.org/dataexpo/2009/the-data.html
// download 1994.csv.bz2 and unpack by running: cat 1994.csv.bz2 | bzip2 -d > 1994.csv
// 1994.csv should be ~5.2 million lines and 500MB
// importing all rows into leveldb took ~50 seconds on my machine
// there are two main techniques at work here:
// 1: never create JS objects, leave the data as binary the entire time (binary-split does this)
// 2: group lines into 16 MB batches, to take advantage of leveldbs batch API (byte-stream does this)
var level = require('level')
@renesugar
renesugar / sqlite-kv-restful.py
Created April 23, 2021 00:14 — forked from rmax/sqlite-kv-restful.py
Simple SQLite-backed key-value storage Rest API. Built with Flask & flask-restful.
import os
import sqlite3
from hashlib import md5
from time import time
import simplejson as json
from flask import Flask
from flask.ext import restful
from flask import g
from flask import request
@renesugar
renesugar / rope.cpp
Created February 15, 2021 19:35 — forked from dermesser/rope.cpp
A simple rope implementation in C++ – should work well enough.
// Licensed under MIT license.
// (c) Lewin Bormann 2014
# include <string>
# include <iostream>
# include <list>
# include <cstring>
# include <algorithm>
using std::string;
@renesugar
renesugar / fork forced sync
Created November 5, 2020 15:34 — forked from glennblock/fork forced sync
Force your forked repo to be the same as upstream.
git fetch upstream
git reset --hard upstream/master
@renesugar
renesugar / Jsc.java
Created October 30, 2020 22:22 — forked from thomd/Jsc.java
compile javascript to java bytecode
import org.mozilla.javascript.tools.jsc.Main;
class Jsc {
public static void main(String args[]){
Main.main(args);
}
}
@renesugar
renesugar / .gitignore
Created June 2, 2020 01:22 — forked from asford/.gitignore
pybind11 ostream example
# Created by https://www.gitignore.io/api/c++,cmake
### C++ ###
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
@renesugar
renesugar / recentServersSFL.py
Created May 13, 2020 18:48 — forked from pudquick/recentServersSFL.py
Working with SharedFileList (.sfl) files from OSX 10.11 El Capitan in python
from Foundation import NSKeyedUnarchiver
from struct import unpack
# This entire function is black magic of the highest order and I'll blog about it later
def extract_share(bookmark_data):
content_offset, = unpack('I', bookmark_data[12:16])
first_TOC, = unpack('I', bookmark_data[content_offset:content_offset+4])
first_TOC += content_offset
TOC_len, rec_type, level, next_TOC, record_count = unpack('IIIII', bookmark_data[first_TOC:first_TOC+20])
TOC_cursor = first_TOC + 20