Flash der kan validerer

Til at starte med, skulle den post blot indeholde flash videoen herover - et humoristisk indslag ... men det vil jeg så lige ødelægge af, sjovt skal det jo ikke være?! :p

Youtube validerer ikke!Som webprogrammør går jeg, som tidligere skrevet, op i at mine sider kan validerer - det er vel en arbejdsskade man har tillagt sig? Det er i mellemtiden mere end man kan sige om Youtube - se evt. billedet her til højre. Det er faktisk en lidt tåbelig ting at gå op i, da jeg ikke har noget bevis for, at Youtube ikke vises ordentligt i nogle browsere, bare fordi de ikke kan validerer deres side - Anyways, det er stadig god praktik.

Faktisk lader det til, at der er en del sider, der har problemer med at validere deres flash indhold? Men det kan sagtens lade sig gøre - prøv engang at validerer denne side.

A List Apart skrev for længe siden posten "Embedding Flash While Supporting Standards", som i dybden forklarer følgende lille script, hvorfor jeg heller ikke vil gøre en hulens masse ud af dette....

Read more ...

Validér dit site

... og det er ikke bare mit gode råd.

At en side, eller et site, er valid, vil sige at det overholder de standarder der nu en gang er blevet bestemt. W3C er organisationen der står for at bestemme hvordan standarden for f.eks. (X)HTML skal være. W3C er en samling af eksperter, som arbejder sammen med folke indenfor feltet - og der er selvfølgelig en grund til at de har bestemt de ting, de har. Målet med W3C er, som de selv skriver:

To lead the World Wide Web to its full potential by developing protocols and guidelines that ensure long-term growth for the Web.

Hvorfor validerer?
At en side ikke overholder W3C standarderne, behøves ikke nødvendigvis at betyde, at denne ikke kan vises - det findes der alt for mange eksempler på. Browsere er i forhold til f.eks. JavaScript og PHP, med HTML meget mere fleksibelt, og overbærende mht. syntaks. En HTML-side giver f.eks. samme visuelle resultat, om man vælger at skrive alle HTML-tags store eller små, selvom standarden beskriver noget andet [kilde: W3C: Why Validate?].

At en side kan validere er et kvalitetsstempel, men det er et stempel som er værd at gå efter. Som postuleret ovenfor, afhænger en ikke-valid side af browserens måde at håndterer ”fejl” på. Dette betyder at en side som ikke validerer, ikke nødvendigvis ser ens ud i forskellige browsere, da disse kan implementerer forskellige måder at håndterer ”fejlen” på. Dertil kommer at sider som ikke validerer, ofte har svært ved at fungerer med andet end ”den traditionelle måde at bruge en browser på”, altså f.eks. via stemmestyring brugt af en handikappet person.

I en lidt anden kontekst, er der megen diskussion på nettet, om hvor lidt og hvor meget søgemaskiner tager højde for validering. Umiddelbart lader det ikke til at have den store indflydelse på, om dit site bliver indekseret eller ej, men samtidigt lyder det ande steder, at søgemaskine-robotter vil kunne indeksere dit site hurtigere og mere præcist hvis du overholder standarderne.

Uanset formål og strategi, er det en god idé at overholde standarderne – om ikke andet er det med til at vise dine brugere, at kvalitet betyder noget for dig som ejer af sitet, og kan på den måde være med til at din side virker mere troværdig.

Hvordan kan jeg validerer mit site?
Som jeg har skrevet tidligere, finders der adskillige værktøjer, som kan være behjælpelig med at validere dit site. Det væktøj jeg bruger 99% af tiden, er et addon til Firefox kaldet Webdeveloper Toolbar. Rent faktisk er featuren i dette addon blot en integreret måde, at arbejde sammen med W3C egen online validerings service http://validator.w3.org/, og det er jo W3C, der i sidte ende bestemmer hvad er valid og hvad ikke er.

Online servicen fortæller dig ikke bare om din side er valid eller ej, den fortæller dig også hvor evt. fejl findes, samt kommer med idéer til hvordan du kan rette op på fejlene. Validering er forholdsvist nemt, men som du nu har læst, har det altså en eller flere betydninger - så brug det.

Read more ...

AJAX

Denne post er nok mest dedikeret til alle kode-hovederne derude.

Kan du lide at programmerer, mere konkret web-programmering, har du sikkert hørt om AJAX? Hvis ikke, giver vores alle sammens gode ven, Wikipedia, en god introduktion til AJAX.

