Show HN: Live-updating version of the 'What a week, huh?' meme

655 pointsposted 14 hours ago
by dlazaro

131 Comments

Kwpolska

2 minutes ago

> Current time is determined by a Cloudflare Worker using the request IP (not logged or stored). No JavaScript is sent to the browser.

That’s a strange design. If you sent just ~10 lines of JavaScript to the browser, you could achieve an actually live-updating version (i.e. not only on page refresh), and you could use the actual time zone of the user instead of assuming it based on GeoIP. Your page could exist with zero server-side code.

isoprophlex

7 hours ago

This is absolutely fantastic, well done!

If you're not done playing with it, you can make it dynamic so it's always accurate, haha! Show the smallest "uncompleted" unit of time available with a fallback for December 31st evenings where tintin simply says nothing...

At night: select the week.

Also end of the week: select the month.

Also end of the month: select the year.

Also end of the year: fallback.

ritcgab

40 minutes ago

At the end of the year: select the decade.

Dec 31 2030 will be monumental.

kemayo

3 hours ago

That's a good idea -- it'd preserve the intent of the meme, which is to always be conveying "it has not been as long as it feels like based on events".

As-is, if I visit and see "what a day / it's Friday", that's kinda missing the point.

dlazaro

7 hours ago

Great suggestion, and thank you!

FearNotDaniel

10 hours ago

> Current time is determined by a Cloudflare Worker using the request IP

I was scratching my head for a while wondering why you need an IP address to determine the current time… I’m inferring this means geo-locating the IP to determine the client’s time zone and then using that to convert server time to the user’s local time, right?

Makes me think, it would be nice if there was a standard request header to specify preferred TZ for 'local time', just like Accept-Language (which sadly quite a few websites ignore and show me German-language content anyway just because my location is in a German-speaking country).

Still, great work OP :-) now can anyone tell me why Tintin is trending at the moment? Did I miss something? All my feeds seem to be suddenly full of Tintin content right now.

pavlov

9 hours ago

> “why Tintin is trending at the moment”

The Tintin character entered public domain in many countries in January 2025.

I think this “What a week” image is from a 1930 album (“The Crab with the Golden Claws”), so it’s part of the public domain now and can legally be used for things like this meme generator.

The situation in EU is different though. Hergé died in 1983, and I think his entire oeuvre has 75 years of protection after his death. I’m not 100% sure.

zinekeller

8 hours ago

> The Tintin character entered public domain in many countries in January 2025.

Many countries or only US (which uses the publication date)? Considering that the original publication is in Belgium and that almost all countries use the author's death as the benchmark, I am not so sure (even with the rule of the shorter term).

zinekeller

6 hours ago

Update: Wikipedia's copyright notes regarding a Tintin file... is definitely not what I've expected https://en.wikipedia.org/wiki/File:Tintin_and_Snowy_from_Tin...

> Also note that this image may not be in the public domain in the 9th Circuit if it was first published on or after July 1, 1909 in noncompliance with US formalities, unless the author is known to have died in 1954 or earlier (more than 70 years ago) or the work was created in 1904 or earlier (more than 120 years ago.)

