UPDATE: I just sent out emails to collect addresses from the lucky users getting these watches — be on the lookout for those, and try to fill it in the next two weeks! :)

On occasion of our anniversary celebrations, we offered some cheese boards a while back. If you were late for that, though, no sweat! You’re just in time for another limited edition super special swag contest!

This is the bit where you go It’s about time, isn’t it?” To which I’ll reply with “well... yes, it is about time! How d’you guess?!?”

So, if you want one of these with our logo on it:

enter image description here

...then all you need to do is something in which time is the centerpiece! As happened last time around, puns are encouraged, obviously.

You can:

  • Build a time-machine (ok, it doesn’t need to be functional).
  • Write a song or a poem about time (hopefully, something a bit more cheerful than what Pink Floyd did).
  • List a few things you'd drop into a time capsule — either to be used as they usually are, or... to be sent to the past with your time-machine?
  • Write the story of a life-time.

...or anything else you can find the time to do... in time before the deadline. The top 25 entries, as calculated by net upvotes received (not aggregate score, down-voting won't help you win!) will receive this timely package. Whatever it is, you have to be able to submit it as an answer to this question. Links to videos are accepted, however they must be of your own creation and the video must remain available. If either stops being true, your submission will be removed. Also, any code or work of art produced must also be of your own creation.

So, as with the previous context, any format you can think of is allowed: text, images, crayons on newspaper, LEGO, popsicle sticks — as long as you make it temporal... or I guess intemporal or timeless stuff are also accepted...? Anyway, you get the gist!

The Rules

  1. You can post as many entries as you want in good faith as long as they are in line with our terms of service, acceptable use policy and code of conduct. This is also a reminder that all user-contributed content falls under our CC-BY-SA 3.0 license.

  2. Contest is open from 2018-11-27 to 2018-12-27, final entry must be received at or prior to 23:59:59 UTC on the last day. Contest will then be locked for historical reference.

  3. Employees are eligible.

  4. You must be a user in good standing on Meta Stack Exchange during the entirety of the contest, or your entry may be disqualified. Let's have some good, clean fun.

  5. Winners will be notified via email within 10 days of the contest closing. As we will be ordering these based on demand (they're not cheap!), you'll need to allow approximately 30 days for delivery. You'll need to provide us your shipping information privately, in accordance with our privacy policy.

  6. If you win but don't care for watches, we'll give you a selection of other items of approximate value. We want you to enjoy the prize.

  7. Void where contests are prohibited.

Get to it! Time is of the essence!

  • 39
    Phew - posted just in time!
    – Tim Post
    Nov 27, 2018 at 16:23
  • 36
    entry to be completed in 6-8 weeks
    – Glorfindel Mod
    Nov 27, 2018 at 16:27
  • 9
    @rene You could build a time machine out of socks if you really wanted to.
    – Tim Post
    Nov 27, 2018 at 16:31
  • 26
    I don't know if i have time for this...
    – Pikoh
    Nov 27, 2018 at 16:32
  • 67
    @TimPost Requesting a name change to Time Post. Nov 27, 2018 at 16:32
  • 19
    Umm... watch your comments, y'all! Nov 27, 2018 at 16:36
  • 19
    All these puns make me wanna clock someone
    – Erin B
    Nov 27, 2018 at 16:39
  • 7
    Can anyone do something with Jon Skeet's most upvoted answer?
    – user392547
    Nov 27, 2018 at 17:05
  • 12
    I don't know why this was not posted yet: winterbash2018.stackexchange.com
    – MEE
    Nov 27, 2018 at 18:04
  • 52
    I find these contests very nice. However, the answers shoulds be displayed ramdonly, otherwise you are privileging those who got here first and those who have already received lots of votes, since I dont think everybody would check all pages to see what was sent...=(
    – carla
    Nov 28, 2018 at 1:19
  • 6
    I really don't have the time for this. Nov 28, 2018 at 12:49
  • 6
    Clarified the post to explicitly call out for original stuff, @Mari-LouA; thought it was clear enough, but I guess making it outright explicit doesn't hurt :)
    – JNat StaffMod
    Nov 28, 2018 at 14:09
  • 13
    The hours on the "swag" go 1, 1, 1, 4, 5, 6... That's a weird watch! Nov 29, 2018 at 7:06
  • 8
    I guess we'll get emails about our watches in 6-8 weeks? Jan 2, 2019 at 17:21
  • 6
    @JNat curious to know, who are the winners?
    – Div
    Jan 3, 2019 at 10:11

127 Answers 127


Time Exchange

enter image description here

The clocks shown here represent my top SE sites and my routine and how they help.

enter image description here

10:00 is programming time. StackOverflow

14:00 is meeting time. Interpersonal Skills SE

16:00 is (in the code) puzzles-solving time. Puzzling SE

20:00 is movie time. Movies & TV


A long time ago (6 years), I was dreaming to see the StackOverflow way to do Questions and Answers in my mother tongue, which is Spanish.

I found Area51 and went to propose it.

enter image description here

It took a very long time to get enough Spanish speakers to read things in English and fulfill the site requirements to see it start rolling.

enter image description here

Now it is not only alive and going well. It's the time the people can write programming questions and answers for Spanish speakers and the time to contribute and benefit from the huge knowledge base StackOverflow is called to be in any language.

enter image description here enter image description here


The worst thing about being Australian, is that once Tuesday comes around, you have to re-live everybody else's Monday. Like, come on, I just did this like yesterday!


  • 2
    UTC+12 felt your pain 2 hours ago...
    – Criggie
    Dec 1, 2018 at 9:59
  • 1
    But on the upside you get to use the interwebs to foist your case of the mundayz on to people who would otherwise be having a perfectly good weekend.
    – visibleman
    Dec 11, 2018 at 0:18

I know I'm just sitting there trying to come up with an idea for an answer, and then I got busy and forgot, and the contest deadline passed, and I missed out on my chance, as usual.

I both know that's how these things always go. But good news! This one is about time, meaning that this letter from the future will help me out. I can't tell me who wins the contest, since sending this letter back to myself is a bit of a bootstrap paradox, but at least now I have a shot.

So good luck me!

P.S. DO NOT FORGET TO CLICK THE "POST YOUR ANSWER BUTTON THIS TIME". We only get to use this loophole so many times before the auditors catch on.

P.P.S. Stack exchange is trying to censor my attempts to alter the past by removing the salutation "Dear Me," from the beginning of this letter.


You know how the holiday season is. Far too busy. I didn't really have time to put anything together for this contest until after the new year came. So after the celebrations were done, I got to work building a time machine to go back to when the contest was still open. It turns out building a time machine to send a person back in time takes more than a day, but I was able to make one that could send a post back in time to enter the contest.

So wish me luck! Just kidding, I already know how many upvotes I get.

Time is an illusion.  Lunch time, doubly so!

  • Tell us, does Mueller release the findings of his investigation before the New Year? Nov 30, 2018 at 21:33
  • @Mari-LouA I'd say, but I don't think you can use spoiler tags in comments, so I really shouldn't.
    – Cort Ammon
    Nov 30, 2018 at 21:45
  • 121 to 105k in under a month -- that's some serious bounty-collecting! Dec 7, 2018 at 15:21

Ladies and Gentlemen, I am presenting you:

The StackOverflow Time Machine

This machine allows you to go into the past and see the childhood of StackOverflow.

Easy to use in 3 simple steps:

  1. Click on Run Code Snippet
  2. Enter the past date in format DD/MM/YYYY. Once valid date is entered, time travel link will be copied into your clipboard.
  3. Paste the link in new tab and GO, GO, GO!


Disclaimer: Use it at your own risk. If you or your dear one gets stuck in past using this time-machine, neither StackOverflow nor I will be responsible for your loss

This is how the time machine looks:

enter image description here

This code uses https://web.archive.org/ for checking the past snapshot of StackOverflow.

function digitalClock(){
    var date = new Date();
    var h = date.getHours(); // 0 - 23
    var m = date.getMinutes(); // 0 - 59
    var s = date.getSeconds(); // 0 - 59
    var session = "AM";
    if(h == 0){
        h = 12;
    if(h > 12){
        h = h - 12;
        session = "PM";
    h = (h < 10) ? "0" + h : h;
    m = (m < 10) ? "0" + m : m;
    s = (s < 10) ? "0" + s : s;
    var time = h + ":" + m + ":" + s + " " + session;
    document.getElementById("digital_clock").innerText = time;
    document.getElementById("digital_clock").textContent = time;
    setTimeout(digitalClock, 1000);

function getDate() {
  var today = new Date();
  const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
  var dd = today.getDate();
  var mm = today.getMonth();
  var yyyy = today.getFullYear();

 // if(dd<10) {
 //     dd = '0'+dd
 // } 

 // if(mm<10) {
 //     mm = '0'+mm
 // } 

  today = monthNames[mm] + ' ' + dd + ', ' + yyyy;
  document.getElementById("digital_date").innerText = today;
  document.getElementById("digital_date").textContent = today;

function getDDMMYYYY(dateString)
    // First check for the pattern
        return false;

    // Parse the date parts to integers
    var parts = dateString.split("/");
    var day = parts[0];
    var month = parts[1];
    var year = parts[2];
    return [day, month, year];

function isValidDate(d, m, y)

// Parse the date parts to integers
    var day = parseInt(d, 10);
    var month = parseInt(m, 10);
    var year = parseInt(y, 10);

    // Check the ranges of month and year
    if(year < 1000 || year > 3000 || month == 0 || month > 12)
        return false;

    var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];

    // Adjust for leap years
    if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))
        monthLength[1] = 29;

    // Check the range of the day
    return day > 0 && day <= monthLength[month - 1];

function openInNewTab(url) {
    var win = window.open(url, '_blank');
    if (win) {
        //Browser has allowed it to be opened
    } else {
        //Browser has blocked it
        alert('Please allow popups for this website');
$("#day_input" ).keyup(function() {
  var date_string = document.getElementById('day_input').value;
  var ddMMYYYY = getDDMMYYYY(date_string);
  if (ddMMYYYY === false) {
  var dd = ddMMYYYY[0],
      mm = ddMMYYYY[1],
      yyyy = ddMMYYYY[2];
  var valid_date = isValidDate(dd, mm, yyyy);
  if (valid_date === false) {

 // Format number in double digit precision
 dd = ("0" + dd).slice(-2);
 mm = ("0" + mm).slice(-2);

  if (yyyy+'/'+mm+'/'+dd < '2008/09/15') {
  var today = new Date();
  var to_dd = today.getDate();
  var to_mm = today.getMonth();
  var to_yyyy = today.getFullYear();
  if (yyyy+'/'+mm+'/'+dd > to_yyyy+'/'+to_mm+'/'+to_dd) {
  var url = 'https://web.archive.org/web/'+ yyyy + ''+ mm+''+dd+'000000/https://stackoverflow.com';
  var copyText = document.getElementById("hidden_input");
  copyText.value = url;
  $("#go").attr("href", url);
body {
    background: #222426;

.current_time, .past_date {
    position: relative;
.container {
    font-family: Orbitron;
.heading {
    color: #bcbbbb;
    letter-spacing: 3px;
.clock {
    letter-spacing: 7px;
    /*position: absolute;
    top: 10%;
    left: 10%;*/
    /*transform: translateX(-10%) translateY(-50%);*/
    color: #f48024;
    font-size: 20px;
    display: inline-block;
    padding-left: 10px;

.logo {
    width: 180px;
    height: 30px;

.question {
    font-size: 15px;

input {
    margin: 5px;
    height: 20px;

.error, .not_born, .future {
    color: #f48024;
    padding: 8px;
    display: inline-block;

.date {
    display: inline-block;

.go_button {
    letter-spacing: 2px;
    /*background: #bcbbbb;*/
    background: #4CAF50;
    color: #ffffff;
    width: 30%;
    padding: 5px;
    height: auto;
    border-radius: 10px;
    display: block;
    text-align: center;

.small_text {
   font-size: 15px;
   text-align: center;

.large_text {
   font-size: 22px;
   text-align: center;

.go_button {
display: none;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div class="current_time">
    <div class="heading">Current Time: </div>
    <div id="digital_clock" class="clock value"></div>
  <div class="current_time">
    <div class="heading">Current Date: </div>
    <div id="digital_date" class="clock value"></div>
  <div class="heading question">
    Are you ready to time travel into the past of "StackOverflow"?
  <div class="past_date">
    <div class="heading">Select date: </div>
    <div id="digital_clock" class="clock value">
      <div class="date"> 
        <input id="day_input" required pattern="\d{1,2}/\d{1,2}/\d{4}" name="day" placeholder=" DD/MM/YYYY"/> 
    <div class="error">Please enter a valid date in format (DD/MM/YYYY).</div>
    <div class="not_born">StackOverflow.com is not born yet. It is expected to born on 15 September, 2008. Please select date accordingly.</div>
    <div class="future">Hey! Sorry, but this time-machines doesn't allows to take the glimpse of future.</div>
  <div class="past_date hhhh">
    <div class="heading">Time Travel Link: </div>
      <input type="text" value="" id="hidden_input" />
    <a class="go_button" id="go"  target="_blank">
      <div class="text_container">
        <div class="small_text">Time Travel</div>
        <div class="large_text">GO</div>


Review Queue Problems

we have to go back to September 15, 2008 – in 6 to 8 weeks, those review queues will make the stacks overflow


Daffy: "Rabbit season!"

Bugs: "Duck season!"



"Rabbit!" Daffy points to the park-ranger sign.

Sign: "Rabbit season ends Dec 27. Duck season begins Dec 28."

Bugs points to the same sign. "Duck season!"

Daffy glances at his phone. "Wait, what? Oops!"

Daffy was last seen racing out of the frame at high speed.

Better luck next time, Daffy.


If I had a time machine, I go look at my posts
See how they all hold up after you all turn to ghosts.
But what I am afraid would end up being the case
Is everything I've written is too old for first place
All of my links would end up leading to 404
And I would be updating my posts forevermore.
But the reputation gains would wind up being great.
It would be more than Jon Skeet's mil he had in one eight!

  • Can almost (but not quite) be sung to the tune of "Time in a Bottle"!!
    – Scott
    Nov 28, 2018 at 2:01

If you were in Israel when you posted this, I like your style--6:30 is definitely the best time, hands down.

I was thinking of posting a video of me eating a clock made of cheese to combine both challenges, but decided it'd probably be too time consuming.

Unfortunately my clocks were still hungry even after all the cheese from last time--they all went back four seconds!

You know, they say that if you listen closely to the the tick-tock of a clock, you may hear a secret message. Of course you'd only be hearing it second hand.


I made a belt out of watches once. It was a complete waste of time.

  • 12
    "It was a complete waist of time." - FTFY Nov 29, 2018 at 15:35

I wonder how would Time Overflow look like..... hmmmmmmmm..........

Time Overflow Logo:

enter image description here


enter image description here P.S. If you go to timeoverflow.net you might get something like this (perhaps you're just not in the right time):

enter image description here


Since StackOverflow is a programming site and the topic is about time I thought I'd programm a functional analog watch in Javascript:-) And yes it's the actual time :)

Originally it display the analog time in the console but the SO console was too "small" to display it properly so I created my own little console in HTML to show you.

The program is written in pure Javascript with no additional libraries. It uses the midpoint circle algorithm to draw the circle and Bresenham's line algorithm to draw the pointers. Further more it applies some basic trigonometry.

Now watch this and enjoy ;)

const diameter = 30; // diameter of the watch
const factor = 2.6; // because characters are taller than they are wide
const width = diameter * factor; // grid width
const height = diameter; // grid height
const grid = new Array(diameter); // console grid the watch gets rendered into
const elem = document.getElementById("console");

// helpers for StackOverflow
console.clear = function() {
  elem.innerHTML = "";

console.log = function(line) {
  elem.innerHTML += line + "\n";

// clear the grid
function clear() {
    for (let y = 0; y < height; ++y) {
        grid[y] = [];
        for (let x = 0; x < width; ++x) {
            grid[y].push(" ");

// render the grid
function render() {
    for (let line of grid) {

// draws a char at x, y, throws an error if out of bounds
function drawCharacter(x, y, char) {
    x = Math.round(x);
    y = Math.round(y);
    const msg = "Illegal arguments: x:" + x + ", y:" + y + ", char:" + char;
    if (y < 0 || grid.length < y) {
        throw new Error(msg);
    if (x < 0 || grid[y] === undefined || grid[y].length < x) {
        throw new Error(msg);
    if (char.length !== 1) {
        throw new Error(msg);
    grid[y][x] = char;

// draw a circle using midpoint circle algorithm
function drawCircle(x0, y0, radius) {
    let x = radius - 1;
    let y = 0;
    let dx = 1;
    let dy = 1;
    let err = dx - (radius << 1);

    while (x >= y) {
        drawCharacter(x0 + x * factor, y0 + y, "+"); // 3 to 5 o'clock
        drawCharacter(x0 + y * factor, y0 + x, "+"); // 5 to 6 o'clock
        drawCharacter(x0 - y * factor, y0 + x, "+"); // 6 to 8 o'clock
        drawCharacter(x0 - x * factor, y0 + y, "+"); // 8 to 9 o'clock
        drawCharacter(x0 - x * factor, y0 - y, "+"); // 9 to 11 o'clock
        drawCharacter(x0 - y * factor, y0 - x, "+"); // 11 to 12 o'clock
        drawCharacter(x0 + y * factor, y0 - x, "+"); // 12 to 2 o'clock
        drawCharacter(x0 + x * factor, y0 - y, "+"); // 2 to 3 o'clock

        if (err <= 0) {
            err += dy;
            dy += 2;

        if (err > 0) {
            dx += 2;
            err += dx - (radius << 1);



// draw a line using Bresenham's line algorithm
function drawLine(xs, ys, xe, ye) {

    function lowLine(xs, ys, xe, ye) {
        let dx = xe - xs;
        let dy = ye - ys;

        let yi = 1;
        if (dy < 0) {
            yi = -1;
            dy = -dy;

        let d = 2 * dy - dx;
        let y = ys;
        for (let x = xs; x <= xe; x = x + 1) {
            drawCharacter(x, y, "+");
            if (d > 0) {
                y = y + yi;
                d = d - 2 * dx;
            d = d + 2 * dy;

    function highLine(xs, ys, xe, ye) {
        let dx = xe - xs;
        let dy = ye - ys;

        let xi = 1;
        if (dx < 0) {
            xi = -1;
            dx = -dx;

        let d = 2 * dx - dy;
        let x = xs;
        for (let y = ys; y <= ye; ++y) {
            drawCharacter(x, y, "+");
            if (d > 0) {
                x = x + xi;
                d = d - 2 * dy;
            d = d + 2 * dx;

    if(Math.abs(ye - ys) < Math.abs(xe - xs)) {
        if(xs > xe) {
            lowLine(xe, ye, xs, ys);
        } else {
            lowLine(xs, ys, xe, ye);
    } else {
        if(ys > ye) {
            highLine(xe, ye, xs, ys);
        } else {
            highLine(xs, ys, xe, ye);


// convert degrees to radiens
function toRadians(angle) {
    return angle * (Math.PI / 180);

// calculate the slope based on an angle in degrees
function calculateSlope(angle) {
    angle -= 90;
    if (angle < 0) {
        angle = 360 + angle;
    angle -= 180;
    angle *= -1;
    return Math.tan(toRadians(angle));

// calculate the width and height offsets of a line
function calculateLineEndOffsets(slope, len) {
    slope = Math.abs(slope);
    let width = len / Math.sqrt(slope * slope + 1);
    let height = width * slope;
    return [width * factor, height];

// draws the hour pointer
function drawHour(hour, x, y, len) {
    let slope = calculateSlope(360 / 12 * hour);
    let dimensions = calculateLineEndOffsets(slope, len);
    let xDir = hour > 6 ? -1 : 1;
    let yDir = hour < 3 || hour > 9 ? -1 : 1;
    drawLine(x, y, x + dimensions[0] * xDir, y + dimensions[1] * yDir);

// draws the minute pointer
function drawMin(min, x, y, len) {
    let slope = calculateSlope(360 / 60 * min);
    let dimensions = calculateLineEndOffsets(slope, len);
    let xDir = min > 30 ? -1 : 1;
    let yDir = min < 15 || min > 45 ? -1 : 1;
    drawLine(x, y, x + dimensions[0] * xDir, y + dimensions[1] * yDir);

// draws the second pointer
function drawSec(min, x, y, len) {
    let slope = calculateSlope(360 / 60 * min);
    let dimensions = calculateLineEndOffsets(slope, len);
    let xDir = min > 30 ? -1 : 1;
    let yDir = min < 15 || min > 45 ? -1 : 1;
    drawLine(x, y, x + dimensions[0] * xDir, y + dimensions[1] * yDir);

// draws all three time pointers
function drawTime(hour, min, sec, x, y, maxLen) {
    if(hour > 11) {
        hour = hour - 12;
    const msg = "Illegal arguments: hour:" + hour + ", min:" + min;
    if (hour < 0 || hour > 11 || min < 0 || min > 59) {
        throw new Error(msg);

    drawHour(hour, x, y, maxLen / 2);
    drawMin(min, x, y, maxLen / 5 * 4);
    drawSec(sec, x, y, maxLen);


// get current time and draw it
function work() {
    drawCircle(width / 2, height / 2, diameter / 2);
    let now = new Date();
    drawTime(now.getHours(), now.getMinutes(), now.getSeconds(), width / 2, height / 2, diameter / 2 - 1);

// start program
setInterval(work, 1000);
#console {
  width: 100%;
  height: 100%;
  background-color: black;
  color: white;
<pre id="console"><pre>


I was wondering how many Times this question was edited, until now.

enter image description here

enter image description here

enter image description here

enter image description here

  • 4
    Edited only 4 times.
    – Nog Shine
    Nov 30, 2018 at 3:45

Being in a timezone ahead of most people in the world +10 hours ahead (UTC+10) I am able to bring you news from the future.

enter image description here

  • 1
    Aussie eh? still 2 hours after all the Kiwis :-P
    – Criggie
    Dec 1, 2018 at 1:01
  • 1
    @Criggie aye true! The kiwis rule. Beautiful place, awesome people and they're ahead of time :)
    – user310756
    Dec 1, 2018 at 5:18

This time of the year ...

It is kind of funny how well behaved, fast and good-natured children are @ 6:30 am if the way to get to one of these is to be ready, breakfasted, and dressed till 7:15 this time of the year. Pity it is not a all-year-round deal :o)


Just a timer without scripts :) And you can pause it!

span {
  white-space: pre;
  text-align: center;
  line-height: 1.5em;
  height: 1.5em;
  display: inline-block;
  vertical-align: middle;
  margin: 1em 0;
  width: 1em;
  border: 1px solid black;
  overflow: hidden;
  background-color: silver;

#visible:checked ~ span {
  overflow: visible;
  margin: 15em 0;

#pause:checked ~ .t::after {
  animation-play-state: paused;

.t::after {
  content: "0\A 1\A 2\A 3\A 4\A 5\A 6\A 7\A 8\A 9";
  position: relative;

.t1s::after  { animation: digits10 10s   steps(10) infinite; }
.t10s::after { animation: digits6  60s   steps(6)  infinite; }
.t1m::after  { animation: digits10 600s  steps(10) infinite; }
.t10m::after { animation: digits6  3600s steps(6)  infinite; }

@keyframes digits10 { 0% { top: 0; } 100% { top: -15.0em; } }
@keyframes digits6  { 0% { top: 0; } 100% { top:  -9.0em; } }
<input type="checkbox" id="visible" /><label for="visible"> how it works?</label>
<input type="checkbox" id="pause" /><label for="pause"> paused</label>
<br />
<span class="t t10m"></span>
<span class="t t1m"></span>
<span class="t t10s"></span>
<span class="t t1s"></span>


For my submission: A poem of epicmini proportions to rival the Illiad and the Odessy combinedbut not really

Sing to me oh Thalia! Muse of comedy, grant me a loquacious and jocular…keyboard as I regale the regal residents of this raucous and regimented repository with the tale of a heroic stack’s journey through time. Our heroic stack is an eccentric, ephemeral yet elegant collection of a motley crew of the mad scientist make. The hero’s journey has been long and fraught with villains and all kinds of vile and vicious vehemence.

Our journey begins in the back in the barbarous past, in the days of the iPhone 6 and Galaxy Note 4. Nearly five years ago, like the lights of the universe scattered across the void, the internet held a metaphorical mass of glowing and gravitationally grouped gas. A proposal formed from this primordial ooze: Worldbuilding. It sprang into being, a dim but glorious and glittering light. A promise of hope and 335 ways (and counting) to destroy the world.

But alas dear reader! The newborn light was ensnared by a cantankerous, capricious and…curvaceous (also sane and logical but that makes a suuuuper boring villain) Cartaino. The Dread PirateSpace Robert(s) rode in, clad in his black robes on his black steed, nearly snuffing out the newborn star…er, world…building, whatever, he closed the proposal. This thing has entirely too many metaphors going on at once.


Artist's Rendering

Do not fear and do not weep! For brave (or perhaps obstinate) adventurers rose to right these wrongs. They dared to challenge the Dread PirateSpace Robert(s). Prepared to fight to the death, they would shepherd the 8 pound 6 ounce tiny infant ...site into the light. They met on a field tan and blue and an epic, evocative battle unfolded amongst the...lets go back to stars. The adventurers and Dread PirateSpace Roberts clashed in a deadly dance of...words.

Rejoice and give thanks! The light overcame its tribulations and exploded with effulgence. In the merry month of May, the queries began to roll in from users far and wide. 213 brave souls committed to the cause, braving the unknown, leaving the shores of surety and science for the fateful foggy waters of fiction and fantasy (to be fair we do some science too)

Recount, reminisce and remember! Then came September, remember remember the …16th of September...I guess. Anyway as September came to pass the intrepid adventurers began the daunting, dangerous and often perilous path of, I warn you reader the next bit is terrifying, BETA. Beta was wild and west-y, full of aliens and swords, and aliens with swords. Maybe a cowboy, I dunno it was a crazy crazy time full of “what-if’s” and probably some “where-fore’s” maybe even a “whozit” or two. Despite the crazy, a site emerged full of wonder and woe (ok…a lot more woe if we’re honest).

Quoth the blog: “and whatever the heck these awesome people are.”

Brilliance and Grace! They came to us little more than a year later. A year of trials and tribulations and at least one question about ritual cannibalism later, Grace spoke to us. From atop of the misty CM mountain cold doth exclaim: “Congratulations, Worldbuilding is graduating!”

And it was good...

Dreary day o’ dreary world! But things were still amiss in who-ville…er on Worldbuilding. (I watched How the Grinch Stole Christmas last night) The site was a boring blue and white a desolate deserted dreamscape. A new hero arose for a new time: Sir Kurtis of the Beaver. Like a wizened wooly wizard he took a dash of sci-fi, a pinch of fantasy and a balloon whale and concocted a truly curious potion. From this miraculous magical act were birthed a robot of regal renown! The mighty Slartibotfast, a stoic and steady defender, and by his side his intrepid ward; Pandora a wanderer and learner exploring all there is to explore. And thus the Worldbuilding site design came to be.

And it was real, real good...

With apologies to anyone I referenced, the movies etc referenced, the Worldbuilding moderation team, Boris Karloff, the Worldbuilding community, anyone that took the time to read this…sorry you can’t have that time back and the Oxford comma.

  • Seriously who is downvoting these?
    – James
    Dec 18, 2018 at 16:23

Brushing away the tree roots hanging from the ceiling I realised that the unicorn had stopped.

“I will not go further,” he said in his deep, rich voice, “you know the prophecy. There is only one who will be the hero, who will defeat Him who holds the Powers. There is only one who will pass through. I know not if these will be one man, or two. If you attempt the feat, there is no way back. You may find who you are if you tread the Way of Knowledge.”

The unicorn’s silver horn, glittering faintly in the now near-vanished light, pointed to the other end of the hall, blanketed in thick darkness. I glanced around quickly. I could see very little in the near-dark, but I could see the wall close by was of blank, black stone. I shivered. It was getting cold. I walked forward resolutely.

“I wish you good fortune.” came the unicorn’s voice. I looked back. I could no longer see his glimmering white coat. My nerves were now on edge. I could not know what to expect. Grasping the hilt of my still-sheathed sword, I wondered what my doom would be. Would I fail, and die, like others before me? What if I was the one who lived to make it through? Could I return a failure? I did not come with the hope of living, but to rescue my people from the One who tormented them.

Time will come, for oppressor to fall,
Time to stand forth, the hero undaunted,
Time will reveal his name on the wall,
Time will be his, till doom accomplished.

Do not be fooled, believing the lie,
Stars in the water, instead of the sky.

Once foot is set in the Path of Knowledge there is no turning back. One alone shall survive, one alone shall destroy the evil for ever.

I mulled over the prophecy in my mind. The scholars who had trained me seemed to think that it would be revealed to anyone who walked in the Path of Wisdom whether he was the hero. I would soon find out.

Soon I felt the far end of the hall looming up black above me. I could not see anything, until a thread of blue light caught my eye. I looked, and saw a rectangle made of lines as fine as hair, the size of the door-way at the other end of the hall. I put my hand out, and it only met with more darkness. Yes, it was a doorway. I strode through. As I did so, I felt it close behind me. There was no going back. I drew my sword and walked slowly forward, touching the walls of the narrow passage from time to time to make sure they were still there.

Suddenly the walls ended, and I was in an open space. I stood still, wondering where I was, and what would happen next. Then in the dark I saw lines start to appear. I walked closer. The lines were moving and broadening, creating something. After a few seconds I could see writing and what seemed to be clocks. I watched for some time; the clocks moved at the same pace, but much faster than they ought! The times were also different. Then they suddenly stopped. This is what I saw:

![Black wall

The inscription was plain, and in my mother tongue. It read: “Your time is running out. Can you read it?”

Time will reveal his name on the wall.

What is it?


Time. Time is a tricky thing, sometimes. It shouldn't be. It advances, at the rate of one second per second. 60 seconds a minute, 60 minutes an hour, 24 hours a day, 365 days a year. Deceptively simple, it seems. Not even Microsoft could get it right, back in the day.

Take, for example, the horrors of working with dates in MS Access. Is it a string? Access seems to be alright with it. How about a Date? Sure, why not? But that's just basic data types. Every language has those. Here's where things go from reasonable to, "...what did I just see?"

See, Access has a Date type, like I mentioned. It can also be used to instantiate a variable with today's date, ie. Date(). Here's where the fun begins. Date is also a system command that accepts a date. Can you guess what it does?

It sets the system time. So your code will compile, it'll all look okay, and when you run it...well, let's just hope your sanity is at an all time high that day.

There's another quirk of Access related to dates: your computer's regional settings determine how the default date format. Everybody uses MM/DD/YYY? No biggie. You run an (shudder) enterprise Access application throughout the world? Hoo boy. Hope you don't use dates for anything. Or for error handling. Or auditing, logging, or any of those other things that you take for granted. Because now you have MM/DD/YYYY, the more sane DD/MM/YYYY, and I'm guessing everything in between.

Time. It's a funny thing, sometimes. But it can break the hardiest mind, given strange behaviour.

  • Topical, and educational, to boot! Learn from my experiences! Run! Run from the horrors of Access!
    – fbueckert
    Nov 27, 2018 at 17:02
  • 1
    As we all know, the only real date format is the YYYY-MM-DD, everything else is just historical baggage waiting to get thrown out once and for all.
    – zovits
    Nov 28, 2018 at 12:41

Taking inspiration from my favorite time-traveling series, I got a screenshot, then--through openly-available image editing resources (MSPaint and this tool)--turned it into a watercolor-esque piece or art.


enter image description here


enter image description here

  • 4
    That original image is likely under copyright protection... Watch out for emails from Universal Pictures... Nov 27, 2018 at 21:03
  • @HereticMonkey I'd call that a win in and of itself Nov 27, 2018 at 22:15

I still remember it well. I got a call from the chief of staff that night, Mr M. Suckermountain.

"We need you to come in right away Chicken".

I had just worked an 18 hour shift, monitoring posts and collecting data about fighting in-laws.

I laid one last egg before brushing my feathers and walking out the front door. Once I arrived at the HQ there was utter chaos, colleagues muttering and shouting. I didn't hear much of it but the main theme was clear, CThulhu was ready to enter the world once more.

Vague flashbacks took me, I didn't want another taste of his immense power, not after the disaster in 1942.

Ideas were racing through my mind, stay calm chicken.. what's the best action to take in this case?

Me and my team knew there weren't a lot of options to choose from.. I'd have to use my Ultra Wing 30000-X to travel back in time and stop the researchers from reaching the forgotten manuscripts.

I called up my friend E. Musk, a valued chicken, telling him to meet at my place and strap up for some action.

Once back in the barn me and my companion put on our time suits and stepped into the 2 capsules used by the 30000.

3 .. 2 .. 1 .. ERROR!!!.

Surprised and blinded by the bright red led I had installed I took off my time suit, "Why can nothing ever work in a single try..grr" I muttered.

I stepped out of the capsule and went to check on the device. On checking the output log I saw the following:

Cluck Cluck Tuck Tuck Cluck Cluck

Cluck Cluck Chuck Chuck Cluck ...

AHA, NullPointerException at ChickenLaunchSequenceFactoryGeneratorImplementationReally::Run(). I knew I should've picked anything but Java-Chicken, this JRE is faulty.

One quick hotpatch later I got back into the capsule, put my suit back on and reinitialized the system.


A bright flash took over my vision and before I knew it I was back at the old ruins, standing eye to eye with the researchers that were looking at me and my friend, completely speechless.

Musk handed me my Cluckaroo-translation-machine and I started explaining to the researchers what they had done by retrieving those manuscripts. Still shocked, I used my Clucka 3.0 with Cluck-OS to show video footage of what happened in '42. They finally started trusting me and promised me they'd never enter these ruins again.

"Well that went better than expected" I said triumphantly to my buddy. He nodded and pointed back to the 30000-X, "lets get back home, I still need some milk before sunset".

SysAdmin Sombrero Chicken saved the day once again.


My favorite crypto secure PRNG :

  • It's only 32-64 bits of entropy at best.
    – DannyNiu
    Nov 28, 2018 at 15:25

I've always heard that Time and Space are two sides of the same coin...


  $('#coin').on('click', function(){
    var flipResult = Math.random();
      if(flipResult <= 0.5){
        console.log('it\'s Time!');
        console.log('it\'s Space!');
    }, 100);
body {
  padding-top: 10px;
  background: #F7F7F7;
  -webkit-perspective: 800px;
  text-align: center;
#coin {
  position: relative;
  margin: 0 auto;
  width: 100px;
  height: 100px;
  cursor: pointer;
#coin div {
  width: 100%;
  height: 100%;
  -webkit-border-radius: 50%;
     -moz-border-radius: 50%;
          border-radius: 50%;
  -webkit-box-shadow: inset 0 0 45px rgba(255,255,255,.3), 0 12px 20px -10px rgba(0,0,0,.4);
     -moz-box-shadow: inset 0 0 45px rgba(255,255,255,.3), 0 12px 20px -10px rgba(0,0,0,.4);
          box-shadow: inset 0 0 45px rgba(255,255,255,.3), 0 12px 20px -10px rgba(0,0,0,.4);
.side-a {
  background-color: #dd0000;
.side-b {
  background-color: #5f5f5f;
  text-align: center;

#coin {
  transition: -webkit-transform 1s ease-in;
  -webkit-transform-style: preserve-3d;
#coin div {
  position: absolute;
  -webkit-backface-visibility: hidden;
.side-a {
  z-index: 100;
.side-b {
  -webkit-transform: rotateY(-180deg);

img.h {
  height: 100%;
  width: 100%;

img.t {
  height: 50%;
  width: 50%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
  display: block;
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);

#coin.heads {
  -webkit-animation: flipHeads 3s ease-out forwards;
  -moz-animation: flipHeads 3s ease-out forwards;
    -o-animation: flipHeads 3s ease-out forwards;
       animation: flipHeads 3s ease-out forwards;
#coin.tails {
  -webkit-animation: flipTails 3s ease-out forwards;
  -moz-animation: flipTails 3s ease-out forwards;
    -o-animation: flipTails 3s ease-out forwards;
       animation: flipTails 3s ease-out forwards;

@-webkit-keyframes flipHeads {
  from { -webkit-transform: rotateY(0); -moz-transform: rotateY(0); transform: rotateY(0); }
  to { -webkit-transform: rotateY(1800deg); -moz-transform: rotateY(1800deg); transform: rotateY(1800deg); }
@-webkit-keyframes flipTails {
  from { -webkit-transform: rotateY(0); -moz-transform: rotateY(0); transform: rotateY(0); }
  to { -webkit-transform: rotateY(1980deg); -moz-transform: rotateY(1980deg); transform: rotateY(1980deg); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="coin">
  <div class="side-a">
    <img class="h" src="https://i.stack.imgur.com/bXCdO.png">
  <div class="side-b">
<h1>Click on coin to flip</h1>

Credit for most of the code goes to https://codepen.io/le0864/pen/pbmoVQ


I created a magical time estimation tool.

Next time you need to know how long something will take (for example if you win a nice new watch and want to know when it will arrive):

  1. Run this snippet.
  2. Click the How long will it take? button.
  3. Get your answer!

var _0x2195=['getElementById','innerText','classList','remove','hidden','6\x20weeks','7\x20weeks','8\x20weeks','floor','length'];(function(_0x157e03,_0x2139d2){var _0x45fc68=function(_0x385b9f){while(--_0x385b9f){_0x157e03['push'](_0x157e03['shift']());}};_0x45fc68(++_0x2139d2);}(_0x2195,0xb9));var _0x5ebf=function(_0x4366b4,_0x1c1e6d){_0x4366b4=_0x4366b4-0x0;var _0x49332d=_0x2195[_0x4366b4];return _0x49332d;};const times=[_0x5ebf('0x0'),_0x5ebf('0x1'),_0x5ebf('0x2')];function newTime(){var _0x5a92e6=times[Math[_0x5ebf('0x3')](Math['random']()*times[_0x5ebf('0x4')])];const _0x2af59a=document[_0x5ebf('0x5')]('time');_0x2af59a[_0x5ebf('0x6')]=_0x5a92e6;_0x2af59a[_0x5ebf('0x7')][_0x5ebf('0x8')](_0x5ebf('0x9'));}
<div><button onclick="newTime();">How long will it take?</button></div><div id="time" class="hidden"></div>

This might also come in handy next time you need to estimate how long it'll take to write some code, but just make sure you keep Hofstadter's law in mind.

  • This isn't at all accurate. As a developer myself, I never estimate anything will take 6-8 weeks. I always guess, "Meh. A few hours. Tops." and then get pushed into crunch mode three days later. Can you add real-life possibilities as well? Nov 29, 2018 at 17:19
  • 4
    @DCOPTimDowd I've filed your feature request and will work hard to include it in version 2.0. Let me just estimate how long that will take... Nov 29, 2018 at 17:47

A Flash clock (I created this 5 years ago when Flash wasn't almost dead, and when I was 14)

@>>> https://github.com/iBug/FlashGadgets/tree/master/Clock

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script type="text/javascript">swfobject.embedSWF("https://raw.githubusercontent.com/iBug/FlashGadgets/master/Clock/Clock.swf", "myContent", "640", "480", "8.0.0");</script>
<div id="myContent">
<p>Did you enable Flash? Alternatively, you can download the demo <a href="https://raw.githubusercontent.com/iBug/FlashGadgets/master/Clock/Clock.swf">here</a> and the source project (Flash 8) <a href="https://raw.githubusercontent.com/iBug/FlashGadgets/master/Clock/Clock.fla">here</a>.</p>


You can find the project here.

var hr = _root.createEmptyMovieClip("hr",_root.getNextHighestDepth());
var min = _root.createEmptyMovieClip("min",_root.getNextHighestDepth());
var sec = _root.createEmptyMovieClip("sec",_root.getNextHighestDepth());


hr._x = Stage.width/2;
hr._y = Stage.height/2;
min._x = Stage.width/2;
min._y = Stage.height/2;
sec._x = Stage.width/2;
sec._y = Stage.height/2;

_root.onEnterFrame = function(){
    var time:Date = new Date();
    sec._rotation = time.getSeconds()*6;
    min._rotation = time.getMinutes()*6+time.getSeconds()*0.1;
    hr._rotation = time.getHours()*30+time.getMinutes()*0.5+time.getSeconds()/120;

Build a time-machine (ok, it doesn’t need to be functional).

Here you go, a fully functional time machine and ...




  • Not original, unless you work for Apple.
    – DannyNiu
    Nov 28, 2018 at 15:26

To paraphrase the late, great, Lewis Carroll:

The time has come,' the Atwood said,
      To talk of many things:
Of waffles — and unicorns — and plural tags —
      Of upvotes — and flags —
And parsing HTML with regex —
      And whether Skeet is short for Skynet.'



... And yes, it is all supposed to be exactly like that, especially the error message. ;-)

      var a = [
var i = 1;
var node = document.createElement('style');
node.innerHTML = decodeURIComponent(atob(b));
for (let l of a)
    var t = decodeURIComponent(atob(l));
    var p = document.createElement("div");
    p.innerHTML = t

function dropLine() {
    p = document.body.children[i];
    i = i + 1;
    window.setTimeout(dropLine, 5000);

If I see the clock, I find time in human terminology.
If I see life around me, I find there is no time just now.

Not the answer you're looking for? Browse other questions tagged .