skysight-inc/HackerNews huggingface dataset:
One of the #1 issues I’ve seen with DRY over the years seems to stem from a misunderstanding of what it means.

DRY is not just about code duplication, it’s about information/knowledge duplication, and code happens to be one representation of information.

Hyper focusing on code duplication quickly gets into premature optimization territory, and can result in DRYing things that don’t make sense. Focusing on information duplication leaves some leeway for the code and helps identify which parts of the code actually need DRY.

The difference is important, and later editions of the Pragmatic Programmer call this out specifically. But the concept of DRY often gets a bit twisted in my experience.
Ah, gotcha, thanks. You are right, I misunderstood
> For starters, it features a guy blaming his wife for a decision

No. Jessica's role here was a founding partner of YC, not as "his wife." His tweet says that Jessica (not Paul himself, or both together) was the person who communicated with Sam that he needed to choose (and possibly also handled the matter overall).
Yes, I don't understand how anybody who's ever ridden a bike in a major American city isn't super excited about high-quality self driving vehicles. The crazy stuff I see on a daily basis while out biking in Seattle (and statistically we are one of the best places to bike in the US) means I can't wait until these things take over :-)
The Decline of the User Interface
With REST, the endpoints are team based if you have even a semi-competent CTO so you never have this problem, you just check who owns the controller and that's it.

With GQL though, good luck retracing who owns what field and what does it affect if you change the definition of what it returns, especially that you you are not even using it on the same language.

Bonus points here if you are managing something outside of your control like a mobile app.
Proper civil protest would be not to use any site that has google analytics. And when you find one that has that you have to use spam the owning company until they remove it.
This is what I subscribe to currently (along with Readwise) but it doesn't save tweets unless I also pay for an IFTTT Pro subscription as well. Correct me if I'm wrong. I'm trying to reduce my online subscriptions, but ultimately, this may be the way I go if I can find the value in it.
If it’s a switch, you could unlock it and allow for the provider’s (or your own if it’s your own equipment) updates before re-locking it.
Thanks for being a part of our journey Colin!
Google doesn't test! That is what production and SREs and users are for.
Thank you so much! I got it written down, and we will check account links separately. I understand about the updates. I heard that regular updates are important for GitHub also, to know which projects are alive and which are dead. Interesting, thanks!
Not sure "foreign puppet regime" really characterises, for example, the late GDR's government properly.

Anyway, yes, the state run economy was doing poorly (especially compared to small capitalist bits).
Well, that seems intriguingly topical in the current era of LLMs & occurrences of their verbatim reproduction of training data... :)

Perhaps it's not mindless reproduction of the training data, rather, entirely mindful reproduction... :D

The Wikipedia page notes:

"Pierre Menard is often used to raise questions and discussion about the nature of authorship, appropriation, and interpretation."
Review: 'Robot Dreams' is more profound than it has any right to be
IMO it hurts developer productivity more than performance, because it introduces indirection and potentially unhelpful abstractions that can obscure what is actually going on and make it harder to understand the code.

In raw performance this could manifest as issues with data duplication bloating structures and resulting in cache misses, generic structures expressed in JSON being slower then a purpose-built struct, chasing pointers because of functions buried in polymorphic hierarchies. But I doubt that any of this would really matter in 99% of applications.
Thank you Dang. I feel this is the right time to bring this discussion back, as HN has recently been having a lot of discussions about love, death, and loss. This discussion really isn’t only about the linked letter.
Not from my experience. Unnecessarily duplicated code, even when there are small differences which are likely accidental, is usually much easier to fix than too DRY code. Pulling apart false sharing can be really hard.
Ah - sorry, now I understand. Also TIL - This might not be right away accessible on Linux, unless certain config is done/set. Thanks!
You used an interesting view of "practical" :) Deep connection is not just some bonus, I think, but in fact the main practical thing about a relationship.

