IT rapport & Programmerings journal RSS Læser - Eksamensprojekt

Relaterede dokumenter
Projektbeskrivelse RSS Læser

Dokumentation. Karen-Louise Fejerskov

PHP Quick Teknisk Ordbog

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau

Naja Schlüter Roskilde Tekniske Gymnasium 26/ Interessentanalyse

IT projekt uge 4 9. Marie Vinter, Roskilde Tekniske Gymnasium, klasse 2.6 IT, bw, uge

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4

Programmering 19/ ROSKILDE TEKNISKE GYMNASIUM. Projektbeskrivelse. Programmering. Rasmus Kibsgaard Riehn-Kristensen

Redaktørvejledning for Skriv en artikel

Projekt - Valgfrit Tema

Lav en hjemme side der kan sælge fly billetter til en stor i Europa.

Se hjemmesiden på:

GRAFISK WORKFLOW REDESIGN AF HJEMMESIDE

Her ses et screenshot af websitet solsystemet i menuen Merkur. Baggrundsbillede skal være static så resten af siden skal man scrolle ned for at se.

Indholdsfortegnelse Valg af opgave... 2 Introduktion... 2 Problem... 2 Målgruppe... 2 Afsender... 2 Budskab... 2 Kodning... 3 Effekt...

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

GRAFISK WORKFLOW. Kasper Staal - Portfolio - H2

ELEMENTER Jeg vælger fonten Raleway, som er en af Googles mange gratis webfonte. Det er en grotesk skrift, som især bruges til websites, da de på

GRAFISK PRODUKTIONSFORSTÅELSE

WORKFLOW & PRODUKTION

VDI Manual v. 5 Indhold

Afsluttende Projekt - Kom/IT

Mini Afsluttende Projekt

Go-Kart DMKA Dokumentation

Procesbeskrivelse - Webprogrammering

Brugervejledning til Design Manager Version 1.02

portfolio GRAFISK WORKFLOW

FRISØR VEST. Link til hjemmesiden: Frisorvest.github.io. Lavet af: Aleksander, Benjamin, Line & Cathrine

GRAFISK PRODUKTION & WORKFLOW. Endotest website

HVAD ER WORDPRESS 2 HVORDAN LOGGES IND 3 HVORDAN NAVIGERES DER 4 HVORDAN SKRIVES EN SIMPEL NYHED 5 AVANCEREDE NYHEDER 6 HVORDAN RETTES EN NYHED 7

Grafisk produktion & workflow

ECdox som favorit. Indledning 1. Internet Explorer 2. Chrome 4. Safari 5. Favorit på mobile enheder 6 Android 6 IOS 7. ECdox på mobile enheder 7

Undervisningsbeskrivelse

VEJLEDNING Udfyldelse af spørgeskemaet

Velkommen til REX onlinehjælp

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

GRAFISK WORKFLOW H1 MARIA SCHELDE

Indhold. Grafisk workflow 3 Procesbeskrivelse 4 Inspiration 5 Skitser 6 Flowchart 7 Typografi og farver 8 Skelet 9 Storyboard 12 Html, css og seo 16

MANUAL - Joomla! Version 1

Mozilla Firefox (tidligere Firebird): Fremhæve ord

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

Kom godt i gang med I-bogen

Hjælp under login på Mit DLR Oktober 2015

Annemette Søgaard Hansen/

Skyfillers Hosted SharePoint. Kundemanual

TEKNISK VEJLEDNING SPILLET FREMTIDENS LANDBRUG

Dokumentering af umbraco artikeleksport:

Grafisk. Hjemmesiden er designet til en nyopstartet virksomhed kaldet Tegnestuen M. De har både en arkitektafdeling og en tømrer-/ snedkerafdeling.

MANUAL - Joomla! Version 1

Hjemmesiden er opdelt i et sidehoved, en sidefod og mellem disse 3 kolonner: venstre, midterste og højre. Højre kolonne vises dog kun på forsiden.

Annemette Søgaard Hansen/

GRAFISK PRODUKTION OG WORKFLOW. Hjemmeside til Team Brügger

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Grafisk workflow. bl.udbudsnet.dk

GRAFISK PRODUKTIONSFORSTÅELSE

