Opus 6.0.0008

2014-09-10 – 13:00

2014-09-10 – 15:00

2014-09-10 – 13:07

147 sources have been modified between opus 6.0.0005. The drop
in performance that was observed between 5.6.0004 and
6.0.0003 has not been reduced significantly. Though it must be
noticed that 6.0.0008 has lot more tracing than its
predecessors. which somewhat slows our framework down.

Opus 6.0.0005

2014-04-21 – 12:16

2014-04-21 – 20:00

2014-09-10 – 13:07

59 sources have been modified between opus 6.0.0001 and
6.0.0005. The LSCursor class is now fully
documented. The LSTag class now supports the addition of
custom data attributes. Few minor bugs have also been corrected in the
class so that anchor and style tags can be used in conjunction with
divisions. A full example of this new addition has been provided that
mimics (very partially though) the JQuery mobile … just to check
if the new features works as expected. As per performance, we're closed
to the original speed of Vae Soli! 5.6.0004.

6.0.0003: drop in performance

2014-02-14 – 10:30

2014-02-14 – 12:00

2014-09-10 – 13:07

Vae Soli! has evolved considerably since version 5.6.0003. That
deserved a new performance test whose results are published here:

This leads to the conclusion that we have lost in performance by a factor of
36%. This result will now drive the next round of work around our framework.

"Nuggets" is out :6.0.0000

2013-12-31 – 21:00

2013-12-31 – 22:30

2014-09-10 – 13:07

Vae Soli! 6.0.0000 has been released few minutes ago. This opus
is called Nuggets as nuggets represent the most
important feature that we have released lately and we're proud to come
before of our users with a framework that is one of its kind, reaching
content parity in any environment (not only mobile !)

Nuggets

Vae Soli! makes it possible to achieve content parity across platforms and
devices. By content parity we mean "not exactly the same content but an
equivalent experience".

Content parity is achieved by calls to "variations" that apply to both
content and form. Variations are what makes appropriate content a reality
via means of delivery, structure, style and substance.

Nuggets do reinforce the "variations" principle of Vae Soli! as
smaller meaningful chunks that are associated with queryable metadata. This
operation makes content chunks reusable in umpteen contexts in a limitless
variations motion. nuggets are especially geared up at mobile
experience and needs.

New Benchmark

2013-10-16 – 22:45

2013-10-17 – 08:00

2014-09-10 – 13:07

As of opus 5.6.0003 the Vae Soli! team has decided to opt for a
new benchmark model.

Domain: www.vaesol.poc (localhost — no network transmission)

100 concurrent users

16 pages (each page is accessible so that the
everyone can judge its complexity) in that order :

Due to caching mechanisms in place on some pages, we may observe variations
in terms of execution counts : this is essentially due to internal
caching and long expiration headers for some pages. These differences are
considered to be non-significant in a large set of trials.

The only KPI that matters for the Vae Soli! team is the average
generation time of a page. Our benchmark is designed with that goal
in mind : to see what time it requires to generate ONE
page. Not to treat data, not to see if what has been rendered is
browser optimized, not to see how many resources have been references,
…

Our benchmark is also constructed so that we can run a test at any time we
want without being obliged to monopolize a huge infrastructure. Typically,
we want to obtain results in less than 1 minute, which
means that we want the test + results of the tests (no data !; we want
information !) in less than 1 minute.

Because our benchmark does not take long to complete, we can run it several
times a day which allows quick comparison and quick opinion of the changes
we just completed.

As of now, we shall create specific benchmark pages that will remain
completely untouched (not the slighest variation) from performance run to
performance run as to be able to draw conclusions based on past performances
and current performances. This work is foreseen in the Vae Soli!
6.0.0000 roadmap.

Vae Soli! applies its own Coding Rules !

2013-10-04 – 09:12

2013-10-04 – 09:12

2014-09-10 – 13:07

With the publication of our Coding Rules a
bunch of things have changed @Vae Soli! and Vae Soli! has gotten additional
focus, from a strict code point of view but also from a documentation point
of view. Think of LSUnitTesting for example. This is now in
place in 50% of our code and we continue building nice and useful assertions
that contribute to the automation of our tests, functional and NON
functional (performance testing for example).

5.6.0000: with Guide 1.3.0015

2013-10-02 – 19:15

2013-10-02 – 20:00

2014-09-10 – 13:07

Not only refactoring of Vae Soli! is on the go but Guide has been revamped
considerably to encompass structural Unit Testing.

