HNHacker News
TopNewBestAskShowJobs

erezsh

325 karma · joined May 18, 2009

Skilled Programmer

My blog: http://blog.erezsh.com/

My github: https://github.com/erezsh

submissionscomments
erezsh··on Towards a Harness That Can Do Anything
framework is too 90s
erezsh··on Towards a Harness That Can Do Anything
Thank you for framing my laziness as being a daredevil
erezsh··on Miscellanea: The War in Iran
Seriously, all these armchair "experts" are missing very obvious truths -

1) Every authority figure is telling the Iranian people to stay inside and wait.

2) Revolutions don't happen overnight, the same way that businesses don't succeed overnight, even though from far away it might seem that way.

3) Official Israeli statements estimate it could take up to a year after the war is over for a successful overthrow, even if everything is going according to plan.

The truth is there's a lot of people who want this war to fail, because it will align with their political convictions and hopes.

erezsh··on IDF killed Gaza aid workers at point blank range in 2025 massacre: Report
You're just showing your ignorance. The Nazis killed the majority of their victims as soon as they arrived in the camp. They kept 20%-30%, mostly men who could work, to be used as slaves for their military industry, and they eliminated everyone else. They developed gassing especially in order to speed up the killing and make it more economical.

It was a genocide because they tried to eliminate a specific ethnic group, for no other reason than its ethnicity.

You should go learn more about the subject, if it interests you so much.

erezsh··on IDF killed Gaza aid workers at point blank range in 2025 massacre: Report
That's like me saying you're a murderer, but you just haven't killed anyone yet because you're afraid of going to jail. Maybe it's true, but it's a bit of a silly argument, isn't it? In western society, we judge people based on their actions.
erezsh··on IDF killed Gaza aid workers at point blank range in 2025 massacre: Report
It's because you're deeply ignorant about the subject. Anyone can think ridiculous thoughts in complete ignorance.

Try reading a history book about the holocaust, or even just WW2, and you'll see just how ridiculous you sound.

erezsh··on IDF killed Gaza aid workers at point blank range in 2025 massacre: Report
It's a ridiculous argument. The Nazis went through a LOT of effort and resources to gather Jews from all the corners of Europe, and even more effort into exterminating them as fast as they could, within the logistical and economic constraints of fighting a 3 front war.

There's no comparison at all to the ease with which Israel could just drop a couple of bombs on Gaza, had it decided to do so.

erezsh··on Over 36,500 killed in Iran's deadliest massacre, documents reveal
And only civilians, instead of half of them being armed and trained militants.
erezsh··on Ask HN: What are you working on? (September 2025)
Because my hate for pytest is ardent and dear to my heart, I will try to explain.

I wrote a very simple function:

  def test_whatever():
    a = range(10)
    b = (10 / x for x in a)
    c = list(b)
When I run it with normal Python, this is the exception:

    Traceback (most recent call last):
      File "test_test.py", line 10, in <module>
        test_whatever()
      File "test_test.py", line 6, in test_whatever
        c = list(b)
            ^^^^^^^
      File "test_test.py", line 5, in <genexpr>
        b = (10 / x for x in a)
             ~~~^~~
    ZeroDivisionError: division by zero

It's compact and simple to understand. It pinpoints the exact location of the error, and I easily scan the text to find the function call-stack.

Now here's the pytest error:

    ___________________________________ test_whatever ___________________________________

        def test_whatever():
            a = range(10)
            b = (10 / x for x in a)
    >       c = list(b)

    test_test.py:6:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    .0 = <range_iterator object at 0x107695e90>

    >   b = (10 / x for x in a)
    E   ZeroDivisionError: division by zero

    test_test.py:5: ZeroDivisionError

It doesn't pinpoint the error, it adds code lines that might be irrelevant, and extra information I don't care about.

I will say using `--tb=short` fixes most of it, at least in this example, and sometimes it's even preferable, because it's shorter. But it still doesn't pinpoint the error like normal Python exceptions do.

erezsh··on Ask HN: What are you working on? (September 2025)
It's awesome! Well done!
erezsh··on Ask HN: What are you working on? (September 2025)
I like the promise, and it looks nice. But I'm not sure what are the selling points.

- pytest already works with assert. Why brag about something that is already commonplace?

- It could help if your docs explained the alternative to using fixtures. I assume it would be done by re-using givens, but you could make it clearer what is the preferred way to do it, and what is gained, or lost, but doing it that way.