Grundforløbsprøve Projektbeskrivelse

Dokumentation. Udbyder : sms1919.dk Service : sms-grupper Applikationer Facebook. : Facebook Integration med sms-grupper.

srum Fritidsaktiviteter : 1. Semester. Multimediedesigner Projektstart: 17/ Aflevering: 4/

Opstart og adgange til Ejersiden

Guide til din computer

Manual Version 2. til oprettelse af hjemmesider for landsbyer i Rebild kommune

GRAFISK WORKFLOW Hjemmeside - Husk hjelmen.

Guide til MetaTraffic Pro

GRAFISK WORKFLOW HJEMMESIDE EL FIRMA ANDERSEN EL

Dokumentation. Udbyder : sms1919.dk Service : sms-grupper Static FBML Facebook. : Facebook Integration med sms-grupper.

Opsætningsvejledning efter opdatering (ghostning) af hybriderne

Afsluttende opgave 2009 Kommunikation/IT

Hvad Hvorfor Hvordan Overvåg sites via egne feeds

Dokumentation. Workflow. Grafisk produktion. Trine Alexandersen 1. hovedforløb

Print selv på biblioteket

Web sider. Introduktion: Har du nogensinde spekuleret over, hvordan det verdesomspændende internet virker og hvordan man snakker med det?

vorbasse.dk Redaktørmanual Kentaur

6 Ugers Digital Markedsførings Uddannelse. Online Marketing SEO Præsentation Anders Sevelsted Bigum&Co Amagerbrogade

Af: Safa Sarac Klasse 3.4 Skole: Roskilde Tekniske Gymnasium, HTX Vejleder(e): Karl B Dato: 26. marts 2012

HESTBJERG WEB GRAFISK WORKFLOW

GRAFISK WORKFLOW WEBSITE - CHOCOADDICT

Rapport. Udarbejdet af: Mayianne Nøks Pedersen. Skole login: knmape68.

Dynamisk hjemmeside: NeuTravel

HHBR. Design. Kvalitets vurdering. Opgaven. Målgruppe og Budskab. De Grafiske valg

1. SCREENING OG BAGGRUND

Vejledning til opbygning af hjemmesider

Vejledning for metadatabasen

Manual til Dynamicweb Februar 2010

Computerspil. Hangman. Stefan Harding, Thomas Bork, Bertram Olsen, Nicklas Thyssen og Ulrik Larsen Roskilde Tekniske Gymnasium.

KT OR LOW PRODUKTION // WORKFLOW

Superskolernes kampagne

ViKoSys. Virksomheds Kontakt System

ROSKILDE TEKNISKE GYMNASIUM. Læringsprogram. Lommeregner

OPGAVEN PROGRAMVALG. Jeg har brugt Illustrator til at lave logo og ikoner.

Hurtigstartguide Mamut ez Publish Hurtigstartguide

Transkript:

HTX Roskilde 3.4 IT rapport & Programmerings journal RSS Læser - Eksamensprojekt IT & Programmering Elev: Christian Pihlkjær Hjortshøj og Joans Henk Jensen Dato: 10-05-2013

Indholdsfortegnelse 1. Indledning... 4 2. Indledende analyse... 5 2.1 User story 1 (Studerende)... 5 2.2 User story 2 (Fodboldfanen)... 5 2.3 User story 3 (Skolelære)... 5 3. Problemformulering... 5 3.1 Målgruppe... 5 3.2 Kravspecifikationer... 6 3.3 Test specifikation... 6 4. Diskussion af løsningsforslag/design... 7 4.1 Løsningsforslag... 7 4.1.1 Fordele... 7 4.1.2 Ulemper... 7 4.2 Løsningsforslag... 8 4.2.1 Fordele... 8 4.2.2 Ulemper... 8 4.3 Løsningsforslag... 9 4.3.1 Fordele... 9 4.3.2 Ulemper... 9 4.4 Valg af løsning... 10 4.4.1 Fordele... 10 4.4.2 Ulemper... 10 4.4.3 Design - Gestaltlove... 11 5. Værktøjer og metoder... 12 6. Design og teori afsnit... 14 6.1 Simpel søgning i Python... 14 6.2 Simpel søgning i fil, ved hjælp af Python... 14 6.3 XML parser... 15 6.4 Søgning funktion i Python... 16 6.5 Den endelige søgefunktion i Python... 18 7. Test... 19 7.1 Kan man læse nyheder?... 19 Side 2 af 39

