Skip to content

Instantly share code, notes, and snippets.

View sjas's full-sized avatar
😆
EAX,60

sjas

😆
EAX,60
  • 755517,642095,1140
  • EDESTADDRREQ
View GitHub Profile
@sjas
sjas / go-os-arch.md
Created November 16, 2019 21:58 — forked from asukakenji/0-go-os-arch.md
Go (Golang) GOOS and GOARCH

Go (Golang) GOOS and GOARCH

All of the following information is based on go version go1.8.3 darwin/amd64.

A list of valid GOOS values

(Bold = supported by go out of the box, ie. without the help of a C compiler, etc.)

  • android
  • darwin
@sjas
sjas / Predictable Network InterfaceNames.md
Created June 5, 2019 15:31 — forked from bbak/Predictable Network InterfaceNames.md
Debian 9 / Stretch: Umstellung auf Predictable Network InterfaceNames

Warnung an alle, die dieses Gist finden: Ich habe hier nur dokumentiert, was ich im Rahmen einer Umstellung herausgefunden habe. Es gibt Garantie auf Richtigkeit der Informationen, Zusammenhänge oder ob das unter allen Umständen wie hier beschrieben funktioniert.

Predictable Network InterfaceNames

Debian stellt auf ein anderes System von Namen für Netzwerkinterfaces um. In Debian 9 gehen noch die alten, manuell festgelegten - was der Standard ist, wenn man von Debian 8 aktualisiert.
Ab Debian 10 wird dieses System, welches mit udev und systemd zusammen hängt, zum Standard.

Mit zless /usr/share/doc/udev/README.Debian.gz kann man Debian-spezifische Informationen zu dem Thema finden.
Unter anderem auch, dass (und wie) man diesen Mechanismus in Debian 9 Stretch umgehen kann.

@sjas
sjas / parse_storcli.py
Created April 28, 2019 12:07 — forked from kamermans/parse_storcli.py
Script to parse storcli (replaced megacli) output for use in monitoring applications like Nagios, Zabbix, etc
#!/usr/bin/env python
#
# Parses the output of storcli:
# storcli /c0 show all J
import sys
import json
output_dir = "."
data = json.load(sys.stdin)
@sjas
sjas / gist:69350b1cd190af2c2a8019b0a5eee226
Last active April 8, 2019 10:14
`fws` alias for colored iptables output, designed to play well with firewalld
fws() {
for IPTABLES in iptables ip6tables
do
printf '\n\n\n\n\n'
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' '#'
echo "# ${IPTABLES}"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' '#'
sudo "${IPTABLES}" -L -vnx --line-numbers | \
# table header
sed "/^num.*/ s//$(printf "\033[33m&\033[0m")/ " | \
###################################################################################################################
# 0x00 - basics
###################################################################################################################
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
export PROMPT_COMMAND=echo
export PS0='\n'
export PS1='$( i=$?; if [ $i -eq 0 ]; then echo \\\[\e[32\;1m\\\]$i; else echo \\\[\e[31\;1m\\\]$i; fi )\[\e[0m\] \u@\h \[\e[33;1m\]\t\[\e[0m\] \w$(if git status 2>/dev/null | grep -q "nothing to commit"; then echo \\\[\e[32m\\\]; else if git status 2>/dev/null | grep -qi -e "^Changes not staged for commit" -e "^Untracked files:"; then echo \\\[\e[31m\\\]; else if git status 2>/dev/null | grep -q "to be committed"; then echo \\\[\e[36m\\\]; else echo \\\[\e[35\;1m\\\]; fi; fi; fi)$(__git_ps1)\[\e[0m\] \[\e[37;1m\]\$\[\e[m\]\[\e[36;1m\]$SHLVL \[\e[m\]\[\e[37;1m\]h\[\e[m\]\[\e[36;1m\]\! \[\e[m\]\[\e[37;1m\]c\[\e[m\]\[\e[36;1m\]\# \n\[\e[m\
@sjas
sjas / gist:bc31c3540509ac8d80a20b664a1d55c3
Last active March 3, 2019 12:11
a better manpage interface
m() {
dpkg -s dialog &>/dev/null || { echo "Needs 'dialog' package which is not installed on this system!" && return; }
[[ $# -lt 1 ]] && echo 'Man page name consisting of a single word expected but not given.' && return
MANPAGE=$1
[[ -n $2 ]] && DEFAULTCHOICE=$2 || DEFAULTCHOICE='0'
man $MANPAGE > /dev/null 2>&1 || { echo $MANPAGE man page not present on this system!; return; }
mapfile -t OUTLINE < <(PAGER=cat man $MANPAGE | grep ^\\w | grep -v -e AUTHORS -e COPYRIGHT | sed '1d;$d')
RESULTSIZE=$(echo ${#OUTLINE[*]})
CHOICE=$(
dialog --keep-tite --default-item "$DEFAULTCHOICE" --menu "$(
import argparse
from mock import Mock
m = Mock()
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()
query_group = subparsers.add_parser('query')
add_group = subparsers.add_parser('add')
@sjas
sjas / foo.md
Created August 29, 2018 05:04 — forked from sdstrowes/foo.md

tl;dr:

  • mostly, hosts ignore the mss sent
  • most of the interesting behaviour comes from the extremes: mss=1 and mss=1440
  • setting mss=(an atypical value, say 1275 or 1411) ought to spot hosts that simply reflect MSS values
  • setting mss=1024 apparently will spot a bunch of (Microsoft?) hosts returning MSS=956
  • passively, mss=1220, 1360, 1410 may help identify CDN/non-CDN nodes inside yahoo/edgecast, google, facebook respectively

Longer version: captured SYN+ACK+MSS values:

Variation is less than I initially thought; just enough for me to notice

channel operator quick reference

direct discussion about administrative action away from the main channel and into #reddit-diabetes-ops to minimise disruption. our -ops channel is the place where users should come to ask for our help. examples:

  • any sort of operator request or discussion of channel administration in the main channel
  • PMs asking why a ban was set
  • reports of harassment (unless the user is confiding in you)
  • any request for operator action

changing channel access permissions

class DotGenerator(Visitor):
def __init__(self):
super().__init__()
self.lines = []
self.next_id = 0
def make_name(self, node, name=None):
if name is None:
name = "n%d" % self.next_id
self.next_id += 1