Om website vedligeholdelse

november 4th, 2012 af Jesper Kristensen med Comments Closed

En af de ting jeg laver i MozillaDanmark er at vedligeholde vores website. Vores site består af fire dele:

  • mozilladanmark.dk
  • forum.mozilladanmark.dk
  • wiki.mozilladanmark.dk
  • blog.mozilladanmark.dk

Sitet ligger på et shared hosting webhotel med Linux, Apache, MySQL og PHP. Forummet, wikien og bloggen kører på henholdsvis phpBB, MediaWiki og WordPress. Desuden har vi vores forside og et par andre statiske sider, som er skrevet direkte i HTML med en smule PHP til at inkludere fælles kode.

Størstedelen af arbejdet med siden består i at holde phpBB, MediaWiki og WordPress opdateret. Ved hver opdatering skal vores grafiske design og vores egne tilpasninger opdateres til at virke med de nye versioner. Vores grafiske design er baseret på Mozilla Community Sites Theme. MCS Theme var et projekt der skulle gøre det muligt for lokale Mozilla-sites i forskellige lande at dele det grafiske layout og arbejdet med det. Der kom desværre aldrig rigtig andre bidragydere end mig, og det er nu blevet erstattet af Sandstone, som Mozilla er i gang med at indføre på alle Mozilla-sites. Jeg vil gerne have MozillaDanmark.dk opdateret til Sandstone, men jeg har ikke tiden til det i øjeblikket. Hjælp modtages gerne.

De fire dele af vores site er meget skarpt opdelt. Som en forening af frivillige må vi af og til flytte siden fra en hosting-løsning til en anden, og vi har ikke altid fritiden til at gøre det. Derfor er vores site opbygget så hver af de fire dele kan flyttes uafhængigt af de andre. Tag fx vores forside. På den kan man se seneste aktivitet på både forummet og bloggen. Det foregår ved at et script jævnligt downloader et web feed fra de to andre dele af siden over HTTP, og viser indholdet af dette feed. Det ville have været nemmere at gå direkte ned i databasen i stedet for via HTTP og RSS/Atom. Men så ville forsiden ikke virke, hvis den fx blev hostet på en server, der ikke havde adgang til forummets database. Den skarpe opdeling mellem de fire dele har reddet os mange gange i mozilladanmark.dks levetid.

Efter samme tankegang med at holde delene adskilt, har vi også web hosting og DNS hosting to forskellige steder. Vores DNS ligger hos GratisDNS.dk, mens vores web hosting af alle fire dele i øjeblikket ligger hos Surftown.

Er du interesseret i at hjælpe med til at vedligeholde og udvikle mozilladanmark.dk? Så skriv til os.

MozCamp: Boot 2 Gecko og Apps

november 22nd, 2011 af Jesper Kristensen med Comments Closed

Fra Mozilla Camp Europe 2011 i Berlin, 12. – 13. november.

Hvor vi på PC’en nu har frit valg af browser, har langt de fleste mobil-platforme en tæt knytning mellem sky-services, browser, operativsystem og hardware. Det er fx ikke muligt at installere en separat browser på hverken iOS eller Windows Phone. Mozilla eksperimenterer derfor med Boot 2 Gecko (B2G). Det er et mobilt styresystem, som kan køre på samme hardware som Android.

Brugerfladen er lavet 100% med åbne webstandarder, det vil sige HTML, CSS og JavaScript. Selv startskærmen er en webapplikation, og man kan skifte den ud og installere en anden, lige som enhver anden app. På samme måde er telefon-app’en, SMS-app’en og indstillings-app’en lavet i HTML og kan skiftes ud.

Se en live videodemonstration af en prototype på Boot 2 Gecko på YouTube.

Da mere og mere webbrowsing flytter over på mobil, og da mobile platforme generelt ikke tillader installation af andre browsere, er Mozilla nødt til at lave sin egen mobile platform, hvis de fortsat vil være relevante på browsermarkedet. Mozilla har endda aftaler med flere hardwareproducenter, som er interesserede i B2G fordi de er trætte af Googles stadigt tættere greb om Android. Disse hardwareproducenter vil desværre ikke have deres navne frem.

