• 0 Posts
  • 91 Comments
Joined 11 months ago
cake
Cake day: August 8th, 2023

help-circle
  • Software is a tool. I develop stuff that i know is of interest to companies working with everything from nuclear energy to hydrogen electrolysis and CO2 storage. I honestly believe I can make a positive contribution to the world by releasing that software under a permissive licence such that companies can freely integrate it into their proprietary production code.

    I’m also very aware that the exact same software is of interest to the petroleum industry and weapons manufacturers, and that I enable them by releasing it under a permissive licence.

    The way I see it, withholding a tool that can help do a lot of good because it can also be used for bad things just doesn’t make much sense. If everybody thinks that way, how can we have positive progress? I don’t think I can think of any more or less fundamental technology that can’t be used for both. The same chemical process that has saved millions from starvation by introducing synthetic fertiliser has taken millions of lives by creating more and better explosives. If you ask those that were bombed, they would probably say they wish it was never invented, while if you ask those that were saved from the brink of starvation they likely praise the heavens for the technology. Today, that same chemical process is a promising candidate for developing zero-emission shipping.

    I guess my point is this: For any sufficiently fundamental technology, it is impossible to foresee the uses it may have in the future. Withholding it because it may cause bad stuff is just holding technological development back, lively preventing just as much good as bad. I choose to focus on the positive impact my work can have.


  • There’s evidence that knights would dismount before battle to prevent their horse from being injured, even though they knew they were exposing themselves to greater risk. Although we have more technical knowledge about how to “optimally” care for horses now, there’s no reason to believe that we aren’t as or more exploitative of them, rendering them as or less healthy than horses back then.


  • You are almost on point here, but seem to be missing the primary point of my work. I work as a researcher at a university, doing more-or-less fundamental research on topics that are relevant to industry.

    As I wrote: We develop our libraries for in-house use, and release the to the public because we know that they are valuable to the industry. If what I do is to be considered “industry subsidies”, then all of higher education is industry subsidies. (You could make the argument that spending taxpayer money to educate skilled workers is effectively subsidising industry).

    We respond to issues that are related either to bugs that we need to fix for our own use, or features that we ourselves want. We don’t spend time implementing features others want unless they give us funding for some project that we need to implement it for.

    In short: I don’t work for industry, I work in research and education, and the libraries my group develops happen to be of interest to the industry. Most of my co-workers do not publish their code anywhere, because they aren’t interested in spending the time required to turn hacky academic code into a usable library. I do, because I’ve noticed how much time it saves me and my team in the long run to have production-quality libraries that we can build on.


  • You’re not seeing the whole picture: I’m paid by the government to do research, and in doing that research my group develops several libraries that can benefit not only other research groups, but also industry. We license these libraries under MIT, because otherwise industry would be far more hesitant to integrate our libraries with their proprietary production code.

    I’m also an idealist of sorts. The way I see it, I’m developing publicly funded code that can be used by anyone, no strings attached, to boost productivity and make the world a better place. The fact that this gives us publicity and incentivises the industry to collaborate with us is just a plus. Calling it a self-imposed unpaid internship, when I’m literally hired full time to develop this and just happen to have the freedom to be able to give it out for free, is missing the mark.

    Also, we develop these libraries primarily for our own in-house use, and see the adoption of the libraries by others as a great way to uncover flaws and improve robustness. Others creating closed-source derivatives does not harm us or anyone else in any way as far as I can see.


  • I do exactly this: Write code/frameworks that are used in academic research, which is useful to industry. Once we publish an article, we publish our models open-source under the MIT license. That is because companies that want to use it can then embed our models into their proprietary software, with essentially no strings attached. This gives them an incentive to support our research in terms of collaborative projects, because they see that our research results in stuff they can use.

    If we had used the GPL, our main collaborators would probably not have been interested.




  • I am very fond of the idea of “stateless” code, which may seem strange coming from a person that likes OOP. When I say “stateless”, I am really referring to the fact that no class method should ever have any side-effect. Either it is an explicit set method, or it shouldn’t affect the output from other methods of the object. Objects should be used as convenient ways of storing/manipulating data in predictable/readable ways.

    I’ve seen way too much code where a class has methods which will only work"as expected" if certain other methods have been called first.


  • Sounds reasonable to me: With what I’ve written I don’t think I’ve ever been in a situation like the one you describe, with an algorithm split over several classes. I feel like a major point of OOP is that I can package the data and the methods that operate on it, in a single encapsulated package.

    Whenever I’ve written in C, I’ve just ended up passing a bunch of structs and function pointers around, basically ending up doing “C with classes” all over again…



  • This makes sense to me, thanks! I primarily use Python, C++ and some Fortran, so my typical programs / libraries aren’t really “pure” OOP in that sense.

    What I write is mostly various mathematical models, so as a rule of thumb, I’ll write a class to represent some model, which holds the model parameters and methods to operate on them. If I write generic functions (root solver, integration algorithm, etc.) those won’t be classes, because why would they be?

    It sounds to me like the issue here arises more from an “everything is a nail” type of problem than anything else.




  • Did you read the text on that graphic?

    … land conversion for grazing and feed …

    I’m not talking about meat production in general (which I think should be minimised), I’m specifically talking about meat production from land that is not viable for other uses.

    This was exactly my point: I’m legitimately interested in how that graphic looks if you consider meat produced on land that cannot be used for other types of agriculture, and which is local so that transportation is a negligible cost, and feed production is close to non-existent, because the livestock primarily lives off the land.



  • It seems like you’ve misunderstood what I’m trying to say. I’m saying that

    A) There are legitimate reasons for a country to want to have some degree of self-sufficiency.

    B) The environmental impact of producing meat is hugely different depending on how the livestock gets its food, and the environmental impact of transporting goods cannot be neglected.

    C) There are countries with terrain suitable for livestock that cannot be used for farming.

    Of course: Almost no countries are, or need to be, 100% self-sufficient, because we have trade, but there is a huge difference between 10% and 50% self-sufficiency. If we are to cut out meat entirely, many places would be incapable of maintaining any notable degree of self-sufficiency.

    With you third paragraph, it seems like you actually agree with me. I don’t know how you got from me saying “there are legitimate reasons to produce meat”, to me saying this is a black and white issue. I’m explicitly trying to say that it’s not black and white, both because of self-sufficiency arguments, and because of the environmental cost of transportation. Thus, we need a nuanced approach. This means that we should minimise (or eliminate) the use of farmland for livestock production, without condemning livestock production as a whole, because there are legitimate reasons to have livestock, as argued above.



  • I’m not bringing up the state of access to agricultural land as some historical trivia. It’s just as true today as ever before.

    The point is that plenty of countries/regions cannot be self-sufficient regarding food production without resorting to livestock. There are several reasons to be, at least in part, self-sufficient. From environmental considerations arising from the transport of food from other places, to food security in the case that conflict or crisis strikes the region supplying you with food, a region which you don’t control.

    Stop acting like this is black and white, and that there’s absolutely no reason a country would want the capability of providing for its own people, as if that’s a thing of the past.



  • I’m just assuming that you are, in fact, aware that the likely primary advantage of inventing cooking was that the food is partially broken down before we consume it, meaning we need much less time and energy digesting it, which leaves us with more time to do other things, which is a huge evolutionary advantage. Right? Of course, every child knows that most animals spend a significant amount of time just digesting food, far more than humans.

    Well, since you’re clearly a well educated person that knows these things, I can’t find any other reasoning behind what you posted here than that you’re arguing in bad faith, or trolling. Please either read a book or stop trolling. In any case, don’t post about shit you know nothing about.