HNHacker News
TopNewBestAskShowJobs

mcbrit

166 karma · joined November 1, 2017

submissionscomments
mcbrit··on People Don't Understand OOP
I'm sure I'm butchering this, but...

Alan Kay: an object should be just as powerful as the entire computer, ie an object is a recursive structure.

The rest is implementation details. The implementation details chosen over the past many years, particularly those favored by OOP, generally involve making objects way less powerful than the entire computer.

mcbrit··on Show HN: Playing Telephone with GPT-4 and Dall-E-3
If GPT4 spits out wildly different captions when prompted 'the caption should be descriptive' vs 'the caption should be obsessively descriptive', ie picks up on 'obsessive', then that's pretty funny.

Also I didn't understand the game of telephone and am still synthesizing what it probably is/was via your comment so sorry about that; I did not mean to be rude.

mcbrit··on Show HN: Playing Telephone with GPT-4 and Dall-E-3
This is funny and interesting AND GPT4 gives such a bad photo for the prompt.

Is this because GPT4 is out of a highly stylized space? I really haven't played with it. My objections include: water droplets on the mug, bad framing, B- latte art, mug looks basic (and the handle has geometry that makes you question geometry), table surface looks sus, unidentified brown splotches on the table, what's going on with the chairs, what's up with the floor, what's the small bright vertical plane that descends from halfway in the plane about, and so on. I don't know if the caption is random, but here is the caption I'm responding to:

  An exquisitely detailed photograph captures the essence of a calming coffee break. In the foreground, the star of the scene is a matte black ceramic mug with a lustrous outer finish that gently reflects the ambient light, its thick walls hinting at the mug's thermal-retentive quality. Nestled inside the rim, a creamy surface of latte art presents a delicate feathered pattern, comprised of swirling strokes with varying shades ranging from the rich dark brown of the freshly brewed coffee to the light beige of the perfectly frothed milk. Each line in the pattern is smooth and purposeful, evidence of a skilled pour, and comes to a focal point with a singular, tiny coffee bubble, an accidental yet charming centerpiece. A soft shadow wraps around the mug's rim, adding depth and dimension, while the subtle sheen on the milk's frothy canvas catches the light, drawing the eye to the textural contrasts.

  In the softly blurred background, everyday domestic tranquility is hinted at—a pristine white countertop underpinning the scene, a red-rimmed napkin holder casually placed to the left hints at a touch of color and homeliness. Behind, the clinical metallic sheen of a laptop lies closed, inviting its user to savor the moment of respite it offers. The space is intimately peaceful, a gentle invitation to pause and enjoy the craftsmanship and simple pleasure of a well-made cup of coffee.
mcbrit··on Implementing TCP in Rust
This was going to be a statement in support, read the classics / rfc793. Priors being you should definitely implement http from the RFC a la 199x, and:

I assumed rfc793 was shorter than 9293; false. 9293 is significantly shorter.

9293 also has a lot of implementation notes from the past.. many years of folks that have done this.

So yeah, 9293. Seems like a solid rec.

mcbrit··on Training (Running) / Summer of Malmo
Malmo is a world class runner, offering training advice on a forum (letsrun) that is frequented by world class runners. It is interesting how a world class athlete thinks about training, particularly one that can write, because those thoughts can be generalized beyond just running.
mcbrit··on Northlight technology in Alan Wake 2
(edit: ECS doesn't solve networked gunplay. but it could be part of a solution, and even as part of a solution ECS can totally justify why it's there, because again: hard problem.)
mcbrit··on Northlight technology in Alan Wake 2
Overwatch has networked gunplay and uses ECS to deal with that hard problem.

Cool. I get why ECS is used there. Hard problem, meet the formalism that I will use to think about you.

A case board is not a hard problem. Using composition or a functional style instead of OOP is not a hard problem, or at least not a hard problem that ECS solves.

I'm not sure that we're talking past each other now, but I did want to at least respond to your point about Overwatch and note that ECS is used to solve an actual, hard problem there.

mcbrit··on Northlight technology in Alan Wake 2
In much the same way that your run of the mill AbstractFactoryGeneratingFactoryGeneratorSingleton involves writing a bunch of not so useful code, and then someone comes along and "improves" it by changing that final Singleton to Dependency Injection:

