Der blev bygget en POP3-reader...

  1. Meget grundlæggende - om teknologier
  2. Lidt forudsættende - om Flash og PHP
  3. Ganske konkret - om applikationen

1. Om teknologier

Uden at skulle kede folk allerede fra første øjeblik, så tillad mig kort ridse min kæphest op: Der findes gode eksempler på brug af serverside-teknologi (PHP, perl, etc.) og gode eksempler på brug af clientside-teknologi (Flash, DHTML, etc.). Problemet er, at de to "sider" på det nærmeste har været lukket land overfor hinanden.

På den ene side sidder der en bunke nørder, der kan lave programmer, der høvler et par tusinde databaser igennem, laver et par vilde krydstjek undervejs og sætter evt. kaffe over. Problemet er bare, at outputtet ganske enkelt ikke er særligt spændende præsenteret, men måske bare en løkke af resultater. Når det går vildt for sig, består brugervenlighed i at der kun lige præcis ikke spyttes 20 MB resultater ud på samme side, men serverside-programmørerne rent faktisk har givet mulighed for at bladre i resultatsæt, også kendt som "Næste 20 resultater"...

På den anden side sidder der så nogle folk, der kan få ting til at flyve rundt og føles lækkert. Eneste problem er, at det er det samme, der glider og flyver hver gang. Problemet er, at den spændende data, der bliver præsenteret (og som man venter på), er den samme hver gang. Det resulterer i, at en evt. splash-screen-præsentatiton vitterligt bare er noget, man vil vente på, og som ikke kan bidrage med nye oplysninger ved samme lejlighed...

Målet er således at kombinere de to verdener.

2. Om Flash og PHP

Et oplagt spørgsmål er, hvordan man kan kombinere serverside- og clientside-teknologier. Enten skal udviklere bare være gode til begge dele, eller også skal sprogene kunne fungere hver for sig, men snakke sammen på en simpel og åben måde, så der er mulighed for at have en clientside- og en serverside-udvikler, der kan arbejde stort set uafhængigt, uden nødvendigvis at kende til hinandens teknologier. Flash giver, til trods for sin proprietære opbygning, mulighed for sidstnævnte, hvorimod en HTML-løsning ville sætte krav om et fornuftigt template-system eller lignende.

Metoden er yderst simpel: Flash giver mulighed for at requeste en URL, og i samme omgang sende data med som en del af URL'en, ganske som vi kender det fra helt almindelige HTML-forms. Tillige kan Flash så modtage variable fra outputtet af denne URL.

Resultatet er altså, at vi kan lade Flash-udvikleren rode løs med designet, og i den anden ende have fx en PHP-udvikler siddende, der kun koncentrerer sig om at få simpel input og give simpel output tilbage. Den overlappende mængde "tvungen samarbejde" vil være minimal, og i grove træk begrænset til blot at være enig om en række URL's med forskellige funktionaliteter, samt en liste af variabel-navne.

I praksis kunne et forløb foregå på følgende måde:

  1. Brugeren besøger en side med Flash (clientside)
  2. Brugeren indtaster noget i en Flash-fil (clientside)
  3. Flash-filen sender brugerens data videre til en webside (clientside-til-serverside)
  4. Websiden behandler data (serverside)
  5. Websiden spytter et resultat tilbage (serverside-til-clientside)
  6. Flash-filens opførsel herfra afhænger af resultatet (clientside)

En fordel ved denne struktur i modsætning til bare at have en HTML-baseret form er, at Flash ikke er stateless på samme måde som HTTP/HTML. Laver man en HTML-form, skal man i outputtet inkludere alt på siden, altså bannere, "seneste 10 nyheder", etc. Det skal man altså gøre for hvert evige eneste request... Flash requester blot det, den skal bruge, og lader resten overleve undervejs.

Det er dog vigtigt at understrege, at Flash eller tilsvarende ikke i sig selv er målet. Det vil allerhøjst kunne være et middel.

3. Om applikationen (AKA "Nu bliver det spændende")

Langt om længe kommer vi så til noget konkret! Den aktuelle applikation er en Flash-baseret "Webmail". Flash-filen smider de fleste detaljer videre til URL'en, og PHP'en bag den URL står så for alt det praktiske med at hente mails, dekode attachments, cache filer/breve, huske profiler, etc. og så bare sende data tilbage, som Flash-filen i grove træk bare stoler på er i orden.

Mit håb var at lave en "Hollywood"-style-browser. Altså en, som vi kender fra film, med store ikoner, lyde, animerede ting, etc. Et design/skin kunne være glade, roterende konvolutter med masser af farver, etc. Et andet, som jeg håber på at kunne fokusere på, er et hacker/Matrix/Syndicate-look (dog stadigvæk klart Hollywood-inspireret), primært med sort baggrund og grøn tekst, matricer, tern, lasers der tegner ting på skærmen, og så fremdeles.

En god inspirationskilde er det gamle Bullfrog-computerspil "Syndicate", som havde ovennævnte interface i alle menuer.

Et par billeder fra dette spil skal der da også være plads til - bemærk dog, at grafikken var meget grov og næsten for kantet/pixel-agtig i PC-udgaven af spillet:





Referencer

Der skal da også være mulighed for at blive klogere. For eksempel ved at kigge på hvor langt (eller kort, om man vil), jeg er nået indtil videre.

Kontakt

Ikke overraskende er jeg selvfølgelig interesseret i feedback. Så fyr mig fluks en e-post via http://pe.ter.dk/

- Peter Brodersen, juni 2001

... selvfølgelig gyldig XHTML...