HNHacker News
TopNewBestAskShowJobs

Greek0

226 karma · joined January 3, 2017

My name is Christian Aichinger. I live in Vienna, Austria. I work as a software engineering manager at Ubimet. I write [1] on topics that interest me, mostly software and science.

[1]: https://greek0.net

submissionscomments
Greek0··on Debugging a Crash in OpenRCT2
You can have debug symbols even in release builds. With gcc, `-ggdb` for debug symbols and `-O2` for optimization can be selected in dependently of each other. Optimized binaries are a bit harder to debug, but locating the source of this crash should be easy even in optimized versions.

As additional complication, debug symbols are often removed from the binary post-build to reduce binary size. The `strip` utility either discards debug symbols entirely, or it puts them in a separate folder as .dbgsym filses. See the gdb `debug-file-directory` option and the `add-symbol-file` command.

Greek0··on [dead]
Development feedback—intended to help team members learn and improve—needs an environment where the recipient can absorb information. This requires psychological safety: no blame, no pressure, no personal attacks, no consequences, no reason to get defensive.

Performance evaluation—informing employees how happy the company is with their output—is a high-stakes and high-stress situation that precludes learning.

Greek0··on Product Market Fit
Do you have a link where to find the talk?
Greek0··on Why high speed rail hasn’t caught on
The author speaks with an authoritative voice and presents the content as facts. Sadly, the article also contains factual errors. For example:

> This capacity could also be served by a fleet of just 40 737s [...], of which Boeing makes more than 500 per year. Bought new, this fleet would cost $3.6b, and with a lead time of, at most, a few months.

Boeing has a backlog of 4000 planes.[1] Current delivery lead times are 5-10 years, so getting 40 planes within months is ludicrous. Aircraft might be available on shorter timelines from aircraft lenders, but probably not in that timeframe either. It's also not what the article argues.

This puts a question mark over the content: which parts are actually correct and which are merely presented as fact without any checking?

[1]: https://en.wikipedia.org/wiki/List_of_Boeing_737_MAX_orders_...

Greek0··on Git Best Practices
Staging changes: git add -p and git diff --cached

Rewriting history: git commit --amend

Rewriting history: git rebase -i HEAD~10

Atomic commits

Commit messages

Git branching patterns

Greek0··on Who was Aleph Null? (2013)
Do we know who the stack-smashing Aleph One was?
Greek0··on SHA-1 'fully and practically broken' by new collision (2020)
As of January 2021, SHA256 repositories are supported, but experimental. They can be created with `git init --object-format sha256`. If I understand correctly, they don't mix at all with SHA1 repositories (i.e. you can't pull/push from/to between SHA1 and SHA256 repos).

See https://stackoverflow.com/questions/65870508/git-and-sha-256

Greek0··on The Nobel Prize in Chemistry 2021
Organic synthesis is about making new molecules that haven't existed before. That's important for developing new drugs, improved batteries, better plastics, etc.

Organic molecules are networks of atoms, with both a distinct connectivity pattern, and a specific 3D orientation [1] of the atoms to each other. See e.g. the Wikipedia page of Lipitor[2] a picture of the connectivity pattern.

We build these molecules through chemical reactions. Over time, we have become pretty good at creating the connectivity patterns we want. However, achieving the correct 3D arrangement is still challenging.

List and MacMillan developed new chemical reactions that enable us to get both the connectivity, and the 3D aspect right. Such new methods are frequent Nobel contenders, and won e.g. in 2001 with Knowles/Noyori/Sharpless.

As for how these reactions work: it is true that they are catalyst-based and that catalysts speed up reactions, but that perspective is a bit misleading. The key point is that without catalysts, these reactions would not happen at all. So the catalysts List&MacMillan found accelerate some desirable reactions so much that they turn from "practically doesn't happen at all" to "done in an hour".

Congratulations to the outstanding work, and to the Nobel price!

[1]: See https://en.wikipedia.org/wiki/Chirality_(chemistry) for a deeper look [2]: https://en.wikipedia.org/wiki/Atorvastatin [3]: For a deeper look at the chemistry, check out https://www.nobelprize.org/uploads/2021/10/popular-chemistry... and https://www.nobelprize.org/uploads/2021/10/advanced-chemistr... -- also shared by _Microft