A set of classes have quitted Guide to migrate in the fold of
Vae Soli! : LSFunction, LSParameter,
LSProperty, LSAssertion, … Not all of them
though have joined this big transhumance but the movement is clearly
started.

With this very unique revamping, not only Guide has started a diet but
Vae Soli! is now even richer. One class that completes the arsenal is the
brand new LSUnitTesting class that exposes one single static
method : LSUnitTesting::assert(). This is now becoming the
de facto standard to document classes and to execute Unit Testing inside of
the comments of each function/method. Guide (The Vae Soli! Documentor) is
the one tool that triggers all this which pushes our documentation to a new
level of maturity.

With 127 classes that are documented so far (which by the
way means that the documentation page uses
127 alternate storages (see multi-storage)) the time is not too far as to
envisage the full coverage of all our classes and functions. Stay tuned.

5.6.0000: Intensive Refactoring

2013-09-28 – 10:55

2013-09-28 – 20:00

2014-09-10 – 13:07

Refactoring is a very delicate operation. It needs to be conducted with a
lot of focus in little increments. The title of this post seems to imply
that we have done this refactoring exercise in a kind of big movement,
crunching the code that was conceived before to get it in smaller chunks,
more targeted towards their initial goals. Not so.

Opus 5.6.0000 presents the results in one go of a larger
refactoring exercise that started 6 months ago, respecting the "small
increments" pattern advocated by Erich Gamma.

Furthermore, if we present it now it's because it represents a hinge in the
even larger exercise : what we aim at is to have a brand newly
architectured framework that will be made available in version
6.0.0000.

To quote Gamma, Refactoring is risky. It requires changes to working
code that can introduce subtle bugs. Refactoring, if not done properly,
can set you back days, even weeks.Refactoring – Improving
The Design of Existing Code – Preface of Erich Gamma.

Finer-grained classes, more separate of concerns, moving properties and
methods to super classes, introducing new classes, decoupling of classes,
more design patterns, … this is the kind of work we're into at this
very moment. All that with better documentation.

With these refactored classes and set of functions, Vae Soli! was submitted
to a small performance testing run on a single Windows 8 - Family Edition,
Toshiba Satellite, Core I7, with 16 Mb RAM. Tracing level set to
48 (warning level). Here are the results :

The conclusions are exciting. The performance is
truly exceptional (97 ms per execution in unitary testing) and
the overall solution seems to scale well with higher volumes (average of
160 ms by simulating 50 simultaneous users on a single machine
– no load balancing!). Even the maximum execution time is very much
under the usual threshold: 0.4 sec. Transfer times (network
layer) are completely disregarded in these results : only the pure
performance of Apache + PHP + Vae Soli! is considered. Browser rendering is
also completely disregarded. We stress the importance of the
environment : single Windows 8 - Family Edition, Toshiba Satellite,
Core I7, with 16 Mb RAM …very much below the usual
power of a real production environment.

LSContentsBreadcrumb: Based on a Brand new LSPage->WhereHaveYouBeen()

2013-09-23 – 21:06

2013-09-23 – 20:00

2014-09-10 – 13:07

A breadcrumb ? Possible ? Sure ! Available ? Not
directy ! … well before 5.6.0000, at least !
Today, a brand new LSContentsBreadcrumb
has entered the scene. It is based on the trip feature used to create a very specific content
filter.

We have revamped a set of classes related to Security and User Management in
Vae Soli! 5.5.0000 (in view of what will be delivered in opus
6.0.0000). Changes can affect the backward compatibility
offered by Vae Soli! for ages now even thoug we have limited the impact. All
these newly updated/upgraded classes are in test for the time being.

New (and faster) implementation of substitutions

2013-09-11 – 18:06

2013-09-11 – 18:06

2014-09-10 – 13:07

We have changed our way to handle the array of substitutions in Vae Soli!
5.5.0000. The new implementation makes it easy to obtain a
substitution of ONE key. Easy and fast !

This new implementation will now be tested heavily on a number of sample
sites and also in Quitus (which has been done already, at least for Quitus !).

In English Now!

2013-09-07 – 17:15

2013-09-07 – 20:00

2014-09-10 – 13:07

More and more our site will turn to English. This is a logical consequence of us
turning away from Belgium and focusing on crowdsourcing, an international
activity. Because of this mixture of English and French it will be difficult in
the future to position the language of our pages precisely : some parts
will be published in French (still) while others will use English.