Skip to content

Instantly share code, notes, and snippets.

@rhodey
rhodey / gist:873ae9d527d8d2a38213
Last active October 25, 2020 15:05
RE: Flock shutting down

Those who have received the latest Flock update are hopefully now aware that the project is shutting down, with the final EOL date set for October 1st. It is my belief that Flock performed a function not fulfilled by any existing projects, I want to share with you the main reason for EOL so that future projects of the same kind may come about and find greater success.

WebDAV was the wrong choice

Many developers in the Free Software security/crypo/hacker/whatever-this-thing-is scene tend to complain (sometimes vehemently) when a new protocol is developed to replace an existing protocol. For example, 9 out of 10 people in the whatever-this-thing-is scene will tell you there is nothing wrong with XMPP or OTR and argue that you're anti-OSS to try and replace either, I was partially of this mindset when I decided to augment WebDAV for Flock instead of creating something new or using something modern. WebDAV came about in 1999 and it shows in every library and OSS server available today. The [Remote Storage](ht

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPXSBygr2kr5RCcPQiB8eSMyXYfQf9zZiC7r97lG0J5O rhodey@anhonesteffort.org
/*
* Copyright (C) 2016 An Honest Effort LLC.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@rhodey
rhodey / muxrpc-tcp.js
Created May 16, 2018 20:30
trying to understand how to use muxrpc atop tcp.
var pull = require('pull-stream')
var toPull = require('stream-to-pull-stream')
var net = require('net')
var MRPC = require('muxrpc')
var API = { echo : 'async' }
var server = undefined
var client = undefined
function echo(str, cb) {
@rhodey
rhodey / hash-signatures.js
Created April 12, 2018 19:45
playing around with hash-based signatures
const bitwise = require('bitwise')
const bignum = require('bignum')
const crypto = require('crypto')
function hash(buf) {
var hash = crypto.createHash('sha256')
hash.update(buf)
return hash.digest()
}
@rhodey
rhodey / Heretic.scala
Created April 14, 2017 04:02
True heretics keep their own time.
package org.anhonesteffort.heretic
import scala.language.implicitConversions
object Heretic {
sealed trait Ticable {
def asTics(): Long
}
@rhodey
rhodey / minigames.md
Last active December 28, 2015 07:19
community building through minigames.

Community Minigames

I assert that in the absence of regular interaction, communities will segregate physically and emotionally, and inevitably become unhealthy. I believe that interactions should more often than not be collaborative, though competitive and even provocative interactions can serve a greater purpose as well.

I would like to foster community growth within and across fractured communities through a geographically distributed system that encourages interaction on shared tasks, more specifically games, more specifically something like "Mario Party" style minigames.

Generally speaking, minigames are comprised of resources and controls. The task of the player is to manipulate the controls and resources using a strategy to obtain reward. So, the task of the minigame designer is to establish a set of controls that can manipulate resources and are equally accessible to all players, and to a determine a reward or set of rewards that are desirable to all.

The most primit

@rhodey
rhodey / gist:2c320f67080c7e59d7df
Created February 20, 2015 21:40
mokey tiger haiku
var split = require('split');
var http = require('http');
function pullHaikuFromLine(line, offset) {
return line.replace(/\s{2,}/g, ' ')
.replace(/<div class="line">/g, "\n")
.replace(/<(?:.|\n)*?>/gm, ' ')
.substring(3);
}
@rhodey
rhodey / scrape-message-ids.js
Created October 21, 2014 08:15
A quick & dirty script to monitor the "ST LOUIS COPTALK" forum for deleted messages (http://members.boardhost.com/stlouiscoptalk/index.html). A list of message ids is saved to "process.argv[2].Date.now()", make this a cron job and then identify deleted messages through diffs.
var fs = require('fs');
var split = require('split');
var http = require('http');
var pages = new Array();
var messageIds = new Array();
var pageScrapeCount = 0;
var msgIdFileName = process.argv[2] + '.' + Date.now();
var msgIdFile = fs.createWriteStream(msgIdFileName);
@rhodey
rhodey / gist:ec47ce821c3b08d6f0f6
Last active August 29, 2015 14:07
mvn-pollr.sh
GROUP="org/whispersystems"
ARTIFACT="libpastelog"
VERSION="1.0.1"
EMAIL="rhodey@anhonesteffort.org"
if curl "https://repo1.maven.org/maven2/$GROUP/$ARTIFACT/" | grep "$VERSION/"; then
echo "is available! :D" | mail -s "$ARTIFACT $VERSION" $EMAIL
fi