Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 55 reacties

Vandaag ronden we iteratie #81 af. Met deze sprint hebben we ons gericht op het verwerken van feedback op het Vraag en Antwoord-project.

Vraag en Antwoord

In de afgelopen iteraties hadden we de focus gelegd op het neerzetten van een basisversie van Vraag en Antwoord. Nu we de eerste gebruikersfeedback hebben gekregen, zijn we verdergegaan en hebben we ons in deze sprint gericht op het verder uitbouwen van dit nieuwe Tweakers-onderdeel.

Tot op heden kon je nieuwe vragen alleen stellen via het reguliere topicformulier in het forum. Vanaf deze release kun je op het tabblad 'Discussies en Vragen' in de onderwerpomgeving ook direct een vraag stellen, als je 'm niet ziet staan bij de al gestelde vragen.

Topicformulier in discussies & vragen-tab

Om de lijst op datzelfde tabblad overzichtelijker te maken hebben we daarbij een aantal verbeteringen aan de beschikbare filters doorgevoerd. Je kunt nu bijvoorbeeld filteren op Vragen of Discussies om zo gemakkelijk alle vragen over een onderwerp te kunnen bekijken of ze juist weg te halen. Ook hebben we ervoor gezorgd dat de topicstart en het eventuele beste antwoord van een vraagtopic in hun originele opmaak worden weergeven, zodat je ze in hun volle glorie kunt bewonderen, inclusief afbeeldingen en andere opsmuk. De mogelijkheid om de topicstart en het beste antwoord op de discussies & vragen-tab uit te klappen werd in de vorige iteratie geïntroduceerd, alleen stripten we toen de opmaaktags uit de post, waardoor de weergave niet optimaal was. Verder hebben we de feedback op dit nieuwe onderdeel ter harte genomen door de prefix [Vraag] weg te halen uit de titels van vraagtopics.

Topictypefilter en uitgeklapte topicstart in dicussies & vragen-tab

Thumbs-up

Het is al een tijdje mogelijk om andere gebruikers een blijk van waardering te geven met een thumbs-up. Deze functionaliteit is natuurlijk niet alleen leuk voor de gebruiker die veel 'opgestoken duimpjes' krijgt, het geeft ook andere gebruikers een goed beeld van relevante posts. Daarom zorgen we er nu voor dat een met opgestoken duimpjes beloonde post meer karma oplevert dan een gewone post. De bonus is afhankelijk van het aantal gegeven duimpjes en de relatie tussen beide heeft de vorm van een Gompertz-curve. Dat wil zeggen dat de toename van de karma het laagst is aan het begin en einde van de curve. Zo zorgen we ervoor dat enkele opgestoken duimpjes niet zoveel invloed hebben op het karma, maar dat er wel een sterke stijging is tussen vijf en twintig duimpjes, als bevestigd wordt dat de post door een beperkt of juist groot aantal gebruikers wordt gewaardeerd.

Karma vs aantal opgestoken duimen

PHP 7

In de vorige update meldden we dat we waren begonnen met uitzoeken wat er allemaal komt kijken bij een upgrade naar PHP 7. Het antwoord is: behoorlijk wat. Nadat we een virtual machine met werkende testomgeving hadden opgezet, viel direct al op dat de door ons gebruikte mongo-driver niet meer beschikbaar is voor PHP 7. Aangezien de nieuwe driver significant veranderd was, waren we erg blij toen we ontdekten dat iemand al een 'adapter' had ontwikkeld, zodat we onze bestaande code kunnen blijven gebruiken. Verder blijkt dat PHP 7 net iets anders omgaat met serialized gegevens dan oudere PHP-versies, waardoor de communicatie met onze Java back-end niet altijd lekker loopt.

