Skip to content

Instantly share code, notes, and snippets.

@wolever
wolever / git-unpull
Last active December 21, 2015 04:08
git-unpull: undoes the merge commit created by an accidental 'git pull', plus some added helpful information!
#!/bin/bash
# Reverts HEAD back to ORIG_HEAD, for example after a 'git pull' accidentally
# creates a merge. This is identical to running 'git reset --hard ORIG_HEAD',
# except that unpull prints some helpful information along the way.
# Useage:
# $ git unpull
# HEAD: a0ac0fd Merge branch 'master' of /tmp/foo
# 2284c9d some remote commit
# ORIG_HEAD: 35431fd my local commit
# Really reset HEAD to ORIG_HEAD? (y/n) y
@alecperkins
alecperkins / TodoMVC.TodoApp.coffee
Created August 15, 2012 19:57
TodoMVC tutorial in coffeescript
TodoMVC.module 'TodoApp', (App, TodoMVC, Backbone, Marionette, $, _) ->
log arguments
class App.TodoForm extends Marionette.ItemView
events:
'keypress #new-todo' : 'createOnEnter'
'click .mark-all-done' : 'toggleAllClicked'
triggers:
'click .todo-clear a' : 'clear:completed'
So let's consider a small business that runs a website that happens to run on GPL'd software. They don't know anything about the GPL but they paid a local web shop to set it up on their shared web host. They don't have to know that the GPL requires them to provide source code if they convey a copy because they don't convey
Let's say the same business runs a wwebsite that runs on AGPL software. They don't know anything about the AGPL but they paid a local web shop to set it up on their shared web host. What happens when someone requests a copy of the source? The answer will likely be "what's source code?"
The local business doesn't want to pay someone to get them the source. And we can't even tell them "give us the contents of directory holding the web site" because that might contain private configuration information which isn't covered by the AGPL.
This is why I don't normally recommend AGPL software to anyone unless they already understand licensing and source code.
@qwcode
qwcode / gist:3088149
Created July 11, 2012 05:14
non-recursive force upgrade

Upgrading a package, w/o upgrading dependencies that are already satisifed

suppose the following packages: a, b, c, d

with the following dependency relationships between their versioned distributions

  • a-1
  • b
File Edit Options Buffers Tools Python Help
#!/usr/bin/python3
"""
"You can't spell 'skateboarding' without d-a-t-a-g-r-o-k."
Usage: python3 cantspell.py WORD
Prints all the words in its dictionary that contain at least all the
letters given in WORD
"""
from collections import Counter
@mattvonrocketstein
mattvonrocketstein / pybcompgen.py
Last active August 29, 2015 14:08
Pybcompgen calculates context sensitive tab-completion data from environment bash system settings
#!/usr/bin/env python
""" pybcompgen
Pybcompgen calculates context sensitive tab-completion data which is
derived from environment bash system settings. It doesn't need to know
anything about whether you use /etc/completion or /etc/bash_completion.d,
all that matters is whether *bash* knows about the completion. The benefit
of doing this are obvious: you get access to all the completion features
that the system has installed without caring how the completion features
work. Note that this approach doesn't just work for things in the users