HNHacker News
TopNewBestAskShowJobs

kazinator

35,550 karma · joined July 2, 2014

Working on the TXR language: https://nongnu.org/txr

Want to talk to me? Drop me an e-mail:

125-888-0378@kylheku.com

This could change without notice; check the profile.

Git repositories: https://www.kylheku.com/cgit

Mastodon: @Kazinator@mstdn.ca

LinkedIn: https://www.linkedin.com/in/kaz-kylheku-8a8b94197/

meet.hn/city/49.2608724,-123.113952/Vancouver

Socials: - kazinator.at.hn

---

submissionscomments
kazinator··on LensVLM: Compressing long context as images, expanding only relevant pages
Say, what? When would a compressed image of text be smaller than just text?

Maybe to save on doing the client-side layout and rendering?

I'm reminded of the MSPaint IDE:

https://www.youtube.com/watch?v=eyH4aXlB1Js

https://ms-paint-i.de/

kazinator··on Seattle City Council votes to ban surveillance pricing in sale of groceries
Will Seattle City council also implement one parking fee for all neighborhoods and times of day?
kazinator··on LLM Ass Bench
Origami Ass

Dreamed up by Claude "Haiku"

Unironically

折り紙臀 (origami den)

ハイクの作品 (Haiku no sakuhin)

皮肉のない (hiniku-no-nai)

kazinator··on German court rules Meta liable for scam ads on Facebook and Instagram
Obviously! Please fill in the blanks.
kazinator··on German court rules Meta liable for scam ads on Facebook and Instagram
And why only Meta? Google's YouTube is brimming over with scam ads. Google is even more liable because it's not simply providing a platform where the scams are posted as content; it's taking money from the scammers and placing their ads.

Google does so knowingly. People are reporting the ads via the provided workflow and describe the scam. Yet the same scams persist. In spite of being informed about scammy advertisers, Google takes their money.

I would say that Facebook do have a valid point if they say that they are not liable for posted scammy content, even that content manipulates their algorithms in order to reach users. Google do not have any similar such defense.

kazinator··on I said no and Apple said yes
Microsoft Windows is so bad that most consumers just throw away their old computers and buy new ones when Windows stops working. The more persistent ones will search through some forums for solution, or nowadays try to work through something with AI.
kazinator··on I said no and Apple said yes
> The AI industry is vile

Or is this just Apple looking no less vile than usual?

kazinator··on TXR: An Original, New Programming Language for Convenient Data Munging
TXR is not abandoned. Though I have not published any commits in over a year, I am not unresponsive. There are not external issues being ignored.

Someone in the IRC channel reported that GNU Groff dropped support for PDF generation, which affects some makefile steps for doc generation. Affected downstream distros can work around that. Also a minor ./configure script issue: failure to detect int_max_t. Doesn't cause any actual problem; fixed it locally (unpublished).

The last couple of releases featured some important work: tail call optimization in the compiler/VM.

These days it is somehow hard to sit down and work on things like this because of how icky the world of computing has become lately. Getting a feel for how permanent of a thing this is.

Here is a log of unpublished commits over the latter half of 2025 and early 2026. Looks like I made some compiler fixes and improvements that are worth releasing. I see that I also scrapped the precedence demotion rule in the infix system in favor of new heuristics.

  f6e52fd3b (HEAD -> master) configure: fix failure to detect int_max_t.
  2ccd3143b configure: don't test for frexp or modf.
  e639c14bf doc/tests: correction to quadratic-roots function.
  c1df57975 struct: implement obj_struct_p via class check.
  8df1b655b cobj/struct: devirtualize equality substitution.
  dbc280857 structs: streamline special slot handling.
  3662f241e streams: implement shutdown-stream.
  77c99b74e streams: treat pid and handle independently in pipe_close.
  741efcad8 streams: track input direction in pipe streams.
  36ec87269 streams: add shutdown to strm_ops_init macro.
  53b697951 socket: use new enum for shutdown constants.
  469b6b947 streams: start of implementation of shutdown function.
  8e2f03d31 getopts: New :usage clause in define-option-struct
  daeb0e2c4 Nicer expression for flexible struct allocations.
  9be8ce734 New function: hash-seq-map.
  30ebc21ee New function: hash-seq-to.
  e04e62fdd Vim: no need to specially treat macrolet and symacrolet.
  9b0fc769c Clarify status of expander-only operators.
  be8ada1fb infix: replace precedence demotion with prefix coordination
  c72f7f3de infix: revise the precedence demotion rule.
  00074cf43 compiler: tighten elim-renames.
  a5d908edd tagbody: slight code rearrangement.
  6c42d4d4d tagbody/prog: use sys:blk and static blocks.
  44977153f compiler: bug: end instruction balance in bjmp handling
  57dd07d5a compiler: fix broken sys:switch compilation.
  46073a8ed compiler: new optimization for rename-like reg moves.
  204d31699 compiler: bug: merge-jump-thunks: invalid block deletion.
  27b4bf3ca (tag: txr-302, origin/master, origin/HEAD) Version 302.
