HN user

zck

3,254 karma

Emacs, Lisp, guitars, improv, keyboards.

http://zck.org

http://twitter.com/zckzck

email:zkanfer@Google's eMAIL

meet.hn/city/42.3554334,-71.060511/Boston

Posts61
Comments868
View on HN
en.wikipedia.org 2y ago

List of common false etymologies of English words

zck
4pts0
www.wired.com 2y ago

Guy Invents Crazy Skateboards for Custom Tricks

zck
30pts3
www.youtube.com 3y ago

The Debacle of Blue Clay (2020) [video]

zck
17pts5
www.youtube.com 4y ago

The Debacle of Blue Clay (2020) [video]

zck
1pts0
www.youtube.com 4y ago

Timelapse – From seed to 600kg Giant Pumpkin

zck
2pts0
www.strongtowns.org 4y ago

“Does induced demand apply to bike lanes?” and other questions

zck
149pts220
www.youtube.com 5y ago

Sand Castle Holds Up a Car – Mechanically Stabilized Earth

zck
2pts0
datatracker.ietf.org 5y ago

Just because it's an ID doesn't mean anything at all

zck
1pts1
redef.com 6y ago

Netflix's Content Budget Is Bigger Than It Seems

zck
1pts1
www.theguardian.com 7y ago

Hand dryers vs. paper towels: the dirty fight for the right to dry your hands

zck
8pts0
www.cockeyed.com 9y ago

Finding a Beached Whale: Pt. Reyes, California

zck
1pts0
www.esquire.com 9y ago

What It's Like to Be a Butcher

zck
1pts0
nypost.com 9y ago

Meet New York’s beloved mass transit bandit

zck
3pts0
www.espn.com 9y ago

How Robert Gagno became one of the best pinball players in the world

zck
3pts0
www.bbc.com 10y ago

How do you demolish a skyscraper? (2012)

zck
1pts0
www.thestar.com 10y ago

When U.S. air force discovered the flaw of averages

zck
3pts0
www.52-insights.com 10y ago

John Conway: Genius Behind the Numbers (2016)

zck
2pts0
www.newyorkpersonalinjuryattorneyblog.com 10y ago

About That Aunt Suing an 8-year-old

zck
5pts0
medium.com 11y ago

Explaining graphic design to four-year-olds

zck
2pts0
youtube.com 11y ago

How Not to Die Hard with Math

zck
1pts1
bumpn.com 11y ago

Facebook’s First Media Kit

zck
2pts0
qork.it 11y ago

Entreprenurial lessons learned from interning at the Colbert Report

zck
1pts0
boingboing.net 11y ago

The secret to success is working on the Right Thing

zck
2pts0
www.buzzfeed.com 11y ago

What Uber Drivers Really Make (According to Their Pay Stubs)

zck
2pts0
www.salon.com 11y ago

The real Olive Garden scandal: Why hedge funders suddenly care about breadsticks

zck
7pts0
vimeo.com 11y ago

We Will Live Again – A Cryonics Documentary

zck
2pts0
www.theatlantic.com 12y ago

The Berry That Could Replace Sugar

zck
3pts0
www.slate.com 12y ago

What If the Moon Orbited at the Same Height as the ISS?

zck
65pts43
news.vice.com 12y ago

The $5 Million Violin and the Telltale Taser

zck
18pts8
web.ncsu.edu 12y ago

Why Parents Are Told To Give Babies Unseasoned Food

zck
2pts0

Isn't a band's purpose to produce good music and aren't people supposed to like musicians because they produce good music?

There are two definitions of "good" here, that are different.

1. "good musician" means a musician who is skilled or adept in their instrument. I'm separating this from if a musician is good at writing music.

2. "good music" means music that is entertaining or enjoyable.

The Ramones were not incredibly skilled in their instruments. They wrote music that many people found enjoyable. They were not good musicians, but they created good music.

  Location: Boston, MA
  Remote: Yes
  Relocate: No
  Technologies: backend web for >15 years. I've worked recently in Kotlin and Java. I've also done some Go, and in personal projects have worked with a lot of different Lisps.
  Email: zkanfer@gmail.com
  Site: https://zck.org/

Your link includes this quote from Stevens:

"The Olympic and Paralympic Games are the ultimate symbol of human excellence. I do not believe that financial insecurity should stop our nation's elite athletes from breaking through to new frontiers of excellence,” said Stevens.

And furthermore:

By providing financial support for athletes so they can continue competing and by increasing that support for each Games in which they compete, the Stevens Awards will dramatically increase the likelihood that athletes will continue competing, and winning, for America.

“I do not believe that financial insecurity should stop our nation’s elite athletes from breaking through to new frontiers of excellence,” Stevens said upon the announcement of his gift.

So his goal is to prevent money issues from being a thing getting in the way of athletes achieving. But he has structured it in a way that prevents the money from helping this goal.

