HNHacker News
TopNewBestAskShowJobs

DasIch

2,776 karma · joined April 17, 2011

submissionscomments
DasIch··on Rust 1.50
Arrays and tuples are very different. Arrays are homogeneous structures, all entries have the same type. Tuples are heterogeneous, so entries can have different types.
DasIch··on OO in Python is mostly pointless
Diesel is nowhere near being able to fully map SQL to rust. It's ok for relatively simple queries that are typical for OLTP applications. Anything beyond that and you're going to run into trouble.

If you want to do something more OLAP-ish or insert data in bulk, you have a huge problem. SQLAlchemy is far better, even though SQLAlchemy also has its own share of limitations (dealing with jsonb_to_recordset and functions like it for example).

DasIch··on Ask HN: Earning 100k EUR in Berlin?
You also have to pay employer contributions to insurance and you don’t make money, if you don’t have a contract, are sick or on vacation.

So you also have to make at least 150k+ to make up for that. If you were to make significantly less than that, say 120k you’re probably worse off in the end.

DasIch··on Ask HN: Earning 100k EUR in Berlin?
At least in Germany the employers pay about half of mandatory social insurances such as healthcare, unemployment, pension etc.

This is usually not considered when people talk about pre-tax salaries. Ultimately though that’s just accounting, really that is part of the money you earn.

DasIch··on Ask HN: Earning 100k EUR in Berlin?
I’m a senior engineer at a large Berlin company and I make 82k. We have a program to share salaries between employees internally, based on that and conversations with my lead I understand that I’m not at the top of the salary band. You can probably make 90k before you’d need a promotion to principal engineer or switch to management.

Our company is also not aiming to pay above average salaries, as explained company wide by people on a VP-level.

Context: 4 years of work experience.

DasIch··on What killed Haskell, could kill Rust, too
I admit that this is to some extent memory management that you have to think about. However especially when it comes to concurrency, this is stuff you have to think about in any language.

The difference is just in when you get the error and what kind you get. Do you get errors at runtime or does the compiler complain?

I would argue that doing some of this in Python with no language support at all, is in some ways more manual than Rust, where you get at least assistance.

Ownership and borrowing in Rust is solving a much bigger problem than what has been traditionally understood as memory management. Put another way: Other languages even with GC only solve memory management partially.

Rusts approach has downsides with cyclic data structures, that’s true but how often do you implement those in real world code? Async can indeed be tricky, that requires a bit of time to wrap your brain around but I think it’s getting better.

DasIch··on What killed Haskell, could kill Rust, too
You manage memory in Rust about as manually as you manage memory in Python, at least in normal application code.

If you do very low level stuff, you might think about that a bit more but then you have to in any case.

DasIch··on Gerät 32620: the machine that powered numerous number stations
It's indeed used for phonetic distinctness.

The German word for 2 is "zwei", which is relatively close to and even rhymes with the word for 3 "drei". "Zwo" is used to make it easier to distinguish the two.

DasIch··on German digital bank N26 is facing outcry from its staff over management
It’s interesting you mention Walmart. Walmart has failed spectacularly in trying to enter the German market. Their treatment of employees probably was a factor but probably not the most important one though.
DasIch··on Ask HN: Has anyone migrated off containerized infrastructure?
> Then something breaks on production, but you don't know what. You need to get on that machine and take a look.

If that's a problem you find yourself having at all, much less regularly. You have a serious observability problem.

DasIch··on German digital bank N26 is facing outcry from its staff over management
> [...]they are not preventing the employees to form one, and will accept their decision.

That would be a crime in Germany, you can go to prison for and they are actually very very close to crossing that line, if they haven't already overstepped it.

DasIch··on German digital bank N26 is facing outcry from its staff over management
Indeed, it's fascinating to watch. Reputation matters for a bank and they are in the process of completely destroying it.

Quite frankly I doubt it's possible to recover from that without removing the founders (currently acting as CEO and CFO) from the company.

DasIch··on Django 3.1
Postgres allows you to create an index on keys within a JSONB column[0]. It may be the case that Django doesn't offer support for this but I would expect you can probably get around that with raw SQL.

[0]: https://www.postgresql.org/docs/current/datatype-json.html#J...

DasIch··on The terms of the AGPL are pretty easy to comply with
Nobody is using every AGPL project and there aren't that many AGPL projects to begin with.

The problem is not just the risk associated with AGPL, it's also that the benefit is actually quite small. I think most companies would be a lot more willing to use AGPL, if there were any compelling projects using it.

DasIch··on Kubectl – Configuration Guide
You could have a mechanism to grant yourself temporary write access on an as-needed basis.

At Zalando everyone has read access (except to secrets). You can request write access with a command line tool another employee can then approve it. There is also an option to request access with an incident ticket, in that case you immediately get write access without approval by someone else. Write access expires after 1h.

Access to the underlying AWS account uses the same mechanism.

DasIch··on Tech sector job interviews assess anxiety, not software skills: study
The bar for "good enough" can of course be quite high.

If you're hiring people at the very top or with rare skillsets, like building browser engines, building databases or people whose skill is at author/contributor level to relevant technology (for the job in question), you're probably not going to go with the usual process anyway as there is less uncertainty.

DasIch··on Tech sector job interviews assess anxiety, not software skills: study
You only need to fill a position with a person that is good enough.

If you reject someone who would have been a good fit but still hire someone good eventually, that’s ok.

A bad hire is not fun, not for HR, not for the hiring manager, not for the colleagues and ultimately not for the person who got hired. Especially if they had to move for the job, possibly with family.

