måndag 31 mars 2008

Webbredaktörsdatorer

På almän begäran så lägger jag upp vad webbredaktörerna har för program i sina datorer. När jag tänker på det så borde jag ha gjort detta innan vi la om dem för att få tips på fler och bättre.

Alla datorer som levereras till Nya Medier skall ha en gemensam grundkonfiguration. Beroende på arbetsuppgifter så tillkommer programvaror och anpassad konfiguration.

Grundkonfiguration
Såväl laptops som stationära datorer skall ha följande installerat
  • Citrix
  • FirstClass
  • Acrobat reader
  • Flash player
  • Timbuktu PRO
  • FireFox
  • Audacity inkl. Lame codec.
  • Real Player
  • Antivirus
  • VLC
  • Newspilot
Laptops
Förutom grundkonfiguration skall alla laptops ha följande.
  • Cisco VPN
  • Joost
  • 3G inställningar - Tre
  • MS Office, ink plugin som gör att man kan läsa doc
  • Flip4Mac
  • CyberDuck
  • Paparazzi!
  • Quicksilver
  • Adium
  • ffmpegx
Videoredigeringsdator (Laptop)
Allt som ingår i laptopkonfigurationen plus nedanstående
  • Final Cut Express
  • Squeeze

tisdag 18 mars 2008

Riktlinjer för leverantörer

Jag skrev i mitt förra inlägg att vi haft en hel del problem med våra leverantörer. Jag har fått en hel del positiva och igenkännande kommentarer på detta inlägg. Jag har även fått frågan om det kan vara så illa och om det inte varit småaktörer som gett oss problem? Jag tänker inte hänga ut någon här men det är de stora aktörerna som gett oss flest problem.

Vi har därför skrivit riktlinjer som skall skickas till alla leverantörer innan nya avtal skrivs eller förlängs. På så vis läggs ansvaret på funktionalitet på leverantören och de kan inte i efterhand ändra förutsättningarna. Om leverantören inte kan uppfylla alla nedanstående krav så innebär det inte per automatik att vi säger nej till tjänsten. Men vi bör då ta en diskussion internt innan vi accepterar. Om inte annat så vet vi vad vi ger oss in på.

Det ligger i vårt intresse att fler än oss ställer dessa krav så därför publicerar jag dem här. Vi vill gärna ha synpunkter på dessa och förslag på mer saker som bör tas upp.

Observanta läsare märker att jag inte skriver så mycket om Flash och hur det skall/bör användas på hd.se. Jag tänkte nämligen använda hela nästa blogginlägg till det.

Nu över till riktlinjerna:
1 Sammanfattning
Vi på hd.se tycker att webbstandarder är mycket viktigt och allt som läggs ut på vår sajt skall därför validera enligt http://validator.w3.org/. För att det skall fungera smidigt så kräver det att materialet vi får in följer våra riktlinjer. Det är också viktigt att olika leverantörers kod inte "krockar" med varandra, att säkerheten upprätthålls, att sajten fungerar för alla oavsett operativsystem och webbläsare.

Eftersom man kan leverera material på flera olika sätt och format så har vi gjort en sammanställning på hur vi vill ha det.

2 Plattform
2.1 Klientplattform
Vi strävar efter att alla lösningar skall fungera oavsett vilken webbläsare eller operativsystem som används. Därför skall lösningarna vara testade från följande versioner till senaste;

Internet Explorer 6
Safari 2.0 (build 412)
Firefox 2.0

Uppfylls kravet? Ja / Nej / Inte tillämpbart

2.2 Serverplattform
Vi använder följande mjukvaror på hd.se:
Linux
Apache 2.2
MySQL 5.0 med teckenkodningen UTF-8 (till skillnad från standard ISO-8859-1 aka latin1)
PHP 5.0 med register_globals, magic_quotes_gpc och safe_mode deaktiverat

Se även styckena under 3.5.1 Databasbaserade tjänster och 3.5.2 PHP för mer detaljerad information.

Om leverantörens lösning behöver installeras på hd.se:s servrar bör den vara anpassad för att fungera med ovanstående.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

