Skip to content

Instantly share code, notes, and snippets.

@andrewjjenkins
andrewjjenkins / simpleLog.js
Last active August 29, 2015 13:55
A really simple javascript module to log
var log = (function () {
"use strict";
var format = require('util').format;
// Customize levels, but do not name any level: "log" "getLevel" "setLevel"
var levels = { ERROR: 10, WARN: 20, INFO: 30, DEBUG: 40, TRACE: 50 };
var currentLevel = 'INFO';
function doGetLevel() { return currentLevel; }
function doSetLevel(level) {
@andrewjjenkins
andrewjjenkins / child1.js
Created April 9, 2014 21:21
maliciousChild
var secretKey = 'foo';
setInterval(function () {
secretKey = secretKey + 'bar';
console.log('My secret key is ' + secretKey);
}, 1000);
@andrewjjenkins
andrewjjenkins / rpi-node.sh
Last active August 10, 2021 15:32
Cross-compile node.js for Raspberry Pi
#!/usr/bin/env bash
# Based on https://github.com/needforspeed/Nodejs-ARM-builder/blob/master/cross-compiler.sh
# but updated to use the cross-compiling tools that Raspberry Pi recommends for the kernel.
# Only works for ARMv6.
# AJJ: Released into the public domain.
set -e
@andrewjjenkins
andrewjjenkins / timerdebug.js
Last active March 11, 2022 14:13
Ways to hack setTimeout and setInterval to help debug lingering timers.
(function () {
var oldSetTimeout = GLOBAL.setTimeout;
GLOBAL.setTimeout = function () {
var e = new Error('Just for stack trace');
console.log('New timeout registered from %s', e.stack);
return oldSetTimeout.apply(this, arguments);
};
var oldSetInterval = GLOBAL.setInterval;
GLOBAL.setInterval = function () {
var e = new Error('Just for stack trace');
@andrewjjenkins
andrewjjenkins / infiniteClient.js
Last active August 29, 2015 14:18
HTTP client that POSTs arbitrarily large bodies.
var fs = require('fs');
var reqSize = process.env.REQSIZE || ('' + 1024*1024*1024);
reqSize = parseInt(reqSize);
var genericBlob = (new Array(10240 + 1)).join('0123456789');
//Client part.
function runClient() {
@andrewjjenkins
andrewjjenkins / infiniteServer.js
Last active August 29, 2015 14:18
Infinite HTTPS server
var https = require('https');
var cluster = require('cluster');
var fs = require('fs');
var url = require('url');
var core2Dir = process.env.CORE2DIR || '/build/cayman/andrew/lrs_release/core2';
var port = process.env.PORT || 443;
var numCPUs = process.env.NUMCPUS || ('' + (require('os').cpus().length - 1));
numCPUs = parseInt(numCPUs);
var reqSize = process.env.REQSIZE || ('' + 1024*1024*1024);
@andrewjjenkins
andrewjjenkins / eof.c
Last active August 29, 2015 14:24
EOF is level triggered for read and for kevent
#include <stdio.h>
#include <strings.h>
#include <assert.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/event.h>
#include <sys/time.h>
#include <sys/socket.h>
@andrewjjenkins
andrewjjenkins / Dockerfile.minikube
Created January 23, 2018 21:28
Istio-Minikube and Jenkins
# Portions Copyright 2016 The Kubernetes Authors All rights reserved.
# Portions Copyright 2018 AspenMesh
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
@andrewjjenkins
andrewjjenkins / dynamo-egress.yaml
Last active March 22, 2018 21:32
Talk to dynamo from Istio mesh
apiVersion: config.istio.io/v1alpha2
kind: EgressRule
metadata:
name: aws-dynamo-us-west-2-egress
namespace: default
spec:
destination:
service: dynamodb.us-west-2.amazonaws.com
ports:
- port: 443
@andrewjjenkins
andrewjjenkins / gist:265fee1f342e8331152625c3712b47d0
Created November 2, 2018 15:40
/clusters for productpage talking to details
outbound|9080||details.default.svc.cluster.local::default_priority::max_connections::1024
outbound|9080||details.default.svc.cluster.local::default_priority::max_pending_requests::1024
outbound|9080||details.default.svc.cluster.local::default_priority::max_requests::1024
outbound|9080||details.default.svc.cluster.local::default_priority::max_retries::3
outbound|9080||details.default.svc.cluster.local::high_priority::max_connections::1024
outbound|9080||details.default.svc.cluster.local::high_priority::max_pending_requests::1024
outbound|9080||details.default.svc.cluster.local::high_priority::max_requests::1024
outbound|9080||details.default.svc.cluster.local::high_priority::max_retries::3
outbound|9080||details.default.svc.cluster.local::added_via_api::true