Top all-time · #20352
Vincent Tunru
Personal blog · vincenttunru.com · on HN as Vinnlprogrammingweb
Vincent Tunru's personal blog at vincenttunru.com covers programming and web. Since 2017, 3 different Hacker News readers have linked it 29 times, most often “I spent way too much effort to win a game show on Dutch national TV”. It is still writing: the last post was on 2025-01-31, and you can follow it by feed.
Too few sampled comments (2) to say how often HN recommends it.?
Why HN links it
HN readers link this post as the write-up of a Dutch Lingo TV game show contestant who beat the show using an optimised set of words. It is cited in Wordle-solving discussions.
Summarised by Claude from a sample of 2 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
My name is Vincent Tunru, and this is where I write about things that interest me as a front-end engineer.
Most-linked posts?
- I spent way too much effort to win a game show on Dutch national TV3 people · 7 mentions · first linked 2019-12-15
What Hacker News says?
There's three things: 1. It removes a layer of abstraction that's redundant if you use a component-based UI framework. 2. It provides constraints that act as guardrails against introducing inconsistencies into a design. 3. Its tooling is not magic and does not have runtime impact. More detail at https://vincenttunru.com/why-tailwind/
Comment linking /why-tailwind/
on “Tailwind CSS v3.0”Submitted I spent way too much effort to win a game show on Dutch national TV as a story · 202 points
HN discussionYes, that's exactly my main motivation for rebasing too: properly thought-out commits can give more context to the lines of code I'm looking at. (I wrote these thoughts up in more detail here: https://vincenttunru.com/Spend-effort-on-your-Git-commits )
Comment linking /Spend-effort-on-your-Git-commits
on “Git rebase in depth”Submitted If you measure test coverage, aim for 100% as a story · 3 points
HN discussionI very much agree to this. In fact, I'd consider Redux to be more the application of React's ideas to state management than an implementation of Flux: https://vincenttunru.com/A-short-history-of-Javascript-frame...
Comment linking /A-short-history-of-Javascript-frameworks-a-comparison-of-JQuery-AngularJS-and-React/
on “Our long term plan to make GitLab as fast as possible with Vue and Webpack”Submitted Spend effort on your Git commits as a story · 2 points
HN discussionNote that "TypeScript support" in Babel means that Babel can now strip the extra syntax that is part of TypeScript applications. It doesn't actually parse them. A way to think about it is to consider TypeScript to be a linter, like ESlint - but one that you can help by annotating your code with e.g. the types of values you expect it to get passed. Babel can now strip those annotations before it transpiles your code,…
Comment linking /TypeScript-vs-Javascript
on “Migrate Jest to TypeScript”In the Dutch version of Lingo (a game show which has been televised for over thirty years now that's basically Wordle but in more and different configurations) there was an episode where two brothers memorized an optimized set of words for determining letters and their positions. One of them wrote a write-up here: https://vincenttunru.com/hacking-a-gameshow/ In the show, you usually get one letter for free in the si…
Comment linking /hacking-a-gameshow/
on “Wordle-solving state of the art: all optimality results so far”But this is not a regular static site, right? In the sense that it does not work with Javascript disabled, which is why you needed to do this: > Then I remembered that I would probably need to redirect all requests to index.html. Compare that to e.g. my blog (also the result of an experiment), which has the fast page changes you were looking for, but also works without Javascript, albeit with full page refreshes whe…
Comment linking /
on “How I made a website with Svelte”It's useful in situations where you don't have the entire commit message expanded on screen. For example, when running `git blame` on a file, or the same functionality in a web UI like here: https://vincenttunru.com/img/Commits-are-documentation/annot... As for regular code, similarly, there are situations where the code doesn't take up the full screen, e.g. in split-screen mode, or viewing a side-by-side diff. That…
Comment linking /img/Commits-are-documentation/annotations.png
on “Git Things”It was certainly very iconic in the Netherlands (coincidentally I just gave a lecture about it this week, based on [1]), but it has aired in a number of other countries as well, such as the US and France. I think the former even is the original [2]. [1] https://vincenttunru.com/hacking-a-gameshow/ [2] https://en.wikipedia.org/wiki/Lingo_(American_game_show)
Comment linking /hacking-a-gameshow/
on “Josh Wardle created Wordle as part of an ongoing quest to design online spaces”As someone who also stacked the odds in their favour on a gameshow [1], I can appreciate the effort but am also glad I never got as obsessed as this guy. Although my partner in crime (my brother) did just go on another winning streak on another gameshow [2], so maybe I should start worrying... [1] https://vincenttunru.com/hacking-a-gameshow or Twitter thread: https://twitter.com/VincentTunru/status/12055273647399813…
Comment linking /hacking-a-gameshow
on “Who Wants to Be a Thousandaire? (2011)”Except you'd be missing out on Tailwind's constraints, which prevent someone like me (with not as much of an eye for design) from accidentally sneaking in little inconsistencies that make a design seem off. (Like in another comment here, I'm rehashing a more extensive blog post [1] of mine here.) [1] https://vincenttunru.com/why-tailwind/#constraints-set-you-f...
Comment linking /why-tailwind/
on “Goodbye CSS Modules, Hello TailwindCSS”Exactly. When using something like React, the abstraction of using classes to create reusable components is redundant with the framework's, and thus no longer carries its weight. Especially considering how, in practice, that abstraction isn't that effective in the first place: it's rare that a layout change involves just a CSS change. (I'm somewhat rehashing from a blog post of mine [1] here - if anyone wants this m…
Comment linking /why-tailwind/
on “Goodbye CSS Modules, Hello TailwindCSS”Nine days ago :) > Fun fact: this concept is also the basis for a game show on Dutch national TV. I took part two years ago, and spent way too much time optimising our strategy: https://vincenttunru.com/hacking-a-gameshow/ https://news.ycombinator.com/item?id=29713212 And we even went up to ten letters! (Albeit in a slightly different format.)
Comment linking /hacking-a-gameshow/
on “Wordle Is a Love Story”> If your users have the ability to actively choose what version of your software they're using, it works. I don't think SemVer is about choosing which version to use; it's about being able to plan the impact of upgrades. So the only requirement really is for your users to be able to actively choose when to upgrade. Which does still mean that breaking your API should be avoided: all a major version release does is c…
Comment linking /semver-explained
on “Stop Abusing Semver”Even if not at the history directly, commit messages are associated with the lines they edit. This provides great granular documentation: https://vincenttunru.com/assets/img/Commits-are-documentatio... (From my blog post about why history matters: https://vincenttunru.com/Spend-effort-on-your-Git-commits/ )
Comment linking /Spend-effort-on-your-Git-commits/
on “Git: Using Advanced Rebase Features for a Clean Repository”I prefer just setting coverage requirements to 100%, and give developers the freedom to mark code as ignored for coverage (e.g. /* istanbul ignore next */ for many Javascript applications). That way, the annotation is something that can be brought up during code reviews in case the reviewer does not agree with that not being covered, and it doesn't depend on the reviewer having to remember to run or look at a separa…
Comment linking /100-percent-coverage/
on “99% code coverage (2017)”I haven't worked with it extensively, but from what I've seen, it's far beyond what most teams should consider. It's basically a more thorough method of measuring test coverage, pointing out cases that have not been covered by your tests yet. However, the number of tests that it would have you write to reach 100% mutation coverage is not justified by the number of bugs you'll catch, unless the impact of any bug is v…
Comment linking /100-percent-coverage
on “99% code coverage (2017)”A similar thing happened in the Netherlands. The TV show is called Lingo ( https://en.wikipedia.org/wiki/Lingo_(Dutch_game_show) ), it uses 5-letter words and you get the first letter for free. The guy who more or less beat it wrote a blog post about it: https://vincenttunru.com/hacking-a-gameshow/
Comment linking /hacking-a-gameshow/
on “Solving Wordle with Z3”It does not, I think: > There is an internal joke in the team that React should have been called “Schedule” because React does not want to be fully “reactive”. (from [0]) You could look at a React+Redux application as a somewhat limited reactive architecture though: [1] (from [2]). [0] https://reactjs.org/docs/design-principles.html [1] https://vincenttunru.com/assets/img/Javascript-reactive-prog... [2] https://vinc…
Comment linking /Javascript-reactive-programming/
on “Functional Reactive Programming”Fun fact: this concept is also the basis for a game show on Dutch national TV. I took part two years ago, and spent way too much time optimising our strategy: https://vincenttunru.com/hacking-a-gameshow/ (Discussed on HN at the time: https://news.ycombinator.com/item?id=21796347 )
Comment linking /hacking-a-gameshow/
on “Wordle”> You want to claim that version 3.2 is compatible with version 3.1 somehow, but how do you know that? I don't, not really. All I want to claim is that I to the best of my knowledge , the public API I've documented will not change. [1] It's up to the user of the library to decide what to do with that. Usually, that should be some manner of trust, but verify: a mostly-blind upgrade, but with automated sanity checks r…
Comment linking /semver-explained
on “Semantic Versioning Will Not Save You”Maybe just as important: make sure the changes in a commit are related. `git blame` is a criminally underused feature, possibly because the benefits only become clear after you've had the discipline of paying attention to what goes in a commit. However, being able to pull up the context of related code right from the context of the line you're looking at [1] (from my post at [2]) can be very valuable. [1] https://vi…
Comment linking /Spend-effort-on-your-Git-commits/
on “How to write good Git commit messages”For those wanting to port from the fork create-react-app-typescript: see https://vincenttunru.com/migrate-create-react-app-typescript...
Comment linking /migrate-create-react-app-typescript-to-create-react-app
on “Create React App Adds Support for TypeScript”I think something like "figuring out a way to stack the odds in your favour in a gameshow" would fit that bill, and that seems fairly innocuous to me. Though full disclosure: I did that, so that might colour my view. https://vincenttunru.com/hacking-a-gameshow/
Comment linking /hacking-a-gameshow/
on “Apple Sues OpenAI for Stealing Trade Secrets to Build AI Hardware”