7.2 Fungerer systemet på de mest populære browsere?... 20 7.2.1 Internet Explorer... 20 7.2.2 Google Chrome... 21 7.2.3 Mozilla Firefox... 21 7.2.4 Safari... 22 7.2.5 Kommentar... 22 7.3 Fungerer systemet på de mest brugte styresystemer?... 22 7.4 Kan man vælge nyheder fra forskellige kategorier?... 22 7.5 Er der et log-in system?... 22 7.6 Kan man navigere rundt i systemet med drop-down menuer? I forhold til kategorier?... 23 7.7 Er der mulighed for at søge på et ord i systemet, så man får en nyheder op om denne nyhed?... 23 7.8 Ingen description ERROR... 23 8. Konklusion... 24 9. Terminologi/ordforklaring... 25 10. Bilag... 26 10.1 Første spikesoloution af bortskaffelse af tags i et XML dokument... 26 10.2 Søgning i en fil... 27 10.3 Søgning i en string... 27 10.4 Søgning i flere stings... 27 10.5 Søgning i en parset XML fil... 28 10.6 Præciseret søgning i parset (downloadet) XLM fil... 29 10.7 Eksperimentering... 30 10.8 Første forsøg med søgning i URL... 31 10.9 Andet forsøg med søgning i URL... 32 10.10 Tredje forsøg med søgning i URL... 33 10.11 Endelig søgning i URL... 34 10.12 Læse en URL... 34 10.13 Index.html... 35 12. Planlægning/Tidsplan... 39 Side 3 af 39

1. Indledning Vi er i klasse 3.4 blevet introduceret til vores eksamens projekt og med afsæt i de forrige opgaver, skulle vi lade os inspirerer til endnu et projekt. Der var også den mulighed, at man kunne vælge at videreudvikle på et gammelt projekt. Dog skulle man først opdeles i grupper af 1-4 personer, her valgte Christian Hjortshøj og Jonas Henk, at gå sammen om dette projekt. Vi valgte at tage udgangspunkt i at vi skulle komme op med et nyt projekt, som både kunne bære IT, men samtidig også programmering. Efter nøje overvejelser kom vi op med idéen om en RSS læser. Dette projekt vil kunne bære begge fags kravniveau, da vi skal opstille en brugerflade, som tiltaler brugerne, samtidig med at den skal være simpel og brugbar. Programmeringsdelen ligger lidt i ordet, da det vil være den del af projektet hvor selve RSS læseren bliver kodet og i det hele taget sat op. Selve projektets omfang består altså af følgende: Få opsat og kodet en funktionel RSS læser. RSS læseren skal have en søge funktion, så det vil være muligt for brugeren selv at kunne styre RSS feedsne. Design af hjemmeside og implamenteringen af RSS læseren i HTML eller PHP o Dertil også en tilhørende CSS. En RSS (Really Simple Syndication) læser fungerer på den måde, at når en udbyder(weblog eller en nyhedstjeneste), såsom Ekstra bladet opretter en RSS-kanal, kan enhver frit bruge den. Til dette skal en RSS-læser altså bruges. Der findes allerede rigtig mange RSS-læsere som kan hentes på nettet, vise sin RSS-kanal som en del af sin egen webside eller endda på mobiltelefonen. 1 Grunden til at RSS-kanaler kan læses i så mange forskellige sammenhænge, er fordi, at RSS er baseret på standardiseret XML. Derfor vil det også være muligt at finde orange knapper med forkortelsen XML i midten, dette vil også være en RSS-kanal. XML (extensible Markup Language) minder lidt om HTML, da de begge bruges til at transportere og opbevarere data, dog er XML ikke designet til at vise data, som HTML er. Den store forskel på de to er altså, at XML bruges til selve beskrivelsen af indholdet, mens HTML bruges til formatering og display af indholdet. 2 1 http://www.emu.dk/generelt/rss/rss_reader.html 2 http://www.w3schools.com/xml/xml_whatis.asp Side 4 af 39