- Can you explain how your diff is better than the pytest diff? (I'm asking as someone who hates the pytest diff)

erezsh··on Ask HN: What are you working on? (September 2025)
Nice idea!
erezsh··on Ask HN: What are you working on? (September 2025)
It's only in Italian lol
erezsh··on Ask HN: What are you working on? (September 2025)
It's cute, but it was pretty easy! The "forbidden" level felt like what I expected "normal" to be. (I'm only 1800 on chess.com)
erezsh··on Ask HN: What are you working on? (September 2025)
Looks really nice!
erezsh··on Shoes, Algernon, Pangea, and sea peoples
Related interesting fact that I recently learned.

Supposedly, one people of the Sea Peoples were the Peleset, as the egyptians called them (https://en.wikipedia.org/wiki/Peleset), which are believed to be the same people as the Philistines, for which the Romans gave Palestine its name.

erezsh··on Show HN: I replaced vector databases with Git for AI memory (PoC)
The agent loop takes care of that
erezsh··on Marines being mobilized in response to LA protests
Can you provide some examples?
erezsh··on Italy moves to reverse anti-nuclear stance
> They claimed civilian nuclear power was part of a weapons program

They are wrong, but who cares? As long as Russia and China have nuclear weapons, disarming Europe isn't going to help anyone. Not to mention now North Korea and pretty soon Iran will have them too.

Arguably, if Germany wasn't so reliant on Russian gas, the war in Ukraine wouldn't have started. The "peace" in Greenpeace is more Orwellian than anything.

erezsh··on Italy moves to reverse anti-nuclear stance
The green energy lobby has everything to gain, and it's been working extra to make it a reality. For example, Greenpeace has been fighting nuclear power all over the world.
erezsh··on Kenney.nl: Free Game Assets
On an unrelated note, does anyone know of a website that uses LLMs to generate assets?
erezsh··on Israel’s Pager Attacks Have Changed the World
If your client is Hezbollah, I would say your fear is warranted.
erezsh··on Hezbollah pager explosions kill several people in Lebanon
That's a ridiculous take. No one involved Israel in this supply chain.

Also, there is no country in the world that would refrain from doing the same thing to their enemies, if they could pull it off. (big if)

Meanwhile, you can be sure the U.S. and China are putting back-doors in every device they can manage, and have been doing so for decades.

erezsh··on Show HN: FizzBee – Formal methods in Python
I like the idea of being able to use this in a real program, but I'm not sure how that would look. I browsed the docs, and I didn't see it addressed. I guess the question boils down to - how would it interface with other languages? On its own, it can't be used for general programming, so the only option I can think of is to run it as a DSL interface to a general programming language. Probably Python, since it's the easiest in this case. But it's not obvious to me what that API would look like, or what would be the right way to use it. Do you have any thoughts on this subject?
erezsh··on What if AGI is not coming?
"We will soon be reaching the limits of hardware scaling for larger AI models"

Worth noting it's been said before for each version of GPT, only to be proven wrong.

erezsh··on FastUI: Build Better UIs Faster
The Pydantic project has a long history of misrepresenting their benchmarks, and ignoring the existence of much faster alternatives. I'm not at all surprised that their supposedly super-fast rewrite isn't really as fast as they made it out to be.
erezsh··on Show HN: Inshellisense – IDE style shell autocomplete
It's sad. If the world of software had better coordination and cooperation, we would be able to get so much more done. Instead we're constantly dumping and re-parsing the same data, re-implementing the same protocols and algorithms in dozens of different languages, each time with different quirks. Fixing the same bugs again and again.
erezsh··on App::Rak – 21st century grep / find / ack / ag / rg on steroids
It's not clear from the README what advantages it offers over ripgrep.
erezsh··on Show HN: I wrote a RDBMS (SQLite clone) from scratch in pure Python
Lark supports, and recommends, writing and storing the grammar in a .lark file. We have syntax highlighting support in all major IDEs, and even in github itself. For example, here is Lark's built-in grammar for Python: https://github.com/lark-parser/lark/blob/master/lark/grammar...

The rationale is that it's more terse and has less visual clutter than a DSL over Python, which makes it easier to read and write.

erezsh··on PRQL: Pipelined Relational Query Language
Except if I wrote it by hand, it would be -

    SELECT *
    FROM employees
    LEFT JOIN positions ON employees.id = positions.employee_id
which isn't really that different.
Page 1 of 8Next →