< Mai 2016 >
Lu Ma Me Je Ve Sa Di
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          


Opus 6.0.0008

2014-09-10 – 13:00

2014-09-10 – 15:00

2014-09-10 – 11: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.

16/10/2013Version 5.6.0003
1590 runs (100 users on 16 pages)
min time: 0.0218 sec
avg time: 0.0309 sec
max time: 3.5002 sec
14/02/2014 - 08:55:44Version 6.0.0003
1598 runs (100 users on 16 pages)
Tot execution time (overlapped): 392.36632 sec
Min execution time: 0.03234 sec
Avg execution time: 0.04212 sec
Max execution time: 1.32417 sec
Test Duration: 67.3 sec
10/09/2014 - 10:48:34Version 6.0.0008
1591 runs (100 users on 16 pages)
Tot execution time (overlapped): 415.53866 sec
Min execution time: 0.0239 sec
Avg execution time: 0.04139 sec
Max execution time: 0.6563 sec
Test Duration: 65.85 sec

Opus 6.0.0005

2014-04-21 – 12:16

2014-04-21 – 20:00

2014-09-10 – 11: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 – 11:07

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

16/10/2013Version 5.6.0003
1590 runs (100 users on 16 pages)
min time: 0.0218 sec
avg time: 0.0309 sec
max time: 3.5002 sec
17/10/2013 - 08:56:58Version 5.6.0004
1597 runs (100 users on 16 pages)
Tot execution time (overlapped): 264.99358 sec
Min execution time: 0.02175 sec
Avg execution time: 0.0307 sec
Max execution time: 0.89473 sec
Test Duration: 49.03 sec
14/02/2014 - 08:55:44Version 6.0.0003
1598 runs (100 users on 16 pages)
Tot execution time (overlapped): 392.36632 sec
Min execution time: 0.03234 sec
Avg execution time: 0.04212 sec
Max execution time: 1.32417 sec
Test Duration: 67.3 sec

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 – 11: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 !)

Thanks to the very unique Service Messages feature of our framework, you can check the version of the framework with this URL: /?VaesoliServiceMessage={app:version}


2013-12-09 – 17:15

2013-12-09 – 20:00

2014-09-10 – 11:07

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.

Global overview of the aggregation model

New Benchmark

2013-10-16 – 22:45

2013-10-17 – 08:00

2014-09-10 – 11:07

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

  1. Domain: www.vaesol.poc (localhost — no network transmission)
  2. 100 concurrent users
  3. 16 pages (each page is accessible so that the everyone can judge its complexity) in that order :
    1. http://www.vaesoli.poc/documentation/documentation-vaesoli-code-source.php"
    2. http://www.vaesoli.poc/documentation/documentation-vaesoli-code-source.php?pageref=LSAutoReference.class.php.doc.functions.php"
    3. http://www.vaesoli.poc/coding-rules.php"
    4. http://www.vaesoli.poc/getting-started.php"
    5. http://www.vaesoli.poc/downloads.php"
    6. http://www.vaesoli.poc/samples.php"
    7. http://www.vaesoli.poc/wish-list.php"
    8. http://www.vaesoli.poc/ils-utilisent-vaesoli.php"
    9. http://www.vaesoli.poc/methodology.php"
    10. http://www.vaesoli.poc/guide-doc.php"
    11. http://www.vaesoli.poc/history.php"
    12. http://www.vaesoli.poc/"
    13. http://www.vaesoli.poc/contact.php"
    14. http://www.vaesoli.poc/sitemap.php"
    15. http://www.vaesoli.poc/help.php"
    16. http://www.vaesoli.poc/legal.php"
  4. Vae Soli! tracing level: 48 (warning level)
  5. Baseline: Vae Soli! 5.6.0003
  6. Toshiba Satellite Intel Core i7, 16Gb RAM, 750 HD (hardware considered as bare minimum)
  7. Windows 8 – Home Edition (not the best)
  8. Main KPI : avg generation time

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.

How To

Test is performed via a batch file that calls wget in a loop :

echo off
@echo %time%
@echo Testing Vae Soli

REM Set the domain that is used for the perf testing (e.g. ls.poc or vaesoli.poc or ...)
set domain=vaesoli.poc

REM Tell the .bat where the log file of the Web Site is (choose the one you want to set)
REM set traces=c:\WebSites\\www\logs\ls.desktop.2013.september.log
set traces=c:\WebSites\\www\logs\vaesoli.desktop.october.2013.log