Kortom, er zijn nog genoeg punten om op te lossen en we hebben dan ook nog geen concrete datum waarop we kunnen overstappen of benchmarks kunnen tonen. Zodra dat kan, zullen we bovendien nog wachten tot (een tijdje na) Ubuntu 16.04 LTS, zodat we onze webservers eenvoudiger naar PHP 7 kunnen upgraden.

Symfony 3

Behalve naar PHP 7 kijken we naar een upgrade van het door ons gebruikte Symfony. We draaien nu versie 2.8, maar 3.0 is alweer een tijdje uit en we willen natuurlijk bijblijven. Ook dat is een forse klus, omdat er veel is aangepast in de api's. De belangrijkste wijziging daarbij is de forse verandering van het Form-systeem. We moeten daardoor al onze Forms veranderen voordat ze werken in versie 3. Gelukkig zijn de meeste van die wijzigingen vrij klein, maar met meer dan honderd Forms tikt dat toch behoorlijk aan.

Gradle

Naast het doorvoeren van wijzigingen aan ons PHP-project, hebben we ook ons grootste Java-project aangepakt. Dit is, net als onze PHP-code, een paar maanden geleden omgezet naar Git. Hoewel we dat destijds bij onze PHP-code meteen gecombineerd hebben met het het implementeren van Composer en Satis voor het beheren van externe dependencies (zoals Symfony), was dat bij de Java-code nog niet het geval.

In Java hadden we alle jar-files van externe dependencies nog simpelweg in de repository staan. Dat werkte wel, maar was uiteraard niet praktisch. Dat hebben we nu aangepast door alle dependencies af te laten handelen door Gradle. Daarmee hebben we overigens niet alleen de dependencies opgelost, we hebben ook het 'build proces' ernaartoe verhuisd. Dat gebeurde daarvoor nog met Ant, maar Gradle kon dat praktisch combineren met het bijhouden van de dependencies. Bovendien is Gradle eenvoudig op Windows te gebruiken, waardoor ook ons 'build proces' eventueel daarop kan worden uitgevoerd.

Een van de weinige dingen die we nog zelf moesten toevoegen was een manier om simultaan naar verschillende, maar niet alle, Tomcat-servers te deployen. Aangezien we dat al met Ant deden en dat nou net een van de dingen is die Gradle niet kon, hebben we dankbaar gebruikgemaakt van de ondersteuning in Gradle om Ant-taken uit te voeren.

Moderatie-faq Wijzig weergave

Reacties (55)

Verder blijkt dat PHP 7 net iets anders omgaat met serialized gegevens dan oudere PHP-versies
Zou het niet beter zijn om over te stappen op JSON?
Serialized data is al jaren een gevaar en zou verboden moeten worden.
De laatste beveiligingslekken in PHP en Joomla komen ook daar vandaan.

Verder toppie dat jullie op de nieuwste techniek zitten.

[Reactie gewijzigd door DJMaze op 16 februari 2016 15:49]

Het word niet naar buiten toe gebruikt, maar in de communicatie tussen de 'engines' en de php code. Ook gebruiken we daar igbinary serialization om de boel wat kleiner te houden. De grootste 'enginecalls' kunnen namelijk makkelijk 46MB aan data terug geven met 'normale' serialization (wat dan 18MB is met igbinary serialization).

Het grootste probleem zit hem echter in de performance, om een json array van 46MB te parsen naar de objecten die het moeten worden kost veel en veel meer cpu tijd dan een 'eenvoudige' unserialise call naar php.
Zit het probleem in de igbinary of in de PHP 7 serialize implementatie? Ik kan namelijk niks vinden in de migration guide over een wijziging aan dit algoritme. Buiten dat is er een backwards compatible versie van igbinary. Ben hiernaar benieuwd omdat ik ook langzaam projecten aan het migreren ben richting PHP 7 en vooral de wat oudere projecten maken regelmatig gebruik van (un)serialize.

[Reactie gewijzigd door guanche op 17 februari 2016 09:53]

