Skip to content

Instantly share code, notes, and snippets.

@dannyroberts
dannyroberts / donate-against-ahca-voters.md
Last active May 5, 2017 19:50
How to donate against Reps who voted for AHCA

How to donate against Reps who voted for AHCA

These funds back opponents to the Representatives who voted for the AHCA.

The US Senate is looking at one thing right now: whether and how much the American people will punish those who wish to gut rather than improve upon our healthcare system. Show them that a vote for the AHCA is politically toxic by donating to these district funds to repeal and replace these representatives who are not representing their constituents.

This one focuses on only the 35 most winnable districts:

// ==UserScript==
// @name Clean FogBugz URLs
// @version 0.4
// @description Replaces http://manage.dimagi.com/default.asp?123456#1984701 with http://manage.dimagi.com/default.asp?123456
// @author Danny Roberts
// @match *://manage.dimagi.com/default.asp*
// @grant none
// ==/UserScript==
function cleanURL() {

Forward Forms

FORM/POST PARAMETERS

None

QUERYSTRING
app_id: db9f874f0219444ee7848ddd023e292e
@dannyroberts
dannyroberts / backwards-migration-staging.md
Last active August 29, 2015 14:17
Backwargs migrations on staging

I started out trying to do something simple, remove the tf-perisistence branch of touchforms from staging.yml.

Things went well until I got this error

[hqdb0-staging.internal.commcarehq.org] sudo: /home/cchq/www/staging/python_env/bin/python manage.py migrate --noinput
[hqdb0-staging.internal.commcarehq.org] out: 2015-03-19 18:02:01,478 INFO Raven is not configured (disabled). Please see documentation for more information.
[hqdb0-staging.internal.commcarehq.org] out: GhostMigrations: 
[hqdb0-staging.internal.commcarehq.org] out: 
[hqdb0-staging.internal.commcarehq.org] out:  ! These migrations are in the database but not on disk:
@dannyroberts
dannyroberts / preserving-history.md
Last active July 6, 2018 15:04
Moving files with git read-tree to preserve history

Did you know...

...that git lets you move and rename whole directories while preserving the git history of those files?

If you run

git read-tree --prefix=$NEW_PATH -u master:$OLD_PATH
rm -rf $OLD_PATH
# ...you probably want to change some imports...
git commit -m $MESSAGE
@dannyroberts
dannyroberts / subtree-merge
Last active August 29, 2015 14:04
Example subtree merge
git remote add -f couchforms git://github.com/dimagi/couchforms.git
git merge -s ours --no-commit couchforms/master
# --prefix lets you specify where to put the submodule code
# the thing after the colon in couchforms/master:couchforms
# lets you specify what part of the submodule code to merge in
git read-tree --prefix=corehq/ex-submodules/couchforms -u couchforms/master:couchforms
git commit -m "subtree merge couchforms into corehq/ex-submodules"

Error handling antipattern

So I trace down a 500 to the line:

foo.get_bar(bar)

which is raising an IndexError. I figure out it means that there is no such bar, and that in that case we want to do nothing, so I change it to

"""
This file is meant to be used in the following manner:
$ python make_rebuild_staging.py < staging.yaml > rebuildstaging-tmp.sh; bash rebuildstaging-tmp.sh
Where staging.yaml looks as follows:
trunk: master
name: autostaging
branches:
@dannyroberts
dannyroberts / git-aliases.sh
Last active December 16, 2015 20:10
My git-related shortcuts
source /usr/local/git/contrib/completion/git-completion.bash
alias g="git"; __git_complete g _git
alias l="git status"
alias d="git diff"; __git_complete d _git_diff
alias ds="git diff --cached"
alias m="git commit -m "
alias am="git commit -am "
alias a="git add "
alias o-="git checkout --"
alias o="git checkout"; __git_complete o _git_checkout
function delete-pyc() {
find . -name '*.pyc' -delete
}
function pull-latest-master() {
git checkout master; git pull origin master
git submodule update --init
git submodule foreach --recursive 'git checkout master; git pull origin master &'
until [ -z "$(ps aux | grep '[g]it pull')" ]; do sleep 1; done
}
function update-code() {