Skip to content

Instantly share code, notes, and snippets.

View Joker666's full-sized avatar
👶
setting up my engine

Rafi Joker666

👶
setting up my engine
View GitHub Profile
@Joker666
Joker666 / Visitor.java
Last active January 10, 2024 10:17
Visitor pattern explained with a minimal example
// In this example, we have two types of elements: Leaf and Node. Both implement the Element interface,
// which defines an accept method that takes a Visitor object as an argument.
// The Visitor interface defines two methods, visit(Leaf) and visit(Node),
// which are called by the accept method of the corresponding element.
//
// The PrintVisitor class implements the Visitor interface and provides an implementation for each of the visit methods.
// In this case, it simply prints a message to the console.
//
// Finally, in the main method, we create a tree of elements and
// traverse it using the accept method of the root element and a PrintVisitor object.
@Joker666
Joker666 / convert.rb
Created April 6, 2023 15:01
Tyler Audio Conversion
require 'fileutils'
files = Dir.glob("*.{mp3,m4a,wav}")
converted_dir = "converted"
FileUtils.mkdir_p converted_dir
puts "Enter the bitrate:"
bitrate = gets.chomp
@Joker666
Joker666 / NodeJS_memory_leak_part2_promise_solution.js
Last active December 7, 2020 08:15
NodeJS_memory_leak_part2_promise_solution.js
const http = require("http");
async function task (ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
@Joker666
Joker666 / NodeJS_memory_leak_part2_promise_index.js
Last active December 7, 2020 08:14
NodeJS_memory_leak_part2_promise_index.js
const http = require("http");
async function task (ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
@Joker666
Joker666 / NodeJS_memory_leak_part2_cache_solution.js
Created December 1, 2020 17:58
NodeJS_memory_leak_part2_cache_solution.js
const http = require("http");
function computeTerm(term) {
setTimeout(() => {
delete computeTerm[term];
}, 1000);
return computeTerm[term] || (computeTerm[term] = compute());
function compute() {
return Buffer.alloc(1e3);
@Joker666
Joker666 / NodeJS_memory_leak_part2_cache_index.js
Last active December 1, 2020 17:32
NodeJS_memory_leak_part2_cache_index.js
const http = require("http");
function computeTerm(term) {
return computeTerm[term] || (computeTerm[term] = compute());
function compute() {
return Buffer.alloc(1e3);
}
}
const server = http.createServer((req, res) => {
res.end(computeTerm(Math.random()));
@Joker666
Joker666 / NodeJS_multicore_recover.js
Created November 21, 2020 10:37
NodeJS_multicore_recover.js
// Simulate crash
if (cluster.isWorker) {
setTimeout(() => {
process.exit(1) // death by random timeout
}, Math.random() * 100000);
}
// Add this to the callback
cluster.on("exit", function(worker, code, signal) {
@Joker666
Joker666 / NodeJS_multicore_cluster.js
Created November 21, 2020 08:59
NodeJS_multicore_cluster.js
// Require the framework and instantiate it
const os = require("os");
const cluster = require("cluster");
const fastify = require('fastify')({
logger: false,
disableRequestLogging: true
});
const clusterWorkerSize = os.cpus().length;
@Joker666
Joker666 / NodeJS_multicore_index.js
Created November 21, 2020 08:37
NodeJS_multicore_index.js
// Require the framework and instantiate it
const fastify = require('fastify')({
logger: true,
disableRequestLogging: true
});
// Declare a route
fastify.get('/', async (request, reply) => {
return { hello: 'world' };
})
@Joker666
Joker666 / Microservice_tutorial_part1_testClient.js
Last active December 12, 2020 10:12
Microservice_tutorial_part1_testClient.js
// userService/testClient.js
const messages = require('./proto/user_pb');
const services = require('./proto/user_grpc_pb');
const grpc = require('@grpc/grpc-js');
function main() {
const client = new services.UserSvcClient('localhost:8080', grpc.credentials.createInsecure());
let registerReq = new messages.RegisterRequest();