Skip to content

Instantly share code, notes, and snippets.

Avatar

Felix Geisendörfer felixge

View GitHub Profile
View test.diff
diff --git a/src/runtime/pprof/pprof_test.go b/src/runtime/pprof/pprof_test.go
index 1947edf44a..f474036ccf 100644
--- a/src/runtime/pprof/pprof_test.go
+++ b/src/runtime/pprof/pprof_test.go
@@ -1435,49 +1435,25 @@ func TestLabelSystemstack(t *testing.T) {
// Two conditions to check:
// * labelHog should always be labeled.
// * The label should _only_ appear on labelHog and the Do call above.
- for _, s := range p.Sample {
+ _true, _false := true, false
@felixge
felixge / postverzollung.txt
Created May 4, 2012
Example for not wasting your time at the customs office
View postverzollung.txt
TO: zollamt-schoeneberg@zab-schoeneberg.bfinv.de (usually provided on the card you get)
Sehr geehrtes Zollamt,
am DD.MM.YYYY erhielt ich ein Schreiben über den Eingang einer Sendung bei der keine Rechnung angebracht war.
lfd. Nr: <NR>
Empfänger: <Name>, <Adresse>, <PLZ> <Ort>
Bei dem Paket handelt es sich um ein T-Shirt das mir geschenkt wurde da ich in meiner Freizeit kostenlose Software für die Integration mit einem Datenanalyse Dienst geschrieben habe (siehe http://support.metrics.librato.com/knowledgebase/articles/53548). Das T-Shirt ist vermutlich mit dem Logo des Dienstes bedruckt / hat keinen offiziellen Marktwert. Die Materialkosten sind wahrscheinlich ~20 EUR.
View json0.json
{"version":0,"package":"main","goos":"darwin","goarch":"amd64","gc_version":"go1.17.2","file":"/Users/felix.geisendoerfer/go/src/github.com/felixge/dump/inline-test/main.go"}
{"range":{"start":{"line":5,"character":6},"end":{"line":5,"character":6}},"severity":3,"code":"canInlineFunction","source":"go compiler","message":"cost: 59"}
{"range":{"start":{"line":9,"character":6},"end":{"line":9,"character":6}},"severity":3,"code":"cannotInlineFunction","source":"go compiler","message":"function too complex: cost 88 exceeds budget 80"}
{"range":{"start":{"line":11,"character":15},"end":{"line":11,"character":15}},"severity":3,"code":"escape","source":"go compiler","message":"\"Hello World\" escapes to heap","relatedInformation":[{"location":{"uri":"file:///Users/felix.geisendoerfer/go/src/github.com/felixge/dump/inline-test/main.go","range":{"start":{"line":11,"character":15},"end":{"line":11,"character":15}}},"message":"escflow: flow: ~arg0 = \u0026{storage for \"Hello World\"}:"},{"location":{"uri":"file:///U
View scrollable.js
gc.widget("gc.cl.widgets.scrollable", {}, function (m, document, $, gc) {
$ = jQuery; // Sorry Malte
var ANIMATION_SPEED = 800;
// A little helper function to sniff common CSS properties that we need
// to animate form an event.
function getCss($element) {
var css = {
opacity: $element.css('opacity'),
View example.json
{
"flameExplain": "Go to flame-explain.com and paste this JSON in the Input tab.",
"input": {
"plan": "[\n {\n \"Plan\": {\n \"Node Type\": \"Function Scan\",\n \"Parallel Aware\": false,\n \"Function Name\": \"generate_series\",\n \"Schema\": \"pg_catalog\",\n \"Alias\": \"generate_series\",\n \"Startup Cost\": 0.00,\n \"Total Cost\": 10.00,\n \"Plan Rows\": 1000,\n \"Plan Width\": 4,\n \"Actual Startup Time\": 194.503,\n \"Actual Total Time\": 331.185,\n \"Actual Rows\": 1500000,\n \"Actual Loops\": 1,\n \"Output\": [\"generate_series\"],\n \"Function Call\": \"generate_series(1, 1500000)\",\n \"Shared Hit Blocks\": 0,\n \"Shared Read Blocks\": 0,\n \"Shared Dirtied Blocks\": 0,\n \"Shared Written Blocks\": 0,\n \"Local Hit Blocks\": 0,\n \"Local Read Blocks\": 0,\n \"Local Dirtied Blocks\": 0,\n \"Local Written Blocks\": 0,\n \"Temp Read Blocks\": 0,\n \"Temp Written Bloc
View example.json
{
"flameExplain": "Go to flame-explain.com and paste this JSON in the Input tab.",
"input": {
"plan": "[\n {\n \"Plan\": {\n \"Node Type\": \"Function Scan\",\n \"Parallel Aware\": false,\n \"Function Name\": \"generate_series\",\n \"Schema\": \"pg_catalog\",\n \"Alias\": \"generate_series\",\n \"Startup Cost\": 0.00,\n \"Total Cost\": 10.00,\n \"Plan Rows\": 1000,\n \"Plan Width\": 4,\n \"Actual Startup Time\": 194.503,\n \"Actual Total Time\": 331.185,\n \"Actual Rows\": 1500000,\n \"Actual Loops\": 1,\n \"Output\": [\"generate_series\"],\n \"Function Call\": \"generate_series(1, 1500000)\",\n \"Shared Hit Blocks\": 0,\n \"Shared Read Blocks\": 0,\n \"Shared Dirtied Blocks\": 0,\n \"Shared Written Blocks\": 0,\n \"Local Hit Blocks\": 0,\n \"Local Read Blocks\": 0,\n \"Local Dirtied Blocks\": 0,\n \"Local Written Blocks\": 0,\n \"Temp Read Blocks\": 0,\n \"Temp Written Bloc
View main-linux.c
// Example program showing that signal delivery from setitimer ends up in
// "random" threads of the executing program.
#include <sys/time.h>
#include <unistd.h>
#include <signal.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
View multiwrap.go
// Package multiwrap implements support for wrapping multiple errors into a
// single error value that supports the Go 1.13 Unwrap(), Is() and As()
// interface. It's similar to go-multierror [1].
//
// This is a proof of concept and I'm looking for feedback! Maybe somebody has
// already done a nicer version of this idea?
//
// [1] https://godoc.org/github.com/hashicorp/go-multierror
package multiwrap
@felixge
felixge / command.sh
Created Oct 29, 2011
Bash stuff for fighting a weak DOS attack
View command.sh
# Here a few bash one-liners that helped me analyze / fight a weak DOS attack against debuggable.com. Mostly for future reference.
# The attacker was opening lots of tcp connections without sending data, I believe it's called a SYN flood, see: http://tools.ietf.org/html/rfc4987#section-3.2
# Step 0: Check what is going on at port 80
$ netstat -tan | grep ':80 ' | awk '{print $6}' | sort | uniq -c
# Step 1: Increase the number of available fds
$ ulimit -n 32000
# Step 2: Restart your webserver, for me:
View wc.asm
global main
extern printf
section .text
main:
sub rdi, 1 ; argc includes program name, so substract 1 to get arg count
cmp rdi, 1 ; check if we got exactly 1 arg
jne bad_arg_count ; if not, jump to bad_arg_count
mov r15, [rsi+8] ; main's argv[1]
mov r14, 0 ; index (also byte count)