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. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 127, views: 137.804 •

De engine in de toekomst

Onze site, code en engine kunnen altijd beter. De belangrijkste toepassing die nog niet gerealiseerd was bij de release van Tweakers 7, was de integratie van het forum. We willen namelijk dezelfde techniek gaan gebruiken om lijstjes forumtopics te kunnen presenteren, bijvoorbeeld als tab binnen een merkpagina. Die toont dan alle forumtopics die gekoppeld zijn aan het merk Kingston of producten van dat merk. Bovendien moet de zoektechniek die we voor veel andere onderdelen van de site hebben geïntroduceerd ook voor het forum gebruikt gaan worden. Omdat het hier gaat over tientallen gigabytes aan informatie, hebben we dit niet gelijk geprobeerd te integreren.

Dbadmin disk-grootte voor Topics en Messages

Op deze manier konden we eerst de basisideeën van de techniek goed in de praktijk testen. Bovendien zou het integreren van die functionaliteit onze overstapdatum weer weken of zelfs maanden uitgesteld hebben. Het is natuurlijk jammer voor degenen die al heel lang wachten op een betere zoekmachine in het forum, maar hij is eindelijk in ontwikkeling. Op het moment van schrijven is er zelfs al een goed werkende opzet, die we nu verder uitwerken :)

Forumtab van TPlink voor Tweakers 7

Daarnaast is het de bedoeling dat je de forumtopics ook bij de algemene zoekresultaten gaat vinden. Ook dit is geen triviale uitbreiding; dus ga er maar vanuit dat we de nieuwe forumzoekmachine eerst in gebruik nemen en dat we de geïntegreerde zoekfunctie pas in een latere iteratie uitbreiden.

Verder zullen we natuurlijk nog kijken naar andere onderdelen van de site die hier nog niet in opgenomen zijn en daar wel baat bij hebben. Momenteel vallen onder andere de Meuktracker, onze banensectie en wat andere kleinere delen nog (deels) buiten de boot. Ook die stonden eerder wel op het programma, maar zijn uiteindelijk uitgesteld om het Tweakers 7-project een gezonde einddatum te kunnen geven.


Door Arjen van der Meijden

- Lead Developer

In Oktober 2001 begonnen met als voornaamste taak het technisch beheer van het forum. Daarna doorgegroeid tot senior developer en software architect. Nu lead developer, met een leidinggevende taak aan het team van programmeurs en systeembeheerders van Tweakers.net.

Lees meer over

Reacties (127)

Reactiefilter:-11270122+195+220+30
Gaat de output van de nieuwe engine ook veranderen? Gaat er bijvoorbeeld gebruik gemaakt worden van http://schema.org/?
Schema.org staat los van de output van de engine. Uiteindelijk kan de data die uit de engine komt worden gebruikt, maar dat kon natuurlijk ook als het direct uit MySQL zou komen. Ook wordt er op Tweakers al gebruik gemaakt van schema.org in oa de pricewatch :)
Waarom nog steeds Apache, alles wijst tegenwoordig naar Nginx vooral als je goed wilt cachen en zeker voor grote websites.

Ik moet zeggen dat wij voor een Applicatie ook Java gebruiken qua server-side kant en dat gaat uitstekend. Voor mij is Java iig geen rare keuze.
In onze ervaring is de combinatie van Apache + PHP nog altijd aanzienlijk krachtiger dan Nginx + "allerlei lijmwerk" + php. En bovendien... het caching-deel (en dus de statische resources) hebben we al helemaal uitbesteedt aan Varnish, dus uiteindelijk blijven alleen de pure php-requests over voor de webservers.
In onze benchmarks was Apache daar zelfs sneller mee dan Nginx.
Verder scheelt het in gebruik houden van Apache dat we onze jarenlange ervaring en op maat gemaakte configuraties niet hoeven te herschrijven naar Nginx zonder dat het echt noemenswaardige voordelen heeft.

Kortom: Apache is gewoon behoorlijk stabiel en erg flexibel zonder door allerlei hoepels te hoeven springen om met PHP te mogen werken. Dat laatste is iets dat (tot voor kort?) met Nginx zeker nog wel het geval was/is.
Goede argumenten!
Ik begrijp helemaal dat soms DIY de beste oplossing is :)

