HNHacker News
TopNewBestAskShowJobs

sethev

2,195 karma · joined June 12, 2012

I've worked in a variety of language but my main interest lately is Clojure.

You can contact me at sethev@gmail.com

submissionscomments
sethev··on Developing a Space Flight Simulator in Clojure
A Lisp machine is no counterexample - they had assembly language instructions that were tailored for Lisp, but were still very much imperative. In fact, Clojure is significantly more functional than other Lisps, which used mutable cons cells extensively. Object oriented languages are also stateful and imperative, so I'm not sure why those are relevant here.

I'm not saying these things are bad - it's possible to imagine a computer architecture that makes functional programming easier, but it's really hard to imagine a useful computer that is not stateful and imperative! What would it do, in that case?

OpenGL vs not-OpenGL still seems like a very arbitrary way to classify simulations.

sethev··on Developing a Space Flight Simulator in Clojure
Computers are stateful and imperative, so any functional language that runs on real computers has a stateful and imperative base. OpenGL vs not seems like an odd place to draw the line on what you would consider functional vs not.
sethev··on What is it like to be a bat?
That's just a label, though, it makes no attempt to describe the difference. You could say a conscious object has subjective experience, but that's open to the same observation that it implies there are two things (the subject and the experience).
sethev··on What is it like to be a bat?
That particular phrasing happened to catch on, but I don't think it's essential to any of the arguments. How would you phrase the distinction between objects that are conscious and objects that aren't? Or are you saying that that distinction is just a verbal trick?
sethev··on SQLite's documentation about its durability properties is unclear
Fair! Fwiw, I enjoyed the post - hopefully my comment wasn't harsh.

I think it does come down to the definition of durable. The default in SQLite is that the data for a transaction will be written all the way to disk (with an fsync) and the rollback journal will be deleted (but without an fsync).

In this model, there is chance of losing only the last transaction and only if the whole system crashes (like a power failure) after deleting the journal but before your file system makes that durable. If your application crashes, you're still fine.

That's significantly more durable than an asynchronous commit in Postgres, though. In an asynchronous commit, the transaction will complete before any data is written to disk at all - the data is only in memory, and many transactions can queue up in memory during the wal_writer_delay. All of those will definitely be lost if Postgres stops uncleanly for any reason (for example a crash, oomkill, or power failure).

sethev··on SQLite's documentation about its durability properties is unclear
The documentation seems pretty clear to me - it describes specifically what each option controls and the implications of using it. Besides debating whether the default behavior is should be described as durable or not, this post's author seems to understand exactly what each option actually does.

Perhaps what's unclear is when to select which option?

sethev··on SQLite (with WAL) doesn't do `fsync` on each commit under default settings
One of the things I like about SQLite is how easy it is to understand its behavior if you read the docs. This is one of the potentially surprising defaults - but it seems reasonable for an embedded database, where a power loss is likely to cause the application to "forget" that something was committed at the same time that SQLite does.

However, it depends on the application - hence the need for clear docs and an understandable model.

sethev··on U.S. government takes 10% stake in Intel
The government took 79.9% of AIG in that bailout - which was the biggest of the "too big to fail" bailouts from the past. People seem to forget that the owners of these companies that were bailed out got almost completely wiped out and instead focus on management compensation (which famously stayed high).
sethev··on Dumb Pipe
They both run over UDP and always encrypt data. Beyond that superficial similarity they are completely different.

QUIC is a transport protocol that provides a stream abstraction (like TCP), with some improvements over TCP (like built-in support for multiplexing streams on the same connection, without head-of-line blocking issues).

Wireguard provides a network interface abstraction that acts as NIC. You can run TCP on top of a wireguard NIC (or QUIC for that matter).

sethev··on Async I/O on Linux in databases
There's some faulty reasoning in this post. Without the code, it's hard to pin down exactly where things went wrong.

These are the steps described in the post:

   1. Write intent record (async)
   2. Perform operation in memory
   3. Write completion record (async)
   4. Wait for the completion record to be written to the WAL
   5. Return success to client
