skysight-inc/HackerNews huggingface dataset:
This is bad advice.

Say I have a user table, and the email is unique and required, and we don’t let users update their email, and we don’t have user deletion. If I’m going natural PK, I make email the primary key.

But … then we add the ability for users to update their email. But it should still be the same user! This is trivial if we have a surrogate primary key, a nightmare if we made email the natural primary key.

Or building on that example, maybe at first we always require an email from our users. But later we also allow phone auth, and you just need an email OR a phone number. And later we add user name auth, SSO, etc. Again, all good with surrogate primary keys, a nightmare with natural primary keys.

There are countless examples like this. You brought up cars, same thing with licence plates, for example. Or even Social Security Numbers/Social Insurance Numbers - in Canada SINs are generally permanent, but temporary residents can have their SIN change if they later become permanent residents, but they’re still the same person.

You want your entities to have stable identity, even if things you at one time thought gave them identity change. Surrogate primary keys do that, natural primary keys do not. Don’t use natural primary keys, use surrogate primary keys with unique constraints/indexes.

I challenge you to come up with a single plausible example where you’re screwing yourself by choosing surrogate PK + unique constraints/indexes. Meanwhile there are endless examples where you’re screwing yourself by choosing natural PK.
Horrible article. You could crack md5 hashes in hours like 15 years ago. Nobody barely serious uses md5 for password derivation since long.
the SIM card will have this information, also if you put your phone in lost mode, it gives you the option to display a contact number
Same with industrialization. Awfully huge down payment.
> That specific phrase should specifically auto-alert the censors to a known forbidden topic

Heck, even get you flagged here, for that matter.
The U series doesn't even hit that power consumption when all cores are in use -- its power consumption is between 10 and 30W. The higher power mobile chips are the H series, but even there the one that uses "65-70W" is the 16-core 7945HX3D, which is a 5nm/6nm chip you're comparing to Apple's 3nm one, and even then it's almost as fast. Most of even the H series uses less power than that, partially because some of them are 4nm but mostly because they have fewer cores.

But you can't really expect an older CPU on a previous generation process node with lower power consumption to be faster.
In this particular discussion, I am not looking for the best process for the task. I am looking for a process that will not get deemed a "red flag" by candidates.
If hidden pollution bothers you, and you use Windows, don't browse the registry. shudder

Actually AppData can get a bit polluted too.
Fair enough; can’t say I have this experience but that’s fine; I am not religious. Although I would say, unless you are doing a lot of things with macros (hint; you shouldn’t and where you do, it should be clearly indicated; Ruby suffers from this as well when reading code imho) otherwise it seems very strange the code/data barrier isn’t immediately clear. But maybe I don’t hang as much on syntax as others do (we our own k3 to lisp to CUDA for some things and I don’t find it different/more difficult to read).
I love SQL, I think it's fantastic, it's also the one skill I learned 30 years ago that still applies today and that I, personally, have used across at least six different databases.

The critiques in that link show a fundamental lack of understanding, eg. it poses that the following query should be allowed and wonders why sql complains about fetching more than one row since avg requires more than one row, but the reality is that what they are describing is avg(rows of rows) rather than avg(rows) which obviously doesn't make sense:

SELECT
AVG(
SELECT SUM(amount) FROM purchases GROUP BY customer
)

But even worse, the article says that the only solution is using a CTE(!?) and doesn't mention the obvious use of a subquery:

SELECT
AVG(total)
FROM (
SELECT
SUM(amount) total_per_customer
FROM
purchases
GROUP BY customer
);

In my experience I've seen that usually the people that find it difficult to understand SQL are also the people that will be writing .fetch_by_id functions instead of .fetch_by_filters, ie. they consider database tables and data in general as 1d arrays in imperative programming and only think in those terms rather than the 2d sets they are. I'd wonder how their mind would melt if they'd tried to understand querying for 3d data, eg. temporal databases.

Also I fail to see how KQL is any different to SQL, it's pretty much the same thing with the exception that the selection comes afterwards, is that the factor that makes you hate SQL?

