HNHacker News
TopNewBestAskShowJobs

housecarpenter

178 karma · joined May 15, 2019

meet.hn/city/gb-Liverpool

Socials:

- github.com/Andrew-Foote

Interests:

Art, Books, Gaming, Music, Programming, Remote Work, Science, Web Development, Writing

---

submissionscomments
housecarpenter··on SQL is syntactic sugar for relational algebra
Table-valued function.
housecarpenter··on (How to Write a (Lisp) Interpreter (In Python)) (2010)
I haven't used CL myself, but it wouldn't surprise me if CL does a better job. Just pointing out that Python is significantly better in this respect than it used to be. In particular, using VS Code with Pylance, I can see type errors highlighted as soon as I write the code---I don't even need to use a keystroke. 24 years ago, I don't think anything like that was possible; the language didn't even support type annotations.
housecarpenter··on (How to Write a (Lisp) Interpreter (In Python)) (2010)
> (1) there is very little compile-time error analysis and type declaration

There's been a lot of improvement on that front.

housecarpenter··on Bython: Python with braces. Because Python is awesome, but whitespace is awful
You might be already aware of this, but besides using the backslash, the other way you can allow an expression to span multiple lines in Python is to enclose it in brackets. I find this to be pretty unobtrusive. Often your line break will already be within a pair of brackets anyway.
housecarpenter··on Niklaus Wirth has died
The "i" sound in "wit" does exist in German and is what is normally indicated by "i" on its own. The long "ee" sound is normally spelt as "ie" in German.
housecarpenter··on Niklaus Wirth has died
It's not really wrong. There are English accents (such as Received Pronunciation) where an "ee" before an "r" is normally pronounced with an [ɪ] like in "wit". In any case, even if you pronounce the "ee" as something else like [i], "Veert" is probably still the sequence of letters that maximises the likelihood that an English speaker will understand by it something close to the true German pronunciation ([vɪʁt] or [vɪɐt]). "Virt", for example, would be read by most people as [vɜrt] (rhyming with "hurt") which to my ear is further off from the correct pronunciation compared to something like [viət].
housecarpenter··on Lack of sunlight during the day is worse than electric lighting at night
I found it difficult to understand.
housecarpenter··on Struggles with the Continuum
I think anybody who thinks real numbers exist will also say that imaginary numbers exist. "real" and "imaginary" in the context of numbers are just arbitrary labels assigned for historical reasons, they're not meant to convey any philosophical judgements about existence.
housecarpenter··on Lessons I wish I had learned before teaching differential equations [pdf] (1997)
Should it really though? Maybe pedagogy is just hard and we can't expect constant progress.
housecarpenter··on Implicit Keyword Arguments for Python
It's clearer because with the duplicated variable name, the syntax is just a special case of the general default argument syntax. The default value for the "visibility" parameter is the value of the "visibility" variable in the scope the function belongs to. Anyone who knows the default argument syntax can work that out. And even if you don't know the default argument syntax, you might be able to guess how it works by analogizing it to the similar-looking variable assignment syntax. With the new syntax, on the other hand, you have to know about it in order to understand what it does. It just adds one more thing people will have to learn about Python syntax, for, as far as I can see, a very minor benefit. The trade-off doesn't seem worth it to me, given that one of Python's USPs is its relative accessibility to newcomers.
housecarpenter··on Advent of Code 2023's new AI/LLM Policy
I believe it only worked for the first couple of problems though (which are very simple and easy).
housecarpenter··on The deep link equating math proofs and computer programs
I would interpret "accessible" here as meaning relatively accessible compared to what it could be. The underlying concept is inherently difficult, and so it will always be somewhat inaccessible, but within the space of all possible explanations, I would agree that it's on the more accessible end rather than the less.
housecarpenter··on Who invented the alphabet?
ˈθʌrə is standard in British English. Likewise "borough" is ˈbʌrə in British English and ˈbʌrow in American English. "Edinburgh" is ˈɛdɪnbʌrə / ˈɛdɪmbrə in British English, and Wiktionary says this is the American pronunciation too, but I've definitely heard American say ˈɛdɪnbʌrow.
housecarpenter··on Who invented the alphabet?
What I've heard is that it was Johnson's dictionary.
housecarpenter··on Who invented the alphabet?
That doesn't really follow. We manage to understand people speaking English in their own accents well enough, so if people were to just write a phonetic transcript of what they spoke, we should be able to understand that as well. A standardized spelling system probably does make the language a bit easier to read overall, but it isn't a necessity.
housecarpenter··on Proofs based on diagonalization help reveal the limits of algorithms
The term I've seen most often is "diagonal argument".
housecarpenter··on Transcript of taped conversations among German nuclear physicists (1945)
How does that contradict what you quoted? The claim is that if the Japanese had been able to conditionally surrender, with the condition of retaining their emperor, then they would have done so. You respond by pointing out that when the Japanese did eventually unconditionally surrendered, much of the government was still against that decision. That implies nothing about what their response would have been to a conditional surrender. It's just a non sequitur. If anything one would expect that there would have been less elements of the government resisting a conditional surrender and so the coup would have been more likely to be suppressed in that case.
housecarpenter··on Why transformative artificial intelligence is hard to achieve
I'm not an expert on this by any means, but from what I've read about the four-color theorem, essentially all of the insight in the proof came from human mathematicians. Mathematicians figured out an ingenious way to reduce to the problem to carrying out a a large number of tedious computations, and the computer was used only to carry out those computations and thereby complete the proof. This seems quite different from a computer coming up with a proof by itself.
housecarpenter··on It doesn’t take much public creativity to stand out as a job candidate
One issue with trying to stand out is that you might stand out in a bad way, rather than a good way. I have a blog, and a Github profile, but I'm not sure if I want employers looking at them, since a lot of my writing is poor, and a lot of my code is bad. There's good stuff there as well, I think, but my model of employers is that they are more concerned about false positives than false negatives, they tend to see "red flags" as nullifying any positive traits, and so, when they're examining my public portfolio, the parts that are bad are going to stick out and become salient in their mind, moreso than the parts that are good.

