.: TBG v2 :.Senast uppdaterad: 2003-01-07


Den här sidan innehåller information gällande arbetet kring TBG v2, en sajt som skall ta över där The Buyer's Guide (framtaget av Anders Arpteg som nu är nedlagt) slutade.

För kontaktinformation - se längst ner.


- BESKRIVNING -

Redan under sommaren började det föras diskussioner i forumet på TBG om att skapa en version 2 av TBG. Orsaken till detta var att den tidsbrist AA hade för TBG visade sig allt tydligare. Bland annat var samlingssidan för Trackern inte lika frekvent uppdaterad (dvs med direktlänkar till aktuella produkter - det gick dock fortfarande att manuellt söka efter senaste processorn etc) samt att ett ökande antal oseriösa inlägg i forumdelen störde för dom andra (registrerade) användarna.

Då jag själv har varit en aktiv användare av TBG kände jag att jag kunde dra mitt strå till stacken och beslutade mig för att börja utveckla ett forum som var uppbyggt på samma sätt som forumet på TBG. Till en början gick utvecklingen på sparlåga där jag började med att ta fram funktioner för att generera den trådning som var speciell för TBG's forum. I och med att TBG gick i graven har jag accelererat utvecklingen och döpt projektet till TBG v2.


- HISTORIK -

TBG (The Buyers Guide / Bugsoft) ser ut att ha gått i graven den 3:e okt 2002.

Det hela började med att ett moderkort i bugsoftdomänen konvergera till att vara en brödrost under fredagen den 27:e sept. Detta ledde till att dns-förfrågningarna mot www.bugsoft.nu och www.bugsoft.hik.se ej längre fungerade då dnszonen hade upphört att gälla i dnser runt om i världen. Det gick dock fortfarande att komma åt TBG genom att antingen skriva in ipadressen direkt eller genom att använda den dnspekare (bugsoft.apachez.net) som jag hade satt upp tidigare. I och med att en av maskinerna var nere blev även lastbalanseringen påverkad vilket syntes i att endast 50% av förfrågningarna kunde besvaras under helgen.

Måndagen den 30:e sept verkade AA (Anders Arpteg, grundaren av TBG) ha styrt om lastbalanseringen så att alla frågor kunde tas om hand - dock gick det endast att komma åt siten genom dom alternativa metoderna som beskrevs ovan.

Natten mot tisdagen drabbades TBG av nästa nästa motgång då inte webbservern längre kunde komma åt asp-filerna från filservern (troligtvis beroende på att uppmappningen hade skett mot domännamnet istället för ipnumret och när domännamnet hade upphört att gälla och datorn skulle försöka uppdatera denna gick det inte då dnserna var nere (samma problem som för att nå www.bugsoft.nu respektive www.bugsoft.hik.se)).

Under onsdagen kom kopplingen tillbaka men nu gick det inte längre att komma åt /buyer där TBG låg. Följande dag kontaktade en rad personer AA där det efter samtal kom fram att AA väljer lägga ner TBG där tidsbristen anses vara främsta faktorn.

