HN user

n3k5

434 karma
Posts5
Comments125
View on HN

you can never have the following contiguous string: WORDSAMPLE

This kind of situation actually does occur, and you can then use the knowledge that the solution is unique to conclude that neither alternative (WORDS+AMPLE or WORD+SAMPLE) can be part of the correct solution.

https://iographica.com/ is a similar application that makes prettier pictures. (Anti-aliased rendering, more sophisticated visualisation that maps ‘mouse stops‘ of different lengths to disks of varying sizes, and maps time to colour.) Hacking Karbon to teach it similar tricks could be a fun project; maybe Pycairo would be suitable for better rendering?

I don't know about “McKinsey infiltration into many a large F100+” first-hand, but from context I'd guess it's simply getting consultants from McKinsey & Company[0] jobs in the ‘infiltrated’ firm, on the basis that it has no in-house employees capable of properly setting up / running the bizarrely complex and idiosyncratic SCM-ERP-HCM-BI-etc. software in question.

Basically: You have a problem; Oracle/SAP says they'll solve it for you. Now you have a second problem; they say McKinsey'll solve it for you. Now you have …

[0] https://mckinsey.com

That's all correct. While researching, I potentially found another mistake: Not sure if others see it the same way, but to me, ‘Aldi brand groceries‘ means that the brand of those products is literally called ‘Aldi’. According to a WAZ article [0], Aldi's house brand for their butter is ‘Milsani’. (By the way, apparently Aldi South's equivalent is ‘Milfina’, which is totally what Awkwafina should change her name to if she becomes a mother.)

[0] https://archive.ph/Hyqx9

Aha, that's a good point! It was silly of me to assume that if any cheap dongle works, that should mean ‘proper’ interfaces would work at least as well.

However, it seems like that explains why we needed Windows drivers, but not why device-specific Linux drivers are a thing? Unless the implication is that manufacturers who needed to make custom drivers anyway didn't bother to make their devices class compliant?

looked at it recently and was appalled at the amount of clicking required

IMHO that's actually not a big deal. From a comment I made in 2020 [0]:

That's what I was concerned about before I played through one of the three campaigns a few years ago — that the UI would seem unbearable after having played a lot of Warcraft 3 and Starcraft 2. I found it actually quite OK after learning the keyboard shortcuts (of the Dos version). What actually ruined it for me and made me not want to play the other campaigns is the poor AI. Easy enemies would have been alright; I'm not that good at RTS games anyway and being able to finish each level on the first try was nice. But the opponents are so exceptionally stupid that it just got boring.

So, yes, the controls seem silly from a modern point of view, but they're far from the critical issue that prevents the game from being enjoyable.

By the way, there's a grave mistake in my old comment. I had written:

Dune Legacy lets you play the campaigns, not just single-player skirmish, against its improved AIs. I just tried selecting ‘hard’ and (with game speed at maximum) got completely wrecked on the second map. Wonderful!

As I played more of the campaign in Dune Legacy, it turned out that the AI is even worse than in the original game. I only thought it was ‘wonderful’ because it attacked my base-under-construction with most of its preexisting army as soon as I gave my presence away too early on. But once I switched my strategy to build more stuff in secret before attacking, it turned out that the AI just sat there uselessly; no halfway decent build order, no scouting.

TL;DR: If you'd like to try multiplayer vs. humans, learn the controls and give it a try, it's really not bad! But if you want a good single-player RTS from the olden days … maybe try Plants vs. Zombies? Overcooked? Definitely not Dune 2.

Oh, and about UnDUNE II: that one really has poor ergonomics, judging from the 5 minutes I played it. It's an incredibly cool piece of art, but what it does particularly well is emulating the original game within the constraints of Pico-8. As opposed to imagining what Dune 2 would have been like in a world where Pico-8 were state of the art. It's like playing Doom on a digital pregnancy test: It's extremely cool that I could do it if I wanted to; but I really, really don't want to.

[0] https://news.ycombinator.com/item?id=24487643

Interesting; can you or someone please elaborate? I thought that device-specific drivers wouldn't be needed for the vast majority of audio interfaces, because they're connected via USB and all they need to do to ‘just work’ upon plugging in is implementing the relevant USB device class.

From my (programmer's) point of view, all I need to know to work with an audio interface is the number of input and output channels and the respective arrays of sample rates and bit depths. In theory, a generic USB driver can handle that. In practice, I observe that my Linux-using colleagues have 99 problems with audio, but none of those is related to plugging in a $1 dongle from AliExpress. (Therefore, I used to think that those audio interfaces ‘just work’, but now I'm curious about what I've been missing all along.)

Why is releasing Linux drivers for an audio interface even a thing?

The latter — each edge is parallel to one of three coordinate axes (X, Y, Z), which forces angles between different edges and surfaces to be multiples of 90 degrees. They don't need to be on a grid, just parallel to one.

One way in which this simplifies things, for example, is checking whether two boxes overlap: They do so exactly when there is an overlap on each axis. (E.g. you look at them from the front, side, and top, and there is no gap between them. This test wouldn't be sufficient if they could be rotated arbitrarily.)

The original Quake levels make use of this: a lot of things have an invisible axis-aligned bounding box (i.e. a cuboid just large enough to contain them) around them. Before checking for an exact intersection, the much cheaper test for the AABBs is performed first. This is useful even when only one of the objects tested is approximated in this way; the other one could be a bounding cylinder around a player/enemy, or a surface in the level geometry.

And two people outside shut the doors simultaneously

No, they don't. I'd phrase it differently, e.g. “each door is shut for an instant when the end of the pole is just inside the door”. (Also, make it clear that the barn is long enough to fit a 10m pole between the two shut doors.)

When you put it as “shut the doors simultaneously”, it's more troll physics than a paradox.

Meta-puzzle: figure out how to still imply that the runner is completely enclosed for an instant, without incorrectly insinuating that it is so from her perspective.

If there is no difference between reality and a simulation

That's the crux, I guess. There's this ‘Matrix’ idea that the universe might be a simulation, but here we have a much weaker, more plausible property; I would describe it as: could real-world processes be simulated exactly? That's what I meant by ‘can be run on a Turing machine’: is the organism equivalent to a simulated version.

Two quick addenda:

(i) This doesn't require the hypothetical Turing machine to exist; as you said, it's an abstract idea. In the strict sense, where it can have potentially unlimited memory, a Turing machine can't exist in the real world. Even so, we can ask whether an entity that has wants/needs/desires can exist in a Turing machine in theory. If yes, it's easier to show that it can exist in practice, in reality.

(ii) Maybe physics is non-deterministic and the equivalent mathematical model requires a non-deterministic Turing machine or something else still. But whatever physics does can be done by a physical computer; I believe there's nothing a natural person can think that can't in principle also be thought by an artificial machine.

There has got to be a difference between the pain a real ER patient feels and the simulation a training dummy for medical students is running. It's just so hard to come up with a clear definition of that difference. Let's try something simpler.

When squeezed, Elmo shakes, vibrates, and recites his trademark giggle, "Uh-ha-ha-ha-hee-hee!".” — https://en.wikipedia.org/wiki/Tickle_Me_Elmo

Elmo isn't really giggling. But I think it's possible for a digital circuit to ‘get’ a joke. Or, indeed, to be ticklish.

As shkkmo mentioned, one could just postulate the existence of a ‘soul’ and be done with it. I'd prefer something more rigorous; something falsifiable.

I'm going to criticise one particular aspect of this comment, but overall I find it very interesting because it generates so many fascinating questions, some of which follow:

There is no equivalent for anything that can be run on a turing machine.

So you're claiming that organisms such as ourselves cannot be run on a Turing machine? Any particular reason/evidence?

you could write out on paper the calculations that a chatbot is performing to select what it says

In the case of ML, only on the lowest level; there's no human-readable algorithm for putting together utterances. But let's say, for the sake of argument, that someone can actually understand and explain how exactly a particular response was constructed. Could the same not be done, in principle, with the response from a human? You could write out on paper the QFT equations that a brain follows to select what it says.

Well, OK, no one can actually do that, because we don't understand the subject matter sufficiently. But that's my point: That we understand the simpler system better doesn't mean that it's a more abstract concept, or that it can't be mistreated. Of course there is a tendency to have more compassion for more complex organisms — think about how you'd treat a monkey, a rat, a spider, a packet of yeast. We also tend to distinguish between organisms and inanimate things.

But discriminating based on what we understand exactly seems like a bad argument. Also, what if — as seems likely — artificial life will be made like AI currently is? That is: the necessary complexity is too much to plan in detail, so we make a primitive framework in which systems with desirable properties are then bred and evolved. Just like breeding plants and animals still is a thing — we can now sequence entire genomes and research what individual genes do, but it's too complicated to be a viable approach when you want a tastier nectarine.

Can someone ‘write out on paper’ how a Waymo tells a pedestrian apart from a mailbox? If no, does that mean the AI is more prone to being mistreated?

physical compulsions that it needs to fulfill […] be mistreated by denying these needs

What's the difference between a physical compulsion and a utility function governing a physical system? If I deny a paperclip maximiser the raw materials it needs to make more paperclips, it's definitely not going to be happy …

I agree with everything, except that this is something that can be polished into sth. usable. After trying Bonsai, I think it's a promising proof of concept that demonstrates what should now be implemented properly. A ‘quick’ hack on top of Electron is just really slow and clunky compared to a ‘real’ browser.

I know this is asking a lot, but as an end user with an unlimited budget for big dreams, I'd like to see something like this as a fork of Firefox that eventually gets enough of its changes upstreamed so it can become just an extension for the browser I'm already running anyway.

Anyway, a little addendum:

Why go fullscreen and modal?

And for when I want it full-screen and modal, at least do it right, please. E.g. it shows up in the cmd-tab task switcher, but that can't actually be used to switch to Bonsai, nor away from it (!!). And, again, it's too slow. (What's with the dramatic fade-out animation?)

Btw., you can drag a link on top of it (at least when option-space doesn't do something else already ;) and the cursor changes to identify a valid drop target, but when you drop, nothing happens.

They could be (and even seem) much more self-evident (and valuable as a tl;dr) if they were one-sentence summaries instead of a copy-paste of a paragraph from the beginning of the linked page.

Is anyone here familiar with Matomo? I noticed the linked page attempts to run it before seeing it mentioned, because Ghostery blocked it.

It's a “Free software alternative to Google Analytics” “which can easily be configured to respect your visitors' privacy”[0] (emphasis mine). But can it be configured in a way so you can claim “without any tracking code”? I wonder whether the claim in the headline was supposed to be merely “no third-party tracking”. [Edited to add:] Waiiit a moment, is the intended meaning simply “no Google tracking code”? (I don't think the article addresses this anywhere; hope I didn't just miss something.)

Or maybe I'm supposed to know that “no tracking” is jargon for something like ”attempts to not store PII” in this industry? I doubt that it can be configured such that, for example, unique visitors are statistically estimated instead of counting unique IDs from tracking cookies — but I'm too lazy to research that in detail, so it would be interesting to hear from someone who knows more.

[0] https://github.com/matomo-org/matomo

The practice of de-beaking, for the purposes of rendering a quicker death to the entire herd, is a part of the job. The most the boss will say is “Do you have any questions?” There are no expectations of cooperation, no in-universe questions to ask or mysteries to solve, just deadly work to be done.

When you get sent to the feed room, you are told, “You are going to have to steal some feed.” You are given a specific passcode (which you are not allowed to ask for or demand to be changed) and are told that you will be given one eight hour time period to complete the task. If you find that you can get to the feed room more or less quickly, you are told to report back to your boss. If you do the task in the time allocated and return the approved bit of feed you were given, there will be no consequences. However, if you exceed the time you were given, there will be consequences. You will be sent home for two weeks.

This is how things work until you show an ability to actually do what you are told. You are never told what the consequences will be, nor is it clear how the

Hmm, it seems like what I've observed (I only tried MacOS so far) is what's supposed to happen, and what you got is bugged; hopefully they'll fix that soon.

In the case when the button does light up the instant it becomes clickable, I don't get the perception of ‘I've moved the mouse too far’ — instead, it's easier to see why the highlight isn't bigger: I don't just get a “hint of the area I can target”, I see exactly a standard-sized button, which I'm aiming for — but when I miss a bit, there's also a bonus area where the click still works.

Without the immediate feedback, the highlight seems ‘off’ (in the sense of displaced) in some arbitrary way. But really it's way more sophisticated (an overly pedantically detailed elaboration follows; I promise this is not apologetics on behalf of the Firefox UI designers, but illustrating a point I will attempt to make in the end and that I couldn't be bothered to put in fewer paragraphs out of sheer laziness):

1) There's a bonus area to the left. It's nice to have when you happened to click a bit too far to the left. But how far off you can be in that direction depends on the exact circumstances: E.g. in my case, in windowed mode I can approach the edge to within 1 or 2 px before the mouse cursor switches to ‘resize window’, whereas in fullscreen mode, I can go to 0 px, but pushing beyond that triggers the dock which otherwise lingers beyond that edge of the screen. So that's why it's a bonus area: It'll try to do the right thing, but it's not a promise that clicking there will work. And by directing your focus to the standard-sized button that would ordinarily be all you can click, it's more likely that you'll hit the intended target.

2) There's no bonus area to the right. Because the forward button is to the right. Instead of extending the standard-sized click target, hoping that this is what you meant to do, the GUI refuses to interpret your click as something that could be the exact opposite of what you meant to do.

3) There's a bonus area upwards. On MacOS, moving up even farther gets you to the buttons for closing and minimising the window, but they're a good few px away from the bottom of the title/tab bar, so we can approach that border all the way without risking a wrong click.

4) There's no bonus area downwards. Because that's where the web page you're viewing is, and making the top left corner of the page a link (e.g. to the home page of the site) is really common, so ignoring ambiguous clicks wins out over risking doing something you didn't want.