Het probleem zit waarschijnlijk in onze eigen java implementatie van igbinary die wij zelf geschreven hebben waardoor hij een aantal referenties niet kan vinden (althans dat claimed hij). We hebben er nog niet heel erg meer naar gekeken anders dan 'het werkt niet altijd'.
Ah, dat werkt natuurlijk een stuk beter.
Bedankt voor de uitleg.
Ik zag net een quote op het forum die gedeeltelijk was ingeklapt. Bij het klikken op "toon volledige bericht" zie je de hele quote pas. Dit is wel erg handig, maar ik ben benieuwd hoelang deze functie er al is?
Voorbeeldje
Die is deze sprint ontwikkeld. Ik heb hem er tussen neus en lippen door gefietst ;)
Dank! Dit maakt dat de quotehabit van sommigen (altijd quoten i.p.v. op reply drukken) een stuk minder scrollruimte inneemt. En je kunt altijd nog eenvoudig het gehele bericht lezen.
Is er een reply knop op het forum? Ik heb zojuist gezocht maar kon het serieus niet vinden? Bovendien vind ik het wel prettig om te quoten omdat je dan weet dat die gene waar je op reageert ook een notificatie krijgt.
Plaats reactie heet die knop, gewoon in het Nederlands dus. Net daarboven is een leeg stuk veld te vinden, waar je je tekst kwijt kunt. Dat is tevens hier op de FP te vinden :P
Ah, ja die ken ik, dan begreep ik hem verkeerd. Dacht dat er nog een knop was om aan te geven dat je op een specifiek iemand reageert.
Het gaat alleen catastrofaal mis als er een code-tag wordt gequote zoals in dit bericht. Ik kan de quote niet meer uitklappen :X
AH dat lijkt een klein foutje in de z-index .o.i.d. Zal kijken of ik dat nog even kan fixen. PS: je kunt wel ernaast op het witte vlak klikken om te collapsen :)

Edit: Fixed

[Reactie gewijzigd door Inspector op 17 februari 2016 09:42]

Ik kan me voorstellen dat sommigen dit prettig vinden, maar ik vind het maar lastig, steeds weer een extra klik voor ik kan zien waar het goed en wel over gaat. Kan dit niet een instelling worden misschien?
Tweakers zit al boordevol opties en die moeten allemaal onderhouden en getest worden, ook bij nieuwe ontwikkelingen en functionaliteit. We hebben dus intern besloten niet meer opties te gaan inbouwen voor relatief kleine wijzigingen. Wel kun je cumstom CSS kopen in de karma store met karma en daarmee het in en uitklappen zelf weer uitzetten :)
Ik zag het net op mijn mobile screen - werkt uitstekend en scheelt heel veel scrollen!
Is de karma herberekend voor al je posts ivm de nieuwe berekening van thumbs-up?
Of gaat het pas vanaf nu zo met die berekening?

Misschien ook een idee om dit soort taktiek door te voeren bij het toevoegen van nieuwe producten (die goed ingevuld zijn)? Hoe meer goed ingevulde producten je toevoegt, des te meer karma je krijgt telkens?

[Reactie gewijzigd door SmokingCrop op 16 februari 2016 13:39]

Je krijgt ook - al jaren - karma voor het toevoegen van producten. Het gebeurt alleen in absolute zin wel zo weinig dat het niet heel erg interessant is om daar heel veel ingewikkelde dingen met karma te doen.

Overigens wordt het karma elk kwartaal herberekend (dus de eerstvolgende keer is op 1 april), het is teveel rekenwerk om dat daar buiten om 'even' te doen (we hebben het hier over meerdere uren rekenen als we domweg 'alles opnieuw' doen en een aantal uur voorbereiding als we alleen specifieke componenten willen).

