Miljø og bredbånd

No Comments

Dette er måske taget lidt ud af kontekst, men ikke desto mindre fangede følgende interview mig med det samme.
Jeg lyttede endnu engang til 3. episode af The Web 2.0 Show, hvor Josh og Chris interviewer Om Malik, en senior skribent for Business2.com.

Inteviewet kommer ind på bredbånd, salg af båndbredte, marketings strategier, og spørgsmål som (jeg beklage på forhånd, skulle du falde over en stavefejl eller to):
- "How broadband, how different technologies get adopted?"
- "What will make consumers go from 1 MBit/s to 25 Mbit/s?"

Til dette har Om Malik følgende forklaring:
"It depends on wich part of the world you are in…".

Hvilket jeg meget vel kan følge ham i.
Herefter snakker han om at man bør se nærmere på hvad folk bruger båndbredte til i forskellige land, og kommer med følgede udsagn:

"What do they use bandwith for in Korea? Online games!


The reason for that is very simple, you know… very poluted, things are pretty grim when you are out in the world, but inside the gameparlour, you know,  you can shut that world out, and suddenly you have kids spending tons of time, like all their rakking time playing games. I mean that´s the key, that´s the buttom line".

Er det virkelig sandt? Har de bedre (hurtigere) forbindelser i evt. Korea virkelig noget at gøre med deres dårlige miljø?
Det står måske soleklart for dig, men jeg synes ikke helt at kunne se sammenhænget – Er det mig der har misforstået noget?

WEB 2.0 – Det store buzzz

No Comments

Jeg er måske lidt bagud, og så alligevel… Web 2.0 er et af de rigtig store buzzwords på nettet for tiden. Den største grund til den store forvirring, er gangske sikkert, at det er et koncept under opbygning.
Og ja – jeg siger koncept ganske bevist, for efter hvad jeg har forstået er Web 2.0 mere en attitude ændring end noget andet.

Jeg ved ikke med dig, men jeg synes det er enormt spændende, og glæder mig til selv at få lidt mere styr på det hele, om det er Web 2.0 eller ej – Hvad synes du?

Wikipedia introducerer Web 2.0 med følgende:

The term Web 2.0 refers to a second generation of services available on the World Wide Web that lets people collaborate and share information online. In contrast to the first generation, Web 2.0 gives users an experience closer to desktop applications than the traditional static Web pages.

Lyder det meget anderledes end hvad vi kender WWW for nu? Nej – Ikke meget vel; brugerne skal have bedere oplevelser, oplevelser der minder mere om de stand-alone applikationer som vi downloader og installerer lokalt. I overstående citat, vil jeg påstå at man skal ligge vægten på ordene services, share information og user experience, for graver man lidt dybere ned i diskussionen, vil man flere gange komme frem til at Web 2.0 på mange måder handler om attitude ændringer, og informations-flow, hvor håndtering af dataen spiller en vigtig rolle.
Til tider kan det faktisk komme til at lyde helt revolutionært, som om nettet har været et meget lukket forum, og nu skal det bringes tilbage i hænderne på brugerne.

Tim O´Reilly afholder årligt en konference kaldet FOO Camp. I 2005 kom man på denne konference frem til følgende diagram, ved en brainstorm på spørgsmålet: "Hvad er Web 2.0?".
For uden sætningen "An attitude, not a technology", fremkommer adskellige services, som allerede er i brug.
Måske er det dét, at f.eks. Google Maps, Flickr, AJAX, og flere andre, er services og/eller teknologier allerede findes. Services som du måske ikke har tænkt yderligere over skiller sig ud fra så mange andre. Men nu bliver de klassificeret som Web 2.0?!

Der findes ikke en entydig definition, så vidt jeg ved, og måske er dette med til at skabe den, i min verden, store frustration omkring det fremtrædende fænomen. Tim O´Reilly har dog forsøgt sig, med sin "Web 2.0: Compact Definition?".