And links to this footnote (https://guides.library.cornell.edu/copyright/publicdomain#Fo...):

> The differing dates is a product of the question of controversial Twin Books v. Walt Disney Co. decision by the 9th Circuit Court of Appeals in 1996. The question at issue is the copyright status of a work only published in a foreign language outside of the United States and without a copyright notice. It had long been assumed that failure to comply with U.S. formalities placed these works in the public domain in the United States and, as such, were subject to copyright restoration under URAA (see note 10). The court in Twin Books, however, concluded "publication without a copyright notice in a foreign country did not put the work in the public domain in the United States." According to the court, these foreign publications were in effect "unpublished" in the United States, and hence have the same copyright term as unpublished works. The decision has been harshly criticized in Nimmer on Copyright, the leading treatise on copyright, as being incompatible with previous decisions and the intent of Congress when it restored foreign copyrights. The Copyright Office as well ignores the Twin Books decision in its circular on restored copyrights. Nevertheless, the decision is currently applicable in all of the 9th Judicial Circuit (Alaska, Arizona, California, Hawaii, Idaho, Montana, Nevada, Oregon, Washington, and Guam and the Northern Mariana Islands), and it may apply in the rest of the country.

Also, Disney lost here (Accordingly, we reverse the summary judgment in favor of [Disney & co.]). It might not even PD in the US if this is upheld (and it seems so).

kleiba

10 hours ago

You could also compute the speech bubbles on the client's side...

berkes

10 hours ago

Yes, but it seems

> No JavaScript is sent to the browser.

Is a design goal. I doubt it is possible without JS. Especially inside SVG.

dlazaro

8 hours ago

Yes, that was a design goal!

It is probably technically possible to have the time continue to update with just CSS on the client (based on [1]), but the initial time still has to be set server-side.

[1] https://css-tricks.com/of-course-we-can-make-a-css-only-cloc...

lordmauve

6 hours ago

I'd argue this is the wrong design goal: correctness is more important.

I'm in the UK but my work PC's Internet exit node is in New York due to enforced use of corporate proxies, so the time shown to me is 5 hours out. Javascript would report the correct timezone.

It is not possible to correctly identify physical location from IP addresses. Not just because of proxies and VPNs and the accuracy of the data: you can go near a border and find your mobile phone connects to a cell tower in a neighbouring country, without even visiting! IP Geolocation is accurate enough for statistics and marketing but probably shouldn't be used for anything user-facing.

rpastuszak

9 hours ago

(Thinking aloud) How I'd approach that:

- you could render the page using puppeteer server-side, getClientRect/calc and apply the dimensions to the path, then spit back the markup, OR

- you could use HTML + CSS to render the bubbles

encom

2 hours ago

"Tonight: Orange Reddit over-engineers a meme website that any normal person would just make with seven PNG files and getDay()."

rpastuszak

an hour ago

you might be laughing now, but following the spirit of the Orange Website, I'm building a moat with all of that know-how

Cthulhu_

8 hours ago

...is it pedantic if I ask if WASM is considered JS and / or whether it can run without any assistance from JS?

I mean in the 2000s there were a number of other options (flash, silverlight, java, probably more) but that era is behind us, and that would be extra pedantic.

oneeyedpigeon

9 hours ago

I assumed something like this header already existed because it's such an obvious need, but...

> All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception.

according to [rfc2616](https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3....). Presumably that makes a lot of awkward conversions unnecessary, but a separate TZ header would be a great addition.

FearNotDaniel

6 hours ago

Yeah that HTTP date format thing is kind of orthogonal - the same document slightly later explicitly says it's talking about the format used within HTTP messages/headers and not relevant to user-facing display within the page content. Which in that case makes a lot of sense because it's effectively saying "use UTC everywhere".

jraph

9 hours ago

It could be a get parameter, with a picker allowing you to select your timezone.

FearNotDaniel

6 hours ago

That would be an absolutely awful user experience, unless there was also a way to default to knowing what the user's actual local timezone is without them having to manually pick it from a list of the 38 or so currently in use. I mean, you could try to persuade browser builders and site developers that this new get parameter is a standard that is automatically added to all requests by all browsers, and honoured if the site developers feel like it, but that's kind of messy and effectively doing the same job that request headers were designed to do.

RicoElectrico

10 hours ago

> Makes me think, it would be nice if there was a standard request header to specify preferred TZ for 'local time',

That's a another data point for fingerprinting, sadly. Not that Chrome would care, but Firefox and Safari teams do, I guess.

snailmailman

10 hours ago

I believe this is already a thing? In JS at least

Firefox’s “resist fingerprinting” does a lot of things to stop fingerprinting. One of those things is that it fakes my time zone as being UTC. 99% of of the time I never notice this being an issue. But occasionally I’ll try to pull up the wordle late in the day and get tomorrows puzzle.

FearNotDaniel

6 hours ago

True. But pro-privacy is the argument that the server no longer needs to geo-lookup your IP address and find out where you are with much greater accuracy than is needed to determine what timezone you would like dates/times to be displayed in.

eknkc

8 hours ago

It’s available on the client side where most of the fingerprinting happens using JS.

And I feel like this is a lost cause at this point. Just assign every one of us a unique online ID and be done with it.

asddubs

10 hours ago

well, for almost everyone this information is contained within the IP anyway, though.

FearNotDaniel

6 hours ago

In what sense is the user's local time zone "contained within" the IP? The only way I know to get from an IP address (i.e. those four eight-bit integers separated by period signs) to a client-side timezone is first to use a Geo IP lookup table to obtain a physical location (usually, but not always correct), and then use a timezone database to look up the current political timezone in that location. Sure, some server setups will automate this for you so that the already-looked up information is contained within the request object that your chosen language/framework supplies. Is there something I've missed about those four eight-bit integers somehow directly encoding information that specifies the user's timezone, or did you mean something different?

lgas

10 hours ago

It could be opt-out/opt-in and then all six users that care about privacy could do as they wished.

timlyo

10 hours ago

Sadly that almost makes things worse, if it's off then it's a data point that helps to id privacy conscious people.

oneeyedpigeon

9 hours ago

Just use a default (GMT) for people who don't want to disclose it.

cprecioso

11 hours ago

As a tip, you can use the `<meta http-equiv="Refresh">` tag [1] to make the browser automatically refresh after N seconds and keep the tab always up to date.

[1]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/me...

panki27

9 hours ago

W3C has deprecated this for a long time now: https://www.w3.org/TR/WCAG10-HTML-TECHS/#meta-element

code_biologist

8 hours ago

Soo... browsers will likely support it until the end of the internet?

Cthulhu_

8 hours ago

Yup, unless HTML6 is backwards-incompatible, which is highly unlikely.

cprecioso

8 hours ago

Yeah, it's not great UX for web apps, but for a toy project like this it's good enough if you don't want any JS. It still works even if deprecated, and if it stops working, it doesn't take anything away.

9dev

10 hours ago

Does that mean I can also send the „Refresh“ http header to do that?

Svip

10 hours ago

Can't believe it took me this long to notice, the meme itself is an altered image of the original comic. Obviously, the speech bobbles are too clean compared to the rest of the comic, but I also notice now that they are a poor imitation of Hergé's distinct speech bobbles.[0]

[0] https://i.kym-cdn.com/photos/images/original/002/125/139/0ff...

dlazaro

8 hours ago

I am debating making a better version where the bubbles are appropriately sized and look nicer and the background is smoother, but I thought it might take away the ‘memeyness’ of it.

I just went with the original background made by the person who seemingly invented the meme format on Tumblr: https://www.tumblr.com/incorrecttintin/162088281738

berkes

6 hours ago

Hergé took a lot of effort to get details right. Not just the drawings¹, but also the layout and lettering of the speech bubbles.

I own all TinTin comics in Dutch (some old collectors items) and a very few in French. Dutch is often a lot longer than French, and sometimes shorter - it doesn't use the same amount of letters, let alone the same width of them. The French is ever slightly more pleasing, but noticable so.

The English translation you linked to, is even ugly in some places, it lacks the balance and spacing that Hergé often meticulously and deliberately used to convey extra meaning or balance.

¹ From The Blue Lotus on, Hergé devoted far more attention to accuracy. Which is all the more impressive because he then distills all that accuracy to the most simple lines. I am a fan. And yes, there is certainly controversy, his early work is clearly very racist and colonial - which shows the ideas of the times they were drawn in clearly.

latedog

9 hours ago

IDK why, but this reminds me of earlier days of internet, when it was full of random, non-usable but funny content like this. Best things often don't make that much sense.

executesorder66

7 hours ago

What do you mean non-usable? You could totally spam the work slack channel with these.

hnaccount_rng

5 hours ago

I don't think you are meaning quite the same "early internet" if you are referring to Slack channels xD

executesorder66

43 minutes ago

As sibling comments have correctly guessed, I was only responding to the "non-usable" part of the parent comment. But yeah, replace slack with IRC, email, or whatever you were using at work back in the day.

Ensorceled

4 hours ago

Pretty sure they were addressing the "non-usuable" part and not the "early " part.

ghayes

an hour ago

Though, sadly it's not a true image; it's composed as an SVG in HTML. So you can't copy-paste the image into chats.

executesorder66

40 minutes ago

I noticed that after the fact as well. You could always manually take a screenshot to turn it into a jpg. Or just send the link.

cprecioso

8 hours ago

I miss StumbleUpon

reverendsteveii

5 hours ago

stumble was the algo sweet spot. an endless feed of things that are slightly better than being alone with my thoughts, but no parasocial "community" with concomitant toxicity.

ilrwbwrkhv

3 hours ago

Yeah I think what killed the web was Google and Facebook.

The former brought massive amounts of spam and the latter brought real identies which broke the freedom of the internet.

Or in other words, both brought the Internet and made it real and connected with the real world. And I think that's not a good thing. The Internet was supposed to be a virtual space for exploration, learning, fun, and it should have had no bearing on our actual day-to-day living experience.

But now here we are where Google is a spam filled search engine which hardly returns any products and Facebook is a dystopian wasteland and its founder is walking around like a teenage pimp.

herval

3 hours ago

I don't think real identities broke the internet... what really did it was the perfecting of the addiction formula, by multiple companies (from facebook to king). It turned it into an Opium den

ilrwbwrkhv

3 hours ago

I think companies would have had a much harder time in perfecting the addiction formula if things were anonymous.

SiempreViernes

3 hours ago

We all still had defined identities back then, the nicks, even if we didn't use real names. And those are enough for targeting.

herval

an hour ago

Tiktok is entirely anonymous (well other than you showing your face if you post). So is Reddit. So is Candy Crush...

asdff

an hour ago

I consider sites like facebook to be akin to diverting water from the Colorado river. At one point it looked like the nile delta from antiquity and today barely a trickle if that at some times reaches the sea with so much water diverted. The ecosystem diversity falls apart.

dingnuts

2 hours ago

>The Internet ... should have had no bearing on our actual day-to-day living experience.

Replace "The Internet" with previous communications technology and maybe that will demonstrate how completely unrealistic that sounds. Television should have had no bearing on our day-to-day existence? Phones? Radio?

I guess you can arbitrarily draw the line at the Internet, sort of like the Amish did with electricity. But it seems arbitrary to me.

The moral of every sci-fi story is that technology is morally neutral and it's how you use it that matters. Why would The Internet be different?

singleshot_

an hour ago

BBSes had absolutely no bearing on my day to day existence. No one had a job working at Big BBS and there was not a constant drumbeat of hustle culture strugglebussing surrounding the idea of using a modem to post messages.

This was the ideal final form of the internet and we lost it forever. Now, we have sludge.

lippihom

6 hours ago

Ahhh - golden age of internet fun. Looks like they sold the domain and/or pivoted a bit. Feel like a modern version would be relatively easy to monetize if someone were to ramp it up again.

matteason

6 hours ago

I've noticed https://clicktheredbutton.com quite a lot in my referrer analytics. I don't know if it's as featureful as StumbleUpon was (I never used it) but it seems to have some fun sites

dlazaro

8 hours ago

Happy to hear that — it’s what I was going for :)

