Skip to content

Instantly share code, notes, and snippets.

View tilmanschweitzer's full-sized avatar

Tilman Schweitzer tilmanschweitzer

View GitHub Profile
#!/bin/bash
git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_DATE" != "$GIT_AUTHOR_DATE" ]
then
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
fi
if [ "$GIT_COMMITTER_DATE" != "$GIT_AUTHOR_DATE" ]
then
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
@tilmanschweitzer
tilmanschweitzer / analyse-slow-psql-queries-and-deadlocks.sql
Last active August 12, 2022 15:19
Analyse slow PSQL queries and deadlocks
# List all queries that are running longer than one minute
SELECT
pid,
now() - pg_stat_activity.query_start AS duration,
query,
state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '1 min'
ORDER BY duration;
@tilmanschweitzer
tilmanschweitzer / moviePilotRatingAnalyser.js
Created May 23, 2017 08:47
Shows diagram for a movie in a movie pilot page.
var moviePilotRatingAnalyser = {
movieId: function () {
return jQuery("[data-type='Movie']").data('id');
},
ratings: function () {
return this.ratingData.map(function (rating) {
return rating.value || 0;
});
},
average: function () {
#!/usr/bin/env bash
JAVA_FILE_ENDING="*.java"
JAVA_MARKER="\/* TODO: Check for data center *\/"
DIRECTORY=$1
if [ -z "$DIRECTORY" ]; then
echo "Usage: $0 <directory>"
COMPONENT_NAME=timepicker
GREP_E_MATCHER="(timepicker|other_string)"
TMP_BRANCH=$COMPONENT_NAME-tmp
git checkout -b $TMP_BRANCH
git filter-branch -f --prune-empty --index-filter 'git ls-files | grep -v -E "$GREP_E_MATCHER" | xargs git rm --cached --ignore-unmatch --quiet' HEAD
git checkout --orphan $COMPONENT_NAME
#!/bin/bash
#
# Bash script to setup headless Selenium (uses Xvfb and Chrome)
# (Tested on Ubuntu 12.04) trying on ubuntu server 14.04
# Add Google Chrome's repo to sources.list
sudo add-apt-repository ppa:chromium-daily/stable
sudo apt-get update
#echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee -a /etc/apt/sources.list
@tilmanschweitzer
tilmanschweitzer / gist:1bad4f98c0c986fa78e1
Last active August 29, 2015 14:25
angular - analyse scopes and watchers
function analyseScopeAndWatchers() {
// fetch all elements with ng-scope class
var scopeElements = Array.prototype.slice.apply(document.querySelectorAll(".ng-scope"));
// map elements to scopes
var scopes = scopeElements.map(function (element) {
return angular.element(element).scope();
});
// filter duplicated scopes created by ng-view
@tilmanschweitzer
tilmanschweitzer / gist:d5985da95e2df27440dd
Last active August 29, 2015 14:07
intercept scope prototype 1.0.x
function interceptFunction (object, fnName, options) {
var noop = function () {};
var fnToWrap = object[fnName];
var before = options.before || noop;
var after = options.after || noop;
object[fnName] = function () {
before.apply(this, arguments);
var result = fnToWrap.apply(this, arguments);
after.apply(this, arguments);
function interceptFunction (object, fnName, options) {
var noop = function () {};
var fnToWrap = object[fnName];
var before = options.before || noop;
var after = options.after || noop;
object[fnName] = function () {
before.apply(this, arguments);
var result = fnToWrap.apply(this, arguments);
after.apply(this, arguments);
var scopeElements = Array.prototype.slice.apply(document.querySelectorAll(".ng-scope"));
var scopes = scopeElements.map(function (element) {
return angular.element(element).scope();
});
var scopeIds = scopes.map(function(scope) {
return scope.$id;
});
var uniqueScopeIds = scopeIds.filter(function(scopeId, index){
return scopeIds.indexOf(scopeId) === index;
});