Skip to content

Instantly share code, notes, and snippets.

@craigphicks
craigphicks / setup-aws-linux-for-gpu.sh
Created August 17, 2024 10:04
Setup an AWS Linux AMI with NVIDIA-Linux-x86_64 drivers and nvidia-container-toolkit
#!/bin/bash
set -e
# Step-by-Step Installation Guide
# Step 0: Remove existing NVIDIA drivers and CUDA installations
sudo yum erase -y nvidia cuda
# Step 1: Update the system and install dependencies
@craigphicks
craigphicks / lerna-serial.ts
Created January 6, 2022 02:06
Workaround for lerna run bug (not calling in topological order).
Lerna issue [ Lerna does not run scripts according to topological order #2731 ](https://github.com/lerna/lerna/issues/2731)
reports the bug, but issue was closed although not resolved.
Strangely, I didn't **notice** any problem until adding new scopes in the project.
But now I have the same bug.
I threw up something quick to get builds working again, and posted it here.
It's a near replacement but uses regexp instead of globbing.
### Keybase proof
I hereby claim:
* I am craigphicks on github.
* I am craigphicks (https://keybase.io/craigphicks) on keybase.
* I have a public key ASC8QGnm0y40XjjMeoQiia7-7ESqROa6XhlL-g9in4RUPQo
To claim this, I am signing this object:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
"type": {
"info": "this is a ts.Type with id=86",
"flags": [
"Union"
],
"objectFlags": [
"PrimitiveUnion"
]
@craigphicks
craigphicks / commonjs-index.js
Created July 26, 2021 06:52
comparison of index.js produced with module:CommonJs vs. module:es2020 under yamato_daiwa-es_extensions
(() => {
"use strict";
var e, t = {
5272: (e, t) => {
Object.defineProperty(t, "__esModule", {
value: !0
}), t.default = function(e, t) {
for (const [a, n] of e.entries())
if (t(n)) return a;
return null
@craigphicks
craigphicks / custom-tsc.ts
Last active January 6, 2021 13:21
Typescript - How to compile only one (or more) files from a project using all the project settings from the tsconfig file(s)
import * as ts from 'typescript';
import * as fs from 'fs';
import * as path from 'path';
import * as cp from 'child_process';
import * as dm from '../src-ts/deep-merge-objects';
function compile(fileNames: string[], options: ts.CompilerOptions): void {
const program = ts.createProgram(fileNames, options);
const emitResult = program.emit();
const allDiagnostics = ts
@craigphicks
craigphicks / cli.js
Last active November 21, 2020 04:36
js server-client pair - echo text enter into client terminal
var net = require('net');
var jsesc = require('jsesc');
var ctrlC=false;
//var qwrite=[];
async function Socketing(sock){
return await new Promise((res,rej)=>{
// Event: 'data'
sock.on('data', (d) => {
console.log(`sock data: ${jsesc(Buffer.from(d).toString(),{es6:true})}`);
@craigphicks
craigphicks / chromium-bug-report-X11-wrong-auth.md
Last active January 10, 2022 01:04
chromium bug report: "X11 connection rejected because of wrong authentication."

Chrome Version : Chromium 83.0.4103.116 snap Other browsers tested: Add OK or FAIL, along with the version, after other browsers where you have tested this issue:

Firefox: OK, "Mozilla Firefox 78.0.1" Chromium (non-span): OK, "Chromium 83.0.4103.61 Built on Ubuntu , running on Ubuntu 18.04"

What steps will reproduce the problem?

@craigphicks
craigphicks / openssh-descrption-of-X11-forwarding.md
Created July 7, 2020 22:11
openssh descrption of X11 forwarding

https://www.openssh.com/features.html

X11 forwarding (which also encrypts X Window System traffic)

X11 forwarding allows the encryption of remote X windows traffic, so that nobody can snoop on your remote xterms or insert malicious commands. The program automatically sets DISPLAY on the server machine, and forwards any X11 connections over the secure channel. Fake Xauthority information is automatically generated and forwarded to the remote machine; the local client automatically examines incoming X11 connections and replaces the fake authorization

async function readStreamToEnd(rstream){
rstream.resume();
let prom=new Promise((resolve,reject)=>{
var buf = Buffer('');
rstream.on('data', function(newbuf) { buf=Buffer.concat([buf,newbuf]); });
rstream.on('end', function() { resolve(buf.toString()); });
rstream.on('error', function(e) { reject(e); });
});
return await prom;
}