HN user

HdS84

218 karma
Posts0
Comments139
View on HN
No posts found.
An incoherent Rust 4 months ago

Personally, I am comfortable with Pythons "linter warning and we are all adults here" - it works well and I have never seen that somebody cried "I overwrote this private method and after an upgrade it did not work!". .Net allows it via reflection and considering that .Net Frameworks could run untrusted code it was okay that it was forbidden out of the box (since reflection was forbidden for untrusted code). But in the current world, where untrusted code does not really exist anymore? It's just legacy cruft.

An incoherent Rust 4 months ago

There are always corner cases where you might need to do something differently. I had three memorable cases in my career: 1. Python 2.6x had a a stdlib bug where windows event logging did crash the process when the user had some rights set differently. Fix submitted but for the meantime we simply overwrote the private function and could ship. 2. Also python: scikit-learn had a primitive "print everything" strategy, but we need to get it into a logging framework. We overwrote their print wrapper and could ship. 3. In C#, a third party lib insisted on dumping a result to a file. We used reflection to get that as a stream.

All three are not ideal - but I think having escape hatches is important. I also think private/public is overrated. Having it as a signal is ok. Forbidding access to privates is too strong.

We introduced MDM for our Mac boxes early this year. Over half(!) had outdated mac versions and missed multiple major updates. Before that - it was always really obvious that you needed to run the newest version ASAP (asap=All dev tools run on the newest version, which was not a given, so a few weeks delay was ok). We have lots of linux boxes and I suspect their patch state is even worse - but how to check that? There are a dozen distros and a few self build systems...

History shows that to simply not the case. Individuals are bringing down democracies all the time. Especially presidential democracies are super vulnerable to this because the president has outsized power compared to the other branches of the government.

I studied political sciences twenty years ago - even then it was established consensus that presidential democracies are vulnerable to authoritarian takeover. The position has too much power, is easily abused and there are not enough checks on that position. The US escaped that problem for a long time due to strong cultural norms - but you abolished them (i.e. gatekeeping the presidential nominees and replacing that with a televised drama) and working checks (but again, now party in congress and president march in lockstep). FPTP and gerrymandering just exacerbate that problem and entrench a very unhealthy "the winner takes it all without need for compromise" culture.

You need electoral reform post haste - but I do not seed even a start to that discussion, so I think you are hosed. Might not be Dictator Trump, but maybe Vance or some other guy who succeeds in this game.

And all who cry "if the democrats win everything will be ok again!!!!" - not it won't. The democrats are too slow to recognize the problem and even if they eventually do, there are no majorities to change the system. And finally: Democracy needs at least two parties - democrats cannot be expected to keep branches of the government forever. You need a sane and democratic second party. Republicans ain't it - but the current system gives them success, so why change?!

As a simple example : once upon a time a We needed to generate a sort of heat map. Doing it in pure python takes a few seconds at the desired size (few thousand cells where each cell needs a small formula). Dropping to numpy braucht that downs to hundreds of milliseconds. Pushing it to pure c got us to tens of milliseconds.

I don't think Inheritance is always bad - sometimes it's a useful tool. But it was definitely overused and composition, interfaces work much better for most problems.

Inheritance really shines when you want to encapsulate behaviour behind a common interface and also provide a standard implementation. I.e: I once wrote a RN app which talked to ~10 vacuum robots. All of these robots behaved mostly the same, but each was different in a unique way. E.g. 9 robots returned to station when the command "STOP" was send, one would just stop in place. Or some robots would rotate 90 degrees when a "LEFT" command was send, others only 30 degrees. We wrote a base class which exposed all needed commands and each robot had an inherited class which overwrote the parts which needed adjustment (e.g. sending left three times so it's also 90 degrees or send "MOVE TO STATION" instead of "STOP").

Overall, I think centralized logging and metrics are super valuable. But stacks are all missing the mark. For example, every damn log message has hundreds of fields,. Most of which never change. Why not push this information once, on service startup an not with every log message? OK, obviously the current system provides huge bills to the benefit of the company or's offering these services.

Exactly. In theory, the original windows 10 model is the one most users want: a perpetually up to date os which runs also up to date software. Yes, of there might be reasons the pin something to an older version, but it this pc is on a network, security alone tells you to update ASAP. Don't get me wrong, a working package manager is a very good addition to this model. But currently, most of the time setting up a ltm Linux system I spent on updating ancient git/docker whatever versions.

The True Size Of 1 year ago

I only visited Realschüler and switched to gymnasium in 11. Tbh I don't remember much of my geography lessons, was not my primary interest in school

The True Size Of 1 year ago

German is Mercator only. Learned about different projection on the internet years after school

The True Size Of 1 year ago

I wish schools would stop using it so much. Mercator is useful, yes. But having good size comparisons is much more important for most everyday tasks.

I am forced to use a custom kv store for my current t project. That pos has a custom dsl, which can only be imported through a swing ui, by clicking five buttons. Also, the ui is for 1024 screens, they are tiny in my 4k monitor

I've studied political science in Germany. Unfortunately, most German political science people confused opaque writing with wisdom - basically hiding invalid theory behind an obtuse language. Nobody wanted to say out loud that they don't understand the language, so it helped to fortify their shit theories.

You caveman! Everybody knew that watching config though a 30*80 chars ssh display in black/white should be enough for everybody. Who needs help displays, validation or even sliders?!

Wasn't even legal but concerned the scope of the offer. Nuance, but nuance can be important. Like "rework the service and add minor festures" VS "slightly rework and do major features" - this affected the direction of our offer a lot.

One of our managers uses Ai to summarize everything. Too bad it missed important caveats for an offer. Well, we burned an all nighters to correct the offer, but he did not read twenty pages but one...

Yes, thar is the same feelingg I have. Giving it some json and describe how a website should look? Super fast results and amazing capabilities. Trying to get it to translate my unit tests from Xunit to Tunit, where the latter is new and does not have a ton of blog posts? Forget about it. The process is purely mechanical and it is easy after RTFM, but it falls flat on its face

I will die on the hill that most of math would benefit from better naming, less short names and longer format. Yes, the crack math guys have no problems with terse symbols. But most people do. Good example is Greek letters for geometry. They are not really taught in school so an easy formula gets 'weird squiggly thing times another squiggly thing....' and that does not help understanding at all

Honestly, the problem is not that there are layoffs, the problem is that the process sucks.

you don't need to fire this person immediately - you can talk to him, wind his operations down and then let him go. I.e. in Germany it's often half a year between announcing a layoff and anything happening (besides other stuff like making sure the layoff applies to the newest people first). Even if you don't want such a long period - talking to him and giving him a few weeks to wind down at your firm and starting to search for a new job seems perfectly reasonable. What happens if he wreaks havoc on your firm out of revenge? Really? Happens practically never. If it happens, sue him.

ofc this process applies to reasonable layoff - if it's for something egregious (breaking the law) you can and should fire him immediately.

You can also do that in Gh. Gizlab does that, too. But I hate it. When you do this, every build becomes cargo culting commands until it works. Ntm every build it's is own special snowflake from hell. I want standardized builds which output everything I need (artifact, warnings, security issues etc) without me feeling like a necromancer. Gh solves this okayish, but extending and debugging is a pain.