- Kanban Flow
- Pivotal Tracker
- Kanbanize - maybe
- ClickUp - doesn't seem to have the right focus of metrics; similar to Pivotal?
- Sprintly
- Rally - too huge
# At cppdh/jenkins:latest | |
FROM jenkins/jenkins:latest | |
USER root | |
RUN apt-get update && apt-get install -y awscli ruby | |
USER jenkins |
<?php | |
class Stub | |
{ | |
private array $stubMethods = []; | |
public function stubMethodChain(array $chain, \Closure $callback): void | |
{ | |
if (count($chain) === 0) { | |
return; |
--- | |
- region: North America | |
zones: | |
- common_name: Hawaii Standard Time | |
core_offset: -10 | |
identifiers: [Pacific/Honolulu] | |
- common_name: Alaska Time | |
core_offset: -9 | |
identifiers: [America/Anchorage] | |
- common_name: Pacific Time |
<?php | |
// outputs phpinfo() with passwords redacted | |
ob_start(); | |
phpinfo(); | |
$phpinfoString = ob_get_clean(); | |
$phpinfoDom = new DOMDocument(); | |
$phpinfoDom->loadHTML($phpinfoString); | |
$x = new DOMXPath($phpinfoDom); | |
$passwordCells = $x->query('//td[@class="e" and (contains(., "PASSWORD") or contains(., "password"))]/../td[@class="v"]'); |
#!/bin/bash | |
errors_for_date () { | |
START_DATE=$1 | |
END_DATE=$2 | |
echo $START_DATE $END_DATE | |
curl "https://api.metrics.heroku.com/metrics/1df0f834-36ae-4f6c-8acb-4e1ec975e166/router/errors?process_type=web&start_time=${START_DATE}T16%3A00%3A00.000Z&end_time=${END_DATE}T16%3A00%3A00.000Z&step=1440m®ion=" \ | |
-H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0' \ | |
-H 'Accept: application/vnd.heroku+json; version=3.monitoring-events' -H 'Accept-Language: en-US,en;q=0.5' \ | |
-s --compressed -H 'Referer: https://dashboard.heroku.com/' -H 'X-Origin: https://dashboard.heroku.com' \ |
require 'pathname' | |
require 'yaml' | |
def exclusions(config, directory) | |
config.flat_map do |k,v| | |
if k == 'Exclude' | |
v.map { |file_name| Dir.glob(directory.join(file_name)) } | |
elsif v.is_a?(Hash) | |
exclusions(v, directory) | |
else |
let datetime = (date) => { | |
return [ | |
date.getMonth() + 1, | |
'/', | |
date.getDate(), | |
'/', | |
date.getFullYear(), | |
' ', | |
date.getHours(), | |
':', |
require 'active_support' | |
require 'active_support/core_ext' | |
require 'kmeans-clusterer' | |
def median(array) | |
sorted = array.sort | |
len = sorted.length | |
(sorted[(len - 1) / 2] + sorted[len / 2]) / 2.0 | |
end |
// $ brew install node | |
// $ npm init | |
// $ npm install -S mocha chai sinon | |
// | |
// $ npm test | |
var sinon = require("sinon"); | |
var expect = require("chai").expect; | |
var LinkedList = function() { |