From the link you posted:

StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count

vs

FROM StormEvents
WHERE StartTime BETWEEN '2007-11-01' AND '2007-12-01'
AND State = 'FLORIDA'
SELECT count(*)

and

StormEvents
| where DamageCrops > 0
| summarize
MaxCropDamage=max(DamageCrops),
MinCropDamage=min(DamageCrops),
AvgCropDamage=avg(DamageCrops)
by EventType
| sort by AvgCropDamage

vs

FROM StormEvents
WHERE DamageCrops > 0
SELECT max(DamageCrops) MaxCropDamage,
min(DamageCrops) MinCropDamage,
avg(DamageCrops) AvgCropDamage
GROUP BY EventType
ORDER BY AvgCropDamage
Aha Poire

And also https://en.wikipedia.org/wiki/Grothendieck_inequality#Grothe...
It's the more exposed thought process that shines a strong light into your mind. It's not just what you do but the why.

It's no wonder collecting this info is a priority. It will be a goldmine for dataminers with the right correlation. Sure right now it's not collected centrally but I'm sure sooner or later there'll be a quick "just click off this tiny T&C update before you continue" crossing our paths.

Also, it means that this confidential info is now in more places than one. It's no longer sufficient to encrypt a file and lay it on a usb stick in the safe.

And it's also there in centralised place ripe for the taking. Not even any need to scan the system to find valuable information.
Thoughts on a new date format for remove month date ambiguity
This is a proposal for an extended ISO date format. From the pains of my previous work experience, I saw, all other parts of the dates were quite unambigious, but when it came to month and date, the information is lost. There has to be some understood contract between parties to adhere to the formats. This is unnecessary. This date doesn't need to be widely used, but for b2b maybe, where we have to parse date from different vendors. Mostly none of the date formats deal with this. There is no way to tell 2016-01-02 is YYYY-MM-DD or YYYY-DD-MM

P.S. I took the help of GPT to fix the english in the draft.
Because nobody else mentioned it, elisp is here to stay and a very useful tool to have around if you use Emacs. Not the one-true-Lisp for sure, but a practical way to make your everyday life more enjoyable and efficient and enough to satisfy the occasional lisp craving.
I use this

not too difficult to set up

works well
Proof and strong evidence are the same thing in my view of the world, for everything outside of pure mathematics. Of course, this means that even a previously "proven" fact can turn out to be wrong later on. But the alternative is that "proof" simply doesn't exist, as nothing about the physical world can be "proven" to the extent that 2+2=4 can be.

And yes, atoms have of course always existed. As the other poster points out, even before we could even understand the concept, we could detect them. Cats can detect them.

The thing about this posited entity that makes me so certain it is not an external phenomenon (or, if you prefer being mathematically pedantic, that gives me such a high degree of confidence that the probability of that is very very low) is that it is not detectable at all in many other experiments you can run. None of our finest instruments would pick up any increase or decrease in the physical quantities they can measure in the room with the person on psychedelics, if we were to waste money looking for this signal. And then, if they don't, then how could the brain of this person pick up such a weak signal? Why would it even have evolved to be able to detect this fifth fundamental force if it's so weak it can't even be detected by devices that are affected by a single atom passing them by?
/tmp on tmpfs is fine.

Hanging my comment here. Sorry to slap it into your universe.

My knowledge says... is it fine?

My RAM is for applications, and I buy RAM accordingly.

Most in this discussion seem to miss something quite vital and important. Linux is excellent at caching most-needed, most-used data in RAM, eg buff/cache in 'top', and that should be given higher priority than some temporary file a user might slap in /tmp/.

50% of my RAM, randomly flushing out buffers and cache! Buffers and cache, which stores commands I use frequently, libraries often used by applications, and so on! Any server that is reasonably loaded, will show RAM fully used by buffers/cache, excluding active RAM requirements. Now I'm to give 50% of this up, having those buffers/cache flushed for... someone unarchiving a tarball?!