Thank you for your attention — you made it to the end where I attempt to make a point: AFAICT, the click target is the exact same it has always been. I understand that it can be annoying that they removed the circle when you're used to the circle being there; but I assure you, the circle never was the actual clickable area — it was just the visual target you were aiming for. You want ”the limits of the button drawn”? The circle doesn't do that. The button is a rectangle, and the clickable area is another rectangle that is almost the same, but a bit more generous in exactly those cases where the extra leeway can't do any harm.

Wait, It's All Ohio? Always Has Been refers to an exploitable template in which two astronauts are in space. One looks at Earth and realizes the entire Earth is made up of something other than what is expected, and asks "Wait, it's all X?" The other astronaut, preparing a gun, says "Always has been."

https://knowyourmeme.com/memes/wait-its-all-ohio-always-has-...

Even the back button is wrong in the new version. Previously it spanned up to the left edge of the window.

When you actually try it instead of comparing screenshots, you'll see that its clickable area still goes all the way to the edge of the window. The button hasn't moved to the right; there's just more negative space because they removed the circle around it. Deleting that space would actually move the button to the left and make it more difficult to hit. As it is, it's as easy to hit as ever, and the “empty space” isn't there “for no reason”. (Moving it closer to the edge would actually be a mistake; there needs to be some margin for situations where pointing close to the edge changes the cursor's function to resizing the window.)

