skysight-inc/HackerNews huggingface dataset:
Please fill out this 30-second form for our Beta waitlist if you're interested in hiring DATA SCIENTISTS/AI or more generally tech/tech-adjacent persons from the Caribbean and West Africa - we have partners who are testing them anonymously to verify skill sets. Thank you. https://t2p8pu4wcw4.typeform.com/to/fJuYt9Uw professoreleanor@diversiboard.com, DiversiBoard, Techstars/JP Morgan '22
I feel there are two separate things going on:

First, the question of deduplication a/k/a normalization. Deduplication is cheap, and it's "a two-way door, not a one-way turnstile:" It's cheap to re-duplicate when you find that one of the users of your de-duplicated function or whatever needs new behaviour.

Second, there is the question of the right versus wrong abstraction: If two different things use the same thing, that doesn't necessarily mean that they share the same abstraction conceptually. But of course, sometimes the duplication is a hint that there is some semantic commonality, and when you get this right, it's glorious, but if instead of de-duplicating we actually build the wrong abstraction, it can be extremely expensive to fix. That's more of a "one-way turnstile" problem.

To me, when I see code that could be "DRY'd up," I have to ask myself whether it represents an opportunity to write a better abstraction, but I treat that decision conservatively, because of the cost of getting it wrong. In many cases, I choose to de-duplicate the code without creating what might be "the wrong abstraction," and it is often less expensive and lower risk to start there and only later consider abstractioneering.

p.s. The tension between de-duplication and abstractioneering resembles the tension between is-a and has-a, often expressed by classical OO programmers as "inheritance" In those terms, I'm really describing my inclination as "Prefer composition to inheritance by default."

p.p.s. Sandi Metz asserts that de-duplication is creating a new abstraction: https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction. I feel that there is a sliding scale from "extract method" to "These two things share a superclass with a private message," but read her thoughts and come to your own conclusion.
What a self-serving characterization... the issue wasn't that it was "racist" it's that people would have had excessively racialized and polarized reactions. Why are you being so purposefully obtuse about this? It's not a hard concept to grasp at all, but instead you pretend as if no one wanted to say it because the word was bad... no, they were avoiding the obvious reaction that would come from it.
> lacking element is means

Apparent capability is an important component of threat credibility under practically every military doctrine.

The more fundamental question is: does this represent a policy stance or domestic messaging point? One can reasonably disagree on the answer. But the quotes I've been shown sound more like bluster than actual threats. For evidence of Iran's belligerence, these statements are relatively par for the course. (Their extraterritorial meddling makes a stronger pitch for credible intent and threat.)
I mean, sure. If "this stock is about to EXPLODE" is financial advice, so is "this stock is [rocket][rocket][money bag]". Whether you're using words or emoji to express yourself, the underlying sentiment is the same.
Could be. I think you're more the expert here than me? :D

To me, the followin is a bit of syntactic sugar that I think is the kind of transcendental "go big/basic with it" that I hint at.

Some time ago, I worked in a language that had this idea that any composable block of code could be captured as 0-N statements between the characters [ and ]. They thought they were being clever and called it a "block of code". Which I thought was cool, because it looked like a block. Pedants called it a BlockClosure. If you wanted to pass parameters to one of these, they used a colon denoted list. So a two arg block might look like

[:a :b | <code goes here> ]

So yay, pass a closure to a service, and it "captures" the values be invoking said closure with arguments.

And then the authors thought, okay, enough sugar for a few days, let's just use this. I mean really really really use this.

You can use a two arg block like that for a zip function of course, but why limit it to iteration? Use it in the standard library to implement the "for each" function. Which when you looked at was just that "how dare they not have a for syntax" while implementation. But because it wasn't embedded in the syntax, you could copy/paste/modify to come up with a filter iteration. Or a reduce. Or a map. Or all kinds of interesting compositions "selectAndCollectAndReject" with 3 closures.