2. Indledende analyse Der findes kun en håndfuld mennesker, der rent faktisk ved hvad en RSS læser egentlig er og hvordan den virker, men faktisk har den været opfundet i næsten 13 år. Vi var i klassen rundt og spørge hvad en RSS læser egentlig var og det var kun muligt for 3 ud af 18 at give et nogenlunde svar. Så RSS-læseren er altså en opfindelse som egentlig er opfundet, men bare ikke anvendt i hverdagen. Det kan skyldes, at de RSS læsere der findes i dag, ikke er optimeret ordentligt eller at de bare ikke har den rette brugerflade som tiltaler brugerne. Det er dette vi vil holde fokus på og derved sprede budskabet om RSS. 2.1 User story 1 (Studerende) Hans Jørn, er dagligt på nyhedsmedier, for at tjekke nyheder, dette tager meget tid fra ham, derfor søger han en side, hvor han kan få et overblik over hvilke nyheder, der er aktuelle nu og her, og derved kan spare nogle af sine besøg på de mange nyhedssites. Derfor er han blevet enig med sig selv om at finde en RSS-læser, hvor han kan få over blikket over hvad der sker. 2.2 User story 2 (Fodboldfanen) Bjarne Jensen, er en flittig fodboldfan, der dagligt er på nettet for at finde nyheder om fodboldkampe og spiller, han har ofte svært ved at finde nogle relevante nyheder, derfor er han blevet enig med sig selv om at finde en hjemmeside, hvor han kan søge på bestemte ord, om fodbold, og derved finde nyheder der kun omhandler dette. 2.3 User story 3 (Skolelære) Marianne Olsen, er en flittig samfundsfagslære, der er dagligt er på nettet for at finde nyheder, som hun kan bruge i hendes undervisning, nogle gange har hun svært ved at finde en bestemt nyhed, som et bestemt emne, derfor søger hun en side, hvor hun har mulighed for at læse blandede nyheder, men samtidig til tider også vil have muligheden for at søge på bestemme artikler. 3. Problemformulering I dette afsnit, vil vi kigge på, hvem vores målgruppe, hvilke krav vi har til produktet og hvilke test, vi kan gøre, for at se om produktet lever op til vores krav. 3.1 Målgruppe I dette af afsnit, vil vi definere vores målgruppe. Vores målgruppe er de personer, som i det daglige læser nyheder, på mange forskellige hjemmesider online. Vores produkt, skal være en hjælp til dem, så brugerne ikke har behov for at skulle gå ind på mange forskellige sider, i deres dagligdag, for at finde de nyheder, som de vil læse. Derfor vil vores målgruppe være personer, der begynder at interessere sig for nyheder på et generelt plan. Det er efter egne erfaringer, i omegnen af 16+. Side 5 af 39

3.2 Kravspecifikationer Vores program skal kunne følgende: Skal Der skal være en hjemmeside, hvor man kan læse forskellige nyheder. Skal kunne fungere på forskellige styresystemer. Burde Man skal kunne vælge forskellige kategorier, hvor man skal kunne læse nyheder inde for dette emne. Bunde kunne fungere i alle browsere. Kunne Kunne logge ind, så man har en personlig side, hvor ens nyheder er. Når man skal vælge kategorier, skal dette kunne gøres, ved at navigere i en drop-down menu. Man skal kunne søge på et ord, så ledes der kommer en nyhed op men dette ord, man har søgt på. Skal ikke havde Den skal ikke have sin egen database. RSS-læseren skal ikke køres ved en exe-fil. 3.3 Test specifikation For at kunne teste vores produkt, har vi lavet nogle test, for at se om det fungere: Kan man læse nyheder? o Fungerer systemet på alle browsere? o For at teste dette, køre vi vores program, på alle browsere (Internet Explorer, Google Chrome, Mozilla Firefox, Safari) Fungerer systemet på alle styresystemer? o For at teste dette, køre vi vores system på Windows 7, Mac OS. Kan man vælge nyheder fra forskellige kategorier? o Findes der kategorier i systemet. Er der et login system? o Findes der et login system på siden. Kan man navigere rundt i systemet med drop-down menuer? I forhold til kategorier? Er der mulighed for at søge på et ord i systemet, så man får en nyheder op om denne nyhed? Side 6 af 39