So I share your concern, but even so I'm not that worried. The deeper a connection you've been able to forge in the past, the better your chances of forging another deep connection.
I’m also interested!
This kind of snark is not appreciated here on HN. It is hostile to your fellow members, and does not advance the discussion.
Sounds like you are describing the Backend For Frontend (BFF) pattern and I also quite like it.
Here is the same with the routers that got bricked. They probably need to be reflashed. Most likely they are leased by the ISP so under their scope of responsibility and maintenance.

"internet doesn't work" -> "send me a new router, it broke", problem solved.
Oracle Database 23ai – Feel the Difference
It would certainly be lossy. We don't know how to make them reliably know any particular facts. Neither training or in context learning does this without fail.
I start by treating Javascript as whitelist only. If the site is blank without Javascript, I ask myself what is the chance its worth enabling scripts one by one. HTML CSS and reasonably sized images are quick, its videos, scripts, and calls to databases which are slow.
Where do I do that? The two are not the same, but socialism is also not the same as social democracy, for example.
This is like, an hour per endpoint. For maybe 30 endpoints (high figure for many apps) throughout the lifespan of your application. But let's say 3 hours: you're talking about 90 hours in total, over a period of 2 or more years. It's really not that much.

And GraphQL isn't free either; you need to actually implement that. It pervades your entire stack, too – it's not something you can just "put on top of it".

I think that in many cases, perhaps even most, GraphQL is a "spend 8 hours to automate a half hour task" kind of affair. Are there cases where that's not the case? Probably. Maybe your specific use case is one of them. But for the general case? I'm entirely unconvinced.
> There were literal Nazi flag present.

And when that happened, it was immediately taken down by the rest of the protesters. Just admit that you fell for the alarmist propaganda and move on with your life.
This feels timely given the many who will have recently received their rejections from YCombinator
Premature optimization is about not making a micro-implementation change (e.g. `++i` vs `i++`) for the sake of percieved performance. You should always measure to identify slow points in expected workloads, profile to identify the actual slow areas, make high-level changes (data structure, algorithm) first, then make more targetted optimizations if needed.

In some cases it makes sense, like writing SIMD/etc. specific assembly for compression/decompression or video/audio codecs, but more often than not the readable version is just as good -- especially when compilers can do the optimizations for you.

A lot of times I've found performance increases have come from not duplicating work -- e.g. not fetching the same data each time within a loop if it is fixed.
JFC, no you don’t get to choose whatever you want and being denied the choice of your #1 preference is not being “forced” to do anything. Other people exist and have interests too, you know?

If he had chosen both then that is the same as choosing OpenAI. “Both” was not an option on the table.

Being told to commit or leave is not being kicked out. You can choose to commit and stay.
I haven't came across the PS5 only title that'll make me upgrade. GTA6 may change that
My hypothesis is that it's a bit of "referred pain". There is a pretty broad nervousness and pessimism about the state of the nation generally, and I suspect that influences how people feel about the economy.
I worked on a GraphQL API a few years ago and we solved these problems at the beginning and then forgot about them. We generated the schema for a user from their CanCan abilities (CanCan can handle attribute-level access, I wrote the PR). Shopify has support gems for the N+1 stuff, if I remember correctly. You can limit how many levels deep your query can go. We added some rate limiting.

Basically, these are all solved problems.
ugh tell that to the idiots who give me the finger for zipper merging in Columbus, OH
You're forgetting an NFT for all my finance bro friends to pump and dump
PS4 is my last console. I’ve had many of them since the Sega Megadrive (Genesis). Sony injecting adverts into my home screen was the writing on the wall, as well as transcribing voice chat. I’ve been gaming on Linux for 2 years now and couldn’t be happier.
Not everyone uses 'pushes my buttons' to refer only to negative emotional responses.

https://grammarist.com/idiom/push-someones-buttons
> maybe we all need to treat every device attached to the internet as having a similar susceptibility to “electronic counter-measures”