AJAX er en forkortelse for Asynchronous JavaScript And XML, og er faktisk ikke noget nyt, men blot en sammenfatning ved brugen af JavaScripting og XML. Meget kort fortalt, går AJAX ud på at sende og modtage data, uden at skulle reloade en side, hvormed din side kommer til at virke mere dynamisk.

Read more ...

RSS til alle

RSSRSS, RSS-feeds, RSS-streams eller Live-bookmarks, er muligvis stadig buzzwords for dig, teknologi som du ikke helt ved hvordan eller hvad du skal bruge til? Og det hjælper sikkert ikke meget, når jeg fortæller at RSS står for Really Simple Syndication eller de tidligere versioner Rich Site Summary?!
Teknologien er dog ikke specielt ny, den har bare ikke været så udbredt og understøttet som den er nu, og som den ganske sikkert vil blive det i fremtiden.

Kort sagt, er RSS et format, eller en måde hvorpå man kan posterer overskrifter og/eller indhold, sågar medie-filer, fra f.eks en hjemmeside, for derefter at hente og læse det posterede fra andre applikationer og/eller hjemmesider.

Den første version af RSS kan faktisk spores helt tilbage til 1999, og blev udviklet af Dan Libby i forbindelse med my.netscape.com - sådan skrives det på Wikipedia, ved en søgning på RSS. Idag findes RSS i version 2.0, og er blevet en anerkendt standard - W3C, som håndterer standarder på nettet, har sågar oprettet en valideringsfuntion til RSS feeds.
RSS bruges i vid udstrækning på de mange webblogs (som denne), der vælter frem for tiden, men også rigtig mange store nyhedssider er begyndt at benytte sig af RSS - F.eks TV2 nyhederne. Med RSS kan man nemt og hurtigt komme ud til mange brugere, og brugerne af en RSS-feed behøver ikke engang at skulle gå ind på den side hvorfra de vil læse - De skal blot bruge en applikation der kan håndterer RSS!

Selvom du måske stadig ikke kender specielt meget til RSS, findes der allerede adskillige programmer som kan håndterer formatet. Mozilla Firefox og Thunderbird kan begge håndterer RSS, og på Microsofts hjemmeside kan det læses at den næste version af Internet Explorer (version 7), også kommer til at understøtte dette. Derudover findes der flere programmer der er lavet specielt til RSS, se f.eks FeedReader og RSSOwl. Ja, faktisk findes der også programmer til din mobiltelefon, der undertøtter RSS.

Nok om RSS´ formål og historie, der er en grund til at denne post findes under kategorien Scripts - Det er nemlig ikke specielt svært at selv at lege med RSS!
Resten af denne post, vil koncentrerer sig om hvordan du kan få din hjemmeside til at leverer indhold via RSS (2.0), og hvordan du kan hente indhold fra andres RSS-feeds. Som programmeringssprog vil jeg benytte PHP, som du kan læse mere om i kategorien PHP.
Du kan i slutningen af hvert understående afsnit, download scripts som skulle være lige til at tilpasse dit eget site.

Postér RSS fra din side:
Den grundliggende idé er ganske simpel. Vi skal oprette en fil, hvortil vi skriver det indhold vi vil have andre skal kunne læse vha. understøttende applikationer. Tricket er så bare, at få skrevet denne fil, så de andre applikationer kan forstå den - Til dette er der heldigvis noget der hedder standarder.

En RSS-feed er i bund og grund blot et XML-dokument. Meget, meget kort fortalt, så indeholder et XML-dokument forskellige start- og slut-tags, hvor imellem den data man vil håndtere findes. Antallet af tags kan varierer, fra feed til feed, dog er nogle obligatoriske og findes dermed i alle feeds. På følgende link kan du læse mere om disse tags, og RSS specifikationerne gennerelt.

Det første vi skal have gang i, er en måde hvorpå vi kan oprette og skrive til en fil. Til dette har PHP den indbyggede funktion fopen(String, String). Første parameter vi giver dennne funktion er en fuld sti til den XML-fil vi vil oprette eller opdaterer. Findes denne fil ikke i forvejen, forsøger funktionen at oprettet den. Den næste parameter, er den mode, eller rettighed, som vi vil arbejde med. Der findes flere forskellige (læs linket til funktionen), men vi skal bruge skrive-rettigheden write, som betegnes med et "w". Funktionskaldet gemmer vi i en variabel, $rss_file, som vi skal bruge som resource til at skrive med:
$rss_file = fopen("./rss/index.xml", "w");
Når vi har åbnet en resource til filen, med fuktionen fopen, benytter vi funktionen fwrite(Resource, String) til at skrive til filen med. fwrite skrive en linie ad gangen, så vi skal bruge den en del gange.

