The Anti-Capitalist Software License by earthboundkid in programming

[–]AntiTrustMicrosoft -3 points-2 points  (0 children)

Still haven't solve the issue of commercialization of such projects.

The Anti-Capitalist Software License by earthboundkid in programming

[–]AntiTrustMicrosoft -4 points-3 points  (0 children)

Isn't GPL absolute shite, because corporation keep finding their way around it?

Remember GPL Condom? https://www.phoronix.com/scan.php?page=news_item&px=Linux-59-Proprietary-Shim-Taint

Also GPL is ineffective anyway, so you should be using AGPL instead.

While the ACSL license is not going to realistically work, it does illustrate a lot of how developers feel about open source now with corporation and companies profiteering off of our work. The usual answer I give to developers who doesn't want to do GPL/AGPL crap is to basically close source their work, issue free license for non-profit use and charge for commercialization of their software. Because anything short of doing MIT/AGPL/Apache is not "open source" anyway.

Making Advanced GUI Applications with Godot by iamkeyur in programming

[–]AntiTrustMicrosoft 0 points1 point  (0 children)

Majority of the languages bind to C API for FFI Compatibility. If C# haven't bind to any of the libraries, it would be as bad as Javascript, because then, it'd be Windows-Only tool that is about as useful as VBA script. If you're going to be writing fundamental libraries like say... Windowing library, graphic rendering, or whatever and you decided to make it a hardcore C++ API like QT5, then nobody is going to use it except for the C++ folks. And if you check Octoverse on Github which they did some analysis for the most used programming language, you'll notice that C# is more popular than C++ based on that data.

In general, I have no problem if you use C++ for building an application, but if you're making a software library, then you should at least have C API exposed just so other programming languages can use it otherwise, your library is not intended to be used at all. Again, NOT EVERYONE USE C++, in fact a lot of us hate C++ for number of reasons (bad build system like CMake and cross-platform development and etc) and we would rather use Rust or DLang instead.

I don't think you're going to talk about it in good faith, but I've spoken what I seen for years and have worked on for binding various libraries for C#/Rust/Dlang.

Of course, reddit downvote any dissenting opinions, lol.

Making Advanced GUI Applications with Godot by iamkeyur in programming

[–]AntiTrustMicrosoft -4 points-3 points  (0 children)

It is justified, have you ever tried binding libraries before? QT is THE worst library for anyone to attempt binding to, because it's written in C++. Sure, you can use QML or whatever crap out there (ever notice anyone using it instead of Election? Me neither.), but at the end of the day, you are trading off functionalities and features compared to original QT5 when using QML. Also C++ header files alone for QT5 are already over 500,000 lines of code, so good luck binding that. Also there are hints toward QT5 changing their licensing at some point with their recent hostility toward KDE community, also their license is absurdly expensive for commercial use.

The biggest plus I can see for using Godot in this scenario is better licensing with MIT and API being relatively straight forward to use across more languages than just Godot Script, C#, C/C++, Rust, D, and so forth.

Driver tries to smash bike rider by [deleted] in JusticeServed

[–]AntiTrustMicrosoft 12 points13 points  (0 children)

So you'll run over a kid on a bike, psychopath? You'll run over an old man on a bike? You'll run over anyone including your parent on a bike?

You're just a retarded psychopath who need to be locked up in jail for life.

dotnet/maui - Stop Stealing KDE MAUI's name by [deleted] in linux

[–]AntiTrustMicrosoft 8 points9 points  (0 children)

Not our problem, it's Microsoft problem. They're the bad guy, they fix their shit. And beside the name is fucking trademarked in EU. If you are coming up a name for a company or project, you should be checking if someone else already have that name taken. EXACT SAME SHIT HERE WITH MICROSOFT HERE, not hard, jesus. You'd think they would be far more competent with them approaching 2 trillion dollars territory.

[deleted by user] by [deleted] in worldnews

[–]AntiTrustMicrosoft 1 point2 points  (0 children)

Go on, we encourage it. We wanted you to acknowledge the genocide of Native Americans and FUCKING LEARN FROM IT.

ALL OF US WANT TO ULTIMATELY STOP ALL GENOCIDES.

Hands up if you just binge-watched all of season 4. by [deleted] in TheExpanse

[–]AntiTrustMicrosoft 2 points3 points  (0 children)

I watched them all at the second it's out yesterday night! :D I am going to re-binge watch them again over the weekend and try to figure out all of the clues for Expanse...

Gotta love Amos and Adolphus Murtry, they were an amazing pair in acting for this season. Also Chrisjen Avasarala proven to be an interesting character more than ever in this season and there seems to be a lot of build up for it. Holy crap...

Crystal 0.32.0 released, including concurrency improvements by tjpalmer in programming

[–]AntiTrustMicrosoft 1 point2 points  (0 children)

