2025-11-03T04:51:18.416Z
so I figured I'd see if I could 3D print one
2025-11-03T04:53:00.551Z
I'll have to do some prints tomorrow and see if/how it works
2025-11-03T19:00:06.588Z
it's getting better!

2025-11-04T00:44:07.667Z
First physical prototype is going ...okay? Unfortunately the hemispheres have some issues with the connection between them. The sliders catch fairly often but I'm not sure how much of that is the fault of the hemispheres. Also I'm not sure how well this will actually go together in assembly

2025-11-04T00:46:02.677Z
The assembly problem is that you need to put the halves together with the sliders on, but you can't slide the edges on like that
2025-11-04T18:15:34.324Z
https://polyhedra.tessera.li is very fun to play with
2025-11-11T21:30:48.030Z
hey, I haven't posted on here in a week, let's fix that
2025-11-11T21:31:54.727Z
so I want to talk about the UI for a game called Tessel. It's on F-Droid (https://f-droid.org/packages/net.vantulder.tessel/)) pretty good game, save the thing we're going to talk about today
here's a typical screen partway through a game of Tessel. I'd like you to think about it for a second, maybe consider what each part of the screen means

I'm going to label each part of the UI for future reference

2025-11-11T21:37:33.307Z
okay, so in order:
1) this is the menu button. typical pause-type game menu. has options, lets you return to the main menu, that kind of stuff
2) this is the main game board. don't worry too much about how the gameplay works (partly because there's different modes that change it a fair bit). the key thing to know is you place tiles, and the placement of those tiles is restricted to neighboring tiles with certain properties. a tile A might be able to border tile B, but tile C might not.
3) this are the three tiles you can choose from to place. when you place a tile, a new one takes its place from your "stack"
4) this represents your stack. the "+72" means there are 72 tiles left in your stack
5) this is your score. the small number with the star is your high score for this mode

all seems pretty normal, right? fairly simple, intuitive UI
*except*
Number 4 is not just a counter, it's actually a button! when you click it, it shuffles your three tiles back into your stack and deals you three new ones
this is a massive difference! effectively, I have 75 tiles available here, not 3! this image is from a bug report I made because I thought I was softlocked. turns out I just needed to hit the button and hope to get the tile I needed
2025-11-11T21:41:03.424Z
it also fundamentally changes the balance of the game. there's no timer or anything, so the optimal strategy is to set up the perfect combination of tiles and just shuffle through your stack until you find the right one, because early* in the game, you statistically will!
* "early" depends on the mode, but could be "until you're basically out"

2025-11-11T21:43:15.524Z
but also, if this is the gameplay you wanted, this is a terrible way to achieve it! trying to find the right option out of 75 by throwing them all into a bag, shuffling it up, pulling out three, and repeating until you find it is ludicrously inefficient. maybe we could scroll though a carousel? or at least see more on the screen at once?
2025-11-11T21:44:23.346Z
not to mention, this game-critical button is shaded with a subtle gray. the only other text that uses this gray is the static high score counter, which you can only interact with by getting a better score
it's subtle enough that I completely missed that it was there (or more accurately, what it meant) for half of my first game, and I was confused as to what the end goal was
2025-11-11T21:46:47.627Z
fortunately, the dev realized that it was too subtle. so, they... made it shake every once in a while! this is effective at drawing your attention to it, but not at signaling that it's clickable. and once you've played more than one or two games and understand that it's there, the shaking just gets annoying. that's right, the shaking never goes away! it just shakes every couple minutes, no matter what (at least as far as I can tell)
2025-11-11T21:48:32.878Z
it's fascinating that they have a non-button that looks much more like a button in the score counter just next to it, but they couldn't come up with any way to signal that this is a button better than making it shake occasionally. masterful UI design right there
am I being too critical about an open-source game that released a month ago? yeah, probably. but that's why I'm venting here and not in the Github issues lol
2025-11-13T05:25:50.840Z
just came across an exposed .git on a website that's kind of interesting to me, so I figured I'd look at it (turns out I've already downloaded an older .git from this website about 8 months ago, but never looked at it)
there's actually not much of interest, because everything's just statically served HTML and JS!
no frameworks, it's webdev the proper way
2025-11-13T05:27:58.886Z
well, maybe hold off on proper: the way they do templating (which they don't do much of in the first place) is by loading a JS file which in turn loads an HTML file and injects the HTML data into the `innerHTML` of an element on the page
which, does work
2025-11-13T05:29:58.460Z
I did find one private test page that's publicly exposed but unlinked from anywhere, so that's something
no unused assets though
2025-11-13T05:31:52.461Z
it seems like the fonts are using Git LFS, so I can't check them out, but since it's statically served I can just request them now that I have the file names
also weirdly the README I didn't get? but again, I can just pull it from the live site (it's blank)
2025-11-13T05:34:37.089Z
Oh also there's a couple .DS_Store files that I could try to data mine, but I doubt there's anything interesting
2025-11-14T18:58:25.884Z
kinda what I expected, but still interesting: https://forum.orekit.org/t/jmh-performance-benchmarks-math-vs-strictmath-vs-fastmath-hipparchus-vs-fastmath-apache/4661
in short, Java Math is fast now, no need to use special libraries to delegate to native code because the JVM will do that anyways
2025-11-14T19:00:21.958Z
(at least for common cases. as of Java 17, based on those numbers, advanced trig functions could be better, and stuff that java.lang.Math doesn't implement may benefit from native code over Java-based implementations)
2025-11-15T16:48:26.631Z
Another silly Reddit Answers AI thing

2025-11-15T16:50:03.380Z
shot

chaser

2025-11-15T16:51:27.520Z
I love this advanced redstone technique!

2025-11-16T20:27:20.038Z
If I knew anything about the process I would nominate this as a Quality Image or whatever the thing is https://commons.wikimedia.org/wiki/File:2014_Dried_chilli_flakes.jpg
2025-11-16T21:02:45.547Z
huh, never knew Python had a function to get the worst elements of your list!