Posts Tagged ‘Open Source’
Open Science Licenses allowing earning money by selling printed copies of works
Open community and open science is the most interesting and dynamic phenomenon of our information world. I believe that licenses licensing Open * (whatever) works have to enable printing establishments to make copies of the work and sold them. We all know that one paper copy is not free and when one thing is on paper it is more easily manageable.
I hope that in the Open science licenses is able to be placed a formula which calculates the maximum cost of one paper copy basing on the information in the work by establishing some basic printing contracts (like minimum words on page) . I hope this formula will encourage everyone to make more copies of the work in order to reach low cost of a single copy and this way popularize open science (community) and the science in its own. If it is needed it can be prepared special licenses explaining the exact printing scheme but still letting the work to be changed and updated in the manner of open science (community). May be placing some special regulations which tells where to be placed the name of the author and the license information will be a good idea because we will know the type of the document, not just every electronic one, but a paper copy.
I hope that when this happens in the licenses will be added even more restrictions explaining how to manage the history of changes of the paper in order it to look as a regular book. I believe that licenses will grow and become even bigger than a common contract between an author(s) and a publisher.
Open Science
I believe in the open community everyone can express his thoughts no matter of his religion, nationality, social rank… The virtual world is a parallel world where people can work more productively because of their and others anonymity. Virtual reality is a place where developers discuss only their object of science discovery/work.
I want to explain my opinion about the science in this meaning.
I think that science in this places is concerned in two aspects:
1. theoretical (white papers, documentations)
Ideas, suggestions, research papers. Produced by a small group of people who know themselves.
2. practical (software- open source in general)
Implementation of some ideas from the upper aspect. Produced by a large group of developers who don’t know themselves.
About the second aspect there are many licenses which are juridically formed documents defining the possible iterations with the object (open source code and open source program) and its output.
But I think that the first aspect is not as well defined and regulated as the second one. I find the theoretical aspect of Open Science containing few licenses satisfying the need of juridical regulation of the community.
I think that the theoretical aspect of the thinks is in the genesis of on work and the practical implementation as a logical growth of the project/product/work. In sense of open community I think that it is possible and very efficient the theoretical part of one work to be done by one author and the practical implementation with other. I find it appropriate to have a juridical regulation between this authors and the papers or/and software they are writing. In other words an author of a theoretical paper have the right to restrict the possible practical implementation of its idea to be licensed in some kind and the authors rights of the practical implementation to not be carried by the implementator but by some open source organization (it is possible to create an open source product and do not publish it but use it; you are free as an owner of the full copyright rights of the implementation to use it for your purposes).
Examples of this kind of architecture i find in wikipedia.org. There the problem of publishing is solved by centralized server storing the encyclopedia and sharing it licensed under one license not choose and implemented by the group of authors editing the encyclopedia but by the authors of wikipedia.org: GNU Free Documentation License
I believe that authors of theoretical papers have to have the right to choose the conditions of using their works (choosing license). I believe that the implementation of the theoretical work have to be first published to the author/forum where the theoretical paper was published and then used by someone (no matter is he has implemented the work or not). And this scenario have to be defined in juridical form in order to be able to be obeyed by many developers/researchers all around the world.
I think that it is good to enable many researchers not knowing each others to work on one work and use the stuff done by the rest of the researchers on the work. Applying the cooperation between developers group to the researchers one. I find it important to ensure this cooperations in order to keep the authors wishes like adding acknowledgments, licensing the work based on this research (future researches and implementations) only with Open Science licenses (and the man/company implementing this idea(s) to not carry the author rights on the implementation).
I believe that there have to be a paper format and software product dealing with this format. This combination have to enable fast and easy convert of any kind of white paper into paragraphs, sentences, words… able to be copied and pasted easy and fast and this operations are made by automatically obeying the first authors wishes like adding the acknowledgments (text with editing protection) and/or other custom text somewhere to every other paper containing any part of the first paper which is changed or not. Automatically numbering the chapters and the illustrations, charts and so on in the chapters. Ability of adding the number of a figure,chart or some other resource somewhere like a special word and when the figure is moved from the original place the number to be updated on the figure and on the places where it is used as a special word.
It is important this software to provide viewing the history graph of the changes occurred in the paper with every particular change.
OpenSource Community connecting with Test Cases
I was reading Perspectives on Free and Open Source Software. I am not an expert in this field, but I feel that it is an important field in the OS community to become more close in structure and communication aspects to scientific research groups located in the universities. I think that it is important to be build a fast connection between the whole community in order to improve code quality. I share the opinion of Alan Cox that the most popular project are secure but not as much popular ones aren’t (“High-quality only applies to some projects–those with good code review and those with good authors” Cox says).
In order to provide and to not change the freedom of choice of OS developers, OS community have to provide other way of enabling security issues in not popular open source projects different then creating on-line rating lists of the most popular projects in order to concentrate the view of the developers. Something different is needed. Code of its own is going to be compromised if it is not enough secure, but we can draw very specific requirements in form of testing object (text cases) for every specific object of group of objects.
This way of centralizing the community is better in my opinion. I find it more useful to centralize the community over testing cases then over source code. Things that people want is to use working source and provide computations on inputed data, why they have to read code in order to prove is it secure, useful for the purpose(or reading documentation for this purpose) or not. Testing lists of cases could be very easily enlarged in order to provide the old features and adding new ones.
So the community have to be grouped around testing cases… Starting project first means writing test cases. This is the best way of making easily connection between a colorful range of developers with different level of programming skills. This is a (here I render an account to the fastness, usability and closest connection to the process of programming) mathematical model of a program/project very close to writing source code for the project/program.
Adding new capabilities to an existing project, defining and starting new project, changing project… this all can be presented in testing cases. I believe that it is important to work on this topic.
Testing cases are a good (in my opinion) documentation form of a system.
If it is possible for the developer to take a piece of code and synchronize it by checking for test cases equivalence/compatibility. If it is possible to allow testing cases to go deep in the side effects of the system and capturing the best critical system behavior and this kinds of abilities to be standardized and provided automatic test capability checks between the expected software behavior and the behavior of the software. Imagine if we can search by typing strict requirements (test cases) and finding the code that fits in our wishes.
Note: I wrote strict requirements. It is not an engagement the require to be strict test case. It is possible to use if statements in order to describe the groups of satisfying behaviors of the searching code and to not describe parts of the test case that are not related to the private searching purpose. In other words we have to search in test cases for full equivalence with the provided test case or test case contained in the test cases of the OS projects.
Providing testing as the main way of communicating between OS developers will give us the ability to automate some of the work and enforcing developers write more secure code (Alan Cox’s opinion on the lowest security of OS code).
Virtual Memory is not needed when you run Open Source programs
This is an idea that i want to work on. Imagine we can check the references in programs in order to not run them in a virtual memory jail and let them run free. I think that this is possible with an Open Source program (and with a program written entirely in Java, but i will not speak much about this at this time). I think that it is possible to be done, here i drew some of the main ideas:
I believe that there is a way to ensure that the source that we execute from compiled file is not accessing others program memory. So try to think about this, can we make the source code of a program executeable, too. It will be easier to execute sources by only running them instead compiling and building.
I think that in the kernel should be an algorithm to check the source code and to say to the Virtual Memory Manager to not capsulate this program in a VM. I am not very deep with the linux kernel but i hope i will go as far as it have to to be sure that this is able to be done.
Feel free to comment this publication about found mistakes (errors), warnings and everything in this topic.