I don't worry about this too much though because in my experience, no employer has ever looked at these things (even though I have usually made some mention of them on my CV). If they have they've never mentioned it at interview.

housecarpenter··on PRQL: Pipelined Relational Query Language
Isn't this a fairly simple way of doing this? That said, it is a bit non-obvious if you haven't seen it before.

    select earliest_joiner.* from employees as earliest
    left join employees as earlier on
      earlier.role = earliest.role
      and earlier.join_date < earliest.join_date
    where earlier.id is null
    order by earliest.join_date
housecarpenter··on Ask HN: Could you share your personal blog here?
https://thehousecarpenter.wordpress.com/

It doesn't have any particular theme or anything, it's just a place to put infodumps on things I've been reading about. It only gets updated very sporadically these days.

housecarpenter··on Perl 5.38
> early Perl was missing little things like named function arguments

It's still missing those :)

(To be clear for people unfamiliar with Perl, it probably will never have them, because it doesn't need them. In Perl, all functions effectively have a single parameter of array type. The standard convention is to assign each array entry to a variable at the start of your function definition, and the names of those variables then effectively act as parameter names. But that's just a convention and you can do something else if you want.)

housecarpenter··on The Case Against Denormalization
Could you explain your comment further? I don't understand it. Specifically, I don't understand what "has many Ys through Xs" means. That phrase just doesn't syntactically make sense to me. And then you talk about storing "user_id on both" as a denormalized solution---but what that makes me think of is having two independent one-to-many relations (user-to-X and user-to-Y), with a table for each, each having a user_id column linking back to the user---but that's perfectly well normalized as far as I know, so I assume you probably intend to convey something different.
housecarpenter··on The odd appeal of absurdly long YouTube videos
I've tried changing the settings, but it's confusing. Am I trying to stop my laptop from "locking", "sleeping" or "hibernating"? It's not clear to me which thing it's doing. Maybe it's doing one thing some of the time, and the other thing the rest of the time. And even now that I think I've set it to do none of these things, the screen still disappears and I have to re-enter my password within 5 minutes. So either the settings don't work, or the UI is too confusing for me to figure out what's the right thing to do. Either way, putting a YouTube video on is much easier.
housecarpenter··on “Don Knuth Plays with ChatGPT” but with ChatGPT-4
The Haj answer is still wrong; it says it has 8 chapters, while according to Knuth it has 77 chapters.
housecarpenter··on Sold a Story: How Teaching Kids to Read Went So Wrong
It's entirely possible for a distinction that contrasts a large majority with a small minority, or even an actually-existing totality with a hypothetical set of counterexamples, to be meaningful.
housecarpenter··on Sold a Story: How Teaching Kids to Read Went So Wrong
The writing system of English is far more phonetic than logographic writing systems such as that of Chinese. That's the relevant difference here. It is true that English's writing system is one of the least phonetic alphabets, but alphabets are always, by definition, quite phonetic. Most writing systems are alphabetic and not logographic, so if you rank them all ordinally, English is going to have a similar rank to Chinese, but the absolute difference between English and Chinese is quite large. Here is a very impressionistic assignment of percentages of phoneticity to various systems, which will hopefully make clear what I'm getting at:

Phoneticity 20% (Chinese)

--

--

--

Phoneticity 75% (English)

Phoneticity 80% (French)

Phoneticity 90% (Spanish, probably most other writing systems)

housecarpenter··on I liked this simple calculus exercise
I expect Google is stripping the ⌊ ⌋ brackets out as punctuation in the search, so that you're effectively only searching for "x2", hence the "x squared" results.
housecarpenter··on The early days of Linux
Some accents don't distinguish those two vowels in unstressed positions.
housecarpenter··on Vast new stores of water reported on the moon
Perhaps originally, but the reason it persists as a term even when used by people who don't think medieval people were relatively unenlightened is that it can also be construed as referring to the lack of documents. (And for those who do regard medieval people as relatively unelightened, they might regard the lack of documents as something intrinsically associated with that.)
← PreviousPage 2 of 5Next →