Apps på mobile enheder er blevet meget populære, men de har mange ulemper. De er alle låst til en bestemt platform og til en bestemt app store. Mozilla arbejder på åbne web apps, som har alle fordelene uden ulemperne. De kan fås i online butikker, men er ikke låst til en bestemt butik. De vil virke med forskellige browsere på forskellige operativsystemer og mobile enheder. Det vil være nemt at kræve penge for dem i modsætning til en traditionel hjemmeside. De vil have en fast genvej lige som almindelige programmer og apps.

B2G bygger på princippet om disse åbne webapps, og et af formålene med B2G er at lave nye åbne web-API’er, så webapplikationerne kan alt hvad en app kan på eksisterende mobile platforme. Målet er også at få indflydelse på Android, iOS og de andre etablerede platforme, for at få dem til at implementere de samme web-API’er, så man som udvikler vil kunne skrive en app, der virker direkte på tværs af platforme. Mozilla ønsker at udvide web-platformen med nye API’er, som er nødvendige i mobil-apps. De ønsker at disse API’er skal standardiseres og implementeres på andre platforme, og ikke bare være Mozilla-specifikke API’er.

Her er top argumenterne for, hvorfor Boot 2 Gecko er vigtig, som jeg har hørt på MozCamp:

  • Da browser og OS smelter sammen og nettet flytter over på mobilen, er Mozilla nødt til at producere et mobil-OS, for ikke at blive lukket helt ude fra browserverdenen på sigt.
  • B2Gs formål er ikke bare at være en konkurrerende platform. Det er et mål for Mozilla at få indflydelse på konkurrenterne, og derved gøre dem bedre.
  • Ved at lave en mobilplatform, som er god, og som almindelige brugere vil bruge, vil Mozilla få indflydelse på mobilmarkedet og kan være med til at skabe et app-marked baseret på åbne standarder og uden låsning til specifikke app stores. Målet er det samme som da Mozilla oprindeligt satte sig for at ændre nettet fra at være IE6-baseret til at være baseret på åbne standarder og fri konkurrence.

Boot to Gecko

juli 30th, 2011 af Jesper Kristensen med Comments Closed

Mozilla har lige annonceret Boot to Gecko, et projekt som vil bygge et komplet operativsystem til smartphones baseret på åbne webteknologier.

Nettet har vundet på PC’en, hvor man kan bruge avancerede webapplikationer som fx kontorprogrammer og mailprogrammer på sværs af browsere og operativsystemer. Men situationen er ikke nær så god på det voksende smartphone-marked, hvor Apps har mange flere muligheder end webapplikationer, og derfor er mere populære. Ulempen ved Apps er dog at en App lavet til Android ikke automatisk virker på iPhone eller Windows Phone, og omvendt.

Hvis vi kan få overført alle de gode ting ved Apps til webapplikationer, kan vi undgå at vi som forbrugere bliver låst fast til bestemte leverandører, hvilket betyder bedre smartphones til os.

Add-on SDK til udviklere af tilføjelser

juni 21st, 2011 af Jesper Kristensen med Comments Closed

Mozilla har udgivet version 1.0 af Add-on SDK og første beta af Add-on Builder.

Tilføjelser er og har altid været en vigtig del af Firefox, og Firefox ville ikke være nået så langt som den er uden dem. 85% af alle Firefox-brugere har valgt at installere en eller flere tilføjelser.

Men tilføjelser i Firefox har også en række udfordringer.

  • De fleste udvidelser kræver en genstart af Firefox for at blive installeret eller opdateret, selvom det med Firefox 4 er blevet muligt at lave udvidelser, der ikke kræver genstart.
  • At lave en udvidelse til Firefox kræver også et indgående kendskab til hvordan browserens indmad virker, og udvidelsen skal skrives i XUL, CSS og JavaScript, hvor XUL er et helt nyt sprog man skal lære.
  • Og fordi udvidelsen er så tæt knyttet til indmaden i Firefox, skal den testes og måske opdateres, hver gang der kommer en ny version af Firefox. Det er måske til at leve med når der komme en ny version en gang hvert år, men nu hvor Mozilla er gået over til at udgive en ny version hver sjette uge, er det svært at følge med.