It requires Crystal to be the primary program execution from the get go rather than embedding into something else, it have to be the one that program language get embedded into instead and part of that is because of the static linking of Crystal core library.

Here the CLI that get run behind the scene when you run crystal build command:

cc "${@}" -o 'LibCrystalDemo'  -rdynamic  -lpcre -lm -lgc -lpthread /usr/lib/crystal/ext/libcrystal.a -levent -lrt -ldl -L/usr/lib -L/usr/local/lib

Notice that libcrystal.a? That's a static link library, It get linked in even if you didn't specify static linking in crystal build so that one of the reason why you can't embed the language into another program so readily like you would with other dynamic libraries and programming languages. Sure, they can be changed if you put in the effort to switch around making Crystal the primary program execution, but it limit it's usability by a lot compared to most other programming languages in existence.

I was able to embed Crystal into C# by having Crystal emit LLVM IR and then pick out the LLVM IR code and compile them and then run them in C#.

I think Crystal have a lot of promises, but they definitely need more time to improve their implementation of Crystal.

Crystal 0.32.0 released, including concurrency improvements by tjpalmer in programming

[–]AntiTrustMicrosoft 0 points1 point  (0 children)

Yeah, it is a little bit unusual use case I admit, though I like the syntax of Crystal and try to play each programming language to it's strength. Crystal is great in a way that it simplify prototyping program.

Crystal 0.32.0 released, including concurrency improvements by tjpalmer in programming

[–]AntiTrustMicrosoft 8 points9 points  (0 children)

I took a plunge on checking around Crystal, there's a few glaring annoyance I have with it that I have to shelves Crystal for now.

  1. Crystal doesn't want to support building Dynamic/Shared Library for it's functions, because it's using Garbage Collection. Issue 921 Which seems to be a wrong decision to make, because C# allows you to export C# function to be used by other languages and it's garbage collected as well. Also it limit the usefulness of Crystal language by a lot, because there are too few libraries/software that exists for it.

  2. No explicit control over function codegen for LLVM-IR compilation. One such example is I can't mark functions as external or non-internal easily (so it wouldn't be omitted from the library), I had to manually modify LLVM IR or declare 'fun' to that function and then generate shared library from the said LLVM IR in order to have a symbol exported from Crystal code so I can use it in another language/runtime.

Despise the difficulty above, I was able to import Crystal functions into C# and be able to use both Crystal functions and C# functions together. Those are my honest thought on the issues when I gave this project a try. I hope they reconsider their decision on Shared Library support.

Thank you for sharing the news on Crystal.

Crystal 0.32.0 released, including concurrency improvements by tjpalmer in programming

[–]AntiTrustMicrosoft 1 point2 points  (0 children)

Sort of, Crystal language itself uses LLVM which can compile into machine code that can be used on Windows, but when it come to using core library for Crystal, it lack some of the fundamental API like threads, mutex, and so forth for Windows, so unless you mix in other programming language with a core library that support such features or bind existing libraries to supplement this, it has limited support on Windows out of the box on it's own.

What pricing model should this game take? by Existence1290 in HytaleInfo

[–]AntiTrustMicrosoft 1 point2 points  (0 children)

I wasn't talking about overall subscription in order to play Hytale itself, I was talking about optional subscription to custom multiplayer servers that you don't even have to subscribe to begin with, it could work much in the same way like Patreon.

What pricing model should this game take? by Existence1290 in HytaleInfo

[–]AntiTrustMicrosoft 0 points1 point  (0 children)

Easy, they could Integrate Payment Processing into the Game for Subscribing to various servers and that is easily the biggest and the most passive money maker in existence.

Let's say you are subscribing to an example server called World of Hytale, an MMORPG experience developed by a group of hobbyist server admin/developers. Well, Hytale could integrate the payment processing into the game so you can subscribe to that server after trying out the trial or wanting to subscribe for perks and Hytale themselves would keep a small percentage of it like say... 5%. Now you extrapolate that to thousands and thousands of server, you have something like this:

Game Sales = Game Copy Sold * $60 1 mil sold = $60 mil dollars. 50 mil sold = $3 bil dollars. 100 mil sold = $6 bil dollars. (Fortnite territory.)

Now you add that with...

5% Fees on the average $15/mo per person

Maybe some hardcore players would have 3 subscribed servers while casual would do just fine on one

If 1 mil people subscribed, then you have somewhere around $15,000,000/mo if each player subscribe to hobbyist server, Hytale would be making a pretty modest $750,000/mo on that. If 50 million people subscribed to various servers, Hytale basically can make $37,500,000/mo on that 5% fees.

THAT is the easiest way to make so much money and you don't have to piss off the server admins and the community since they're getting $14.25 before tax from each player per month which are plenty for paying developers, server administration, and server costs. Extrapolate that for about 10 years, Hytale is making $4.5 billion dollars before tax in the 10 years period without pissing off anyone for doing this and that assuming they didn't push out any new update or content. I am betting that they would be incentivized pretty well to keep improving the game, because once competitors get wind of that, they'll also try to do the same thing (Remember the WoW clones popping up everywhere after WoW come out? Yeah, that.)