Cthulhu_

8 hours ago

If it was horrible and had music, it'd be like YTMND

jraph

8 hours ago

A form of art :-)

dhosek

3 hours ago

dancing hamster

xtiansimon

7 hours ago

More clicking, please. OP mentions different versions, but you can’t get to them from one another (at least on mobile). The hyperlink is the aesthetic of www. If you don’t have them, then it should be evident why not. Leaves me scratching me head.

dlazaro

6 hours ago

I did that intentionally because the only thing I wanted on the page was the comic panel. I may reconsider and add a small info button in the corner of the page with links to other timescales and the source code.

But I'm also trying not to overthink this too much... It's just a silly little website I made in an evening.

skeeter2020

5 hours ago

if you are going for a "classic" internet aesthetic, remember we loved wonky, quirky (and annoying) UX! If it's not grey background with blue and purple links (and a server timestamp in italics!) it's got to be completely custom & non-standard. My request is image maps please!

whstl

6 hours ago

I like the minimalism myself.

eterpstra

7 hours ago

Welcome to ZOMBOCOM

dylan604

4 hours ago

To this day, I still can't figure out how to do anything

staplung

an hour ago

You can do anything at Zombocom. The only limit is yourself. The infinite is possible at Zombocom!

dylan604

41 minutes ago

