Skip to content

Instantly share code, notes, and snippets.

@jrgm
jrgm / sometopo.json
Last active December 18, 2022 12:04
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
diff --git a/emailserver.js b/emailserver.js
index e40f738..9a063c2 100755
--- a/emailserver.js
+++ b/emailserver.js
@@ -24,6 +24,32 @@ function logError(err) {
log("ERROR (oh noes!): " + err);
}
+function mailSummary(mail) {
+ const deliveryTime =
// returns all the prime factors of a positive integer
function prime_factors(n) {
var factors = [];
var div = 2;
while (n > 1) {
while (n % div == 0) {
factors.push(div);
n /= div;
}
div++;
@jrgm
jrgm / start-ff.sh
Created February 11, 2013 21:50
start Firefox with disposable profiles on osx
#!/bin/sh
# start Firefox with disposable profiles on osx
# usage: start-ff.sh profilename Firefox.app
# start-ff.sh profilename Aurora.app
# start-ff.sh profilename Nightly.app
PROFILE_NAME=abcabdab-sync1
if [ ! -z "$1" ]; then
PROFILE_NAME=$1
@jrgm
jrgm / check-oauth-yaml.js
Created January 15, 2016 21:15
check for typos in config file
#!/usr/bin/env node
// Run this script after editing ./fxa/yaml/type/fxa.fxa_oauth.prod.yaml or
// ./fxa/yaml/type/fxa.fxa_oauth.stage.yaml and fix any typos before
// committing changes.
var assert = require('assert')
var fs = require('fs')
var yaml
@jrgm
jrgm / hook-process-stderr-write.js
Created October 16, 2013 05:23
hook-process-stderr-write.js
process.stderr.write = (function(writer) {
return function(string, encoding, fd) {
writer.call(process.stderr, 'hooked => ');
writer.apply(process.stderr, arguments);
}
})(process.stderr.write);
process.stderr.write('foo\n');
console.error('bar');
console.log('baz');
@jrgm
jrgm / ls-cert-times.js
Created June 15, 2013 03:47
mutate some stdin json
var convertTimes = true;
function handleEmail(obj) {
delete obj.pub;
delete obj.priv;
var cert = obj.cert;
if (cert) {
delete cert.header;
var payload = cert.payload;
if (payload) {
@jrgm
jrgm / parse.pl
Created May 29, 2013 07:35
because...
#!/usr/bin/perl
use strict;
my $requests = {};
sub strip_args {
$_ = $_[0];
s/\?ver=.*/\?ver=/;
s/\?email=.*/\?email=/;
s/\?token=.*/\?token=/;
s/\?domain=.*/\?domain=/;
@jrgm
jrgm / verifier-metrics.js
Last active December 17, 2015 16:49
verifier-metrics.js
// usage: cat file | verifier-metrics.js
const ONE_HOUR_MS = 60*60*1000;
function handleData(data, struct) {
var message, epoch = Date.parse(data.timestamp);
try {
message = JSON.parse(data.message);
} catch(e) {
@jrgm
jrgm / config.json
Created May 21, 2013 20:10
config.json
{
"domains": {
/*
"browserid.org": [
"browserid-org-0520-1279444257.us-east-1.elb.amazonaws.com"
],
"www.browserid.org": [
"browserid-org-0520-1279444257.us-east-1.elb.amazonaws.com"
],
*/