HNHacker News
TopNewBestAskShowJobs

Bewelge

217 karma · joined October 11, 2021

submissionscomments
Bewelge··on Delve – Fake Compliance as a Service
Maybe they meant "Not hard != quickly done". I don't think many people think bureaucracy is especially difficult. It's just time consuming.

But frankly if they meant that, the statement doesn't really say anything at all. Because what in this world is hard if you stop taking shortcuts and spend time doing it correctly?

Bewelge··on Show HN: Hacker News archive (47M+ items, 11.6GB) as Parquet, updated every 5m
I think that's incorrect. Exclusivity would be something you grant to YC. These terms need to make sense to be valid. Claiming exclusive rights would mean they are forbidding YOU from licensing YOUR rights to anyone else.

Imagine Facebook claiming that by uploading images you are granting them exclusive usage rights to that image. It would mean you couldn't upload it to any other site with similar terms anymore.

Bewelge··on Measuring progress toward AGI: A cognitive framework
Would you also say that you cannot "train" intelligence?

I would agree that generally, purely acquiring knowledge does not increase intelligence. But I would also argue that intelligence (ie your raw "processing power") can be trained, a bit like a muscle. And acquiring and processing new knowledge is one of the main ways we train that "muscle".

There's lots of examples where your definition of intelligence (intelligence == raw processing power) either doesn't make sense, or is so narrow that it becomes a meaningless concept. Let's consider feral children (ie humans growing up among animals with no human contact). Apparently they are unable or have trouble learning a human language. There's a theory that there's a critical period after which we are unable to learn certain things. Wouldn't the "ability to learn a language" be considered intelligence? Would you therefore consider a young child more intelligent than any adult?

And to answer your question, whether learning about atoms makes you more intelligent: Yes, probably. It will create some kind of connections in your brain that didn't exist before. It's a piece of knowledge that can be drawn upon for all of your thinking and it's a piece of knowledge that most humans would not figure out on their own. By basically any sensible definition of intelligence, yes it does improve your intelligence.

Bewelge··on Tell HN: I'm 60 years old. Claude Code has re-ignited a passion
Thanks!

It seems funny though: The advantages of GPGPU are so obvious and unambiguous compared to AI. But then again, with every new technology you probably also had management pushing to use technology_a for <enter something inappropriate for technology_a>.

Like in a few decades when the way we work with AI has matured and become completely normal it might be hard to imagine why people nowadays questioned its use. But they won't know about the million stupid uses of AI we're confronted with every day :)

Bewelge··on Tell HN: I'm 60 years old. Claude Code has re-ignited a passion
Can you elaborate on "resistance against cuda"? What were people clinging to instead?
Bewelge··on Tell HN: I'm 60 years old. Claude Code has re-ignited a passion
I also find these things incredibly annoying. But I've been actively working in webdev the past couple of years so I was actually keeping up with stuff. And I still consider this a cheat-code.

It makes it so easy to cut through the bullshit. And I've never considered myself scared of asking "stupid" questions. But after using these AI tools I've noticed that there are actually quite a few cases where I wouldn't ask (another human) a question.

Two examples: - What the hell does React mean when they say "rendering"? Doesn't it just output HTML/a DOM tree and the browser does the actual rendering? Why do they call it rendering? - Why are the three vectors in transformer models named query, key & value? It doesn't really make sense, why do they call it that?

In both cases it turns out, the question wasn't really that stupid. But they're not the kind of question I'd have turned to Stackoverflow for.

It really is a bit like having a non-human quasi-expert on most topics at your fingertips.

Bewelge··on Labor market impacts of AI: A new measure and early evidence
> At this point I'm basically programming in English, no?

Yea, except they can handle some degree of complexity. Its usefulness obviously really depends on that degree. And I'm sure there are still a lot of domains and types of software where that tradeoff between doing it yourself or spelling it out isn't worth it.

Bewelge··on Labor market impacts of AI: A new measure and early evidence
Just a guess, but to me it sounds like you're trying to do too much at once. When trying something like this:

> lots of careful code of registering and unregistering callbacks, some careful thread synchronisation (callbacks get called in another thread), thinking about sane exception handling in async code. Fiddly but not rocket science.