And my swap file, something for emergency application RAM usage, now being stolen by /tmp. We're basically taking the most expensive storage space on a system, RAM, and relegating it to... a few log files, someone untarring software, and also...

Hard limiting its size to RAM requirements?!

This is sheer madness. It smacks of people with desktops, with enormous amounts of free RAM, making decisions for servers.

This change is bad.

Thoughts:

* It is not relevant what systemd does, endless things in Debian and other distros diverge from what systemd does

* Debian isn't aligning with 'other distros' when doing this, as there isn't a consensus here. Debian isn't some hold out, in fact there are far, far fewer installs elsewhere doing this.

* Stealing my RAM for transient files is dumb
Fun fact: one of the author, Larry Guth, is the son of Alan Guth, theoretical physicist of inflation Cosmology fame (https://en.wikipedia.org/wiki/Larry_Guth)
The power of Lisp really boils down to the personal experience of having a connected REPL. If you can evaluate any expression and sub-expression from your editor without having to move it anywhere, retype it, restructure it, or set up a stage for the surrounding state, that is extremely liberating and empowering.

I personally don't understand why anyone who has had the first-hand experience of writing software this way would willingly give up on this fun. Yet, I also understand that personal impressions can be deceiving. Just because I love chocolate and every single person I have ever met also loves it, it doesn't mean that there aren't people who genuinely hate it.

Sure, tons of other programming languages have borrowed features from Lisps and continue to do so, but there exists an emergent category of programs that are assuredly more difficult to build using non-Lispy languages. Check out, for example, hyperfiddle/electric.

My biggest personal regret is that I discovered Lisp too late in my professional life. For a very long time I have had the same experience you're describing — starting projects with high promise but then hitting practical roadblocks. With the caveat that none of them were in Lisp languages.

Today, I don't even think about it — if I have to build something, I'll grab a Lisp dialect. I don't consider Lisps to be different languages; I can relatively easily switch between Clojure, Clojurescript, Clojure-Dart, Fennel, Common Lisp, Elisp, etc. I can't say the same thing even about Javascript and Typescript. Darn, even when I have to switch between different JS libraries, it feels like I have to deal with some mental overhead. That doesn't happen with Lisps.

At the end of the day, there are always trade-offs, whatever tools you choose and whichever language(s) you pick. Nothing is ever perfect. For me, if something isn't working, then maybe I need to find a Lisp better suited for the job. And usually, there are always options to choose from.
That combination of columns being a candidate key depends on the world or domain that your dataset is modeling. In this example, I think it was a list of the top 50 restaurants in the world and so it would make a fine key. But if that database was ever expanded then definitely you would run into collision issues.
> I think it all depends on the language, but I found it (usually) easier to implement the recursive-descending parsers just manually. This may include combination approach too, but using my own combinatorial and domain-specific functions.

Working in what languages did you make this observation?

In something like C I would probably agree with you. But in eg Haskell or OCaml, I would probably prefer parser combinators.
It’s a business opportunity! I’d love it if my insurance provider notified me about possible conflicts of interest from doctors as soon as they received bills from them

Bundle it with a service that lets me schedule doctors’ appointments without phone calls, and I’d pay for it out of pocket
Show HN: Waitlist for Miko Forms – Collect Data Through Conversations
The new slashdotted ;-)

But that is one of the reason static blog generators are better. It doesn't take that much power to regen the whole site anymore, and it enables serving at a scale, even on a potato VPS
The difference is, investments can go bad if the company fails.

A landlord never loses their money because they own the land. If a resident trashes their place, well they have insurance for that, better call the contractors to fix it up.
> Many were the times, earlier in my career, when I decided to use a 'natural key' as a key in my own database. As far as I recall, I've regretted it every single time.

Correct. Infamously correct

Every "natural key" will have some way of fumbling things down the line.

Nothing is unique, not even joining your natural key with other deduplication info. Just save yourself the trouble.
ODroid made way more sense for my Home Assistant box, as I did not want to rely on an SD card that famously fails in Pis with a lot of writing. There are other various competitors in that form factor.