And why stop there? They decided, "let's just do boolean logic with these block things too". So where as most languages has special syntax for conditionals (and once they start, they're in competition with their peers to keep adding more and more of them (do while, case, if, if with N elses, on and on). But they just wrote it like

<condition> ifTrue: [trueBlock] ifFalse: [falseBlock]

Sure they optimized it, but from a linguistic point of view, it was the same thing as above. No new sugar was needed.

Whereas many languages have added sugar for optionals (usually involving ?s), this language, 20 years ago, was doing it with closures already. Someone noticed they could implement the following family of "functions"

ifNil: [nilBlock]

ifNil: [nilBlock] notNil: [:notNilValue | notNilBlock]

ifNotNil: [:notNilValue | notNilBlock]

Sure, not as terse as ? (which some endeavoured to deal with), but the language semantics didn't have to change each time there was a new thing to do.

I'm sure there's a Lisper out there that can write their analog to the above. Because it too, is was one of these "do much with little" langauges.
I spent part of my childhood in rural Japan and during the summers would fall asleep to the sound of hundreds of frogs croaking in the rice paddies. It was a great lullaby for me, it sounds like a great thing to have in your backyard!
This is more of an integration test than a unit test. And if you're going to test for a pixel perfect image match, why not check for full equality with a pre-existing PDF file, byte for byte? And then what are you testing? That something has changed? You'd likely know that the output was going to change, so to fix the broken test you need to use the failure result to create the new comparison file, and if your always going to use the failure output as an input for correcting the test, what is the point. "Don't test that the code is like the code" is a similar principle.
Looks interesting. I hope to start using an s-expression based version of javascript after I get more familiar with the latter.

Maybe you also want to consider comparing Dak to other attempts in this direction in order to help generate more interest in your work:

https://github.com/anko/eslisp/blob/master/doc/comparison-to...
Show HN: Experimental Password Manager
This is obviously just a proof-of-concept sort of thing, though maybe still interesting to some. And no, not exactly "roll your own crypto" so much as it is "roll your own one-time-pad". (As such, the maths are WAY simpler than would be with actual encryption). Please feel free to ask questions. Cheers!
Setting those up is the hardest thing someone who knows nothing about Nix might otherwise want to do right at the beginning.

Nix-Darwin OOTB would be absolutely killer imo, since it provides such a great experience once it's in place.
Love Hugo. Been using Hugo for quite some time. But I agree with the author that there is a "Running hugo server -D now!!! ... Where is it!!!!" problem when following the tutorial.

Hugo has many "magic" based on names, "index.md" vs "_index.md", template look up hierarchy, global variables and functions (sometimes capitalized, sometimes not; some are behind a context, some are not), etc. It's hard to tell what name is required, what is configurable, and what is just accident, until you've delved into the detailed documentation. And to make the matter more complicated, themes sometimes use name magics, too.

I also hope that Hugo can just allow piping stuff through external programs in its templates. Right now, Hugo provides a pretty large number of APIs on resource transformation, regexes, string manipulation, and hell, you can even download stuff in templates. But to be honest, it's way easier to just write a shell script.

If I were to make my own static site generator, I think I'd probably opt for less flexibility, and simpler logic, especially with regard to what file ends up where. Let the generator handle the basic MD->HTML transformation, the skeleton of the site, producing feeds and metadata. And let external programs handle everything else.
They gave her a PIP she couldn't live up to -- and somehow she did. Got fired anyway.

The lesson here is that a PIP is a polite way to be shown the door; lead time to look for a new job, essentially.
I'm not a fan of how they park the slower CCD, since it means that the scheduler will try to force all processes onto the same CCD (regardless of whether it's for the game), instead of offloading the non-game workloads onto the other CCD. This is an issue if you run background tasks (such as streaming) or have multiple monitors setup for other things like browser etc.
> It's tough, but my main goal was to challenge the dogma of "always write automated tests."

It's perfectly fine to challenge dogma and ask people figure out whether the automated tests make sense for their use case. I think the push for automated tests came when there were so many others who grossly underestimate the benefits of automated tests and dismiss them off-hand.

