Public
Edited
Nov 17, 2023
Importers
1 star
Insert cell
Insert cell
Insert cell
['f01234', 'f013456', 'f0101234', 'f02345'].sort(sortMiners)
Insert cell
sortMiners = (a, b) => Number(a.slice(1)) - Number(b.slice(1))
Insert cell
[{ miner: 'f01234' }, { miner: 'f013456' }, { miner: 'f0101234' }, { miner: 'f02345' }].sort(sortMinerRecords)
Insert cell
sortMinerRecords = ({ miner: minerA }, { miner: minerB }) => Number(minerA.slice(1)) - Number(minerB.slice(1))
Insert cell
Insert cell
Insert cell
function agnosticAddDays(date, amount) {
// https://github.com/date-fns/date-fns/issues/571#issuecomment-602496322
const originalTZO = date.getTimezoneOffset();
const endDate = dateFns.addDays(date, amount);
const endTZO = endDate.getTimezoneOffset();

const dstDiff = originalTZO - endTZO;

return dstDiff >= 0
? dateFns.addMinutes(endDate, dstDiff)
: dateFns.subMinutes(endDate, Math.abs(dstDiff));
}
Insert cell
function agnosticDifferenceInDays(dateLeft, dateRight) {
// https://date-fns.org/v2.22.1/docs/differenceInDays
return Math.floor(dateFns.differenceInHours(dateLeft, dateRight)/24)|0
}
Insert cell
dateFns.differenceInDays(d3.isoParse('2021-06-28'), d3.isoParse('2021-06-27'))
Insert cell
dateFns.differenceInDays(d3.isoParse('2021-11-15'), d3.isoParse('2021-06-27'))
Insert cell
agnosticDifferenceInDays(d3.isoParse('2021-11-15'), d3.isoParse('2021-06-27'))
Insert cell
agnosticAddDays(d3.isoParse('2021-06-27'), 141)
Insert cell
quickMenu = `[Provider.Quest](https://observablehq.com/collection/@jimpick/provider-quest)
=> Deals: [Weekly](https://observablehq.com/@jimpick/provider-quest-published-deals-weekly)
· [Daily](https://observablehq.com/@jimpick/provider-quest-published-deals-daily)
· [Hourly](https://observablehq.com/@jimpick/provider-quest-published-deals-hourly)
· [Named Clients](https://observablehq.com/@jimpick/provider-quest-deals-named-clients-hourly)
| [Asks](https://observablehq.com/@jimpick/provider-quest-piece-size-vs-asks)
| [Map](https://observablehq.com/@jimpick/provider-quest-miners-on-a-global-map)
· [Regions](https://observablehq.com/@jimpick/provider-quest-regional-stats)
· [Countries](https://observablehq.com/@jimpick/country-state-province-stats-provider-quest)
· [Sunburst](https://observablehq.com/@jimpick/provider-quest-zoomable-sunburst)
· [Videos](https://observablehq.com/@jimpick/videos-provider-quest)
| [Documentation](https://observablehq.com/@jimpick/provider-quest-documentation)
· [Ideas](https://observablehq.com/@jimpick/ideas-provider-quest)
| [Feeds](https://observablehq.com/@jimpick/provider-quest-feeds)

## NOTICE: Data is no longer being updated
`
Insert cell
md`${quickMenu}`
Insert cell
Insert cell
Insert cell
Insert cell
backupView = enableGithubBackups({
owner: "provider-quest", // Target Github username/organization
repo: "observable-notebooks", // Target Github repo
allow: ['jimpick'] // [optional] Allowed source observablehq logins
})
Insert cell
backups = setup => {
if (setup) {
return backupView
}
return md`Backed up at [https://github.com/provider-quest/observable-notebooks](https://github.com/provider-quest/observable-notebooks/tree/main/%40jimpick)`
}
Insert cell
Insert cell
backupNowButton()
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more