Detta är naturligtvis en stor sorg då TBG har förutom sitt speciella forum (med trådningsfunktioner och annat), där man snabbt kunde få hjälp med datorrelaterade problem, även haft en prisagent vid namn "Tracker" som genom AI (AA's forsknings-område) samlade prisuppgifter från ett flertal återförsäljare och sammanställde dessa så att besökarna på ett snabbt sätt kunde se vilken återförsäljare vid ett visst tillfälle sålde en viss vara billigast. Förutom sina funktioner var siten även välbesökt med cirka 50-60.000 besökare per dygn (enligt en sida på www.te.hik.se låg hitraten på ungefär 1.000.000 per månad).


- PLANER -

Till en början använde jag mig av egenutvecklade databasfunktioner för att hantera datamängden som textfiler i filsystemet - dessa har vid benchmarks visat sig vara många gånger effektivare än att använda sig av en extern databasserver (dessutom blir forumet mer portabelt genom att den då kan köras på vilken webserver som helst utan ytterligare krav). Jag valde att programmera forumet i Perl då jag finner detta mycket snabbt samt väldigt portabelt (Perl runtime finns för i stort sett samtliga operativsystem och finns (inom *nix världen) ofta redan installerat vilket gör att man slipper kompilera egna koder samt slipper leta buggar som man annars skulle vara tvungen att göra om man hade utvecklat forumet i C eller dyl). Jag har dock på senare tid gått över till att använda mig av en extern databasserver då jag finner att jag inte har tid att utveckla transaktionsstöd med mera för mina egna databasfunktioner utan det går snabbare och lättare att istället använda sig av en färdig databaslösning.

Den databasserver som jag har valt går i samma freeware-anda som Perl och den webbserverprogramvara som jag använder mig av (Apache), nämligen MySQL. Detta gör att TBG v2 till skillnad från TBG (som var skriven i asp och använder sig av Microsofts produkter såsom OS och webbserverprogramvara) är helt fri från licenskostnader (dvs *nix + Apache + MySQL + Perl) samt ger en lösning som är många gånger mer skalbar och ger många gånger bättre prestanda än om man hade valt Microsofts produkter.

Planerna för TBG v2 är följande:
  1. Utveckla "News - TBG v2" (forumet) med trådning etc. så att det ger samma känsla som det orginalet.

  2. Utveckla "Tracker - TBG v2" (prisagenten) så att den blir så lik orginalet som möjligt. Den största skillnaden här kommer bli att återförsäljarna som vill vara med i "Tracker - TBG v2" behöver skapa en prislista.txt på sin site enligt ett visst mönster. Denna fil kommer därefter att hämtas ett antal gånger per dygn och läsas in i databasen. Detta leder till att det krävs mer av återförsäljaren men i gengäld blir företaget mer exponerat då förhoppningen är att ett flertal av besökarna skall återvända till TBG v2. Mer info om detta senare. (I dagsläget (021017) har vi två varianter. "Prislista.txt" blir fortfarande "filformatet" för inhämtning (som sedan läggs upp i sqldatabasen), det nya är att det utvecklas ett gäng crawlers som själva skall kunna indexera sajter som av någon anledning inte kan tillhandahålla en "prislista.txt".)

  3. Möjligheten för att skapa sig ett användarnamn samt loginfunktioner mot forumet.

  4. Möjligheten för moderering, dvs möjligheten att ta bort inlägg från forumdelen. Nackdelen här är att det krävs en diskussion för på vilket sätt detta skall ske eftersom vi har sett skräckexempel på hur moderering kan spåra ur i andra forum som finns åtkomliga på nätet. Fördelen är att antalet oseriösa inlägg då på ett enkelt sätt kan tas bort utan att störa dom seriösa användarna av forumets funktioner (vilket är att få hjälp med datorrelaterade frågor).

  5. Möjligheten till att själv kunna bestämma vilka färger som används genom templates.


- TESTSYSTEM -

För den som vill se hur arbetet fortlöper har jag satt upp ett testsystem på en av mina maskiner. Denna är inte alltid tillgänglig och kommer säkert även generera fel (eftersom det är en test-server i produktion) men kan ge ett hum om hur arbetet går vidare samt hur TBG v2 kommer att se ut.

Maskin/programvaran i testsystemet är följande:

Webbserver (FreeBSD): Apache 2.0.x, PII 2x266 MHz 256 MB RAM.

Databasserver (FreeBSD): MySQL 4.0.x, PII 2x266 MHz 256 MB RAM.

I bägge fallen ovan är det en och samma maskin.

Nätverk: Full duplex 100Mbit/s.

Internetuppkoppling: 512/768 Kbit/s ner/upp.

Optimering: Förutom programmeringsmässiga optimeringar i tabellen på sqlservern och i Perl koden (cgi-scripten) använder jag mig även av mod_deflate till Apache websberver. Mod_deflate fungerar på samma sätt som mod_gzip och komprimerar i realtid den data som skall skickas till klienten (förutsatt att klienten kan hantera gzip (webbservern får veta detta i den http-request som klienten skickar till webbservern)). Detta ger att det går snabbare att tanka hem respektive sida då tex htmlkoden för en tråd med 100 meddelanden ligger på cirka 360 kilobyte okomprimerat gör mod_flate att den data som skickas tar endast 10 kilobyte vilket i sin tur leder till att även användare av 33.6 modem kan surfa runt på siten i acceptabel hastighet. Förutom vinsten i datamängden ger detta även att hela sidan skickas över i en stream till klienten där klienten annars hade först fått själva meddelandet och därefter koden för trådtabellen (vilket för trådar med många meddelanden lätt blir en irriterande faktor).

Slutligen adressen till testsystemet: bugsoft.apachez.net


- STATUS -

Klart:
news (lista inlägg), news_show (visa inlägg), news_send (skriva inlägg), news_search (söka bland inlägg) och news_top (visa frekventa användare).

Pågående:
personal (användarhantering i form av login integrerat med bla forumdelen) samt samkörning med buggy.

Senaste förändringar:
Se rubriken CHANGELOG näst längst ner.


- KATEGORIER -

Följande kategorier kommer att användas (inget är 100% spikat):
  1. Backup Drive
  2. Backup Media
  3. Barebone
  4. Book
  5. Case
  6. CD/DVD Drive
  7. CD/DVD Burner
  8. CD/DVD Media
  9. Cooling
  10. CPU
  11. Digital Camera
  12. Game Controller
  13. Graphics Card
  14. Hard drive
  15. HDD Controller
  16. IO Card
  17. Keyboard
  18. Memory Card
  19. Modem
  20. Monitor
  21. Motherboard
  22. Mouse
  23. Network Card
  24. Network Misc
  25. Power supply
  26. Printer
  27. Printer consumables
  28. RAM
  29. Scanner
  30. Software
  31. Sound Card
  32. Speaker
  33. UPS
  34. Other

- ÅTERFÖRSÄLJARE -

16 oktober kontaktades nedanstående återförsäljare (inte alla fanns med från början utan har tillkommit) om huruvida dom hade möjlighet att skapa en fördefinerad "prislista.txt" (den kan vara dynamisk) på sin site för att underlätta insamlandet av priser. Endast 2-3 stycken hade inte en sådan möjlighet medan övriga var postiva till saken. Ungefär hälften av återförsäljarna har ännu inte besvarat om deras möjligheter att sätta upp en sådan prislista.

Även då dom flesta återförsäljarna har en möjlighet att sätta upp en sådan lista har jag funnit att indexera deras siter direkt från den existerande htmlkoden är en bättre lösning. Den kanske inte är effektivare men mer rättvisande eftersom risken för manipulation och att priser/produkter skulle bli inaktuella minskar. Möjligheten för en prislista kvarstår dock som ett alternativ till dom fall där en indexering inte är möjlig eller är för tidskrävande.

Listan nedan visar vilka återförsäljare som TBG v2 kommer att försöka indexera för trackern:
  1. acp.nu
  2. ad-data.se
  3. angelpc.se
  4. bantorgetdata.com
  5. bedawid.com
  6. brdata.nu
  7. burn-it.se
  8. calmarecomputer.se
  9. cerico.com
  10. codetronics.se
  11. computercare.se
  12. cyberservice.se
  13. da-dataprodukter.se
  14. dabus.se
  15. datacorner.se
  16. dataknuten.com
  17. datanova.se
  18. dataprince.se
  19. dataparadiset.com
  20. www.datavaruhuset.com
  21. datorbutiken.com
  22. datordepan.nu
  23. datorhandel.com
  24. datorprylar.com
  25. dms.m.se
  26. dustin.se
  27. elimadata.com
  28. elji.se
  29. ece2buy.com
  30. forsling.se
  31. gardefelt.com
  32. ghdata.se
  33. gtek.net
  34. hogdata.se
  35. inetdata.se
  36. inwarehouse.se
  37. itbolaget.com
  38. itbutikken.dk
  39. itpower.se
  40. itservice.se
  41. jmedata.se
  42. komplett.se
  43. kylning.com
  44. liontech.se
  45. medialaget.se
  46. mfitcom.se
  47. microshop.se
  48. microstore.se
  49. midat.se
  50. multidirect.se
  51. mycom.se
  52. needit.nu
  53. net2world.se
  54. netonnet.se
  55. netvaruhuset.com
  56. oneshop.nu
  57. overclockers.se
  58. pc-direkt.se
  59. pchuset.nu
  60. pcoffice.org
  61. protran.nu
  62. redpoint.nu
  63. riksdata.se
  64. rosenbergsab.se
  65. sbs.o.se
  66. sekvencia.se
  67. sm-nordic.se
  68. specitek.se
  69. styggapojken.com
  70. tricom.se
  71. tvsdata.se
  72. tvspeloteket.com
  73. vasadt.com
  74. vasbycomputers.se
  75. vfm.se
  76. vintgar.com
  77. webhallen.com
  78. whynoi.se
  79. xp-data.com
  80. zitech.com
  81. åtvidabergsdata.se

- LÄNKAR -

Testsystem:

bugsoft.apachez.net

Crawlers:
  1. c/libcurl (bugpig)
  2. java
  3. php (buggy)
  4. vb
Foruminlägg:
  1. 64bits
  2. 64bits
  3. Daft
  4. Daft
  5. Fragzone
  6. Sweclockers
  7. Dvdforum
  8. Webforum
Nyhetsinlägg:
  1. Fragzone
  2. G-Force X
Protestlistor mot nedläggandet:
  1. Petitiononline

- CHANGELOG -

030107 - Ny adress för testsystemet (då den mer eller mindre är i produktion nu): bugsoft.apachez.net. Har stängt av mod_perl2 då den orsakade lite skumma fel (parallellism fel).

030106 - Drog igång mod_perl2 på systemet och buggfixade "next" som ibland påstod att det fanns fler meddelanden i en tråd än det i själva verket fanns (hade glömt att nollställa en array).

030105 - Har tweakat och optimerat FreeBSD :-)