A bad hire has massive negative consequences for many people. Of course you want to avoid that, if that comes at the cost of not hiring someone who would have been great occasionally, that’s unfortunate but acceptable.

DasIch··on German court bans Tesla ad statements related to autonomous driving
Judges in Germany generally aren’t elected. The few that are cannot be re-elected and have fairly long terms.

The voting population in this case would consist of politicians in the legislative branch.

DasIch··on Running Postgres in Kubernetes [pdf]
If you are running Kubernetes, happen to be a fairly large organization and use microservices, you probably have many databases. Hundreds of them. Most of them are going to be small, using few resources of any kind.

In that context running postgres on K8S makes a lot of sense. You already have K8S and experience running it. Running postgres there makes it possible to share resources between databases and other applications. That improves utilization which means you can reduce costs significantly.

Another advantage is that unlike managed solutions such as RDS, you can use a more recent postgres version and postgres extensions that RDS doesn't support. Extensions such as PgQ or TimescaleDB or ...

Having said all of this. In a large organization, you have the benefit of economies of scale. Large fixed costs (such as developing the expertise required to run (postgres on) K8S reliably) can be amortized. It's possible for this to be a good idea, even a best practice for large organizations while at the same time a terrible idea for smaller ones. Most of the time, using a managed service like RDS is probably a better choice. In other words: You are not Google. You are not Facebook. You are probably not even Zalando. Figure out what's right for you.

DasIch··on Async Python is not faster
Your database is realistically postgres or mysql and can really only run as many queries in parallel as you have cores.

You can run more queries concurrently but then the database just switches between those, which usually means worse latency and not potentially worse throughput.

As you wrote yourself an application handles request probably by doing a few database queries. As a consequence regardless of how many requests you can handle concurrently, they are probably all bottlenecked by the number of CPUs on your database server.

All of this is probably true regardless of whether you are using async or sync io. However with async io you have some overhead.

Of course, if you also happen to be doing other kinds of IO, say HTTP requests to other services in addition to or instead of those database queries. This might look a bit differently.

tl;dr: It really depends on what your application is doing.

DasIch··on Rust: Dropping heavy things in another thread can make your code 10000x faster
Nothing about how Rust handles deallocation is magical in any way.

It's also definitely a zero-cost abstraction as I can see because the manual solution that's equivalent to get_len1() would be to essentially call free() on things. That would ultimately suffer from the same problem.

DasIch··on Show HN: PgTyped – Typesafe SQL in TypeScript and Postgres
While I like SQLAlchemy a lot, it has to be said that it leaks like a sieve.

Personally I think the problem is not that ORMs are leaky abstractions, it's that they often pretend not to be. SQLAlchemy just leaks unapologetically, if you struggle with ORM you can drop right down to using an DSL to construct SQL or just write SQL directly without feeling like you have to fight the ORM and mess with undocumented internals you shouldn't be touching.

DasIch··on German intelligence can't spy on foreigners outside Germany
The German constitution explicitly distinguishes between humans and citizens.

So no, this is not a big task. It’s not a task at all.

DasIch··on With broad, random tests for antibodies, Germany seeks path out of lockdown
> Germany is a democracy, so it ultimately comes down to the quality of the leadership decisions made by the populace.

This is not entirely true. Democracy is a broad term and different democracies work very differently.

In Germany for example political parties are quite powerful, politicians have to be elected by party members, there are no primaries like in the US. Being a politician in parliament or becoming chancellor in Germany requires a political career that takes quite some time.

This excludes people in ways that are both good and bad. On the good side someone like Trump would have no chance at all because he lacks the political track record and relationships. On the bad side politicians in Germany are not a very diverse group. There is a strong bias towards older people, people who've been in politics for their entire life and people in professions that allow for spending time as a politician in parliament for a couple of years and continuing in their regular job afterwards. In practice this means teachers and lawyers, at least in Germany.

DasIch··on Amazon begins temperature checks and will provide surgical masks at warehouses
Mask do not protect the person wearing the mask (unless you talk about the kind of masks used as PPE for medical professionals).

They do protect other people from the person wearing the mask spreading the virus. The consequence is that for masks to work at scale a large number of people need to wear them.

DasIch··on “C is how the computer works” is a dangerous mindset for C programmers
No, it isn't but I don't see anyone making the claim that Rust is a faithful model of the hardware.

That's quite common take on C though, which is not that wrong, if you go back in history far enough. It's quite wrong today though.

DasIch··on Developer salary spreadsheet compiled from tweets
In Germany childcare costs vary a lot and depend on your income, so it's hard to say what somebody would pay for that.

However you'd definitely pay less than 400/month. If you're paying more than 200/month, you got quite unlucky. In some places, such as Berlin, childcare is free.

DasIch··on Developer salary spreadsheet compiled from tweets
50k per year pre tax in Germany, would end up being 30k after taxes. If you're married, you'd get substantial tax benefits and there are also benefits, if you have children.
DasIch··on Volkswagen exec admits full self-driving cars 'may never happen'
It seems to me that the problems that trains and rail infrastructure is facing are: bureaucracy, politics and an increasing inability to execute on infrastructure projects on time/budget by governments.

To the extent cost is a a factor, it's unnecessarily high due to these aforementioned issues[1]. So I don't think money invested into self-driving cars hurts trains and rail infrastructure.

[1]: https://www.vox.com/policy-and-politics/2017/1/1/14112776/ne...

DasIch··on Volkswagen exec admits full self-driving cars 'may never happen'
Self driving trains already exist: https://en.wikipedia.org/wiki/Automatic_train_operation
← PreviousPage 4 of 34Next →