I've never bought one before but 1 Liter PCs and used equipment off eBay also are highly recommended. Depends on how powerful you need the box to be and how much power you care about it using.
- I think the most important skill for making hardware is just having a good fundamental understanding of electricity. Just developing an intuition around Ohm's law gets you remarkably far in terms of developing and debugging circuits. Towards that end, Khan's "Introduction to electrical engineering" and MIT's 6.01SC Unit 3 both look great.

- For this specific project, I needed to program an FPGA so I drew on my college experience (18-240) where we learned about FPGAs and Verilog. Coursera's "Introduction to FPGA Design for Embedded Systems" looks like a good option.

- Don't be discouraged by hardware tools. Coming from a software background, using hardware tools is like traveling to a foreign land where good UX is punishable by death. At its core, designing PCBs is really just drawing 2D shapes, and it's striking how painful drawing is using hardware tools (eg Eagle, Kicad) versus how delightful drawing is using artistic tools (eg Sketch, Figma).
They should still bin, so that each individual resistor gets the highest price possible by the virtue of its classification, even if the binning is costly.
Hey HN, over the past few months I have been working on miko forms which replaces traditional user onboarding forms with AI based chat that collects the data through conversations, making onboarding for users much less tedious and fun filled!
Some history and limitations of uname(1) fields
> Parsing is an application domain where I'd expect more hard logic and less soft feelings than in this article.

Ah, an S-expr enjoyer I see
To avoid this and a bunch of other confusion, when accepting user input I recommend normalizing it to the composed form before writing to a DB or file. While unicode-aware tools and software should handle either form just fine, you probably want to avoid that there's something in the pipeline somewhere that treats the decomposed and composed form of the same string as different.
> Does it correlate with being susceptible to cults, group think and parroting other people’s ideas like a consumer rather than synthesizing your own?

It's known that being deluged with information tends to suspend one's own critical faculties in attempting to cope with the flow. Perhaps internet life, by tending to crowd out one's own thoughts, contributes to a sense of loss of will.

People who emerge from an "internet cleanse" seem to be refreshed in a way that might be interpreted as the regaining of will, of freedom to formulate.

Or I might be full of balonie.
> This is bonkers. No need to overthink it.

Oh, overthinking can be fun!
> I think it all depends on the language, but I found it (usually) easier to implement the recursive-descending parsers just manually.

I think that packrat parsers are even easier to implement by hand, and even troubleshoot.

It's all procedural code, and you just call the next routine to figure out if you have a token match or not.

More importantly, PEGs promise to be easier to maintain in smaller custom parsers. To support an enum, all you need to do is add a function call, and that's it. One line of code. Can't beat that.
You might want to also look at what can already be done with an electrostatic design such as a fusor, and why they aren't widespread outside of science fair projects.

Another limitation with anything micro-fabricated is that the resulting radiation from fusion working is going to knock atoms out of their lattices, degrading chips in direct proportion to total (lifetime) energy output.
That's not shareware. At least not in the spirit. That's pay to win.

Shareware is about more features /content and a clean cut out of them in the free version.
Mathematical facts could be said to be different, though I think they are still compatible with my definition, so they could be considered a subset. So no, I don't believe there are other kinds of facts that don't match the criteria, though of course you can subdivide the ones that do into all sorts of categories.

And while any positive statement is either a fact or a "non fact", there are plenty of things we don't know the truth of (P=NP? Gravity is quantum?), and something that today seems a fact can be a non-fact tomorrow, though this rarely happens in physics (often, some preconditions just need to be added to make the older "fact" still correct).

I'm not sure what you want me to cite. Why I believe in this definition of "fact"?
I work with Rust most of the time. As of the pure functional languages, yes, perhaps using parser combinators is better.
Stop Human Approval in Pull Requests: A case for better collaboration
SEEKING WORK | California | Remote

