Skip to content

Tablet-friendly web gallery engine

Recently I’ve been looking for a tablet-friendly web gallery engine to browse our family’s photo archive. I’ve googled a lot, read couple dozen of reviews, and finally came up with a short list of five galleries to evaluate. Indeed, managed to install only three of them and, unfortunately, none of them was exact match to my expectations. So, I took the best match – the PHP Picture Index and make a theme for it.
The results you may see on this demo page
The theme phppi-theme-max-1.0 is available for downloading via this page

Model-Document-Renderer Design Pattern

Model-Document-Renderer is an evolution of Passive-View design pattern, suggested by Martin Fowler [1]. The difference is mainly in the terminology and in the suggested way of decomposing the application. (Continued)

Case study on web frameworks


The goal of this case-study is to make a short overview of the development tools for developing web-based business applications. The tools must (should) satisfy the following criteria:

Exercise on implementing collaborations with ObjectTeams/Java


ObjectTeams/Java (OT/J) is an extension to Java programming language that facilitates roles and collaborations as the first class language constructs. This article is an exercise on using (OT/J) for implementing collaborations.

Subject area

This exercise considers two bank operations – money transfer and fund cashing. The course of events for these two operations is very similar in basic and differs in details. Considering this, it is implemented as an abstract withdraw routine leaving detail differences to concrete implementations.

Using Java langauge constructs to define static graphs and trees

Graphs, networks and trees are commonly used to model application domains. In some cases these structures are highly dynamic and can not be defined at design time. Yet there are also cases when they are rather static and do not change during the application life cycle. An example of such static structure is a finite state automaton – defined as a part of design, it remains unchanged at the run-time.

A convenient approach on keeping SQL in Java

Where to keep SQL statements? This question arises almost for any more-less sophisticated Java application that accesses DBMS. Two most common approaches are: (1) as string constants in Java and (2) as text in external files. Both these approaches have significant drawbacks. Java strings get complicated when a string is too long to fit in one line, leading to a difficult to read and hard to maintain SQL code. SQL in external files are not easy to lookup and require some mapping technique to associate statement in the external file with a place in Java where it is needed. Also, as development goes, the text file adheres with more and more orphan SQL statements and there is no easy way to clean them up. This article suggests an approach that combines two mentioned above and inherits their strong sides.

Theoretical aspects of dimming an incandescent lamp


A dimmer is an electronic device that controls alternate voltage applied to a lamp through delivering a selected portion of the mains sinusoid. Engineer, designing a dimmer needs to estimate how big this portion should be to get a desired luminance level. This article uses a model of incandescent lamp, tungsten resistivity, and human eye spectral efficiency to derive dependency of produced luminous flux over the voltage, gives a simple analytical function that describes this dependency with good accuracy (±2% comparing to the model).


Customizing ErWin templates for PostgreSQL

ErWin 7.2 does not provide support for PostgreSQL, indeed with few tricks it still can be used to model database and generate valid SQL code.


Simplescope v1.1 released

This is a maintenance release of the product that includes the following fixes:
1. SISAN v 1.1
  1.1. Added SISAM88 hardware schematic
  1.2. Fixed TX/RX typo on SISAM690 schematic
  1.3. Fixed issue with beam pattern affecting ruler pattern
2. SISAM1 v 1.1
  2.1. Fixed diagnostic failure, which made product unusable if high baudrate cannot be set
  2.2. Fixed issue with BREAK is not handled properly
Download Simplescope v1.1.


MIHA675 – Multi Input Hall Automaton

Previous examples illustrated VELOOS programming aspects. This post provides an example of using object oriented paradigm for designing VELOOS application. Unlike the previous examples which were purely programming exercises, this example is dedicated to a utilitarian home appliance application and provides a "reference design" for VELOOS applications.


This blog is protected by dr Dave\'s Spam Karma 2: 202 Spams eaten and counting...