> The only limit is yourself.

Kick a man while he's down why don't you? /s

It takes courage to admit not being able to do anything!

lambdaba

an hour ago

Cute, but I find it funny to reach for Astro, a framework with over 400 dependencies, just for this. I'm sure it's super convenient, so maybe it's more of a principled take.

dlazaro

an hour ago

I chose it because it’s what I'm used to and because it makes it really easy to do SSR (I wanted no JS to be sent to the client).

reverendsteveii

5 hours ago

I like the way the humor of this joke travels along a spectrum from relatability to absurdity as time cycles. Using the weekly one as an example, I think it achieves peak relatability on a wednesday, because that's the best intersection of being deep enough into the week to feel like its been a long one but also not so far into the week that you're seeing the light at the end of the tunnel and feeling hopeful. Peak absurdity for most people would likely be the weekend. I'll not be hearing arguments for Thursday, as I could never get the hang of Thursday.

gglanzani

5 hours ago

I actually said “have a good weekend” to the baker last week on Monday, so, for me, anything until Wednesday checks out

fsckboy

4 hours ago

>[1] https://knowyourmeme.com/memes/what-a-week-huh

>"In the episode, the character Liz Lemon, portrayed by Tina Fey, complains to character Jack Donaghy, portrayed by Alec Baldwin, about having finished a hard week of work, with Donaghey reminding her that it is still Wednesday"

I don't know any context beyond what's in this clip of Liz Lemon saying it to Jack https://www.youtube.com/watch?v=1z3uGyBM_1c