030101 - Gott Nytt År :o)

021227 - Forslade hem en Dell Workstation 400 från jobbet (266 MHz) som efter lite RTFM visade sig kunna köras i dualläge förutsatt att bägge cpuerna är av samma modell. Har sedan i somras (då vi gjorde oss av med lite trasiga maskiner på jobbet) en PII cpu ståendes på mitt skrivbord i demonstrationssyfte (dessutom har den ett lite flashigt hologram ;-). Denna cpu visade sig vara samma modell (tom samma stepping) som den cpu som redan satt i maskinen. Efter att ha svurit lite över Win2k bestämde jag mig till slut att installera ett *nix operativ och det fick blir FreeBSD. Tanken är att jag så småningom skall rensa ur en garderob och använda den som "serverhall" (så att jag skall kunna sova gott om nätterna).

021225 - MySQL-programvaran har uppdaterats till 4.07. Jag har även skapat kategoritabell inför samkörningen med buggy samt utökat news_top sidan så den visar hur pass bra index och query cachen arbetar.

021224 - God Jul :o)

021221 - Så där ja... tog lite längre tid än beräknat men nu är McAfee utslängt och Kaspersky står för antivirushanteringen istället (förhoppningvis slipper jag nu dom udda felmeddelandena som dök upp i Apachens error.log). MySQL-programvaran har uppdaterats till 4.06 och det har skett lite julstädning på hårddisken (avinstallationer och uppdateringar) med avslutande defragmentering vilket har lett till mer diskyta att leka med (bra för webloggarna om inte annat ;-)