Standard for vores XML-fil er, at den skal begynde med følgende:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title>Feed titel</title>
<link>Link til din hjemmeside</link>
<description>En kort beskrivelse til din feed</description>
<language>da</language>

Og skrives med fwrite, på følgende måde:
fwrite($rss_file, "<?xml version="1.0" encoding="ISO-8859-1"?>");
fwrite($rss_file, " ");
fwrite($rss_file, "<rss version="2.0">");
fwrite($rss_file, " ");
fwrite($rss_file, "<channel>");
fwrite($rss_file, " ");
fwrite($rss_file, "<title>Feed titel<title>");
fwrite($rss_file, " ");
fwrite($rss_file, "<link>Link til din hjemmeside</link>");
fwrite($rss_file, " ");
fwrite($rss_file, "<description>Feed beskrivelse</description>");
fwrite($rss_file, " ");
fwrite($rss_file, "<language>da</language>");
fwrite($rss_file, " ");

Herefter kan du f.eks. lave et kald til en database, hente titler, poster, tidspunkter, hvad det nu end måtte være du vil posterer, og udskrive disse mellem tagget <item> og </item>. Det er her antallet af tags kan varierer. Denne version har kun medtaget de mest anvendte, og nødvendige:
while(der er poster der skal skrives)
{
    fwrite($rss_file, "<item>");
    fwrite($rss_file, " ");
    fwrite($rss_file, "<title>".$title."</title>");
    fwrite($rss_file, " ");
    fwrite($rss_file, "<link>".$link."</link>");
    fwrite($rss_file, " ");
    fwrite($rss_file, "<description>");
    fwrite($rss_file, " ");
    fwrite($rss_file, "<![CDATA[".$post."]]>");
    fwrite($rss_file, " ");
    fwrite($rss_file, "</description>");
    fwrite($rss_file, " ");
    fwrite($rss_file, "</item>");
    fwrite($rss_file, " ");
}
Endelig afslutter du din RSS-feed, og lukker skrivningen til filen vha. funktionen fclose(Resource):
fwrite($rss_file, "</channel>");
fwrite($rss_file, " ");
fwrite($rss_file, "</rss>");
fclose($rss_file);

o DOWNLOAD funktionen rss_generate og begynd at postere via RSS.

Hvis du, som jeg, benytter Mozilla Firefox, kan du anbringe et lille ikon i adresselinien (som det i topen af denne artikel), ved at tilføje følgende linie i sidens <head>-sektion:
<link rel="alternate" type="application/rss xml" title="Min feed" href="http://www.din-side.dk/rss/" />

F.eks. Internet Explorer 6 undestøtter endnu ikke RSS, så du kan også placerer ikonet på din side på traditionel vis, ved at linke til din feed. Du kan downloade forskellige formater, farver og størrelser af ikonet fra www.feedicons.com.

Hent RSS til din side:
For at kunne læse andres RSS-feeds, skal vi have lavet en parser, mere præcist, en XML-parser.
En XML-parser benytter sig af de definerede tags, ved at genkende disse, og håndtere de data, der måtte eksisterer imellem dem. I denne version vil jeg kun håndterer tagsene title og link, for på den måde at kunne udskrive en liste med titler, som indeholder links til den tilsvarende titels post.

Parseren er bygget op af følgende fire funktioner:
readFeeds
startElement
characterDataHandler
endElement

readFeeds(String, Int) fungerer som en slags "main", og er den vi kalder for at parse en RSS-feed. Stengen skal indeholde stien til den feed du vil parse, og tallet er antallet af nyheder vi vil have vist.
Herudover findes funktionerne startElement, endElement og endelig characterDataHandler, som erstandard XML-parser funktioner.
I readFeeds opretter vi en resource til den feed vi vil parse, og selve parsingen af dataen udførers herefter af de tre sidstnævnte funktioner.
i startElement funktionen vælger vi kun at ville håndterer hvad der findes mellem item tagsene. Herefter benyttes characterDataHandler fukntionen til at gemme dataen for title og link gemt i variabler. Endelig udskriver vi selve dataen i endElement funktionen, hvorefter vi nulsætter variablerne. Denne process fortsætter indtil vi har fået udskrevet hvad der svarer til det tal vi gav som sidste parameter til readFeeds funktionen.

