Books, drafts, and internal reports
Books
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 Unixlike
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 Czechspeaking people there is
a
support page,
where one can find more details on this book.
“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 similaritypreserving functions and logics
for reasoning about similarities. The presented text is selfcontained.
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 selfstudy.
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 easytounderstand
comparison between Simple LR(1) grammars and LALR(1) grammars.
The first part emphasizes the main difference among all the sorts of
deterministic pushdown 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 acuts.
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
(socalled physical volumes) or even multiple devices
to form a storage pool (socalled 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.
http://www.gnu.org.
Vilém Vychodil.
RedBlack 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 RedBlack and
AVL trees. I decided to implement these data structures,
because they can efficiently represent partially ordered sets and
the implementation overhead is acceptable.