The discussion about Open Access has become mainstream within the science community. There are dedicated conferences available and many books and papers are focussing on the problem of how to open up science. Most discussions are about the question how to convince somebody to publish a paper under open access license or if this failed, what the concrete reasons are. Describing the situation from an ideology standpoint has become the standard and Open Access is often seen as a movement similar to the Open Source idea.
To make the situation more pleasent it would help to create a working thesis. Open Access is the not the result of individual decisions but the origins are located in technical development, namely desktop publishing, full text databases and bibliographic managers. The interesting situation is, that these tools are a new development and it can be traced back, that before these tools were available nobody was talking about electronic publishing.
Perhaps it makes sense to start the journey to open access with the desktop publishing software. Suppose somebosy has installed the MS Word or LaTeX software on his computer and tries to investigate the newly discovered features. What he will recognize fast is, that he can create academic papers and expert them into the pdf format. That means, LaTeX and MS Word was created with such an objective in mind, and it is very easy in doing so. If the user is unsure he can formulate it as a question and he will receive for sure an answer in an online forum, in which other users are explaining in detail how to expert a text file into a pdf document.
The interesting situation is, that the self created pdf file is the core element of open access publication. Open access assumes, that the manuscript is available in a digital format and of course in a standard format like pdf or postscript. Open Access won't work, if somebody has written the manuscript with a mechanical typewriter, because such document can't be uploaded into the internet.
To understand the upraising of the open access movement we have to investigate the Arxiv project in detail. The server was started in the year 1991 and the only allowed content was about mathematics, physics and computer science. In the 1990s, arxiv was the only preprint server in the internet. And the reason was, that in the humanities like literature or philosophy, computer technology was not available at this time. In the early 1990s, the Personal computer was an unusual device. It was available but it was a costly device. A typical desktop PC was running with MS-DOS and the software in that time wasn't able to expert text documents into the postscript format. On the other hand, PDF wasn't invented yet.
Open Access has become a mainstream topic in the 2000s. During that period, normal PCs were able to expert documents into the pdf format with a single mouseclick and the PC was widespread avaialble. It is not surprising, that since the 2000s the amount of published electronic documents was higher than before. Apart from mathematical papers also documents with a humanities background were published in the internet.
The new development was, that former book publishing companies were no longer needed. The combination of the internet plus a desktop publishing software allows a single person to write and publish a paper and he won't need classical libraries or linotype machines.
The revolution was, that with the book printing industry every thing remains the same. A classical academic pubiishing house works the same like 20 years ago. That means, somebody sends a manuscript to the publisher, it gets formatted in electronic format and then the book is distributed to an academic libraries. The new thing is, that nobody needs this workflow anymore. Today's situation is, that the individual can decide if he likes to publish a paper in the classical way, or if he likes to simply upload the pdf file into the internet. The simple reasons why so many electornic documents are available is because it is so easy to create them.
To understand the revolution in detail we have to focus on the key component of Open Access which is a desktop publishing software. Desktop publishing means, that the former workflow was simplified. Instead of using a book publishing house, a printing company and somebody who formats a documents, the author of a paper is charge of the entire process. Desktop publishing means basically that a single person authors the mansuscript, formats the layout, creates the images, checks the bibliographic references and experts the document as a pdf file. There is no need to send the manuscript back and forth between different stakeholders, but the document is created with a stand alone pc and a pwoerful textprocessing software.
Before the advent of desktop publishing a book was created by a team. The workflow can be traced back by analyzing the book cover. In most cases it was labeled by different stakeholders. A typical book in the 1970s was equipped with an imprint of a library. That was the physical place in which the book was located. Another imprint was made by the printing house. That was a company how created the physical book. Then, an imprint was avaialble by the translator. That means, a book was translated from one language into another language. Another imprint was available from the publishing house. That was a company how formatted a document and so on.
Basically spoken, the workflow until a book was created in the 1970s was distributed over many steps. Somebody may argue, that this complicated pipeline is equal to high quality book publishing, but the more likely reason why the workflow was so complicated was is because the technology in the 1970s was low. The desktop computer wasn't invented, and it was complicated to prepare a mansucript and print it out. The internet was missing, so a library was the only way to distribute the information to the reader.
The outdated book publication process in the 1970s, and the more recent publication workflow since the 2000s are both the result of a certain technology. If a book gets created with mechanical typewriter, linotype printing machines and printed libraries, a certain workflow is needed until a book is available. And if the book was made with LaTeX, pdf files and webservers a different workflow is needed until the book is published.
June 23, 2021
Can the success of Open Access explained only with technical reasons?
The illusion of Open Science
The dominant theory about the upraising of Open Science puts the society or governmental decision into the role of decision maker and the goal is to convince more scientists that Open Science is a great idea. So it is some sort of ideology and political movement to open up research and make the publications free to read to the world. The main reason why this plot is repeated is because it give to the stakeholders the illusion that they have everything under control. Which means, that a certain scientists can decide by himself or the political decision makers can give Open Access a higher priority or not.
A closer look onto the problem of Open Access will show, that it is not the result of a decision making process but the reason is located in technological development. The first open access server in the world was the arxiv repository. The simple reason why the project is up and running is because:
- the costs for a webserver a low in the internet age
- the existence of desktop computers and the LaTeX textprocessor is common for scientists
- if Arxiv hosts many thousands paper it is pretty easy to write more of the same content
These technical conditions have resulted into a successful prepreint server. Bascially spoken, the simple reason why Open Access was started is because the manuscripts are in the digital format available so it is easier to upload the document to a webserver.
Like all technological innovation like the car, the computer or the telephone the process was not managed and there was no higher instance who has to decided to introduce it, but if new techhology was working fine, it was adapted as quickly as possible.
It is interesting to observe the Open Access was started around the same time like the desktop computer. The first electronic scientific journals on CD-ROM were available at the same time the CD-ROM was invented, and desktop computer were there to create such content. This sounds a bit trivial but between the invention of desktop publishing and electronic publishing there is a causal relationship available.
To understand the Open Access movement we have to identify technology which supports the creation of academic papers. Potential key components are full text search engines, desktop publishing software, bibliographic databases, document formats like the Postscript and DVI standard, Unix workstations and a larger amount of people who have access to these thing. The resulting open access movement is some sort of logical consequence.
The situation has much in common with the interaction between a human and other tools, for example a hammer. If somebody has bought a hammer, he will search for situations in which he can use it. And if somebody has installed the LaTeX package on his workstaion, he will write a simple hello world academic paper next.
Is C the optimal language for programming the C64?
The good news is, that the problem of identifying the ideal programming language can be reduced to only two: Assembly vs. C. It is pretty easy to show, that C code will run slower and needs more RAM than the manual created assembly code. A typical example would be a prime number generator.
The more interesting question is, how much exactly C code will run slower. Somewhere in the internet it was written that without using cc65 optimization techniques the C code will run 5 times slower. On the first look this speaks for replacing C code with assembly. But a closer look will show, that slowdown by the factor 5 is not very much. Suppose there is an algorithm which needs 60 seconds. If the same algorithm was rewritten in Assembly it will need only 12 seconds. In both cases, the algorithm won't run in realtime but the user has to wait in front of the machine.
The main concern with assembly language is, that the sourcecode isn't readable. Even if the programmer is using lots of comments, the code will look messy. This is perhaps one of the reasons, why C has replaced former assembly coding.
Suppose the hardware is a bit faster than the original 6502, suppose some optimizatinon techniqfues in the compiler were activated, then the chance is high, that the C code will be only 2 times slower than the assembly language counter part. This slow down is acceptable because the code is way much easier to read.
Let us make the situation more practical. A naive prime number generator works with two nested loops. Such an algorithm will run in assembly around 5 times faster then the C counterpart. But, a more advanced sieve algorithm will run much faster, no matter in which programming language it was implemented. That means, the sieve prime number generator written in C will outperform the nested loop algorithm written in Assembly language easily.
The problem with coding assembly language is, that it is difficult to write longer and more complex algorithm. Implementing a sieve algorithm in Assembly is an advanced project. That means, even an experience programmer will need many hours in doing so.
It is a known fact that during the 1980s the c language was not very popular for the Commodore 64. All of the demos were written in pure assembly code. This fact is known, because the sourcecode of the demos is available and it is normal 6502 assembly code. But what if the demo competation has the contraints, that the code has to be written in C?
since a while the C64 community has discovered the cc65 cross compiler again. They are trying to use this environment to write games from scratch. The resulting games are look not impressive as the Assembly demos, but they are easier to read and it takes less effort to code them.
A list of some games written in cc65 are available at https://wiki.cc65.org/doku.php?id=cc65:cc65-apps The quality of these games is low. They are looking like the early c64 games from the 1984 year.
An interesting side question which remains unanswered in this blog post is, if Forth can outperform the C language on the C-64. the problem with Forth is, that most existing Forth systems are only interpreters, they are not converting the code into assembly instructions so the resulting program will run slow. What is known from the MS-DOS PC is, that compiled Forth code can reach the same speed like compiled c code.[1] That means, compiled forth code will run slower than hand coded assembly code.
[1] Almy, Thomas. "Compiling Forth for performance." Journal of Forth Application and Research 4.3 (1986): 379-388.
June 16, 2021
Comparing Google scholar with Microsoft academic
Coach based artificial intelligence
Limits of automation
What if voice commands don't work?
Whats the problem with self-driving cars?