HN user

fn1

3,272 karma
Posts12
Comments143
View on HN

All people in a company need to do deep work to make it count.

Because if you are able to concentrate and find a solution for a problem, you also need other people to concentrate and understand your solution.

Using GitUp on the Mac as a client. It allows you to select a commit and press Options-S to reset your branch to this commit, it allows you to squash etc.

And best of all it keeps a backup of your entire repository so you can undo whatever git command you just did.

Go Style 4 years ago

but in practice there’s cases where it’s treated more like an unchecked exception in Java, i.e., “I can’t recover from this so _I’m_ going to give up but _you_ can keep going.”

Java has a supertype for unrecoverable problems like out-of-memory-errors. It's called "Error", a subtype from Throwable. Exceptions are also Throwables, but they are NOT errors.

How are you going to convince people that your project is "disruptive" if you aren't willing to embrace a younger, edgier tech stack?

Easy: Use Kotlin, which is extremely hip and compiles to the JVM. You can use the JVM then, and mix in java-support should you need it.

Java is one of the few ecosystems that provides a software distribution ecosystem that doesn't allow distribution of sources alongside binaries.

This is wrong, source distribution is a standard in maven.

Gradle literally cannot be built from source[1] because it relies on a binary cache of dependencies held by Gradle to build Gradle.

This is wrong as well as pointed out in the thread.

As a consequence, the Java ecosystem has become a security and maintenance nightmare that other ecosystems simply aren't. As bad as Nodejs is, it doesn't do this.

This is almost hilarious. I'm working at a company at the moment guiding security updates for java and node.js backends. The java backends are not an issue. The node.js backends are almost impossible to upgrade, the javascript-frontends are even closer to impossibility.

1. Because they confuse Java with the standard hibernate/springboot backends that are used everywhere in the industry. Hibernate/springboot is the reason why there are so many monoliths out there that are almost impossible to refactor.

It's not Javas fault, it's Springs fault.

2. They believe Java is slow, but fail to realize that the JVM has actually one of the most optimized runtimes under the sun and can be fast than (unoptimized) C in many cases.

Long story short: Because they have no clue about Java and follow advice without researching it first.

Off-topic, but how the Facebook, Messenger or Instagram-app need a million lines of code is absolutely beyond me.

I had a few encounters with facebook's opensource code (mostly around react-native) and it is generally subpar in my opinion.

Weekends are just chaos...

It is normal that kids take up all your time, but "just chaos" doesn't sound right.

Without knowing your situation, maybe this helps: As you probably know first there was authoritarian parenting (rule the kids), then permissive parenting (let them do whatever they want), both of which create problems for the children.

The parenting-style agreed upon today by psychologists is "authoritative parenting", which basically means telling the kids what you want them to do, but giving them a lenient timeframe and freedom to chose how and when they do it. It raises their self-esteem and encourages them to work together with you.

https://www.healthline.com/health/parenting/types-of-parenti...

⌘ Key is often equivalent to ctrl on windows. Ctrl-C,-V,-X copy'n'paste actions are done with that key on Mac.

I think it's much better placed since you can reach it with your thumb and don't have to rotate your wrist when using it as opposed to ctrl, so when typing macs you might have less strain on your hands.

Having a 6 year old refuse to sleep without a parent in bed because of "attachment parenting" tends to make one wonder if there's not some merit to having gone through some pain in the early stages.

The work here is not to let the child cry in it's early days, but to put it in it's bed, come when it cries, calm it down, go back to bed, come again when it cries etc. Repeat until child sleeps.

The right response is to ALWAYS react to crying by calming the child, and if the crying was not warranted or necessary, explain that to the child AFTER you have calmed it down.

Children are smart enough to understand sentences like "This is really not something to get upset about", AFTER they have calmed down, and explained in a loving matter.

Bit of advice regarding leaving your toddler... to work or wherever.

It absolutely pays to tell them how sorry you are that you have to leave and how you will miss them, but that you are going to earn some money and think of them.

It also really helps to accumulate tiny, but stimulating, presents (1-10$ value) and giving it to them from time to time for waiting for you. Toy cars, dice, soap bubbles, a piece of chocolate, etc.

Interesting, after years of software-development I arrived at almost the same pattern:

* [feature] -> a new feature, can be incomplete, but should be a contained unit of work that's usable to the enduser in some way.

* [code] -> everything that improves the code, could be refactoring, library-updates or preparations for a feature

* [bugfix] -> minimal commit only for fixing a bug, should (almost) always include a test to reproduce the bug.

Sometimes I also use:

* [build] -> for build-improvements

* [performance] -> for performance-improvements

Solving problems iteratively in the same way progressive jpegs render: Start with essential parts, quickly assemble them to a usable draft and iterate on the entire thing by improving quality where it needs to be improved.

This is applies to programming as well as to writing, drawing, making music etc.

Applying this to writing emails can definitely improve your business communication 10-fold:

* write down the important parts you want to convey, even in incomplete sentences

* improve the ideas into sentences

* rearrange the paragraphs/parts/sentences into proper order (written language rarely comes out in the correct order).

* cut unnecessary talk

* iterate on the above 3-8 times, depending on the importance of the email.

Why the concept "data lake" emerged in the first place:

Thinking about what to store (and what to log) is not trivial and takes careful consideration. Plus, there's always the argument: "But what if we need something that we forgot to store or log?".

Answering that takes time and risk-acceptance that most developers in most projects don't get.

"Datalake" was just a pseudo-solution to gain peace-of-mind: We throw everything into a big bucket and figure it out later.