Skip to content

Instantly share code, notes, and snippets.

View cosimo's full-sized avatar
🇳🇴

Cosimo Streppone cosimo

🇳🇴
View GitHub Profile
#!/usr/bin/env perl
use v5.014;
use warnings;
# Perl WebSocket test client
# Greg Kennedy 2019
# IO::Socket::SSL lets us open encrypted (wss) connections
use IO::Socket::SSL;
# IO::Select to "peek" IO::Sockets for activity
@cosimo
cosimo / debian-safe-upgrade.sh
Created April 30, 2020 09:46
Safe upgrade of a debian system
#!/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 October 16, 2019 09:14
Bash script to test for about-to-expire certificates
#!/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 July 26, 2019 08:01
Calculate the basic statistical attributes of a numeric population
#!/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 June 18, 2019 11:27
Shows process memory segment sizes
#!/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 March 22, 2019 16:48
Convert any MP3 to the format required by Amazon for Alexa audio tags
#!/bin/bash
INFILE="$1"
OUTFILE="$2"
which ffmpeg > /dev/null || {
echo "You need ffmpeg to convert audio files to Alexa MP3 format"
exit 1
}

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 March 7, 2019 16:35
Dump of jetty cometd server stderr on startup
[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 February 27, 2019 15:08
Example of Python server with *both* HTTP and Websockets capabilities
#!/usr/bin/python3.7
import aiohttp
from aiohttp import web, WSCloseCode
import asyncio
async def http_handler(request):
return web.Response(text='Hello, world')
vcl 4.0;
import std;
import vsthrottle;
sub vcl_recv {
...
call rate_limit;
...
}