Home  /  RSS  /  RSS Comments  /  RSS for Progress  /  Enter

Posts in category ‘Progress’.

Building CppCMS

Monday, May 19, 2008, by artyom ; Posted in: Progress; 6 comments

I had not published any official alpha or beta release yet, however, anyone who wants to use it can install the framework quite easily (I think).

There are three major parts of the framework:

  1. Templates support module -- libtmpl or templates subproject.
  2. C++ Wrapper for dbi DB access library -- libdbixx or dbixx subproject
  3. Base framework -- libcppcms or framework subproject.
  4. This blog -- an example how to use CppCMS or cms subproject

Thus in order to install the system we need to do following:

more...

Blog Upgrade

Monday, May 19, 2008, by artyom ; Posted in: Progress; 0 comments

I've been working for quite a long time on a new version of this blog. I had two primary reasons to put 100% of development effort to this quite simple CMS:

  1. I wanted to understand the real needs for different parts of this framework: templates, dbixx and others.
  2. I felt that an old version has too few features that do not allow me to write posts I really need.
  3. I want to replace my Hebrew Blog that is based on WordPress with something mature enough to be able to migrate to new CMS.
    This is mostly "political" reason -- I should use CMS I write with this framework.
more...

Thread Safe Implementation of GNU gettext

Saturday, April 26, 2008, by artyom ; Posted in: Progress, Templates, Unicode and Localization; 0 comments

There is widely available software internationalization tool called GNU gettext. Is is used as base for almost all FOSS software tools. It has binding to almost every language and supports many platforms including Win32.

How does it works? In any place you need to display a string that may potentially show in other language then English you just write:

printf(gettext("Hello World\n"));

And you get the required translation for this string (if available).

In 99% of cases this is good enough. However, as you can see, there is no parameter "target language". It is defined for entry application.

What happends if you need to display this string in different languages? You need to switch locale, and this operation is not thread safe. In most of cases you do not need to do this, because almost all applications will "talk" in single language that user had asked. However this is not the case of web based applications.

Certain web application allow you to display content in several languages: think of government site that should display information in three languages: Hebrew, Arabic and English. So you may need to define the translation per each session you open or use.

So, if you write a multithreaded FastCGI application that supports different languages is signle instance you can't use gettext.

more...

The Roadmap to The First Beta Version of CppCMS

Wednesday, April 16, 2008, by artyom ; Posted in: Progress, Storage, Templates, Framework, Cache; 4 comments

After quite a long period of development I had decided to get prepared to first public beta release of CppCMS.

The major components of this blog and the framework I want to introduce in first beta are following:

There are lots of work to do, but CppCMS now looks much mature then before.

more...

New Templates System

Sunday, March 23, 2008, by artyom ; Posted in: Progress, Benchmarks, Templates; 8 comments

New templates system was introduces to the CppCMS framework. It is based on ideas of dynamic typed languages inside static typed C++.

The original template system had several problems:

  1. The each template variable was referenced by and integer key that was generated during compilation of templates.
  2. The rendering process required from the developer some kind of activity -- update content values according to requests from rendering engine.
  3. The values of the entries where limited to string, integer and boolean values.

In any case, the design of the first template system was just unacceptable, thus new template system was build.

It introduced following features:

Additional features I'm still working on them are:

more...

next page

next page

Pages

Categories