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 / 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 / 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 / dtdotool.sh
Last active December 27, 2020 08:04
Used in Ubuntu 18.04 to manipulate desktops as atomic elements of an array, e.g., swapping element order, inserting and deleting empty elements.
#!/bin/bash
# Copyright (c) 2019, Craig P Hicks
# content licensed as CC BY-NC-SA
# CC BY-NC-SA details at https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
# This program depends upon 'xdotool' installed as Ubuntu 18.04 managed package
# xdotool project source can be found at:
# https://github.com/jordansissel/xdotool
# https://www.semicomplete.com/projects/xdotool/
@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})}`);
#!/bin/bash
# copyright craigphicks 2020 - free to use with due attribution
confirm_args(){
logger -t "confirm_args" -- "#=${#}"
for index in `seq 0 ${#}` ; do
eval item=\$$index
logger -t "confirm_args" -- "[$index] ${item}"
done
}