021219 - Testsystemet är tillfälligt nere. ADSL-modemet behöver staras om när jag kommer hem från jobbet ikväll. Telia har uppenbarligen meckat i telestationen.

(På kvällen) Testsystemet åter i drift efter omstart av modem samt inloggning mot Telianätet.

021217 - Har fixat till så att alla browsers nu visar "visited links" korrekt i newslistningen (samt fixat lite andra buggar och features "behind the scenes"). Samarbete kommer ske med buggy kring trackern där buggy kommer stå för insamlandet. Informationen blir därmed redundant ifall ena servern får uppkopplingsproblem (se 021219 ;-)

021208 - Testsystemet nu tillgängligt dygnet runt på adressen download.apachez.net:81/tbgv2 (dvs ny port). Nu körs både webbservern och databasservern på samma maskin (laptopen). Fixat ; i länkar samt tredje gången gillt gällande reloaden (nu är den javascriptbaserad). Har satt default view last hours till 24 samt ändrat maxgränsen till 336 (2 veckor). Konverteringen till old-style är klar på samtliga sidor och inputboxar samt textarea har fått en "flatlook". Nu ser även TBG v2 bra ut i NS4 browsers. Jag kommer testa utseendet i mozilla samt phoenix under veckan. Ni som sitter med Opera får gärna också testa och meddela mig hur sidorna ser ut (använd för hur det ser ut i IE som mall).