3 Drift
3.1 Leverans
Vi tar helst emot feeder av XML via FTP eller HTTP (tex RSS). Iframes som vi "bara" länkar in ger oss oftast mer problem än om vi får en feed med rådata. Om ni kräver specfik layout såsom logos och typsnitt så föredrar vi ett avtal om hur det skall se ut.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

3.2 Felhantering
Leverantörens lösning måste hantera fel på ett för besökaren användarvänligt sätt. Det är till exempel inte acceptabelt att använda Javascript's alert() vid fel.

Om en besökare helt saknar, eller har en för gammal version, av en plugin (t.ex. Flash) eller webbläsare så ska detta meddelas på ett, för besökaren, hjälpsamt sätt med information och länk dit senaste versionen kan hämtas.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

3.3 Uppdateringar
Om det blir problem med nyare versioner av webbläsare, Flash etc så är det leverantörens ansvar att korrigera detta då det oftast uppstår när produktionssättet inte följt riktlinjer för webb och program-standard.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

3.4 Övervakning
Alla leverantörer svarar själva för övervakning av att deras system fungerar. Om problem uppstår skall hd.se meddelas omedelbart enligt överenskommelse. T.ex. via e-post eller telefon.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

3.5 Säkerhet
Det är leverantörens ansvar att se till att produkten inte äventyrar datasäkerheten på sajten.

3.5.1 Databasbaserade tjänster
Tjänster som använder en databas måste se till att skydda sig mot SQL-injections. Det ska framgå vilka privilegier (SELECT, INSERT, ..) databasanvändaren behöver för att applikationen ska fungera. Se MySQL's dokumentation över privilegiesystemet för mer detaljer.

Vid leverans av tabelldefinitioner och eventuell tabelldata så ska dessa levereras som en SQL-dump, förslagsvis UTF-8 kodad även om vi kan hantera standardteckenkodningen ISO-8859-1 aka latin1.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

3.5.2 PHP
Tjänster som behandlar någon form av indata från besökaren, både i form av inparametrar och eventuell information i kakor, måste se till att dessa har ett förväntat och acceptabelt format. Obehöriga ska inte kunna komma åt filer på servern, databasinformation som inte avsågs från början eller kunna exekvera kod eller kommandon på servern eller på i databasen.

Vanliga problem är till exempel SQL-injections, Cross Site Scripting (XSS) eller remote file inclusion.

Hos oss är följande avstängt:

PHP safemode
Register_globals
Magic_quotes_GPC -- applikationen måste själv sköta escapning av indata från HTTP GET/POST eller kakor.
Applikationen ska ur ett säkerhetsperspektiv följa best practices redan från början och det är leverantörens ansvar att se till att dessa följs. Vid behov kan vi ge tips på det vi känner till. Data som hämtas från request parametrar (t.ex. vid HTTP GET eller POST), kakor, filer eller databasposter ska alltid escape's innan de används.

Data som hanteras i samband med SQL-frågor ska escape'as med mysql_escape_string() eller metoden mysqli::escape_string() om man använder den objektorienterade varianten av MySQL API:et i PHP.
Data från databasposter eller filer som skrivs ut i HTML-dokument ska alltid kodas med htmlspecialchars(), både för att HTML-koden ska blir korrekt och av säkerhetsskäl.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

