HNHacker News
TopNewBestAskShowJobs

heinrichhartman

2,496 karma · joined September 28, 2015

Blog: HeinrichHartmann.com Keybase: https://keybase.io/hartmann Twitter: @HeinrichHartman http://twitter.com/Heinrichhartman GitHub: https://github.com/HeinrichHartmann/
submissionscomments
heinrichhartman··on Ideas in statistics that have powered AI
Out of the 10 papers I am able to download 3 of them freely.

- For the papers I am quoted 26EUR - 39EUR

- For the books I am quoted 129EUR - 133EUR

This is audacious. Some of these papers are form the 70ies. And I highly doubt that the authors get any royalties from those sales.

heinrichhartman··on Poisson's Equation
This guy has exactly two posts on his blog. The other one is on a completely different topic but great read as well:

https://mattferraro.dev/posts/cnc-router

heinrichhartman··on The Growth Ponzi Scheme
further reading: https://theportal.wiki/wiki/Embedded_Growth_Obligations
heinrichhartman··on Lambda Calculus Examples (2009) [pdf]
Ha! This paper contains the definition of Y-Combinator:

> Y combinator: Y = λt. (λx. t (x x)) (λx. t (x x))

#TIL!

heinrichhartman··on GitHub – nushell/nushell: A new type of shell
By the same reasoning: Would you not use databases because they have a schema? or JSON...? Heck, even utf-8 could be too complicated.
heinrichhartman··on Gemini's "uselessness" is its killer feature
I think you will like this gemini site, then: gemini://geddit.glv.one

It's a Reddit/HN cone for gemini.

cf. https://github.com/pitr/geddit

heinrichhartman··on French set to replace English as EU’s ‘working language’
The sane thing to do after the Brexit, was to embrace English as main language, since it has not become neutral ground!

According to Wikipedia we have:

* Germany: 56% English speakers, 14.5% French speakers

* Italy: 34% English vs. 19.43% French

* Spain: 22% English vs. 11.73% French

* Sweden: 89% English vs. 8% French

I can't get over how bad this decision is. How can you ignore these kinds of discrepancies?

[1] https://en.wikipedia.org/wiki/List_of_countries_by_English-s...

[2] https://en.wikipedia.org/wiki/Geographical_distribution_of_F...

heinrichhartman··on Abstract Syntax Tree for Patching Code and Assessing Code Quality
> However, for refactoring one might want to consider redbaron[2].

> [2] https://redbaron.readthedocs.io/en/latest/

Thanks for the link. This looks really cool!

heinrichhartman··on Abstract Syntax Tree for Patching Code and Assessing Code Quality
For me, this is the critical bit here:

> One of the problems of patching code using ast package of Python is that it loses all the formatting and comments of the original source code. This can be solved by making the patch script a little smarter. Instead of having it unparse the entire patched AST and write that to disk, we can make it unparse only the nodes it modified and insert the modified code at the corresponding line number in the file. The ast nodes have lineno attribute that can be used to retrieve the line number of the file to be injected the patched code with.

Parsing & Patching the AST is relatively easy, with the provided tooling. I always struggled to write the modifications out in a minimal way. Looks like line-number information does get you over this hump.

EDIT: Looks like the python community has already a package for this: https://github.com/PyCQA/redbaron

heinrichhartman··on University of Oregon will monitor students' social media statements
Why is this flagged?
heinrichhartman··on EU set to unveil plans for bloc-wide digital wallet for various services
Blogged about the idea of a "digital passport" as SSO service in 2016 -- https://www.heinrichhartmann.com/archive/a-digital-passport-...
heinrichhartman··on Safari tries to fill username
I understand the pain, and the need to somehow work around this.

However, conceptually the right place to fix/configure this is the browser. So the correct long-term approach is to open a bug/feature request and get this properly addressed. Everything else is, well, -- a workaround.