4. Diskussion af løsningsforslag/design I dette afsnit vil vi se nærmere på forskellige løsningsforslag, i forhold til vores produkt mål. 4.1 Løsningsforslag Dette er vores første løsningsforslag, hvor der skal være en drop-down menu, hvor brugerne skal kunne vælge hvilken kategori de vil læse nyheder fra. Under hver kategori skal der være nogle bokse, hvor nyhederne skal stå i, som skal vise hvilket nyhedsmedie, indlægget kommer fra. 4.1.1 Fordele Fordele ved dette løsningsforslag, er at brugeren, har mulighed for at vælge kategorier, inden for deres interessere. Det er et meget simpelt design, men der er til gengæld også et design med et lækkert overblik over de opdaterende nyheder. 4.1.2 Ulemper Ulemper ved dette løsningsforslag, er at brugeren, ikke selv har mulighed for at påvirke sin egen søgen på bestemte nyheder, og derved ikke kommer til at læse de nyheder de interessere sig for, men blot de opstillede kategorier. Side 7 af 39

4.2 Løsningsforslag Dette er vores andet løsningsforslag, hvor brugerne skal kunne søge, på forskellige ord, hvorefter der skal komme forskellige nyheder op, der passer til det ord man har søgt på. Vi har valgt et design, hvor der midt på siden skal være en søgeboks, hvor brugeren skal indtaste deres søgeord. Under denne boks, skal der være en knap, som aktivere søgningen. Over søgeboksen, er vores eget logo placeret, logoet er af vores eget design, som skal fremvise RSS læseren på en lækker måde. 4.2.1 Fordele Fordele ved dette løsningsforslag, er at valget af nyheder, selv er fuldstændig op til brugeren og derved er en meget mere fri løsning end vores første. 4.2.2 Ulemper Fordelene ved dette løsningsforslag er samtidig også dets ulemper, da der findes mange bruger som blot tjekker for eksempel BT hver dag, uden egentlig at tænke over hvad de skulle læse om. Disse læsere ville vi miste, da de nu skulle vælge hvad for nogle nyheder de vil læse om, men hvis de ikke selv er afklaret med hvad de vil læse om. Side 8 af 39

4.3 Løsningsforslag Det er vores tredje løsningsforslag, hvor der fremvises nogle forskellige nyhedsmedier, i hver af boksene, her vil der ikke være nogle valg af muligheder, men siden vil i stedet fremvise de seneste nyheder der er lagt op på de forskellige sider, som vores RSS læser tager fra. 4.3.1 Fordele Fordelene ved dette løsningsforslag, er at brugeren, ikke står over for nogle valg, men blot kan gå ind på siten og læse de seneste top-nyheder, fra flere forskellige nyhedsmedier. 4.3.2 Ulemper Ulemper ved dette løsningsforslag, er at brugeren, ikke har mulighed for søge på bestemte nyheder og derved ikke kommer til at læse de nyheder der interessere sig for, samt at brugeren ikke har mulighed for at vælge en bestemt kategori. Side 9 af 39

4.4 Valg af løsning Vi har valgt en løsning, hvor man skal kunne søge på forskellige ord, det vil sige at vi tager udgangs punkt i løsningsforslag 2, med en søgeboks. Derud over tager vi udgangspunkt i løsningsforslag 1, hvor der er en drop-down menu, hvor burgerne skal kunne vælge en kategori, hvor der skal stå forskellige nyheder om det valgte emne. 4.4.1 Fordele Ved dette design, er der den fordel at brugerne kan vælge mellem en kategori, igennem i dropdown menu. Her ud over har brugerne den fordel at de kan søge efter et ord i nyhederne og derefter nyhederne op. 4.4.2 Ulemper Ulempen ved dette design er at brugerne ikke kan læse nyheder med det samme når de kommer ind på siden enten skal de søge efter et ord, eller vælge en nyhed fra kategorierne. Side 10 af 39