4 Format
4.1 HTML
Vi använder XHTML på hd.se och är väldigt noga med att den XHTML som finns på vår sajt är korrekt och validerar enligt W3C (http://validator.w3.org/).

Leverantörens HTML-kod skall validera enligt minst "XHTML 1.0 Transitional" standarden men vi ser gärna att "XHTML 1.0 Strict" används.

Om HTML levereras från leverantörens server ser vi gärna att den komprimeras (i Apache med mod_gzip/mod_deflate) innan den skickas för att minska datamängden som hämtas, till fördel för besökare med långsammare uppkopplingar.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

4.2 Teckenkodning
Teckenkodningen vi använder på hd.se är UTF-8. Den används på webben, internt i våra system och vid kommunikation med externa system.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

4.3 CSS
Om selektorer och klasser används så ska dessa ha ett prefix, gärna baserat på företags/tjänstens namn så att de inte krockar med vår eller andra leverantörers CSS. CSS:erna skall ligga i egen fil och kunna kontrolleras av HD.

Då en leverans resulterar i html-kod på hd.se är det ett krav att den ytterst omslutande taggen i html-portionen är identifierad med ett väl beskrivande och särskiljande ID-attribut.

Exempel på bra id´n som definierar både leverantören och tjänsten:

omxStockTicker
sjTimeTable
nordeaIntrRates

Uppfylls kravet? Ja / Nej / Inte tillämpbart

4.4 Javascript
Alla variabler ska defineras med keywordet var innan de används. Exempel: 'var debug = false;'. Användning av variabler som inte definerats innan de används gör javascript långsammare.

Globala javascript variabler och funktioner ska ha ett prefix, gärna baserat på företagets/tjänstens namn, så att de inte krockar med våra eller andra leverantörers dito. Inneslut helst hela javascriptfunktionaliteten i en, alternativt några, omslutande variabler för att komma så nära konceptet "scoope" som möjligt.

Vi ser gärna att javascript så långt det är möjligt läggs i en extern fil och hämtas in på de ställen de behövs. På det viset kan webbläsaren cacha scriptet och besökaren behöver inte hämta hem samma javascriptkod för varje sidvisning.

OBS! Vi använder oss redan av vissa javascriptbibliotek som t.ex. SWFObject för att hantera Flash. Det kan finnas tillfällen då det kan utnyttjas utan att besökaren ska behöva hämta hem leverantörens bibliotek också. Kontrollera med oss om ni är osäkra på vad vi använder!

Om javascript är avslaget hos klienten så bör det finnas en alternativ lösning och i värsta fall ett läsbart "felmeddelande".

Uppfylls kravet? Ja / Nej / Inte tillämpbart

4.5 Kakor (cookies)

Eventuella kakor som sätts bör ha korta namn och värden. Lagra inte information i kakorna som annars skulle kunna ligga i en sessionsvariabel (eller databas) på servern. Stora kakor i kombination med många anrop till webbservern påverkar prestandan negativt då kakorna måste skickas med varje gång. Många besökare har en liten bandbredd uppströms.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

4.6 Filformat och Plugins
Vi accepterar inga andra webbläsarplugins än Flash. Det skall fungera från version 9 till den senaste.

Uppfylls kravet? Ja / Nej / Inte tillämpbart

onsdag 12 mars 2008

Webbutvecklare sökes till marknadsavdelningen

Marknadsavdelningen på HD söker en webbutvecklare. Personen ifråga kommer att jobba i ett riktigt trevligt gäng med en kanonchef. H?n kommer även att jobba tätt ihop med oss på hd.se.

http://hd.se/b/i/annons/jobb/?id=1411

-----------------------------------------------------------------
Vi söker en webbutvecklare till marknadsavdelningen för ut-
veckling och underhåll av vår marknadssajt på hd.se. Med
hjälp av nätet bygger vi nya relationer till våra läsare och kun-
der så att det blir enklare för dem att på egen hand uträtta
sina ärenden.

Vi satsar även på att förbättra HDpassets erbjudande och
tjänster via vår hemsida. Här kommer du att få en viktig roll
genom att du arbetar nära marknadsgruppen.

För att klara våra mål behöver vi dig som är duktig på XHTML,
CSS, XML, JSP, SQL, AJAX och PHP.

Det är även meriterande om du har vissa kunskaper i Flash
och Photoshop och har bra känsla för form och text. Webb-
standarder, användarvänlighet och säkerhetsmedvetande är
viktiga ledord hos oss.

Har du frågor kring tjänsten kontakta Anders Nilsson på
042- 489 93 44 eller anders.nilsson@hd.se.
Facklig kontaktperson: Olof Eliasson 042-489 92 04.
Skicka din ansökan via mejl till petra.thulin@hd.se eller till
Helsingborgs Dagblad AB, Petra Thulin, 251 83 Helsingborg.
Vi vill ha din ansökan senast den 24 mars.
Märk din ansökan webbutvecklare.
-----------------------------------------------------------------

Om du bor närmare Kalmar än Helsingborg så kan du söka jobb hos Gota Media istället. http://www.networkers.se/2008/03/skes-ny-jobbarkompis.html

tisdag 4 mars 2008

Leverantörer, skärp er

Jag skäms för att det inte hänt nåt på den här bloggen på mycket länge. Jag tänkte råda bot på det med några inlägg om våra leverantörer och kraven på dem.

Jag har nu varit på hd.se i drygt 13 månader och en sak som har slagit mig är den dåliga kompetens många av våra leverantörer har. Det är mer regel än undantag att det är problem när vi skall sjösätta en ny lösning. Exempel på problem vi har haft är;
  • Lösningen kräver plugin som inte finns till Mac.
  • De testar inte lösningen på olika plattformar med de problem som där följer.
  • De är ibland omedvetna om att det finns olika teckenkodningar och byter utan att veta om det själva.
  • Lösningen validerar inte. Vi har till och med fått frågan om var man kan läsa på om validering.
  • Man levererar inte nya lösningar på samma sätt som tidigare så vi får bygga nya importskript. Leverantören har således inte satt en egen standard.
  • Lösningen har allvarliga säkerhetshål.
  • Det saknas bevakning så vi får uppmärksamma dem på deras egna problem.
  • Lösningen skalar inte och blir lätt överbelastad
När en leverantör talar om hur lätt de gör det för oss och att vi "bara behöver...." så är det dags att hissa varningsflagg. De som påstår detta är i regel de som skapar mest problem för oss.

Vi har därför skrivit ett långt dokument där vi listar alla de krav vi har på leverantörer som de skall få redan under upphandlingsfasen. Det ligger i vårt intresse att fler ställer dessa krav så jag kommer att publicera den här på bloggen.

söndag 14 oktober 2007

Vi lyssnar på er!

I april skrev Joakim Jardenberg på den här bloggen om Rubbet, vår nya annonssajt. Johan Sölve har sedan dess gjort ett fantastiskt jobb och nu är det dags att lansera Rubbet på allvar.

Men är det klart då? Inte på långa vägar. Men det är tillräckligt klart för att lanseras. Nu är det er tur att komma med synpunkter på hur Rubbet skall utvecklas.

Vi är stolta över att ha skapat något som vi tycker är unikt och nyskapande – en annonssajt utan kategorier. Istället bygger Rubbet på sökord. De vanligaste sökorden presenteras i ett sökordsmoln (taggmoln) och det är ingången till att hitta intressanta annonser. När man klickat på ett sökord visas nämligen ett nytt litet sökordsmoln med relaterade sökord och det är då det roliga börjar.
I början kan det kännas lite underligt att bara ha en massa sökord att klicka på, men när man klickat sig runt ett tag märker man hur fantastiskt roligt det är, en riktig klickmaskin!

När man annonserar väljer man inte kategori, man behöver inte ens skriva någon rubrik. Skriv bara in annonsens text, lägg till några sökord för att tala om vad det handlar om (t ex moped köpes), skriv din e-post och sedan är det klart!

Rubbet är oerhört enkelt byggt och det är egentligen själva poängen. Men kanske är det för enkelt, fast vi vill hellre bygga på funktioner istället för att ta bort. Behövs det ett fält för ort eller räcker det med att ni skriver in orten bland sökorden? Hur kommer det att bli om Svea i Svalöv säljer Höganäskrus eller Lasse i Landskrona säljer ett hus av Helsingborgstegel? Kommer man att hitta rätt då? Man kan också se enkelheten som en styrka och som siten är uppbyggd så är den oerhört kraftfull. Kraftfull t.ex. för att man inte behöver lägga lika mycket tid på att administrera den och bygga nya kategorier. Om det blir vanligt med lergöksförsäljning på Rubbet så kommer “Lergök” automatiskt att visas i sökordsmolnet. Det blir också lätt att prenumerera på sina egna sökningar via RSS. Hur man än har sökt blir det ett eget RSS-flöde.

Vi tar väldigt gärna emot åsikter om Rubbet. Vad vill ni att vi skall förbättra? Vad tycker ni är bra? Skicka gärna ett mejl till rubbet@hd.se eller skriv en kommentar till detta inlägg. Vi lyssnar på er.

Så sätt igång och leta i era förråd och byrålådor efter något du inte längre behöver. "Släng det inte, sälj det på Rubbet"

Läs mer om rubbet:
hd.se
Joakim Jardenbergs blog
Networkers.se
Dagens Media
Medievärlden

onsdag 12 september 2007

Avancerad sökning

Enligt Google så är ca 1% av sökningarna på Googles sajt via "Avancerad sökning". Det är en märkligt låg siffra om man tänker på hur svårt många tycker att det är att hitta rätt träffar. Men så slog det mig, är det avancerat att söka via "Avancerad sökning"? Inte speciellt.

I det helt hypotetiska fallet så vill vi leta fram en artikel på hd.se där Henrik Larsson, som inte är en fotbollsspelare, har uttalat sig i radio eller TV (vi minns inte riktigt) om en nyinköpt bostad.
Hur söker vi då för att inte drunkna i träffar om tex fotboll?
'bostad radio OR tv "Henrik Larsson" -fotboll site:hd.se ' är för mig en rätt avancerad sökning som en ytterst få kan utföra. Man kan istället gå in på "Avancerad sökning" och fylla i:
  • Med alla dessa ord: bostad
  • Med den exakta frasen: Henrik Larsson
  • Med något av dessa ord: radio TV
  • Utan dessa ord: fotboll
Det är ju hur enkelt som helst och det kan vem som helst förstå hur man skall göra. Så varför heter det "Avancerad sökning" när det i själva verket är förenklad sökning?

Ok, men vad är problemet? Jo, det ligger ju i vårt som sajtbyggares intresse att folk skall hitta så bra som möjligt på våra sajter. Hur bra vi än bygger dem så behövs ibland en bra sökfunktion. Jag tror att om vi kallar det "Avancerad sökning" så skrämmer vi bort de vanliga användarna från att ens trycka på länken eftersom texten på den indikerar att det här är något svårt. Men vad skall man då kalla det? "Förenklat sök"? "Sökhjälp"? eller något helt annat?

Vad tycker ni?

onsdag 20 juni 2007

Taggmoln är ute, textmoln är inne

Nu har vi en testversion ute och den känns faktiskt rejält pigg. Det här var tänkt som ett proof of concept och handlade om hur man ska navigera i stor mängd annonsobjekt. Men det blev så bra att det kommer gå live redan den här veckan. Kolla och kommentera.

Vi har i principt släppt tanken på att annonserna ska taggas manuellt och istället tuggar vi genom deras innehåll och bygger ett "moln" med nyckelord - helt automatiskt. Ett textmoln.

Spontant känns det väldigt bra tycker jag, och det är både praktiskt och uppmuntrar till ett nöjesbetonat och nyfiket upptäckande. Vad det handlar om beskrivs bäst med exempel (länkarna öppnas i nytt fönster):

http://nya.hd.se/rubbet2/ -> klicka på volvo
i molnet till höger har du bara taggar som är relaterade till
volvo och kan klicka på tex nybes eller drag eller svart eller...

eller http://nya.hd.se/rubbet2/ -> klicka på tex gräsklippare (du måste välja "visa fler" först)
välj tex batteridriven och dessutom gardena - sökorden adderas och sökningen blir snävare

eller http://nya.hd.se/rubbet2/ -> klicka på helsingborg
och få koll på allt som erbjuds i helsingborg

eller http://nya.hd.se/rubbet2/ -> klicka på svart
och bara lattja runt genom att klicka på taggarna i högermolet

Det återstår så klart en del arbete:
  • Formen ska fixas, texter ska uppdateras och semantiken ska bli glasklar
  • Molnen ska rensas ytterligare, fler stoppord, lite omviktningar etc...
  • Annonsinmatningen via nätet ska uppdateras till molntänket
  • Pyssel, felsökning och mer usability-tester
  • Prestandatester, optimering

Så, vad säger ni? Flipp eller flopp?

Andra bloggar om: , , ,