It's hard to see the benefits of automated testing. It's easy to see the time spent writing the tests while it's hard to see the time saved by catching bugs before they happen. It's also easier to refactor if you have tests to confirm that your refactoring didn't break something.
I am the same. The problem I'm facing is that, as you say, I still have to be _available_ for at least 8 hours. That means you can't structure the day according to your needs. The corpo always has priority.

So in the end, one commonly ends up underutilized, instead of being well rested and happy about how little work they get by with. In my experience, underutilization leads to burnout.
Translation: lootboxes make more money, fuck your mental health, KTHXBAI
On the Edge: The next deadly pandemic is just a forest clearing away
As a GenXer I've been through many phases of looking for new music punctuated by times I was indifferent.

Lately I've discovered Claude Debussy, Yellow Magic Orchestra, Isao Tomita, Wendy Carlos, Goldfripp, Enigma, Information Society (I think the 2008 album Synthesizer is the best electronic music album ever) not to mention Chinese instrumental music. If something has a 5.1 mix I will listen to it and usually like it; in fact I can't stand listening to 2 channel music on my home theater.

I am indifferent though to "new" music that is being promoted now, and can't stand to listen to the radio. I like old-school rap as much as Techmoan (my age) does, but think rap went through an event horizon with T-Pain. When I hear obvious autotune I change the channel right away and have no patience for sound engineers who tell me I'm wrong.
If you want to read way more Anglish: https://anglish.fandom.com/wiki/Oned_Riches_of_Emerichland
Oh, you’re right! Well, hm, how about SAT-PRIME' = {φ: φ is satisfiable and its Gödel number (under some scheme) has [some property]}.
Anecdotal, but as I’ve moved from a series A, to an established startup, to a unicorn, to FAANG, I’ve found myself shipping code at a lower velocity every step of the way.

At my first job I was the second contributor to a project which didn’t do PRs. If it worked, just push it. My present process is a bit more involved!
I see this attempt to avoid scrutiny in a lot of modern communication. The common thread is the intentional blurring of the line between being unserious/irreverent and full-fledged joking. You can say something in an unserious/irreverent way and still mean it, while joking implies that you don't mean it, and people frequently try to hide in the space between when saying things that are objectionable, for various definitions of objectionable.

One common example of this is when person X back-handedly defends person Y by saying that they're "trolling". That implies that Y doesn't really mean what they're saying, but with a lot of wiggle room. Y might mean it, and X might know it.
Language is just language. It's syntax and libraries and data and algorithms.

I've been doing this a while, and I've been around the IDE bush, and the editor Bush and so on lots of times.

There are many disadvantages to using things that will never be popular, that are niche, but lack of joy is not one of them.

For me it's not in some shiny new language, or toolset, or whatever. The joy is in what you create, not the tooling. It's in creating solutions that make people's lives better. It's in putting good on the family table. It's in employing others and watch them do the same.

The things you talk about are language agnostic. What doesn't exist, we create.
That's why you put a pebble in your shoe. Then after enough years you take it out like Piccolo dropping his weighted clothes and, like Harrison Bergeron in the story, defy the authoritarian state with dance.
Also the Netflix documentary is pretty good https://www.netflix.com/title/81404807
People who live like this tend to be insufferable. It's intellectual auto-lobotomy.
You have a very odd interpretation of "modern".

Kubernetes was initially released 9 years ago.

And it's not worlds apart from VM managers like vSphere which is 14 years old.
Would you be open to sharing a photo or two of the pond? I would love to show it to my kids.
Yeah, I'm sorry, I couldn't recall the exact wording of that comment, and I definitely didn't mean this in a negative sense. It's been decades since I read the essays and many years since I spotted his comment here on HN.