In most of the history of the TXR project, it has been my predominant practice not to publish commits except at releases. I actually have a staging repo that is the upstream of all my local repos (in various virtual machines and whatnot). I rewrite history from time to time between these repos and the staging repo, like when a change made in one environment breaks something in another, requiring a fixup.
kazinator··on Can gzip be a language model?
My goodness, gzip is intelligent! Enjoy your job while you have it; put on some hip hop music and practice your pivoting.
kazinator··on Seattle Bans Rental Junk Fees
With a big help from some non-ADHD children. However, in all seriousness, most rental damage caused by children likely gets covered by damage deposits, or else charged to that unit.

So why would you not just do the same with pets? Pets soil the common areas of a building, requiring ongoing maintenance that can't always easily be charged back to a particular unit, so I can understand why some rentals would impose surcharges.

kazinator··on Seattle Bans Rental Junk Fees
Also, renters of well-behaved, toilet-trained, quiet pets are subsidizing renters with ADHD children.
kazinator··on Far-left party wins Berlin election, pledging to nationalise housing
Maybe they should start with something easy, like building a simple wall.
kazinator··on Anecdotally, programmers dislike "reduce"
Nonetheless, they were fooled by that function, because it's just keep-if by a funny name that includes "not" suggesting that it contains a complement that might be factored out.

If you want keep-if, you don't want to use a different function, which forces you to complement your predicate. If you want (keep-if #'redp jellybean-list) to keep the red jelly beans, you don't want to write (remove-if (complement #'not-red-p) jellybean-list). If keep-if has a silly name remoe-if-not, you might nonetheless prefer (remove-if-not #'redp jelly-bean-list).

Shims like complements are ugly, and compilers won't optimize through them for arbitrary function definitions (whose source code is not even in scope), so it is good to have both keepers and removers. Heck, it's useful to have a function which does both in one pass returning two values: the filtrate and the retentate.

kazinator··on Show HN: Jevlang: Python with a Smart "If"
> ~ asks a question about a value and gets back a number or a label, never text. Here it is a probability, and the if fires at >= 0.5.

In other words this could be done in plain Python using:

  if squiggle_probability(msg, "customer wants refund"):
    ...
  else:
    ...
The ~ operator does not apply special evaluation rules to its argument expressions, and so can be a function, and that function can also roll in the probability thresholding (another closely-related function can return the raw probability).

The Lisp rules of thumb about when to use macros and not to use them apply elsewhere, such as here, but are not well known.

kazinator··on Largest wildlife overpass in North America reduced wildlife collision by 91%
Wow, I pinned the tail on that donkey, it seems, with zero fact checking on the figures before posting.
kazinator··on Why Backprop Goes Backward (2018)
It's vaguely analogous to why ray tracing goes backwards.
kazinator··on House prices survived the last interest-rate rise. Will they this time?
Nope! Interest rates significantly affect house prices in an environment in which houses are are affordable by large numbers of people to whom interest rates are of paramount importance.
kazinator··on English: A vs. An
> there is no way that "the bald eagle" could refer to the class of bald eagles

Well, on second thought ...

kazinator··on Largest wildlife overpass in North America reduced wildlife collision by 91%
$15M is dirt cheap for the USA. That buys you like 100 yards of urban light rail or something. :)
kazinator··on Largest wildlife overpass in North America reduced wildlife collision by 91%
Well, yes; for that you need the number of cars that that don't hit a deer. :)
kazinator··on English: A vs. An
Nope! Because "the" also refers to a class/category which is essentially the opposite of indicating a particular member.