Greek0··on Somewhere Under My Left Ribs: A Nurse’s Story (2018)
Thank you for your in-depth answer. This really seems like a problem in search of a better solution.

Thanks as well for writing up your story, it was indeed a good read. I with you all the best with your health!

Greek0··on Somewhere Under My Left Ribs: A Nurse’s Story (2018)
I've been wondering a few times about how to best search the medical literature given a set of symptoms. How did you search for and find your particular disease?
Greek0··on The fastest and shortest algorithm for all well-defined problems (2002)
Cooley-Tukey Fast Fourier Transform can be complex to implement, if you want to optimize it. A basic version is surprisingly simple, I implemented it for fun in Python a couple of years ago:

    def fft(x):
        N = len(x)
        if N == 1:
            return x
        assert N % 2 == 0
        E = fft(x[::2])
        O = fft(x[1::2])
        X = [None] * N
        for k in range(N // 2):
            tf = np.exp(-2j * np.pi * k / N)
            X[k] = E[k] + tf * O[k]
            X[k + N//2] = E[k] - tf * O[k]
        return X
The Wikipedia article describing it is surprisingly decent: https://en.wikipedia.org/wiki/Cooley%E2%80%93Tukey_FFT_algor...
Greek0··on One man’s fight for the right to repair broken MacBooks
The repairability Rossmann is talking about is not user-replaceable components. His repairs usually require soldering to replace components.

One of his main critique points is that Apple makes it hard to repair their products, even for electronics professionals. In the past, Apple has also altered designs so that small electrical problems suddenly fry the most expensive component on the board, the CPU. Either this is an embarrassing, junior-level oversight or a deliberate anti-repair-buy-new-hardware tactic.

See, for example, https://www.youtube.com/watch?v=jahtu1_idVU

As such, it seems you are arguing against an idea that no one is suggesting.

Greek0··on A Gentle Introduction to Ted Nelson's ZigZag Structure (2002)
Brief summary, please correct me if I'm wrong.

A ZigZag structure is an undirected graph. Nodes are arranged in an n-dimensional space. For each coordinate axis, every node can only have one edge in the plus-1-along-coordinate direction, and one edge in the minus-1-along-the-coordinate. I.e. no diagonal connections, and max one connection in each "cardinal direction" (+ and - in n dimensions = 2n directions).

In its simplest form, a ZigZag structure can be an n-dimensional grid, where each node is connected to its direct neighbors in the grid. In 2D, that would give you a spreadsheet. However, ZigZag can do more: you can have loops along any axis, e.g. a spreadsheet where the columns "wrap around". Furthermore, ZigZag supports looping the columns of only one particular row: a normal 2D spreadsheet, except that row 13 only has 4 columns, and those columns are wrapped up in a loop. You could also have sparse grids - where nodes are missing, and the edges skip over the missing node.

The idea is to have something that locally, if you look only at the surrounding nodes, always looks like a neat n-dimensional grid. But the global topology can be totally whacky.

I have no idea what you would use such a thing for.

Greek0··on The health benefits of better air
I don't understand how the author arrives at the conclusion that "[air quality] is often the most effective health intervention, period".

How do you take that away from the plots? If you're in the US my prime take-away would be to keep your BMI in check.

The first graph shows ~2 deaths per 1000 people per year. Surely more than 2 persons/1000/year die in those countries. What are the causes for the other ~10-15 deaths/1000/year?

Given the information in the article, I don't see anything to support the central thesis about air quality. The reasoning for it is so thin that I have no idea whether it's true or not.

Greek0··on Quantum computing’s reproducibility crisis: Majorana fermions
Brief summary:

Majorana fermions are particles can potentially be created under stringent laboratory conditions. Whether this has been achieved in practice is unclear: many scientific papers purport to show evidence of Majorana particles, but there are other explanations that could explain to the observed data as well. New research is frequently published that claims Majorana production, but most often doesn't even acknowledge potential problems or alternative explanations. These sloppy practices cast doubt over the whole field, despite the large impact Majorana particles could have for quantum computing applications.

We need:

* More stringent data reporting: raw data, full data (not only the small subset supporting the hypothesis)

* More critical evaluation of other explanations for the observed data

* Transparent publication processes, that prevent a paper that was rejected by one journal on scientific grounds appear in another journal unchanged

Greek0··on Comparing Svelte and React
The author praises Firebase Auth for its ease-of-integration, but I'm leery of depending on Google products due to its support horror stories.

Can anyone recommend good, easy-to-integrate alternatives?

Greek0··on Fast Inverse Square Root
Here's another article (from 2012) describing the same calculation:

http://h14s.p5r.org/2012/09/0x5f3759df.html

Greek0··on KaTeX – The fastest math typesetting library for the web
I switched from MathJax to Katex on my personal blog, and it significantly improved my lighthouse scores. Mathjax needs a huge amount of JS/CSS/Fonts to do its job, and takes a long time to load and render the equations. Not all of that is deferable.
Greek0··on How to Fix Gimbal Lock in N-Dimensions
A quick summary of the arguments:

Gimbal lock arises in graphics systems when you store the rotation state as 3 Euler angles:

   Internal State: AngleX, AngleY, AngleZ
   Update algorithm: AngleX + dx, AngleY + dy, AngleZ + dz
   Rotation = Rotationmatrix(AngleX) * Rotationmatrix(AngleY) * Rotationmatrix(AngleZ)
With this setup it is easy to come to a situation where AngleZ performs a rotation so that the X/Y rotation vectors coincide, and you lose one degree of freedom in the resulting rotation matrix.

How to fix this:

  Internal state: RotationMatrixOld
  Update: RotationMatrixOld * RotationMatrix(dx, dy, dz)
With this setup there is no chance of Gimbal lock, the dx/dy/dz matrix always retains its degrees of freedom.

Other notes:

* The above description applies irrespective of whether you use Quaternions or rotation matrices

* In higher dimension it's better to describe rotations by their rotation plane instead of the normal vector: in higher dimension there is no "normal vector". Rotation always works in ONE plane / two axis, so there are (N-2) "normal directions" in N dimensions.

Greek0··on Debian Janitor: 60k Lintian Issues Automatically Fixed
> I mean, if you start building an auto-fixer pipeline for an auto-linted error... then is that error actually valid in the first place? Probably not.

Just because you can automate it does not mean that the task is worthless.

React provides auto-migration scripts to newer versions, Python had the 2to3 utility, the Linux kernel has patches auto-generated with Coccinelle, editors have "rename this variable and all references" functions. Starting from a certain code base size there are changes that are worthwhile and best tackled with automation.

Greek0··on Into Thin Error: Mountaineer Ed Viesturs on Making Mistakes (2010)
There is a fair amount of research into group dynamics and group decision making, specifically in the context of alpinism. For example [1], written in English, from the "Berg und Steigen" blog.

In general, I can't recommend German-language "Berg und Steigen" magazine enough. It's focuses on safety and risk management in mountain-related activities (mountaineering, indoor/outdoor climbing, skiing, ski touring, mountain biking, ...). Older issues become completely freely accessible in their archive [2].

[1] https://www.bergundsteigen.blog/human-factor-and-decision-ma... [2] https://www.bergundsteigen.at/?module=archiv/ausgaben

Greek0··on Helium shortage has ended, at least for now
The atmosphere is not stratified into layers of different gasses. All gasses are mixed throughout the atmosphere, so you also find enough Helium at the bottom where we live. Indeed, all gasses in the atmosphere get less dense with increasing height, so helium has the highest pressure/density at the ground. [1]

At the same time, lighter gasses have vertical distributions that reach higher up into space, and some helium does get lost as it "boils off" from earth over time.

[1]: https://chemistry.stackexchange.com/a/61154/14998

Greek0··on What is a control system anyway?
PID Without a PhD [1] is an excellent paper that gives a good intuition for PID controllers. In addition, it has concrete advice on how to go about implementing a practical control scheme, and how to tune the PID constants.

It's really my go-to reference for any practical control theory application.

[1]: https://www.wescottdesign.com/articles/pid/pidWithoutAPhd.pd...

Greek0··on Ask HN: Who is hiring? (January 2018)
Ubimet | C++/Python Developer | Vienna, Austria | ONSITE

Ubimet is a leading weather service providers in Europe. We're experts in meteorology and issue customized weather forecasts for several million private and industrial customers. Together with our shareholder (Red Bull), we pursue the goal to be the weather service with the world's best quality forecasts.

We're looking for a C++/Python developer to work on interesting problems at the intersection of big data, realtime services, and scientific computing. We offer a great work environment in the city with the highest quality of living worldwide (https://en.wikipedia.org/wiki/Mercer_Quality_of_Living_Surve...). If you have to move, we offer a relocation package and take care of any visa formalities.

We especially encourage women, people of color, and others who are underrepresented in the tech industry to apply.

If you're interested, check out http://www.ubimet.com and our job ad at https://career2.successfactors.eu/career?career%5fns=job%5fl... and apply via Successfactors or at info@ubimet.com.

Greek0··on Ask HN: Who is hiring? (October 2017)
Ubimet | C++/Python Developer | Vienna, Austria | ONSITE

Ubimet is a leading weather service providers in Europe. We're experts in meteorology and issue customized weather forecasts for several million private and industrial customers. Together with our shareholder (Red Bull), we pursue the goal to be the weather service with the world's best quality forecasts.

We're looking for a C++/Python developer to work on interesting problems at the intersection of big data, realtime services, and scientific computing. We offer a great work environment in the city with the highest quality of living worldwide (https://en.wikipedia.org/wiki/Mercer_Quality_of_Living_Surve...). If you have to move, we offer a relocation package and take care of any visa formalities.

We especially encourage women, people of color, and others who are underrepresented in the tech industry to apply.

If you're interested, check out http://www.ubimet.com and our job ad at https://career2.successfactors.eu/career?career%5fns=job%5fl... and apply via Successfactors or at info@ubimet.com.

Greek0··on Ask HN: Who is hiring? (September 2017)
Ubimet | Python/C++ Teamlead | Vienna, Austria | ONSITE

Ubimet is a leading weather service providers in Europe. We're experts in meteorology and issue customized weather forecasts for several million private and industrial customers. Together with our shareholder (Red Bull), we pursue the goal to be the weather service with the world's best quality forecasts.

We're looking for a technical teamlead with Python/C++ experience to turn meteorological data into compelling products and services. We offer a great work environment in the city with the highest quality of living worldwide (https://en.wikipedia.org/wiki/Mercer_Quality_of_Living_Surve...). If you have to move, we offer a relocation package and take care of any visa formalities.

We especially encourage women, people of color, and others who are underrepresented in the tech industry to apply.

If you're interested, check out http://www.ubimet.com and our job ad at https://career2.successfactors.eu/career?career%5fns=job%5fl... and apply via Successfactors or at info@ubimet.com.

Greek0··on Ask HN: Who is hiring? (June 2017)
Ubimet | C++/Python Developer | Vienna, Austria | ONSITE

Ubimet is a leading weather service providers in Europe. We're experts in meteorology and issue customized weather forecasts for several million private and industrial customers. Together with our shareholder (Red Bull), we pursue the goal to be the weather service with the world's best quality forecasts.

We're looking for a C++/Python developer to work on interesting problems at the intersection of big data, realtime services, and scientific computing. We offer a great work environment in the city with the highest quality of living worldwide (https://en.wikipedia.org/wiki/Mercer_Quality_of_Living_Surve...). If you have to move, we offer a relocation package and take care of any visa formalities.

We especially encourage women, people of color, and others who are underrepresented in the tech industry to apply.

If you're interested, check out http://www.ubimet.com and apply at https://career2.successfactors.eu/career?career%5fns=job%5fl...

Greek0··on Ask HN: Who is hiring? (April 2017)
Ubimet | C++/Python Developer | Vienna, Austria | ONSITE

Ubimet is a leading weather service providers in Europe. We're experts in meteorology and issue customized weather forecasts for several million private and industrial customers. Together with our shareholder (Red Bull), we pursue the goal to be the weather service with the world's best quality forecasts.

We're looking for a C++/Python developer to work on interesting problems at the intersection of big data, realtime services, and scientific computing. We offer a great work environment in the city with the highest quality of living worldwide (https://en.wikipedia.org/wiki/Mercer_Quality_of_Living_Surve...). If you have to move, we offer a relocation package and take care of any visa formalities.

We especially encourage women, people of color, and others who are underrepresented in the tech industry to apply.

If you're interested, check out http://www.ubimet.com and apply at https://career2.successfactors.eu/career?career%5fns=job%5fl...

Greek0··on Why recursive data structures?
The argument would be stronger if he wasn't swapping an O(n) algorithm for O(n log(n)). With the recursive implementation you have to touch every element once for each recursion level.