HNHacker News
TopNewBestAskShowJobs

CBLT

725 karma · joined May 11, 2018

submissionscomments
CBLT··on California Businesses Stop Hiring
The number "created" in TFA is just the delta in employed over the time period, with every person no longer employed in-state (for any reason) counting against the people newly employed in CA. Click the link in the article to see the graph of CA jobs, there's seasonal fluctuations but overall it looks flat over the last two years.
CBLT··on Do AI detectors work? Students face false cheating accusations
My process is as follows:

1. Live coding, in Zoom or in person. Don't play gotcha on the language choice (unless there's a massive gulf in skill transference, like a webdev interviewing for an embedded C position). Pretend the 13 languages on the candidate's resume don't exist. Tell them it can be any of these x languages, which are every language you the interviewer feel comfortable to write leetcode in.

2. Write some easy problem in that language. I always go with some inefficient layout for the input data, then ask for something that's only one or two for loops away from being a stupid simple brute force solution. Good hygienic layout of the input data would have made this a single hashtable lookup.

3. Run the 45 minute interview with a lot of patience and positive feedback. One of the best hires in our department had first-time interview nerves and couldn't do anything for the first 10 minutes. I just complimented their thinking-out-loud, laughed at their jokes, and kept them from overthinking it.

4. 80% of interviewees will fail to write a meaningful loop. For the other 20%, spend the rest of the time talking about possible tradeoffs, anecdotes they share about similar design decisions, etc. The candidate will think you're writing in your laptop their scoring criteria, but you already passed them and generated a pop-sci personality test result for them of questionable accuracy. You're fishing for specific things to support your assessment, like they're good at both making and reviewing snap decisions and in doing so successfully saved a good portion of interview time, which contributed to their success. If it uses a weasel word, it's worth writing down.

5. Spend an hour (yes, longer than the interview) (and yes, block this time off in your calender) writing your interview assessment. Start with a 90s-television-tier assessment. For example, the candidate is nimble, constantly creating compelling technical alternatives, but is not focused on one, and they often communicate in jargon. DO NOT WRITE THIS DOWN. This is the lesson you want the geriatric senior management to take away from reading your assessment. Compose relatively long (I do 4 paragraphs minimum) prose that describes a slightly less stereotyped version of the above with plenty of examples, which you spent most of the interview time specifically fishing for. If the narrative is contradicted by the evidence, it's okay to re-write the narrative so the evidence fits.

6. When you're done, skim the job description you're hiring for. If there's a mismatch between that and the narrative you wrote, change your decision to no hire and explain why.

Doing this has gotten me eye rolls from coworkers but compliments at director+ level. I have had the CTO quote me once in a meeting. Putting that in my performance review packet made the whole thing worth it.

CBLT··on Do AI detectors work? Students face false cheating accusations
According to the equitable grading materials I just received (and posted above), that determination is... entirely up to the individual teacher's discretion? I might be misunderstanding.
CBLT··on Do AI detectors work? Students face false cheating accusations
Getting rid of grading sounds crazy, but it's actually happening. Los Angeles Unified, the second largest school district in America, is moving to "equitable grading", which amounts (imo) to pass/fail with extra pageantry. Teachers are being retrained _right now_ to equitable grading.

I know an equitable grading champion at an LAUSD school, I'll see if I can get material to share. EDIT: I just received [0][1][2][3].

[0] (5 page pdf) https://drive.google.com/file/d/1YO7SQEwisAbHHi6mfgj7XU9FcSB...

[1] (4m30s video) https://drive.google.com/file/d/10eWor4uhSxR8ZITA1w3kzqhTOX0...

[2] (audio interview) https://www.bamradionetwork.com/track/fair-grades-dropping-g...

[3] (article) https://ascd.org/el/articles/taking-the-stress-out-of-gradin...

CBLT··on The useful use of cat
I don't feel <file is obscure. I've seen shell in that style from coworkers and from open source. Your value judgement against it might just be your experience, rather than something universal.
CBLT··on OpenAI is closing in on raising $6.5B. Largest VC raise in history
My hot take: the market is good at pricing in possibilities, but less so at pricing in certainty (or lack thereof).

When AMD launched the Zen architecture, everyone said they were on the up-and-up, and the market gave them a boost. The company's shares only started to climb much higher later on, when there were irrefutable revenue numbers. There was plenty of time to buy and make money. Someone with the domain knowledge like us can definitely have an edge in the market because we understand the product well enough to formulate better odds, then we can profit off the difference between our odds and the market's odds.