Formålet med Add-on SDK er at gøre alt dette lettere.

  • Udvidelser udviklet med SDK’et skrives i HTML, CSS og JavaScript, som enhver webudvikler kender.
  • SDK’et indeholder en række API’er, som kan bruges uden yderligere kendskab til indmaden i Firefox. Det betyder også, at din udvidelse automatisk vil være kompatibel med fremtidige versioner af Firefox, hvis du bare holder dig til disse API’er.
  • API’erne er designet på en sådan måde, at udvidelser kan installeres og afinstalleres uden en genstart, og uden at du som udvikler behøver holde styr på at fjerne alt hvad du tilføjer.

Disse API’er kan dog ikke alt hvad man kan ved at stikke fingrene direkte ned i motorrummet. Derfor kan du også tilføje dine egne API’er, som din udvidelse og andre udviklere kan bruge. Men så mister du bare fordelen ved at udvidelsen automatisk er kompatibel med fremtidige versioner af Firefox, og du skal også selv designe API’et, så din udvidelse kan afinstalleres uden en genstart.

Add-on SDK er et godt skridt på vejen, men det er også lidt besværligt. Som webudvikler er jeg vant til at det eneste jeg behøver er en tekst editor og en browser, og jeg skal bare trykke Opdater i browseren for at se mine ændringer. For at udvikle traditionelle udvidelser til Firefox, er det eneste ekstra jeg skal bruge et zip-program, når jeg skal udgive min Firefox-udvidelse. Med Add-on SDK skal jeg til at installere både Python og SDK’et, og så skal jeg til at kompilere min udvidelse med et kommandolinje-værktøj. Det kan jeg undgå med Add-on Builder, som er en hjemmeside med SDK og en editor bygget sammen “i skyen”. Her kan jeg lave min udvidelse direkte på en hjemmeside, og jeg kan teste den med det samme, og udgive den til addons.mozilla.org. Det kræver bare at man kan undvære sin vandte tekst editor.

At skrive en eksisterende udvidelse om til at bruge SDK’et er et stort projekt, og meget skal skrives om fra bunden. Men heldigvis kan man vælge at fortsætte som man plejer uden SDK’et med XUL, genstarter og opdateringer ved nye versioner af Firefox.

Firefox har altid været foran blandt browserne inden for tilføjelser. Internet Explorer har dem, men de er i maskinkode, hvilket betyder C++. De er derfor svære og tidskrævende at lave, og det er begrænset hvad de kan. Tilføjelser til Chrome og Safari er nemme at lave i HTML, CSS og JavaScript, men til gengæld er det meget begrænset hvad man kan med dem. Med tilføjelser til Firefox kan man derimod næsten alt hvad man har fantasi til. De er lettere at lave end tilføjelser til Internet Explorer, og med det nye SDK og Builder er simple tilføjelser lige så nemme at lave som tilføjelser til Chrome og Safari, mens det stadig er muligt at lave mere avancerede tilføjelser til Firefox.

Ramt af tekniske poblemer 23-24. oktober

oktober 24th, 2010 af Jesper Kristensen med Comments Closed

MozillaDanmarks sider har været noget langsomme det sidste døgns tid. Det skyldes problemer med en databaseserver hos vores hosting-udbyder Surftown. Problemerne startede et sted mellem fredag aften og lørdag morgen, og har ført til at siderne oftest har været over 30 sekunder om at blive indlæst, hvis det da overhovedet lykkedes at indlæse siderne. Vores forum, blog og wiki var ramt, mens vores hovedside virkede som normalt, da den ikke benytter databasen.

Surftown har meddelt at databasen er blevet fikset klokken 16:25 i dag søndag, så den skulle forhåbentligt virke korrekt igen.

Der ser ud til at være nogle ting der ikke helt stemmer på vores forum. PhpBB-softwaren, som vi bruger, er åbenbart ikke særlig robust overfor en ustabil database. Det vil jeg se om jeg kan få fikset snarest muligt.

