Books, drafts, and internal reports


Vilém Vychodil. Linux: Příručka českého uživatele (in Czech)
ISBN 80-7226-333-1, Computer Press 2003, Brno
[Title page] This is an introductory book for beginning and advanced GNU/Linux users. The book covers several basic topics and it is intended to give the user an overview of the principles of GNU/Linux and other Unix-like operating systems. An attention is paid to the classical style of work, namely shell programming, manipulating the file systems, process management, stream data editing, basic networking, running the networked and remote clients. After reading this book, users should be ready to work in any GNU/Linux operating system on an advanced level, i.e. they should be able to create their own scripts and so on. For Czech-speaking people there is a support page, where one can find more details on this book.
Radim Bělohlávek, Vilém Vychodil. Fuzzy Equational Logic (Springer Series: Studies in Fuzziness and Soft Computing, Vol. 186)
ISBN 3-540-26254-7, Springer-Verlag 2005, Berlin Heidelberg
[Title page] “Fuzzy Equational Logic” deals with similarity relations defined on a set with functions and develops a universal algebra from the point of view of fuzzy logic. The book presents basic mathematical properties of structures consisting of similarity-preserving functions and logics for reasoning about similarities. The presented text is self-contained. The notions and results are demonstrated through examples which are graphically illustrated. The book is useful for researchers, but it can also be used as a graduate text.

Unpublished notes for students

The following drafts, articles and internal reports were written mostly for students. Their form, content and overall credibility differs a lot. Some of them were written in a very informal way (some of them may be inaccurate, too much brief or buggy). On the other hand, most of the following papers can be used as an additional source for self-study.

Vilém Vychodil. LALR(1) Automata Construction (in Czech)
LALR(1) grammars play significant role in the syntactic analysis. This paper discusses the construction of LALR(1) automata. Moreover, it tries to make an easy-to-understand comparison between Simple LR(1) grammars and LALR(1) grammars. The first part emphasizes the main difference among all the sorts of deterministic push-down automata. The second part is aimed at the shift/reduce and reduce/reduce conflicts. There are several simple examples, that demonstrate basic approaches to the conflict resolution.
Vilém Vychodil. RSA Algorithm (in Czech)
This paper describes elementary principles of the RSA algorithm. These include the theoretical background and also the basic implementation notes. The reader is supposed to have almost no mathematical experience. Every explicit notion is tried to be explained. Nevertheless, the text contains proof of the algorithm validity. A special care is attended to technical and implementation details: heuristic prime tests and message encoding/decoding. The whole algorithm is also available as an example source code.
Vilém Vychodil. Simple Fuzzy Clustering Method (in Czech)
Clustering algorithms are widely applicable in pattern recognition and data analysis. This paper briefly describes very simple clustering method based on fuzzy equivalence relation. The aim of this paper is to make an introduction to just one clustering method in its simplest form. The preface contains an informal introduction to necessary notions like residuated lattices, fuzzy sets, fuzzy relations and a-cuts. The included algorithm is directly implementable.
Vilém Vychodil. MPI Usage for Distributed Numerical Computation (in Czech)
This article is a brief introduction to the distributed computational methods. It introduces two algorithms, simple approximation and parallelized Jacobi iteration method. Both problems were solved using one of the implementations of MPI (Message Passing Interface), a common message system capable to broke an interprocess communication. You can download the example files. Note that the examples are designed to work on a platform without shared memory, so the basic communication principle is not based on “sharing memory”, but rather on “sending messages”.
Vilém Vychodil. The XSL Transforming Language (in Czech)
This paper is a short introduction to the XSL Transforming Language (sometimes known as XSLT), and its applications in electronic publishing. The main purpose of this document is to show the possibility to separate the logical information of the employed data and its presentation. XSLT can be also used as the general transforming language, but a lot of problems have to be solved in a “strange way”. You can download demonstration examples.
Vilém Vychodil. UP Documentation Styles (in Czech)
This document describes common styles which are used to create various documents. The document also contains a gentle introduction to the principles of the typesetting system TeX. The main objective is to explain differences between TeX (as the formating tool) and the output driver on the other side. The styles included are capable to be used with dvips and dvipdfm at the same time. One LaTeX source can be used to create these output formats. All styles are intended for LaTeX format. You can download the style package.
Vilém Vychodil. Searching in Finite State Space (in Czech)
This paper is a fragment of previously planned report. It contains topics on searching in state space, an informal introduction to the theory of strategic reasoning and multicriterial selections. The paper contains almost no proofs and it is written rather popular than factual. On the other hand, the text can be used as an aid (in conjunction with other resources) in implementation of simple strategic games, etc. Take a look at the bibliography for additional materials.
Vilém Vychodil. On Socket Communication in the UNIX Operating System (in Czech)
Socket is the fundamental communication mechanism, it was originally implemented for the Berkeley UNIX System (known as BSD). This paper contains information for TCP/IP and UNIX domain programming using this mechanism. The topic is demonstrated in the development environment of GNU/Linux. You can download the example sources. Among other things, the paper describes the basic resolver mechanisms and UNIX programming interface for the socket communication. The sources contains implementation for standalone servers and their client parts.
Vilém Vychodil. Logical Volume Manager Overview (in Czech)
The LVM adds a kind of virtual disks and virtual partitions functionality to the Linux operating system. It achieves this by adding an additional layer between the physical peripherals and the I/O interface in the kernel. This allows the concatenation of several disk partitions or total disks (so-called physical volumes) or even multiple devices to form a storage pool (so-called volume group) with allocation units called physical extents. This article is a short introduction to LVM and its installation.
Vilém Vychodil. Basic Usage of CORBA Distributed Objects (in Czech)
CORBA stands for Common Object Request Broker Architecture --- a middleware capable to broke the communication between distributed objects in a heterogeneous environment. This paper is aimed to show the basic concepts of distributed objects. The programming of CORBA applications is somewhat special, the programmer has to care about the communication. This includes, among other things, server implementation and mechanism for announcing object references. If you want to try out the examples, download the source code or the binary distribution. The examples were written using C++ (MICO) and Java (JacORB).
Vilém Vychodil. On Computability and Transfinite Problems (in Czech)
This paper contains an informal introduction to this topic. All proofs were made in a simple and informative way, just to show the connection between the problems. The second part of this paper is concerned in the transfinite problems, i.e. such problems that cannot be solved in a human imaginable time.

Other unpublished drafts

The following collection contains unpublished drafts, technical notes, pointers for programmers, etc. (all unpublished). Some of them are accessible from other WWW sites, e.g.

Vilém Vychodil. Red-Black and AVL Tree Implementation for Guile Scheme
I am interested in Guile Scheme. This interpreter is encouraged by Richard M. Stallman as the official extension language for the GNU Project. The language has implemented a lot of reliable data structures and this paper briefly describes the implementation of Red-Black and AVL trees. I decided to implement these data structures, because they can efficiently represent partially ordered sets and the implementation overhead is acceptable.