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 Google’s code history to write more code
Google is immensely rich from their ad business. As long as that keeps printing money they don't really care about employees, products, development, customers or rivals.
fzeindl··on I don't need to clean up my desktop and downloads folders in macOS (2021)
I have a healthy mixture of organized folders, like official documents by years for example and disorganized folders.

The key to happiness is to accept the mixture, also accept that you sometimes rename and reorganize stuff, that that sometimes makes it better and sometimes makes it worse, and that sometimes thinking about all of this is just procrastination, but sometimes it's not!

fzeindl··on Connect() – a new API for creating TCP sockets from Cloudflare Workers
That is exactly my thought. As long as the APIs remain clean: SQL for D1, simple KV-store for KV etc with clear semantics, it will be agnostic. Especially since caching sits at the core.
fzeindl··on Connect() – a new API for creating TCP sockets from Cloudflare Workers
And they are building it so architecturally clean that switching clouds becomes easier.
fzeindl··on Connect() – a new API for creating TCP sockets from Cloudflare Workers
The question is how the smart people at AWS who realized this too, will prevent them from rising to the top.
fzeindl··on WP20 and Audrey Scholars
What does the plugin do?
fzeindl··on 'BlackBerry' review: The comedy and tragedy of the innovator's dilemma
> Android by comparison feels more like it was designed to look pretty with usability as a second class citizen.

I do think that this comes from the code base not being very good. The base layout and view classes have hundreds of thousand lines of codes, the layout algorithm is quadratic to the number of views. It was originally designed for digital cameras, not for phones. The base classes use many bit fields as well instead of enums, they don't look like Java.

Plus the strange back button concept which comes from the camera.

All this means developers waste a lot of time wrestling the framework.

fzeindl··on Memory Allocation
Ahh yes. Back at university we had a class called efficient programming where we had to implement a Unix utility and optimize it for speed, meaning cpu cycles.

While aggressively optimizing we replaced malloc in the end with a function we called "cooloc", that traded portability and security for speed. The debug tool here would have been useful.

fzeindl··on Don Knuth plays with ChatGPT
It is also interesting to play around with "compression":

ME: Write all your answers as concise as possible, military telegram style. GPT: Acknowledged. Will respond in concise military telegram style.

ME: Explain quantum gravity. GPT: Quantum gravity: Theory unifying general relativity and quantum mechanics. Describes gravity at smallest scales. Merges quantum field theory and gravitational force. Seeks to reconcile Einstein's relativity with quantum physics. Graviton exchange particles considered. Still under active research.

ME: Can you shorten that even more. GPT: Quantum gravity: Unifies general relativity, quantum mechanics. Explains gravity, small scales. Merges fields, reconciles relativity, quantum physics. Graviton exchange. Active research.

Or timing:

ME: What would happen if you as a AI model had timing information about how long you need to answer a question. What could you do with this meta-information?

GPT: If I, as an AI model, had access to timing information about how long I need to answer a question, it could impact my model in several ways:

    [...]

    Dynamic response generation: With timing information, I could dynamically adjust the response generation process based on the available time. This might involve employing strategies like progressive disclosure, where I provide an initial brief answer within a short time frame and then gradually expand on the topic if more time is available. This adaptive approach would allow me to provide relevant information within the given time constraints.
fzeindl··on It’s time to embrace slow productivity (2022)
You might like the book "The heretic's guide to best practises".
fzeindl··on It’s time to embrace slow productivity (2022)
> ultimately our work is about thinking and fundamentally it requires that each individual doing the work understands what needs to be done.

Usually the individuals doing the work do understand that, but it is really hard to properly divide work and describe requirements. Why people try do divide it in even smaller tasks which increases this kind of complicated creative-writing work is beyond me.

> We realised that waterfalls that start with months of requirements capture followed by months of BDUF aren’t a great idea.

What we should have realized by now is that we never did waterfall right because it's inventor Winston Royce required it to be done TWICE for each project. Two iterations.

What this world needs is Atlassian hiring a number of work psychologists and theorists and have them streamline JIRA based on their learnings. Not in a UX "I want to create a story"-story sort of way. But in a "How do I deal with 50 tickets that are vastly different in quality?" sort of way.

They should answer questions like: "How can we make it so that the user always immediately knows whether to put this text in JIRA or confluence"?

Then Microsoft needs to hire the same people and improve text creation in outlook.

fzeindl··on Zig now has built-in HTTP server and client in std
> I wish more programming languages provided interfaces for building libraries around the std library like what Go does.

Java does, but apart from JDBC for databases, and the servlet-API, I haven't seen many cases where that really improved the world of programming. Java-EE relied heavily on such abstractions, but nowadays those would be replaced by simpler, less abstract constructs with less redirections.

> This is huge for things like database drivers which might become outdated or not support certain features. In Go switching database drivers in as simple as importing the new library. You don't have to change your code.

Database drivers are an abstraction that tends to leak it's underlying technology very fast.

The idea of just being to swap your database out under the hood is neat, but generally holds only for simple projects.

Also the abstraction that helps you here is SQL really, not the driver.