I'd expect CC to fail this when just given requirements. The way I use it is to explicitly tell it things like: "Make sure to do Y when callback X gets fired" and not "you have to be careful about thread synchronisation". "Do X, so that Exceptions are always thrown when Y happens" instead of "Make sure to implement sane Exception handling". I think you have to get a feeling for how explicit you have to get because it definitely can figure out some complexity by itself.

But honestly it's also requires a different way of thinking and working. It reminds me of my dad reminiscing that the skill of dictating isn't used at all anymore nowadays. Since computers, typing, or more specifically correcting what has been typed has become cheap. And the skill of being able to formulate a sentence "on the first try" is less valuable. I see some (inverse) parallel to working with AI vs writing the code yourself. When coding yourself you don't have to explicitly formulate everything you are doing. Even if you are writing code with great documentation, there's no way that it could contain all of the tacit knowledge you as the author have. At least that's how I feel working with it. I just got really started with Claude Code 2 months ago and for a greenfield project I am amazed how much I could get done. For existing, sometimes messy side projects it works a lot worse. But that's also because it's more difficult to describe explicitly what you want.

Bewelge··on BMW Group to deploy humanoid robots in production in Germany for the first time
I did do a German search as well. And bias in that case would be something like "parteiisch" "bevor-/nachteilen". In 2019 a court did say it gives an advantage to incumbents because you had to limit your results to 8 parties. They've changed that since. The article you've linked is talking about its usefulness in general and not that it gives unfair advantages to anyone.

Honestly, I'm not a big fan of the thing myself and I agree that most of your proposals would improve the tool. But calling it a tool that compares political parties biased makes it sound deceptive. And I don't believe that it's deceptive. It's just ineffective.

The fact that it gives an "unfair advantage to incumbents" also isn't really a bias of the tool. It really just is the most obvious fair way to structure it. Large parties are large because a large amount of people vote for them. So they obviously have more visibility.

But I also agree that the majority rule of an ageing population in Germany is problematic. With most incumbents seemingly agreeing to not talk about the future.

Bewelge··on The Brand Age
I'm not sure I agree with your analysis.

It's true that branding gains importance as a differentiator when the product moves towards being a commodity or if its innovation has reached its peak . But I disagree that it's always the driving factor for how a company is structured.

There are some industries where the franchise model is most dominant (eg fast food chains) and some others where tight control over the value chain is the norm (eg apple). And funnily enough, one of the distinctive differentiators those luxury swiss watchmakers have, is: "We make every part ourselves. Everything is manufactured in Switzerland.". Then you have the OG multinational companies like P&G or Unilever, where branding definitely plays an important role but a lot of their brands are regional so it's yet another structure.

I really think it's mainly the specific industry and geopolitics that shape supply chains and not the branding.

> I'm speculating now, but it seems really likely if that type of distributed supply chain didn't exist, we'd see a closer coupling of design and manufacturing (at an extreme end factories designing and producing their own product).

It's an interesting question. I think it's safe to say that the main driver to outsource manufacturing was cost. But nowadays companies also benefit from things like reduced accountability. Even if we assume every part of the supply chain could be done within the US, wouldn't companies like Apple still eventually outsource the ugly parts of the supply chain to some third party within the US? Simply for the appearances.

Bewelge··on BMW Group to deploy humanoid robots in production in Germany for the first time
> That’s exactly my point. If a problem exists or a solution to a problem is possible about which no party is willing to talk about, it will not show it. The choice of topics is based on party opinions, not on voter surveys. This is called bias.

It's not a bias. I think you're misunderstanding the meaning of the word. We vote for parties and the wahl-o-mat compares the opinion of these parties. It would be biased if it would give an unfair advantage or disadvantage to one or some parties. The parties' opinions not being a good representation of the important challenges we face is not a bias of the wahl-o-mat. You can question its usefulness but calling it biased is calling it dishonest.

And honestly? That sucks. You can question its usefulness but please don't call an initiative that aims to give the populace a better political overview biased for no reason. You're not helping shape political discourse for the better here. I just checked: There weren't any no google results for "wahl-o-mat bias" yet. Now there are.

