Skip to content

Instantly share code, notes, and snippets.

View mrchaofan's full-sized avatar
😀

Mr.Chaofan mrchaofan

😀
  • Beijing
  • 23:26 (UTC +08:00)
View GitHub Profile
@mrchaofan
mrchaofan / main.js
Created May 21, 2024 20:17
electron-fix
const { app, net, session, BrowserWindow } = require("electron");
const { patchSessionFetch, patchSessionProtocol } = require("./patch");
app.whenReady().then(async () => {
patchSessionFetch(session.defaultSession);
patchSessionProtocol(session.defaultSession);
session.defaultSession.protocol.handle("https", async (req) => {
req.headers.set("referer", "https://docs.qq.com");
@mrchaofan
mrchaofan / japan-jobs.md
Created June 13, 2023 07:10 — forked from davidcalhoun/japan-jobs.md
Foreigner-friendly software companies in Japan
/**
* @typedef {{
* value: number
* left: BSTreeNode
* right: BSTreeNode
* }} BSTreeNode
*/
class BSTree {
/**
/**
* @typedef {{
* level: number
* data: number
* left: TreeNode
* right: TreeNode
* }} TreeNode
*/
/**
type Callback = (err?: Error) => void
type Task = (callback: Callback) => void
interface ITaskProcessorOptions {
maxConcurrency: number
}
export default class TaskProcessor {
private pendingTaskCount = 0
const net = require('net')
const server = net.createServer()
server.on('connection', (clientToProxy) => {
console.log("CLIENT CONNECTED")
clientToProxy.once('data', (data) => {
const header = data.toString().split(/\r?\n/)
if (header.length === 0 || !header[0].startsWith('CONNECT')) {
clientToProxy.end()
@mrchaofan
mrchaofan / shared_ptr.cc
Last active February 14, 2023 14:32
shared pointer implementation for education purpose.
#include <iostream>
template <typename T>
class shared_ptr
{
public:
shared_ptr() noexcept : mpValue(nullptr), mpRefCount(nullptr)
{
}
@mrchaofan
mrchaofan / ABOUT.md
Created December 21, 2022 06:29 — forked from laobubu/ABOUT.md
A very simple HTTP server in C, for Unix, using fork()

Pico HTTP Server in C

This is a very simple HTTP server for Unix, using fork(). It's very easy to use

How to use

  1. include header httpd.h
  2. write your route method, handling requests.
  3. call serve_forever("12913") to start serving on port 12913
interface SemphoreWaitingContext {
done(): void;
}
export default class Semphore {
private queue: Array<SemphoreWaitingContext> = [];
constructor(private value: number) {
}
function calcBezier(t: number, p1: number, p2: number): number {
return (((1 + 3 * p1 - 3 * p2) * t + (-6 * p1 + 3 * p2)) * t + 3 * p1) * t;
}
const PRECISION = 0.0000001;
const MAX_ITERATIONS = 12;
function binarySubdivide(
x: number,
a: number,