Skip to content

Instantly share code, notes, and snippets.

@mdekstrand
mdekstrand / eval.groovy
Last active August 29, 2015 14:08
LensKit Evaluator Example
import org.grouplens.lenskit.iterative.*
import org.grouplens.lenskit.knn.item.*
import org.grouplens.lenskit.mf.funksvd.*
import org.grouplens.lenskit.transform.normalize.*
trainTest {
dataset crossfold("ml-100k") {
source csvfile("ml-100k/u.data") {
delimiter "\t"
domain {
@mdekstrand
mdekstrand / analyze.R
Last active August 29, 2015 14:08
LensKit Evaluator Analysis
library(ggplot2)
eval.results = read.csv('eval-results.csv')
png('results.png')
qplot(Algorithm, RMSE.ByUser, data=eval.results, geom='boxplot')
dev.off()
@mdekstrand
mdekstrand / so-recs.css
Created May 29, 2015 17:18
Hide Stack Exchange recommendations
/* User style for Stylish that hides Stack Exchange recommendations. */
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("stackoverflow.com"), domain("stackexchange.com") {
#hot-network-questions {
display: none;
}
}
@mdekstrand
mdekstrand / keybase.md
Created June 3, 2015 13:19
Keybase proof (mdekstrand)

Keybase proof

I hereby claim:

  • I am mdekstrand on github.
  • I am mdekstrand (https://keybase.io/mdekstrand) on keybase.
  • I have a public key whose fingerprint is 2C72 9878 7AAE D8B1 5AE2 2565 0909 5304 B705 7427

To claim this, I am signing this object:

@mdekstrand
mdekstrand / gist:811901
Created February 4, 2011 22:28
Ubuntu LablGTK META file (should be like Debian)
version="2.14.0"
requires(mt) = "threads"
requires(mt,mt_vm) = "threads.vm"
requires(mt,mt_posix) = "threads.posix"
directory="+lablgtk2"
archive(byte) = "lablgtk.cma"
archive(native) = "lablgtk.cmxa"
archive(byte,mt) += "gtkThread.cmo"
archive(native,mt) += "gtkThread.cmx"
@mdekstrand
mdekstrand / nextrip.pl
Created February 9, 2011 19:23
Query tool for Metro Transit NexTrip
#!/usr/bin/env perl
=head1 NAME
nextrip.pl - NexTrip query tool
=head1 SYNOPSIS
B<nextrip.pl> [I<OPTIONS>]
@mdekstrand
mdekstrand / rpm-sizes.pl
Created June 22, 2011 17:53
Perl script to print RPM packages by size
#!/usr/bin/env perl
use warnings;
use strict;
# get these with `yum install perl-RPM2 perl-Number-Bytes-Human'
use RPM2;
use Number::Bytes::Human qw{format_bytes};
my $db = RPM2->open_rpm_db();
@mdekstrand
mdekstrand / gist:1448381
Created December 8, 2011 20:21
Code that fails to match
def needState(need: InfoNeed) = {
object needs extends Obj('needs) {
object thisNeed extends Obj(Symbol(need.name)) {
val state = Child[String, Property[String]](Some(this), UserProps.Need.state)
}
}
js match {
case needs.thisNeed.state(st) => Some(st)
case _ => None
}
@mdekstrand
mdekstrand / Launch_Terminal.bsh
Created January 23, 2012 22:29
Launch Terminal JEdit macro
// Launch a terminal in the buffer's current directory.
terminalCommand = "gnome-terminal";
dir = buffer.getDirectory();
cmd = new String[]{terminalCommand, "--working-directory=" + dir};
Runtime.getRuntime().exec(cmd);
@mdekstrand
mdekstrand / publication.rb
Created October 9, 2015 00:18
publication Liquid tag
# Copyright 2015 Michael D. Ekstrand.
# Licensed under the MIT License http://md.ekstrandom.net/copyright
require 'nokogiri'
module Jekyll
class PubCiteTag < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@key = text.strip
@kpath = "research/pubs/#{@key}/index.md"