CBLT··on Twitter banned me after publishing the JD Vance Dossier
TFA didn't mention what private information was contained in the dossier. Is it his street address? SSN?
CBLT··on Exponential Rate Limiting
Google had a library like that, and one of the foot guns is that requests that are malformed or otherwise do 0 work have incredibly low cost, which results in them being prioritized above all other requests. Every user had to configure some obscure options to set cost multipliers based on return code to try and correct for this, which felt like a pretty fundamental bug that was being hacked around.

Edit: this was actually for cost-based load balancing, not load shedding. You obviously can't load shed based on return code.

CBLT··on Python Generators Are Underutilized
Can someone who's better at Python than me chime in, isn't the obvious transformation of

    def square_vals(x : list):
        return [val * val for val in x]
into a generator to instead write

    def square_vals(x : list):
        return (val * val for val in x)
Does the yield syntax actually impact the performance metrics here?
CBLT··on Useful Uses of cat
I'm in this camp as well, starting with input file redirection just makes so much sense to me.

    </proc/0/environ xargs -0
I also don't tend to want enormous volumes of text in my terminal scrollback so I generally view files or pipe verbose commands to `less`, then when I find what I want to send to the terminal I use the `|` less command to pipe it to `cat`.

Or to grab just a few lines for my later reference:

    kubectl get po/my-pod -o yaml | less
    /* find the lines I'm interest in */
    -N
    |^sed -n 34,35p
CBLT··on YouTube Oddities
My favorite internal Google writeup of that kind was for when they doubled the number of screens you needed to click through to cancel YouTube Premium. By adding friction there, they reduced the number of people who successfully canceled their subscription. But the writeup was so very sure that all those people, in the middle of the cancel process, suddenly realized all the features they value in YouTube Premium, and that this change was making people's lives better.
CBLT··on The low fertility trap: An analysis of the great worldwide baby bust
I think it's fair to include the rest of the sentence as context:

> In its illiberal guise, protantalism can be motivated by an ugly ethno-nationalist undercurrent which views pronatalism as a means of avoiding what it perceives to be the evils of mass-immigration, which is seen in catastrophic terms as tantamount to ethnic replacement and racial/civilisational suicide

I don't really understand your point, however. What about the article's views are you objecting to?

CBLT··on Jaq – A jq clone focused on correctness, speed, and simplicity
I've found the same. I store all raw json output into a sqlite table, create virtual columns from it, then do a shell loop off of a select. Nested loops become unnested, and debugability is leagues better because I have the exact record in the db to examine and replay.

I've noticed what I'm creating are DAGs, and that I'm constantly restarting it from the last-successfully-proccessed record. Is there a `Make`-like tool to represent this? Make doesn't have sql targets, but full-featured dag processors like Airflow are way too heavyweight to glue together shell snippets.

CBLT··on 4th edition of Physically Based Rendering is now freely available online
I just looked it up, adverbs can modify adjectives. Physically Based is definitely correct here.
CBLT··on 4th edition of Physically Based Rendering is now freely available online
Firstly, "physically based rendering" has become a term of the art. This means that today, it's correct to use it to mean this specific thing no matter what the grammar rules say about the phrase. Furthermore, another phrase that would mean the same thing and is grammatically correct (like "physics based rendering"), is less correct in this context because it loses the specific meaning attached to the term of the art.

Secondly, "physically" is an adverb. This means it is grammatically correct for it to preceed "based" if used as a verb. If "based" could only be used as an adjective, then you're right, "physics based rendering" would be more correct.

Anybody more knowledgeable feel free to correct me!

CBLT··on We Have to Talk About Flask
Pip has special syntax for "compatible version" `package~=X.Y`, how about you just always use that in tutorials? The people watching tutorial videos need all the help they can get, why not give them hygienic dependency practices?
CBLT··on Underwater Chain Saws
From the user manual on that page:

> Maintain proper footing and balance at all times.

Is this not supposed to be used in deep water? Or am I just swimming wrong?

CBLT··on Database Performance at Scale – A free book
It looks like what they're describing is implementing database joins in the application: 2 network round trips, first one for ids from a table and the second to get values from another table with foreign keys corresponding to the ids.
CBLT··on Workers who cut countertops are dying of silicosis
Could you link me a source for this? I can't find one when I search.
CBLT··on Circles do not exist
https://www.piotrlukaszkiewicz.pl/05_vertical-horizontal/?la...

From reading this, the error with circles appears to be <1%.

Also, obligatory mention whenever horizontal-vertical illusion comes up: https://www.nippon.com/en/japan-topics/c12403/