Per the Wall Street Journal, “Half will come 20 years after their first qualifying Olympic appearance or at age 45, whichever comes later. Another $100,000 will be in the form of a guaranteed benefit for their families after they pass away.”

So half of it will never be seen by the athlete. Ever. And the other half will not be seen for at least two decades.

What Olympic athlete is not able to achieve as much because they don't have money decades down the road? Or because their heirs don't have enough money? I might be missing something, but how do these two incredibly-delayed payments help them train now? They can't use money they won't see for 20 or 30 years to hire coaches, buy equipment or pay for track time. They can't buy food or pay rent with money they will never see.

one of the most annoying things to me are managers who pull the "here's what I'm evaluating you on...now write up this self eval what you've done over the last year that fits these items and I'll copy paste it into your eval."

Every Friday morning, my company has a meeting for the teams to explain what they've worked on that week. Every Thursday afternoon, my manager asks me what I've worked on that week.

So when I do something, I have to explain that I did it at least three times:

1. In Jira. 2. In daily standup. 3. Every Thursday to my manager. 4. Sometimes in Slack, because no one reads Jira comments unless they're pointed to in Slack.

Someone else has given you the Common Lisp version. Here's one for Clojure:

  (printf "x = %6d\ny = %.8E\n" x y)
If I've understood everything right, and your example is in C, the format string in Clojure is identical to the one in your comment.

there's also the dubious, or trivial, or dunno (gotta generalize this pattern as well) of the first "consecutive" twin prime but they overlap which is 3,5 and 5,7.... which reminds me of how only 2 and 3 are both primes off by one; again, I need to generalize this pattern of "last time ever primes did that"

For the triplet n, n+2, n+4, exactly one of those numbers is divisible by 3. So the only triplet n, n+2, n+4 where all numbers are prime contains 3: 3, 5, 7.

Binary Wordle 1 year ago

I also made some number-based wordle-variants, which I call "numberdle". I found that it was hard to come up with good ways of guessing because wordle has the restriction that most combinations are invalid. You won't ever have to guess xwqqf, because that's not an English word. And more importantly, guessing some letters gives you information about the other letters. If you find out three letters, and have the target as _a_ts, you can use that to figure out the other two letters.

But if you need to guess a number, and you know it's _5_34, having three correct digits don't help you figure it out.

So I made some variants where guessed values do help you figure out the correct answer.