If 4 is done correctly then 3 is not needed - it can just wait for the intent to be durable before replying to the client. Perhaps there's a small benefit to speculatively executing the operation before the WAL is committed - but I'm skeptical and my guess is that 4 is not being done correctly. The author added an update to the article:

> This is tracked through io_uring's completion queue - we only send a success response after receiving confirmation that the completion record has been persisted to stable storage

This makes it sound like he's submitting write operations for the completion record and then misinterpreting the completion queue for those writes as "the record is now in durable storage".

sethev··on Sage: An atomic bomb kicked off the biggest computing project in history
I live a few miles away from an old SAGE blockhouse [1]. It's still imposing today - basically looks like a giant block of cement. It's interesting to see pictures of the inside of one of these things when it was in use.

[1] https://fortwiki.com/Richards-Gebaur_SAGE_Direction_Center_D...

sethev··on Aeron: Efficient reliable UDP unicast, UDP multicast, and IPC message transport
A c5.9xlarge instance has 12 gigabits/s of bandwidth available [1]. A fair comparison to TCP would need to look at end to end message delivery, including framing / parsing of the messages.

On the face of it, the ability to use the majority of the bandwidth of the instance with small messages is impressive.

[1] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-inst...

sethev··on My AI skeptic friends are all nuts
Or in this very thread, for that matter.
sethev··on Gödel's theorem debunks the most important AI myth – Roger Penrose [video]
He says humans can transcend the rules in a way that Godels theorem shows is impossible for computers.
sethev··on Gödel's theorem debunks the most important AI myth – Roger Penrose [video]
Experience is what's hard to square with computability. David Chalmer's calls this the hard problem. As long as you're taking about producing speech or other behaviors, it's easy to see how that might be a computation (and nothing more).

It's harder (for me) to see how it's possible to say that pain is just a way of describing things, i.e. that there's in principle no difference between feeling pain and computing a certain function.

sethev··on Gödel's theorem debunks the most important AI myth – Roger Penrose [video]
Gödel's theorem attracts these weird misapplications for some reason. It proved that a formal system with enough power will have true statements that cannot be proven within that formal system. The human mind can't circumvent this somehow, we also can't create a formal system within our mind that can prove every true statement.

There's very little to see here with respect to consciousness or the nature of the mind.

sethev··on Penn to reduce graduate admissions, rescind acceptances amid research cuts
I mean, the grants that are being cut is the money that graduate students bring in. Less grant money -> fewer graduate students. In theory maybe it's possible to be more efficient like you're suggesting, but it's hard to see how the immediate response could be any different.
sethev··on Penn to reduce graduate admissions, rescind acceptances amid research cuts
Graduate students are paid to attend - they're more like employees than undergraduate students. Why wouldn't a university faced with funding cuts start by not hiring additional people rather than getting rid of current ones?
sethev··on Penn to reduce graduate admissions, rescind acceptances amid research cuts
Penn's endowment distributed $1.1 billion last year. Endowments like this are managed to last a long time - indefinitely, even.

Penn itself is older than the United States - they're not going to start blowing through their endowment because of political trends over the last couple months (or next 4 years), even if they legally could.

sethev··on NASA rover discovers liquid water 'ripples' carved into Mars rock
The linked article is literally about a thing they just discovered. Apparently you were hoping they would discover something different?
sethev··on Ugandan runner Jacob Kiplimo completes first ever sub-57 minute half marathon
You cited this reference up thread: "The Wilson Effect: The Increase in Heritability of IQ With Age". It should give you pause for your definition of heritability that this paper is saying it changes with age. As you point out a couple of comments later, genes don't change with age.

If you're going to cite heritability numbers, you have to use the technical definition of heritability (which is what these papers are using).

> Is this not what heritability means?

No, not at all.