lacks immediate feedback

How so? As soon as the mouse pointer touches the clickable area, the button lights up; after a second of hovering, I get a tool-tip explaining what it does, what the keyboard shortcut is, and how I can use it to show the tab's history. Again, that seems the same as it used to be?

OpenTTD 1.11 5 years ago

Hehe, YouTube tells me that I'd hit ‘thumbs up’ on that video once upon a time. Probably put it on a playlist, too. However, that link is now obsolete — behold the more official version:

https://youtu.be/OuJy9oCdUns

N.B. apart from being more official by virtue of being on the channel of John Broomhall himself, which has accumulated a breathtaking 52 subscribers so far (correction: 53 as of now), the audio quality is also better.

Yup. A.k.a. depth testing†. TFA illustrates it under ‘More performance’: https://github.com/s-macke/VoxelSpace#more-performance

Edit: Originally, I had said: “Though in a highly constrained scenario such as this, with the right approach you could get away with a 1-bit depth buffer.” That would be true if you had one depth value per pixel, which is of course so common nowadays that no one even needs to think about it. Except in this case I should have thought about it, because this algorithm requires only one depth (or, alternatively, as TFA and parent comment explain, Y) value per column of pixels.

https://en.wikipedia.org/wiki/Z-buffering

their hue and lightness values are almost same

