The blog was upgraded
The blog was upgraded.
In fact it was completely rewritten to use all new features of CppCMS 0.99.7. It was not a simple task, as this blog was the first application implemented with CppCMS. It carried lots of legacy code. For example the it hadn't even used sessions or existing form validation tools at all.
So the new version that was rewritten with all new tools and now safe application to use.
It's code can be found in svn at:
https://cppcms.svn.sourceforge.net/svnroot/cppcms/blog/trunk
After running the new version on this web site for a while I'll release it officially with all appropriate build instructions and release notes.
Meanwhile if you want to try it, you need following:
- CppCMS 0.99.7 and higher
- CppDB
- discount markdown library: http://www.pell.portland.or.us/~orc/Code/discount/
- ImageMagick or GraphicsMagick library (for captcha)
Build it with CMake as usual (inside sources)
mkdir build
cd build
cmake ..
make
And then you can create a database using sql/mysql.sql
, sql/postgresql.sql
or sql/sqlite3.sql
scripts, edit config.js according to the DB and run it as usual.
./blog -c ../config.js
On first access you'll be requested to configure the blog.
Currently it supports:
- Two languages: Hebrew and English
- Two skins "OrangeSky" and "Contendend"
- Three databases PostgreSQL, MySQL and Sqlite3
Enjoy
Who Uses CppCMS?
Who uses CppCMS? It is a big question. Not because there are no CppCMS users. There are plenty, just take a look on CppCMS users mailing list. However, almost nobody tells us about it
I had recently discovered a small company Dhiti that uses CppCMS for their RESTful web services like: http://dive.dhiti.com, http://drilll.com and http://intweetion.com.
I was quite excited about this. I had also remembered that Tatoeba project developers were planing to rewrite their software based on CakePHP in C++ using CppCMS. So I had looked once again on. Indeed, the process had started. The announcement was published in Tatoeba Blog. More then that, I discovered that alpha-version of Tatoeba written in C++ was already on the web: http://tato.sysko.fr, and had shown significant performance improvements.
So...
Dear CppCMS users,
So if you have an active public web site running on CppCMS, if your company or your project embeds CppCMS in your applications, please tell us.
There is a page on the CppCMS's wiki that is created especially for this purpose:
"Who Uses CppCMS"
I will be grateful if you add your projects to the "Who Uses CppCMS" page.
Boost.Locale was accepted into Boost
Now it is official. Boost.Locale was accepted into Boost.
So the Localization part of CppCMS would be spread all over the C++ world.
Formal Review of Boost.Locale starts today
The formal review of the Boost.Locale library starts today.
I hope it would pass the review and would be accepted as official Boost library.
CppCMS 0.99.7 Rleased
Security Bugs:
- Fixed incorrect key parsing caused reduced entropy of AES and HMAC keys
- Fixed incorrect HMAC key definition when using separate keys for CBC and MAC
All users are encouraged to upgrade to latest version, if not possible do following:
Use
session.client.key
orsession.client.key_file
over separatesession.client.cbc
andsession.client.hmac
orsession.client.cbc_key
andsession.client.hmac_file
Note: if you use
session.client.hmac
orsession.client.hmac_file
only - MAC authentication without encryption then the problem does not affects you.Increase secret key size by at least 1.5 - this is relevant for both encryption and hmac authentication.
New Features:
URL Mapping - the opposite of URL Dispatching is created, now every URL can be easily abstracted from the physical URL,
It allows creating hierarchies of applications and referring each other using named URL.
Caching system:
- Added support of dependent triggers recording using cppcms::triggers_recorder class
- Added cache support at templates level
- Added "tee" filter for better caching support of HTML fragments
Template System
- Provided basic unit-testing
- Provided access too application that renders the view, giving basics for access to many features like sessions, cache and so on.
- Added
<% url ... %>
,<% cache ...%>
,<% trigger ... %>
tags - Improved error reporting
- Added
<%= variable | filters%>
style of rendering to allow override reserved words and variables
Updated Message Board example to use url mapping
Boost.Locale features:
- Default locale is UTF-8 on windows
- Support of Gregorian calendar for non-ICU backends
- Support of checking if the time is in daylight savings time to the calendar
- Performance optimization in formatting and collation
Redesigned booster::socket class, split into set of smaller classes according to their roles
Optimization for embedded builds adds support of removing of modules that may be not useful for embedded applications:
- Cache storage, prefork storage, distributed cache storage
- GZip compression
Support of graceful shutdown of fastcgi process by Apache on Windows using libfastcgi waiting style
Improved boost::thread api to support detach member function
Booster: support of timegm, making booster::ptime symmetric.
Bugs:
- Fixed bug #3177531 - invalid port/ip returned in CGI headers when using "list" of apis
- Cleanup of set() property, make sure it is set to false only in cases where it is really needed, and turn it on by default on most widgets Fixing F.R. #3177317
- Changed warning level to -Wall -Wextra, warnings cleanup
- Boost.Locale - workaround of ICU time zone detection bug
- Fixed incorrect rendering of input form when pointer involved
- Fixed issue with urandom device when running with limited user under Windows
- Fixes of MSVC-2005 issues