"First party malware"
Yes, I understand the risk, but I really care about trying something new and risky and getting more users rather than running a slow-growing business. If Amazon steals it from me tomorrow, I think I will celebrate for a week :-)
> everyone will get in the right lane for ten miles.

And have 10 miles to get up to speed. As opposed to the zipper merge where everyone waits til the last minute, and everyone has to come to a complete stop.

Supposing of course your observations are true. From what I can tell with the "lane closed in 10 miles", is some asshole invariably sees it as a chance to get ahead of everyone else, zooms through the left lane, almost causes an accident, and then other idiots who think he's being successful in zooming ahead imitate his behavior. You get your "zipper merge" anyway, where everyone has to come to a dead stop at the chokepoint anyway. We're not all one gigantic robotic hivemind, preparing early makes for a smoother experience for all and fewer hostile feelings.

For those who use the shoulder on the interstate who do not have genuine medical emergencies (why didn't you call the ambulance?) I propose that they bring in mobile car crushers. I'm even generous enough to let them exit the vehicle first.
Entirely possible, but there's ample evidence that GIGANTIC amounts of people/projects/etc do not do that. Probably because everyone has to configure and run new opaque blobs of software per language / package system / etc.

Vendoring (generally) means it's already on disk and needs no config or separate processes to take advantage of. It's nearly foolproof.
The 2D Discrete Fourier Transform (DFT) can replace attention because the 2D DFT looks a lot like attention. The algorithm loops over each pair of values in the input matrix, calculating first a linear combination of each pair that scales based on the distance between the values in the matrix. Closer values have more influence on each other than more distance values. This linear combination is fed into the famous e^(i*pi) equation that transforms it into a sinusoid. The sinusoids are summed up, giving you an output matrix that is a sum of sinusoids representing the frequency domain.

By comparison, the attention algorithm also combines each pair of values in the input matrix, but that linear combination involves learned weights, rather than simple fixed basis functions (sines and cosines) in the DFT.

The FNet paper suggests that the DFT works as a replacement for attention because in making the pairwise calculations to generate the 2D frequency representation of the input, information on these pairwise relationships is surfaced and made available to later feed-forward layers. As a handy add-on feature, the DFT also makes positional embedding unnecessary, because positional information is encoded by the DFT at each layer. That being said, in the paper they still applied positional embeddings so that they could make a direct comparison with the BERT architecture.

Amazing how these old signal processing ideas have made their way into neural networks, still proving their effectiveness and efficiency after 100 years or more (Gauss devised the Fast Fourier Transform algorithm in 1805 but we left it mostly on the shelf until it was reinvented by Cooley and Tukey in 1965).
If it takes more than a minute to understand how a single button example works, one should give up. Maybe some day I'll come crawling back to Redux, that'll be fine, but so far it hasn't happened. Same with Angular.
No, what you are seeing is people refusing to be spun up into rumor-mongering, which is good because you don't want all the air going to spurious claims and counterclaims when there are factual and uncontroversial observations to be angry about instead
That fun fact bothers me at a fundamental level. I've seen it happen so many times and is really painful when the people were promoted out of the place. Even worse when they are good developers, but often in a cowboy style where they confuse their energy for some fundamental efficiency of what they were doing.
yes, you can hack something together that keeps them in source control, and then some automations to run them in a CD way. But now your business logic change is half in application code, and half in sprocs, and you have a versioning and deployment coordination problem. Which you can work around too. But why? making deployments and debugging of buis logic hard for what end? Just keep all the business logic in your app code, then its deployed and tested as one artifact, and everyones happier.

Also i hope you're not suggesting anyone pick up oracle for a new project these days :)
Because you’re unlikely to write a good abstraction until you need it more than twice.

And if you only need the code twice, you very likely wasted time writing the abstraction because copying updates between the two locations is not hard.

This is a rule of thumb, I’m not trying to tell anyone how to do their job.
Because it is important to me as a Muslim. Also it is challenging, interesting, to try and memorize an entire book.
If multicast is the answer, what was the question?
I’m certainly not a domain expert, but one thing I have read repeatedly about Transformers is that not all tricks scale the same.
Not sure what you’re getting at. We take those rules and use a static analysis tool (LDRA) to prove they are met. You can write unsafe code in any language.
There is no discussion of hiring/internally promoting a manger, then stepping back from running the company. Did you consider that option?
I have worked in SEO for 10+ years and didn't find this very useful. Yes, it validates a bunch of theories I have. No, it doesn't change how I will do anything.
Show HN: Spreadsheet-Like Supplement Comparison
If they were truly poison, yes. But it’s a figure of speech.

I prefer Apple because it’s not nearly as bad. And I like having a phone and laptop.
That's a counterintuitive and interesting thought, I'll have to ponder that, thanks.
I am still figuring out the positioning, but the idea is to allow search among thousands of supplements and compare the matching ingredients in a spreadsheet-like interface.

In this example, we see every supplement that contains "magnesium citrate", price of the supplement, totals contents, servings, amount per serving, and price per mg.

This way is the quickest way to figure out which supplement to buy if you are looking for a specific ingredient, as it tells you the price and quantity without needing to browse every product individually.

I've also collected attributes that help to narrow down supplements based on the attributes such as gluten free, vegan, etc. and certifications such as GMP Certified, etc.

I geek out about LLMs and data normalization. I wanted to build something in an intersection of my skills and something that would appear as borderline absurd but have counterparts with billions of revenue (iHerb). I bumped into iHerb and the problem by pure coincidence as I got frustrated trying to buy supplements for myself. It started with a spreadsheet (https://docs.google.com/spreadsheets/d/1qnhEhBPkpI6rY2kdXo5z...) and quickly escalated to what you see today.
So what happens when you intercept and blow up an ICBM in the atmosphere? Not good things, I think.
Don't use ads and I'll start paying.
The article cites Hacking but doesn't give a source. I think they are mainly using this old article: https://web.ics.purdue.edu/~drkelly/HackingMakingUpPeople198..., maybe they also gave his work on MPD a brief skim.

It's kind of weird to say that a news article discussing different perspectives should not mention a well-sourced article that has gathered 3888 citations, on the basis of "qualifications". For the pop-sci "new study finds X" pieces the bar is basically "published in a journal", which of course Hacking's paper satisfies. I did a brief search and there aren't any obvious modifications to his work. Sure, there are papers like https://www.frontiersin.org/journals/psychiatry/articles/10.... and https://www.tandfonline.com/doi/full/10.1080/09687599.2020.1..., but nothing with thousands of citations, and these more recent papers build on Hacking's theory rather than attacking it. Uncritically accepting Hacking's theory is not "begging the question", it is more like "if the shoe fits, wear it". And in this case there are not any obviously better shoes.
> Lumen identified over 330,000 unique IP addresses that communicated with one of 75 observed C2 nodes

How does Black Lotus Labs global telemetry know which IP communicated with which other IP if they have control of neither endpoint? Who/what is keeping traffic logs?

If these guys can do it, remind me again how Tor is secure because nobody could possibly be able to follow packets from your machine, through the onion hops, to the exit node where the same packet is available unencrypted...
Yeah, premature DRY is a pet peeve of mine. Especially since the "size" of the code necessary to trigger DRY is totally subjective: some people apply DRY when they see similar blocks of code, others are so averse to repetition they start abstracting out native syntax.
Hi, thanks for the suggestion! Currently it doesn't have that feature.

You can create an issue about it on GitHub so we can evaluate how much it is needed.
Windows has a stateless mode.

https://learn.microsoft.com/en-us/windows/iot/iot-enterprise...

> Unified Write Filter (UWF) is an optional Windows 10 feature that helps to protect your drives by intercepting and redirecting any writes to the drive (app installations, settings changes, saved data) to a virtual overlay. The virtual overlay is a temporary location that is cleared during a reboot or when a guest user logs off.. Increases security and reliability where new apps aren't frequently added. Can be used to reduce wear on solid-state drives and other write-sensitive media. Optimizing Application load timing on boot – it can be faster to resume from a HORM file on every boot rather than reloading the system on each boot. UWF replaces the Windows 7 Enhanced Write Filter (EWF) and the File Based Write Filter (FBWF).
Interested to hear more about this. What works well? What didn't?
Microsoft decided it was prohibitive for them. So probably overly difficult.
In an effort to DRY, you add a bunch of if statements to handle every use case.
GQL you would only care about if someone removed a field not if someone added a field. How would adding a field change existing GQL calls return? Doesn't make sense.

Also, Its about 1 line to set up CI to extract all GQL queries from a typescript project and do static analysis to check against the schema.

But again you only care if someone deletes a field, and even if you have to delete it, at least the GQL schema has built in annotations for deprecation, something not in REST.
I’ve got an old PC Engines board with openbsd on it. It’s been remarkably trouble free for something like 8 years.
> Is the duplication truly redundant or will the functionality need to evolve independently over time?

"Looks the same right now" != "Is the same all the time"

Bad abstraction is worse than no abstraction
In the general case, it usually depends on the latency of what you'd DRY your code to vs the latency of keeping the implementation local and specialized.

If you're talking about consolidating some code from one in-process place to another in the same language, you're mostly right: there's only going to be an optimization/performance concern when you have a very specific hotspot -- at which point you can selectively break the rule, following the guidance you quoted. This need for rule-breaking can turn out to be common in high-performance projects like audio, graphics, etc but is probably not what the GP had in mind.

In many environments, though, DRY'ing can mean moving some implementation to some out-of-language/runtime, out-of-process. or even out-of-instance service.

For many workloads, the overhead of making a bridged, IPC, or network call swamps your algorithm choice and this is often apparent immediately during design/development time. It's not premature optimization to say "we'll do a lot better to process these records locally using this contextually tuned approach than we will calling that service way out over there, even if the service can handle large/different loads more efficiently". It's just common sense. This happens a lot in some teams/organizations/projects.
100% into TQQQ

Throw away the login, come back in 15 years!
It’s incredible that they are so out of touch they see healthy introspection, and love as mental illness. This reminds me of when I had an actual bacterial infection, couldn’t get my Dr to prescribe antibiotics for it, so I got some on my own and they worked. When I pulled my medical records I saw in my chart something like “inappropriate off label use of prescription medications.”
We'll see! I'm curious to see what comes out of all this
Evals is the barrier to faster progress in gen AI
> idea that a frontend developer would send a ticket to somebody so they can get all the data they need... it's just crazy.

For me, what's crazy is that there are "web" developers who can't just add the endpoint they need while working on a frontend feature, or "web" developers who can't just add an element or a page for testing the backend endpoint.

What ever happened to full-stack developers? The "frontend" and "backend" developer split is so incredibly inefficient that it's really jarring—you take something that should take 2 hours and magically, through tickets, delegation, and waiting for results (then repeat that for debugging, who knows how many times!), make it into a 2-3 day task.

I once reproduced (black-box style!) a two-week effort by a three-man team in six hours of work simply because I had PyCharm and IDEA opened side-by-side and could write code on both sides at the same time.

If someone has a good explanation for why the full-stacks that were once the norm went almost extinct, I'd be happy to give it a read!
After having looked over your product's website (ozma.io), it feels like the issue may be more ensuring you're being seen by your target customer and solving a problem they have that entices them to use your product.

Your product's website is very 'feature' oriented, and not very 'Pain/Dream/Fix' formatted. https://sharpen.page/jtbd/copywriting/pain-dream-fix-and-jtb...
A physical switch can be locally toggled by the device owner/admin.

Some motherboards offer a physical jumper for firmware updates, including x86 PC Engines APU2 coreboot router.
Depends on where it blows up, but if you hit it at its apogee, a lot of it will burn up in the atmophere.