Hello, I'm Eugene - Senior PHP developer 15+ years experience

- voznesen@gmail.com

- Solution architecture, design, development, maintenance, tests, performance, scaling, MVP, prototype, prod support, tech leadership, server side

- Laravel, MySQL, Git, Jenkins, Couchbase, Blackfire, Javascript, Redis, AWS
Every unix does its own thing, you just have to know your system.

In OpenBSD, /var/tmp -> ../tmp and /tmp is cleaned periodically and not preserved across reboots, but there are some specific exceptions and you have to dig into /etc/daily and /etc/rc scripts to know what they are.
So the reason is regulatory inertia? That's a lame excuse for animal cruelty.
Plant photosynthesis has its upper limits. So, self modulating to an extent.

I think the article is more insightful around I indoor air quality rather than outdoor. With respect to outdoor, if CO2 were fully self modulating, isn't the fact it has been consistently raising a counter point to that idea? How does self modulation explain the data showing increases?
Fuck I hate OpenAI. Never have I wished more for the failure of a company.

Actual, I want the entirety of the “AI revolution” to fail.

These technologies promising productivity improvements come, yet I’m still here waiting to get my slice of the pie. Who’s eating my slice??

I’m now more productive than I was last year, considerably so. No pay rise! I’m still working the same hours. So are all my colleagues. Stress is at an all time high. Expectations have increased.

WHO IS EATING MY PIE!
Surrogate keys do mirror reality though. As I once read in a Terry Pratchett book; if you replace the handle of an axe and then replace the head, is it still the same axe?

For me, the answer is yes - since we imbue the axe with an identity outside of it's integral parts.

That is what a surrogate key is. An identity. Which is an abstract concept that exists in the real world.

And to pile on. The top comment is bad advice! Surrogate keys provide sanity - god save you if you have to work in a database solely using natural keys.
> If my grammar looked like that, I'd throw it away and start over, because the problem to me appears to be not quite having a clear idea of what the grammar is expressing.

That's fine if you are working in a purely academic domain, or you're just having fun writing something on your free time.

In production settings, you need to keep extending whatever language you have. The alternative is having to start to maintain two separate parsers and a migration tool, and be stuck with that for years.

The point is that being able to throw away code is a luxury that virtually no one is able to afford.
How 'bout real simple browser extensions to add a hotkey to "Scroll to <main>" ?
I don't like the description of music as "content" either. And I expect that Spotify will continue to pay money to record labels.

But Suno seems surprisingly good.
We started with c# decades ago, but lisp (and prolog by the way) kept nagging, so about 8-9 years ago I started getting my senior devs in workshops ; after about 6 months some of them asked wtf we are doing with that c# stuff?! While that is unfair, the debugging experience, stability, flexibility etc are more painful for my taste.

Also, the biggest complaint by many; I have not found any cases where packages we were missing in lisp but are there in nupkg or npm actually sped up any work in the long run. Our work is very regulated (so we check, read and fork the stuff we use to make sure nothing bad lands in prod) and our integrations almost never have integration packages available and if they have them, they are out of date or very badly done because everyone just does it from scratch to make sure.

Maybe we are weird and that is fine, but, if there is one thing; we iterate faster than our competitors.
ARRL Systems Service Disruption
Mathematically, the camera most often used in computer vision is a pinhole camera. When we talk about "distortions" I think it's usually with regards to how the real device systematically deviates from that model.

Calibration in this context is essentially the task of finding the optimal parameters of some (usually nonlinear) function (u,v)=f(x,y) that remaps positions in the original image frame to a rectified frame, where all straight lines in the world appear straight in the image. Technically, a skewed and squashed image would also fulfill those requirements, too. But this is a customer-oriented blog post, to give someone enough of an understanding to convince them of the importance of calibration, it's not a rigorous technical paper, so I actually think it's fine to skip/simplify some details.
Wonder what xz would make of this nonsense.
How can xAI, a new startup, be more prepared for using GPUs, then an established AI company like Tesla with vast resources?