HNHacker News
TopNewBestAskShowJobs

fzeindl

1,196 karma · joined October 10, 2022

Fabian Zeindl

Senior Software Architect @ Austrian railways ÖBB

Blog: https://www.fabianzeindl.com/

submissionscomments
fzeindl··on Using Lidar to map tree shadows
> This is ridiculously cool

I think so too. And it reminds me that I refactored Leaflet's core event-handling and SVG rendering code 8 years ago. It's good to know your opensource contribution play part in such cool things.

fzeindl··on Software engineers hate code
I like both. Greenfield projects can be pretty boring when there isn't something special about the functionality or a new architecture to try out, but it feels good to spurt out stable features when you know what you are doing.

Repairing / fixing / retrofitting an old code base always has it's wonders. I've seen much code in my life that was in a bad shape and my approach for fixing was seldomly the same, it was always tailored to the team and situation.

To rephrase from Tolstoy: "Good code bases are all alike, every bad code base is bad in it's own way."

fzeindl··on TypeScript please give us reflection/runtime types
You can use Kotlin and compile to JavaScript. It's type system is better and the standard library greater scnr
fzeindl··on Rejected GitHub profile achievements
I don't understand your comment.

Who would be able to open a 1000 issues? Are you referring to trolls?

fzeindl··on Rejected GitHub profile achievements
Open source software and GitHub existed 10 years ago, and what I said was that either the quality of issues or the quality of software decreased.

You are saying people have less time for their projects now as compared to 10 years ago.

fzeindl··on Rejected GitHub profile achievements
Honestly the "This is fine"-badge for over 1.000 open issues on public repositories is very necessary.

There are so many opensource-projects now as compared to 10 years ago, especially in JavaScript-land, which have an unbelievable number of open bugs.

This is terrible because the majority of these bugs seem to be low-quality, so even if you are a seasoned developer with contribution experience, opening up a bug with the incentive to help simply gets you ignored.

I'm waiting for a bug in next.js at the moment where 404 does not return 404, that has been open for months (https://github.com/vercel/next.js/issues/51021). I don't have the time of writing a PR, but I have written countless PRs and bug-reports and worked on many other open-source projects, so I think I have done my share.

It is elitist, but I wish there was a way for maintainers to sort bugs by the reputation of the reporter, so projects can prioritize high-quality issues.

fzeindl··on Ask HN: Could you share your personal blog here?
https://www.fabianzeindl.com/

I write about software engineering and -architecture, am proud about this https://www.fabianzeindl.com/posts/the-codequality-pyramid

fzeindl··on Meta developer tools: Working at scale
The problem with metas approach to tooling from a very high level viewpoint is that they virtualize everything. They abstract all common tasks like building, testing or running by building an entirely new system that builds an abstraction layer.

Abstraction layers tend to be slow.

What they should focus on is plumbing. Take what exists and connect it in a smart way.

Take React: the idea of applying functional programming and spitting out HTML was a great idea. HTML existed before react. Then they also implemented a virtual-DOM, which was the unnecessary part.

Or react-native: rendering UIs in a functional way is great, but stuffing JavaScript into everything is not necessary.

fzeindl··on Drugmakers are abandoning cheap generics
> Here, multiple generic drug manufacturers are competing to win sales contracts by offering the lowest possible price. This can be seen as an example of perfect competition, where firms are price takers and compete mainly on price, driving prices down to the point where they equal the marginal cost of production.

In Switzerland there are laws covering biddings, where the state has to accept the second to lowest offering, not the lowest, thereby circumventing this race.

fzeindl··on Testing a 1,000 player Minecraft server with Folia
Agreed. Allocation is pretty cheap, but it can still be slowed by an order of magnitude by two things:

1. by using finalizers

2. by using object initialization blocks

If you avoid these two problems you get nano-second performance, because the JVM does not need to run code during object creation and GC.

fzeindl··on The .meta directory: let's tidy things up
I have to say that if the JavaScript build ecosystem wasn't such a mess that needs reinvention twice a years, this would hardly be necessary.
fzeindl··on Ask HN: What topics are good for a UI/UX Primer?
Papercuts!
fzeindl··on Ask HN: Best Practices Guides You're Aware Of
I summarized my own 15 years of full-stack development experience into such a guide: https://www.fabianzeindl.com/posts/the-codequality-pyramid
fzeindl··on Review of Hetzner ARM64 servers and experience of WebP cloud services on them
> never having to understand the myriad packaging issues with whatever language the service is written in, python, nodejs, etc)

How do you fix issues with the docker images if you don't understand them?

