Skip to content

Instantly share code, notes, and snippets.

View tracker1's full-sized avatar

Michael J. Ryan tracker1

View GitHub Profile
@tracker1
tracker1 / 01-directory-structure.md
Last active May 4, 2024 19:55
Anatomy of a JavaScript/Node project.

Directory structure for JavaScript/Node Projects

While the following structure is not an absolute requirement or enforced by the tools, it is a recommendation based on what the JavaScript and in particular Node community at large have been following by convention.

Beyond a suggested structure, no tooling recommendations, or sub-module structure is outlined here.

Directories

  • lib/ is intended for code that can run as-is
  • src/ is intended for code that needs to be manipulated before it can be used
@tracker1
tracker1 / Password References.md
Created April 19, 2021 23:00 — forked from technion/Password References.md
A set of references on modern password policies

References on modern password policies

Below links provide source, reference link and relevant quote

Standards

NIST

https://github.com/usnistgov/800-63-3/blob/nist-pages/sp800-63b/sec5_authenticators.md

Verifiers SHOULD NOT impose other composition rules (e.g., requiring mixtures of different character types or prohibiting consecutively repeated characters) for memorized secrets. Verifiers SHOULD NOT require memorized secrets to be changed arbitrarily (e.g., periodically).However, verifiers SHALL force a change if there is evidence of compromise of the authenticator.

Major organisations

@tracker1
tracker1 / settings.json
Created June 21, 2023 23:22
Synchronet VS Code Settings
{
"editor.rulers": [76, 80],
"editor.formatOnSave": true,
"editor.tabSize": 2,
"files.associations": {
"*.ssjs": "javascript",
"*.msg": "plaintext",
"*.ans": "plaintext",
"*.asc": "plaintext",
"*.rip": "plaintext",
@tracker1
tracker1 / terminal_info.rs
Created March 17, 2023 14:41
Terminal Information
use std::io::{self, Read, Write};
use std::net::TcpStream;
fn get_remote_terminal_info(stream: &mut TcpStream) -> io::Result<(u16, u16, bool, bool, bool)> {
// Send the control code to query the size of the terminal
write!(stream, "\x1b[18t")?;
stream.flush()?;
// Read the response from the terminal
let mut buf = [0u8; 32];
let n = stream.read(&mut buf)?;
@tracker1
tracker1 / docker-compose.yml
Created July 7, 2022 21:51
Docker PiHole + Wireguard + Caddy Proxy
# after starting (docker-compose up -d)
# run docker-compose logs wireguard to view the qr-code for wireguard clients
version: "2.2"
# network required to specify ip for services
networks:
vpnet:
driver: bridge
ipam:
config:
@tracker1
tracker1 / load-component-import.js
Created May 6, 2020 15:06
Code Splitting via lazy import with React
/*
/feature/load-component-import.js
This is used by any async loading areas of the application
import load from '../load-component-import.js';
const FooComponentAsync = load(() => import('./FooComponent'))';
*/
import React, { Suspense } from 'react';
@tracker1
tracker1 / future.js
Last active December 30, 2021 08:12
Node Promise + EventEmitter
module.exports = () => {
// break resolve and reject out of a promise
let resolve, reject;
const promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
// return as a future
return {
@tracker1
tracker1 / logging.ts
Created August 18, 2021 02:05
TypeScript Standard Loggerr
import fclone from "fclone";
export enum LogLevel {
Fatal = -1,
Error = 0,
Warn = 1,
Info = 2,
Debug = 3,
Trace = 4,
}
# RoughneckBBS Compose File
version: "3.3"
services:
sbbs:
container_name: sbbs
image: bbsio/synchronet:nightly-20210314
restart: always
command: bash -c "sbbs-init && /sbbs/exec/sbbs w- s- m- f-"
volumes:
- $PWD/ctrl:/sbbs/ctrl
@tracker1
tracker1 / hash-passphrase.js
Created September 1, 2020 20:53
Passphrase Hashing
import util from 'util';
import crypto from 'crypto';
const HASH_ALGO = 'sha512';
// nist recommends 10000, 10x nist, approx 83ms on i7-8650U
const HASH_ITERATIONS = 100000;
const HASH_SALT_BYTES = 16; // Exceeds NIST Minimum 32/8 (4 bytes)
const HASH_BYTES = 64; // Match Hash Algorithm lengh / bits (512 / 8);