Skip to content

Instantly share code, notes, and snippets.

@craigphicks
craigphicks / script.py
Last active March 26, 2019 23:00
python3 Script to create instance of LDX container with debian stretch from linuxcontainers and configure it up to ssh-login-ability
#!/usr/bin/env python3
import argparse
import textwrap
import subprocess
import os
import datetime
#import pdb
#import random
import time
@craigphicks
craigphicks / howto-ssh-pipe.md
Last active April 6, 2019 02:49
Set up an ssh pipe

Setting up a pipes between A and B

A to B (setup on A)

From A, set up a pipe for sending data from A to B

a@A: ssh -v -N -L 2223:127.0.0.1:2222 b@B

To test it, first open a listener on B

@craigphicks
craigphicks / setup-openwrt-rpi3bplus-and-nftables.md
Last active April 24, 2019 19:09
Setting up openwrt to run on Paspberry Pi 3 B+ - and replacing `iptables` with `nftables`
@craigphicks
craigphicks / OpenWrt-Package-Downloader.py
Last active April 25, 2019 21:57 — forked from lanceliao/OpenWrt-Package-Downloader.py
Cache all packages from OpenWrt trunk repository
#!/usr/bin/env python2
#coding=utf-8
#
# Openwrt Package Grabber
#
# Copyright (C) 2014 http://www.shuyz.com
# modified 2019 craigphicks
#
import urllib2
#!/bin/bash
#
#
#<UDF name="ssuser" Label="Sudo user username?" example="username" />
#<UDF name="sspassword" Label="Sudo user password?" example="strongPassword" />
#<UDF name="sspubkey" Label="SSH pubkey (installed for root and sudo user)?" example="ssh-rsa ..." />
# initial needfuls
apt-get -o Acquire::ForceIPv4=true update
@craigphicks
craigphicks / X11-over-ssh-without-xauth.md
Created July 6, 2019 19:01
Forwarding `X11` over `ssh` without using `xauth`

Forwarding X11 over ssh without using xauth

  • local -- the local machine serving an Xserver.
  • remote -- the remote machine serving the application which drives the data going to the Xserver

Remote /etc/ssh/sshd_config:

X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
@craigphicks
craigphicks / setTimeout-args-bind-scope.md
Created July 10, 2019 21:12
testing javascript setTimeout args, bind, scope.
x=10;
function test(){
  var x=20;
  var obj = {x:30};
  function logargs(t,arg1,arg2,arg3,arg4) { 
    console.log(`(${t}) this.x=${this.x},x=${x},obj.x=${obj.x},${arg1},${arg2},${arg3},${arg4.x}`); 
  }
  logargs("A",this.x,x,obj.x,obj);
 setTimeout(logargs,0,"B",this.x,x,obj.x,obj);
@craigphicks
craigphicks / extending-error.js
Last active August 12, 2019 23:46
How to extend error when prepending a message to an existing error which may or may not be instance of Error
function showDeep(t){
let o=t
do {
console.log(`--- ${o.constructor.name}`)
for (let k of Reflect.ownKeys(o)) {
let d = Reflect.getOwnPropertyDescriptor(o,k)
if (JSON.stringify(d.value)!==undefined) {
console.log(`${k} : ${JSON.stringify(d.value)}`)
if (k==='stack')
console.log("") // funky
@craigphicks
craigphicks / README.md
Last active August 16, 2019 22:52
Create a non-singleton class from a singleton - yargs

A singleton makes sense when it prevent multiple access to a resource than must not be accessed in that way. But sometimes a singleton design is used because it is sufficient for expected usage. But that may block expanded usage unecessarily.

ES6 dynamic import can import a singelton module into a closure allowing a singleton to become a non-singleton class. See the file yargs-class.mjs below.

The result of test-yargs0class.mjs -

argv[0]= {
@craigphicks
craigphicks / makeNonCryptoRandomAlphaNumString.js
Created September 14, 2019 18:26
A non-crypto js function for creating random alphanum strings - no dependencies
function makeNonCryptoRandomAlphaNumString(length) {
function tf(n) {
if (n < 26) return 65 + n
else if (n < 52) return 97 + n - 26
else return 48 + n - 52
}
var result = ''
for (var i = 0; i < length; i++) {
let idx = Math.floor(Math.random() * 62)
result += String.fromCharCode(tf(idx))