Skip to content

Instantly share code, notes, and snippets.

View ORESoftware's full-sized avatar
🏐
Focusing

Alexander Mills ORESoftware

🏐
Focusing
View GitHub Profile
@ORESoftware
ORESoftware / cleanup.md
Last active January 7, 2023 06:47
Cleanup docker artifacts/items

Clean up docker images/containers/volumes/networks

#!/usr/bin/env bash


set +e;
@ORESoftware
ORESoftware / rw.md
Last active January 28, 2019 07:26
Readers-writer lock for payment processing

No official CS education but I learned about readers-writer locks after implementing a mutex library. I happened to come across a real-world use case that I would need this for.

Say we have many people signing up to take a class, their payment (through Stripe, or whatever) might be in flight. And imagine the teacher cancels the class, which would trigger a refund event.

Without proper locking, the refund might fail to execute for those students whose payments are in flight at the time of the class cancelation.

@ORESoftware
ORESoftware / domain.md
Created December 16, 2018 21:19
Simple use cases for Node.js domain module

First run this code:

const exec = () => {
   setTimeout(() => {
      throw 'nothing can catch this, except domains';
   },10);
};
@ORESoftware
ORESoftware / stringifiable.ts
Last active July 8, 2018 22:48
stringifiable type with TS
export type Stringifiable = object | string | boolean | number | null;
export const stdMarker = 'gfy';
export const getJSONCanonical = function (v: Stringifiable, marker?: string) {
marker = marker || stdMarker;
@ORESoftware
ORESoftware / obs-vs-promises-resolution.js
Last active January 14, 2017 04:21
Async or sync resolution?
console.log(1);
new Promise(function(resolve,reject){
console.log(2);
resolve();
}).then(function(val){
console.log(3);
});
const Rx = require('rxjs');
console.log(1);
new Promise(function(resolve,reject){
console.log(2);
resolve();
});
// import opq
const Queue = require('opq');
// below we create a new client to the queue,
// and create the queue on the filesystem if it does
// not exist. the port is used by Live-Mutex;
// fp is our queue filepath
const q = new Queue({
@ORESoftware
ORESoftware / async-constructor.js
Last active January 14, 2017 03:53
An asynchronous constructor pattern
// asynchronous constructor example,
// like always do not explictly return anything from the constructor
function Queue(){
this.ready = false;
let callable = true;
let ee = new EE(); // new event emitter
@Xaekai
Xaekai / ipc.example.js
Created July 11, 2016 18:12
Example of Interprocess communication in Node.js through a UNIX domain socket
/*
**
** Example of Interprocess communication in Node.js through a UNIX domain socket
**
** Usage:
** server> MODE=server node ipc.example.js
** client> MODE=client node ipc.example.js
**
*/
@Boerworz
Boerworz / main.go
Last active October 10, 2023 09:14
Capturing the HTTP status code from http.ResponseWriter
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
// We need to cast handleRoot to a http.HandlerFunc since wrapHandlerWithLogging