Bovendien verwacht ik nog wel meer wijzigingen aan de karma-berekeningen, dus het is voor ons veel handiger gewoon af te wachten tot de eerstvolgende herberekening :)
Interessant om weten!
Ik weet overigens heel goed dat er karma te verdienen is met producten toevoegen in de pricewatch, volgens mijn profiel op dit moment al 14390 karma daar aan verdiend. Was gewoon even aan het proberen om dit wat omhoog te krijgen voor ik weer praktisch alle nieuwe moederborden toevoeg :*)

Dat gezegd hebbende, het zou leuk zijn om de top X te zien per categorie van karma overigens (forumposts, reacties, productinformatie, gebruikersreviews etc). Ik weet dat -The_Mask- ook heel wat toevoegt, maar weet van niemand anders.
Erkenning is altijd een goede incentive... :9

[Reactie gewijzigd door SmokingCrop op 16 februari 2016 21:51]

Interessant om te weten welke performancewinst er behaald gaat worden met de overstap naar PHP7. Jammer dat het nu nog niet gelukt is.

Het achtergrondartikel over jullie Java-backend was erg interessant om te lezen. Ben erg benieuwd naar hoe jullie Symfony gebruiken. Welke bundles/components (naast de standaard Symfony-components) worden er door jullie gebruikt?
Zodra we live zijn met PHP7 zullen we wel wat grafiekjes publiceren om de snelheidswinst te kunnen zien.

Symfony hebben we een aantal jaar geleden pas in gebruik genomen. Dat betekent dat op dit moment nog niet alles volledig binnen de Symfony-omgeving draait, maar we zijn goed op weg daarmee.

Qua components gebruiken we in ieder geval de volgende (de noemenswaardige):
- HttpFoundation & HttpKernel & Routing
- Templating
- Form
- Translation
- Yaml
- EventDispatcher
- DependencyInjection

En uiteraard waar bovenstaande components afhankelijk van zijn plus nog een hoop andere die ik vergeten ben :P

De HttpFoundation, Routing en Templating components gebruiken we uiteraard om als basis een MVC-structuur te hebben. Het Form component wordt gebruikt voor de meeste formulieren op Tweakers, op een enkele na.
Het DependencyInjection component gebruiken we nog niet volledig, vanwege legacycode.

Verder gebruiken we nog een aantal Symfony Bundles, zoals:
- FrameworkBundle
- SecurityBundle
- MonologBundle
- SensioFrameworkExtraBundle
"zodat we onze webservers eenvoudiger naar PHP 7 kunnen upgraden."

Op welke php versie wordt nu gedraaid dan?
Is PHP 7 niet nog een enorm eind weg?
(ik kijk dan naar de gemiddelde webhoster die zijn servers heeft lopen op php 5.5)

Ben geen coder dus misschien begrijp ik iets compleet verkeer hier ;)
We draaien nu de laatste 5.6-versie. Wat bedoel je precies met "een enorm eind weg"? Alle benodigde codewijzigingen hebben we al gedaan, we zijn alleen nog afhankelijk van een aantal php modules die nog niet beschikbaar waren voor PHP7.
Wat de gemiddelde webhoster draait boeit voor ons niet, omdat we onze eigen servers hebben, inclusief een Kees om alles draaiend en up2date te houden.
Met een eind weg bedoel ik dat ik versie 5.x tot en met 6.9 mis...blijkbaar bestaat er geen php 6 wat de afstand tussen 5,x en 7 alweer een stukje verkleind.
Ik snap dat het jullie niet uitmaakt wat webhosters doen maar het klonk inderdaad nogal verweg door versie verschillen die er blijkbaar niet zijn.
Ah duidelijk :)
PHP 6 is inderdaad overgeslagen. Een aantal jaren geleden zou PHP 6 al uit moeten zijn gekomen, maar ze waren iets te ambitieus en het project liep spaak (ook vanwege onderlinge onenigheid, geloof ik). De code die wel gebruikt kon worden is in PHP 5.X terecht gekomen, maar intussen lagen er al PHP6 boeken in de winkel, terwijl die versie niet eens bestond. Om die reden is PHP6 maar helemaal overgeslagen, want versie 6 zou niet de PHP6 zijn geweest, zoals die in eerste instantie bedacht en gepromoot zou zijn.