Ooit was ik aan het hobbien ( hier niet mee te vergelijken) om een zoekmachine te bouwen, met als speciale eis dat je oneindig (zonder performance verlies) moest kunnen pagineren.

De dataset bevatte ongeveer 4.5 miljoen artikelen (inmiddels >5M)

Zelfs met de Enterprise Editie van SQL Server was het niet te doen, goede full-text engine, maar niet daarvoor. Oracle had misschien gekund omdat deze wel bitmap indexes ondersteund, maar daar had ik geen licenties voor liggen.

Uiteindelijk zelf via GDI+ een zoekengine geschreven.. :P werkt als een trein.

http://search-geenstijl.thruhere.net/
Oracle had misschien gekund omdat deze wel bitmap indexes ondersteund, maar daar had ik geen licenties voor liggen.
Oracle kun je gewoon downloaden en gebruiken om mee te hobbien.

http://www.oracle.com/tec...tion/downloads/index.html

Volgens mij hoef je pas te betalen op het moment dat je het commercieel gaat gebruiken.
Ik ben zelf niet heel tevreden over het nieuwe zoeken op tweakers. Er zijn wat kleine dingen die ik niet zo handig vind. Bijvoorbeeld kon je eerst selecteren "wel, niet, en", het tweede gebruikte ik vaak ook. Bijvoorbeeld als ik naar een itx kastje zoek, deze staan niet altijd aangegeven als ITX kast, daardoor selecteerde ik vroeger gewoon dat ik niet een kast wil waar atx en micro atx niet in kan, op die manier vond ik behuizingen die alleen maar itx in konden. Een ander voorbeeld is dat de vraag en aanbod onoverzichtelijker is geworden. Je kon eerst dmv het subkopje selecteren wat voor socket moederbord of processor je zocht, en op die manier kon je snel iets vinden. Deze functionaliteit is nu niet vervangen door een filter, wat zoeken moeilijker maakt. Op deze manier zijn er nog een paar andere praktische nadelen aan het nieuwe filter. Ik vermoed dat het nog wel verder word geoptimaliseerd, dus dat het wel goed komt.
Zeker een interessant artikel om te lezen. Wat mij betreft had het zelfs nog wel ietsje technischer gemogen. Des noods onder aparte kopjes, zodat minder geinteresseerde lezers het kunnen skippen. Desalniettemin is het een mooi verslag van de architectuur en overwegingen.
Ik wilde net posten dat zelfs minder technisch onderlegden hier met wat rustig lezen uit zouden komen. ;)

Maar ik vraag me af waar het mis gaat als ik naar de blogs ga. Daar moet ik opnieuw inloggen (?) en krijg dan "Ongeldig token" terug, zonder ingelogd te zijn. Als ik terug huppel naar de frontpage werkt alles, en ben ik ingelogd.
Schoonheidsfoutje ergens?
Ik denk dat dit juist is waar de "echte" tweaker van houdt.
De technisch mindere (zoals ik) onder ons heeft genoeg artikelen die we wel super kunnen lezen
Goed stuk. Wel erg technisch voor java-leken, maar ik snap het concept. Ongelofelijk hoeveel techniek er eigenlijk bezig is voor mij, op het moment dat ik weer eens woest door de pricewatch aan het zoeken ben :P (om maar wat te noemen).
Leuk om dit eens te lezen en hoe dat nou eigenlijk in zijn werk gaat. Price watch is een goed aspect dat zulke technologie verdient.

Hoop in de toekomst dit op het forum te zien !
Ik heb dit artikel in mijn vrije tijd geschreven... en daarvan ga ik toch echt zelf bepalen hoe ik die invul. Ik besteedt mijn vrije tijd namelijk liever aan iets wat ik leuk vindt om te doen dan me bezig te houden met CSS en HTML; ja, ik vind back-end programmeren een veel leuker dan front-end ;)

