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 A pretty visualisation of the European power grid (2022)
A specialty in austria (in the middle of the map) is pumped-storage hydroelectricity. Since there are so many mountains and valleys, lakes are used as giant batteries. Water can be pumped up in times of excessive supply and released to produce energy when there's higher demand.

This keeps the power lines stable and compensates for factors like lack of wind in wind power stations, startup/shutdown times of thermal power plants, differing consumption patterns because of colder weather etc.

fzeindl··on Your docs are your infrastructure
> These people know how to read and write better than STEMs in general

That is completely untrue. Efficient, creative writing is a skill that can be learned by anyone by following a handful of rules.

fzeindl··on Async await: the worst thing to happen to programming?
Here are more arguments against async/await: https://www.youtube.com/watch?v=449j7oKQVkc

Ron Pressler always was an advocate for blocking code and even joined oracle to add virtual threads to the JVM, thus invalidating the performance argument of the async/await/non-blocking crowd.

I really wish young developers would be taught about the actor model and communicating sequential processes before falling for the false promises of async/await-land.

And I wish JavaScript runtimes had a way of expressing continuations /blocking threads on their eventloop.

fzeindl··on Why does everyone run ancient Postgres versions?
* transactional DDL

* comprehensive transaction model using different modes

* PostGIS and lots of other great extensions

* supports most of the current SQL standard and is clear on interpretation of edge-cases in the documentation

* support for writing stored procedures in any major programming language

* many useful functions regarding dates, sets, ranges, json, xml, ...

* custom datatypes

* extremely thought-out and standardized approach to development: if a feature is included it generally works well in interaction with everything else

* syntax, semantics and performance are all very predictable

* great documentation

Regarding MySQL / MariaDB: MySQL optimized for performance first. Until 2010 the standard-storage-engine MyISAM didn't even support transactions.

PostgreSQL always focused on correctness and stability and then made sure everything performed.

fzeindl··on Ask HN: Anyone learned art (drawing, caricature etc.) as an adult?
If you buy quality ink pens by pentel or faber Castell they will last years, depending on usage.
fzeindl··on Ask HN: Anyone learned art (drawing, caricature etc.) as an adult?
I started doing ink drawings (0.1mm ink pens).

I tried pencil at first but with ink I liked that I can’t erase and can’t shade by using pressure.

So every mistake has to be transformed into something agreeable.

It is very productive to think about drawing in a logical way, e.g. how can I achieve what I want to achieve in a part of my picture. What also helps is knowing that a perfect drawing is a photo and I don’t want to produce a photo. And I try drawing what I actually see, not what my mind abstracts and thinks the picture should look like.

fzeindl··on The Waterfall Model was a straw man argument from the beginning (2015)
What is less known is that the author of the waterfall model Winston W. Royce recommended doing the entire process TWICE:

https://pragtob.wordpress.com/2012/03/02/why-waterfall-was-a...

It is hard to foresee how the world of development would look like today, had companies used the waterfall process twice on each project.

fzeindl··on Can LLMs Generate Novel Research Ideas?
Could rolling dice with matching phrases generate novel research ideas? (ok the metaphor is slightly off, but not a lot)
fzeindl··on Boeing Starliner, leaving its crew behind, lands in New Mexico
> Boeing has really struggled in making the cultural transition from old style cost-plus government contracting.

How is this old style? At least in software development / IT-consulting in Europe cost plus is done all the time now, since there were too many legal battles about fixed price not being finished according to spec.

fzeindl··on Kids who use ChatGPT as a study assistant do worse on tests
Side note and blog promotion: I find fascinated that ChatGPT can easily simulate the age of child when giving answers for homework: https://www.fabianzeindl.com/posts/chatgpt-simulating-agegro...
fzeindl··on JavaScript dates are about to be fixed
While the IETF might move slower, Java has standards as well. The java-date-time API standardization started in 2007: https://jcp.org/en/jsr/detail?id=310, than a JEP was created in 2012: https://openjdk.org/jeps/150
fzeindl··on JavaScript dates are about to be fixed
scnr

So JavaScript gets what Java got in version 8, 10 years ago?

fzeindl··on Show HN: Semantic Grep – A Word2Vec-powered search tool
Yes, you are right.
fzeindl··on Show HN: Semantic Grep – A Word2Vec-powered search tool
Fyi, there is already a widely used tool along with a company called semgrep, which stems from semantic grep: https://semgrep.dev/.
fzeindl··on Java Virtual Threads: A Case Study
Does it shake out to any real advantage?

