Skip to content

Instantly share code, notes, and snippets.

Avatar

Cosimo Streppone cosimo

View GitHub Profile
@cosimo
cosimo / debian-safe-upgrade.sh
Created Apr 30, 2020
Safe upgrade of a debian system
View debian-safe-upgrade.sh
#!/bin/sh
OLDDIST=lenny
NEWDIST=squeeze
BACKUP_DIR="/var/tmp/backup.$OLDDIST"
echo "+ Create backup directory"
mkdir -p "$BACKUP_DIR"
@cosimo
cosimo / test-certificate-expiry.sh
Created Oct 16, 2019
Bash script to test for about-to-expire certificates
View test-certificate-expiry.sh
#!/bin/bash
#
# Test certificate file expire date
#
# Usage:
# test-certificate-expiry my.crt
#
#
# Emit an error/critical if the certificate expire date
@cosimo
cosimo / quick-stats.pl
Created Jul 26, 2019
Calculate the basic statistical attributes of a numeric population
View quick-stats.pl
#!/usr/bin/env perl
=head1 NAME
quick-stats.pl - Calculate the basic statistical attributes of a list of numbers
=head1 SYNOPSIS
echo <list of numbers> | ./quick-stats.pl
@cosimo
cosimo / proc-map-size.pl
Last active Jun 18, 2019
Shows process memory segment sizes
View proc-map-size.pl
#!/usr/bin/env perl
=head1 NAME
map-size.pl - Shows process memory segment sizes
=head1 SYNOPSIS
cat /proc/[pid]/maps | ./map-size.pl
@cosimo
cosimo / convert-to-alexa-mp3.sh
Created Mar 22, 2019
Convert any MP3 to the format required by Amazon for Alexa audio tags
View convert-to-alexa-mp3.sh
#!/bin/bash
INFILE="$1"
OUTFILE="$2"
which ffmpeg > /dev/null || {
echo "You need ffmpeg to convert audio files to Alexa MP3 format"
exit 1
}
View cometd client message reply test log.md

Traffic between websocket client and cometd server

IN      1552060842.6432996      [{"id":1,"channel":"/meta/handshake","supportedConnectionTypes":["websocket"],"version":"1.0","ext":{"ack":true,"timesync":{"tc":1552060842643}}}]
OUT     1552060842.6573672      [{"minimumVersion":"1.0","clientId":"21goxg4y4lnjv5pd5ws3lvpj2o","supportedConnectionTypes":["websocket","long-polling","callback-polling"],"advice":{"interval":0,"timeout":30000,"reconnect":"retry"},"channel":"/meta/handshake","id":"1","version":"1.0","successful":true}]

IN      1552060843.1454756      [{"id":2,"channel":"/meta/connect","connectionType":"websocket","ext":{"ack":1,"timesync":{"tc":1552060843145}},"clientId":"21goxg4y4lnjv5pd5ws3lvpj2o"}]
OUT     1552060843.1552584      [{"channel":"/meta/connect","id":"2","successful":true}]
@cosimo
cosimo / server.dumpStdErr()
Created Mar 7, 2019
Dump of jetty cometd server stderr on startup
View server.dumpStdErr()
[main] INFO org.eclipse.jetty.util.log - Logging initialized @107ms to org.eclipse.jetty.util.log.Slf4jLog
[main] INFO org.eclipse.jetty.server.Server - jetty-9.4.z-SNAPSHOT; built: 2019-02-15T16:53:49.381Z; git: eb70b240169fcf1abbd86af36482d1c49826fa0b; jvm 10.0.2+13-Ubuntu-1ubuntu0.18.04.4
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@53976f5c{/,null,AVAILABLE}
[main] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@25f8524{HTTP/1.1,[http/1.1]}{0.0.0.0:8008}
[main] INFO org.eclipse.jetty.server.Server - Started @309ms
Server@2ef3eef9{STARTED}[9.4.z-SNAPSHOT] - STARTED
+= QueuedThreadPool[qtp1413653265]@5442a311{STARTED,10<=10<=100,i=5,q=0}[ReservedThreadExecutor@47987356{s=0/8,p=0}] - STARTED
| += ReservedThreadExecutor@47987356{s=0/8,p=0} - STARTED
| +> threads size=10
| +> 21 qtp1413653265-21 IDLE TIMED_WAITING @ java.base@10.0.2/jdk.internal.misc.Unsafe.park(Native Method)
@cosimo
cosimo / http+ws-server.py
Created Feb 27, 2019
Example of Python server with *both* HTTP and Websockets capabilities
View http+ws-server.py
#!/usr/bin/python3.7
import aiohttp
from aiohttp import web, WSCloseCode
import asyncio
async def http_handler(request):
return web.Response(text='Hello, world')
View gist:6d3318bf173357dfb2652b7b2e81e1e0
vcl 4.0;
import std;
import vsthrottle;
sub vcl_recv {
...
call rate_limit;
...
}
@cosimo
cosimo / clean-x-forwarded-for.vcl
Created Feb 26, 2018
Varnish: clean up 127.0.0.1 from X-Forwarded-For header in VCL
View clean-x-forwarded-for.vcl
#
# Varnish appends ${localhost} (= 127.0.0.1) to the XFF header
# automatically and transparently *before* calling vcl_recv().
#
# Not a problem for the Rest backend, but in the interest of
# trying to be as transparent as possible, we have the option
# to clean it out.
#
sub clean_x_forwarded_for {
if (req.http.X-Forwarded-For != "") {