021202 - Old-style is back! :-) Har news_send kvar att konvertera till old-style. Fixat småbuggar, optimerat queries (blivit expert på EXPLAIN som finns i MySQL :-) dessutom kommer en favicon finnas tillgänglig. Har även uppdaterat återförsäljarlistan efter tips som inkommit per epost. Forumet börjar befolkas så smått. Login (och reggning) kommer inom kort...

021127 - Fixat till en del småbuggar. Löste problemet med att ta bort för många indrag när man skall skriva reply. Flyttade "msg" informationen till egen kolumn på news listningen. Aktiverat "hotkeys" när man letar runt bland trådarna. Alt + A = prev, Alt + S = next, Alt + W = write message, Alt + Z = send message.

(På kvällen) Lade till "Back" på news_send sidan samt koppplade en "hotkey" till den (Alt + B). Ändrade hur huvudsidan för newsdelen visar trådar. Tidigare kunde en tråd byta namn så att annat namn på tråden syntes när man tex listade dagens trådar, man kan fortfarande ändra namn på en tråd men endast första postens namn visas i listningen. Dom ändrade namnen syns däremot när man klickar upp tråden. Har även aktiverat querycachning i MySQL-servern, får se vad den ger för prestandan.

021126 - Första "riktiga" reply-meddelandet slängdes in i databasen idag (26 nov) vid halv nio tiden på morgonen. Det är fortfarande lite strul med vissa tecken bla stjärna och lite annat men det planerar jag att åtgärda i kväll, samma med att skapa ny tråd (dvs man kan endast svara på befintliga trådar än så länge). Om ni hittar några buggar (som tex sql injections) eller dyl får ni mer än gärna skicka mig ett mail som beskriver hur buggen visar sig (så att jag kan reproducera den) samt förslag på lösning.

(På kvällen) Nu kan man skapa nya trådar :-) Jag har även fixat "buggen" med att det inte gick att skriva vissa tecken. Jag klurar dock på hur jag på bästa och snabbaste sätt kan kapa bort dom rader (när man skall skriva reply) som inleds av tre eller fler > tecken.

021124 - Efter gårdagens klurerier tror jag mig nu ha en lösning kring funktionerna som skall peta in inläggen. Jag har förberett news_send så att besökaren nu möts av rätt debug-meddelande när denne försöker posta nya respektive svar på gamla inlägg. Ni som besöker testsystemet med jämna mellanrum får mer än gärna "hacka runt" och meddela mig ifall ni möts av felaktigt debug-meddelande i något läge.

021123 - Idag gjorde jag färdigt news_search-delen så att man kan söka bland dom inlägg som har gjorts. Samtidigt försöker jag klura ut hur jag på bästa sätt skall peta in nya inlägg i databasen. Dvs optimera antalet kommandon som skickas mot sql-servern då man skall peta in inlägget. Har även petat in ett par nya företag i återförsäljarlistan samt sorterat kategorierna enligt bokstavsordning dessutom har jag gjort det möjligt att välja "previous message" i news_show-delen (som då är det motsatta till "next message").

021122 - By public request har jag petat in en ny rubrik där jag skriver små notiser om vad som har förändrats på den här sidan (för dom som är så lata så dom inte orkar scrolla igenom hela ;-)


- KONTAKTINFORMATION -

Följande kontaktvägar finns tillgängliga där epost föredras:

icq: 144584926
irc: #bugsoft (efnet)
epost: apachez@home.se