My memory may be spotty, but the profound impact that reading his words had on me is unforgettable. I just wanted to thank him for publishing his work, because reading it back when I was going through some hard times gave me a whole new perspective on what I'm going through and where I want to be in the end. Ran, if you happen to read this: thank you. You helped me a lot when I was struggling, and I'll be grateful for that forever :)
I just need to know one thing: how does it compare to the i9-13900K in VRChat?
If you scroll down a bit further you might find Brittanica's better definition: "A writing system, technically referred to as a script or an orthography, consists of a set of visible marks, forms, or structures called characters or graphs that are related to some structure in the linguistic system."

Emoji certainly classify as related to a "linguistic system" even if you don't think they have a direct verbal counterpart. Non-verbal languages certainly exist and many of them have forms of writing systems and some of those are encoded in Unicode, too. Emoji isn't the only "writing system for a non-verbal language system" encoded in Unicode.
Postgres bigint is a signed 64-bit integer, not an unsigned one. https://www.postgresql.org/docs/current/datatype-numeric.htm...

Trying to use it to store the full range of unsigned values would mean awkward math everywhere, to convert between the two ranges.

Lots of software uses uint64s, for e.g. as identifiers handed out by some API, and not being able to store them conveniently definitely hurts.
The big thing that put me off Qt 6, even though I’ve been a fan of Qt in the past, is that I cannot download the official release, even if the LGPL version, without registering an account, while before you only needed that if you wanted a commercial license or to use their other services.
Interestingly I was thinking just the other day that I wish I had a wood-burning fireplace and somewhere to chop the wood for it, because that seems both cathartic in its simplicity and repetition as well as something physical.
Are you referring to redpanda.com or something else?
Has gait analysis been studied by people other than the ones selling gait monitoring equipment? It smells to me like bite mark analysis, blood splatter analysis, polygraphs, and other "miracle" technologies/techniques that turned out to be horsecrap.
> It's the original sin of White people. It doesn't matter what they've done, what challenges they've faced, where in the world they live, what their actual ethnic group or nationality is, what their class or income status is etc. etc. - none of that matters.

No, it fundamentally doesn’t… because, no matter where they go in the world, irregardless of all of their own (real, or imagined) hardship, when they arrive they _will_ be treated better than a non-white person that is otherwise of the same socio-economic standing arriving from the same origin point… and that’s just an observable fact, one I’ve seen with my own two eyes all around the world, and that simple, reliably true fact exists simply because it’s not the original sin of the white people of today, it’s the legacy of the white people of centuries ago, and the systemic biases they absolutely developed and, just as absolutely, left behind, and which we’re responsible for dismantling and discarding today.

> you're "privileged" (even if you live in a trailer park).

Yes, you are. And, having spent the first years of my life in just such a trailer park, surrounded by other trash, I can assure you that EVERY white person in that trailer park knows VERY certainly there’s worse colors of trash to be. A trailer isn’t much of a platform to look down from, but a lot of white folk in trailers still find a way.

> No - your toxic politics of envy and resentment are best ignored entirely.

I neither envy nor resent any living being… there are quite a few I’m repulsed by. Most of them can’t acknowledge the simple fact that those who deny the concept of privilege the hardest are always and only those who rely on it the most.

> The point is to unmask your hypocricy.

Even if that were the word, you’d have to actually succeed at finding it to unmask it. Thou hast not.

> You don't actually have a problem with racism pe se - because it's OK when you do it.

It’s OK to be racist. We’re ALL racist… the point is to be less so than you were the day before, and ideally less so than the other guy. Good luck with that, and the chip on your shoulder.

> You're not here to make anything better or fix anything.

Oh, I’m _trying_… some people just want to stay broke.

> The fact that "It's OK to be white" presents such a problem to you

It presents no problem to me whatsoever… it’s just humorous to see those who are predisposed to culture wars try to invent one.
A lot of your reasoning requires a big [cite needed] - specifically the "lots of people would work less". UBI pilot programs have proved the opposite. Also several states cut unemployment benefits to goose their active worker numbers and the opposite happened - less people working.