In rationerdle (https://zck.org/numberdle/?variant=rationerdle), you have to guess a rational number x/y, where both x and y are between 1 and 99, inclusive. It displays the rational number you actually guessed, and whether x and y separately are too high or too low.

In factordle (https://zck.org/numberdle/?variant=factordle), the player has to guess the factors of a target number.

In formuladle (https://zck.org/numberdle/?variant=formuladle), there is a graphed straight line, and the player has to guess the mx+b formula that graphs that line.

I would like to make more, but didn't have any other great ideas when I ran out of interest.

...if you substitute fuel "burning" process with subsonic propagation used in every conventional engines with fuel "explosion" process with supersonic wavefront...

This fragment confused me, because it looks like there are three substitutions. There aren't; there's only one. Read it as:

If you substitute fuel burning (which has subsonic propagation, and is used in every conventional engine) with fuel explosion (which has a supersonic wavefront)...

The first and third "with" link a noun (the respective process) with a property (how fast it shoots gas out the back). The second "with" is the substitution.

English is hard! I'm a native speaker, and I had to take a look at a few webpages to understand just this part! And I'm still left with questions, like why subsonic is described as having "propagation", but supersonic is described as having a "wavefront". Is this a distinction with a difference? I don't know.

I understand implementing words as you think they should be. However, you need the core first, and that's where I'm working right now. I'm trying to get the central loop, dictionary, and threading model functional.

Which brings up another complication -- the threading model. There are multiple, of course. But sometimes I want to figure out, for example, what the `w` variable does. Is it different between indirect threading and subroutine threading? Maybe!

Writing a Forth myself, I find it somewhat frustrating that I have relatively different design restrictions than these guides. I don't need to be incredibly low-power, so I'm using C, not assembly. I'm not a great C coder, and I've never done assembly, so I find it hard (but not impossible) to learn from assembly. Also, because it's not assembly, I can't just JUMP to code the same way assembly can.

It's also frustrating trying to understand some of the lowest-level information. For example, a few systems have a very fundamental `w` variable -- but what is is used for? You can't search for it. Or just using registers and having to remember that %esi is the program counter (aka instruction pointer).

I keep wanting to make a series of diagrams to really understand Forth's program flow. It makes sense in concept, but when I go to program it, there are a lot of nuances I keep missing.

I'm not sure this exactly is what I'm thinking about. Yes, `at time zone "UTC"` does the proper conversion, so all times will represent the exact instant they should. But in no cases do you know what time zone the data came in as -- that information is thrown away.

When you look at your data, what is the time a user's watch said when the data was input? What time zone was the data input as?

Here's some queries:

  create table tz_test ( comment varchar, ts_tz timestamptz );
  
  insert into tz_test (comment, ts_tz) values 
  ('midnight US Eastern', timestamp with time zone '2025-05-13 00:00:00-4'),
  ('4am UTC', timestamp with time zone '2025-05-13 04:00:00+0');

  select comment, 
         ts_tz
  from tz_test;
I would expect that one row comes out as midnight, and the other row comes out as 4am. But they both come out as midnight. That's what I don't like.

One place I've been bitten lately is storing timestamps in Postgres. Postgres lets you store time with a time zone -- but what that means is that upon receiving a timestamptz converts it to UTC and stores that instead.

Which is fine, in a way -- it won't store the wrong instant in time. But it also won't let you know the time the user sees. For example, you might want to tell someone when the store opens.

Fine, you say. You can look up the location of the store and use that to get the timezone. But what about a different case? What about if you want a user to test their blood sugar every day. Did they test their blood sugar on Tuesday? Well, then it depends what timezone they're in. What is the problem with having each user set their time zone? Isn't this just like the store issue?

No! Notably, unlike stores located in fixed buildings, people move around. They go on vacation. And if you don't know where they were when an event happened, you don't know what time the user was.

So it seems you have to, when you get a timestamp with time zone from a user, store the timestamptz, but also store the time zone in the database.

How frustrating, for a database that has a data type called "timestamp with time zone".

One thing that this article talks about, but could be more explicit about, is the different kinds of clown.

There's the kind we all think of -- white face, red nose, at the circus.

But there's other kinds too. I know the most about two related forms: commedia dell'arte and bouffon.

In commedia dell'arte, performers play different "stock characters" based on Italian society in the 1600s, when commedia was originally developed. Commedia is concerned with status within a society: rich/poor, servant/master, young/old. Each character has its own specific mask. One character might be the blue-collar working person, who isn't learned, but is not dumb. Another character is the rich person who thinks themself smart and cultured, but is neither. These performances are often partially scripted, partially improvised. One example is: https://www.youtube.com/watch?v=3DjGoDEks7U

In bouffon (mentioned in the article as the group Mil Grus). These characters are grotesque (physically -- often these performers put foam inside their clothing to make the character look inhuman) and outcasts. You might think of them as a tribe of people thrown out of society in the middle ages, who the king invites back in once a year. Because of their outcast status, they are allowed to say things that people inside that society cannot. One modern example is Red Bastard (who I've studied with), who can be seen here: https://www.youtube.com/watch?v=kFJWnfNUXnc.

However, in pretty much any language, it's hard to avoid the user having some ability to fill out even "mandatory" fields in some invalid manner.

I 100% agree. It's just that go seems to make it easier to make invalid values than valid ones, because the programmer doesn't have to actually type the values that end up invalid.

I'm also bothered by half-constructed objects. In my previous job, I was on a team creating a Go project that integrated two different parts of the company. It was an HR company, with lots of random fields in objects.

The API given to us often returned objects with only certain values filled out. Go encourages this, because there it is so easy to do that. `StructName{}` will create a struct, and is easier than filling out values. It will fill out all the values with the "zero value" of the thing.

And there's no way to know if you have a zero value! I would commonly get back an object and have to dig into the code or ask people to find out when certain values would be filled out!

Compare to a language where you have to provide a constructor. Fewer people would write:

public ClassName() { var1 = 0; var2 = ""; }

It lead me to be able to trust values less than I had to in other languages I've used.

I wanted to:

1. Write HTML in org-mode. Org-mode is great for thinking. 2. Publish clean HTML.

The other libraries I was seeing were about exporting arbitrary org files for being consumed online. For example, the built-in exporter has a bunch of html classes that include "org" in them.

So I built a custom exporter: https://hg.sr.ht/~zck/ox-zhtml. It's definitely not documented well, but it works well enough for my use.

I think they meant non-monetary personal expense. As in "I'll book the crappy motel that requires me to take the subway for 45 minutes, rather than spend an extra $25/night for the lovely hotel that's right next to where I need to go".

Location: Boston, MA, USA

Remote: No

Willing to relocate: No Technologies: Historically Java, but recently I've been working in Kotlin and Go. Mostly backend. Personal projects in Clojure, Arc, Emacs Lisp.

Website: https://zck.org/

Résumé/CV: https://www.linkedin.com/in/zacharykanfer/ (email me for a pdf)

Email: zkanfer@gmail.com

---

I just moved to Boston for my partner's doctorate program, and my current job isn't ok with remote work. So here I am. I've done mostly backend work, but have done a little bit of frontend for internal tooling and personal projects.

The thing I'm most proud of at a job is a hackathon project I made to schedule shipping services in a warehouse. It moved these schedule changes from taking an hour to taking less than ten seconds. We later extended it with more features, becoming the backbone of things like shipping pricing and capacity limits. It was the first multi-warehouse aware piece of software at the company.