fzeindl··on If you want people to show up, data shows these are the best meeting times
> Perhaps things are different at the top of the tower, but in my experience if your meetings are regularly longer than an hour I'd say you're doing it wrong, or you're holding a workshop and not a meeting.

What do you mean by "top of the tower"? If you refer to my position as software architect, that has nothing to do with it.

I worked at many companies and meeting length was ALWAYS a factor of the company culture not of my role.

Personally I schedule meeting that take 45 minutes max. Most of the time i schedule 25 minutes. The 5 minutes are so people have a break in their Outlook calendar.

fzeindl··on ES Modules Are Terrible
JavaScript should have adopted the exact same package/import statements and file structure of Java.

It works rather well, it's not confusing at all and if you really want something else you can use require etc.

fzeindl··on If you want people to show up, data shows these are the best meeting times
And if you want Meetings to be effective 1. Give out a short bullet point agenda for every meeting and 2. Take a break every 45 minutes.
fzeindl··on Microsoft is bringing GPT-4 to US Government agencies
> LLMs, in my opinion, are on average better at writing copy than humans.

I disagree here.

But what I found LLMs really useful for is summarizing topics like: "Suppose I want to do XYZ, which steps should I take?" or "I want to write about ABC, how would you structure the article?"

The content is not very good if you look at it in detail, but LLMs provide good overviews and gave me ideas on parts of a topic I overlooked.

More librarian than search engine. I cannot copy and paste and rely on the results but I can rely on that they point me in a good direction.

fzeindl··on Self-healing code is the future of software development
You should look into BEAM/Elixir for self healing systems, not into LLMs.
fzeindl··on Cloudflare Is Having Issues
> - They want their vendor to arbitrarily deny access to customers and prospects

You can turn this behavior off as site owner.

fzeindl··on Cloudflare Is Having Issues
You can turn this behaviour off, it's called "Browser integrity check".
fzeindl··on Why Do ML on the Erlang VM?
> I think BEAM languages are kind of one of the few exceptions to this argument. Its tradeoffs and runtime semantics really are just very different from other mainstream languages.

Agree wholeheartedly. Elixir/BEAM/Erlang are a league of their own.

fzeindl··on You can't reach the brain through the ears
This is also the reason why self-improvement, changing any behaviors no matter if it's about procrastination, sports or mental health takes so long and is so tiresome.

If the brain could be changed easily it would be very unstable and humanity might have died out very fast.

fzeindl··on Show HN: Private, text to entity-relationship diagram tool
See https://xosh.org/text-to-diagram/ for a list of tools!
fzeindl··on Patterns of mean-level change in personality traits across life course (2006)
While this is a meta analysis in general I suspect it is not easy to get and retain study participants for decade-long studies.
fzeindl··on The Rust I wanted had no future
They should have fixed the overhead of Threads instead of changing the languages. Fibers/virtual threads eliminate this overhead, Java can run millions of them.
fzeindl··on The Rust I wanted had no future
> I think you're manifesting what I'm talking about. The reason you cannot replace async with threads has nothing to do with the ecosystem, but the simple fact that threading is a model of parallelism and async/await is a model of concurrency.

That is an artificial distinction you made up. I have written many apps and desktop applications, all of which where using 3-10 threads, some of them doing "parallel" work meaning the parallel computation of divide and conquer algorithms, some were doing concurrent work.

I tried async often. I threw it away every single time, because it "infects" the entire codebase. I suspect the only reason async exists is because the Javascript event-loop is single-threaded and there are no blocking primitives in JS. If you don't have access to blocking data-handoff between threads, you can choose between callback hell or async/await.

Please take a look at the video I posted earlier.

fzeindl··on The Rust I wanted had no future
I hate async as well. Developers should have learned about communicating sequential processes and blocking queues and none of that would have been necessary. It creates a weird divide in every language. Just learn about threading and do it.

A nice talk about this: https://www.reddit.com/r/programming/comments/da141r/ron_pre...

fzeindl··on Why do railway tracks have crushed stones alongside them?
I am working for a railroad company at the moment, we learned cool stuff during onboarding.

Modern train have an electromagnetic emergency brake system that uses a large magnet lowered onto the rail to stop.

Also the standard braking system using fluids has a clever indirection where it does not activate the brake when pressure rises but when it drops. This is because when a waggon gets loose and the braking line rips and fluids get's out, the waggon should immediately brake as soon as pressure drops.

fzeindl··on This site is no longer solar powered for now
> External power was never quite enough, with enough activity the thing was liable to randomly reboot.

Maybe there was a fault in the circuitry to begin with.

← PreviousPage 8 of 10Next →