4.4.3 Design - Gestaltlove I dette afsnit vil vi kigge på gestaltloven, som beskriver den måde mennesket visualiseres ting. Her under kan man se vores færdige produkt. Hvilke love bliver der brugt, i forhold til vores produkt. 4.4.3.1 Nærhed Vi har valgt at produktet, skal havde en vis nærhed, dette kan ses ved at de objekter der er på siden, ligger i forlængelse af hinanden, ved at de ligger på linje og at der er et lille mellemrum i mellem. 4.4.3.2 Lukkethed Vi har valgt at benytte loven om lukkethed, ved at ramme tingene ind, ved hjælp af baggrunden. Det der er vigtigst på siden har fået en tydeligere ramme, dette tilfælde nyhederne, der har fået en hvid ramme. Hver nyhed er opdelt i under bokse, så man kan se hvornår nyheden skifter. 4.4.3.3 Lighed Vi har valgt at benytte loven om lighed, ved fx at baggrundsfarven er den samme som teksten i menuen. Når man holder musen hen over menuen, skifter teksten farv til hvid, da dette er den farve, vi har benyttede i nyhederne, således at disse to ting hænger sammen. Side 11 af 39

5. Værktøjer og metoder Python o Vi har anvendt Python til, at finde løsninger til vores forskellige spikesolutions, bl.a. da vi skulle søge på et bestemt keyword. Denne funktion skal bruges til at søge og finde de feeds som brugeren søger på: Dette er selve spikesolutionen, dog ikke løsningen. Det er et step i den rigtige retning, men det skal ende ud i en slags søgefunktion, som kan administrere RSS feedsne ud fra eget ønske. Det skal altså ende ud i en søge boks, hvor der kan søges på et keyword: Notepad ++ o Vi har anvendt Notepad ++ til, at selve opsætningen af vores hjemmeside. Vi har altså valgt at lave en opsætning i HTML. Grunden til at det lige er HTML 5 vi har valgt at arbejde med, er fordi vi begge har erfaringer inden for dette skrive sprog. Dette gjorde det til et oplagt valg, da vi derved hurtigt kunne få lavet et javascript til vores drop-down menu. Side 12 af 39

GIMP o Her er det igen erfaringen der taler for sig, plus at det er et open source program. Så vi endte altså med at lave vores grafiske design i GIMP, dette indebære vores headder, samt en loading gif fil: Side 13 af 39

6. Design og teori afsnit 6.1 Simpel søgning i Python Her laver vi en simpel søgning i Python, hvor vi har tre ord, hvor systemet skal se om der findes en det ord vi søger efter, I dette tilfælde søger vi efter Jonas, og dette findes i vores string, og der ved siger den "Found". censor = [ 'Christian', 'nickle', 'Jonas', ] word = 'Jonas' if word in censor: print 'Found' Her har vi lavet en sting, hvor vi har givet ord, som systemet har. Her differer vi det ord som vi vil søge efter. Her fortæller vi systemet at hvis den finder et ord i vores sting, skal systemet printe ordet "Found". 6.2 Simpel søgning i fil, ved hjælp af Python

Her har vi lavet en simpel søgning, hvor vi søger i en fil, vi har fortalt den at den skal printe a hver gang den møder bogstavet. f = open("search.txt", "r") for line in f: if "a" in line: print line f.close() Her opretter vi funktionen f, hvor den åbner filen "search.txt", og læser den. I "f" funktionen gæller følgende: Hvis der findes "a", i filen, skal denne funktion printe linjen, hvor a findes. Når søgning er fuldt endt, skal søgningen stoppe. 6.3 XML parser Dette er vores første forsøg med en "XML parser". 3 3 Python - http://docs.python.org/2/library/pyexpat.html - 11/04 2013 Side 15 af 39

import xml.parsers.expat Denne funktion, gør at programmet importer, de funktioner der ligger i xml.parsers.expat. def start_element(name, attrs): Denne funktion starter med at søge efter ("navn") <titel>, i selve xml filen. Hvor den skriver det der stå efter dette tag i Python Shell. print 'Start element:', name, attrs def end_element(name): Når funktionen støder på dette tag </titel>, stopper den med at skrive i Python Shell. print 'End element:', name def char_data(data): print 'Character data:', repr(data) 6.4 Søgning funktion i Python Side 16 af 39