CBLT··on Googlers told to avoid words like ‘share’ and ‘bundle,’ US says
You said you work at Google, so open the docs for network QoS. Find the section explaining the difference between AF3 and AF4. Does it still use the "captive" verbiage? Or have they rewritten it to sugarcoat that some customers are locked in with Google products, and they cut costs when they recognize that?
CBLT··on Hacking the LG Monitor's EDID
I ran into the same problem as TFA in 2017 with an AOC g2460pf monitor. The display port would advertise binary garbage for the EDID that wouldn't checksum, so no OS would try and use it. AOC registered some "drivers" with Windows, so it would automatically download and apply a patch that would make that port usable, but they also included a CD with the stuff on it.

However they patched this on the Windows side was quite fragile, because it kept breaking after OS updates. After I could no longer get it working with the reinstall and pray method, I switched to Linux because of this issue. I fixed it once with an EDID in the initramfs, and haven't had any issues for the last 6 years.

CBLT··on How to Solve It (1945)
100% agree. I went through a similar phase of being infatuated with work ethic, and all I got were the following three lessons learned:

1. Trying to "put more effort" into artifacts (e.g. note taking) while learning something the first time is counterproductive. Write something lightweight and put your focus on paying attention.

2. Do one intensive review session while you still remember the content. Either teach someone else or write a document that could teach someone else. It's an ineffective use of time to do that more than once, for later review of the material just skim what you wrote on your first review.

3. Everyone who offers advice is just telling you their life story, dressed up as a simple directive. "Work harder" often means they wished they worked harder in some part of their life. Treat it like any other life story: learn the lessons they did, but don't let it become baggage that you irrationally follow.

Back on topic of Polya's How to Solve It, I took a no-credit uni course where the professor taught in Socratic style that expected us to (loosely) follow Polya's process. It was a great experience, and I've always been fond of Polya's steps because of it.

CBLT··on Monitoring your logs is mostly a tarpit
I'd characterize logs as a poor tool for doing the two tasks people use them for: investigating the state of the server, or investigating execution of a request. I instead am a strong believer in separate tools for those two tasks.

Server state should be exposed through metrics. Metrics have far fewer sharp edges than logs, and it's more obvious how to correctly produce, consume, and alert on them. I've seen (variations of) your 5 action items needed for the logs of every company I've worked at, but they've never applied to metrics.

Executions should be exposed through tracing. I'm kind-of cheating here: I expect the traces to have logs attached. But a well-done tracing system, where a developer can add a flag to their Postman query and their request was traced with the debug level set only for that request is a magical thing.

CBLT··on USGS estimates at least 45% of U.S. tap water contain forever chemicals
Last I looked into this, it seems there's products out there now that offer "nanofiltration" which has more permeable membranes than RO filters so the minerals can pass through but the more complicated molecules like PFAS cannot.
CBLT··on My Problem with the Four-Document Model
Hate to be that guy, but your first example is not that frustrating to me. I liked the 2 sentences per parameter, and the line breaks between them. I don't like the general python idiom of "these parameters are for someone else" where they just pass you off to the ssl module documentation. I understand why they do that, they probably just pass them over in code. The Rust community is better here, they take responsibility for every parameter and type input, both for documentation and for backwards compatibility.
CBLT··on Imaginary problems are the root of bad software
> we have too many people working at most companies.

I half-disagree with this. My take is significantly more top-down: senior management has a deficient concept of how product development works. They believe Manpower is to be spent to achieve revenue, either by directly selling the result as a product (e.g. airplanes selling wifi to passengers) or by it being a differentiating feature for the sales department. This causes every allocation decision (like hiring) to fundamentally be biased around getting a tangible return: by creating new projects, new features, and new buggy microservices.

Further, since management only has two knobs (manpower and timeline) to play with, they like to move them to feel like they're optimizing the project. It's always the same fallacies, too: "we hired more people so we can create explosive growth", "we created ambitious timelines, now we're striving to fill them" etc.

I don't have a solution for this, except to note that it can be mitigated by managing up. Construct your own narrative, and take advantage of the fact that the non-technical people above you govern almost entirely by gut feeling.

CBLT··on The Icelandic Art of Swim Lessons
The US had significantly more community pools before desegregation. Once they were required to allow all swimmers, construction of new public pools stopped and many existing pools were drained. This is the reason private pools are so popular in the US.

https://www.marketplace.org/2021/02/15/public-pools-used-to-...

CBLT··on Monolith: The Recommendation System Behind TikTok
I understood it from this HN comment: https://news.ycombinator.com/item?id=8491456
CBLT··on SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
I believe that problem is avoided by using SKIP LOCKED[0].

[0] https://www.2ndquadrant.com/en/blog/what-is-select-skip-lock...

← PreviousPage 5 of 9Next →