Academic/scientific papers

A High Performance Memory Database for Web Application Caches This paper presents the architecture and characteristics of a memory database intended to be used as a cache engine for web applications. Primary goals of this database are speed and efficiency while running on SMP systems with several CPU cores (four and more). A secondary goal is the support for simple metadata structures associated with cached data that can aid in efficient use of the cache. Due to these goals, some data structures and algorithms normally associated with this field of computing needed to be adapted to the new environment. MELECON 2008
Web-enabling Cache Daemon for Complex Data One of the most common basic techniques for improving the performance of web applications is caching frequently accessed data in fast data stores, colloquially known as cache daemons. In this paper we present a cache daemon suitable for storing complex data while maintaining fine-grained control over data storage, retrieval and expiry. Data manipulation in this cache daemon is performed via standard SQL statements so we call it SQLcached. It is a practical, usable solution already implemented in several large web sites. ITI 2008
A distributed system for data storage and retrieval (in Croatian) This work studies technologies applied in building distributed peer-to-peer network systems for data storage and retrieval. These systems consist of arbitrary number of network nodes connected on a higher layer and their connectivity is not influenced by physical topologies of networks of which they are a part of - they form "overlay networks." All nodes in a peer-to-peer overlay network have equal functionality (there are no "server nodes"). This equality of nodes presents some unique problems: mutual discovery of active nodes and varied connectivity as nodes join and depart the network. Various solutions for these problems are presented and evaluated and an architecture for a peer-to-peer system is proposed. The proposed system uses TCP/IP protocols for inter-node communication and allows storage and retrieval of data records in the form of dictionaries (mappings). A prototype of the system is implemented in Java programming language, and technical and user documentation is provided in this work. thesis
Network Distributed File System in User Space File systems have traditionally been implemented in the operating system's kernel to ensure maximum possible speed and integration with the rest of the operating system, and this was true even for network file systems such as NFS. However, available CPU power on mainstream architectures continues to increase daily at a rate which is not closely followed by speed of computer network equipment. When considering development of network-distributed file systems today it becomes clear that speed improvements offered by pure kernel-side implementations are no longer significant given the bandwidth and latencies of computer networks. Recent efforts in enabling user-space file system implementations on free / open source Unix-like operating systems have made it possible to create a solution for distributing file system data over computer networks entirely in user-space. In this work we present such a solution - the Trivially Distributed File System. ITI 2006
A hierarchical file system interface to database-based content management application When considering the usability of computer applications one, of the most important factors is the interface they provide for data manipulation. Historically, though each application has defined it's own user interface, some types of interfaces have emerged as most applicable for certain types of data. Over time, some applications (or types of applications) have gained enough popularity that they became ubiquitous and well-known to most computer users to the extent that users consider them the norm, and as such, optimal for their daily tasks. In this paper we present an idea and implemented method of exposing data from a web content management system in the form of hierarchical file system, manageable and editable by usual file management and office application tools. ITI 2006
On recording and presentation of measurement data acquired via web services Web services have greatly eased exchange of data, but the usage of web services carries its own specific downsides as well as advantages. Most notable of these are latency of transmission and reliability of server equipment. In this work a straightforward solution for distribution and representation of measurement data was created. This solution is comprised of two parts: a back end process which communicates with the data source via a web service protocol based on XML (in Python language), and a front-end module for the FERweb Content management system (in PHP language). These processes communicate asynchronously via the database. MIPRO 2006
Distributing a Web-based Content Management System - "FERweb" This work explores various ways of distributing the FERweb CMS system (a web-based Content Management System of the University of Zagreb, Faculty of Electrical engineering and computing) Primary aim of this project is enhancing the performance of the system, within the constraint that the efforts must be based on existing technologies used in the project and with minimal impact on the existing code. ITI 2005

General papers

