Skip to content

Instantly share code, notes, and snippets.

View felixfbecker's full-sized avatar

Felix Becker felixfbecker

View GitHub Profile
@felixfbecker
felixfbecker / restore_cmd_f_on_github_project_boards.js
Created September 16, 2021 17:10
Restore Cmd+F on GitHub Beta boards
// ==UserScript==
// @name Restore Cmd+F on GitHub Beta boards
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author Felix Becker
// @match https://github.com/orgs/sourcegraph/projects/*
// @icon https://www.google.com/s2/favicons?domain=github.com
// @grant none
// ==/UserScript==
@felixfbecker
felixfbecker / github_estimate_sum.js
Created September 16, 2021 15:50
Tampermonkey script to sum up estimates in GitHub Beta project boards
// ==UserScript==
// @name GitHub estimate sum
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://github.com/orgs/sourcegraph/projects/*
// @icon https://www.google.com/s2/favicons?domain=github.com
// @grant none
// ==/UserScript==
@felixfbecker
felixfbecker / morph.ts
Last active April 27, 2020 16:11
TypeScript codemod to add history prop drilling where it was missing
/* eslint-disable no-unused-expressions */
/* eslint-disable @typescript-eslint/prefer-includes */
import {
Project,
Diagnostic,
SyntaxKind,
Node,
StructureKind,
QuoteKind,
@felixfbecker
felixfbecker / interviews.psm1
Last active January 31, 2020 09:47
Automation for sending out coding exercises
#Requires -Modules PSGitHub, PSGSuite
function New-CodingExercise {
[CmdletBinding()]
param (
[Parameter(Mandatory)]
[string] $CandidateUsername,
[Parameter(Mandatory)]
[string] $CandidateName,
#Requires -Module PSGitHub
#Requires -Module PowerGit
[CmdletBinding()]
param()
$items = Get-Content not-needed-packages.txt | Select-String -Pattern 'Typings already defined for ([^ ]+)' -Context 0,5
$i = 0
$items | ForEach-Object {
#!/usr/bin/env pwsh
$ErrorActionPreference = 'Stop'
$repositoryRoot = $PWD
# Builds the PCRE extension to sqlite3.
function Build-Libsqlite3Pcre {
[OutputType([string])]
param()
@felixfbecker
felixfbecker / comlink.ts
Created February 17, 2019 15:49
Comlink types
@felixfbecker
felixfbecker / worker_threads_test.ts
Created October 12, 2018 16:30
Goroutines in Node with Worker Threads
import { Worker } from 'worker_threads'
export function work<P extends any[], R>(script: (...args: P) => R | PromiseLike<R>, ...args: P): Promise<R> {
return new Promise((resolve, reject) => {
const workerSource = `
const { workerData, parentPort } = require('worker_threads');
Promise.resolve((${script})(...workerData))
.then(result => {
parentPort.postMessage({ type: 'success', result })
}, error => {
@felixfbecker
felixfbecker / protomap.ts
Last active April 19, 2018 07:05
Immutable __proto__ backed Map
// tslint:disable:forin
export class ProtoMap<V> {
private _values: any;
public [Symbol.toStringTag]: 'ProtoMap' = 'ProtoMap'
constructor(init?: Iterable<[string, V]> | { [key: string]: V }) {
this._values = { __proto__: null }
if (init) {
@felixfbecker
felixfbecker / observable-array.ts
Created November 30, 2017 04:55
Observable Array
import { Subject } from 'rxjs/Subject'
export interface Splice<T> {
/**
* The zero-based location in the array from which to start removing elements.
*/
start: number
/**
* The number of elements to remove.
*/