Bewelge··on Nano Banana 2: Google's latest AI image generation model
So now the value is created through curation. Before it was inherent at creation. If you never curate it might seem like it lost value in comparison.
Bewelge··on Martial arts robots at 2026 Spring Festival Gala [video]
I'm 99% sure that ping pong match is CGI. The whole robot has this green screen effect. Look at its feet. And at second 17 it just disappears entirely for a few frames.
Bewelge··on Vouch
Haha yea, I almost didn't post my comment since the original submission is about contributors where a one time "introduction fee" would solve these problems.

I was specifically thinking about general communication. Comparing the quality of communication in physical letters (from a time when that was the only affordable way to communicate) to messages we send each other nowadays.

Bewelge··on Vouch
> But the value of low quality communication is not zero: it is actively harmful, because it eats your time.

But a non-zero cost of communication can obviously also have negative effects. It's interesting to think about where the sweet spot would be. But it's probably very context specific. I'm okay with close people engaging in "low quality" communication with me. I'd love, on the other hand, if politicians would stop communicating via Twitter.

Bewelge··on AI is killing B2B SaaS
I don't disagree with that, but the market for lemons still doesn't really fit.

If I remember my econ class correctly it uses used cars as an example. If you're neighbor bought a used Toyota and tells you about it being a great purchase, you can't go out and buy another used Toyota and expect it to also be in great condition. Every car is a gamble.

But if you use something like Hubspot and tell your neighbor it's really good/bad you can expect to receive the same Hubspot service they did.

Bewelge··on AI is killing B2B SaaS
It's not a market for lemons. We can share info about the lemons and all choose to use the good ones. There's no information asymmetry.
Bewelge··on EU–INC – A new pan-European legal entity
Actually I think I might be mistaken that you are even required to make a business plan. It's listed as one of the steps on the states portal about founding. But it goes on to say that it's not technically required, just highlights its importance.

https://www.existenzgruendungsportal.de/Navigation/DE/So-geh...

Bewelge··on EU–INC – A new pan-European legal entity
German here. That's not true. What crazy documentation do you require? An ID, proof of residence, and a business plan? (edit: you don't even need a business plan)

That being said, everything about the process is annoying and you always have the feeling that you're doing something wrong or forgetting something. Together with some ridiculously slow processing times, it's the perfect combination to frustrate you and I'm sure it ultimately reduces innovation.

But in reality, getting all the paperwork together is probably a couple of hours of work. You can buy services that do it for you for a couple of hundred Euros.

Bewelge··on The Agentic AI Handbook: Production-Ready Patterns
> It's not unusual now to find myself with at least a couple of simultaneous coding sessions, which I couldn't see myself doing with the friction that using Claude Web/Codex web provides.

I envy you for that. I'm not there yet. I also notice that actually writing the code helps me think through problems and now I sometimes struggle because you have to formulate problems up front. Still have some brain rewiring to do :)

Bewelge··on The Agentic AI Handbook: Production-Ready Patterns
- We narrowed it down to the tool we used to flash the code.

- I downloaded the repository, jumped into codex, explained the symptoms and it found and fixed the bug in less than ten minutes.

Change the second step to: - I downloaded the repository, explained the symptoms, copied the relevant files into Claude Web and 10 minutes later it had provided me with the solution to the bug.

Now I definitely see the ergonomic improvement of Claude running directly in your directory, saving you copy/paste twice. But in my experience the hard parts are explaining the symptoms and deciding what goes into the context.

And let's face it, in both scenarios you fixed a bug in 10-15 minutes which might have taken you a whole hour/day/week before. It's safe to say that LLMs are an incredible technological advancement. But the discussion about tooling feels like vim vs emacs vs IDEs. Maybe you save a few minutes with one tool over the other, but that saving is often blown out of proportion. The speedup I gain from LLMs (on some tasks) is incredible. But it's certainly not due to the interface I use them in.

Also I do believe LLM/agent integrations in your IDE are the obvious future. But the current implementations still add enough friction that I don't use them as daily drivers.

Bewelge··on The Overcomplexity of the Shadcn Radio Button
I'm struggling to form a definitive statement about my thoughts here, but I'll give it a try:

Every (useful) abstraction that aims to make an action easier will have to be more complex inside than doing the action itself.

Would love for someone to challenge this or find better words. But honestly, if that's not the case, you end up with something like leftPad. Libraries also almost always cover more than one use case, which also leads to them being more complex than a simple tailored solution.

Bewelge··on Show HN: Pdfwithlove – PDF tools that run 100% locally (no uploads, no back end)
Great job! If it's all on client you should make a PWA out of it so it can be installed and used offline.

Built a client only webapp myself and offline usage is the main thing users ask about.

Bewelge··on EU and Mercosur countries sign landmark free trade deal
>Food security is the last concern for Europe. How do you get that idea?

On the contrary, it is one of the main concerns of the EU. And has been since the beginning. The CAP still makes up 40% of the budget.

And frankly, for the first time I fully appreciate it. With the current state of the world it's nice that the EU isn't dependent on third parties for their food supply.

Bewelge··on Iconify: Library of Open Source Icons
I really like https://phosphoricons.com/

But other than that, I also usually default to Material UI Icons.

Bewelge··on Show HN: I made a memory game to teach you to play piano by ear
Definitely inspired by it - I had been using Synthesia myself to play piano. But it started more as a "Oh you can use MIDI on the web?"-realisation and grew from there
Bewelge··on Show HN: I made a memory game to teach you to play piano by ear
Very cool! Love the simplicity of this. Built a similar mode in Midiano (also a midi webapp, but focused on playing MIDI files). But this is much cleaner for a quick exercise. Mine never really got past the prototype stage though. Safe to say, I'll be coming back to this thread for ideas when I do get around working on it again :)
Bewelge··on Kidnapped by Deutsche Bahn
To all non-Germans who might get scared by this blogpost:

While there's valid issues to complain about, this blogpost is really hyperbole. And frankly, to someone who has lived in the area, it reads purposefully disingenuous.

Just enter the places he mentions on Google Maps. Everything in NRW is so close together that to travel between cities you can often choose between international trains, regional trains or even just public transport.

The connection he needed, is serviced several times per hour by several different train lines.

Why did he stay on that specific train when he heard his stop would be skipped? The only reason I can think of is to write this blogpost. Since he's local to the area he should have known better.

Also it's worth noting that driving that same route by car, at that time, just a couple of hours before everyone starts their Christmas dinner, might've taken even longer.

I'm not trying to deny common issues with the DB but the author tried to travel through the densest urban area in the whole of Europe during the busiest 2-hour window of the whole year. AND he made a bad judgement call. To leave the transportation hub, staying on a long distance train which was already being re-routed.

Funnily enough, the fact that every "Kuhdorf" needs to be connected by train is one of the difficulties the DB faces for which there is no easy solution. And if a long-distance train needs to decide between dropping some stops which can also be reached by short-distance trains or delaying the whole train, I think that dropping those short-distance stops is absolutely the correct choice.

Bewelge··on Show HN: Boing
Only the first few notes