I'm not saying that nationwide UBI would be a good thing but your logic isn't clear.
Really, I think it's just a consequence of living so long in what I consider an echo chamber. It's jarring to move back out of a huge, exceedingly left/liberal metro area into a much more politically mixed area.

And yeah, as an immigrant, certain conservatives have absolutely espoused views that are... antagonistic towards her family, even though they didn't know it at the time. You're basically on the money with your last sentence. It's really more of an apprehension that my political views are shifting (or I hid them) as a result of hanging out with those who hold contrary views.
It's not a meaningful distinction because of what you said years ago? Am I even reading this post right? It's so absurd.
When the Switch was first presented, there was a lot of skepticism about whether Nintendo can turn things around with this thing. Many people called it gimmicky and suspected another failure like the Wii U. Is there a way to search for the old Hacker News discussion? In comparison, the Steam Deck was met with a lot of online hype. If anything, the Steam Deck looked more promising before launch than the Switch. Of course the Steam Deck has no big exclusive games, and there was hardly any marketing.
Recently I've been working with the %%ipytest magic command for running pytest in notebooks.

Is there a %%sage IPython magic method that passes code through the preparse.py input transform?
What? No. NoSQLs don't help with joins, as they don't have them at all. Meaning every "join-like" has to be client side and entails transmitting stuff to the client, which is even worse than temporary tables.

There are multiple reasons to use NoSQL and non of them is this one.

Having said that - cool, I like relational databases and love my multi-joins going faster.
While they focused on the wet market that doesn't mean they would have ignored cases from people who didn't go there because they would have to identify cases first and then find out where they were. At the time it simply wasn't feasible to check those near the wet market to see if they were infected. The focus was on the wet market before we had viable large scale testing.

Only checking the wet market would only make sense in an immobile society.
>What is your motivation in making this post other than to protect the Chinese communist party from any and all criticism?

Sorry, but if this is your best effort at explaining that post, then there is something deeply wrong with you.
> Or are you proposing only the smartass octupuses survive?

Yes, that's how evolution works. Some octopus is a little bit smarter than the others and is able to escape a predator by hiding in a hole. She doesn't get eaten today and so is able to reproduce tomorrow. Some of her 100,000 eggs have her genes for higher intelligence.

The octopus kids who are slightly more intelligent are also slightly more likely to survive and reproduce. And if the genes for intelligence build on each other then at some point the smart octopusses will have a kid or a few kids who are even a little bit smarter and survive a little bit better. Maybe they're smart enough to figure out they can hide under a shell.

If you're able to learn "hide under a shell" from your parents then you don't need to be that smart. But if each individual is able to figure out "hide under a shell" from first principles then that's a huge advantage. Maybe you ended up far from home and the shells look different here. Congrats, your octopus can still figure it out, but your imprinted animal is now dinner. The octopus can still reproduce and pass along his "smart" genes.
I can repro this in Chrome too when I have NextDNS as the DNS through our fiber connection. If I for example switch my phone to 4G it will let me through. I haven't dug into it yet as to why, there's nothing in the NextDNS block logs that looks relevant. But interestingly enabling NextDNS over 4G doesn't break it with the same settings.

I did take the rather unprecedented approach to blocking all DNS traffic to anything but our router (because Android was ignoring my DNS settings and using its own... ), breaking my internal dns resolution. Making DNS queries wonder from JS would be new to me... (I didn't think that was possible).

I'll dig more tonight.
434F5252454354.
Hopefully KDE 6 has a modern theme, Plasma is very 2015.
Because linguistic purism has a totally untroubled and neutral history of effectiveness.
I think it's hard to get all the details right.

Many APIs already use code generation from some higher level specification, since you really want your API to be cohesive and unified.

For now AI tools are great for exploration of new ideas, but not really generating tens of thousands lines of repetitive code.
Hot take: The docs are an important part of the product. If you notice that the docs are bad, the product is bad.

Docs are hard and thankless, but ¯\_(ツ)_/¯ them's the breaks.