HNHacker News
TopNewBestAskShowJobs

swisniewski

102 karma · joined January 2, 2023

submissionscomments
swisniewski··on Founder Mode
Ben Horowitz talks about this in “The Hard Thing about Hard Things”. He uses the metaphor of an Offensive Lineman and the concept of “giving ground begrudgingly”.

His core concept is that one should slowly delegate responsibility. Not delegating anything is like the Offensive Lineman standing still. In that case the defense just runs around around you.

Instead he suggests that you move back slowly, offering resistance the way an O-Line does.

This seems very complimentary to what Paul mentioned.

swisniewski··on C# almost has implicit interfaces
Extension methods complicate implicit interfaces considerably.

This is likely one of the reason they don’t exist in C#.

It’s also one of the reasons GO doesn’t have extension methods.

https://github.com/golang/go/issues/37742#issuecomment-59616...

You either have to exclude extension methods from implicit interface definitions (which can feel very unnatural to consumers) or you get weird behavior with dynamic casts that is very confusing and breaks everything.

For that reason, its unlikely you would see this in C#.

VB tried to do this (implement both extension methods and dynamic interfaces), and ended up cutting dynamic interfaces because the two features don’t play well together.

They are an awesome feature in GO, but it’s hard to add them to C# without a whole lot of very messy design compromises that make it kind of wonky.

If you eliminate extension methods it’s much easier to add dynamic interfaces.

swisniewski··on Replacing a SQL analyst with 26 recursive GPT prompts
Kind of off topic, but you should always have line mangers on their teams on-call rotation.
swisniewski··on Wizards of the Coast Trying to Retroactively Cancel OGL 1.0a
I am not a Lawyer…And not a dnd gamer…

But this does not “cancel” existing licenses. Instead, what it does is create a hard fork, between 1.1 content and 1.0 content.

Basically… any content released under the 1.1 license is not usable under the 1.0 license.

The statement, in the new license, that the old license is “no longer an authorized license agreement” does not apply to existing licenses anyone may have to 1.0 content. Absent your consent to the 1.1 license, its terms don’t apply to you.

Instead, that language is meant to defeat the forward compatibility clauses in the 1.0 license. Absent that language you could freely use 1.1 content under the 1.0 terms because of the forward compatibility language in 1.0.

This means you can continue to “Use” (as defined in the 1.0 license) any of the content you were using before.

However, it also means if you “Use” any 1.1 licensed content, then either you are in violation of the 1.0 license (and then thus have no rights) or you are subject to the 1.1 license and its terms.

So, this does create some hazard, in that any one using 1.0 content under a 1.0 license needs to ensure they don’t in the future use any 1.1 content.

But if you stick to 1.0 licensed content you are ok.

This can still cause problems. If you are in the business of selling DnD compatible game content, you now suddenly have to make a choice between loosing forward compatibility and having control over your revenue.

It still sucks.

But any content you could sell yesterday you can still sell tomorrow.

The contract has explicit, custom, definitions for several basic elements of contract law. It explicitly declares what consideration exists and what offer and acceptance look like.

The party defining those terms is Wotc. They are bound by something called “promissory estoppel” from representing that those things weren’t present in the original 1.0 license. They cannot revoke your 1.0 license unless you breach the agreement.

They can set a trap for you, that will capture 25% of your revenue, if you end up incorporating 1.1 content into your previously 1.0 derived works.

So, be careful. But they can’t take away what you have now.

It can still also hurt various businesses to loose forward compatibility rights… but anything derived from purely 1.0 content is still 1.0 licensed and they can’t take that away unless you violate the 1.0 license terms somehow.

swisniewski··on Code Smell of the Day: Type Keys (2021)
The author has probably never written a compiler before.

Inside any compiler, you are going to have “type keys” and switch statements all over the place.

Even if you are writing a compiler in languages with builtin “tagged unions” and “pattern matching” you are still using “type keys” and switch statements.

Trying to write a compiler without a switch statement would lead to a giant unreadable mess.

← PreviousPage 2 of 2