Can data files be considered software? [closed] - terminology

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I 've heard some people refering to data files(by data files i dont mean excecutables,libraries,documentations,conf files but simple text files,audio files,documents etc) as software. I have found some definitions that say that whatever is not hardware is software, although most of them clearly define software as programs,scripts etc. Is it a matter of context and opinion or is there a clear definition.
It may sound like a stupid question and it propably is, but i always when referring to software mean programs and not data files so i want to know if i am wrong.

I believe data files would be considered assets or resources, not software by itself, but stuff that the software uses to accomplish its purpose. For example, most of a game's content is assets, such as music, models, textures, cutscenes and that kind of stuff; the actual software is just the game engine and that's it.
That said, I'm not sure if this distinction could apply for legal purposes. I would believe that data files (game assets in my example) could be considered as separate from the software and this is why it is possible to do stuff like OpenTTD, which is a GNU freeware reimplementation of Transport Tycoon Deluxe's game engine originally designed to use its assets, which used to be provided by the player (until someone designed GPL-licensed assets), or like pytouhou which is Touhou Koumakyou's game engine reimplemented in Python but using ZUN's official game assets.

Related

How to make a mess of a modernization project? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
If your goal were to botch a legacy application modernization project, how would you set about it?
What are the worst strategies and practices to adopt?
Port it to node.js and bury it deep in dependencies on single-maintainer abandoned packages, many layers deep and interconnected, so that it'll be essentially a total re-write to get rid of those dependencies 2-3 years down the road when some update to some tiny package somewhere at the end of a long dependency chain breaks everything and introduces impossible version requirements (aka package A wants the new version of package X, but package B is locked to the old version, while package C is fine with the old and newer versions, but not the newest. It has announced to drop compatability with the old version in the next update...)
There's a few other languages where that would probably work as well.
The strategy behind that is to use fragmentation as a weapon against the poor sod who'll have to maintain and update that monster. If you make the dependency graph silly enough, sooner or later something will break in terrible ways.
Another aspect of bad practice is when people are mixing their front-end project with both .scss, .css, .ts and .js because they sometimes just don't find a solution of some case in TypeScript they implement JavaScript files in the same project. Then there are many cases where people implement poor JavaScript libraries in TypeScript projects that do not support TypeScript and will break the application now or later.
Some other bad practice is to not organize your .js files and write more and more code in a single .js file that will reach 1000 rows then 2000 rows etc.. and after a while, there is no point updating anything in that file because its impossible to get the whole picture.

Open source - How to make sure user has bought a license/avoid pirate-versions? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
This is not something I want to do myself, but it's a question/problem I can't get out of my head.
If you distribute open source-program/classes/libraries, how can you make sure the user has purchased a license? Would it not be very easy for programmers to just remove the license-part of the product and distribute it or use a pirate-version?
Take Invision Power Board for instance. It is written in PHP (i.e completely open and editable) and you have to buy a license to be able to use it. How can they make this limit? Do they authenticate the forum towards their servers? If they do, would it not be easy to simply remove this function?
Another example that I have even more problem understanding is HighCharts, a JS library to draw graphs. They offer a free version with their name on each graph. If you purchase the product, the label is gone. How do they do this?
I know this question is a bit wide and open, but I am just asking for a way to prevent people from simply editing out the license/blockade? What is the essence in this?
There are no license purchases for true "open source" libraries or programs, because the essence of open source is that the code is free and you can build/deploy it yourself at will.
What you're talking about is commercial software that might use a codebase that is easily visible/editable. It's not marketed as "open source," but the source code is easily accessible and potentially easily modified.
There are various mechanisms for obfuscating or hiding the content of the code that some products would choose to use, which make modifying the code more difficult. For example, there are various ways of pre-compiling PHP code rather than distributing the raw files (see this question for examples).
However, the biggest thing that you lose out on with most software of this sort is support. If you're a serious user of a complex piece of software, especially a business user, you would typically want to know that you have a commercial support plan in place for any critical software. The kind of user that would crack/pirate such software (that is, individuals or small companies) aren't likely to be as significant to the vendor.
On the internet there's a further obvious avenue: if a significant public site were using Invision Power Board, they would soon notice and could demand suitable license (or take legal action).
Ultimately, this kind of abuse is very difficult to prevent if someone is determined enough: you are very much at the whim of your users.

Where do Open Source projects hold their design files? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I have seen many opensource project on github, sourceforge etc.
Went through the code on many big projects.
I have never seen ANY design diagrams, from simple class diagrams to sequence diagrams.
Also, many projects (not all) don't actually have any comments on their code.
How is this even possible? No design and some comments only.
This depends on the project at hand; design diagrams could be found in the source tree, or on the project's website, or any number of places. There may not even be design diagrams at all -- they're not strictly necessary for software development.
The reality is that most industry strength software is written without design diagrams, class diagrams and/or other UML style documentation.
Why? Because most experienced developers (including me) do not see enough value/cost benefits from doing it.
Developers are relatively quick to adapt tools that are practical and helpful (test tools, source control, code analyzers, profilers etc.) so it is not a question of developers being "old dogs" and/or not wanting to improve the tools they use. If design diagrams etc. actually helped speed up development and/or improved product quality then it would be used a lot more than it is. However it doesn't so it isn't. And this is despite 30+ years of "guru" after "guru" trying to push yet another box/sphere/line tool down developers throat :-)

Picking an appropriate license [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I'm working on a web based ladder system for a game. It is very game specific and I want to make the project open source so the community can give back, contribute and make the experience better for everyone. However at the same time I don't want people to re-use the code/implement the code on separate sites because the purpose of the website/project is to unify the community under one roof. So my question is: what is the best license to use to make that possible?
... I don't want people to re-use the code/implement the code on separate sites ...
This really misses the point of Free Software, or as the FSF puts it, it's open source but not really Free Software. Despite my tone, I'm not here to lecture you, I'm simply pointing out that people are not likely to help if the project has this kind of restriction.
However, if you change that to:
... I don't want people to re-use the code/implement the code on separate sites without contributing any modifications they make back to the project ...
Then the GNU Affero General Public License might be appropriate; it prevents people from modifying your website unless they publish their changes under the same license.
If you still insist on your original restriction, then no open source license will help you, since most of them are about being Free Software, not just open source. You're going to have to write your own license, or modify an existing one.

Twitter xAuth vs open source [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I am developing an open source desktop twitter client. I would like to take advantage on the new xAuth authentication method, however my app is open source which means that if I put the keys directly into the source file, it may be a vulnerability (am I correct? The twitter support guy told me).
On the other hand, putting the key directly into a binary also doesn't make sense. I am writing my application in python, so if I just supply the pyc files, it is one more seconds to get the keys, thanks to the excellent reflection capatibilities of Python. If I create a small .so file with the keys, it is also trivial to obtain the key by looking at the raw binary (keys has fixed length and character set).
What is your opinion? Is it really a secutiry hole to expose the API keys?
Security hole? In broad terms, yes. Realistically though, these aren't nuclear launch codes we're talking about.
About the worst thing that could happen is that someone could take and use your app's keys to do something against Twitter's TOS that will end up getting the keys banned. No user data would be vulnerable since you're not distributing the user tokens (that would be much worse from a security standpoint). Since anyone can register an app in 2 seconds at no cost, the only reason to do that kind of impersonation would be specifically to besmirch the reputation of you or your app.
One thing you could do is leave them out of the source code but make it clear that user's compiling from source need to obtain their own keys and put them in the appropriate place, but leave them in the binary version that you distribute. Not 100% secure, but makes it that little bit harder that will deter a certain number of n'er-do-wells.