- 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() { |