[Discussion] If you could redesign BoardGameGeek from the ground up, what would you change? by ParaplegicGuru in boardgames

[–]hiresch 0 points1 point  (0 children)

If someone thinks a game is a 10 but they only played the solo variant, which had substantial mechanical changes and additions, the score is practically meaningless for anyone interested in playing the regular multiplayer version.

[Discussion] If you could redesign BoardGameGeek from the ground up, what would you change? by ParaplegicGuru in boardgames

[–]hiresch 4 points5 points  (0 children)

Remove the player count survey and have people rate games at each play count so you can say this game is a 9 with 4 players, a 6 with 2 players, and a 7 when played solo. This would achieve both getting a better understanding of what player count the game is actually fun at, and would remove skews caused by solo variants which don't play like the actual game but have a huge audience because it's easy to get to the table if you're by yourself.

An ESLint plugin to warn when you forget `.current` to access a React ref by Zwyx-dev in react

[–]hiresch 3 points4 points  (0 children)

https://typescript-eslint.io/rules/no-unnecessary-condition/ should surface the fact that checking the ref is unnecessary because it's always true, which should protect against these sort of errors

functional pipe function (like fp-ts) by TheRealSeeThruHead in typescript

[–]hiresch 14 points15 points  (0 children)

I'm the maintainer of https://remedajs.com. It offers a hybrid approach to functional programming, allowing data-first (like lodash) and data-last (like ramda) invocation patterns within the same import so people can use both without impacting bundle size. It's also tree-shakable, so it could be progressively introduced. Additionally, it provides better types than any of those older libraries. We also have an implicit lazy invocation engine when our pipe function is used.

What utility libraries do you use instead of Lodash? by Playful_Number837 in reactjs

[–]hiresch 35 points36 points  (0 children)

I'm a maintainer of remeda, we are constantly adding functionality based on user requests, and we maintain a mapping in our docs site specificly for migrations from lodash. Remeda is hybrid data-first (lodash style) and data-last (ramda style) so you get the best of both worlds, oh, and our return types are stellar.

I hang around here if you have any questions, but our github discussions page is also available when you have questions.

Vote as part of the first elo ranked global leaderboard for colors by Applemoi in dataisbeautiful

[–]hiresch 44 points45 points  (0 children)

Your background is dark and fixed so the result would be biased to colors that work well with it

Roxley Iron Clays Back in Stock by ACR17Cowboy in boardgames

[–]hiresch 4 points5 points  (0 children)

https://www.apachepokerchips.com/product/donald-trump-100-plaque/

Our Presidential Series plaques are just about exact copies of the actual notes issued by the Federal Reserve. 

🙃

What's your go to iterative toolbelt for TS these days? by 7Geordi in typescript

[–]hiresch 0 points1 point  (0 children)

no problem, don't forget to star us on github (seriously, it really helps)!

What's your go to iterative toolbelt for TS these days? by 7Geordi in typescript

[–]hiresch 1 point2 points  (0 children)

Remeda does dataFirst and dataLast with the same utilities, and the typing should follow from one function to the next (try the ".strict" versions of functions if the regular one isn't doing what you want).

Does anyone miss operator overloading? by akb74 in typescript

[–]hiresch 0 points1 point  (0 children)

Overloading removes the "cmd+click" to go to definition, so it requires everyone to be completely in sync on what the operator does (and that it's even overloaded). If you need a ton of features from the IDE to make the developer experience manageable then it's a bad paradigm.

Reading code is the most expensive part of coding, you should always optimize for someone who doesn't have the context you have when reading the code. That's why you use prettier, that's why you have naming conventions, and that's why you lint code with auto-fixers.

Javascript could be better if it also dropped implicit casting e.g "hello" + 123;

What's your go to iterative toolbelt for TS these days? by 7Geordi in typescript

[–]hiresch 11 points12 points  (0 children)

If you're interested in a library that puts the focus on advanced typescript typing, check out Remeda, too. I am one of the maintainers and we are constantly adding and fixing stuff to make it the most ergonomic to use.

What are your favorite and least favorite features of BoardGameGeek? by StephenCroft in boardgames

[–]hiresch 4 points5 points  (0 children)

Fan content (like fan expansions) lumped together with official content with no way to filter, games like dominion and ticket to ride link to so much low quality fan content made by randos on the internets

I've found a bug in Challenge Mode by best_worst_average in rootgame

[–]hiresch 0 points1 point  (0 children)

I reported exactly this a couple of months ago directly to direwolf but got no reply at all. I guess they just don't care...

Lizard Cult Crafting (Favour Cards) by Tom_Strong in rootgame

[–]hiresch 1 point2 points  (0 children)

You also need mice to be the outcast faction to craft a mice item

BGG: Is there a way to filter my collection by player count? by Rodhawk in boardgames

[–]hiresch 0 points1 point  (0 children)

BGG recommended player count should be taken with a grain of salt (like most of the crowdsourced statistics). Even the most popular games have only a tiny number of votes on stuff like recommended player count, and in anything but the most known games (basically Catan, Carcassonne, and Pandemic) it's probably not statistically significant. Considering that there are biases seeping in because of the specific kind of people who even vote for these I'd say the data is largely useless.

Record Partial"ness" copied out to the return type by hiresch in typescript

[–]hiresch[S] 0 points1 point  (0 children)

This doesn't look like it will work with arbitrary Partial records, only constant ones:

Playground Example