Skip to content

Implementing C++ designated initializers with templetized constructor

C99 facilitates support designated initializers:

struct XYZ {
	int x,y,z;

static const struct XYZ zyx = {
	.z = 1, .y = 2, .x = 3

static const struct XYZ yxz = {
	y : 1, x : 2, z : 3

I found this handy feature very useful, since it does not require remembering order of the struct fields and simplifies refactoring and/or evolving of the existing code.
C++0X and C++1X does not allow this (please follow this link for more details)
This page has inspired me on a practical solution to this problem.

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

This article suggests an approach on adapting the Java programming language for defining static graphs and trees, gives an exercise on defining a microwave finite state automaton (FSA) using this approach and provides code sample for processing graph definitions

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.