To put it shortly: Writing single-threaded blocking code is far easier for most people and has many other benefits, like more understandable and readable programs: https://www.youtube.com/watch?v=449j7oKQVkc

The main reason why non-blocking IO with it's style of intertwining concurrency and algorithms came along is that starting a thread for every request was too expensive. With virtual threads that problem is eliminated so we can go back to writing blocking code.

fzeindl··on A New Kind Of Dance Science (combinatorics of social dancing)
> Would martial arts really have even more variety here?

It depends, but yes. Martial arts is not just boxing. Take the following choreography from one style of Pencak silat:

https://youtu.be/8H0x1AKlpM4?si=QJLNffTUozn9kCf9

fzeindl··on A New Kind Of Dance Science (combinatorics of social dancing)
I have had the same idea about martial arts. Not sure it is possible. In dancing you have at least some symmetric patterns and rhythm, in martial arts you have even more stances, rotation around more axes and arrhythmic moves.

good dancing like good fighting isn‘t mechanical either, it is good because it relies on little imperfections. Just like MIDI files cannot replace a concert pianist.

In the end I think motion capture of extremities along with some easing of paths and compression of point-clouds (think bezier curves) might be more worthwhile than a notation.

fzeindl··on Ask HN: React, Vue or Angular?
Next.js (react)
fzeindl··on LLM that can call multiple tool APIs with one request
> ... code up a script that calls some functions with the same signature as tools and then executing that script actually ends up being more accurate than asking it to internalize its algorithm.

This is called defunctionalization and useful without LLMs as well.

fzeindl··on 3M executives convinced a scientist forever chemicals in human blood were safe
> diffused

You mean defused? "Diffused" kind of turns the meaning of your sentence around.

fzeindl··on Sam and Greg's response to OpenAI Safety researcher claims
> Either the risk-mitigator 'falls in line' after repeatedly seeing their increasingly strident exhortations are falling on deaf ears (or even outright contradicted)... or they leave because it violates their sense of ethics.

Or both continue to work together in a healthy, never ending discussion, that has temporary victories on both sides and ultimately benefits all, because nothing happens and the company strives.

fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
> Don't see any support for CTEs, window functions or joins. Admittedly joins should probably be handled as views, but window functions and CTEs can be very useful in some circumstances.

They can be used in a view that is then exposed. Parameterized functions for more complex queries can also be exposed.

fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
> … i.e., don't have PG? Not a problem, just introduce it into your architecture! (/s, from me, but I think the OP is serious.)

I do think this is fairly simply for many companies.

> But I agree. These sort of "just keep wiring boxes together until it works" architectures cause so many headaches IME; so many pieces, each with its own failure modes and bugs. This is where I find the claim the OP makes,

I agree, but PostgREST is a very very simple box...

> With wired-together-boxes-of-random-tooling like this, I have to pray my change fits into the whims of its config files.

... that needs almost no configuration except the database connection string.

fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
I will at some point.
fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
You can absolutely have versioned views that you expose. An URL like /api/v1/customers could be rewritten to /views/v1_customers.

That way you can change your schema internally.

fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
Thanks for your comment, I will look into postgraphile.
fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
The GET-endpoints by postgREST are very flexible and support limiting, pagination, ordering, selection of fields etc., which typical hand-written APIs do not support.
fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
> Anything else, you likely need a transformation layer and also take into account Auth, rate limiting etc

You can do flexible auth in PostgREST, but also on an api-gateway. Are you right now doing rate limiting in the backend?

fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
> I don't understand what's the benefit of adding additional third party code into the hot-path. Adding yet another endpoint is hardly a lot of work, sometimes even auto-generated and has the benefit of being available in your existing monitoring / instrumentation environment already.

If your existing endpoints already support vertical and horizontal filtering, proper pagination, joining, limiting etc. then you won't get much benefit.

> Also what about caching if people can "craft" random queries and send them straight to your PG instance?

Queries can be blocked or rewritten on the reverse-proxy.

fzeindl··on The API database architecture – Stop writing HTTP-GET endpoints
> Coupling your API to your database schema is a bad idea. Once you have clients consuming that API you can no longer make changes to your database schema without also updating all of those clients and coordinating their deployments.

This is not correct. Whenever you need to change an API you need to upgrade your clients or you add a new version of the API. With PostgREST the versions of the API are served as views or functions that internally map to internal tables. It is absolutely possible to change the tables without changing the API.

← PreviousPage 5 of 10Next →