I Wikipedias artikkel om Web 2.0, nævnes nogle visuelle kendetegn, som f.eks. gradiente baggrunde, store skrifttyper, highlighted tekster m.f. hvilket jeg synes falder fuldstændig udenfor sammenhænget. Der er sandt, at disse punkter er visuelle tendenser der florerer stærkt for tiden, og til tider også kan fremme brugervenligheden. Men tror dog ikke det har specielt meget med Web 2.0 at gørre, måske nærmere endnu en sideeffekt af Apple´s store success. Det er et skud i tågen, men jeg har altid sammenlignet disse looks, med Apple´s Mac OSX – Måske det bare er mig?

Jeg er heldigvis langt fra den eneste der har tænkt – hvad fan… er nu det her for noget? The Web 2.0 Show er et podcast-show som fokuserer på alt hvad der har, siges at have, eller absolut ikke har, noget med Web 2.0 at gøre. Showet er i skrivende stund nået op på 20 episoder. Jeg har dog kun hørt de første tre, men er allerede blevet godt bidt af det.
Foruden selv at komme med adskillige forklaringer og beskrivelser af hvad der forståes som værende Web 2.0, bliver mange af de store udviklere inden for feltet interviewet. Sitet www.web20show.com er et rigtig godt startsted, hvis du vil grave videre i Web 2.0 buzzet – Om ikke andet kan du jo downloade en episode eller to, fra deres podcast, og se om det er noget for dig?!

Allerede nu, før den brede masse overhovedet har fattet hvad det handler om, er der folk der er ved at brække sig over det. Jeg synes også det er forvirende, men jeg er ikke i tvivl om at der er noget om snakken, der er noget i gære. Se bare som bloggen springer frem overalt, alle vil pludselig sige en hel masse?! Og hvad med RSS, Tags, Rails, AJAX og WordPress? Det vælter pludselig frem med services som alle gør det lettere for den enkelte at publiserer information og følge med i andres.

Jeg ved ikke med dig, men jeg synes det er enormt spændende, og glæder mig til selv at få lidt mere styr på det hele, om det er Web 2.0 eller ej – Hvad synes du?

RSS til alle

5 Comments

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.

Mobil Applikationer

2 Comments

SE-810i MobilUps, hov, av … Der kom jeg sørme lige til at købe ny mobiltelefon. Ikke at jeg egentlig havde brug for det, men sådan er det jo nu engang. Sjovt som man kan tilfredsstille sig selv med lidt materialisme engang imellem?! Hmmm… men jeg elsker jo gadgets, så det var begrundelse nok for mig.

Den nye Sony Ericsson W810i er sandelig en fryd for øjet, og ikke mindst for en nørd som mig.
Den nye mobils funktionen skulle selvfølgelig undersøges helt i detaljer – Og, Jeps, det er gjort! Og I den forbindelse kom jeg til at surfe lidt rundt på nettet, bare for lige at se hvad man egentlig kan gøre med sådanne en djævel. Jeg har aldrig rigtig brugt specielt meget tid på min mobil, men nu er den jo ny og spændende.

Mobiltelefoner har længe haft Java-understøttelse, men har du nogen sinde tænkt over hvad det vil sige? Okay, det har jeg faktisk, men jeg har aldrig rigtigt brugt det. Med en Java-understøttet mobiltelefon, findes der faktisk et hav af applikation, spil såvel som programmer, du frit kan downloade fra nettet!
Dermed fandt jeg hurtigt følgende 3 favoritter:

Opera Mini: Lynhurtig browser til din mobilen, med mulighed for at downloade og gemme billeder, lyd og sikkert også video på mobilen. God historik og bookmark-funktion. Og min favorit (lidt en mangel fra min gamle mobil) – Page-up & -down funktion, der faktisk virker kanont.

eMSN: MSN-understøttet chat-klien til mobilen. Log på med dit nuværende MSN-logon, og gense dine grupper og fulde kontaktliste. Udemærket til chat – savner dog mine avatars.