Hier nog wat meer info erover.

[Reactie gewijzigd door koku op 16 februari 2016 16:31]

Uitgebreid en duidelijk verhaal. Bedankt voor de uitleg :)
5.6 wordt nu voornamelijk gebruikt. 7 is de opvolger van 5.6 en nog niet heel lang geleden officieel gereed (geloof ik). 6 is overgeslagen om een of andere reden.
5.5 is al out of active support en binnenkort ook zonder security support. 5.6 is de norm. In werkelijkheid niet natuurlijk, waarschijnlijk draait minimaal de helft nog op oudere lekke versies.
Ik mis na 3 jaar nog steeds de mogelijkheid om kleine video's binnen een review groter te maken (net zo groot als op een specifieke videopagina)
Video's van YouTube kun je gewoon groter maken door op het vierkantje te klikken, rechts onderin het filmpje. Uiteraard kun je de tag ook aanpassen naar bijvoorbeeld:
[video=960,540]https://youtube.com[/video]
(1920x1080 is te breed voor je review, rond de 650pixels breed is de max.)

Het is dan alleen de vraag hoe mooi/lelijk het voorbeeld-plaatje dan wordt.
Nee het gaat om tweakers video's van bijv. reviews. Om die video iets groter af te spelen moeten we eerst naar de video zelf zoeken
Nog steeds via het vierkantje/4 pijltjes onderin de hoek, zie:
reviews: Fairphone 2: hoe duur(zaam) is eerlijk?
Hier nog een voorbeeld vanuit de Video pagina:
video: Samsung Indonesië toont waterdichte Galaxy S7 Edge in teaser

Mocht je iets anders bedoelen, dan ben ik wel benieuwd wat het is en of je een voorbeeld hebt. Bedoel je het misschien op een smartphone/tablet?
Ik bedoel niet fullscreen, maar gewoon iets groter formaat :P zoals youtube, waar je tussen een kleine en grotere player kunt kiezen :) fullscreen is op 27" net iets te lomp, maar nu is het net iets te klein
Die vragen zijn op zich wel grappig. Alle thumbs up, karmakoning, tags en andere ellende heb ik dmv. een custom CSS uitgeschakeld dus dat zal me jeuken :P

Overigens wel erg irritant dat je nu echt op je notificatie moet klikken om hem uit te schakelen. Iemand reageert b.v. op een forumpost van mij, dan zie ik dat omdat ik de bookmarks van het forum gebruik en daarna zit dat notificatieding nog steeds in de weg, daar moet ik dan op klikken en kom ik weer op dezelfde forumpost uit :/
Of je klikt op het kleine icoontje dat er voor staat ;)
Ik heb er ook ff naar gezocht, vond he echt niet duidelijk. Waarom gaat de notificatie niet weg als ik de betreffende post heb gezien?
Ziet er wederom netjes een zeer duidelijk uit, ook de badge voor een topicstarter is goed in beeld.
Voor degenen die de topictarter al anders weergeven door middel van custom CSS, hier de code om de labelcard te verwijderen:

/* labelcard verwijderen */
.labelCard.topicstarter{ display:none !important; }

[Reactie gewijzigd door matroosoft op 16 februari 2016 14:02]

Die dropdown voor fora is een beetje onhandig, kan daar niet een zoekveld aan toegevoegd worden a la Chosen / Select2 en dergelijke varianten?
Jammer dat die allebei jQuery nodig hebben... :/ ;)

Dat ziet er wel hip uit, maar de vraag is natuurlijk of het ook echt nodig is. Over het algemeen zal het initieel gekozen forum op basis van het onderwerp wel redelijk kloppen (hopen we :P)
Gave iteratie wederom :) Thumbs-up.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True