Vi må leve med at tingene nogen gange går galt. Det kan jo ske, specielt når man som vi bruger shared hosting. Men jeg synes godt Surftown kunne have været lidt hurtigere til at fikse problemet. Det tog over et døgn. Ydermere viste deres serverstatus-side ingen problemer, og oppetiden for databaseserveren står lige nu som om den har været 100% over de sidste seks døgn, hvilket åbenlyst er løgn. Men man kan nok ikke forvente mere af hosting til 50 kroner pr. måned, og vi er da også generelt tilfredse med vores hosting hos Surftown.

Opdateret senere: Tingene skulle nu gerne være fikset på forummet. Årsagen var at phpBB åbenbart overhovedet ikke bruger databasetransaktioner, og så kan det jo nemt gå galt.

Ny Firefox 4 Beta

september 8th, 2010 af Jesper Kristensen med 1 Comment »

Så er en ny Beta af Firefox 4 klar. I forhold til den forrige Beta har denne tre interessante nyheder.

  • Hjemmesider kan få adgang til rå data omkring lyd afspillet i et HTML5 <audio>-element.
  • Hardwareacceleration er aktiveret som standard, hvilket gør Firefox markant hurtigere til grafik-tunge sider.
  • HTTP Strict Transport Security gør sikre sider som fx netbank mere sikre, da Firefox nu efter første besøg kan huske at hjemmesiden altid skal hentes over en sikker forbindelse, også selvom du glemmer at skrive https:// foran, såfremt siden bruger HSTS.

Du kan se videoer af de to første nyheder på Mozillas officielle blog på engelsk. Specielt videoen omkring visualisering af lyd er et kig værd.

Ud over de tre nævnte ting er blandt andet også X-Frame-Options, som jeg allerede tidligere har nævnt i dag.

Hent den nye Beta fra getfirefox.com/beta.

Firefox 3.6.9 med X-Frame-Options

september 8th, 2010 af Jesper Kristensen med 1 Comment »

Som nævnt i mit indlæg om X-Content-Security-Policy, vil den kommende Firefox 4 også understøtte X-Frame-Options – en HTTP header introduceret af Internet Explorer, som kan forhindre ondsindede websteder i at inkludere dit websted i en iframe på en usikker vis, også kaldet ClickJacking. X-Frame-Options er nu også tilgængelig i Firefox 3.6.9, som lige er udkommet. Det er hermed anden gang Mozilla inkluderer ny funktionalitet i de automatiske stabilitets- og sikkerhedsopdateringer. Første gang var Firefox 3.6.4 med beskyttelse mod nedbrud i plugins.

X-Content-Security-Policy på MozillaDanmark.dk

august 31st, 2010 af Jesper Kristensen med 2 Comments »

Firefox 4 er på trapperne (den er som jeg tidligere har nævnt i Beta lige nu), og den indeholder blandt andet nye sikkerhedstiltag, som hjemmesider kan gøre brug af. En af disse er Content Security Policy, forkortet CSP.

CSP er et ekstra lag af sikkerhed, man kan tilføje til sin hjemmeside. Lidt lige som User Access Control i Windows, Protected Mode i Internet Explorer og sandboxing i Google Chrome, giver CSP en ekstra beskyttelse, i tilfældet af at der skulle være et sikkerhedshul et eller andet sted. Men hvor de tre andre metoder er til styresystemer og programmer, er CSP til hjemmesider.

CSP er en HTTP header på en hjemmeside, som fortæller hvad hjemmesiden må gøre. Hvis en hacker får adgang til at smugle ondsindet kode ind på hjemmesiden, vil CSP i visse tilfælde kunne forhindre den i at gøre skade, da CSP-politikken ikke giver tilladelse til at gøre hvad end det ondsindede stykke kode måtte finde på. På http://mozilladanmark.dk/ ser CSP-headeren således ud:

X-Content-Security-Policy: allow ‘none’; img-src ‘self’; style-src ‘self’; object-src ‘self’; options inline-script

Her står at siden må indhente billeder, CSS style sheets og plugins fra samme domæne (mozilladanmark.dk), mens den ikke må hente nogen andre resurser nogen steder fra. Det kunne fx være scripts, videoer eller iframes. Billeder og style sheets bruger vi masser af, og plugins bruger vi på siden testjava.