For instance, "the bald eagle is native to North America".

There is also "The" in names; The Beatles, The Great Lakes, The Bahamas, The Bronx, ...

The role of "the" depends on context: how was the subject treated in previous sentences in the conversation.

"I see a bald eagle out of the window. The bald eagle is huge!"

In this second sentence, there is no way that "the bald eagle" could refer to the class of bald eagles, because the previous sentence introduces the topic of the sighting of a bald eagle. It refers to that one.

If "the bald eagle is huge" appears out of the blue, not preceded by any discussion of any eagle, that tends to bring in the class interpretation.

I learned the above through Japeanese. A similar thing happens with the は (wa) topic particle; I realized that "the" works in a similar way in that regard.

kazinator··on Two parallel neural ectoderm progenitors contribute to the developing brain
Fun fact: the hindbrain progenitor cell is shaped like a little lizard.
kazinator··on Anecdotally, programmers dislike "reduce"
Nope! Common Lisp's filter is in fact remove-if-not, which is exactly the same thing as "keep if": keep all items which match the predicate (removing those that do not).

I suspect the reason the function was deprecated was its naming, nothing more; had it been called retain-if or keep-if, it would not have attracted deprecating attention.

The smell added to your code is just the double-negative name of that function, not what it's doing for you.

The name filter smells even more. Is that filtering for items that match? Or filtering out?

In physical filters, sometimes the filtrate is considered the payload output (that which passes through the filter) and sometimes the retentate (that which is caught in the filter).

keep-if is readable.

kazinator··on C++26: Trivial infinite loops are no longer undefined behaviour
I'd much rather have the compiler diagnose an infinite loop than silently pretend that it's not reachable, or that it can be rewritten to a yield.

In other words, I am mentally well.

kazinator··on Wax motor
The expansion of paraffin wax is substantial. I have experience wax potting guitar pickups as well as bicycle chains. I use a skinny, tall tin can for this, placed in boiling water. When the liquid wax solidifies, it not only pulls away from the sides of the can so that the resulting ingot slides out freely, but a void forms in the center. The top surface has a depression and a deep hole in the center.
kazinator··on The Beauty of Roundabouts
Rather, what I don't understand is the original argument that roundabouts are bad because the busy direction of traffic has to slow down and gear down unconditionally, whether or not the rare cross traffic is present, so it is then better to have a traffic light there.

The "you need power to accelerate out of danger" is a motorcycle argument (and a pretty flimsy one); in a car, you are not gas-pedaling your way out of anything. Your emergency control devices are brakes and steering, that's it. There are moves that powerful acceleration lets you get away with, and they are all reckless, and often built on the assumption that only you have that acceleration. People are now using their high-torque EVs like this. You will never be in a collision close call caused by someone or something doing something unexpected, where the reaction of stepping on the accelerator is the action that saved the day. Can't deny that it could help run from a tsunami wave or fire or something.

kazinator··on The Beauty of Roundabouts
OK, so "worse for pedestrians" boils down to a statistic about body hits. If you are not struck, you are not having a worse pedestrian experience. My bad!
kazinator··on The Beauty of Roundabouts
That's a thing that happens.
kazinator··on Sierra digital cameras on the Apple II
System requirements for a product are not expressions of belief in them being tight lower bounds. They are a body of excuses for not providing support to a user with any kind of issue plausibly attributable to their system being outdated.
kazinator··on The Beauty of Roundabouts
Only large roundabouts take space. Small roundabouts can easily be retrofitted into small, unguarded residential neighborhood intersections without clawing back any sidewalk corners. They just plop a curbed-off circle in the middle of the intersection, leaving a narrow passage around it. Now a car going straight has to swerve into a crosswalk that is going in the same direction. Massive win!
← PreviousPage 4 of 34Next →