(Again: I understand that the correct approach can take years, and it is unclear if it will succeed at all - so it may be impractical.)

heinrichhartman··on Safari tries to fill username
I tend to side with Chrome here.

IMHO, the decision of whether to show auto-complete should be with the user and not with the website. When I install an auto-complete add-on or activate a browser feature, I expect the AC to be available on ALL input fields, whether the site owner thought that would be a good idea or not.

Now, there is a valid question on how the user should be able to configure the AC behavior, and how the website may help inform this configuration, but the decision should be with the user. The website should not have the final say.

So I would see this as more of a shortcoming of the HTML Spec.

heinrichhartman··on Why and how GitHub is adopting OpenTelemetry
I think you are confusing "telemetry" here. This is not about Cookies or "phoning home" or Advertizing. This is about collecting logs, metrics, traces from (Micro-)Services running inside your own DC/Cloud for operational purposes (e.g. troubleshooting incidents).
heinrichhartman··on Use native context menus on Mac OS
I can get behind closing stale issues, to a certain degree, but this practice sound straight-out stupid: Why would you discard the context of a previews discussion?
heinrichhartman··on My experience binding a couple of scripting engines with C++
> [lua] was discarded because of 3. It has unfamiliar syntax, but worse, unfamiliar semantics: no classes, use tables, start indexing at 1 and other oddities, just as being able to call functions with the wrong number of arguments and returning nil on the way. Also, use tables for both hash tables and arrays. It is powerful, do not misunderstand me, and Lua supports good concurrency. It was just not what I was looking for because of the mentioned things.

I can fully understand why lua is not a good fit for this case, however, I would like to add some color to the picture.

The most powerful way to for C(++) - lua interop, is not the official CAPI but luajit/FFI: https://luajit.org/ext_ffi.html

This allows for allocation of C objects on the heap and on the stack and FAST function calls. Doing the same for C++ is possible but requires some work e.g. http://lua-users.org/lists/lua-l/2011-07/msg00492.html

Furthermore:

- unfamiliar syntax -- The syntax is tiny -- and I found nothing unexpected about it.

- no classes -- There are many class libraries available for lua. Just pick one. Used penlight classes quite a bit, without running into major issues.

- use tables for both hash tables and arrays. -- Yes. This is on the API side, under the hood hashes and arrays are used where appropriate.

heinrichhartman··on KolibriOS
Nice! This might make this viable for thin client applications.

Has anyone tried this?

heinrichhartman··on Tosh: Changing your SSH server's listen address every 30 seconds based on TOTP
Never.

> The [ipv6] address space therefore has 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses

https://en.wikipedia.org/wiki/IPv6

heinrichhartman··on My thoughts about the Principal role
One thing we have made good experiences with recently is, having two separate meetings for managing engineering initiatives:

1. Engineering Meeting - led by Principal Engineer. With pure focus on technical questions. We go through open issues, PRs and discuss technical questions, engineering decisions like API design. Stakeholders from other teams are invited to participate.

2. Planning Meeting - led by a Engineering Manager. Report on progress, discuss priorization and decide work assignment a.k.a. "sprint planning". The principal engineer can take part in this as a team member.

This helps me (as a principal) to stay away from people- and project management and purely focus on engineering topics (inc. writing code), which is where I see as my core competence.

heinrichhartman··on A Policy of Activism in the Workplace Is Anti-Fellowship
OK. I get your point, now.

You are using a broad definition of politics. And yes, a job is clearly also a vote for a purpose/values that is inherent to the business model.

heinrichhartman··on A Policy of Activism in the Workplace Is Anti-Fellowship
Yes, I see this political dimension for Tesla -- on a different topic than racism -- but I give you that point.

However, there _are_ plenty of Mission Statements that are a political, just look at your local craftsman or industrial suppliers: "making plumbing work at your home", "creating the best concrete foundations", "selling the best shoes", etc. those are not "fundamentally" or primarily political missions.