sethev··on Children's arithmetic skills do not transfer between applied and academic math
Yes. I mean, either you're talking about statistical properties of a population or you're talking about something else. These discussions usually devolve into "something else" almost immediately.
sethev··on Children's arithmetic skills do not transfer between applied and academic math
> whether or not you wear lipstick has high heritability.

Think about this example. The genetic factor here is massive, much higher than anyone is claiming for IQ. Can you imagine how hopelessly lost you would be if your analysis of lipstick distribution in the population focused on its heritability and link to genetics?

sethev··on The doctor who gave himself an ulcer and solved a medical mystery (2010)
Yeah, I re-read the headline a couple times after seeing the comments and can't spot the ambiguity. Also, there's a difference between 'attention grabbing' and 'clickbait'. This headline seems like the first. It's literally highlighting one of the most interesting parts of the story and precisely describing it.

(Yes, I know the doctor in the article already believed he knew the answer)

sethev··on Forgejo: A self-hosted lightweight software forge
"then you go on to describe things that are not exclusive to Capitalism AT ALL."

Why are they required to be exclusive? If I said that uncontrolled train crossings lead to more train crashes, would you retort that train crashes aren't exclusive to uncontrolled crossings?

sethev··on Google's Results Are Infested, Open AI Is Using Their Playbook from the 2000s
I think you're right, but also this doesn't contradict the article. Google reset to a cleaner state (leaving behind the advertising choked portals of the late 90s). Over time both internal and external forces have chipped aways at Google's original model.

Perhaps AI could drive a similar reset.

sethev··on Antimatter Production, Storage, Control, Annihilation Applications in Propulsion
Yeah, forever is an overstatement since we know there's not sufficient fuel for that. However, my main point was there's not a global speed limit in the sense that a traveler would be prevented from accelerating at some point because they were "near the speed of light".

That's pretty mind boggling and quite different from "you can never reach the speed of light therefore you could never travel across the Milky Way in a human lifetime".

If you could carry sufficient fuel to accelerate at 9.8 m/s for 12 years you could travel across the Milky Way galaxy (112000 light years). You would be 12 years older but 112000 light years away from where you started. That's amazing to me.

It's a given that this is impractical.

sethev··on Antimatter production, storage, control, annihilation applications in propulsion
From the perspective of someone on the spaceship, this is absolutely possible by the laws of physics. It's a common misunderstanding that the speed of light is like a highway speed limit that's enforced by the universe. In reality, it means that light always travels at the speed of light and that you can never observe an object traveling faster than that.

However, a key part of relativity is that the laws of physics are the same in every reference frame. If you're on a ship with sufficient fuel, you can keep accelerating forever and cover vast distances. You'll never reach a point where the universe prevents you from accelerating. If it were otherwise, then relativity wouldn't be true - because there would be special rules that apply to people traveling at a certain speed. That's the whole point of relativity is there can't be such laws because there isn't a preferred reference frame in the universe!

However, the more you accelerate away from the earth the longer time will have passed on earth if you turn around and come back.

Here's a calculator you can play with: https://spacetravel.simhub.online

As an example, if you could accelerate at 9.8 m/s (same as gravity - so you could walk around the 'back' of the ship as if in earth gravity), then you could travel 50 light years in 7.7 'ship years'. However, if you turned around and went back to earth 102 years would have passed there, even though you would only be ~15 years older.

sethev··on The Pitchforks Are Coming for Us Plutocrats (2014)
Same here for my wisdom tooth but very clearly remember them mentioning there were two options (one like you described and one where I would be out completely). Absolutely zero connection to the current discussion.
sethev··on 1/0 = 0 (2018)
I debated this with my boss at my first programming job (this was 20+ years ago). He thought 1/0 should be 0 rather than an error because "that's what people expect". My argument was from mathematical definitions (the argument which this blog post picks apart).

In retrospect, I see his point better - practical use trumps theory in most language design decisions.

I haven't changed my mind but the reason has shifted more toward because "it's what a larger set of people expect in more situations" rather than mathematical purity.

← PreviousPage 4 of 10Next →