De developers hebben iteratie #84 vrijgegeven. De aandacht lag in de afgelopen drie weken op het gereedmaken van de nieuwe BenchDB voor het live gaan. Daarnaast werd er gewerkt aan de implementatie van https en http/2.
Nieuwe BenchDB
Tweakers beschikt sinds 2004 over een database met benchmarks. De redactie gebruikt de BenchDB om testresultaten te beheren en grafieken te genereren voor de weergave van testresultaten in reviews. De oude BenchDB had een eigen ingang op de site, waarmee je de benchmarkresultaten kon opzoeken en vergelijken.
De BenchDB werd destijds door yours truly in elkaar gehackt en later voorzien van uitbreidingen, zoals de mogelijkheid om multivalue-grafieken te genereren. De haastig geschreven code was nooit van hoge kwaliteit en is nadien ook niet meer aangeraakt. Daardoor was de BenchDB op geen enkele wijze geïntegreerd met de rest van Tweakers. Het beheer verliep nog via ons oude cms, dat ten tijde van de millenniumwisseling is ontworpen.
Voor de redactie lieten de mogelijkheden en de gebruiksvriendelijkheid nogal te wensen over. Zo was het niet mogelijk om snel grafieken van verschillende tests voor dezelfde set producten te genereren en kon de samenstelling van een eenmaal gegenereerde grafiek later niet gewijzigd worden. Een ander probleem was het ontbreken van goede koppelingen met producten. Daardoor was het niet mogelijk om superrelevante testresultaten in de productomgeving weer te geven.
Invoeren van testresultaten in ons vintage-cms
Plannen om een nieuwe BenchDB te bouwen bestonden al lange tijd, maar vanwege de omvang van het project was het lang wachten op ruimte in onze roadmap om het project uit te voeren. Vanwege de staat van de code was een totale rewrite nodig. Begin 2015 werd het eerste deeltje van het project uitgevoerd en nadat het werk aan de BenchDB een tijdje had stilgelegen, zijn we sinds oktober 2015 bezig geweest om elke iteratie stukje bij beetje de functionaliteit in de BenchDB te specificeren en herschrijven. Na vele sprints werk dat voor onze gebruikers onzichtbaar is, zijn we eindelijk zover gekomen dat we de eerste resultaten van de nieuwe BenchDB kunnen laten zien.
De nieuwe BenchDB is nu volledig in Symfony gebouwd en de entiteiten in de BenchDB zijn waar mogelijk gekoppeld met categorieën en producten uit de Pricewatch. Testgegevens worden nu beter gestructureerd opgeslagen. Zo is het mogelijk om verschillende runs van benchmarks voor hetzelfde ‘testobject’ (een product dat onder een bepaalde omstandigheid is getest) op te slaan en automatisch de gemiddelden te berekenen. De redactie kreeg meer mogelijkheden om grafieken te genereren en het beheer van grafieken is eenvoudiger gemaakt. Zo kunnen redacteuren nu per artikel setjes van testobjecten maken en met een paar klikken grafiektags genereren die in artikelen geplaatst kunnen worden.
De tags worden tijdens het parsen van de pagina dynamisch omgezet in een grafiek. De meeste grafiektypes worden gegenereerd met behulp van de c3.js. Ook hebben we de mogelijkheid om staafgrafieken te genereren, met naast de productnaam een testconditietype of een specificatie als kolom. De specificatie wordt automatisch opgehaald uit onze productdatabase. Testconditietypes beschrijven de omstandigheid waarin een product werd getest, bijvoorbeeld de versie van een driver of het besturingssysteem, of de processor waarmee een videokaart werd getest.
Een grafiek die gegenereerd is door de nieuwe BenchDB
In de komende iteraties gaan we verder werken aan het afbouwen van de BenchDB, zodat de oude code uiteindelijk in zijn geheel naar /dev/null afgevoerd kan worden. Over drie weken zullen we een eenvoudige weergave van de testresultaten op de specificatietab in de productomgeving toevoegen. Hiermee zul je de testresultaten van een product net zo makkelijk kunnen opzoeken als de specificaties. In de komende tijd staat er voor de redactie ook nog wat koppelwerk op stapel om oude testresultaten te linken aan producten in de Pricewatch.
En verder hebben we…
- gewerkt aan de implementatie van https en http/2, zodat jullie in de toekomst via een beveiligd én efficiënt protocol Tweakers kunnen bezoeken;
- vorderingen gemaakt met de upgrade naar PHP7;
- de Usabilla-feedbackknop toegankelijk gemaakt op mobiele apparaten en de tracker standaard op meescrollen gezet, zodat de feedbackknop op desktops en tablets met een horizontale resolutie van 1024 pixels niet meer over de kantlijn van de content ligt;
- een geslaagde 1-aprilgrap live gezet;
- hebben we in een bug bash zo'n dertig bugs verholpen.