Algorithm-TimelinePacking

 view release on metacpan or  search on metacpan

examples/conference.html  view on Meta::CPAN

    </div>
    <div class="tooltip" id="tooltip">
        <div class="tooltip-title" id="tooltip-title"></div>
        <div class="tooltip-time" id="tooltip-time"></div>
        <div id="tooltip-speaker"></div>
        <div id="tooltip-track"></div>
    </div>

<script>
// =============================================================================
// INPUT: Raw conference data (sent to server)
// Each talk: [start_minutes, end_minutes, title, speaker, track]
// =============================================================================
var INPUT = [
    [540, 570, "Registration & Colloidal Silver Reception", "", "break"],
    [570, 615, "Opening Keynote: Why Facts Have a Liberal Bias", "George Sorostein", "keynote"],
    [615, 660, "Flat Earth Arrays: Why Your Data Won't Round", "Kyrie Irvington", "beginner"],
    [615, 660, "5G Mind Control: A Networking Deep Dive", "Karen McWiFi", "advanced"],
    [615, 705, "Workshop: Space Lasers and Serverless Architecture", "Margarine Trailer Queen", "workshop"],
    [660, 705, "Birds Aren't Real: An Introduction to Mocking", "Peter McAfee", "beginner"],
    [660, 705, "The Deep State Design Pattern", "Q. Anon Watkins", "advanced"],
    [705, 750, "Vaccine Microchips: A Hardware Deep Dive", "Bill Gatekeeping", "advanced"],
    [705, 750, "Ivermectin-Driven Development", "Dr. Demon Sperm", "beginner"],
    [705, 795, "Workshop: Chemtrails as Code Comments", "Alex Jonestein", "workshop"],

examples/conference.html  view on Meta::CPAN

    [810, 855, "The Great Reset: Migrating from COBOL", "Klaus Schwabernetes", "beginner"],
    [810, 900, "Workshop: Crisis Actors in Your Test Suite", "Sandy Hookwinked", "workshop"],
    [855, 900, "JFK Jr Returns: Zombie Process Management", "Dallas Grassy Knoll", "advanced"],
    [855, 900, "Plandemic: Error Handling for Lab Leaks", "Dr. Judy Mikovits-Clone", "beginner"],
    [900, 930, "Lightning Talks: Things I Learned on YouTube", "Various Patriots", "community"],
    [930, 975, "Closing Keynote: Doing Your Own Research", "Tucker Carlsplaining", "keynote"],
    [975, 1080, "Conference Social & Adrenochrome Tasting", "", "break"]
];

// =============================================================================
// OUTPUT: Pre-computed by Algorithm::TimelinePacking (returned from server)
// Times normalized to start at 0, arranged into non-overlapping lines
// =============================================================================
var EARLIEST = 540;  // Original start time (9:00 AM)
var LATEST = 540;    // Duration in minutes (until 6:00 PM)

var lines = [
    [[0,30,"Registration & Colloidal Silver Reception","","break"],[30,75,"Opening Keynote: Why Facts Have a Liberal Bias","George Sorostein","keynote"],[75,120,"Flat Earth Arrays: Why Your Data Won't Round","Kyrie Irvington","beginner"],[120,165,"Bi...
    [[75,120,"5G Mind Control: A Networking Deep Dive","Karen McWiFi","advanced"],[120,165,"The Deep State Design Pattern","Q. Anon Watkins","advanced"],[165,210,"Ivermectin-Driven Development","Dr. Demon Sperm","beginner"],[270,315,"Election Securit...
    [[75,165,"Workshop: Space Lasers and Serverless Architecture","Margarine Trailer Queen","workshop"],[165,255,"Workshop: Chemtrails as Code Comments","Alex Jonestein","workshop"],[270,315,"The Great Reset: Migrating from COBOL","Klaus Schwabernete...
];

examples/conference.html  view on Meta::CPAN


// Legend
var legend = d3.select("#legend");
Object.keys(COLORS).forEach(function(track) {
    var item = legend.append("div").attr("class", "legend-item");
    item.append("div").attr("class", "legend-color").style("background", COLORS[track]);
    item.append("span").text(LABELS[track]);
});

// Stats
d3.select("#stats").text(INPUT.length + ' sessions arranged in ' + lines.length + ' rooms | Conference runs ' + fmt(EARLIEST) + ' - ' + fmt(EARLIEST + LATEST));
</script>
</body>
</html>

examples/hadoop-jobs.html  view on Meta::CPAN

    <div class="tooltip" id="tooltip">
        <div class="tooltip-title" id="tooltip-title"></div>
        <div id="tooltip-user"></div>
        <div id="tooltip-maps"></div>
        <div id="tooltip-reduces"></div>
        <div id="tooltip-duration"></div>
    </div>

<script>
// =============================================================================
// INPUT: Raw job data (sent to server)
// Each job: [start_epoch, end_epoch, job_id, user, map_tasks, reduce_tasks]
// =============================================================================
var INPUT = [[1700002680,1700002812,"job_1","alice",2121,41],[1700003083,1700003262,"job_2","dave",3464,418],[1700001666,1700001869,"job_3","dave",139,385],[1700002164,1700002466,"job_4","dave",2689,249],[1700001575,1700001709,"job_5","grace",311,430...

// =============================================================================
// OUTPUT: Pre-computed by Algorithm::TimelinePacking (returned from server)
// Times normalized to start at 0, arranged into non-overlapping lines
// =============================================================================
var EARLIEST = 1700000030;  // Original start timestamp
var LATEST = 3753;          // Duration in seconds

var lines = [
    [[756,1039,"job_22","grace",4762,301],[1321,1388,"job_54","eve",845,203],[1545,1679,"job_5","grace",311,430],[1697,2001,"job_37","alice",569,497],[2180,2456,"job_17","eve",1272,308],[2650,2782,"job_1","alice",2121,41],[3329,3400,"job_10","dave",2...
    [[58,124,"job_26","carol",436,368],[340,652,"job_18","alice",2725,308],[678,951,"job_30","grace",4530,24],[1263,1408,"job_74","alice",104,177],[1580,1782,"job_72","carol",2026,190],[1786,2009,"job_44","alice",4672,3],[2217,2391,"job_67","carol",3...
    [[739,795,"job_9","dave",2633,433],[1056,1304,"job_7","alice",1379,145],[1432,1608,"job_14","dave",1167,420],[1660,1934,"job_65","grace",3824,91],[2097,2237,"job_25","dave",1575,228],[2444,2559,"job_13","bob",62,310],[2895,3093,"job_66","eve",427...
    [[721,811,"job_24","carol",3581,26],[1112,1400,"job_71","frank",298,144],[1575,1824,"job_28","frank",4537,188],[1906,1956,"job_12","dave",4074,472],[2152,2271,"job_35","frank",433,126],[2500,2714,"job_32","bob",195,14],[3196,3512,"job_33","carol"...

examples/hadoop-jobs.html  view on Meta::CPAN

        })
        .on("mousemove", function(event) {
            tooltip.style.left = (event.pageX + 10) + 'px';
            tooltip.style.top = (event.pageY - 10) + 'px';
        })
        .on("mouseout", function() {
            tooltip.style.display = 'none';
        });
});

document.getElementById('stats').textContent = INPUT.length + ' jobs arranged on ' + lines.length + ' lines | Timeline span: ' + LATEST + 's | Avg jobs per line: ' + (INPUT.length / lines.length).toFixed(1);
</script>
</body>
</html>



( run in 0.978 second using v1.01-cache-2.11-cpan-13bb782fe5a )