Skip to content

Instantly share code, notes, and snippets.

View justinbmeyer's full-sized avatar

Justin Meyer justinbmeyer

View GitHub Profile
(async function(data){
function getIssueKey(card){
const field = card.fields.find( ({value, tooltip}) => {
return value.match( /\w+-\d+/)
});
return field.value;
}
function mapJiraKeyToCards(cards){
// get a map of all Jira IDs to cards
{"derivedTiming":{"usedConfidence":50,"defaultOrStoryPoints":21,"storyPointsDaysOfWork":10,"defaultOrStoryPointsMedian":21,"storyPointsMedianDaysOfWork":10,"deterministicExtraPoints":17.56557330838514,"deterministicExtraDaysOfWork":8.364558718278637,"deterministicTotalPoints":38.56557330838514,"deterministicTotalDaysOfWork":18.364558718278637,"probablisticExtraPoints":32.236237144685234,"probablisticExtraDaysOfWork":15.350589116516778,"probablisticTotalPoints":53.236237144685234,"probablisticTotalDaysOfWork":25.350589116516776,"hasStartAndDueDate":"2024-04-20T00:00:00.000Z","startAndDueDateDaysOfWork":26,"hasSprintStartAndEndDate":false,"sprintDaysOfWork":null,"start":"2024-04-20T00:00:00.000Z","startFrom":{"message":"start date","reference":{"summary":"language packs","key":"ORDER-15","dueDate":"2024-05-26T00:00:00.000Z","hierarchyLevel":1,"startDate":"2024-04-20T00:00:00.000Z","type":"Epic","sprints":null,"team":{"name":"ORDER","velocity":21,"daysPerSprint":10,"parallelWorkLimit":1,"totalPointsPerDay":2.1,"

Continuous Exploration

The process of refining ideas into an actionable backlog.

image

["academy/react.html",
"academy/react/sample.html",
"academy/learn-technology-consulting/management.html",
"academy/learn-technology-consulting/tools-and-technology.html",
"academy/learn-technology-consulting/transition-sales-to-delivery.html",
"academy/learn-technology-consulting/prioritizing.html",
"academy/learn-technology-consulting/product-management.html",
"academy/learn-technology-consulting/priorities.html",
"academy/learn-react-the-right-way/sample.html",
Learn more about how the database is created

Foo bar

asdfasdfa

asd fads fsda

async $beforeInsert (queryContext) {
await super.$beforeInsert(queryContext)
validateStartDate(this)
const trx = await Person.startTransaction();
await this.validateAssignmentOverlap(this, trx)
queryContext.resolveTransaction = trx;
}
async $afterInsert (queryContext) {
type CounterState = { count: number };
const initialState = {
count: 0,
};
function Counter() {
const [state, actions, queue, error] = useSimpleReducer(
// initial state
initialState,