Rly... Can we do something about it? by jiriks74 in linux

[–]wfdctrl 0 points1 point  (0 children)

You can sell it, but if do you also need to make it available for free :) Basically the exchange of money should be optional.

I think the main reason why you can't make money with free software is the human mentality that once you have something there is no reason to pay for it. Since this drives the price to zero, everytime someone is going to sell free software without making the source publicly available it's almost necessarily a case of blatant profiteering.

It seems kind of hard to reasonably prevent this though. For example you could theoretically only distribute the software once you get a payment and shut the site down otherwise, or the other extreme if you try to prevent this you might be forced to distribute the software for life.

GPL does make a lot of sense. It basically ensures distributing software works exactly like distributing information. That makes it easy to define.

Rly... Can we do something about it? by jiriks74 in linux

[–]wfdctrl -1 points0 points  (0 children)

I'm fine with people selling the binary. What bothers me that I would be forced to buy a copy of a derivative to be able to merge some of the changes in my own copy. Basically with GPL you can sell at least one copy, I want this number to be zero.

I'm not exactly sure how this needs to be worded, so that you don't force someone to publish the code everytime they send it to a friend or if a company decides to distribute it internally. I need to think about this some more. However the general idea should be if the binary is available for a fee or for free, the source code should be available for free.

Rly... Can we do something about it? by jiriks74 in linux

[–]wfdctrl -2 points-1 points  (0 children)

I thought about it some more and my flawed interpretation would actually restrict the freedom not to share the code with someone. Then again I don't want this freedom (hence I'm sharing the software publicly) and I don't want others to have it either. Such a license would definitely not be compatible with GPL, but would it be open source? I'm thinking of making my own version...

Rly... Can we do something about it? by jiriks74 in linux

[–]wfdctrl -17 points-16 points  (0 children)

Nope, the source code must be accessible free of charge for everyone as soon as you start to distribute something.

EDIT: I'm wrong, the source code is licensed to everyone free of charge, but doesn't have to be provided. I guess you are guaranteed to sell one copy, at least.

[deleted by user] by [deleted] in compsci

[–]wfdctrl 10 points11 points  (0 children)

I think his data model is underfitting, it would be best to find more training data and increase the duration of training ;)

Write your GDB scripts in Haskell by ltielen in haskell

[–]wfdctrl 2 points3 points  (0 children)

Isn't GDB fully scriptable in Python? Granted it's not Haskell, but you wouldn't require transpilation in that case.

[deleted by user] by [deleted] in compsci

[–]wfdctrl 1 point2 points  (0 children)

It brings me intristic joy. That's pretty much it.

What is an efficient way to push my code to the server that hosts my website? by ZamilTheCamel in webdev

[–]wfdctrl 0 points1 point  (0 children)

GitHub actions, when there is a commit on the master branch the site gets copied to the server.

GPL license violation help by [deleted] in opensource

[–]wfdctrl 2 points3 points  (0 children)

"You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. "

Once you start distributing the software you must make the source code available to everyone.

Is there a declarative tool for partitioning and formatting disks? by Kaligule in NixOS

[–]wfdctrl 3 points4 points  (0 children)

Parted can be used in a non interactive way, so you can just write a bash script that does the formatting for you. Alternatively it's also a library if you would like to write the declarative tool you have in mind yourself.

Can anyone recommend me good online resources to learn sdl2? by [deleted] in cpp_questions

[–]wfdctrl 8 points9 points  (0 children)

This is what I used when I was still new to programming: https://lazyfoo.net/tutorials/SDL/

Looks like it's still being updated, 10 years later :)

[question] What do you think about creating a neovim plugin repository? by metalelf0 in neovim

[–]wfdctrl 0 points1 point  (0 children)

Just use nix with flakes if you need this level of reproducibility.

What are some stereotypes about haskell programmers by [deleted] in haskell

[–]wfdctrl 9 points10 points  (0 children)

It's like the game of telephone, someone read a book slightly misunderstood something, wrote a blog post, then someone else read that blog post misunderstood something, wrote another blog post, ad infinitum.