but "what a week" by itself does not indicate that the week is over, you can say "what a week" in the middle of a week; it would imply more the multiplicity of things that have already gone wrong, and "it's Wednesday" as a response has the sense "and it's only Wednesday, more things can still happen"

dylan604

4 hours ago

In writing classes, adding all of that unnecessary dialog is considered insulting to the audience. If you are trying to write a joke for the lowest denominator audience member, then you will alienate a larger portion of the audience. If every single joke needed that much additional context, it's not a funny joke. If you're going to require the writers to add that much dialog, you might as well ask them to add a laugh track

Ylpertnodi

an hour ago

Truth be told, that's all the one of the differences between American and British comedy.

Slapstick is cool, but irony needs to be understood.

snarkyturtle

an hour ago

The proper context, too, is that Liz Lemon is in charge of showrunning a Saturday Night skit show and is facing many challenges. "Lemon, it's Wednesday" implies that there are many things that can go wrong in between Wednesday and Saturday.

azaaaz

9 hours ago

Thanks for this haha :) I would love to it translated in other languages (this meme is international), especially in French, Hergé[0]'s original language. It may be a good idea to open-source it !

[0] https://en.wikipedia.org/wiki/Herg%c3%a9

frizlab

9 hours ago

Tangentially related, in English (and most languages) there are usually no spaces (or non-breaking spaces, which is the correct space before a punctuation marks in French) before the exclamation point (and interrogation point, semicolon and colon).

wizzwizz4

6 hours ago

Technically, the correct space before punctuation marks / within guillemets in French is U+202F (narrow non-breaking space).

wodenokoto

an hour ago

How does the joke play out on Saturday or Sunday?

“Captain, it’s Sunday” … I don’t get it.

cyberlimerence

8 hours ago

I was wondering why the caption was empty, but it's because of my Dark Reader extension inverting the text color to white, without touching the box color. Just a heads up.

dlazaro

8 hours ago

Ah, that’s too bad. I do plan to update it so that the speech bubbles are SVG objects instead of embedded in the image, which should make it dark mode-friendly.

cryptonym

10 hours ago

Not to be nitpicking but Cloudflare will log and store request metadata, including user IP.

dlazaro

8 hours ago

Valid, not nitpicking!

inatreecrown2

9 hours ago

Yes! this is what the internet was made for. Good job!

Secretmapper

11 hours ago

I thought it would be a hotlinkable image that updates.

Linkd

an hour ago

Yeah.. it would be straight forward to make this into an image and make it so much more usable

jraph

9 hours ago

It's close, the website could send the bare SVG instead of an SVG embedded in a HTML page :-)

derektank

12 hours ago

The panel takes on an almost ominous tone when you're nearing the end of your day and Tintin is right there to tell you it's nearly midnight

DC-3

11 hours ago

What a life, huh?

Captain, you're 84!

pahbloo

9 hours ago

Awesome idea! Just a thought, but a century version would be spot-on!

dlazaro

8 hours ago

Thanks for the suggestion, will do! (I’ll also be open-sourcing it, as I probably should’ve done before posting)

khaneja

5 hours ago

I would love an iOS version of this to put a widget on my phone!

chichumichu

6 hours ago

I woke up and wanted to make this for a tuesday.Thanks.

Ayesh

4 hours ago

If only HTML had a locale-aware <time> element with custom date formatting :(

apexalpha

9 hours ago

Could you perhaps make one for the current US President? Seem fitting for the theme.

Cthulhu_

8 hours ago

"What a presidency, huh?"

"Captain, it's week 5"

gvx

9 hours ago

What a fun little project! I thought it was going to be the 30 Rock one!

user

11 hours ago

[deleted]

tcascais

7 hours ago

Omg I loved it so much. Thanks :)

guilbep

9 hours ago

Can someone vectorize the image please ? :p

MHM5000

9 hours ago

fun! open source it, we can add more calendars and languages :D

rcarmo

12 hours ago

This is the meme we needed.

zoklet-enjoyer

8 hours ago

I've been having one of those weeks. This is hilarious. Thank you.

HelloUsername

10 hours ago

Can't "What a ", ", huh?" and "Captain, it's " be hard-coded / image? Also, nearing the end of the day/week/month/year, the meme doesn't really makes sense anymore..

jraph

9 hours ago

> Can't "What a ", ", huh?" and "Captain, it's " be hard-coded / image?

That would be more work with the risk of things being misplaced because you'd need to figure out alignment. The font will also not be rendered the same way, adding some small imperfections. The SVG text is also more accessible.

I believe sending the text as an SVG text is a vastly superior solution in every way :-)