On implementation of switch() in gccJanuary 2 2005 A simple exploration of how the switch() construct is compiled into machine code in gcc 3.4
Distribuding Web-based CMSJune 24, 2005 This is the "official" version of the following paper, presented at the ITI 2005 conference.
Web CMS DistributionMay 7, 2004 This work explores various ways of making the FERweb CMS system (a web-based Content Management System of the Faculty of electrical engineering and computing at the University of Zagreb) a "distributed system". Here, the notion of a distributed system is taken quite literally, and stands for executing as many components of the system as possible on as many different computer systems. The only limits here imposed are that of the practical value of such distribution . its end result must be either an increase of total performance delivered to the user of the system, an increase of overall system reliability, or providing distinct new functionality that was previously not possible, and that the efforts must be based on existing technologies used in the project already, with minimal impact on the existing code. Where appropriate and where available resources permit, measurements are taken and reported.
OS BenchmarkApril 10, 2004 This article presents the results of benchmarking various operating systems. The benchmarks include synthetic tests (bytebench, ubench, bonnie++) and, more importantly, semi-"real world" tests (pgbench, web CMS). Operating systems benchmarked are various versions of FreeBSD, DragonflyBSD, NetBSD and Linux.
GCC as Optimising CompilerFeb 17, 2004 This paper aims to present and analyse some of the optimisations that are conducted by the GNU C compiler, in version 3.3.4 (on a i386 FreeBSD system). This is only an informal and introductory paper and is not meant to be comprehensive nor complete, only to give insight at things that are happening ``behind the scenes''.
Description of PHP-RPC protocolJan 15, 2004 Because of the need for a truly light-weight RPC mechanism in PHP, a new protocol is formed: PHP-RPC, to be used instead of XML-RPC when communicating to purely PHP applications. This protocol is faster and has a smaller overhead.

Curriculum papers (mostly in Croatian)

RDRAM MemorijaFeb 8, 2004 Ovaj rad opisuje osnovni rad Direct Rambus RAM sustava, kakav se još uvijek koristi. Na kraju rada je dan kratak opis promjena u novijim inačicama sustava.
KSE sustav u FreeBSD 5.0Dec 2002 Cilj ovog rada je prikazati mogućnosti postizanja višedretvenog rada u operacijskom sustavu FreeBSD 5.0, sa posebnim osvrtom na novorazvijeni sustav KSE: Kernel Scheduled Entities koji donosi mnoga poboljšanja u odnosu na prethodno dostupna rješenja, posebno u podršci za iskorištavanje više sistemskih procesora (ukoliko su prisutni) i konkurentnog izvršavanja poziva jezgre operacijskog sustava. Praktični dio rada demonstrira korištenje različitih postojećih metoda postizanja višedretvenosti u aplikacijama, te njihove posljedice za aplikaciju i cijeli sustav.

Other (conference presentations, etc.)

FreeBSD's finstallMay, 2008 Presentation of finstall's status, given at BSDCan 2008.
FreeBSD's finstallMay, 2007 Presentation of new FreeBSD graphical installer, given at BSDCan 2007.
FreeBSD's GVIRSTORMay, 2007 Presentation of GEOM_VIRSTOR kernel module for FreeBSD, givent at BSDCan 2007.
WebDAV u uredskom okruženjuApril, 2005 Korištenje WebDAV-a u poslovnom okruženju, primjene, poslužitelji, klijenti.
FreeBSD 5.2April, 2004 FreeBSD arhitektura i okruženje, novosti u 5.2, napredne mogućnosti uporabe
Kako ubrzati PHP programMar, 2003 PHP je spor! Zbog prilično "labave" sintakse, PHP interpreter mora prolaziti kroz puno više provjera nego za neke druge skriptne jezike. PHP-ov "model programiranja" je često neoptimalan s resursima...
Uvod u FreeBSDMar, 2003 Čiji Unix je dulji? Kratka povijest vremena, BSDL vs GPL, BSD is dead! *BSD, Prednosti FreeBSDa...

There's more!

There's a separate section containing my FreeBSD papers.