MovoMail: E-mail klien, med understøttelse af GMail, Yeahoo, Hotmail, POP3, IMAP og diverse Webmails. Godt nok kun en 60 dages trial-version, men herefter kan du stadig kan bruge den, med en begrænsning på fem connections, og én afsendelse pr. dag.

Alle tre applikationer fandt jeg på http://www.getjar.com, hvor der ganske sikkert er meget andet man kunne more sig med.

mod_rewrite

2 Comments

Har du nogen sinde set URLs på formen:
www.mypage.dk/index.php?user=Simon&page=gallery
Dette er sider genereret med et dynamisk sprog som f.eks. PHP (se evt. posten "Vil du også være med? Del. II"), der unikt peger på indhold, som var det på formen:
www.mypage.dk/Simon/gallery.html

Men har du nogen sinde lavet et community, med brugerprofiler og mulighed for flere forskellige funktionaliteter, som f.eks personligt galleri, vil du vide at dette er mere eller mindre umuligt at holde styr på med HTML alene.
Alligevel kan du på f.eks. www.deviantART.com, som nok er verdens største kreative community, se URLs som:
http://user.deviantart.com/gallery/
Her skulle man igen, ved første øjekast, tro at der fantes et katelogene /User/gallery/ med en index-fil af en eller anden slags. Men med sine over 2 millioner brugere og mere end 21 millioner uploads (til dags dato), tvivler jeg meget stærkt på at dette er tilfældet!
Mere sandsynligt er det, at sider på formen /User/gallery/ er blevet mappet over på formen /?user=User&page=gallery – Og det er faktisk muligt!

Måden dette kan håndteres er ved hjælp af et såkaldt re-write modul, som er installeret på webserveren.
Da jeg selv benytter Apache´s webserver, og det er denne jeg har erfaring med, vil det blive denne jeg tager fat på.
Til Apache hedder modulet mod_rewrite, og følger med installationen som standard (til Windows i hvert fald).

mod_rewrite modulet fungerer ved at undersøge den URL der bliver sendt, og teste den op mod nogle rewrite regler.
Reglerne kan defineres i serverens konfigurations fil httpd.conf, eller hvis man ikke har adgang til denne, via en .htaccess-fil. Reglerne defineres vha. regulære udtryk, hvilket nemt kan virke som en gang hyroglyfer ved første møde.
Lad os springe ud i det. Tager vi overstående eksempel fra deviantART, vil målet her være at lave en regel, der mapper:
    /User/gallery
over i:
    /?user=User&page=gallery

Og dette kan vi gøre ved reglen:

RewriteEngine On
RewriteRule ^([a-z] )/([a-z] )/? index.php?user=$1&page=$2 [L]

Skridt for skridt:
- Først lader vi serveren vide at RewriteEngine, som er motoren bag hele modulet, skal være slået til.
- Herefter laver vi regel, der genkender URLs som består af to strenge, med et eller flere af karakterene [a-z] , efterfulgt af en eller ingen slash (/?).
- For hver streng, som er defineret meller paranteserne, substituerer vi disse over i variablen $1, $2, som er værdier for henholdvis user og page.

Og så er vi faktisk kørende. Du kan nu tilgå siden /?user=User&page=gallery med URLen /User/galley. Du skal dog være opmærksom på, at der ikke er nogen magi her, du skal selv i din kode omskrive dine URLs til at benytte den nye struktur, og blot hold for øjet, at de jo faktisk er på den mere forvirende form.

Men hvor skulle ham overhovedet ville gøre dette? Tja – hvad husker du bedst?
/?year=2006&month=May&day=22&id=21
eller
/22-May-2006/mod_rewrite.html
Og det gør søgemaskiner desuden også!

Før jeg skrev denne artikel, var jeg forbi følgende tre sider, som indeholder nogle noget mere detajlerede beskrivelser om både mod_rewrite og regulære udtryk. Er du mere interesseret, er de rigtig gode startsteder:
www.alistapart.com/articles/urls/
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
http://forum.modrewrite.com/

Older Entries Newer Entries