Den sidste tilladelse i vores CSP er “options inline-script”, som gør at vi kan udføre inline JavaScript på siderne produkter, thunderbird og kompozer. Egentligt burde jeg have placeret scriptet i en ekstern .js fil og brugt en “script-src ‘self’”-tilladelse, men jeg var doven her. inline-script i CSP er kun tiltænkt til brug som en midlertidig overgang. I de fleste dynamiske hjemmesider laves HTML’en dynamisk, så at tillade script her er normalt usikkert. Med script-src har man bedre kontrol over hvorfra scriptet kommer. Det er de færreste hjemmesider der leverer dynamisk genereret indhold med en “Content-Type: application/javascript” HTTP header.

Ved at begrænse tilladelserne til nøjagtigt hvad siden bruger, sikrer vi at hvis en hacker får smuglet noget som helst andet ind, vil det blive afvist af Firefox 4. Det er vigtigt at være opmærksom på at CSP er et ekstra lag beskyttelse. Man skal stadig lave sin hjemmeside, så den er sikker uden CSP.

Jeg har kun tilføjet CSP til vores statiske sider under adressen http://mozilladanmark.dk/, hvilket ikke inkluderer vores forum, wiki og blog. Nu tænker du måske at jeg bruger CSP der hvor der er aller mindst brug for den, og du har da også ret. Grunden er at vi ikke selv laver vores forum-, wiki- og blog-software. Det er udviklerne af denne software, der skal anvende CSP, hvis de vil. Jeg har kun tilføjet CSP til de sider jeg selv har lavet.

Tilføjelsen af CSP har allerede afsløret en fejl på MozillaDanmark.dk. Vi bruger XHTML, vel at mærke HTML5-definitionen af XHTML, hvor siden læses af browserens XML-parser i stedet for HTML-parseren. XML-standarden dikterer at browseren ikke nødvendigvis skal stille HTML-entities til rådighed, når siden læses som XML. Det vælger Firefox dog at gøre, men det er stadig en god ide at lade være med at bruge dem, da andre browsere ikke nødvendigvis gør det. På vores thunderbird-side havde vi dog overset dette. Vi havde brugt HTML-entiteten &shy;, som jeg nu har udskiftet med XML-varianten &#173;. Grunden til at CSP fangede dette er relateret til følgende besked i Firefox fejlkonsollen:

CSP: Directive “allow ‘none’” violated by resource://gre/res/dtd/xhtml11.dtd

Det betyder ganske enkelt at jeg i min CSP ikke har tilladt resource://gre, og at det derved ikke er tilladt for browseren at indlæse HTML-entities som fx &shy; på siden.

CSP er i øjeblikket ikke en standard. Det er lavet af Mozilla og virker i øjeblikket kun i Firefox 4. Men andre browser-producenter (herunder IE-teamet) har givet rosende ord til CSP, så man kan håbe de også vælger at implementere det, hvis det bliver populært blandt hjemmesider. Af andre sikkerhedsnyheder i Firefox 4 kan nævnes X-Frame-Options, som dog også kommer i Firefox 3.6.9. X-Frame-Options er heller ikke en standard, og blev oprindeligt introduceret af Internet Explorer, men er nu understøttet af flere browsere. Hos MozillaDanmark bruger vi dog ikke X-Frame-Options, da alle de sider hvor det er relevant, er lavet af andre (forummet, wikien og bloggen), og at bruge det på sider, hvor det ikke er nødvendigt, har nogle ulemper. Fx vil sider der bruger X-Frame-Options ikke kunne ses i Google billedsøgning, da billedsøgningen netop indrammer siden i en frame.

Prøv Firefox 4 Beta!

august 12th, 2010 af Jesper Kristensen med 1 Comment »

Den nye Firefox 4 kommer nærmere og nærmere, og er fuld af spændende nyheder og forbedringer. Mozilla vil gerne sikre at Firefox 4 bliver den bedste browser nogen sinde, og til det har vi brug for at du prøver betaen og fortæller os hvad du synes om den og ikke synes om den.

Skærmbillede af Firefox 4 Beta

Så skynd dig at hente Firefox 4 Beta på dansk, og brug Feedback-knappen i øverste højre hjørne til at fortælle os, hvis du oplever noget godt eller skidt med Firefox 4. Vi har brug for så meget feedback som muligt, og vi lytter til alle.

Skærmbillede af Feedback-knappen