heinrichhartman··on A Policy of Activism in the Workplace Is Anti-Fellowship
> If laying down your belief that racism is harmful and wrong is necessary for you 'mission', then the mission is itself harmful and wrong, and no amount of 'fellowship' is going to change that.

Absolutely! I did not see anyone at Basecamp questioning this.

heinrichhartman··on A Policy of Activism in the Workplace Is Anti-Fellowship
>> Joining together for a common purpose > ... is political.

I think the author is referring to the mission statement of companies. While some missions statements have political elements, I can see plenty of mission statements that give a common purpose and are not political. Examples: "Accellerate the advent of sustainable transport" -- Tesla, "Build the best CPU" -- Intel (?).

It is well known that a strong mission statement is an important motivation for people to join and continue to work at companies (e.g. Pink's Autonomy, Mastery and Purpose Framework). So to describe a company as a group of people who are joining together for a common purpose is not wrong.

(Of course, there are of course many more factors that influence work-place selection and motivation.)

Can you elaborate where you see this all rooted in politics?

heinrichhartman··on Why Lichess will always be free
Just donated $30 myself. I use this site every week. It's such a great product!

Here is the direct link: https://lichess.org/patron

PS: I also donated a few month of CPU time to fuel their Game Analytics a while ago: https://lichess.org/help/contribute

heinrichhartman··on Learn C in Y Minutes
Writing correct C is REALLY hard and slow (strings, manual memory management, concurrency pitfalls). So the investment is not paying off unless you are writing highly performance critical backend services.

What can pay-off is learning to read C. Node.js, Firefox, Postgres, Linux are all written in C/C++ so if you ever want to really understand what's going on or have to debug a nasty bug, then you will need to be able to find your way around these code-bases.

heinrichhartman··on RMS addresses the free software community
I think message is genuine, and sympathize with his stand. His work on free software has been invaluable and shaped the software world in a good way. To paint the whole person as a "bad guy" ("terrible person") in the context of the latest developments always seemed off to me.

However, usually apologies in this context backfire. Everything that you say about this can and will be used against you. This has happened to various people before, who (I believe) have been well-meaning but offended the wrong people.

I sincerely hope the best for him, but I don't expect this apology/elaboration will help him.

heinrichhartman··on Why printk() is so complicated, and how to fix it (2019)
Slide 3? https://www.linuxplumbersconf.org/event/4/contributions/290/...
heinrichhartman··on Amdahl's Law
Ahmdal's law describes the scaling behavior of systems with contention ("serialized workload portion"). This was generalized to the Universal Scalability Law by Neil Gunther which additionally takes into account "cross talk" for coordination between nodes. Systems with cross talk always run into configurations where adding more nodes will decrease the throughput of a system.

This is best explained in Baron Schwarz's book: https://raw.githubusercontent.com/VividCortex/ebooks/master/...

My notes on this topic are here: https://nbviewer.jupyter.org/github/HeinrichHartmann/Statist...

heinrichhartman··on Chrome’s address bar will use https:// by default
I have tried to do just that but ran into all kinds of difficulties:

1. Overhead: I have 5 devices that I own 3 of my wife and a smart TV. Setting all this us takes a lot of time, even if it worked fine.

2. What about visitors to my home, that I want to give access? They need the cert as well together with lengthy instructions on how to install it.

3. How do I even install certs on an iPhone?

4. Firefox uses it's own Certificate Database -- for each profile. So I'll have to install certs on the system AND on the host (for e.g. Chrome to find it).

5. All these steps need to be repeated every year (90 days?!) depending on the cert expiration period.

Eventually I just gave up on this. It's not practical. There needs to be a better solution.

heinrichhartman··on Reprojecting the Perseverance landing footage onto satellite imagery
Plug: Just wrote a piece on this topic that you might enjoy reading: https://www.heinrichhartmann.com/posts/2021-03-08-rank-decom...
← PreviousPage 4 of 15Next →