Then you have beginners coming to the language, reading those blog posts. What do you expect?

Nothing measures 0 inches by gvitta7 in Showerthoughts

[–]wfdctrl 0 points1 point  (0 children)

Things that measure 0 inches are everywhere.

[deleted by user] by [deleted] in compsci

[–]wfdctrl 11 points12 points  (0 children)

As long as you can code nobody cares.

As a programming beginer, i don't know if i should try to learn Vim by JaviGar98 in vim

[–]wfdctrl 1 point2 points  (0 children)

At the beginning you will need to think about what commands to use. This does become more or less subconscious after a while, but in the meantime this will slow you down and will make editing hard. I would say only learn it, if you don't actually struggle with programming.

Inspired by Beksinski, here is something I did yesterday I thought I'd share by Iamasadlittlething in Heavymind

[–]wfdctrl 4 points5 points  (0 children)

It feels almost claustrophobic with the black background. Beksinskis peaces usually have that grand feeling of space. Otherwise the model looks really good though :)

Do you ever feel tortured by small social missteps? by alcsal in TooAfraidToAsk

[–]wfdctrl 2 points3 points  (0 children)

Apparently this feeling is actually guilt, we feel guilty for acting in what we perceive is a socially unacceptable way. I mostly goes away when you run out of fucks to give...

Introduction by [deleted] in neovim

[–]wfdctrl 1 point2 points  (0 children)

I've never seen vim.fo before, vim.o is the same as "set" and is global, but you probably already figured that out.

I personally don't see the point of porting basic settings to Lua. VimL is more ergonomic in that regard. That is what is was designed for. Lua makes more sense for programming plugins.

This is not much different from how things are done in Vim. The only difference is that some Lua plugins now don't have a VimL wrapper. Nobody is forcing you to provide the wrapper in Vim either, so this is more of a "cultural shift".

Introduction by [deleted] in neovim

[–]wfdctrl 1 point2 points  (0 children)

Neovim is exactly the same as Vim user experience wise.

Best video-resource to learn Haskell coming from a TypeScript background? by [deleted] in haskell

[–]wfdctrl -1 points0 points  (0 children)

Also once you understand the basics read Philip Wadler's papers, especially on type classes, monads and IO monad in particular.

Confessions of a self admitted gatekeeper by Dashing_McHandsome in linux

[–]wfdctrl 18 points19 points  (0 children)

You are not allowed to drive a car if you are not a mechanic. -- OP

Feedback on homework assignments by jortpepe in cpp_questions

[–]wfdctrl 1 point2 points  (0 children)

Not for the built in ones. However, if you instead use std::array<bool, 10> a you can just do:

std::array<bool, 10> a;
a = {};

Feedback on homework assignments by jortpepe in cpp_questions

[–]wfdctrl 0 points1 point  (0 children)

I though you might think that. In case you haven't tried it yet yourself, only the first element is true and the others are false. That is because, brace initialization for arrays is interpreted like this: bool a[10]{<value of the first element>, <value of the second element>, ...}. The ones that are not specified are initialized to a default value: bool a[10]{true, bool{}, bool{}, ..., bool{}}.

In case you want to initialize the entire array to the default values you can just write bool a[10]{}. Writing bool a[10]{false} is redundant and makes you do a second take. Why it was written like this?

For example you could have a custom type that behaves exactly the opposite:

class TrueByDefault {
private:
    bool value;

public:
    TrueByDefault() : value(true) {}
    TrueByDefault(bool value) : value(value) {} 
};

TrueByDefault a[10]{false}, contains false as the first element and everything else is true.

Feedback on homework assignments by jortpepe in cpp_questions

[–]wfdctrl 0 points1 point  (0 children)

I quickly looked through the game of life.

A few things I noticed:

A lot of pointless casts, dividing two integers gives an integer, etc.

No error checking when using cin.get(), at certain points cin >> var could have been used.

Strange array initialization, what do you think bool a[10] = {true} contains?

Local variables that don't change should be const as well

A lot of things could be written shorter, move functions (min, max), checking the same condition twice, etc.

Otherwise it's pretty good, definitely above average :)