Skip to content

Instantly share code, notes, and snippets.

@f5io
f5io / core.js
Last active September 7, 2023 18:38
An approach to async middleware for raw `http` in Node.
const http = require('http');
const methods = [ 'get', 'put', 'post', 'delete', 'head' ];
const isStream = obj =>
obj &&
typeof obj === 'object' &&
typeof obj.pipe === 'function';
const isReadable = obj =>
@f5io
f5io / matrix3d.js
Last active June 2, 2023 11:27
Matrix3D implementation using Typed Arrays
(function(w) {
var Matrix3D = {};
Matrix3D._deg2rad = function(deg) {
return deg * (Math.PI / 180);
};
Matrix3D.create = function() {
var out, args = Array.prototype.slice.call(arguments);
@f5io
f5io / README.md
Created January 3, 2020 13:54
qjs vs qjsc

Currently experiencing issues with qjsc.

With qjs index.js, I receive the expected output:

$ qjs index.js
🎾  Ball hit 1 time(s), wiff!
🎾  Ball hit 2 time(s), waff!
🎾  Ball hit 3 time(s), wiff!
🎾  Ball hit 4 time(s), waff!
extern crate actix;
extern crate actix_web;
extern crate bytes;
extern crate derive_more;
extern crate futures;
extern crate flatbuffers;
use derive_more::Display;
use flatbuffers::{get_root, Follow, Table};
use bytes::{BytesMut};
require 'formula'
class Ab < Formula
homepage 'http://httpd.apache.org/docs/trunk/programs/ab.html'
url 'http://www.apache.org/dist/httpd/httpd-2.4.23.tar.bz2'
sha1 '5101be34ac4a509b245adb70a56690a84fcc4e7f'
def patches
{
# The ab tool of the latest stable httpd (2.4.2) does not work
@f5io
f5io / ab.rb
Last active August 30, 2016 11:53
require 'formula'
class Ab < Formula
homepage 'http://httpd.apache.org/docs/trunk/programs/ab.html'
url 'http://www.apache.org/dist/httpd/httpd-2.4.23.tar.bz2'
sha1 '5101be34ac4a509b245adb70a56690a84fcc4e7f'
def patches
{
# The ab tool of the latest stable httpd (2.4.2) does not work
const memoize = (fn) => {
const cache = new Map();
const memo = (...a) => {
const key = a.reduce((hash, val) =>
hash += val === Object(val) ?
JSON.stringify(val) :
val, '');
if (!cache.has(key)) cache.set(key, fn(...a));
return cache.get(key);
}
const zip = (arr, length = 2) =>
Array.from({ length }, (_, i) =>
arr.filter((_, j) =>
j % length === i));
@f5io
f5io / widowmaker.js
Created January 3, 2014 11:07
Trollololololololololol
(function(d) {
var tags = 'h1 h2 h3 h4 h5 h6 p div'.split(' ');
var elems = [];
for (var t in tags) {
elems = elems.concat(Array.prototype.slice.call(d.getElementsByTagName(tags[t])));
}
for (var e in elems) {
@f5io
f5io / angular-placeholder.js
Created November 1, 2013 12:35
AngularJS placeholder shiv directive.
angular.module('namespace.directives', []).directive('placeholder', ['$timeout', function($timeout) {
var i = document.createElement('input'),
support = ('placeholder' in i);
if (support) return {};
return {
restrict: 'A',
link: function(scope, elm, attrs) {
if (attrs.type === 'password') {
return;
}