Work Portfolio

Mikko Johannes Koivunalho


This work portfolio contains extracts and examples of my projects and other works in the field of computing. It is sectioned into projects. In each case the used programming language has also been mentioned.

JAVASCRIPT: ScrollingStringGadget

ScrollingStringGadget is a Javascript object class. It contains the class itself and its dependant routines. ScrollingStringGadget-object can be attached to a text field on a HTML pages. According to users commands the text scrolls from right edge to left edge and beyond.

ScrollingStringGadget, PingpongStringGadget and other classes were part of a WWW site constructed mainly with HTML. PingpongStringGadget object is attached to text field like ScrollingStringGadget but instead of scrolling it moves the text between the left and right edge of the field like a pingpong ball between two walls.


EIFFEL: Viitenumero

Viitenumero is a program done with the object oriented language Eiffel. From its only parametre it calculates the reference number which Finnish banks and companies use to identify an invoice. The top level of Eiffel programs is a class, too, the execution of which begins from the make-routine at the time of creation.

The program contains many debug-commands which are used to help find bugs. They all disappear when the program is compiled and optimized for the final version.


C: Viite-Handler

Viite-Handler is a filing system which the user can install into his system by any name he chooses, e.g. "VIITENUMERO:". User opens a file, the name of which is a string of numbers from which the reference number is calculated. The content of the file is that reference number. It can also be cut into string of five numbers if user wishes so. E.g. the file "VIITENUMERO:123456" contains the string "12 34561".

Viite-Handler was programmed to be a machine friendly way to calculate millions of reference numbers instead of executing the program "Viitenumero" again and again.

Each time when executing "Viitenumero" the operating system has to start a process, reserve for it some memory and a place in the process list, open stdio filehandles etc. Viite-Handler instead is a permanent process running in the background like a server or a daemon. Viite-Handler is also an example of how to use a filing system in other, more dynamic ways than just a physical mass storage.

If Viite-Handler is installed in the system by name "VIITENUMERO:" it can be used e.g. this way in command shell:

Shell: Type VIITENUMERO:123456
12 34561

file Viite-Handler.c contains the program which executes the Handler program and it becomes attached to the system. This in turn receives the request of open, read, write, close, etc. which are delivered by the operating system. The source code operating system dependant. It is programmed for AmigaOS.

The program contains many debug-commands which are used to help find bugs. They all disappear when the program is compiled and optimized for the final version. DPutStr()-routine outputs its parametre to the serial port. A Handler, which when executed becomes a part of the operating system itself, cannot use the normal strerror filehandle.

File Viitenumero.c contains three C routines. They are all in a strict contractual relation even to each other. The comments in the beginning of the routine declare it action and output when the input remains in the defined boundaries.

File Viitenumero.h is just a normal header file.

Routines are all ANSI-C compatible.


C++: A register for members

The C++ class Society_Member is part of a bigger project done for Kakskertaseury ry, a society of citizens living in Kakskerta, a district of Turku. The project consisted of a register program and programs for the printing of membership invoices.

In addition to Society_Member class the project had classes Soc_Mem_ListA and Soc_Mem_DBfile. Soc_Mem_ListA is a container class for the object of Society_Member class. Soc_Mem_DBfile contains the routines needed to read or write the whole register to a mass storage media. The database is written as a ASCII file in order to be able to read or change it - if necessary - without the register program.


PERL: CPAN Modules

Text::HistogramChart creates graphical charts for terminal displays or any other display device where bitmap graphics is not available! You can supply the Y axel legend (vertical) values or Text::HistogramChart can calculate them from the input values.

Execute external (shell) command and gather stdout and stderr!


EIFFEL: Yhteistilaus

Yhteistilaus is database with a WWW user interface, and the required maintenance programs. Yhteistilaus was programmed for the Turun yliopiston luomupiiri ry. That society arranges once a month a delivery of ecological foodstuffs from the local farms and other producers. Via the WWW interface the members leave their order a week before all orders are totalled and sent to the suppliers. The program outputs receipts to all orderers.

Yhteistilaus is large project which requires many classes made specifically for it, e.g. CONVERSIONS, USER_INTERACTION, YHTEISTILAUS_ROUTINES, GET_CURRENT_DATE_ROUTINES, STRING_COMPILATION ja STRUCTURED_FILE.

STRUCTURED_FILE is an all purpose file format easily attached to any program. A file in STRUCTURED_FILE format can be edited with an ordinary text editor. Hidden from user it keeps as backups two previous version of the file, i.e. the same file has three versions: file, file.bak and file.bkk. STRUCTURED_FILE is an easy solution which can also be upgraded if necessary because it has an inbuilt version controll. STRUCTURED_FILE is a file format in which every variable is in its own line and can contain comment lines before and after. The variable itself can have more than one lines as long as the last line is followed a line containing only text "MULTI-LINE_END". This text can also easily be changed to something else inside the very file.

The program contains many debug-commands which are used to help find bugs. They all disappear when the program is compiled and optimized for the final version.

Homepages of Luomupiiri:

Interface to Yhteistilaus database:


Interner Service Provider's Startup Packet

An ISP's startup packet for Amiga line of computers (in 1997) assembled for Icenet Oy. Intended for the Amiga user who has just purchased Icenet's Internet service. The packet contains two diskettes with programs for Internet (browser, telnet client, irc client etc.) and an installer which also configured the programmes to work with Icenet's connections.

Installer compiled with the AmigaOS's own script language for the Installer utility, syntax similar to Lisp.

OpenVMS DCL: Viimkone

Viimkone is a scriptfile. Its parametres are a userid and a list mainframes where the userid is presumed to have visited. Viimkone uses the finger program to ask all those computers when the userid last visited them and outputs the last time and which machine the userid visited.

Viimkone is programmed with the OpenVMS operating system's DCL (Digital Command Language) script language.

Viimkone was programmed for the Turku University Computer Science as part of studies. It was also translated to work with the Unix Sh-shell.


COBOL: A register for members

Member database. Implemented using both IBM VisualAge COBOL (Windows XP) and HP/Compaq/DEC COBOL (OpenVMS). WRITELOG.CBL is a subprogram which is called when a change is implemented in the database. Every change gets recorded and the log file also shows the previous values of data fiels. Program has a GUI using terminal graphics (SCREEN SECTION).


HTML and HSC: This Document

This document is written with HTML using the HSC (HTML Sucks Completely) -preprocessor.

[Best viewed with Any Browser] [Built With HSC - HTML Sucks Completely] Made With Cascading Style Sheets Built With Amiga

Copyright © Mikko Johannes Koivunalho 1997---2007
email: mikko . koivunalho NOSPAM kolumbus . fi

This page last updated or changed 11.09.2007.