Maar troost je: je kan domweg rechtsboven de pagina op het tandwieltje klikken en de zijkanten van de pagina een stuk donkerder te maken. Daar kan je hier meer over lezen.
Totaal offtopic en met alle respect voor het werk dat je verzet hebt, maar met het wit aan de zijkanten grijs maken kom je er niet.
Het hele middenstuk waar alle tekst is geplaats: dat is het probleem.
Zeker als die tekst maar 5/8ste van dat witte vlak vult, je staart je helemaal blind.
En natuurlijk kan ik er een custom CSS op loslaten maar eigenlijk zou dat niet nodig moeten zijn...

Voor T7 bezocht ik Tweakers 95% van de tijd op mijn PC en 5% via de Android app. Dat is nu compleet andersom.

Ik hoop dus ook van ganser harte dat de app met rust word gelaten, aangezien dat (voor mij) nog de enige manier is om Tweakers nieuws te lezen.
Goed om te zien dat de devs bij tweakers.net het begrip architectuur tenminste begrijpen en toe durven passen - dat gaat veel programmeurs toch echt te ver. Om de frontend met PHP te maken vind ik dan wel weer een spannende keus, ik had dan zelf voor Play framework gekozen met Scala als voertaal om wat meer in het Java platform hoekje te blijven zonder de lasten ervan te ondervinden.
Die PHP-frontend was er ruimschoots voor de Java-backend he? Dus dat was niet zozeer een gewaagde keuze, als eentje die al lang en breed gemaakt was. Je moet het meer zien dat we een complexe "ProductService"-klasse, met een uitgebreide verzameling aan ondersteunende klassen, in de PHP-code vervangen hebben door een nieuwe simpele klasse die domweg alle gekozen opties vertaald naar GET-parameters, de boel doorstuurt naar de Java-omgeving en het resultaat afwacht.
Zowel Play als Scala waren nog niet bekend of stabiel ten tijde dat deze engine opgezet werden. Daarnaast, Scala is leuk maar het heeft twee nogal zwaarwegende nadelen:

* Lange compile-tijd (minuutje voor tien files als je pech hebt)
* Niet snel (single-core; het is horizontaal schaalbaar, maar dat gaat ten koste van snelheid) (afhankelijk van toepassingen)

Begrijp me niet verkeerd, ik ben fan van Scala, maar ik kan goed begrijpen waarom ze die hier niet gebruikt hebben. Daar komt nog bij dat 'hardcore' Scala toch van een iets hoger niveau is dan 'gewoon' Java, denk DSLs en functioneel programmeren en dergelijke. Waar je in java 10 manieren hebt om een probleem op te lossen, heb je in Scala 100 manieren - minstens.

[Reactie gewijzigd door YopY op 19 november 2012 16:52]

Ik ben de laatste tijd erg fan van Scala, het heeft de beste tool van java naar mijn mening mee: de JVM :) Java is helaas naar mijn mening te ver onder de rok van oracle geschoven, en ze vernieuwen helaas niet. Scala doet dat wel en op een functioneel programmeerbare manier wat prachtig is (maar wel moeilijk).
Het ontbreekt alleen aan fatsoenlijke bibliotheken voor scala, maar dat zal wel snel gaan veranderen. Verder kan java en scala door elkaar gebruikt worden.

Ik ben verder ook benieuwd naar de mening dat Scala niet verticaal schaalbaar is?
Waar kan ik hier meer over lezen? En ik kan me niet voorstellen dat Java meer verticaal schaalbaar is.
Als je dat er uit leest dan heb je me verkeerd begrepen of ik het verkeerd opgeschreven :P
Mijn punt is juist omgekeerd; je ziet best vaak opmerkingen dat Scala heel sterk in horizontaal schalen is en dat dan beter zou kunnen dan Java.
Maar er is domweg een eindigheid in het aantal resources, of je nou heel veel horizontaal of verticaal doet, je zal ergens in gaan leveren. Hoe meer je je belasting horizontaal uitsmeert, hoe minder je er verticaal van doet (oftewel, response tijden nemen toe), althans, zodra je je resources 100% belast zijn natuurlijk.

Je kan in die gevallen eigenlijk alleen nog maar winst boeken door minder werk per request te doen of door de administratieve overhead te beperken :P

Op dit item kan niet meer gereageerd worden.