fzeindl··on Prompt injection explained, with video, slides, and a transcript
> Prompt injection works because LLMs are dumber than humans at keeping secrets, and humans can be coerced into revealing.

I wouldn't say dumber than humans. Actually prompt injections remind me a lot of how you can trick little children into giving up secrets. They are too easily distracted, their thought-structures are free floating and not as fortified as adults.

LLMs show childlike intelligence in this regard while being more adult in others.

fzeindl··on Ask HN: It's 2023, how do you choose between MySQL and Postgres?
This is wrong. MySQL does not support transactional DDL, so you cannot run migration and abort them in the middle.

Always use postgresql. It's more logical, more extensible, saner, supports many extensions and is more predictable.

MySQL is inconsistent crap, that trades away consistency, correctness and stability for a little bit of performance in standard use cases.

Do yourself a favor and always use postgreSQL. I switched 15 years ago and never looked back. Have done 15-50 projects since in psql.

fzeindl··on The seven programming ur-languages (2021)
I'd add probabilistic languages like Figaro.
fzeindl··on Ask HN: Most interesting tech you built for just yourself?
I had a servo motor attached to a raspberry pi which turned a small gear that connected to a plastic gear m on the analogue temperature control of my gas heater.

Then I had it switch to various temperatures while heating and also had a geofence for my phone implemented that turned on the heating when I entered a 500m radius. Even had a calibration script for the servo motor.

fzeindl··on iOS 17 app sideloading might only be available in Europe
Actually the iphone was planned to use PWAs in the start, but Steve Jobs switched to native apps after realizing that performance and usability was going to be poor.

He was right and still is. Not that it's impossible to implement a good PWA, all you have to do is manage your state and interface in a way that no interaction takes longer than 50ms to compute. But most developers are not able to deliver than, most don't even think about UIs in this sort of way.

And V8 GC behaviour is still terrible and an unbelievable battery hog.

fzeindl··on JSON vs. XML with Douglas Crockford
Has it? Is there something akin to XSLT for JSON yet?
fzeindl··on Ask Wirecutter: Can you recommend a not-smart TV for me?
Yes, but they are not good. It has a jack plug that I connect to an HiFi-System. Theoretically one could use an HDMI-splitter to extract audio, but I didn't use this, since the lag was too high.
fzeindl··on Ask Wirecutter: Can you recommend a not-smart TV for me?
I use a Philips 43 inch PC monitor attached to an AppleTV. Works great, and has 100ms response. https://www.philips.at/c-p/BDM4350UC_00/brilliance-4k-ultra-...
fzeindl··on Understanding ChatGPT
> So whatever is driving reasoning and intelligence in humans...

Probably multiple brain-areals that work differently and in conjunction. "Left-brain" like language functions working with serial information, "right-brain" function that tend to work on images (= parallel information), combined with symbolic-logical reasoning, an extremely strong programmable aversion system (the emotion of disgust) and the tendency to be lazy = optimizing in- and output.

fzeindl··on Ask HN: Tools to learn music theory?
Not a Tipp about music theory, but as a general Tipp make sure that you practice hands separately https://fundamentals-of-piano-practice.readthedocs.io/chapte...
fzeindl··on Stochastic gradient descent written in SQL
Fully agree.

And using PostgREST [0] you can serve your postgreSQL database as REST-API. And if you throw foreign data wrappers / multicorn in the mix, you can map any other datasource into your postgreSQL-db as table.

[0] https://postgrest.org/en/stable/

fzeindl··on Ask HN: Found a leak of US citizens personal data. Should I report it?
Whatever you do, go to a lawyer first.
fzeindl··on Mermaid Cheat Sheet
There is https://marp.app/ which does Markdown to PPT.
fzeindl··on It's probably time to stop recommending Clean Code (2020)
Interesting, thank you.

> This code is in JS because it has to run in the browser, so it is not super fast.

Try profiling heap allocations in Chrome Debugger. In my experience especially array-allocation can slow down JS-code a lot.

fzeindl··on It's probably time to stop recommending Clean Code (2020)
> And, code performance is, as you say, part of test performance. If the tests take too long, perhaps the code needs to be improved.

Yes. I mentioned this is in the last section. When test-performance is alright, typically you don't need to optimize code anymore.

For me, optimizations in the "code performance" category are for example trading off a generalist API for a more complicated tweaked version that reaches into details and enables caching. The kinds of optimizations game developers do where they make the code less general and pretty, but more performant.

> OTOH, I have got a few test suites that run for 30 minutes or more, just because the search space is so big. But that's code that only needs to be tested once.

What are these suites testing?

fzeindl··on It's probably time to stop recommending Clean Code (2020)
Thank you, let me know if you have suggestion and how whether you can apply it to your work.
fzeindl··on It's probably time to stop recommending Clean Code (2020)
Slightly offtopic but I have summarized my own 20 years of clean coding experience into a system:

https://www.fabianzeindl.com/posts/the-codequality-pyramid

fzeindl··on An antidote to envy
Envy is one of the most useless thoughts/emotions there is, it serves no purpose at all.

But there's a good sentence for dealing with it, if you are envious of somebody else having something you can tell yourself: "I have something he doesn't have. I have _enough_."

← PreviousPage 9 of 10Next →