ECS also has a lot of overhead. You almost certainly don't need ECS, and whatever you're writing would almost certainly be much simpler without ECS. Use ECS because it solves a serious problem that you have.

Edit: And my seriously downvoted point was putting objects on a "Case Board" does NOT justify an ECS; it's a problem with a /lot/ of good and good enough solutions. Were there any problems that needed an ECS, or did the article just want to say ECS (and voxel) because it's hip?

mcbrit··on Northlight technology in Alan Wake 2
The next section isn't better:

We built a new Voxel-Based Character Control that enables smooth navigation in cramped, complex and dynamic environments; it makes character movement more natural and fluid.

Fluid movement can be a problem, but "Voxel" is not what you did here, it's a marketing term. Maybe start with how a 2d collider for a 2d game should perhaps be a sphere smaller than the character (not a square, they get stuck on corners), and then say sth interesting about how you solved 3d. I am fairly certain that "voxel" isn't what happened, esp with the prior of "ECS".

mcbrit··on Northlight technology in Alan Wake 2
From the first few sentences of the article:

"ECS meant that iteration was quick because adding new or modifying existing systems or game objects was easy, and performance gains were clear when saving and loading the Case Board."

and there's an accompanying screenshot with perhaps 20 objects on a case board.

I scanned through the rest of the article with one question in mind: what the hell? ECS is not a solution to putting 20 photos on a case board. You're pushing 100Ks or Ms of objects and need performance and are willing to suffer for performance = ECS. Not this.

So, despite world class developer, I did not find the article credible. The main cause of the lack of credibility is the author of the article did not anticipate the reader glancing at the case board and the ECS claim and saying: bullshit. Alternatively, they did anticipate the claim, and were told to ship the article anyways.

mcbrit··on Uber, Lyft pay $328M for "cheating drivers" out of earnings, NY says
?

You haven't engaged with even ONE concrete argument; ideally, you would scan all arguments and engage with in good faith the very best argument. Or alternatively just say: nope, not interested.

But you just strawmaned against nothing. Not so great.

mcbrit··on Comp Sci in 2027 (Short Story by Eliezer Yudkowsky)
If you wanted the short story to be shorter: well, then, you have my comment. It’s not a story now, though, is it?
mcbrit··on Comp Sci in 2027 (Short Story by Eliezer Yudkowsky)
There is an amusing juxtaposition between satisfying PC and satisfying current AI sandbox escapes.

That’s all. An interesting idea, developed in under 5k words.

You know: SF.

mcbrit··on Tech layoffs exceed 240k so far in 2023, 50% more than 2022
160k=240k almost always, truth be told.

That's 200k+-40k, or +-20%. If you are representing the difference between 160k and 240k as 50% and not as 20%, then that is a problem.

mcbrit··on Tech layoffs exceed 240k so far in 2023, 50% more than 2022
160k=240k in almost all timelines given the experimental method.

(taken from a 3rd grade math exam, in a better timeline)

mcbrit··on Ask HN: How do I stop overthinking personal project management?
Experienced technical project manager here, used to dealing with lots of teams across lots of organizations involving lots of money. Also an architect!

5-10 teams and 1-10m$ can be managed with a 15 minute daily meeting and an email that is sent immediately after the meeting.

You need less, but still need to organize your thoughts. Use a text file and work!

One simple hack is confine yourself to a single text file; the need to understand what is going on in the text file after a few weeks will make the text file correct meaning productive. (Or push you to a failure state. The general critique of literate programming is now you have to be good at two things.)

mcbrit··on My mental model of Clojure transducers
OK. It's a better map that can keep some state. (I scanned not read your doc and that was my takeaway; I have not thought about what I can do with state yet, particularly since I had never associated transducers with being able to keep state)

