Skip to content

Instantly share code, notes, and snippets.

package main
import (
"fmt"
)
type Set map[interface{}]bool
func Intersection(s1, s2 Set) Set {
rs := Set{}
@mediocregopher
mediocregopher / deets.md
Last active December 28, 2015 22:59 — forked from MarcoPolo/deets.md

Cryptic's Crypto Details:

Registration

In-browser

  • The user chooses a username and password
  • A pub/priv key is generated and stored in a structure called the user blob. (A user will have the option to upload their own set of keys too)
  • The user blob also contains a file tree which will store uploaded files (with their encryption key) and folders (for organizing files).
  • The user blob is encrypted with the PBKDF2 hash of the user's password.
user> (def fiz (cycle [nil nil "Fiz"]))
#'user/fiz
user> (def buzz (cycle [nil nil nil nil "Buzz"]))
#'user/buzz
user> (take 15 (map (partial apply str) (map list fiz buzz)))
("" "" "Fiz" "" "Buzz" "Fiz" "" "" "Fiz" "Buzz" "" "Fiz" "" "" "FizBuzz")
@mediocregopher
mediocregopher / dir.php
Created October 2, 2013 01:57
I was using this as a directory index of sorts. It does all the things a normal directory index does, except that it also allows you to download a directory as a tar.gz. I don't remember how I set it up exactly, I remember there were some nginx rewrites needed
<?php
$dir = $_GET['request_filename'];
if (is_dir($dir)) {
if (!preg_match('/\/$/',$dir)) {
header("Location: ".$_SERVER['REQUEST_URI'].'/');
exit;
}
print "$dir<br/><br/>";
@mediocregopher
mediocregopher / ref.clj
Created April 25, 2013 04:39
Given either a numeric id or name, returns all the children of that reference from sql. If the numeric id is given a normal select is done, if the name is given a subselect to get the id is done.
(defn get-reference-children
[fn-id] ;fullname-or-id
(-> (select* reference)
(fields :id :fullname :isDir )
(#(if-not (string? fn-id)
(where %1 {:parent_id fn-id})
(where %1 {:parent_id (subselect reference
(fields :id)
(limit 1)
(where {:fullname fn-id}))} )))
@mediocregopher
mediocregopher / erl_node.c
Last active December 15, 2015 18:39
My attempt at making an erlang node
//To make gethostname be defined
#define _BSD_SOURCE
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
@mediocregopher
mediocregopher / json-gist.py
Created January 2, 2013 22:23
Reads in lines, interprets them as json, then recursively replaces all dictionary values with '...' and all lists with [ '...' ]. The idea is that you can use this to get the "gist" of the json struct, so if you have a lot of json structs you're analyzing to find similarities this may help. (Works on py2 and py3)
#!/usr/bin/env python
import sys
import json
def main():
for line in sys.stdin:
struct = json.loads(line)
clean_struct(struct)
clean_line = json.dumps(struct,sort_keys=True)
@mediocregopher
mediocregopher / pconn
Created November 12, 2012 22:39
Holds a connection to socketspam open. To use: make-connection initializes the connection and sets up recovery. send-data sends whatever string you give it to socketspam.
(ns socketspam.pconn
(:use lamina.core aleph.tcp aleph.formats))
(def socketspam-host "localhost")
(def socketspam-port 9000)
;Create an endpoint and ground it so messages don't get queued up
;if nothing is listening
(def endpoint (channel))
(ground endpoint)
Index:
{
"v" : 1,
"key" : {
"arid" : 1,
"_id" : -1
},
"ns" : "feeds.artistEvents",
"name" : "arid_1__id_-1",
"background" : true
@mediocregopher
mediocregopher / NO
Created October 29, 2012 04:49
Fuck yea assembly
.global _c_int00 ;This assembler directive allows _c_int00 to be a
;global variable. This tells the linker where your
;program (.text code) begins and where to boot from.
;***************************** Program Constants ****************************************
; Creating constants using the .set assembler directive. This should be at the top of your
; program. This is like a define statement in C.
data_sect .set 0xa000 ;constant that is actually the starting addr of .data section
bss_sect .set 0xb000 ;constant that is actually the starting addr of .bss section