RonSijm

joined 1 year ago
[–] RonSijm 2 points 7 months ago (1 children)

Are they though? Aren’t DTO’s supposed to be pure data objects? [...] So what about extensions?

I'm not 100% familiar with Kotlin, but I think extension methods in Kotlin are the same as C#, basically syntactic sugar.

So you'd write an extension method like:

public static class ObjectExtension
{
    public static void DoSomething(this object input) { }
}

this being the keyword making it an extension method - and you can call that function on an object by doing object.DoSomething() - Yes. But underneath it's the same as doing ObjectExtension.DoSomething(object) (A static invocation to your ObjectExtension class and DoSomething method.

So on the surface it looks like you're injecting a new method into your DTO, and your DTO is not a pure data object anymore, but actually you're just creating an helper function that's statically invoked - that looks like you can call it "on the object" but actually you're not.

As for whether it's a good / common practice to create mappers like that in Kotlin, I don't really know. I do it often in C# though.

[–] RonSijm 25 points 7 months ago* (last edited 7 months ago)

Javascript is a fad, we should all move to WASM. 🙃

But no, TypeScript is not a fad. Unless a better "Typescript like" thing comes out - I know how in frontend land people like to make their own substitute framework that does something slightly different than an existing framework - But I don't really see why anyone would want to make a NewTypeScript, and not just expand existing TypeScript

[–] RonSijm 5 points 7 months ago

243650.0054 = 47,304$/ year / instance. How many instances are hosted by AWS? How many are hosted by Google? How many by other Redis aaS?

Formatting it like 47,304$/ year seems like you're saying it's $47k, but it's just $47. How much would it cost any company to self-maintain their Redis instance?

Don’t contribute back in a significant manner

They have multiple people full time employed that are contributing, and how are they "hampering its development"?

If you look at the top contributors: https://github.com/redis/redis/graphs/contributors

  • #4 Binbin works for Tencent Cloud
  • #6 Zhao Zhao works for Alibaba
  • #7 Madelyn Olson works for AWS
  • #9 Wen Hui works for Huawei

Soo actually these cloud providers are some of biggest contributes to the project. They're not just taking Redis and aren't contributing. The opposite actually lol.

Besides, you're acting like Redis is some poor little startup, but they're a company with 991 people (by their linkedin stats). Its like if Oracle would change the MySQL license, and then you side with Oracle "Poor little Oracle, everyone uses MySQL, but no one contributes" - yea no

[–] RonSijm 3 points 7 months ago (2 children)

They were allowed to leech, [...]

Services like AWS and Google Cloud offer 1000s of "free software" (like Redis) as a service - like AWS Elasticache - and if you look at the pricing, cache.t2.micro for example, is $0.017/hour, while just a plain t2.micro vm is $0.0116/hour. So effectively AWS is only "leeching" $0.0054 an hour on the Managed Redis that they're offering.

An AWS managed Redis is just easier, otherwise I'd have to boot my own t2.micro, and install Redis there. I'd still be using official Redis on AWS, because self-hosting is still fine in the new license, it's just more work for me, because the license doesn't allow AWS to do it for me anymore.

and the naive, purist opensource community ([...]) will happily join the ranks of businesses that couldn’t be bothered to donate to Redis

It's funny how people are now siding with Redis. When other companies did something similar (like identityserver4 was FooS, and then they created their new commercial company - and everyone was like "fuck you, you people are sellouts.".

Most of the time when a FooS project goes commercial, people make a free fork and the commercial project slowly dies

[–] RonSijm 17 points 7 months ago (6 children)

Probably, AWS and Google probably have millions of existing customers using Redis. And AWS and Google are not going to be paying for it themselves of course, but just pass the costs on to their customers.

So they can stick to the old official Redis version for a while, before the license change happened, but at some point someone might find a vulnerability, and patch it in the official Redis, and then everyone that's stuck on the old version is fucked - it's a bit of a ticking time-bomb to be stuck on an old version.

So then AWS and Google customers can decide

  • "I want to use the latest version of official Redis, and pay x per month per Redis cache" (if the new license allows that)
  • Or "AWS doesn't support a free Redis anymore, but competitor does, so I'm just gonna migrate my infra to a different cloud"

So if they already switch to an open-license fork they can preemptively mitigate most of those risks

[–] RonSijm 3 points 7 months ago (1 children)

Not really - "Everything is open-source if you know Assembly" - Look at Ghidra for example.

If code isn't obfuscated you can do an analysis what kinda stuff closed source software does. In C# (so if his game is written in Unity) you can even get very close to the original source code (IL code reversed back to C#).

That's why I mentioned anti-virus isn't going to be happy about it. You can easily google examples: examples[1] example[2] example[3] - that obfuscating is a red flag to a lot of anti-virus

[–] RonSijm 4 points 7 months ago (2 children)

Anti viruses won’t care as it won’t be injecting executable code.

How do you know parts of the encrypted stuff isn't executable code? Like is he has secret levels with secret functionalities then part of whats encrypted might get executed, or interpreted and executed or something like that.

If he's going out of his way to hide and encrypt secrets, I wouldn't be surprised if parts of his gameloop are obfuscated as well. And if Anti viruses detect high levels of obfuscation, that just raises flags as probabilistic malware

[–] RonSijm 18 points 7 months ago (18 children)

Basso is at least confident that data miners can’t brute force their way to discovering his encrypted secrets. He’s using industry-standard AES encryption. ”It's pretty secure, unless we get quantum computers or there's some giant vulnerability,” he said.

It's a fun idea, I guess, but I don't know how happy anti-virus kinda services are with having loads of very encrypted and obscured blocks of data.

It's a bit of a "trust me bro" situation where he claims he's just hiding secret levels and stuff - and isn't also secretly side-loading malware or something like that

[–] RonSijm 4 points 7 months ago

I suppose "parsing" is a more generic thing. If you "build a tree" you did some form of "parsing" - yes

However when you do "parsing" like "find all links in an html doc" - you're parsing, but not necessarily building a tree.

[–] RonSijm 50 points 7 months ago (4 children)

"OS support: The latest one” is not that bad of an requirement...

If they complain like "why doesn't this work on Windows Vista, on IE8" - you can just point to the specs and say you only support the latest OS.

So basically you only support the latest Nightly Build of Ubuntu, since that's the current latest OS

[–] RonSijm 1 points 7 months ago (1 children)

I suppose this is a bit of an StackOverflow answer "Opinions needed: Best way to develop NuGet packages" - Answer: "Don't. Do something else instead"

But seriously, why do you need internal NuGet packages? To distribute libraries, I guess, but then as you mention distribution is already going poorly, and local dev and testing is as well.

I switched from putting everything into NuGet to putting everything into Git Submodules - and just Submodule all the libraries that I need in a project, instead of using internal NuGets

[–] RonSijm 1 points 7 months ago

For simple snippets like templates I'm using Obsidian and Obsidian Templater ( - For any programmer I'd consider Obsidian the best note-taking-app by miles.)

For more complicated stuff I used to just build generators in code, but as you mentioned, that's kind of a nightmare to manage. So now I usually use Liquid Templates - and a custom parser I made to process them

view more: ‹ prev next ›