(function () { function rateToDistance(rate) { const minR = 0.09; const maxR = 4.65; if (rate < minR) rate = minR; if (rate > maxR) rate = maxR; const t = (rate - minR) / (maxR - minR); return 400 * t; } function dispatchMouseEvent(type, target, clientX, clientY) { const event = new MouseEvent(type, { view: window, bubbles: true, cancelable: true, clientX, clientY, screenX: clientX + window.screenX, screenY: clientY + window.screenY, buttons: type === "mouseup" ? 0 : 1, button: 0, }); target.dispatchEvent(event); } const canvas = document.getElementById("canvas"); function triggerPull(distance) { const rect = canvas.getBoundingClientRect(); const startX = 266; const startY = 198; const startClientX = rect.left + startX; const startClientY = rect.top + startY; const endClientX = startClientX + distance; const endClientY = startClientY; return new Promise(resolve => { dispatchMouseEvent("mousedown", canvas, startClientX, startClientY); setTimeout(() => { dispatchMouseEvent("mousemove", canvas, endClientX, endClientY); setTimeout(() => { dispatchMouseEvent("mouseup", canvas, endClientX, endClientY); resolve(); }, 50); }, 50); }); } const semitones = 12; const notes = { G: Math.pow(4, -9 / semitones), A: Math.pow(4, -7 / semitones), B: Math.pow(4, -5 / semitones), C2: Math.pow(4, -4 / semitones), D2: Math.pow(4, -2 / semitones), E2: Math.pow(4, -0 / semitones), F2: Math.pow(4, 2 / semitones), G2: Math.pow(4, 4 / semitones), }; async function playWithPitch(rate) { const r = rateToDistance(rate); await triggerPull(r); } async function playScale() { const qrt = 200; const hlf = 400; const fll = 800; const pause = 15; const playNote = async (note, dur) => { await playWithPitch(note); await new Promise(res => setTimeout(res, dur)); }; const loop = async () => { await playNote(notes.E2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.E2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.E2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.C2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.G2, qrt); await playNote(notes.E2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.C2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.G2, qrt); await playNote(notes.E2, fll); await new Promise(res => setTimeout(res, pause)); await new Promise(res => setTimeout(res, pause)); await new Promise(res => setTimeout(res, pause)); }; await loop(); await loop(); await loop(); } playScale(); })();

Bewelge··on Show HN: Boing
Almost gave up getting this to work...

(function () { function rateToDistance(rate) { const minR = 0.09; const maxR = 4.65; if (rate < minR) rate = minR; if (rate > maxR) rate = maxR; const t = (rate - minR) / (maxR - minR); return 400 * t; } function dispatchMouseEvent(type, target, clientX, clientY) { const event = new MouseEvent(type, { view: window, bubbles: true, cancelable: true, clientX, clientY, screenX: clientX + window.screenX, screenY: clientY + window.screenY, buttons: type === "mouseup" ? 0 : 1, button: 0, }); target.dispatchEvent(event); } const canvas = document.getElementById("canvas"); function triggerPull(distance) { const rect = canvas.getBoundingClientRect(); const startX = 266; const startY = 198; const startClientX = rect.left + startX; const startClientY = rect.top + startY; const endClientX = startClientX + distance; const endClientY = startClientY; return new Promise(resolve => { dispatchMouseEvent("mousedown", canvas, startClientX, startClientY); setTimeout(() => { dispatchMouseEvent("mousemove", window, endClientX, endClientY); setTimeout(() => { dispatchMouseEvent("mouseup", window, endClientX, endClientY); resolve(); }, 50); }, 50); }); } const semitones = 12; const notes = { G: Math.pow(4, -9 / semitones), A: Math.pow(4, -7 / semitones), B: Math.pow(4, -5 / semitones), C2: Math.pow(4, -4 / semitones), D2: Math.pow(4, -2 / semitones), E2: Math.pow(4, -0 / semitones), F2: Math.pow(4, 2 / semitones), G2: Math.pow(4, 4 / semitones), }; async function playWithPitch(rate) { const r = rateToDistance(rate); await triggerPull(r); } async function playScale() { const qrt = 200; const hlf = 400; const fll = 800; const pause = 15; const playNote = async (note, dur) => { await playWithPitch(note); await new Promise(res => setTimeout(res, dur)); }; const loop = async () => { await playNote(notes.C2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.D2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.G, hlf); await new Promise(res => setTimeout(res, pause)); await playNote(notes.D2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.E2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.G2, qrt); await playNote(notes.F2, qrt); await playNote(notes.E2, qrt); await new Promise(res => setTimeout(res, pause)); await playNote(notes.C2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.D2, fll); await new Promise(res => setTimeout(res, pause)); await playNote(notes.G, fll); await new Promise(res => setTimeout(res, pause)); await new Promise(res => setTimeout(res, pause)); await playNote(notes.G, qrt); await playNote(notes.G, qrt); await playNote(notes.A, qrt); await playNote(notes.C2, qrt); await new Promise(res => setTimeout(res, pause)); await playNote(notes.C2, qrt); await new Promise(res => setTimeout(res, pause)); }; await loop(); await loop(); await loop(); } playScale(); })();

← PreviousPage 2 of 4Next →