Can you give me an example of a classic problem (since we're talking about transformations, raytracers and compilers come to mind) where if you involve a transducer vs a map you get an interesting difference?

Edit: 'How state is kept is not specified': I assume that there are limitations to state keeping, particularly with the composability and performance pillars of transducers, but I'm just having a really hard time synthesizing everything.

mcbrit··on My mental model of Clojure transducers
Most folks on HN who are interested in PLs, including me, are familiar with transducers at a high level. Composable, performant, yada yada ya. What we (or maybe just I) do not have is a nontrivial example of advantage.

Your comment sharpened that for me. I don't want FizzBuzz; I want someone taking a reasonable toy problem, such as a trad+photon+quadtree raytracer and demonstrating advantage by applying the concept.

mcbrit··on My mental model of Clojure transducers
What is generally missing from this category of article is a motivating statement, eg here is a problem that is easier or at least different (transformed into a different category of problem) given this idea. Up top. When I don’t see this up top or scanning forward I assume the article assumes knowledge that I do not have, and I bounce.
mcbrit··on Backward Compatibility, Go 1.21, and Go 2
Apologies, but this actually sounds like a nightmare to me, if you have at least 1-10m+ loc over enough teams, enough teams being probably 5+ depending on org boundaries.

Either you support the new version or you don't is more than enough complexity to cause arbitrarily ridiculous problems, because there is a deep valley of you /think/ you support the new version and the new version thinks that it supports you but you both miss.

(who wants the t-shirt saying that they have been responsible for a 1m+ code base on top of 10m+ for at least 20 years?)

mcbrit··on John Carmack on shorter work weeks (2016)
Most people, and let me qualify them as serious people, have real problems figuring out how to accept higher training volume without injury in sport or tech or business or whatever.

It's great that John is this monster endurance tech athlete with amazing results, but in the same way that the dude that ran a 50k or 100k last weekend might not be the best person to emulate for you, John probably doesn't align with what makes sense for 99.9% of the world's tech population.

Shorter work weeks make sense for almost everyone working in tech. I'd put in more 9s, non-ironically, but it's a bad look.

Since the post is tagged 2016, I think it is also more likely than not that John would agree with this now; it's very possible that he'd also agree with it then, but I didn't go beyond the linked comment.

mcbrit··on Judge rules Wyoming corner crossers did not trespass
What? You have conflated a thick pattern, checkerboard, with a special case, liberties at the edge.

You have mashed some words together and they do not make sense if you know what you are talking about.

mcbrit··on Judge rules Wyoming corner crossers did not trespass
Let me extend my rant, please, around bad analogies and go.

A diagonal connection is a very thick connection. The major complaint about this connection is that it is not efficient; hearing someone say that the stones are not really connected is, once again, just hearing that you are 30-20k. I am being generous about 20k.

mcbrit··on Judge rules Wyoming corner crossers did not trespass
A checkerboard pattern is a horrifically inefficient way to claim territory in go.

It might be useful to consider why checkerboards are good shape in legal systems, but bad shape in go. Also why the legal system rejected checkerboards after some thought, at least provisionally.

(historical rant: You might as well resign if your opponent is not also 30k. Who comes up with these analogies? People who have barely heard of the game, like 10ks or sth?)

Finally: yeah, Go is a bad analogy for this.

mcbrit··on Epic’s Verse Programming Language
Here is a snippet of code from the Verse screencast (linked elsewhere in thread) that demonstrates a new idea (or at least a new variant) with new power. Basically, you set up a bunch of constraints for the do clause, and if any of the constraints fail for any reason (including array index of out bounds), then the do clause is simply not invoked for that parameter space.

It's pretty elegant.

  for:
    Y->CellRow:Cells
    X->Cell:CellRow
    AdjacentX:=X-1..X+1
    AdjacentY:=Y-1..Y+1
    AdjacentCell := Cells[AdjacentY][AdjacentX]
    Cell<>AdjacentCell
    AdjacentCell.Mined?
  do:
    set Cell.AdjacentMines += 1
mcbrit··on Chess is just poker now
View top level chess as two super GMs playing a game in three rounds.

* Round 1: negotiate the starting position, aka 'and now we have a new game of chess'

* Round 2: play chess using prep. generally only one side fully benefits during this phase.

* Round 3: play chess

Computers mostly impact human chess in round 2. It's not just as if you had every human super GM working for you for X years, X as large as you want; the ideas from computer analysis go beyond that. The role of humans in round 2 is looking at computer lines and deciding if the ideas might be transferred to human chess.

Computers do not seem to inform/impact the game of poker as much, absent cheating. Computer cheating, though, where you are aware of the computer's complete evaluation of a position, would seem to be less impactful w/r/t poker than with chess. A computer (eg: Stockfish) crushes a super GM without mercy. So I have issues with saying 'X is just Y' now, because it seems to be different on both ends.

If you decide that the three round structure above is problematic, Fischer 960 dramatically changes rounds 1-2. But that's a different game.

mcbrit··on Ask HN: Am I the only one tired of seeing DALL·E /Stable Diffusion posts?
I do not appreciate the structure of the question. Half the front page has not been taken over by this question; moreover, no one is trotting out standard morality (collective good) frameworks, eg an act is good/moral because of its final consequences, who does it, or its intention. Those are the main lines. And then there are many many gambits, to re(mis)use chess terminology.

So: what are you asking, exactly?

mcbrit··on Why 12 notes in Western music?
Let me start by making the same point, but starting from a different place.

When you see pi, you look for a circle. When you see an 8 or 12 or 24 or 60, you see a few small primes multiplied together, and you might look for things that like being flexibly divided into clean subgroups.

Now I spent a couple of hours trying to extend my original argument, using the internet.

12tet (12 tone equal temperament) gives you good fourths and fifths (which as you say sound great) and TET. What you don't get is being able to correctly voice say a barbershop seventh, or persian music, or dissonant death metal, or microtonal pop.

While n-TET for any n is possible, Wikipedia lists 5, 7, 12, 15, 17, 19, 22, 23, 24, 26, 27, 29, 31, 34, 41, 46, 53, 72, and 96tet as being in use, some much more popular than others. Arabic music shifted from 17tet to 24tet, with the exception of some holdouts that find 24tet too 'commercial'.

You don't need bang-on fourths and fifths to be happy in n-tet; given n-tet, you figure out what intervals to use, what kind of chords you want to build, and what kind of scales you are willing to learn to use those chords.

So, fourths and fifths are good in 12tet, and you covered that. Is there anything else to say about 12tet and its popularity, particularly about there being 12 notes and its prime factorization into 2s and 3s?

From stackexchange: You can create a circle of any number of steps mutually prime to the total number of pitches in the octave.

And what it looks like is that you get a Circle of Fifths that has some particularly nice properties in 12tet due to the math with 2/3/5, and that makes scales and chord building particularly easy, making 12tet easy to work with, and that further popularizes 12tet. I just waved my hands there pretty hard; I did not do anywhere near enough due diligence on sources. But, yes, the number of notes does end up being important. Probably.

So I think I was minorly correct in being suspicious of '12' and how divisible it was into small primes, but majorly wrong in most other aspects.

As an aside, I did read your article, and just had a different take on what was going on; I was sure that the prime factorization structure of '12' would explain more than it does.

mcbrit··on Why 12 notes in Western music?
Let's talk about splitting things up in useful ways.

12=2 * 2 * 3.

Splitting something in half is useful; splitting it half again remains useful. Splitting in half a third time is arguably less useful than splitting it into a third. So 12 is the made-to-order number that lets you split it in half, twice, and in thirds, once.

Which naturally leads to seconds and minutes, or 60:

60=2 * 2 * 3 * 5

Because dividing the whole into fifths is more useful than a second 3, or a third 2.

So, there's your basic argument for why you would see a 12 or a 60 instead of a 10 or some other number. You have a whole that you want to divide into useful parts.

I'm not sure that the linked article, or the current top comment (Circle of Fifths) meaningfully extends beyond this "useful parts" hypothesis; we like hearing useful parts would be the somewhat surprising thing to talk about.

mcbrit··on Supreme Court limits EPA’s power to cut emissions
It is well known that there are competing, consistent theories on how to interpret the Constitution.

If we assume that each Justice subscribes to a consistent theory on how to interpret the Constitution, you omit a discussion (much less a proof) that at least one Justice's theory is 'partisan', that the theory being partisan would be bad, or to make a foundational move, that a theory that is nonpartisan exists. I think there are interesting discussions to be had on all of those topics.

I think your post is too strongly worded, being a triple attack on the hn community, the Supreme Court, and the state of American politics.

← PreviousPage 2 of 3Next →