REM Delete the log file (everything that it contained BEFORE this perf test is deleted)
del %traces%

REM Delete the possible end file with performance results
del perf-test.html

REM Store the time we have started
wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/?VaesoliServiceMessage={log:start-time}

REM Now the big run
for /l %%x in (1, 1, 100) do (
    REM URLs that are only valid for a given domain (put them in comments based on the domain!!!)
    REM @wget --quiet --delete-after --background --append-output=wget.log
    REM @wget --quiet --delete-after --background --append-output=wget.log
    REM @wget --quiet --delete-after --background --append-output=wget.log
    REM @wget --quiet --delete-after --background --append-output=wget.log
    REM @wget --quiet --delete-after --background --append-output=wget.log

    REM URLs that are only valid for a given domain (put them in comments based on the domain!!!)
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/documentation/documentation-vaesoli-code-source.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/documentation/documentation-vaesoli-code-source.php?pageref=LSAutoReference.class.php.doc.functions.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/coding-rules.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/getting-started.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/downloads.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/samples.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/wish-list.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/ils-utilisent-vaesoli.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/methodology.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/guide-doc.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.vaesoli.poc/history.php

    REM URLs that are present in most of the sites we construct ... we can use them interchangeably    
    @wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/
    @wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/contact.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/sitemap.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/help.php
    @wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/legal.php
REM Store the time we have stopped
@wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/?VaesoliServiceMessage={log:stop-time}

REM Wait for 5 seconds using PING command
PING -n 6

REM Now delete the output file of wget
REM del c:\wget\wget.log

REM Store the time we have re-started
@wget --quiet --delete-after --background --append-output=wget.log http://www.%domain%/?VaesoliServiceMessage={log:start-time}

REM Ask the parsing of the log file that has been appended by our perf-test
REM Do not turn the "ls.poc" instance to %domain% here: the parse-log utility is not present anywhere else!
@wget --output-document=perf-test.html

REM @echo %time%


16/10/2013Version 5.6.0003
1590 runs (100 users on 16 pages)
min time: 0.0218 sec
avg time: 0.0309 sec
max time: 3.5002 sec
17/10/2013Version 5.6.0004
1600 runs (100 users on 16 pages)
Tot execution time (overlapped): 254.97894 sec
Min execution time: 0.02203 sec
Avg execution time: 0.03041 sec
Max execution time: 1.10106 sec
Test Duration: 48.66 sec
17/10/2013 - 08:56:58Version 5.6.0004
1597 runs (100 users on 16 pages)
Tot execution time (overlapped): 264.99358 sec
Min execution time: 0.02175 sec
Avg execution time: 0.0307 sec
Max execution time: 0.89473 sec
Test Duration: 49.03 sec

New performances

2013-10-16 – 06:50

2013-10-16 – 12:00

2014-09-10 – 11:07

New performance measures on Vae Soli! 5.6.0003 :

21/09/2013750 runs (50 users on 15 pages)
min time: 0.015 sec
avg time: 0.040 sec
max time: 2.170 sec
16/10/2013750 runs (50 users on 15 pages)
min time: 0.008 sec
avg time: 0.035 sec
max time: 0.465 sec

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 – 11: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 – 11: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 – 11: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 :

  • 349 executions in 30 seconds: 97 ms/execution all together (special handling eliminated) (97 ms! …)
  • Min execution time: 0.0869 sec
  • Average execution time: 0.16037 sec
  • Max execution time: 0.3992 sec

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 – 11: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.

LSUser, LSUserMgr, LSSubject, LSGroup: complete revamping for opus 6.0.0000

2013-09-15 – 12:26

2013-09-15 – 20:00

2014-09-10 – 11:07

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 – 11: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 – 11: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.

Coding rules

2013-09-07 – 16:00

2013-09-07 – 20:00

2014-09-10 – 11:07

Nous mettons en oeuvre la première version de nos Coding Rules. Celles-ci sont disponibles sur la toute nouvelle page Coding Rules du framework.

Nous en profitons également pour indiquer que, petit à petit, la contribution sur notre site se fera en langue anglaise. C'est une évolution normale puisque notre entreprise mère, Lato Sensu Management, a décidé de se tourner vers le crowdsourcing et de mettre ainsi à contrbution la communauté internationale dont la langue véhiculaire est l'anglais. Le ByeBye Belgium se manisfeste donc ainsi de plus en plus.

Opus 5.4.0003 et basta. Pas de nouvelle version à l'horizon avant la 6.0.0000

2013-08-30 – 17:00

2013-08-30 – 20:00

2014-09-10 – 11:07

Contrairement à ce que nous annoncions durant notre dernier mémo évoquant le sujet, il n'y aura pas de nouvelle version de Vae Soli!, du moins dûment planifiée, avant l'arrivée de l'opus 6.0.0000.

Cela ne signifie pourtant pas que nous nous croisons les bras, tout au contraire ! Nous planchons à la mise au point finale de Quitus (projet de notre société-mère, Lato Sensu Management, et mettons le turbo pour finaliser des fonctionnalités vraiment déterminantes (pensez par exemple à l'A/B Testing). Par ailleurs, nous travaillons à mettre Vae Soli! à niveau avec la version 5.4.12 de PHP, encore un gros travail.

Et toujours au rang des travaux d'envergure, il y a la documentation. Figurez-vous que nous avons documenté plus de vingt classes supplémentaires pour atteindre le nombre de 64 documentations. Et si ce n'était le nombre, ce serait la qualité qui devrait vous séduire : plus de liens dynamiques, plus de détails, plus d'exemples, …

Il se pourrait néanmoins, que de temps à autre, nous nous essayions à publier une version intermédiaire. Il faudra alors considérer ces jalons comme de petits plus.

Opus 5.4.0003: nouvel opus

2013-06-30 – 18:45

2013-06-30 – 19:00

2014-09-10 – 11:07

Voici le nouvel opus de Vae Soli! rendu disponible sur la page des downloads de notre site. Cet opus fait suite à une nouvelle initiative prise par Lato Sensu Management, l'initiative OpenLabels mais aussi aux nombreuses modifications et améliorations de notre framework. Rien qu'entre cette nouvelle version et l'ancienne, nous avons résolu 384 bugs mineurs. Nous avons également amené de toutes nouvelles fonctionnalités comme le traitement des requêtes Ajax par le framework, les redirections, le traitement des Accept-Language pour le positionnement de la langue par défaut d'un site, etc.

Cette version n'était pas vraiment à notre calendrier de release, même si nous avions envisagé un release au 30/06. La prochaine version est donc à présent planifiée pour la fin du mois de juillet, soit dans un mois environ.

Vae Soli! en un clin d'oeil

2008-12-01 – 15:00

2008-12-20 – 12:00

2014-09-10 – 11:07

Vae Soli! … c'est quoi ?

Vae Soli! est un framework qui permet :

  1. l'intégration d'applications d'entreprise (EAI) : Vae Soli! EAI
  2. la conception de projets web : Vae Soli! Web

Vae Soli! … ça coûte combien ?

Dans les deux cas, Vae Soli! EAI et Vae Soli! Web, le framework est disponible sous couvert de licence Creative Common. En tant que tel, le framework est entièrement gratuit.

Vae Soli! … c'est quel langage ?

  1. Vae Soli! EAI est développé en langage C
  2. Vae Soli! Web est développé en PHP

Comment puis-je démarrer rapidement avec Vae Soli!?

2008-12-01 – 15:00

2008-12-20 – 12:00

2014-09-10 – 11:07

Un guide de démarrage rapide est disponible sur notre page consacrée à cet effet : démarrage rapide. Ce guide fournit les explications de base pour construire un site de 4 pages sans rien connaître à Vae Soli!. Par la suite, vous pouvez complexifier l'exemple pour un site plus ambitieux.

Où se trouvent les versions de Vae Soli! ?

2008-12-01 – 15:00

2008-12-20 – 12:00

2014-09-10 – 11:07

Où puis-je trouver Vae Soli! EAI ?

Cette version de notre framework n'est pas encore disponible sur notre site, bien que ce fut le premier volet parfaitement opérationnel. Cette version a d'ailleurs servi à créer un EAI financier qui a été labellisé "Gold" par SWIFT en 2005. La version EAI sera rendue publique dès que nous aurons travaillé à intégrer les deux frameworks, le framework Web, développé en PHP, et le framework EAI, développé en C. Aucune annonce de disponibilité n'a été faite.

Où puis-je trouver Vae Soli! Web ?

Vous pouvez trouver les sources de Vae Soli! Web sur notre site via la page des téléchargements.

La dernière version stable de Vae Soli! est la version 1.1.0600. Par contre, nous-mêmes nous utilisons la version 7.0.0007, encore en beta, mais dont nous rendrons une version publique à la fin du mois de mars 2009.