Det er en process der er lidt svær at forklarer på tekst, men vælger du at downloade scriptet nedenfor, er det faktisk ikke særlig svært selv at lege med. Vil du have flere tags med, kan du tilføje disse til de globale variabler, og gemme dataen for disse i characterDataHandler funktionen. Selve udskrivelsen foregår i endElement funktionen, og fungere som normalt i PHP.

Scriptet nedenfor indeholder de fire funktioner, samt eksempeler på hvordan scriptet anvendes.

o DOWNLOAD XML-parseren readFeeds.

Read more ...

Vil du også være med?

En blog kan jo fungere på flere måder. Nogle er meget private, forbeholdt familien med familiefotos og generations-træer osv. Andre fungerer som informationssider til folk med samme interesse og andre igen, fungerer ligesom skrivebord for hvad end der lige faldt en person ind.

Før jeg lavede denne blog, havde egentlig ikke gjordt mig så mange tanker om hvad jeg ville bruge den til?! For mig var det mere øvelse i at lave en sådanne, og selvfølgelig fordi jeg synes det kunne være lidt sjovt at agere skribent for lige hvad jeg ville.
Jeg ved stadig ikke helt, hvad jeg vil bruge min blog til. Men efter som jeg jo er teknisk anlagt, og bloggen mere eller mindre opstod fordi jeg kunne, kunne jeg da passende starte med at forklare lidt om processen bag.
Derfor vil denne post fungere som en samling af links til emner og videre læsestof, som kan være en god start til den der gerne selv vil igang med at lave hjemmesider.

H T M L
Noget af det første man bør have kendskab til er HTML. HTML er kort for Hyper Text Markup Language, og er den "markering" man benytter, til at fortælle hvordan en tekst, billede, link eller andet, skal se ud. Standard for HTML er at man har et start-tag og et slut-tag. Således starter en ren HTML-side altid med start-taget <html> og slutter med </html>, ligeledes er en fed tekst markeret således <b>fed tekst</b>.
Denne start/slut-tags-teknik er gennemgående for HTML. HTML kan ses som en ramme hvori man placerer sin tekst, og ligeledes et værktøj til at formaterer sin tekst.
For at få en bedere forståelse af HTML, vil jeg anbefale at læse indholdet på følgende links:
www.html.dk/tutorials/html/.
www.htmldog.com.
www.w3schools.com/html/default.asp.
HTML har indbygget de mest basale funktioner til tekst-formatering, så som fed, kursiv og understreget tekst. Ydermere giver det mulighed for at lave tabeller, som du sikkert kender dem fra regneark, og selvfølgelig mulighed for at indsætte links, billeder og baggrunde. Og mere skal du basalt set ikke bruge for at lave en hjemmeside.

C S S
Med ren HTML finder man hurtigt ud af, at man skal være fandens kreativ for at kunne lave en side der er noget ud over det normale. Det kan være svært at placere forskellige objekter lige hvor man vil, og baggrunde er ikke til at arbejde med. Heldigvis findes der også et værktøj til dette. Dette værktøj hedder CSS, som er kort for Cascading Style Sheet, og er egentligt bare et dokument du laver ved siden at din HTML side(r), og som du refererer til gennem din HTML-side. CSS-dokumentet indeholder et sæt selvdefinerede tags, som igen indeholder regler for hvorledes en side, paragraf, tekst, link eller billede skal udformes.
Idéen er kanon, fordi du nu kun skal skrive dine formateringer op én gang, og herefter blot refererer til den igen og igen. Man finder hurtigt ud af, at man tit skal have formateret noget på samme måde flere gange.
Til den interesserede læser, som gerne vil grave dybere i CSS, vil jeg forslå disse links:
www.html.dk/tutorials/css/.
www.htmldog.com.
www.w3schools.com/css/.
www.csszengarden.com.

Ved gennemlæsning og gennemgang af de forskellige øvelser og eksempler der findes for enden af linksene i denne post, kan du komme langt. Men for at kunne håndterer forme, mails og dynamisk side-generering skal du se nærmere på programmeringssprog som f.eks ASP eller PHP (som denne side er lavet i) - Dette afsnit gemmer vi dog til en anden god gang.
Jeg håber I kan bruge nogle af overstående links - De har i hvert fald hjulpet mig godt på vej i sin tid.

Read more ...

1