Her over ser vores kodning, samt resultat af kørning af programmet. Hvor vi har søg på ordet bil, i en xml-fil. import xml.etree.elementtree as ET tree = ET.parse('country_data.xml') root = tree.getroot() Her importers mondulet "xml.etree.elementtree" 4, hvor vi har lavet en forkortelse der heder ET for ElementTree. Dette modul er et bibliotek, med en række funktioner, som man kan benytte. Her bruger funktionen "parse" til at kunne se i vores xml-fil. Som i dette tilfælde heder "country_data.xml". Denne funktion har vi navn givet "tree". Her laver vi funktioen "root", som indeholde funktionen "tree", når den har kørt funktionen igennem, skal den gentage denne funktion, indtil den får af vide at den skal stoppe. print string="ikke" for title in root.iter('title'): Her opretter vi funktionen "string", som indeholder vores ord vi vil søge på, i dette tilfælde "ikke". Her definerer vi hvilket tag vi vil søge efter i selve xml-filen, ved hjælp af funktion "root", i dette tilfælde gøre vi det i taget "title". if string in title.text: Her fortæller vi programmet at det skal søge i "title" efter vores string, som vi har defineret tidligere. print title.text Hvis programmet finder ordet i stringen i titlen, skal den printes, hele sætningen så den indeholder. for description in root.iter('description'): Her definerer vi hvilket tag vi vil søge efter i selve xml-filen, ved hjælp af funktion "root", i dette tilfælde gøre vi det i taget "description". 4 16/04/2012 - http://docs.python.org/2/library/xml.etree.elementtree.html - Python Side 17 af 39

if string in description.text: Her fortæller vi programmet at det skal søge i " description " efter vores string, som vi har defineret tidligere. print description.text Hvis programmet finder ordet i stringen i titlen, skal den printes, hele sætningen så den indeholder. 6.5 Den endelige søgefunktion i Python Side 18 af 39

7. Test I dette punkt vil vi teste vores produkt. 7.1 Kan man læse nyheder? Her under kan man se at man kan se nyheder fra forskellige sider i de grå bokse.

7.2 Fungerer systemet på de mest populære browsere? For at teste dette, køre vi vores program, på de mest populære browsere (Internet Explorer, Google Chrome, Mozilla Firefox, Safari) 7.2.1 Internet Explorer Side 20 af 39

7.2.2 Google Chrome 7.2.3 Mozilla Firefox Side 21 af 39

7.2.4 Safari 7.2.5 Kommentar Ud fra vores test, kan vi konkludere at vores hjemmeside virker i Safari, Mozilla Firefox og Google Chrome. Det svære virker det ikke i Internet Explorer. Ud fra vores test er vi kommet frem at vores side virkede på 3 ud af 4 browsere. 7.3 Fungerer systemet på de mest brugte styresystemer? Her vil vi teste om vores system kan køre på Windows 7, Mac OS.(Vi ville også have testet Ubunto, men ingen af os havde adgang til en computer med dette styresystem). 7.4 Kan man vælge nyheder fra forskellige kategorier? Findes der kategorier i systemet. Ja, som vist ovenover kan man vælge forskellige kategorier man vil læse nyheder inde for. 7.5 Er der et log-in system? Findes der et log-in system på siden? Nej det svære findes der ikke noget log-in system på vores side. Side 22 af 39

7.6 Kan man navigere rundt i systemet med drop-down menuer? I forhold til kategorier? Ja der findes drop-down menuer, i vores system, det kan ses oven for. 7.7 Er der mulighed for at søge på et ord i systemet, så man får en nyheder op om denne nyhed? Nej man kan endnu ikke søge på et ord direkte på vores hjemmeside. Men i løbet af projektet er der arbejdet på dette, vi har lavet et python script, hvor vi kan søge i en xml fil og i URL links, denne python fil skal laves om til en "cgi-fil", som skal afvikles på en server, før den kan implementeres på vores side. 7.8 Ingen description ERROR Side 23 af 39

