Skip to content

Instantly share code, notes, and snippets.

@nicokaiser
nicokaiser / websocket-protocol-fallback.js
Created September 15, 2011 12:54
WebSocket library fallback for old protocol clients
#!/usr/bin/env node
// Example of how to fallback to alternative websocket library for old protocol clients
// see https://gist.github.com/1148686
var http = require('http'),
WebSocketRequest = require('websocket').request,
ws = require('websocket-server');
@nicokaiser
nicokaiser / photoSwipeGalleryBuilder.js
Created March 19, 2020 14:53
Single (instead of multiple) PhotoSwipe Gallery for Mauer Stills
(function ($) {
"use strict";
$(document).ready(function() {
// Pure vanilla JS solution by fabulous Dmitry Semenov.
// http://photoswipe.com/documentation/getting-started.html
// Some options changed. numNodes counter altered.
function EventEmitter() {
this._events = {};
this._maxListeners = this._maxListeners || undefined;
}
module.exports = EventEmitter;
EventEmitter.prototype.emit = function(type) {
if (!this._events[type]) return false;
@nicokaiser
nicokaiser / client.js
Created April 11, 2012 21:05
node.js 0.6.x garbage collector fail
var WebSocket = require('ws')
// open 200 connections that close after 5 seconds
for (var i = 0; i < 200; i++) { openWs() }
function openWs() {
var ws = new WebSocket('ws://localhost:8080')
ws.on('open', function() {
ws.send('hello')
setTimeout(function() { ws.close(); }, 5000)
@nicokaiser
nicokaiser / etc-nginx-conf.d-ssl.conf
Created January 8, 2016 10:43
Let's Encrypt with nginx
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA;
# ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 24h;
@nicokaiser
nicokaiser / client.html
Created June 25, 2013 15:52
WAMP.IO example
<!DOCTYPE html>
<html>
<head>
<script src="http://autobahn.s3.amazonaws.com/js/autobahn.min.js">
</script>
<script>
// WAMP session object
var sess;
var wsuri = "ws://localhost:9000";
<koken:load limit="10" infinite="true">
<koken:loop>
<div style="margin:25px auto;">
<koken:link lightbox="true">
<koken:img lazy="true" fade="true" />
</koken:link>
</div>
@nicokaiser
nicokaiser / r.pl
Created October 24, 2012 14:09
Conversion from Roman to Arabic numerals
#!/usr/bin/perl
$_=shift@ARGV;s/CM/+900/g;s/CD/+400/g;s/XC/+90/g;s/XL/+40/g;s/IX/+9/g;s/IV/+4/g;s/M/+1000/g;s/D/+500/g;s/C/+100/g;s/L/+50/g;s/X/+10/g;s/V/+5/g;s/I/+1/g;eval'print 0'.$_;
@nicokaiser
nicokaiser / r.pl
Created October 24, 2012 14:06
Conversion from Roman to Arabic numerals
#!/usr/bin/perl
$_=shift@ARGV;s/Mↂ/+9000/g;s/Mↁ/+4000/g;s/CM/+900/g;s/CD/+400/g;s/XC/+90/g;s/XL/+40/g;s/IX/+9/g;s/IV/+4/g;s/ↂ/+10000/g;s/ↁ/+5000/g;s/M/+1000/g;s/D/+500/g;s/C/+100/g;s/L/+50/g;s/X/+10/g;s/V/+5/g;s/I/+1/g;/^[0-9\+]*$/ or die;eval'print 0'.$_;
@nicokaiser
nicokaiser / server.js
Created April 12, 2012 17:55
node http request leak
var http = require('http')
, weak = require('weak')
var server = http.createServer(function(req, res) {
if (req.method == 'GET') {
// GET
console.log('GET request')
weak(req, function() { console.log('GET request collected by GC') })
res.end()