Yeah? Well … you know, that's just, like, your opinion, man. More specifically, HSL's opinion. HSL is a fine colour space for specifying CSS colours, but not so good for evaluating lightness.

If I use HSLuv instead, which is supposed to be like HSL, but more human-perceptually uniform and sane (basically a neat compromise between CIE Luv/Lab and standard HSL), I get a lightness of 61.2 for cadetblue and 91.1 for cyan.

My bog-standard image editor uses HSB (a.k.a. HSV) in the HSL-style mode of its colour picker (HSL isn't even an option); and if I measure cadetblue with that via the ‘eyedropper’ tool, I get a brightness of 63%, whereas cyan has 100%.

Those are obviously way closer to the truth when you just, like, look at the colours — it's totally plausible that cyan is about 50% brighter; “lightness values are almost same” is not plausible.

This discrepancy isn't a huge problem, because the main dimension by which this tool organises colours is hue, which HSL is OK at. Only the way in which colours with similar hue are laid out on the page is off. It would be nice to see a more appropriate colour space used for this purpose.

The 39W max draw probably assumes the display is on?

No, this is the number for the Mac Mini, which is the obvious choice if you wanted a machine for maxing out an M1 24/7. (The Air peaks at about 30W, which it can't sustain for long unless it's in a rather cold environment.) So it has nothing to do with the display's power consumption.

Maxing out just the GPU while the rest of the machine isn't doing much would get you well below 39W, though.

It's Z, the traditional undo key in Sokoban-likes. More specifically, the key where Z would physically be on a Qwerty keyboard, regardless of what keyboard layout you have actually selected. Same goes for [R]eset.

Was almost surprised that a little web game gets this right when many native apps don't. I just checked the last three Sokoban-likes I played (Stephen's Sausage Roll, Baba Is You, A Good Snowman Is Hard To Build) and they all follow the currently active layout. Which admittedly is way better than the really annoying games that memorise the layout that's selected when you launch them and have to be completely restarted if it wasn't the one you wanted.