Som man kan se på forrige billede, endte vores Python script pludselig i en uventet crash, uden at have ændret i koden fra det allerede virkende script. Dette skyldtes at der pludselig var en artikel der ikke have nogen description. Dette forvirrede vores program, så den bare stoppede med at søge, da den fandt en fejl, altså at den ikke kunne bringe os det vi ønskede fordi det blot ikke fandtes. Dette fik vi fikset ved at omskrive scriptet, så det blot skulle ignorer fejlen og blot søge videre. Man ville jo stadig kunne finde artiklen ud fra titlen. 8. Konklusion Vi kan konkludere, at vi ikke har opnået alle vores mål, i forhold til vores krav. Fx har vi ikke fået lavet et log-in system, som brugerne kunne bruge til at lave en personlig side, med de nyheder som de vil læse, men så er der alle de ting vi har laveret. Her i blandt har vi fået lavet en webside, der kan køre på næsten alle webbrowsere, de browsere vi fik den til at køre på var Safari, Mozilla Firefox og Google Chrome. Det svære virker det ikke i Internet Explorer. Her ud over har det lykkes os at lave et søge system, der kan søge i en XML fil, som printer den nyhed der inde holder det ord man har søgt, hvis man fx søgte på Google, ville der komme de artikler op der indeholder ordet Google. Vi har efterfølgende udviklet vores Python script til at kunne søge i forskellige URL s XML kode uden at have selve filen på vores computer. I det hele taget er det lykkes os at lavet et godt produkt, som indeholder en webside med nyheder, i form af en RSS-læser og et søgesystem, der er lavet i Python til at søge efter bestemte ord. I forhold til tidsplanen har vi været gode til at holde størstedelen af vores satte mål, vi støtte dog på enkelte bump på vejen der gjorde at vi endte med at halte lidt efter på nogen af tingene. Side 24 af 39

9. Terminologi/ordforklaring Her under kan man se en liste over de ord og terminologier, som vi mener der skal præsideres. cgi Python RSS XML CGI står for Common Gateway Interface og er en mængde krav (standarter) som definerer hvordan informationen bliver afviklet mellem web serveren og et custom script. Python er et programmeringssprog, som er et Open Source sprog, som enhver kan benytte sig af. RSS betyder Really Simple Syndication, som bruges til at let at opdatere en strøm af data. XML betyder Extensible Markup Language, der bruges til at udveksle informationer mellem computere. XML lænder sig op ad html, men XML indeholder kun data ingen grafiks layout. Side 25 af 39

10. Bilag 10.1 Første spikesoloution af bortskaffelse af tags i et XML dokument

10.2 Søgning i en fil 10.3 Søgning i en string 10.4 Søgning i flere stings Side 27 af 39

10.5 Søgning i en parset XML fil Side 28 af 39

10.6 Præciseret søgning i parset (downloadet) XLM fil Side 29 af 39

10.7 Eksperimentering Side 30 af 39

10.8 Første forsøg med søgning i URL Side 31 af 39

10.9 Andet forsøg med søgning i URL Side 32 af 39

10.10 Tredje forsøg med søgning i URL Side 33 af 39

10.11 Endelig søgning i URL 10.12 Læse en URL Side 34 af 39

10.13 Index.html Side 35 af 39

Side 36 af 39

Side 37 af 39

Side 38 af 39

Uge 19 Uge 18 Uge 17 Uge 16 Uge 15 Uge 14 Uge 13 Uge 12 Uge 11 Uge 10 Uge 9 Påskeferie 12. Planlægning/Tidsplan Brandstorm CPH, JHJ CPH, JHJ Informationssøgning CPH, JHJ CPH, JHJ - Hvad er RSS CPH, JHJ - Java CPH, JHJ - Python CPH, JHJ Projektbeskrivelse CPH, JHJ CPH, JHJ - Indledning JHJ - Indledende analyse JHJ JHJ - Målgruppe - Løsningsforslag CPH CPH - Værktøjer og metoder JHJ - Planlægning / Tidsplan CPH CPH Produkt x x x - Grafisk design - Kodning af RSS - Import / opsætning af system Test af produkt x CPH, JHJ Rapport / Dokumentation CPH, JHJ CPH, JHJ CPH - Christian Pihlkjær Hjortshøj JHJ - Jonas Henk Jensen