If “build the server and client in the same language” is a hard requirement, I believe your only choice is JavaScript…
You can probably also use Java. And I’ve used dotnet / c# for it. You can build the server in ASP-core, and a desktop client in Avalonia, or a website in Blazor
I’m not completely sure which classes you’re talking about - but it sounds like the Business Process Layer
I would call them “services” but I’m looking for a less overloaded term. Maybe capabilities? Controllers?
“Controllers” (in dotnet at least) is usually reserved for the class that initially intakes the http request after middleware (auth, modelbinding etc)
It’s probably easier with a concrete example, so lets say the action is “Create User”
It depends on the rest of your architecture, but I usually start with a UserController
- that takes all user related requests.
To make sure the Controller doesn’t get super big with logic, it sends it though mediatr to a CreateUserCommandHandler
But it’s a big vague which parts you’re asking about…
“there is a class of … classes/modules that does the needful.”.
Everything else you’ve described
“API resources, queue workers, repositories, clients” and serializers
Is “cross-cutting”, “Data Access Layer”, and “Service Agent Layer” maybe a bit “Anti-corruption Layer” - but there’s a lot of other things in between that “do the needful”
It would be easy for Google to remove the guardrails from WebAssembly in some sort of public testing version of Chromium
Google is not the authority on WASM, W3C is. Google diverging from the standards and removing any guardrails would result in “This page only works in Chrome” kinda bullshit we’ve seen before
It’s not a big red flag, but it indicates that the product is not fully open source. You can get the full community edition from Github, but for the Self-hosted Enterprise version you have to contact sales.
So all the Enterprise features are most likely closed source, and when you buy/license it, you’ll just get the compiled version. And since their Cloud hosting model has a “Per 1,000 sessions/mo” model, their Enterprise self hosted model might have that as well. So it’ll have some kinda DRM/License managing, and maybe a “call home” to check your license or usage every once in a while
He’s already pointing out the problems himself:
The difference is that Spotify is a for-profit corporation. And they have to distribute profits to their stockholders before they pay the musicians. And as a result, the musicians complain that they’re not getting very much at all.
Yea, so at Spotify the profits are distributed “equally” - meaning Taylor Swift with 1 billion listens per month gets 99.9999% of the profits, [[Obscure metal band]] with 100 listens gets $0.001. However, if I only listened to [[Obscure metal band]] and nothing else, shouldn’t my entire $5.99/month go to [[Obscure metal band]]? And not be pooled with stuff I didn’t listen to?
How would this work with a “Post-Open software administrative organization”? Ubuntu has 1 billion installs, my [[Obscure open source library]] is used by a couple of companies, and it’s the only “Post-Open software” that those companies use - Do I get that 1 percent of their revenue? Or does administrative organization siphon it away, keep 0.1%, and send the other 0.9% to the top 10 “Post-Open Projects”…?
Companies would have to publish which “Post-Open software” software they’re using, and to what extend. For example, if Ubuntu would be Post-Open-software, it uses loads of inner projects and libraries, which again use more and more libraries, some might being Post-Open software. You’d have to create a whole financial dependency tree per company to determine how to distribute their revenue fairly
I manually redraw my service architecture because I can create higher quality documentation than when trying to auto-generate it.
But you can get a baseline depending on which Cloud you use. For example, in AWS you can use workload discovery - that generates a system overview.
Bonus (optional) question: Is there a way to handle schema updates? For example generate code from the documentation that triggers a CI build in affected repos to ensure it still works with the updates.
Yes, for example, if your build server exposes the API with an OpenAPI scheme, you can use the build server to generate a client library like a nuget or npn.
Then in the API consumer you can add a build step that checks if there are new version of the client library. Or setup dependabot that creates PRs to update those dependencies
It’s not really a rug-pull in the usual sense though - of “all of a sudden you cannot use this product anymore”
You can still use it up to the commit where they changed the license. And then people just make a fork from there and the community moves away from the initial project to the fork
The month before Dwarf Fortress was released on Steam (and Itch.io), the brothers Zach and Tarn Adams made $15,635 in revenue, mostly from donations for their 16-year freeware project. The month after the game’s commercial debut, they made $7,230,123
So about $16k on a 16-year project = $1k a year. He seems to be doing well after the paid release. So not really a success of “free software”
it could be through a stylesheet, an alternative frontend, even just a pointer on how you could style a website into a different style. thanks!
You could download the Lemmy Frontend and rewire the API to point to the reddit API
If you just want to modify a bunch of things client side, you could download the browser extension Stylish
Firstly, I don’t think Docker is intended to be used as a security layer. I could be wrong, but I think it’s relatively easy to escape the sandbox. Although that might be different nowadays.
I think it does serve as a security layer. Like if you have vulnerable software running in a docker container, and people use that to gain “root access” - initially they’re just inside the docker. Of course you need us to proper docker setup, like not just mount your entire file system into your dockers “because it’s easier” and that kinda stuff.
There are a bunch of ways for Docker Breakout / Privilege Escalation - but still, it adds an extra step instead of having access to the entire system immediately. And again, it’s just a matter of hardening your docker, and closing these open holes.
How about figure out what you can and can’t access first. Like can you access the rest of the internet openly?
Are all sites allowed, are some things blacklisted, or are sites whitelisted? If things are whitelisted on the network, it might be pretty difficult to find a hole.
Anyways, you mentioned your phone - If you have unlimited data, I’d suggest you just set up your phone for tethering, and create a private wifi from your laptop to your phone using mobile data, that should bypass all network restrictions.
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
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
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
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
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
So if they already switch to an open-license fork they can preemptively mitigate most of those risks
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.
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
I saw this video yesterday: https://www.youtube.com/watch?v=jqjtNDtbDNI
The guy describes what’s going on pretty good
There’s a project nix-tree that lets you see the dependency trees of Nixos.
Try that, (or post the output here). To see if firefox is referenced somewhere in the packages you’re using
Hmm, well the first round(s) are doable for beginners. If you want to get into programming, these kinda games are a good way to start, since you’re getting visual feedback of what your bot is actually doing.
And you can participate in loads of languages, so you can pick anything that you’re somewhat familiar with.
However, once you’re getting into higher rounds, ranks, and leagues, you’ll be playing against other peoples’ bots. So obviously if you have 0 experience it’ll be way harder to beat people with loads of experience, that understand which algorithms are suitable etc.
But I’d say go ahead and try it out. Its free. Maybe it turns out to be too difficult, maybe you’ll manage.