Archive for November, 2006

Når man viser søketreff på en nettside, er det vanlig å dele lange resultat over flere sider. I 1001 Spill-koden har dette blitt gjort med to søk.

  • Et søk som teller antall mulige treff med select count(*)
    ex: SELECT COUNT(*) FROM docs
  • Et søk som henter de 10 treffene som skal vises på siden med hjelp av limit.
    ex: SELECT * FROM docs LIMIT 10,20

Dette kan være ineffektivt om du har en tung sql, da det samme tunge søket gjøres to ganger.

I MySQL 4.0.0 kan dette løses med SQL_CALC_FOUND_ROWS som får MySQL til å telle antall treff også i et LIMIT-begrenset søk. Antall rader må deretter hentes ut med SELECT FOUND_ROWS();

Eks:

SELECT SQL_CALC_FOUND_ROWS * FROM docs LIMIT 10,20;

SELECT FOUND_ROWS();

Husk at SELECT FOUND_ROWS() må kjøres rett etter selve spørringen, ellers er resultatet tapt.

Kilde: MySQL: Get total number of rows when using LIMIT

Les også: MySQL: Information Functions

posted by admin November 21, 2006 9:59 am     |     read comments (0)
November 10, 2006

Mitt første Ruby-script

Endelig har jeg laget mitt første ordentlige Ruby-script, og det over et år etter at jeg første gang skrev det obligatoriske puts “hello world!”.

Programmet er et overvåkningsscript som sjekker endringer på eksterne websider, og innebefattet bruk av Rubys standard-komponenter net/http, Date, MD5, filhåndtering og enkel dato-manipulering.

Installasjonen gjorde jeg med Ruby 1.8.5 One-Click Installer, som inkluderer teksteditorene Scite og Freeride.

Freeride så brukbar ut, men altfor få av windows-hotkeyene fungerte, hvilket er utrolig frustrerende for en hotkey-fantast som meg. Scite var noe bedre. Milevis fra noen killer-IDE, men nok til jobben jeg her skulle gjøre. Neste gang er jeg nok tilbake til Editplus, som er min favoritt til programmering av småscripts.

Som oppslagsverk brukte jeg Programming Ruby Second Edition av Dave Thomas. Det jeg leste om ruby-verktøyene, syntaksen og språket generelt var meget godt forklart, men oversikten over kjernebibliotekene ga meg lite. Eksemplene rundt net/http fikk jeg ikke til å fungere, og som vanlig var det Google som reddet meg der.

I håp om å sette opp en daglig cronjob, prøvde jeg å legge scriptet ut på min server hos www.pair.com. Dessverre fungerte det ikke der, antakelig grunnet noen manglende komponenter. Dette til tross for at Ruby 1.8.4 skal være installert. Skal forske på dette senere.

Inntil videre tikker scriptet fornøyd på min desktop-PC, hvilket i bunn og grunn er godt nok for denne gang.

posted by admin November 10, 2006 3:17 pm     |     read comments (0)
November 1, 2006

Språkstøtte-problematikk

Når man oversetter et nettsted til flere språk, oppstår nye arbeidsoppgaver og tekniske utfordringer.

Ikke bare skal alt innhold oversettes, men også menyer, logoer og skjemaer. Når så dette er gjort kommer eventuelle partneravtaler eller annonsesystemer, hvilket også gjerne skal tilpasses språkets brukergruppe.

I et slikt perspektiv er det lett å rote seg bort og fylle koden med unødvendig komplekse tilpasninger.

Når 1001 Spill ble oversatt til engelsk oppstod disse problemene for fullt, og alt toppet seg når det gikk opp for meg at engelske brukere neppe bryr seg om norsk-språklige spill. Hvordan løse dette enkelt?

Å filtrere bort alle norske spill fra hele nettsiden, ville medført endring på et stort antall sql-spørringer, og komplisert koden ytterligere.

Løsningen viste seg å være latterlig enkel. Jeg endret kun forsiden. Nå får altså engelske brukere kun engelske spill på forsiden, mens alle øvrige sider inneholder samtlige spill. Faktisk er dette også mest det brukervennlige, da en nordmann som søker i den engelske søkemotoren fortsatt vil forvente å finne de norske spillene. Google.no og google.com gjør også tilsvarende tilpasning, da de alltid tilgjengeliggjør alle treff, men selvføgelig prioriterer den riktige språkfamilien i den norske Google-motoren.

Det enkle er ofte det beste!

posted by admin November 1, 2006 3:33 pm     |     read comments (0)