Skip to content

Instantly share code, notes, and snippets.

@gravesm
gravesm / gist:5112054
Last active December 14, 2015 15:59
Control a queue of jQuery AJAX requests from within an XHR callback, rather than just from the return promise object. For example, only run the next request if some aspect of the data from the current request is true.
var Queue = function() {
var reqs = [],
dfds = [];
function run() {
var next = reqs.shift();
if (next) {
$.ajax(next);
}
}
@gravesm
gravesm / gist:5116963
Created March 8, 2013 14:54
XSLT to remove duplicate instances of MARC subject fields.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:fn="http://libraries.mit.edu/xslt/functions">
<xsl:template match="/">
<add>
<xsl:apply-templates select="marc:collection/marc:record" />
@gravesm
gravesm / stubit.js
Last active February 11, 2024 22:24
Jasmine+AMD test stub module injection
/**
* This module allows you to inject test stubs into the module loading process
* during jasmine unit testing.
*/
define(["underscore"], function(_) {
var uid = 0;
function defineMock(mockid, mock) {
define(mockid, function() {
@gravesm
gravesm / marc2solr.py
Created September 11, 2013 18:40
MarcXML record to Solr add doc
#!/usr/bin/env python
########################
#
# @TODO: Location field in current Solr index has both libRecord and mapRecord -
# should there be both or just libRecord?
#
########################
from lxml import etree
import sys
#!/usr/bin/env python
from __future__ import print_function
import fileinput
import sys
import json
import apachelog
parser = apachelog.parser(apachelog.formats['extended'])
#!/usr/bin/env python
from __future__ import print_function
import json
import sys
from datetime import timedelta, datetime
from random import randint, choice
countries = ('US', 'GB', 'FR', 'DE',)
dlc = ('CSAIL', 'DUSP', 'Lincoln Lab',)
@gravesm
gravesm / load.py
Last active December 28, 2015 10:58
#!/usr/bin/env python
from __future__ import print_function
import fileinput
import json
from datetime import datetime
import time
from pymongo import MongoClient
def get_collection(conn=None):
<?xml version="1.0" encoding="UTF-8"?>
<config>
<luceneMatchVersion>4.5</luceneMatchVersion>
<dataDir>${solr.data.dir:}</dataDir>
<directoryFactory name="DirectoryFactory"
class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}" />
#!/usr/bin/env bash
####
# ./dedup FROM TO
#
# move duplicate emails from FROM to TO
####
duplicates=$(grep --no-filename -rE "^To:\s[[:alpha:]]+" $1 | sort | uniq -c | \
# -*- coding: utf-8 -*-
"""
>>> root = etree.Element('foo')
>>> el = get_path('bar/baz', root).text = 'foobaz'
>>> etree.tostring(root)
'<foo><bar><baz>foobaz</baz></bar></foo>'
>>> get_path('bar/gaz', root).text = 'foogaz'
>>> etree.tostring(root)
'<foo><bar><baz>foobaz</baz><gaz>foogaz</gaz></bar></foo>'
"""