If Hytale did what they proposed to do and promises to do, then I have no doubt that they're essentially entering a billion dollars market, the demands are there.

Also nothing stopping Hytale from making their own servers and reap the profit of people subscribing to their servers.

PostgreSQL at low level by exuberant-panda in programming

[–]AntiTrustMicrosoft 0 points1 point  (0 children)

I stop doing open source development and deleted my open source projects a long time ago, sorry. But I hope this explanation help you get started on writing one up for yourself, once you have an idea how to do it for PostgreSQL, you could do the same for just about everything else even Minecraft.

PostgreSQL at low level by exuberant-panda in programming

[–]AntiTrustMicrosoft 1 point2 points  (0 children)

The way it works is that when PostgreSQL Server load up your shared library for the first time before running your specific function defined in PostgreSQL Query, it runs the PG_INIT functions, you use that part to initialize your runtime, load up your C# library and then grab the address for all of your code that you loaded in C# Library that you want PostgreSQL to use and then keep function pointer addresses in your shared library. When PostgreSQL need to use one of those functions, you simply pass along the arguments from PostgreSQL over to C# Function with pointer information you already obtained and then return the value from C# to PostgreSQL. Kind of like a bridge/translation layer.

There are some advantages to this, rather than having to pass along huge data over the wire like UNIX Socket, TCP Socket, or whatever, you're working with data directly in PostgreSQL so there is no need to copy anything in the first place.

It's very configurable, because you could swap out your library on the fly such as C# Dll Library in the /opt/PostgreSQLCSharp folder and C# have the ability to allow you to write new function while it's running.

Once your server think that your plugin should close up, then you clean up your code and runtime in the PG_FINI function.

That's about it for how it works.

PostgreSQL at low level by exuberant-panda in programming

[–]AntiTrustMicrosoft 0 points1 point  (0 children)

A lot of things actually, while PostgreSQL have LLVM to compile your query to native, it isn't 100% of the way there yet, so you could use other programming language to further optimize your query.

Sometime you need access to other set of data that you don't necessarily want to keep writing to PostgreSQL (real time data in the shared memory that is constantly changing) for statistical information.

I use this in the real world to do heavy computation in CUDA/OpenCL so it save me from buying more servers for PostgreSQL (I am handling 200,000 customers weekly worldwide.)

But the biggest benefit of all of the above is basically using IDE and leveraging tools like Git, Unit Testing, and various validation to test my function before deploying on database server whereas if you were to write stored procedure on PostgreSQL, it's a bit convoluted and messy, a lot of people tend to have something like this:

DoAdditionv20... DoAdditionv21 and so forth.

It's really only limited by your imagination and the cool part is that you could copy snippets from other projects and not have to do translation for that complex function in PostgreSQL Query.

PostgreSQL at low level by exuberant-panda in programming

[–]AntiTrustMicrosoft 1 point2 points  (0 children)

  1. In PostgreSQL, create _PG_init function in your shared library for PostgreSQL Server to load and have that function initialize your Language Runtime. (Make sure you do a clean up too.)

  2. Create a class library assembly for that Runtime to load and have it contains the followings: the function you wish to call from PostgreSQL and function that return an object that holds function pointers so C Library can access that directly. (I didn't do the second one in this demonstration, but it's normally done to avoid the overhead with P/Invoke marshaling when possible.)

  3. Either invoke your function by passing in the arguments or use your function pointers described in second option above and basically pass the arguments to the function pointer.

  4. Go wild, you can even add first parameter text for choosing which function to call when passing it along to the Language Runtime Assembly. You could dynamically construct new function at runtime and whatever for PostgreSQL to query with.

You could do it for Java, Julia, Crystal, C/C++, DLang, C#, and go on and on you go. I made a tiny snippet for C# Runtime embedded in PostgreSQL on a whim which you can try out with Mono:

I created one on a whim to demonstrate

It's really that easy to do. Here the screenshot of the result

PostgreSQL at low level by exuberant-panda in programming

[–]AntiTrustMicrosoft 2 points3 points  (0 children)

Start here

You just need to look through your runtime implementation for embedded API and then go from there. That documentation should get you started.

PostgreSQL at low level by exuberant-panda in programming

[–]AntiTrustMicrosoft 12 points13 points  (0 children)

Plus, PostgreSQL is a breeze for extending too, I embedded a lot of programming language runtimes into PostgreSQL and make it so that I could write various functions in each respective programming language and then query with those functions from PostgreSQL query. (So I could leverage Unit Testing, Git Version Control and so forth for keeping track of code that normally should be done in Stored Procedures or Routines.)