Show HN: Live-updating version of the 'What a week, huh?' meme
3 days ago (tintin.dlazaro.ca)
As a fun evening project, I made a live-updating version of the 'What a week, huh?' meme (based on a panel from The Adventures of Tintin comics [1]).
There's a page for every timeframe:
- 'What a day': https://tintin.dlazaro.ca/day
- 'What a week': https://tintin.dlazaro.ca/week
- 'What a month': https://tintin.dlazaro.ca/month
- 'What a year': https://tintin.dlazaro.ca/year
Current time is determined by a Cloudflare Worker using the request IP (not logged or stored). No JavaScript is sent to the browser.
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.
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.
At the end of the year: select the decade.
Dec 31 2030 will be monumental.
What a century it's been...
Great suggestion, and thank you!
> 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.
> “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.
> 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).
1 reply →
Being public domain decreases the liklihood that I will meme a given piece of IP
You could also compute the speech bubbles on the client's side...
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.
11 replies →
> 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.
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.
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.
1 reply →
well, for almost everyone this information is contained within the IP anyway, though.
2 replies →
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.
1 reply →
It could be opt-out/opt-in and then all six users that care about privacy could do as they wished.
3 replies →
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.
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".
It could be a get parameter, with a picker allowing you to select your timezone.
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.
2 replies →
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...
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
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.
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...
W3C has deprecated this for a long time now: https://www.w3.org/TR/WCAG10-HTML-TECHS/#meta-element
Soo... browsers will likely support it until the end of the internet?
2 replies →
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.
Does that mean I can also send the „Refresh“ http header to do that?
Yes. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Re...
In a similar vein, you can also use `Link: foo.css; rel=stylesheet` instead of `<link href="foo.css" rel="stylesheet" />` to specify stylesheets. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Li...
1 reply →
TIL
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.
"Single-serving site" is the term you're looking for. The best part of the early, mass-appeal internet IMO
https://en.wikipedia.org/wiki/Single-serving_site
What do you mean non-usable? You could totally spam the work slack channel with these.
I don't think you are meaning quite the same "early internet" if you are referring to Slack channels xD
3 replies →
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.
1 reply →
I miss StumbleUpon
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.
8 replies →
Kagi Small Web has been fun to explore and reminds me a bit of the StumbleUpon of yore: https://kagi.com/smallweb
If you'd like to read more: https://blog.kagi.com/small-web
1 reply →
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.
1 reply →
Wait, StumbleUpon shut down? I had no idea.
That's sad, that site was great.
2 replies →
Happy to hear that — it’s what I was going for :)
> non-usable
https://tintin.dlazaro.ca/day would be easy to make into a very much usable clock. I'm actually a little disappointed it didn't already update as a minute passed ;-)
You are telling me that my cosmic clock is not usable?
https://cosmic-clock.vercel.app
PS. I made it for myself just for fun. Haven't checked issues such as time for other countries. Just checked, time still stays local (Indian) for me even if I use VPN to change my location. I am using p5 and JS for the two times.
If it was horrible and had music, it'd be like YTMND
A form of art :-)
Welcome to ZOMBOCOM
To this day, I still can't figure out how to do anything
2 replies →
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.
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.
3 replies →
dancing hamster
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.
I actually said “have a good weekend” to the baker last week on Monday, so, for me, anything until Wednesday checks out
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
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).
Technically, the correct space before punctuation marks / within guillemets in French is U+202F (narrow non-breaking space).
1 reply →
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.
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.
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.
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).
> 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.
Source code: https://github.com/dnlzro/tintin
Not to be nitpicking but Cloudflare will log and store request metadata, including user IP.
Valid, not nitpicking!
>[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"
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
I'm not adding context to the joke, I'm pointing out that people are misinterpreting the dialog as it was written. by saying "I don't know what the additional context is", I was saying "perhaps she had just said TGIF!" and that would explain why he said "it's Wednesday"
"What a week, thank god it's over!"
"it's wednesday"
would work for your lowest common denominator.
1 reply →
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.
1 reply →
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.
Yes! this is what the internet was made for. Good job!
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
What a life, huh?
Captain, you're 84!
I thought it would be a hotlinkable image that updates.
It's close, the website could send the bare SVG instead of an SVG embedded in a HTML page :-)
Yeah.. it would be straight forward to make this into an image and make it so much more usable
feature request: 30 Rock mode
source: https://i.redd.it/to3v225w8nlz.jpg
I honestly expected OP's "what a week" meme to be Liz Lemon until I saw tintin in the URL.
I pasted this into slack every week for years, every Wednesday. People used to ask if I was OK if I forgot.
I've got two months worth of wednesday videos [0] set up in a schedule :D
[0] https://www.youtube.com/watch?v=9K4-jllrPrE&list=PLy3-VH7qrU...
Awesome idea! Just a thought, but a century version would be spot-on!
Thanks for the suggestion, will do! (I’ll also be open-sourcing it, as I probably should’ve done before posting)
How does the joke play out on Saturday or Sunday?
“Captain, it’s Sunday” … I don’t get it.
even Thursday/Friday the joke really no longer lands. Am I missing something?
What a fun little project! I thought it was going to be the 30 Rock one!
- 'What A Life': https://www.youtube.com/watch?v=W5yUmmgYCa0
I would love an iOS version of this to put a widget on my phone!
I woke up and wanted to make this for a tuesday.Thanks.
This is actually an interesting "Hello, world" for Astro.
Nitpick: /anyotheruri should return 404, no?
Can this be encoded as a JPEG for easily saving it on mobile?
This is a "fun" idea, but I'm a bit troubled by the fact that you've chosen to release this right now.
Are you implying something? Not that subtle, truth be told. I'm not American, but hopefully there are someone here who knows the proper X-handle or other official authority to report this to.
If only HTML had a locale-aware <time> element with custom date formatting :(
Could you perhaps make one for the current US President? Seem fitting for the theme.
"What a presidency, huh?"
"Captain, it's week 5"
I've been having one of those weeks. This is hilarious. Thank you.
Love it
Can someone vectorize the image please ? :p
The xkcd Now comic[1] is also done server-side. There's an outer image showing day/night cycles which never changes and the part with the map and all the labels is rotated within this. The server simply has a precomputed set of images for 15 minute offsets, and chooses whichever to render based on the current UTC time.
[1] https://xkcd.com/now
Omg I loved it so much. Thanks :)
This is the meme we needed.
Great project! Congrats!
fun! open source it, we can add more calendars and languages :D
Love it
:)
love it...fun!
add your home page link somewhere
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..
> 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 :-)