The LaTeX software is known as a powerful typesetting program used since decades for creating academic writing. From an outside perspective the LaTeX community prefer it's own program over potential alternatives like Framemaker or MS-Word. But the community struggles in explaining the reason why. How can it be, that a complex software like LaTeX which contains of thousands of macros has found so many advocates?
The reason is not located in the software itself but with the workflow in which LaTeX makes sense. What the average student, researcher or book author is doing can be summarized in the following workflow:
1. makes notes in an outliner
2. aggregate the notes into prose text
3. convert the prose text into a readable pdf paper
This workflow divides the task into two subtasks: creating the text and rendering the text. And both tasks can be realized with different software packages. There are on the one hand programs available for creating an outline which are Omnioutliner, a text editor or the notecase software. And on the other hand there is software available for converting the text into a pdf document.
Let us imagine how the workflow can be mastered without the famous LaTeX software in the loop. First step is to create the outline with a program like notecase which is an open source outliner for Linux. And then the text gets exported into the markdown format and converted in to a pdf paper.
This workflow comes close to what LaTeX users are doing with their software. They are using two different programs for the workflow. A typical combination is to combine the emacs editor for creating the outline, and the pdftex backend for creating the pdf file. Another frequently used combination is to use the texniccenter editor as the editor and the luatex engine for creating the pdf file.
The interesting situation is, that an outliner software doesn't need a preview how the text will be shown in the pdf format. During the outline subtask, the user doesn't care about the size of the font, or if the output is rendered in one column or twocolumn. This missing capabilitites of an outliner software is described by the latex community as an advantage. And they are right. The outline of a text which contains of sections, subsections, intext references and bibliograühic references has enough complexity. There is no need to render the information like it will be printed later.
Even if somebody doesn't prefer the latex software, the chance is high that he will use a divided workflow which contains of creating the text and formatting the text. Or let me explain it the situation from a different perspective. Classical WYSIWYG software like MS-Word, indesign or scribus are a poor choice if the idea is to use them as outliner tools. In theory it is possible, but this is not the purpose of these programs.
Perhaps we have to a go a step backward and answer the question what desktop publishing is in general? Has it something to do with printing out a text or rendering the text in the pdf format? No, the core task is to create the text in an outliner software. The interesting situation is, that the LaTeX program wasn't designed as an outliner software, but latex assumes that the outline is provided as input. That means, the user needs the structured text, and then he can run the latex program.
July 05, 2021
The relationship of LaTeX to outliner software
How to solve AI problems in contrast to solve programming problems?
Computer programming works with a certain principle in mind. This general principle can be adapted in solving a new problem unknown before. Suppose someone likes to create a hello world GUI application from scratch. For doing so, he has to write down the source code. Then the code is compiled into binary code, and the code is executed.
Creating larger projects is possible by repeating these steps and introducing object oriented features. The result is, that any sort of application can be created within this paradigm. This principle has become so successful, that many programmers are convinced that any sort of topic within computer science can be handled within this framework. But it is not. Robotics and other AI related problems doesn't follow this principle in mind. If someone tries to create a robot controller similar to creating a hello world C++ application he will fail.
A more demanding problem is, that it is not possible to repeat robotics projects from the past. Even if programmer A has successful implemented a maze solving robot, programmer B can't create the same robot. This is surprising because the source code is distributed under an open source license and it should be pretty easy to reverse engineer the former project.
The main problem in AI is, that the underlying principle is not known. There is no programming language, framework or workflow which results into working robots. And because of this reason, the engineers have struggled over decades to create robots in the reality.
The only pattern which remains relative stable in the robotics domain is, that every project has a tendency to fail. That means, the programmed robot doesn't work. There is a gap between the requirements of the robot and what the machine is doing. For example, the robot should avoid the obstacles but in the reality he will collide with them. The interesting situation is, that even after the bug was fixed, the robot won't work as expected but it will collide a second times with the obstacle.
Instead of trying to program robots, the more eloquent approach is to postpone the problem to a later period. What a programmer can do instead is to create teleoperated robots. The interesting feature of this approach is, that the robot will work as expected. Creating a teleoperation controll follows the common principle within computer programming. That means, after writing the code and improving it, the robot will work as expected.
To analyze why teleoperated robots are working great we have to define the social role of a robot. There are two sorts of robots available: autonomous ones and teleoperated robot. Teleooperation is equal to see the robot as a medium, similar to a mouse cursor on the screen. And the underlying principle is called shared control. Shared control means, that the human operator remains in the loop. This prevents that the robot fails.
With this small modification the resulting project will look different from standard robotics. Instead of programming a robot the idea is to programming a teleoperation control with a reduced workload. That means the progress is measured how much human interventon is needed to guide the robot into the goal. In the worst case, the robot is asked to use a joystick and he has to control the robot all the time. In such a case, the autonomy is low and the workload for the human operator is high. The task is to reduce the workload a bit.
The interesting point is, that it is much easier to solve such a challenge. It is up to the programmer to try out a new remote control and then he fails or not.
July 02, 2021
Some applause for the LaTeX software
Even the chance is that, that most users are aware of the LaTeX software already it makes sense to emphasize the advantages again and again. The first thing to mention is, that most desktop publishing software from the past is gone. Software programs like Ventura publisher, Word for MS-DOS, Framemaker and even quarkxpress are forgotten. They were replaced by other tools. Only the LaTex has prooven it's stability over decades.
The perhaps most common question is, why should somebody learn LaTeX if he can typeset the document with MS-Word much easier. The greatest advantage is, that similar to the txt2ps command line tool under Linux, the LaTex program can handle easily larger file. It is not difficult to create a pdf file which has 3000 pages, contains lots of graphics and archives all the issues of journal. This feature is missing for possible alternatives over TeX.
Instead of describing how LaTeX was used 20 years ago it makes to give a short outlook how a modern approach is to creating print ready document. First step is to create a document in an outliner software like Emacs, Lyx or Emacs. This step needs time and has nothing to do with desktop publishing or typesetting. If the text is ready the funny part starts. The text is converted into the LaTeX format and converted in the pdf format. With the help of a template this step needs only a little amount of time. Even the amount of LaTex documentations is high and the possible options are endless, the average user will spend only a little amount of time with the typesetting software. It is basically a rendering engine which takes a raw text and produces a pdf file. This pdf file can be printed, uploaded into the internet or copied on a cd-rom.
Somebody may argue, that the ability to create a pdf file with 3000 pages is not a big thing and other programs like indesign or Word can do the same. No they can't. In contrast to a common myth, text processing is a computational demanding task. A single jpeg image with 300 dpi can have lot of megabyte in size. It makes sense to avoid WYSIWYG software and take advantage of desktop publishing software for handle the document creation process.
___Whats after LaTeX?___
The main advantage of LaTeX over alternative desktop publishing software like Word and Indesign is, that the author can focus on the content and ignores the layout. The problem of aranging the content in columns and place the images at the correct place is postponed to a later step and is handled by the latex software during a batch processing run. This reduces the obligation of the author to creating the text.
The interesting situation is, that LaTeX is not the advanced software for focusing on the text. What authors are using in the reality instead of LaTeX are outlining software tools. These gui applications have usually on the left side a pane in which the sections of the text can be arranged. Famous helping tools for the LaTeX software like Texniccenter and Lyx are providing an outline capabilities but many other tools outside of the LaTex ecosystem are available too.
From a technical perspective these programs are emphasizing the difference between text and layout much further. An outline only tool like cherrytree doesn't provide any ormatting capabilities but it is focussed on the text itself. That means, the dimension of the age are missing and most images are shown in a draft mode. In most cases outline tools are used for making notes. But they can be utilized for writing longer texts as well.
It is important to known that an outline tool is different from desktop publishing. Some outline tools are supporting the export of the file into the pdf format, but the quality is low. Instead, outline tools are trying to structure the text on a semantic level with the help of sections.
The simple reason why so many authors are fascinated by the LaTeX software is because it handle the layout process automatically. After the some decision were made about the amount of columns, the font and the size of a section, the latex software will layout the text by it's own. It fulfills the promise of database publishing.
The perhaps most impressive example for the strength of latex is the lyx software. Lyx is some sort of outliner with a pdf export option. Lyx asks the author to provide the text which consists of a hierarchical paragraph and then lyx can export this document into the pdf format. In contrast to alternative outliner software like cherrytree, the pdf file was typeset with the latex backend which is equal to get a high quality result back.
Let us construct an example. Suppose the user provides the lyx file for a 2000 page long book. The file contains of the raw text, which are the paragraphs, the sections, bibliographic references and tables. What lyx can do very well is to confert this raw text into a fancy pdf booki.
Sometimes the Lyx software is described as a dtp software similar to idesign or Word. But it's not. Lyx has more in common with outliner software like cherrytree, texniccenter or Omnioutliner on the mac. It's purpose is, that the author can enter notes and paragraphs.
___Outline editor___
Let us take a closer look at the cherrytree software. There is a similarity between cherrytree and Lyx. Both programs have on the left side an outline pane and the user is able to enter text, items and tables in the main window. The advantage of Lyx is, that it can generate a well looking pdf document on demand, while the export option of cherry tree is reduced to create a html file.
The similarity between lyx and cherrytree is that in both programs a document contains of a hierarchical structure which contains of sections, subsections and fulltext. It is possible to jump between the section with hyperlinks and a table of contents is available as default.
Suppose somebody invents a cherrytree plugin which allows the run the external latex engine with a command line. Then the cherrytree software will behave the same like lyx. The interesting situation is that cherrytree is widely recognized as an outliner tool. This is the correct description for these software programs.
June 27, 2021
How to write an academic paper?
There are many different subproblems available in scholarly writing. The pipeline contains of:
1. article writing itself
2. converting the article into the pdf format
3. publishing the pdf file
The following blog posts investigates only the first problem and assumes that the remaining one are easy to solve. The article writing itself is the result of taking notes.. Taking notes are done with an outliner software. An outliner works quite different from normal desktop publishing software.
Before a text can be written some keypoints are needed. The keypoints are creating during the reading of existing literature. If the keypoints are available in the outline editor it is possible to write down the same information as a prose text. Prose text is equal to normal sentences which can be read by the audience. The interesting fact is, that outline editors allows to write down full paragraphs. It is some sort of raw manuscript. These sentences are full of spelling mistakes and grammar errors. In most cases they are hard to read. but they are providing a first draft edition of a text.
In the next step the draft version is copied into a new file which is mostly a text processing software like LaTeX or MS-Word. Here is the idea to rewrite the sentences and make them easier to read. Also figures are added to the text and the bilographic references are inserted. From a formal perspective, a text is a reformulated version of the notes. The user has learnted something while reading the text from other. Has written down the information in keypoints and then he has reformulated the content with his own words.
The reason why this is done by authors is because it helps to understand a subject. Most texts are written not by experts but by newbies how have discovered a topic the first time. It is some sort of paradox, that especially authors without any background knowledge are motivated to explain the subject to a larger audience. The reason is, that with this precondition the author is motivated by himself. That means, it makes sense for him to investigate a topic and write something about it.
In theory it is possible to copy and paste the keypointes which were created during the research for a topic. But most authors are trying to avoid it. Because they are assuming that self-created keypoints are containing contradicting information and out of context knowledge. The more elegant way is to rewrite the content from scratch in prose text.
From printed journals to electronic ones
The first electronic journals were started in the 1980s.[1] In contrast to today's perspective which is dominated by detail problems like Open Access in the 1980s the debate was held in a more general perspective. It was compared what the difference is between electronic journals and printed journals. The perhaps most interesting point is, that peer review and the existence of an editor are typical elements of a printed journal. They are producing sense and it is not possible to avoid them.
Let us take a look into the workflow. According to the description an author writes a paper, submits it to the editor and the editor submits it to the peer reviewer.[1] Why this workflow is remarkable is, because it was mentioned in the year 1982 as a role model for printed journals. At this time, electronic journals weren't available or they were started slowly. And if the peer reviewer has together with the editor and the author revised the document it gets printed and delivered to the reader.
Now it is possible to explain why this workflow was used by printed journals. Suppose an author submits a manuscript directly to the printer. the result is, that many authors will do so. Lots of draft articles get printed and the amount of article would be very high. The editor and the reviewer are useful to slowdown the process. Their main task is to stop an author, select only the best manuscripts and make sure that the publication is postponed.
This kind of moderation is a reaction to the printing press. A printing press is a bottleneck. Printing a document is a costly process and it will take time It is not allowed to print a manuscript if it contains of spelling mistakes or if the quality is low.
Suppose the idea is to start a printed journal from scratch. The chance is high that this fictional journal will work with the same principle in mind like the journals from the past. That means, the author is slowdowned by the editor and the peer reviewer with the attempt that only high quality knowledge is send to the printer.
In electronic journals the printing press is missing. It is possible to publish low quality manuscripts full of spelling mistakes. The reason is, that printing out something doesn't cost anything but publication is nothing else than creating an electronic file. Do we need an editor and peer reviewer to slow down the process? It is a rhetorical question. The only reason why electronic journals have a peer review is because they are trying to emulate the printed journal system from the past. That means, that the journal gets printed and the electronic version is an addon.
Or let me explain the situation from a different perspective. It is pretty easy to explain the peer review system for printed journals. Peer review provides an important filter in the process and without peer review, a printed journal can't be created. The problem is, that it is much harder or impossible to explain the peer review process in case of electronic only journals. The basic question is, why it is not possible to publish the raw version of a manuscript?
___Peer review___
The underlying assumption for a peer review is that it helps to filter the information. this makes the peer review process a powerful instance. It is in the hand of the peer reviewer to decide if a certain manuscript gets printed. What is ignored is, that not the peer reviewer is the important instance but the printing press itself is the reason why a manuscript gets rejected. A printing press is a machine which produces costs. If a certain manuscript should be published in a journal, it has to be printed first. If the journal has a circulation of 10k copies, the printing press will print out the manuscript 10k times. This process takes time and will produce costs.
Because of this reason a printing press is used seldom. That means, it is not allowed that anybody can print out his ideas but the machine has a priority queue. This queue is not something which is determined by a journal but it has to do with the limits of the mechanical machine. That means, printing works in a sense that it will produces costs and costs need to be managed.
Let me explain it the other way around. What all the printed journals have in common is, that the printed text are spelling free and that they were peer reviewed at least 10 tiimes. Only if a manuscript is absolute perfect, and only if the journal editor is 1000% sure that the reader will need the information, he will send the manuscript to the printer.
___Technology___
From a computer perspective, electronic publication has been solved. The first programs for desktop publishing were invented in the late 1980s and since the advent of HTML and PDF it is possible to publish a document in the internet. What is missing is the cultural shift towards electronic knowledge. This shift is possible only in theory but not realized yet. The problem with electronic publication is, that the amount of information will become much higher than before. It can be compared with inventing the printing press a second time.The original printing press has increased the amount of books from a few hundreds to millions. And electronic publishing will increase the amount of books from millions to ...
___Literature___
[1] Turoff, Murray, and Starr Roxanne Hiltz. "The electronic journal: A progress report." Journal of the American Society for Information Science 33.4 (1982): 195-202.
Components for a robot control system
The main problem in robotics is, that it is hard to define some recipes which are working well for all domains. Suppose the idea is to contruct a robot which can drive on a motorcyle, or a robot forklift which can load a cargo. What is the basic principle to control these different kind of robots?
A possible walk through to solve these difficult domains is a combination of voice control command processing, model predictive control and learned cost function. Let us go into the details. The idea behind voice control is, that the robot is controlled manual but not with a joystick but with natural language. For example, the human operator can say “robot start”, or “robot load the cargo”. This sort of interaction is important because it allows to show the entire picture of a robot domain which includes the actions not automated yet. An interaction between human operator and robot is needed, if certain parts of the control system are missing. In such a case the robot is controlled with teleoperation.
The second element of a robot control system is the mentioned model predictive control tool. MPC means to predict future system states and determine the optimal action. The last strategy on the list is a cost function. A cost function helps to guide the search in the problem space. Learning a cost function is equal to inverse reinforcement learning, which is sometimes called learning from demonstration . The idea is that during the demonstration the parameters are found which are defining which sort of behavior is wanted.
June 25, 2021
Early examples for Desktop publishing
On the first look, Desktop publishing seems to be something realized in the 1980s and today the technology is simply there. A closer look will show, that desktop publishing was at all times an advanced technology and creating the underlying hardware and software was very difficult.
Most technology historians see the start of DTP in the mid 1980s with the Apple Macintosh computer. But at this time, the technology was used in the reality. It took some years until the first user have discovered the new options. A more practical example for Desktop publishing in the reality can be seen on the Atari ST computer. Around the year 1990 the Signum II software was available. Signum II was a graphical textprocessing software which looks similar to a modern Word software. The disadvantage of Signum was, that the software needs a lot of RAM plus an externa harddrive, so the user has to spend extra money to upgrade the Computer.
In theory, it was possible in the year 1990 to write a longer text on the Atari ST with the Signum software. Books from this time are available which are describing the workflow. But it should be mentioned, that even the Atari ST was perceived as a cheap computer compared to the Apple computers, it was some sort of advanced technology to use in the year 1990s a PC or a homecomputer to create a document. Only some enthusiast tech-pionieers have done so, but not the majority of students at the university.
So we can assume, that in the year 1990s desktop publishing wasn't invented yet. The problem was, that the computer hardware at this time was missing of larger amount of RAM and most computers had no harddrive.
From a more realistic perspective, the DTP revolution was started with IBM compatible PCs and the Windows operating system around the year 1995. At this moment, the average PC was equipped with a harddrive and large amount of memory and was able to run graphical operating systems. The average student since the year 1995 was able to type in a text on a PC. On the other hand, the sad situation is, that until the year 1995 desktop publishing for the masses wasn't there. All the books, journals and documents were created somewhere else but not on a home computer with DTP software.
This might be a be surprise, because it opens up the question how academic journals and dissertations were produced from 1900 until 1995? Like i mentioned before the workflow wasn't realized with desktop publishing. But it was working in a more distributed fashion. The interesting situation is, that all the elements of a modern text processing software were available before the 1995 but not in a single location but in different larger machines and located in different companies. For example in the early 1980s printing machines were widespread available. Not on a desktop of a single user, but in a printing house. Also high quality photography was available and the ability to create longer texts. To create a book or an academic journal before the year 1995 the workflow can be described as:
- phototypesetting
- printing machine
- entering text into a terminal at a larger mainframe
- graphic design in a dedicated company
Desktop publishing wasn't inventing book printing from scratch, but desktop publishing has combined all the steps into a single software. The difference is, that before the year 1995 academic publishing was equal to group working. The steps in the workflow have to be coordinated. In contrast, desktop publishing since the year 1995 was grouped around a single person.
___Tutorials for Academic publishing___
The untrained user may wonder why universities have no courses in which the students learn how to publish a paper. Also the topic academic publishing isn't described very well in the literature. The simple reason is that in the past it was technical not possible that somebody can write or even publish a paper. Let us assume that the normal student is living in the year 1985. At this time DTP wasn't available in the reality. Without a harddrive and high resolution graphics it is simply not possible to create an academic paper. That means, if a single student at this time was motivated to create a paper and publish it somewhere it wasn't possible.
The ability for doing so was invented much later. The first tutorials can only be written and read if the underlying technology is available. That means, if it is possible to run the MS Word software under a graphical operating system it is possible to write a tutorial how to do so. This was only possible after the year 1995.
But if desktop publishing wasn't available before the year 1995, how was it possible to fill the university library with content? Somebody needs to know how to write books, conference proceedings and papers which is published. Yes, such a meta knowledge is available but book publishing before the invention of desktop publishing is working a bit different. Academic publishing before the year 1995 was equal to group working in which larger amount of people have to coordinate each other so that at the end a printed book and a printed journal is available. It is hard or even impossible to describe the overall process in a single tutorial because each subject is handled by specialists. This makes it hard to give general advice how create a paper or how to start a new academic journal. The only thing what is available for all the book publishing is, that it will need large amount of ressources. A machine which is able to print high quality journals will cost millions of US-Dollar, and running a text processing on a mainframe will cost even more.
June 24, 2021
Creating computer games alone?
Most computer games in the 1980s and early 1990s were created in a group work. Especially the commercial high quality titles were created never by a single author but as a combination of graphics experts, musicians, programmers and marketing experts. What remains open is the reason why? Why was a group needed, why isn't it possible to create by a single person?
The answer isn't located outside the creation pipeline, it has to do with technical restrictions. The if computer hardware is slow and if support tools are missing the only way in handling the constraints is team work. Let me give an example, The Commodore 64 had a main memory of 64 kb of RAM. The only way in creating computer games was the assembly language unfurtunately, writing such programs needs a lot of time. If someone is doing so for 6 months, he has no time for creating the graphics and the sound as well. The only way to program the code and create the graphics is, that 2 and more people are working together.
Let us imagine a different sort of technology. Today the average PC has gigabyte of RAM and lots of tools are available. in addition, high level programming language like Python are available. There is no need to write the code in assembly language. Today it is possible that a single person writes down the source code, creates the graphics, invents the game design, provides the sound effects and uploads the resulting video to youtube. if the game is smaller one, a single person can do so in a weekend. There is no need for group working because better technology is available.
But what is about the quality? Would can we expect from a computer game programmed in python by a single developer? The interesting point is, that such a game has the same quality like the games in the 1980s. The only difference is, that less ressources are needed to create such a project.
Let me explain the situation from the other point of view. Group working is an indicator that a lot of resources are needed which can't be provided by a single person. Group working means, that a project will need so much time, and so much different knowledge that a larger amount of people has cooperate to create something. Group working is needed if technology is missing. this can be shown for many different domains like video games, book publishing, construction working or automotive assembly.
Perhaps it makes sense to explain who group working can be introduced to a modern video game. Suppose the idea is to create a mini game in python which has around 500 lines of code plus some low quality sprites. It is a normal jump'n'run game without any extras. Does it make sense to see this as a large scale group working project? It is a rhetorical question, because it is a typical one man programming effort. It is nothing else but a hello world demonstration of somebody who has discovered the pygame engine and likes to learn how to use it for creating a game. It is not possible and it doesn't make much sense to ask a group of people if they want to join this project. It would take more time to contact all the people than writing the small amount of codelines alone.
The typical situation in the now is, that a single person creates such a game, uploads the video into the internet, and then will read through the comments to get feedback from the end user. Such an interaction is not equal to group working but it is something else. Group working in the classical sense means, that before something was published lots of people have to interact.
Let me give a counter example. Suppose, the python language wasn't invented yet. The only computer available is a VIC20 which has to be programmed in assembly language. Under such a constraint the same project (a jump'n' run game) is much harder to realize. It is not possible for a single person in doing so. So the alternative is, either to work in a group or not creating the game at all.