Firefox 4 Beta har været i gang siden starten af sommeren, men vi skriver først nu om den her på siden, da den første Beta på dansk lige er kommet.

Her er en opsummering af nogle af nyhederne i Firefox 4:

  • Faneblade vises i toppen af vinduet.
  • I Windows 7 og Windows Vista er den traditionelle menulinje erstattet med en ny simplere Firefox-knap. Den kan tilvælges manuelt på andre operativsystemer.
  • App Tabs, der kan køre webapplikationer som fx Gmail så de mere ligner almindelige programmer. Se også videoen.
  • HD video: fuldskærms-video er nu hardwareaccelereret og Googles nye WebM-format understøttes, så du kan se HD-videoer på YouTube direkte i browseren.
  • Ny håndtering af tilføjelser, som vises i et faneblad i stedet for en selvstændig dialogboks.
  • En rettelse i implementeringen af CSS-standarden, så hjemmesider ikke længere kan se hvilke andre sider du har besøgt.
  • Beskyttelse mod nedbrud i plugins, som blev introduceret i Firefox 3.6.4 er udvidet til at omfatte alle plugins, og er nu også tilgængelig på Mac’en.

Under kølerhjælmen er en række forbedringer, som blandt andet har betydning for webudviklere og udviklere af Firefox-tilføjelser:

  • CSS3 Transitions gør det nemt at lave elegante animationer. Se demoen.
  • Layers & Retained Layers udnytter hardwareacceleration og giver hurtigere scrolling.
  • Ændringer i XPCOM, som gør Firefox hurtigere, men som også kræver ændringer i en del tilføjelser før de kan virke med Firefox 4.
  • HTML5 Parser er en fælles indsats blandt browserleverandører, blandt andet med det formål at alle hjemmesider skal vises ens uanset hvor mange syntaksfejl de måtte indeholde.
  • WebSockets kan bruges til at lave realtids-webapplikationer som fx online spil og chat.
  • IndexedDB giver mulighed for at gemme større mængder struktureret data på klienten med bedre ydeevne og offline tilgængelighed som nye muligheder.
  • Web-konsol er en funktion til at se hvad der sker i en webside.
  • Mulighed for at lave tilføjelser, der kan installeres/afinstalleres/opdateres og så videre uden en genstart af Firefox, samt nemmere udvikling af tilføjelser med det nye Jetpack SDK.
  • HTML5 Forms giver mulighed for at lave simple form inputs hvor browseren tager sig af forkerte inputs og hjælper brugeren med at udfylde felterne.
  • HTML5 History gør det muligt for AJAX-baserede webapplikationer at fungere med brug af frem- og tilbage-knapperne.
  • URI’er i File API’et og FormData-objektet gør det muligt at håndtere store filer med JavaScript uploads.
  • Nye CSS-egenskaber og -selektorer som resize, any, calc og image-rect.
  • Touch screen API.
  • Content Security Policy, hvor hjemmesiden selv specificerer hvilke potentielt risikable funktionaliteter den vil bruge og har sikret sig selv imod, hvorved alt andet vil blive blokeret.
  • Se den fulde liste.

Sagt igen, prøv betaen. Den er for alle, der vil være med til at forme hvordan Firefox 4 kommer til at se ud, og du behøver ikke gøre andet end at bruge den og give os feedback.

Du kan sige din mening via Feedback-knappen i betaen, i kommentarfeltet her på bloggen eller i vores forum. Så hvad synes du generelt om Firefox 4? Føles den nemmere at bruge? Føles den hurtigere? Er der websider der ikke virker lige så godt som i den forrige udgave? Nogen der virker bedre?

Referencer for nyhederne i Firefox 4: 1 2 3

Hvor svært kan det være at lave login til banker og offentlige hjemmesider?

august 2nd, 2010 af Jesper Kristensen med Comments Closed

Både det nye NemID og dens mange forgængere har altid været meget omdiskuteret omkring sikkerhed og teknisk besværlighed. Jeg har skrevet lidt om hvad jeg synes om NemID på en engelsk Mozilla-blog, men vil da også gerne lige give et link her.

Min holdning er at grundideen er god, men den bliver både brugt forkert og teknikken er ikke med endnu.