<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>lovholm.net</title>
	<atom:link href="http://www.lovholm.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lovholm.net</link>
	<description></description>
	<lastBuildDate>Sat, 07 Apr 2012 01:30:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>The Gathering 2012</title>
		<link>http://www.lovholm.net/2012/04/07/1717/</link>
		<comments>http://www.lovholm.net/2012/04/07/1717/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 01:30:21 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[travel]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[festival]]></category>
		<category><![CDATA[Institutt for informatikk]]></category>
		<category><![CDATA[Morten Dæhlen]]></category>
		<category><![CDATA[The Gathering 12]]></category>
		<category><![CDATA[Universitetet i Oslo]]></category>
		<category><![CDATA[Vikingskipet]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1717</guid>
		<description><![CDATA[Godt plantet i en stol på Universitetet i Oslos stand på The Gathering i Hamar har jeg god utsikt utover et lyshav a LCD-skjermer og strålende datamaskiner. I en rus av energidrikk, manglende søvn, pulserende musikk og varm frossen-pizza har 5500 personer boltret seg fast...]]></description>
			<content:encoded><![CDATA[<p>Godt plantet i en stol på Universitetet i Oslos stand på The Gathering i Hamar har jeg god utsikt utover et lyshav a LCD-skjermer og strålende datamaskiner. I en rus av energidrikk, manglende søvn, pulserende musikk og varm frossen-pizza har 5500 personer boltret seg fast i Vikingskipet på Hamar. Etter et par runder rundt i lokalet har jeg observert at spill er den mest populære aktiviteten og på en skjerm i ene enden av lokalet vises spillturneringer på storskjerm. UiO ved Institutt for Informatikk er i år en av hovedsponsorene for arrangementet og er derfor sterkt representert i hva som må være norges mest høyteknologiske lokale denne påskeferien. I løpet av datafestivalen, eller LANet om du vil, har UiO etablert Campus TG, et konsept der deltagerne får være med på mange faglige foredrag hvor de har mulighet til å lære om alt fra papirfly, forskjellige Linux-distribusjoner til spillprogrammering og sampling med Arduino. I tillegg er det arrangert workshops i lodding og demonstrasjoner av forskjellige roboter.</p>
<p>Mens musikken fra hovedscenen er fylt med sampling fra jingler kjent fra 8-bit Nintendo og enkelte deltagere løper rundt ikled kostymer som forestiller creepers fra Minecraft eller Pikachu fra Pokemon løses rubiks kuber og kruttsterk kaffe drikkes. I tillegg er det laget et webside hvor deltagerne kan skru av og på en lampe på UiO-standen ved hjelp av et web-interface eller delta i en krevende hacking-oppgave som involverer mange skills fra charset, cæsars-kode til nivåer jeg ennå ikke har kommet til <img src='http://www.lovholm.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Fra et musikkperspektiv er det morsomt å observere en tilnærmet tredeling av hvordan deltagerne hører på musikk. Fra hovedscene drønner bassen fra egenkombinerte sanger fra kreative konkurranser og fra kjente DJer (fra nesten bare elektroniske sjangere), i gruppene spilles det gamle klassikere for hverandre (om ikke GAMLE, så iallefall sommerhits fra et par år tilbake) og individuelt brukes det headset hvor flere blander alle lydene som måtte komme fra aktivitene de driver med, enten om det er spill, filmer, YouTube, programmering eller gamle episoder av Derrick. Jeg tror nok i de fleste tilfellene at musikken mer opptrer i bakgrunnen enn aktiv lytting, men med en så stor og mangfoldig gruppe er det vanskelig å si noe sikkert. Uansett, det er veldig spennende og interessant å være på denne arenaen som nå etterhvert begynner å få den oppmerksomheten den fortjener (for å si det sånn, jeg tror flere ungdommer er interessert i internett, gaming og data enn skirenn i Holmenkollen og skøyteløp i, ja, Vikingskipet). Artikler fra Vikingskipet finnes i de fleste riksmedier og fornyingsminister Åsland var med på åpningen (som du kan lese mer om på <a href="http://morten.ifi.uio.no/">Morten Dæhlen sin blogg</a>).</p>
<p>Her er utklipp fra en liten video jeg filmet i nærheten av UiO-standen.</p>
<p><a href="http://www.lovholm.net/2012/04/07/1717/"><em>Click here to view the embedded video.</em></a></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2012/04/07/1717/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2012/04/07/1717/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Screen Scraping med Python</title>
		<link>http://www.lovholm.net/2012/04/06/screen-scraping-med-python/</link>
		<comments>http://www.lovholm.net/2012/04/06/screen-scraping-med-python/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 21:04:06 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[BeautifulSoup]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[screen scraping]]></category>
		<category><![CDATA[Sexy MP]]></category>
		<category><![CDATA[Stortinget]]></category>
		<category><![CDATA[The Gathering]]></category>
		<category><![CDATA[The Gathering 12]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1708</guid>
		<description><![CDATA[Tim Berners-Lee, Internetts pappa, snakker i et inspirerende TED foredrag om the web of data, og oppfordrer alle til å dele sine data. Ideen med web of data er at webben fram til i dag hovedsakelig har vært dokumentbasert og at denne nå endres til...]]></description>
			<content:encoded><![CDATA[<p>Tim Berners-Lee, Internetts pappa, snakker i et inspirerende TED foredrag om the <a href="http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html">web of data</a>, og oppfordrer alle til å dele sine data. Ideen med web of data er at webben fram til i dag hovedsakelig har vært dokumentbasert og at denne nå endres til å bli mer databasert. I webbens dokumenter ligger det mye bakenforliggende informasjon hvor det semantiske innholdet ofte kan være utfordrende å hente ut, spesielt hvis du er en datamaskin. Selv om, ideeltt sett, all informasjon som ligger ute på Internett burde være lesbar for alle er det ikke slik, så av og til må vi være litt pragmatiske og gjøre det beste ut av situasjonen. Vi må rett og slett skrape ut den informasjonen &#8211; de dataene vi trenger &#8211; fra websiden, derav navnet screen scraping.</p>
<p>Et av de morsomste aspektene ved screen scraping, syntes jeg, er å forstå hvordan innholds-serveren er satt sammen og dekonstruere denne. Ettersom få organisasjoner (og personer for den saks skyld) håndkoder hver HTML-side de viser til offentligheten ligger det et system bak sidene som publiseres. Hvordan hele nettstedet er organisert og hvordan hver enkelt side er lagt opp er et godt utgangspunkt for å forstå strukturen. Mange nettsteder følger i dag også en <a href="http://en.wikipedia.org/wiki/REST">REST-arkitektur</a>, og dette gjør at vi kan finne ut mye bare av å se på URLen vi bruker for å få tilgang til sidens forskjellige funksjoner. Mange slike sider er laget med populære rammeverk med REST-implementering slik som Ruby on Rails og Django, som også har tilrettelagt for en enkel implementasjon av data-grensesnitt slik at spørringer kan resultere i et dataformatert svar som for eksempel XML eller JSON imotsetning til et template-basert HTML svar. Hvis du kan spørre om et datasvar kan du muligens finne dataene dine uten å scrape. Uansett, i mange tilfeller et klipp-og-lim eller filopplastning fra Excel eller Word klippet inn i et web-grensesnitt eller endret programmatisk til HTML, eller data hentet fra et annet datasystem matet til publiseringsportalen også i HTML. I disse tilfellene trenger vi å tweeke og endre litt for å hente ut data.</p>
<h3>Et slag for demokratiet (?)</h3>
<p>Francis Boulle, kanskje mest kjent fra TV-serien <em>Made in Chelsea,</em> har laget siden <a href="http://sexymp.co.uk/">sexymp</a>. På denne siden blir du presentert med bilder av to representanter fra det britiske underhuset. Din oppgave er å klikke på den mest attraktive personen, og basert på dine og andres klikk rangeres representantene. Dette systemet er nærmest identisk med siden som Mark Zuckerberg setter sammen i åpningsscenen i filmen <em>The Social Network</em> fra 2010. Det kan være spennende nok å se på vektingsalgoritmen og prøve å forstå hvordan Chris Evans fra Islwyn blir ansett som den mest og Steve McCabe fra Birmingham den minst attraktive, men for vår undersøkelse er det mer interessant å se hvordan vi kan innhente navn og bilder dersom vi ønsker å lage en tilsvarende side for Norge.</p>
<h3>Stortinget.no</h3>
<p>Et bra sted å begynne dersom vi skal utvikle en norsk sexymp (eller et annet atributt som f.eks troverdighet, ærlighet, classyness osv.) er Stortinget.no. Hvis vi går inn i listen over representanter kan vi finne ut at URLen har følgende oppbygning: http://stortinget.no/no/Representanter-og-komiteer/Representantene/Representantfordeling/Representant/?perid=SMY (for Sverre Myrli fra Arbeiderpartiet) og tilsvarende for en annen representant: http://stortinget.no/no/Representanter-og-komiteer/Representantene/Representantfordeling/Representant/?perid=IME (Ine Marie Eriksen fra Høyre). Hvis du studerer disse URLene nøye, hva er det som det er verdt å merke seg? &#8230; Ja, nemlig, representantene har en ID.</p>
<p>La oss nå gå inn å se på hvordan Ine Marie Eriksen sin profil egentlig ser ut. Siden nettleseren din, når du åpner en side, kun laster ned et dokument med angitte referanser skjer det ikke noe magisk (okey, med web 2.0 med Ajax og masse Javascript, eller Flash, Silverlight og andre plug-ins kan det virke mer mysterisk eller være veldig vanskelig å titte inn i boksen). I alle nettlesere kan du få tilgang til råteksten som senere skaper siden, og hvis du går inn å ser på denne kan du finne ut hvordan siden er bygget opp og hvilke andre ressurser (som f.eks bilder, stylesheets, javascript-kode) som kalles. Forsøk nå å se på HTML-filen til Eriksens stortingsbio og se om du kan finne bilde-ressursen.</p>
<p>Der ja, på linje 472 finner vi følgende HTML-snutt:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:425px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;img id=&quot;ctl00_MainRegion_RepShortInfo_imgRepresentative&quot; src=&quot;&lt;a href=&quot;http://stortinget.no/Personimages/PersonImages_Large/IME_stort.jpg&quot; target=&quot;_blank&quot;&gt;/Personimages/PersonImages_Large/IME_stort.jpg&lt;/a&gt;&quot; alt=&quot;Søreide, Ine M. Eriksen&quot; style=&quot;border-width:0px;&quot;</div></div>
<p>Dersom du følger denne filbanen med stortingsdomenet slik at URLen du benytter er:<a href="http://stortinget.no/Personimages/PersonImages_Large/IME_stort.jpg"> http://stortinget.no/Personimages/PersonImages_Large/IME_stort.jpg</a> vil bare bildet åpnes. Du har nå funnet bildet som hentes inn i bio-siden vi tidligere åpnet. Nå kan du forsøke å åpne bildet til Sverre Myrli ved hjelp av kun hans system-ID som er SMY og URLen til Ine Marie Eriksen.</p>
<p>Hvis du nå har byttet &#8220;IME_stort.jpg&#8221; med &#8220;SMY_stort.jpg&#8221; har du forstått hvordan vårt detektivarbeid har bært frukter, og at vi nå kan få tak i alle bildene dersom vi har alle IDene. Vi trenger nå to ting: En liste over alle representantene med deres respektive IDer, og en måte å laste ned bildene til vår lokale maskin. Det er på tide å scripte litt.</p>
<h3>Python</h3>
<p>Det vi skal gjøre nå kan du gjøre i alle multi-purpose programmeringsspråk, men jeg har valgt å bruke Python. Jeg syntes Python er et flott språk å bruke til å løse små oppgaver hvor det er mye prøving og feiling involvert. Det finnes også veldig mye dokumentasjon og litteratur om Python i forskjellige roller, det kommer med mange nyttige biblioteker som kan brukes &#8220;right out of the box&#8221;, og det er allerede installert i de fleste Linux-distribusjoner og på alle Macer.</p>
<p>Jeg har lagt ut forskjellige kodeeksempler på <a href="https://github.com/olovholm/Web-experiments/tree/master/StortingScrape">GitHub</a>, og du kan finne kildekoden vi bruker videre i denne lille artikkelen der. Dersom du ikke har installert Python eller mangler noen av bibliotekene jeg benytter finnes det mange gode guider på nettet på hvordan du kan få fikset dette.</p>
<p>Som tidligere nevnt er en av de første tingene vi trenger en liste over alle representantene. Heldigvis for oss finnes det en side med en slik liste. På siden med URL <a href="http://stortinget.no/no/Representanter-og-komiteer/Representantene/Representantfordeling/" target="_blank">http://stortinget.no/no/Representanter-og-komiteer/Representantene/Representantfordeling/</a> finner vi en komplett liste over alle representantene med navn, parti, stortingsnummer og ID. Hvis vi åpner siden i en nettleser får vi ikke opp IDen, men denne finner vi dersom vi istedet ser på kildekoden. Dette er nok fordi IDen ikke er så viktig for de fleste besøkende, men for stortingssystemet er essensiell og derfor er den viktig for oss også. For å finne den informasjonen vi trenger før vi kan gå videre må vi gå inn å ta en nærmere titt på HTML-kilden.</p>
<p>Her kan du se at representantlista er lagt inn i en tabellstruktur. tr-taggen er table row og td-taggen er table data. Nedover kan vi se at tabellstrukturen er fast så vi kan ta utgangspunkt i denne, men i scriptet <a href="https://github.com/olovholm/Web-experiments/blob/master/StortingScrape/findPerId.py">findPerId.py </a> har vi tatt utgangspunkt i et annet gjengående mønster. Alle representantoppføringene har en link-struktur som følger et bestemt mønster.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:425px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;a href=&quot;/no/Representanter-og-komiteer/Representantene/Representantfordeling/Representant/?perid=PTA&quot;&gt;Amundsen, Per-Willy&lt;/a&gt;</div></div>
<p>Det at vi har et bestemt mønster bestående av &#8220;Representanter-og-komiteer/Representantene/Representantfordeling/Representant/&#8221;, etterfulgt av et spørsmålstegn som igjen følges av en HTML closing bracket (&#8220;&gt;) og så to tekststrenger separert med et komma (,) og at dette mønsteret ikke finnes på andre steder enn akkurat der hvor vi ønsker å finne data er bra for oss. Dette kan vi nemlig representere med regulære utrykk</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:425px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">(r&quot;Representanter-og-komiteer/Representantene/Representantfordeling/Representant/\?perid=(\w*)\&quot;&amp;gt;([a-å]*), ([a-å]*)&quot;, re.IGNORECASE)</div></div>
<p>Vi kan selvsagt hente hele HTML filen fra Stortingets nettsider og kjøre scriptet på all tekst, men hey, nettleseren din parser HTML så det kan jo vi gjøre også. Etter vi har lastet ned dokumentet via HTTP-protokollen med urllib2 sender vi HTML-teksten til BeautifulSoup som gjør at vi kan hente ut alle anchor-taggene og begrense RegEx sjekken vår til disse. Mange av linkene vil feile mønsteret vårt, og det er jo litt av poenget ettersom verken &#8220;tilbake til forsiden&#8221; eller &#8220;rettighetsinformasjon&#8221; er representanter vi ønsker å hente ut fra systemet. Siden vi har gruppert treffene i tre grupper ved hjelp av paranteser vil vi kunne hente ut henholdsvis brukernavn, etternavn og fornavn. Etter vi har hentet ut all informasjonen vi trenger skriver vi denne til en kommaseparert fil (populært referert til som CSV) som vi da kan hente inn i vårt neste script.</p>
<h3>Laste ned bilder programmatisk</h3>
<p>Etter å ha kjørt <a href="https://github.com/olovholm/Web-experiments/blob/master/StortingScrape/findPerId.py">findPerId.py</a> i forrige avsnitt har vi nå en lagret CSV-fil med fornavn, etternavn og ID på stortingsrepresentantene. Nå trenger vi bare å iterere igjennom denne listen og laste ned bilder for våre folkevalgte. Scriptet som gjør denne jobben heter <a href="https://github.com/olovholm/Web-experiments/blob/master/StortingScrape/downloadPictures.py">downloadPictures.py</a> og dette benytter metoden <em>urlretrieve </em>fra <em>urllib </em>biblioteket til å forespørre hvert enkelt bilde, laste dette ned og plassere det i en folder vi oppretter med <em>os.makedirs</em> (hvis ikke folderen vår allerede eksisterer). Bildene vi skal laste ned har før og etter representant IDen følgende tekst:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:425px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;path_big_pre = &quot;http://stortinget.no/Personimages/PersonImages_Large/&quot;<br />
path_big_post = &quot;_stort.jpg&quot;<br />
path_little_pre = &quot;http://stortinget.no/Personimages/PersonImages_Small/&quot;<br />
path_little_post = &quot;_lite.jpg&quot;</div></div>
<p>Som du sikkert kan forstå fra disse variabelnavnene og tekststrengene er at det for hver representant er både et stort og et lite bilde. Metoden <em>urlretrive</em> tar to argumenter hvorav det første må være den absolutte filbanen, altså med IDen samt teksten før og etter i URLen, outfolderen kan benytte en relativ filbane så her kan du endre filnavnet dersom du ønsker det.</p>
<h3>Veien videre</h3>
<p>Når du har kjørt begge scriptene har du både navn, id og bilder av alle stortingsrepresentantene, og hvis du har lest teksten og googlet ukjente navn og fremgangsmåter har du også lært noe nytt. Lykke til med videre bruk og andre eksperimenter.</p>
<p><em>Dette innlegget er skrevet på UiOs stand under The Gathering 2012 på Hamar, en myldreplass for kreativitet. </em></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2012/04/06/screen-scraping-med-python/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2012/04/06/screen-scraping-med-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Planlegg gaming-TV kjøpet</title>
		<link>http://www.lovholm.net/2012/04/01/planlegg-gaming-tv-kjopet/</link>
		<comments>http://www.lovholm.net/2012/04/01/planlegg-gaming-tv-kjopet/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 11:10:06 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[TV]]></category>
		<category><![CDATA[Crystal LCD]]></category>
		<category><![CDATA[Forbrukerteknologi]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[OLED]]></category>
		<category><![CDATA[Plasma]]></category>
		<category><![CDATA[Smart TV]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1696</guid>
		<description><![CDATA[Prisene på TV-apparater har sunket dramatisk, og apparater som for bare et par år siden virket utenfor rekkevidde er nå tilgjengelig for alle. Det er ofte fristende å velge det dyreste og det beste på første besøk i butikken, men dersom du forbereder deg og...]]></description>
			<content:encoded><![CDATA[<p>Prisene på TV-apparater har sunket dramatisk, og apparater som for bare et par år siden virket utenfor rekkevidde er nå tilgjengelig for alle. Det er ofte fristende å velge det dyreste og det beste på første besøk i butikken, men dersom du forbereder deg og tenker over hva du virkelig trenger er det mye penger å spare.</p>
<p>Når du skal kjøpe ny TV er utvalget av som møter deg i butikken overveldende. Med sterke farger og skarpe linjer skal du overbevises om at akkurat Sony, Philips eller Sharp er merket for deg. Problemet når du skal velge i dagens TV-marked, sammenlignet med tidligere, er at produksjonen av apparatene og funksjonene de inneholder i stor grad er standardiserte og i liten grad skiller seg fra hverandre. Å velge en TV produsent over en annen har derfor mindre å si enn for eksempel å velge mellom et Android eller iOS produkt. Når du skal kjøpe en gaming-TV er det derfor andre kravspesifikasjoner du må bestemme deg for, noen av disse spesifikasjonene er personlige som for eksempel hvordan du liker at fjernkontrollen ligger i hånda eller vinkelen på de avrundede hjørnene rundt skjermen, men det er også en del tekniske, objektive spesifikasjoner som det kan være lurt å følge.</p>
<p>Før du går til butikken for å se hva de har tilgjengelig bør du ha forberedt deg hjemme og tenkt over et par ting:<br />
- Hvor mørkt er rommet du ønsker å sitte i?<br />
- Hvor nær Tven kommer du til å sitte?<br />
- Hvor mange eksterne apparater kommer du til å koble til (konsoller, dekodere, medieavspillere)<br />
- Vil du benytte lyd gjennom apparatet eller har du eget anlegg for lyd.</p>
<p>Disse spørsmålene vil hjelpe deg å finne ut av hvor sterk bakgrunnsbelysning du vil trenge, hvor stor skjerm du kommer til å trenge, hvilken oppløsning du burde velge, hvor mange innganger du kommer til å trenge, og om du burde påkoste en TV med bedre lyd. Det som er viktig å huske på er at ved å gjøre et valg utelukker du andre alternativer eller øker prisen du må gi for å få en TV som dekker dine ønsker og behov.</p>
<h3><strong>Plasma eller LCD</strong></h3>
<p>Et valg som må bestemmes er hvorvidt du skal velge en TV med plasma eller LCD visningsteknologi. Tradisjonelt har plasma blitt tilskrevet å ha bedre fargegjengivelse og spesielt på mørke farger. Dette skyldes at LCD, liquid crystal display eller flytende krystall skjermer, hittil har benyttet en hvit lyskilde bak eller på siden av fargeflaten. I dag blir dette bakgrunnslyset i stor grad blir avgitt fra LED-punkter (derav navnet LED-TV), som har tatt over for mer strømslukende og varmeutviklende teknologier. LED, som står for light emitting diode eller lysavgivende diode, er en stadig mer populær lysteknologi som gir mye lys og bruker lite strøm. Dette har resultert i slankere apparater. Det er per i dag flere teknologier som forsøker å fjerne baklys-metoden og LCD-flaten med fargepunkter som også avgir lys. På CES-messen i Las Vegas tidligere i år viste Sony fram sine Crystal LED-skjermer og flere produsenter viste fram skjermer basert på Organisk LED. For begge disse teknologiene er det hvert fargepunkt som også avgir lys og i forhold til aparater som bruker baklys får du et større fargespekter, bedre fargemetning og du slipper noen av problemene bakbelysning fører med seg. I tillegg sies det at disse teknologiene er enklere å tegne til, og derfor vil Tven bruke mindre tid fra å ha motatt signalet til dette er vist på skjermen.</p>
<h3>Størrelse</h3>
<p>Size does matter, og skjermstørrelsen spiller definitivt inn på hva slags TV mange ser for seg, men også her kan det være lurt å ta et bevisst valg. Er størst mulig TV alltid det beste? Dersom du blir sittende for nære en stor skjerm kan dette være slitsomt for øyet som stadig må bevege seg for å endre fokusområde på skjermen. Samtidig er det viktig å huske at oppløsningen på signalet skal fordeles utover hele skjermen og at antall punkter per kvaderatcentimeter reduseres med størrelsen. Skal du sitte plassert et lite stykke unna apparatet kan en stor TV være en god idè, men dersom du trenger en TV til det 10 kvaderatmeter-store spill-rommet burde du nok ikke gå for en 70-tommer.</p>
<p>Vi har så vidt nevnt oppløsning, og selv om dette har vært et veldig viktig aspekt tidligere har vi nå kommet til et punkt hvor de fleste Tver selges med full-HD. Full HD vil si at skjermen kan vise 1080 horisontale linjer ved et bildesideforhold på 16:9. Dette er den høyeste standardiserte oppløsningen som komersielle Tver har for øyeblikket. Alternativet, som ofte kalles HD-ready eller 720 har tilsvarende en oppløsning på 720 linjer.</p>
<h3>Tilkoblinger</h3>
<p>Som gamer er tilkoblinger viktig. Det er ikke kun èn boks som skal kobles til, men ofte mange forskjellige enheter. Mange har en tuner for TV-signalene, en DVD eller Blueray-spiller, en avspiller for digitale filer, kanskje en kabel liggende for tilkobling til laptop, og flere spillkonsoller. Med mindre du ønsker å måtte fysisk flytte fram TVen for så å tråkke i kabelsalaten kan det være greit å velge en TV hvor du kan koble til alt du måtte ha av nye og gamle spill konsoller. Hvis du velger et apparat med tre-fire HDMI-innganger og et par Scart-innganger kan du ved hjelp av fjernkontrollen switche mellom Gears of War på Xboxen, og Zelda: Occarina of Time på din Nintendo 64. Når du først har koblet flere enheter på Tven kan det være lurt å samtidig tenke litt på hvordan alt skal høres ut.</p>
<h3>Lyd</h3>
<p>Det visuelle spiller helt klart en stor rolle i spillopplevelsen, men det blir ingen helhetsfølelse uten lyd. Alle Tver kommer med innbygde høytalere og forsterkere, men også her er det stor forskjell på apparatene. Ettersom masseproduserte skjermenheter har blitt relativt standardiserte og rimlige legger mange produsenter sin prestisje i lyd-delen, samtidig har hjemmekinotrenden virkelig fått fart på salg av avanserte surround-systemer, og kanskje du allerede har et lydsystem som kan brukes. I såfall burde du sjekke at Tven du ønsker å kjøpe har en utgang som støtter digitallyd. Både Playstation 3 og Xbox 360 leverer 5.1 dolby sourround, og dersom metoden din for å koble TV-apparatet til forsterkeren din er gjennom hodetelefonutgangen går du glipp av mye opplevelse. Her kan du også spare penger ettersom lyd aspektet av apparater med veldig god lyd blir overflødig dersom du bruker et separat hjemmekinoanlegg som lydkilde.</p>
<h3>Smart-TV</h3>
<p>Hittil har datamaskinene gjort sin inntreden i både mobiltelefoner og tablets, og det var bare et spørsmål om tid før også Tvene ble smarte. Ideen er ganske enkel: Plasser innmat fra en datamaskin i en hvilkensomhelst annen teknologi, lag en måte å styre programvaren og koble til en skjerm. Som gamer kommer du nok oftest til å se skjermbildet fra din konsoll, men når spill i større grad er tilkoblet Internet, og oppdaterer resultater og sosiale aspekter til verdensveven kan det være praktisk å kunne se disse dataene igjennom Tven.</p>
<h3>Alt klart</h3>
<p>Å investere i en TV har blitt enklere og mindre risikabelt ettersom prisene har har sunket og de brede, masseproduserte skjermenhetene har fått et forholdsvis godt innslagspunkt kvalitetsmessig. Prisene er ofte høyere dersom du velger apparater med cutting-edge teknologi, og det kommer til å bli dyrt for de første apparatene med OLED eller krystal LED. Ofte vil du også oppleve at en TV nå er mye mer enn bare skjerm-enheten som er plassert i boksen. Software med forskjellige grensesnitt, ambilight, minnekortlesere og annet småsnacks er også ting produsentene har plassert i apparatene for å gjøre de mer ettertraktet og for å skille de fra konkurrentenes. Det kan ofte være lurt å sjekke de objektive fakta med apparatenes spesifikasjoner, størrelse, responstid og oppløsning er bare noe produsentene klisterer med fancy farger og under fine logoer på skjermen. En god innkjøpsstrategi kan være å la produsentene forsvare prisen på produktet, og sammenligende argumentasjonene mot dine ønsker og krav. Er apparatetet dyrt fordi det inneholder en stor og fin forsterker som leverer gromlyd er dette irrelevant dersom du ønsker å bruke hjemmekinoanlegget til lyd. Ved å være bevist på dine egne krav, ønsker og muligheter kan du spare mye penger, penger som du kanskje ville ha brukt dersom du hadde kjøpt det beste og feteste på markedet, men som du aldri ville ha utnyttet til fulle.</p>
<p>&nbsp;</p>
<p>Bildet er tatt av Duncan Rawlinson (thelastminute) og publisert på Flickr under en Creative Commons lisens. <a href="http://www.flickr.com/photos/thelastminute/379781815/">Her</a> kan du finne bilde.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2012/04/01/planlegg-gaming-tv-kjopet/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2012/04/01/planlegg-gaming-tv-kjopet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mining the Social Web</title>
		<link>http://www.lovholm.net/2012/02/22/mining-the-social-web/</link>
		<comments>http://www.lovholm.net/2012/02/22/mining-the-social-web/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 18:33:43 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1678</guid>
		<description><![CDATA[Social network sites and interpersonal web communication is big business and plays an ever increasing part of peoples lives. From being mainly a tools for communication has now other life-world domains been conquered by the digital forum for exchange of virtual and real-life information. Both...]]></description>
			<content:encoded><![CDATA[<p>Social network sites and interpersonal web communication is big business and plays an ever increasing part of peoples lives. From being mainly a tools for communication has now other life-world domains been conquered by the digital forum for exchange of virtual and real-life information. Both the explicit, and more recently, implicit data footprint produced by acts in the virtual and real world is aggregated, analysed and shared. A member of Facebook sending a wall-post to a friend, a Twitter user retweeting a post by someone he or she follows. These are apparent, but what about the meta-data. Who is connected to whom? From where is a message sent and what does it contain?</p>
<p>To look closer on the social web I have recently bought the book with the self explanatory title <em>Mining the Social Web</em>, I have also <a href="https://github.com/olovholm/Web-experiments">established a GitHub repository</a> in which I will try to publish some of my scripts. Please have a look, clone and come with feedback.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=lovholmnet-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=1449388345&#038;IS1=1&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=FFFFFF&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2012/02/22/mining-the-social-web/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2012/02/22/mining-the-social-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Music in the Clouds</title>
		<link>http://www.lovholm.net/2012/02/11/the-music-in-the-clouds/</link>
		<comments>http://www.lovholm.net/2012/02/11/the-music-in-the-clouds/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 11:17:28 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[studies]]></category>
		<category><![CDATA[Clouds & Concerts]]></category>
		<category><![CDATA[research assistant]]></category>
		<category><![CDATA[Sky & Scene]]></category>
		<category><![CDATA[Streaming]]></category>
		<category><![CDATA[WiMP]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1652</guid>
		<description><![CDATA[I have got a new job. For the last one and a half month I have been working as a research assistant on the research project &#8220;Clouds &#38; Concerts&#8221; (Norwegian: Sky &#38; Scene). The project is a collaboration between the Department of Musicology and the...]]></description>
			<content:encoded><![CDATA[<p>I have got a new job. For the last one and a half month I have been working as a research assistant on the research project &#8220;Clouds &amp; Concerts&#8221; (Norwegian: Sky &amp; Scene). The project is a collaboration between the Department of Musicology and the Department of Media and Communication at the University of Oslo as well as the Norwegian streaming service WiMP, Telenor and SINTEF and seeks to understand how the new music technology paradigm has affected music listening, music distribution, and audiences’ relationship to live music. My position is 50%, so I hope to fill the rest of my weeks with relevant freelance work and experiments (if you need any digital assistance or want to develop something, please contact me.) I am excited to learn more about this interesting field, and to learn more about scientific work and hopefully specialise in data analysis and quantitative methods.</p>
<p>The projects <a href="http://www.hf.uio.no/imv/english/research/projects/cloudsandconcerts/index.html">English website</a> and <a href="http://www.hf.uio.no/imv/forskning/prosjekter/skyogscene/">Norwegian website</a></p>
<p><em>The picture is a word cloud made up from genre tags, in courtesy of the project</em></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2012/02/11/the-music-in-the-clouds/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2012/02/11/the-music-in-the-clouds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freexpectations</title>
		<link>http://www.lovholm.net/2012/01/31/freexpectations/</link>
		<comments>http://www.lovholm.net/2012/01/31/freexpectations/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 10:44:51 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[cultural disruption]]></category>
		<category><![CDATA[digital vs analogue]]></category>
		<category><![CDATA[Don Tapscott]]></category>
		<category><![CDATA[grown up digital]]></category>
		<category><![CDATA[Manuel Castells]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Richard Stallman]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1077</guid>
		<description><![CDATA[The Internet has now entered its third decennial as a popular medium. In fact it is now one of the most popular medium we are using, the Internet is so popular that other traditional media is building their infrastructure upon its technological basis and within...]]></description>
			<content:encoded><![CDATA[<p>The Internet has now entered its third decennial as a popular medium. In fact it is now one of the most popular medium we are using, the Internet is so popular that other traditional media is building their infrastructure upon its technological basis and within its frameworks. The traditional media are also absorbing pop-cultural phenomena from the net-sphere and remediating these other places. As a Schumpeterian disruption in the immaterial aspects of society, the multimedia-savvy computer platform has with its flexible and, recently affordable, representation of huge collections of information changed information as a commodity. From being bound to a physical medium as a celluite film or a book page information is now represented by bits in the computer. Bits are the building blocks which makes the computer a Swiss army knife, and more and more knowledge is represented by these fundamental entities. Once the algorithm of discretising and encoding of a media type are known virtually all media expression of that type can be represented digitally with the advantages this kind of representation have.</p>
<p>A digital copy is a perfect copy. Since all media expressions can be represented in zeros and ones cloning these patterns will make a identical copy, no loss involved (unless intended e.g. by compressing). This has removed some of the downsides that were with analogues copying. Before digitalisation the process of mechanically copying on exemplar to another involved technologies that also removed some of the quality for each reproduction iteration. The copying process was also bound to either temporal or geographical space: a mixtape required tapes and recording of broadcasting was limited to when programs were broadcasted. Today a request to a file server or another peer will initialise a transfer.</p>
<p>With the Interconnection between computers, through the Internet, this effect has accelerated. Groups of networks does not only grow linear in number of nodes, they also grow exponentially in number of connections between nodes, and new technologies harness this. With peer-to-peer or torrent technology which work decentralised and with designated parts of files sent through the Internet copying is very efficient.</p>
<p>This impacts our life world. Information is now at everyone fingertips (earlier just metaphorical, but recently also literally). To google has for years been a generic term for searching through the abundance of information made available, and more and more organisations are making their information available online. Live-feeds of time data from public transports providers, menus from restaurants, telephone directories, books, tv-series, music and movies are accessible through the Internet. The Internet has become everyone&#8217;s personal media and data repository. This effect is only increased with a recent emphasis on cloud computing.</p>
<p>With new ways of acquiring information comes new behaviour and expectations. The intellectual property organisations of the culture industry has several times told us piracy is stealing, but even if copyright infringement is against the law the examples used, e.g. &#8220;you wouldn&#8217;t steal a car&#8221;, is not representable as stealing a car would be theft of something with physical material value and something of physical exclusivity (I&#8217;m driving a car deprives you of the possibility to drive the same car). One should remember, however, that just a little cost of the production of a cultural artefact is in the physical product, the true value is in the production process. Well, enough of the law and philosophical consideration. Let&#8217;s speak about:</p>
<h3 style="text-align: center;">Free + Expectations = Freexpectation</h3>
<p>Grown up digitally, information, as I perceive it, is free. So what is free? Richard Stallman has learned us that a distinction must be made. You get free beer, free speech or both. The first is good as you can save some pocket money, but the second is crucial in a liberal democracy. The second part of the distinction is often entitled with the word &#8220;libre&#8221;. The free presumptions which follows the web can, according to Manuel Castells, be traced back to the initial user groups working on the Internet. Scientists within the university and military sphere who lay out the architecture of the Internet placed more emphasis on alternative routing (through packet switching), open standards (TCP/IP, HTTP etc are free to implement and build upon) and equality (two-way traffic and later the culturally groups of prosumer and hobbyist culture producers through e.g. YouTube) than intellectual property protection. In the Internet sphere mash-up and other forms of mixing and building upon culture and data is considered to be a good, not necessary a matter of copyright infringement.</p>
<p>The definition of free is also dependent on the idea of the user. In a traditional broadcasting economy where the culture institutions have a exclusive right to be the sender limited by legal and/or physical laws the user is pretty much limited to be the receiver. With the Internet and its ways of physically transferring the signals and its free jurisdictional corpus regulating the medium the limits to who can act in various roles are limited to other contrast. No doubt broadcasters and news agencies are the ones going to war zones to report upon what is happening. A very few have time, interests and the economical means to conduct such research on their own. In other cases, however, actors not traditionally associated with the trade can now do more than before. The nature of the constraints have changed. The user now have tools earlier limited by restrictions, legal or economic, to partake in the creation of cultural artefacts, and the user can also distribute these artefacts. A lot of these creation processes involves sampling of other peoples work. Not just music, but all forms of cultural artefacts that can be represented on a computer can also be basis, or a part of new creations. The initial groups of the Internet made their works (code) freely available, and the code community has established many paths to reuse of other&#8217;s work. Legally GNU GPL, MIT Licence and more are encouraging users to build-upon creations, in code-methodology object orientation creates a paradigm where classes can be implemented into code without a tight coupling and hence easier to adapt.</p>
<p>Don Tapscott mentions in his book <em>Grown up digitally </em>how the &#8220;net generation&#8221;, the recent generation which grew up with the net, are more apt to take a larger involvement in buying and configuring products. This way they have gain the name &#8220;prosumer&#8221; which is made up of producer and consumer. The traditionally consumption patterns exists in lesser degree than before. 30 years ago the users waited for a new product as their time and attention-span was abundant, today this have changed, the products and attention-consuming artifices are abundant and attention is scarce. The supply and demand curve have changed axis-for-axis.</p>
<p><em>Illustration picture: Dollar close-up by <a href="http://www.flickr.com/photos/shyb/62447705/">Shai Barzilay on Flickr</a>. The picture is licensed under a Creative Commons licence. Another good example on how free can be free to build upon. </em></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2012/01/31/freexpectations/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2012/01/31/freexpectations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iProgrammering</title>
		<link>http://www.lovholm.net/2012/01/16/iprogrammering/</link>
		<comments>http://www.lovholm.net/2012/01/16/iprogrammering/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 18:00:58 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[cocoa touch]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mac programmering]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1650</guid>
		<description><![CDATA[Det har vært interessant å følge Apples utvikling de siste 11 årene siden de slapp første versjon av Mac OS X. I 2001 ble versjon 10 (derav X) sluppet, og denne hadde en rekke forandringer fra tidligere versjoner. Apple opplevde en nedtur på 90-tallet og...]]></description>
			<content:encoded><![CDATA[<p>Det har vært interessant å følge Apples utvikling de siste 11 årene siden de slapp første versjon av Mac OS X. I 2001 ble versjon 10 (derav X) sluppet, og denne hadde en rekke forandringer fra tidligere versjoner. Apple opplevde en nedtur på 90-tallet og ønsket på et tidspunkt å kjøpe inn eksternt operativsystem framfor å videreutvikle sitte eget selv. Mange alternativer ble vurdert, men istedet for å velge for eksempel Suns unix-baserte Solaris, eller Windows NT (som faktisk ble vurdert ifølge Walter Isaacsons nye biografi om Steve Jobs) valgte Apple å kjøpe opp NeXT og deres NEXTSTEP operativsystem i 1996. De forskjellige Mac OSX versjonene, og senere mobil-varianten iOS, har en arkitektur bygget på BSD-Unix med et overbygg av proprietære teknologier. De siste årene har Apple åpnet og lagt til rette for masseutvikling fra almuen. Spesielt har en ny forretningsmodell hvor utviklere selv kan distribuere programvare for et verdensomspennende publikum gjennom App stores til en minimal investeringskostnad gjort plattformen interessant for nye grupper. Jeg ønsker her å nevne noen av aspektene jeg syntes er relevante, og som jeg har funnet interessante i min lille flørt med Apple denne høsten.</p>
<h3>Plattform</h3>
<p>Apple har to forskjellige programmer (som i opplegg, ikke software) for utvikling avhengig av hvilken plattform du ønsker å utvikle for. Prisen for å utvikle for for Mac OS X (desktop) eller iOS (mobile flater) er per i dag $99 per plattform. Dette inkluderer distribusjonsavtale igjennom respektive programvare-marked, ressurser på developer.apple.com som for eksempel tilgang til mange av foredragene fra utviklerkonferansen WWDC som video. Jeg har ennå ikke investert i en slik avtale, men har likevel hatt mulighet til å lage små programmer for både Mac OSX og iOS, og fått tilgang til masse ressurser, jeg har dog ikke lansert noen programmer. Utviklingsverktøyet XCode er tilgjengelig gratis til Lion, igjennom AppStore, og versjon 4.1 kommer med SDK for Lion og versjon 4.2 kommer med iOS5 SDKet. Med mindre du ønsker å benytte deg av fordelene med en utviklingslisens kan du programmere uten, og i startfasen kan dette være lurt da det kan ta litt tid å bli kjent med Objective-C og de respektive rammeverkene. Det er viktig å få med seg at for å benytte en fysisk iPad, iPhone eller iPod touch for å teste ut egen programvare trenger du en lisens. I iOS SDK-pakken følger det med simulator for disse enhetene (merk: ikke en emulator) og den har ikke mulighet for å benytte seg av de fysiske sensor-dataene som det kan være moro å inkludere i programmer på iOS.</p>
<h3>Verktøy</h3>
<p>Apple har laget gode verktøy for sine utviklere og disse er fritt tilgjengelig igjennom App Store. I Snow Leopard kom verktøyet som et ekstravalg på installasjons</p>
<p>platen, men nå som OS distribusjonen skjer gjennom skyen har også ekstra programvare blitt tilgjengelig for nedlastning. Fram til Xcode 4 var det i hovedsak to programmer du ville ha brukt i utviklingsprosessen: Xcode og Interface Builder. I dag er begge disse programmene bygget inn i Xcode 4 og det å skifte mellom kode-editoren og GUI-editoren skjer sømløst basert på hvilke fil du bearbeider. For Objective-C filer får du opp en god tekstbehandler som er godt integrert med dokumentasjonen, feilsøkingsverktøy og andre hjelpefunksjoner. Dersom du velger en xib-fil vil du få mulighet til å grafisk plassere brukergrensesnitt-enheter som NSTextField, NSLabel og NSSlider. Xcode tar seg også av kompilering, versjonskontroll og fra og med XCode 4.2 kan du også legge ut forskjellige view i iOS applikasjoner ved hjelp av Storyboard. I tillegg kommer utviklingspakken med et godt analyseverktøy kalt Instruments og et morsomt og kreativt verktøy kalt Quartz Composer.  Sistnevnte benytter et visuelt grensesnitt tilsvarende de som finnes i Max MSP og Pure Data.</p>
<h3><img class="alignleft  wp-image-1661" title="ScreenShot_XCode" src="http://www.lovholm.net/wp-content/uploads/2012/01/ScreenShot_XCode-1024x658.png" alt="" width="614" height="395" /></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3>Språk</h3>
<p>Selv om du kan programmere i mange språk på Apple plattformen er det foretrukkede språket Objective-C. Dette språket startet i utgangspunktet som et objekt orientert klasse bygget på C, men har i dag en lang tradisjon og er i versjon 2. Språket har mange likheter med andre C baserte språk, men har en ganske annerledes syntaks når det gjelder å kalle metoder hvor de bruker noe så utradisjonelt som <em>square brackets.</em> Noe jeg hadde problemer med å forstå når studiene krevde at jeg arbeidet med C var viktigheten av kompilatoren til å kunne utføre oppgaver ifra funky syntaks. Etter et par måneder med objective-C kan jeg lært å se viktigheten av dette. For eksempel lar Objective-C deg autogenerere get og set metoder basert på synthesize i implementeringen og property i interfacet.</p>
<pre class="brush: objc; title: ; notranslate">

#import &quot;SessionController.h&quot;

@implementation SessionController

@synthesize user, sessions;

- (void)viewDidLoad

{

user = [[User alloc] init];

sessions = [[NSMutableArray alloc] init];

Session *s = [[Session alloc] init];

[sessions addObject:s];

}
</pre>
<p>Jeg har ingen intensjon om å fortelle så veldig mye om Objective-c, men det virker som å være et morsomt språk å kunne. Det finnes i dag mange halv-gode og noen gode løsninger som lar deg programmere for flere plattformer uten å måtte kunne hver plattforms egne språk og skikker, men jeg syntes det har vært en lærerik opplevelse å forsøke å få hodet rundt Objective-C. For meg, som hovedsakelig har arbeidet med Java, er det vanskelig å fatte den dynamiske naturen til Objective-C: ikke bare kan du sende hvilken som helst datatype igjennom id-signaturen, du kan også kalle ting igjennom stier og laste inn ny kildekode mens programmet kjører.</p>
<h3>Rammeverk</h3>
<p>Rammeverkene er det som skaper mye av det som kan gjøres på en plattform. Det er her Python får sine &#8220;batteries included&#8221; og funksjonaliteten plattformene blir realisert. Skal du tegne grafikk eller initialisere en datastruktur basert på et XML HTTP-svar eller mange av de andre hverdagslige eller spesielle oppgavene som kreves av et program er det kjekt å kunne stå på skuldrene til noen som allerede har gjort tilsvarende oppgaver. Xcode kan linkes mot et stort antall rammeverk, men noen brukes mer enn andre. I første rekke kan det være greit å lære seg <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/ObjC_classic/Intro/IntroFoundation.html">Foundation</a> og et eller begge Cocoa-rammeverkene (<a href="http://developer.apple.com/technologies/mac/cocoa.html">Cocoa for Mac OS X</a> og <a href="http://developer.apple.com/technologies/ios/cocoa-touch.html">Cocoa Touch for iOS</a>). Dokumentasjonen til disse, og andre rammeverk, er bygget inn i XCode så ved å holde inne alt og klikke på et metodenavn dukker denne opp. I tillegg vil rammeverk som er linket til fra headerfilen automatisk bli inkludert i auto-completion, og siden kodehintingen er god vil du med kun begrensede  kunnskaper om metodenes navn kunne gjøre ganske mye i XCode.</p>
<h3>Hvordan begynne?</h3>
<p>Hvis du har en mac er første steg å få tak i siste versjon av XCode. Gå inn på i App Store for å laste denne ned. Installasjonsfilen er stor og dette tar derfor litt tid, men benytt tiden til å gjøre deg kjent på <a href="http://developer.apple.com">developer.apple.com</a>. Her kan du finne mange artikler, APIer og introduksjoner til forskjellige Apple teknologier, og dette kan være et greit utgangspunkt. Her finner du også artikler for nybegynnere som skal starte å lage sin første app samt best practices, rettningslinjer og demonstrasjonsapplikasjoner.</p>
<p>Lykke til, og si gjerne ifra om hvordan det gikk!</p>
<p>Bildet <a href="http://www.flickr.com/photos/leegillen/558011646/">Big XCode</a> er laget av Lee Gillen og gjort tilgjengelig på Flickr under en Creative Commons lisens.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2012/01/16/iprogrammering/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2012/01/16/iprogrammering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Christmas Learning</title>
		<link>http://www.lovholm.net/2011/12/23/christmas-learning/</link>
		<comments>http://www.lovholm.net/2011/12/23/christmas-learning/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 23:15:49 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[society]]></category>
		<category><![CDATA[Blaise Aguera y Arcas]]></category>
		<category><![CDATA[Cambridge]]></category>
		<category><![CDATA[GapMinder]]></category>
		<category><![CDATA[Gordon Brown]]></category>
		<category><![CDATA[iTunes University]]></category>
		<category><![CDATA[Ken Robinson]]></category>
		<category><![CDATA[Lynda]]></category>
		<category><![CDATA[Marco Tempest]]></category>
		<category><![CDATA[Matthew Taylor]]></category>
		<category><![CDATA[Paul Hegarty]]></category>
		<category><![CDATA[Photosynth]]></category>
		<category><![CDATA[RSAnimate]]></category>
		<category><![CDATA[Stanford]]></category>
		<category><![CDATA[steve jobs]]></category>
		<category><![CDATA[TED Talks]]></category>
		<category><![CDATA[The Great Courses]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1537</guid>
		<description><![CDATA[We are soon to enter a new festival season, and many of you are now are leaving studies or work for some days, or even weeks off. Spend time to celebrate christmas in one or another fashion, spend time with family and friends, and spend...]]></description>
			<content:encoded><![CDATA[<p>We are soon to enter a new festival season, and many of you are now are leaving studies or work for some days, or even weeks off. Spend time to celebrate christmas in one or another fashion, spend time with family and friends, and spend time gaining strength. While it&#8217;s good to have some time off, it&#8217;s also great to have some time to work on some projects, read some new literature, and learn some new things. Here are what I believe to be some of the best sources to various knowledge on the Internet.</p>
<h4>TED Talks</h4>
<p>TED is a conference series about Technology, Entertainment and Design that has made most of their content available online for everyone to see. They offer a variety of lectures about the topics in question. These lectures are constrained in length and the speakers (some of the world&#8217;s brightest minds) are invited to speak of what they believe to be most important. TED has also been franchising out their concept into what is called TEDx conferences, and many of the lectures held as these are also available.</p>
<p>There are many TED videos worth watching, and new are released almost daily. If you do, as I, use iTunes to subscribe to podcasts I can recommend the TED-podcast for a daily inspiration and deeper understanding in matters that matter. Here are some videos I recommend and that I find interesting, some of them are a couple of years old, but they are still important and amazing.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<p>In this video Ken Robinson speaks about the importance of making a school system that also appreciates other forms of expression than the ones expressed typically by the right part of the brain. Not only is this movie interesting, it is also very funny. I laughed a lot watching this movie, not only because Sir Robinson is a funny man, but also because of some of the interesting truths this speech articulates which makes you reconsider thoughts and ideas you have.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<p>This video has really been viral after the death of Jobs earlier this year. It is curated through TED&#8217;s best of the Internet. The speech was originally held and filmed at Stanford University. I think this is one of the most inspiring speeches to graduating students ever held, and I bear with me some of the ideas conveyed in this rhetorical masterpiece.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<p>This video is also an old classic. The Swedish Professor Hans Rosling has become an Internet star in his quest for giving people a more correct understanding of the contemporary world. Through his software <a href="http://www.gapminder.org/">GapMinder</a> he gathers data and visualises them in a way that helps us understand the state of the nations and global issues through data. His speeches are also great as he contextualises the data in a good way, one of his latter ways of conveying knowledge is through using inventions such as his grand-mother&#8217;s washing machine to explain important shifts in humans&#8217; &#8216;lebenswelt&#8217;.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<p>This video shows technology already available for synthesising many images into huge image worlds. Microsoft&#8217;s Photosynth technology is available, but the wow factor of this video documents some of what will be recorded in history when we are to understand the shift from the document based alphabetic web to the emerging. I think Blaise Aguera y Arcas also presents this technology in a good way.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<p>There are many ways of using an iPod, but Marco Tempest probably show you a way you have never seen before. Ingenious timing and creative use of technology creates a spectacular from everyday consumer electronics. This is true inspiration on how technology can be used in the arts and I hope to see many less known magicians making (christmas) party tricks application in the future.</p>
<h4>RSAnimate</h4>
<p>RSAnimate is a collection of lectures held by great minds organised by the Royal Society for the Encouragement of Arts, Manufactures and Commerce, then edited and visualised. I wished that every educator could make such drawings in real-time as it is a great way of remembering things both visually and auditory.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<p>In the first video Matthew Taylor explores the meaning of 21st century enlightenment, how the idea might help us meet the challenges we face today, and the role that can be played by organisations such as the RSA.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<p>In the second Ken Robinson (who also has a great lecture at TED.com &#8211; linked above) speaks about educational paradigmes and how the school of today isn&#8217;t suited for the world of tomorrow. I think all who have ever been to school have an opinion on how the education was conducted, and in this video Robinson addresses some important questions such as schools in an age of instant gratification and information overload.</p>
<p><a href="http://www.lovholm.net/2011/12/23/christmas-learning/"><em>Click here to view the embedded video.</em></a></p>
<div>The third movie I want you to see is one of the psychoanalyst and culture critic Slavoj Žižek. In the animation of a section named <em>First as Tragedy, then as Farce</em> (the name of one of his excellent books) he speaks about modern capitalism and how values are embedded into every aspect of the economic reality. Quite refreshing from a critical mind. You should also subscribe to his writings in <a href="http://www.guardian.co.uk/profile/slavojzizek">The Guardian</a>.</div>
<h4>iTunes University</h4>
<p>iTunes U contains a wide variety of lectures held at the worlds foremost universities. The variety in topics, educational and technical quality is large so it make time some time to find the best lectures. Luckily some of the best lectures are promoted, and Apple change between interesting sub-categories often. I have used this resource primarily to follow lectures in computer science, but also in various humanistic fields. I have found the iPod and iPad development lectures by Paul Hegarty and the the Human-Computer Interaction Guest Lectures at Stanford University, the Cambridge Ideas short videos, and the introductions to programming lectures as well as the Innovation/invention lectures from MIT inspirational and educational. It&#8217;s definitely a great resource to be able to access the lectures at the best universities in the world. Edinburgh University does also have a lecture series that has been promoted the last few months: the Gifford Lectures containing among other a lecture and Q&amp;A with former UK Prime Minister Gordon Brown.</p>
<h3>Non-Free Webucation</h3>
<p><strong><a href="http://www.lovholm.net/wp-content/uploads/2011/12/lynda_img.jpg"><img class="size-medium wp-image-1590 alignleft" title="lynda_img" src="http://www.lovholm.net/wp-content/uploads/2011/12/lynda_img-300x224.jpg" alt="" width="300" height="224" /></a>Lynda.com</strong></p>
<p>is a great place for screen captures in many of the creative software products from Adobe, but also for web-design and 3D and more. They are constantly updating their web-page with new lectures, the entry point is low and the amount of information you get is normally high. The lectures are also organised into chapters and topics, so it&#8217;s easy to come back to check how they solved your problem in a lecture. The exercises are relevant and it seems that they cover technologies requested by the market. For many the page may be a bit too general, for topics as e.g. Ruby on Rails there are two lectures, one fundamental and one for experienced users. Lynda does not discuss a certain technology that thoroughly as e.g. the specific screen casts for these technologies. In general Lynda.com is a great place to learn about new technologies and to get a good introduction, but if you are an expert it may find it too pedantic.</p>
<p><strong><a href="http://www.lovholm.net/wp-content/uploads/2011/12/ttc_logo.gif"><img class="alignright size-full wp-image-1589" title="ttc_logo" src="http://www.lovholm.net/wp-content/uploads/2011/12/ttc_logo.gif" alt="" width="290" height="60" /></a></strong></p>
<p><strong>The Great Courses</strong></p>
<p>I recently re-heard the title track of many of the great courses audio courses while watching <em>The Office, </em>and even if the concept of DVDs with lectures may be something Michael Scott from Dunder Mifflin would appraise, it is also a great idea for us mortals. The courses is about everything from science, to language to history. The lecture series on <em>Great Minds of the Western Intelectual Tradition</em> is one of my favourites, among the <em>Modern Intelectual Tradition: From Descartes to Derrida</em> and <em>No Excuses:</em> <em>Existentialism and the meaning of life. </em>Their lectures comes in both video and audio format. I found that I like the audio best as I can listen to the lectures while traveling. While living in Edinburgh I used half an hour each way to the university and being able to follow these courses made each one of them into an educational journey (dannelsereise).</p>
<p>Do you have any other favourite videos at any of the sites I mentioned earlier, or perhaps you have other sources to knowledge that are simliar, in that case, I would greatly appreciate it if you could give me a link in the comment field.</p>
<p>Finally, I want to wish all my readers a merry christmas.</p>
<p><em>The picture depicts Hans Rosling speaking at TED. The image is taken by Bill Holsinger-Robinson and is licensed under a Creative Commons license. Please refer to the picture on <a href="http://www.flickr.com/photos/billhr/3265888106/">Flickr</a> for more information.</em></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2011/12/23/christmas-learning/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2011/12/23/christmas-learning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Behind the Scenes: A CSS3 page in the making</title>
		<link>http://www.lovholm.net/2011/12/17/behind-the-scenes-a-css3-page-in-the-making/</link>
		<comments>http://www.lovholm.net/2011/12/17/behind-the-scenes-a-css3-page-in-the-making/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 15:26:50 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1527</guid>
		<description><![CDATA[In today&#8217;s post we&#8217;ll be creating a little page with some graphics. The purpose of this little session is to create a web site which takes advantage of some of the new features in HTML5 and CSS3. Lots have happened to web technology the last...]]></description>
			<content:encoded><![CDATA[<p>In today&#8217;s post we&#8217;ll be creating a little page with some graphics. The purpose of this little session is to create a web site which takes advantage of some of the new features in HTML5 and CSS3. Lots have happened to web technology the last years, and my little toe tells me more is in the making. Let us make a little page and style it with some of the cool new stuff as well as adding some elements to make it more human friendly. This text is written with an emphasis on users who know some web-design, but who are not experts. Regardless of your skill competency I am interested to hear what you think of the demonstration, and also how your practices are different from mine. I think peer-review provides an excellent foundation for learning and improvement, so please, criticise my approach (constructively).</p>
<p>To do this little project we&#8217;ll need a text editor and a browser to preview the result while we are working. Since we&#8217;re not going to apply some server magic in this project we won&#8217;t need to install a server, but we need somewhere to write our stuff and somewhere to display it. To display the project we need a web browser. I guess you already have one (and if you are the average Joe visiting my page you are using Chrome on Windows), but you need to make sure it&#8217;s up to date. For a long time i preferred Firefox, but lately I have spent more time working with browser using the webkit-based browsers Google Chrome and Apple Safari. I will exclusively be using Chrome while working on this project so I recommend you to use the same. I will, however, also include the moz prefix support where CSS3 support is limited to vendor specific implementation.</p>
<p>Text editors are available in all shapes and colours. What you don&#8217;t need is a word processor, you will need a program that writes plain text to a file. If you are working on the Mac I will recommend TextMate or the free version TextWrangler. Lately, I have tried out an Integrated Development Enviroment built on Eclipse named Aptana Studio. This was also very good and comes with more advance features, but is not as lightweight. If you are working on Windows I recommend Notepad+.</p>
<h3>The Final Result</h3>
<p>We need some idea of how our web-page should look like. Before we start to prototype we need to establish some really fundamental concepts of what we&#8217;ll need. If we look at the new HTML5 syntax as an indicator of popular practices we can see that HTML5 includes some new elements named <em>header</em>, <em>footer</em>, <em>nav</em> and <em>article</em>. Let us use them to structure a basic HTML document. A rather conventional structure which makes the design coherent at larger screen sizes is to wrap the content of a page within an element, and to do this we can use the div element. Newer practices takes advantage of screen real-estate through media queries, but for this little project we are not going to do so, instead we make a wrapper with the width of 1000 pixels. This is going to render as a &#8220;page inside the browser window&#8221; on most modern computers. We wil also be placing two columns for the main content area one with the content and another with a local menu. A global menu we place in the header element. For the footer we are also creating two columns: one with some information about the page and one with links. To get a better idea you can take a sneak peak at the final result here: <a href="http://www.lovholm.net/projects/web206">projects 206</a>.</p>
<p>To create the documents we need I like to first go into the root folder of my web projects using the terminal and create a new folder with <em>mkdir, </em>then I go into the folder and create the following files <em>index.html,</em> <em>style.css</em> and <em>script.js </em>with the touch command<em>. </em>If it&#8217;s a bigger project I would use a more advance structure, but for our little mockup this would be more than enough.</p>
<p>We can leave the <em>style.css</em> and <em>script.js</em> files empty for now and type or copy the following into the index.html:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
   &lt;title&gt;Webpage&lt;/title&gt;
   &lt;link type=&quot;text/css&quot; rel=&quot;stylesheet&quot; href=&quot;style.css&quot; /&gt;
   &lt;script type=&quot;text/javascript&quot; src=&quot;script.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;div id=&quot;wrapper&quot;&gt;
   &lt;header&gt;
      &lt;h1 id=&quot;main_title&quot;&gt;Christmas&lt;/h1&gt;
      &lt;nav id=&quot;top_menu&quot;&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Literature&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Tradition&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Recipes&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Songs&lt;/a&gt;&lt;/li&gt;
       &lt;/ul&gt;
     &lt;/nav&gt;
 &lt;/header&gt;
 &lt;div id=&quot;main&quot;&gt;
   &lt;nav id=&quot;left_menu&quot;&gt;
     &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;#&quot;&gt;A Christmas Carol&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Three nuts to Cinderella&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#&quot;&gt;A Christmas Story&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Nightmare before Christmas&lt;/a&gt;&lt;/li&gt;
     &lt;/ul&gt;
   &lt;/nav&gt;
  &lt;article&gt;
    &lt;h2&gt;A christmas story&lt;/h2&gt;
    &lt;p&gt;Some text&lt;/p&gt;
  &lt;/article&gt;
 &lt;/div&gt;&lt;!-- End of main --&gt;
 &lt;footer&gt;
   &lt;div id=&quot;footer_about&quot;&gt;
      &lt;p&gt;This is some footer text&lt;/p&gt;
   &lt;/div&gt;&lt;!-- End of footer_about --&gt;
 &lt;div id=&quot;footer_links&quot;&gt;
   &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
   &lt;/ul&gt;
  &lt;/div&gt;&lt;!-- End of footer_links --&gt;
     &lt;p id=&quot;footer_bottom&quot;&gt;Legal information and a link to my &lt;a href=&quot;http://www.lovholm.net&quot;&gt;blog&lt;/a&gt;&lt;/p&gt;
   &lt;/footer&gt;
 &lt;/div&gt; &lt;!-- End of wrapper --&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>The HTML markup above differs a bit from the HTML in the final version, but only in the sense that the &#8220;about&#8221; text in the footer and the main text is changed with shorter versions. The rest of the markup is the same. As you can see this is pretty conventional stuff. The header element contains links to the css and javascript file we created earlier so we can take advantage of these and at the same time keep them separate from the content. The body-elements consists of one child element, the wrapper, which further is divided into three elements: header, main and footer. The first and the last of these take advantage of the HTML5 semantic markup for their function within a page, the main element is a div-tag with an ID of &#8220;main&#8221;. All the main sections contain a link list and these are located within unordered lists. For convenience I use HTML-comments after closing a div-tags to make nesting easier. If you copy this HTML or the HTML of the final version into a document and open this in the browser the result will however be without styling. To keep content and presentation separated is a good practice: it makes it easier to update each of them in the future, re-use them or provide separate versions to accomodate different user scenarios. In another post we are going to make our little page dynamic, and then this rule of thumb will prove useful.</p>
<p>The text used in the finished version is an excerpt from the beginning of Charles Dickens famous book <em>A Christmas Carol. </em>I copied it from the <a href="http://www.gutenberg.org/">Gutenberg Project,</a> a service that provides loads of books where the copyright is no longer valid. Please support this project, it is a really good resource for gaining example texts not to mention the gigantic cultural value it makes available for free.</p>
<h3>The Style</h3>
<p>Here is the CCS modifying the HTML above. The css is the content of the style.css file:</p>
<pre class="brush: css; title: ; notranslate">

body {
 background: url('bg_thick_red.png');
 background-repeat: repeat-both;
}

#wrapper {
 margin: 20px auto 20px;
 width:1000px;
 background-color: #FFF;
 background-color: rgba(255,255,255,.92);
 box-shadow:2px 2px 15px #000;
 border-radius:4px;
}

header {
 padding:5px;

 background-image: linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
 background-image: -o-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
 background-image: -moz-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
 background-image: -webkit-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
 background-image: -ms-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
 background-image: -webkit-gradient(
 linear,
 left bottom,
 left top,
 color-stop(0.04, rgba(244,250,240,.3)),
 color-stop(0.52, rgba(102,168,204,.3)),
 color-stop(0.76, rgba(92,131,209,.3))
 );
}

header h1{
 text-align:center;
 color: #888;
 text-shadow: 0 1px 0 #FFF;
 font-size:3em;
 text-transform:uppercase;
 font-family: helvetica, sans-serif;
}

header nav {
 text-align:center;
}

header nav ul {
 list-style: none;
}

header nav ul li {
 display:inline;
}

header nav ul li a{
 background-color: green ;
 text-align:center;
 padding:5px 20px 5px;
 margin:0 2px 0;
 text-decoration:none;
 color:white;
 font-size:1.5em;
 border-radius: 4px;
}

#main {
 margin: 0;
 padding: 0;

}

#main nav {
 float:left;
 width:215px;
 margin: 20px 5px 0 20px;
 background-color: #FFF;
 background-color: rgba(255,255,255,0.2);
 border-radius:4px;

}

#main nav ul {
 list-style:none;
 margin: 0;
 padding: 0;
}
#main nav ul li a{
 display: inline-block;
 font-size: 1.2em;
 background-color: #DDD;
 border-radius:4px;
 margin: 5px 0 10px 0;
 padding: 5px;
 width:100%;
 text-decoration:none;
 color: green;

}
#main article {
 background-color:#FFF;
 border-radius:4px;
 float:right;
 width:680px;
 padding:10px;
 margin:15px;
}

footer {
 clear: both;
 background-color: #D4C4AD;
 padding:10px;
 border-top: 3px solid #000;
 font-size:0.9em;
}

#footer_about {
 width:450px;
 float:left;

}

#footer_links {
 width:450px;
 float:right;
}

#footer_links ul {
 list-style:none;
 margin: 0;
 padding: 0;
 background-image: url('post_service.png');
 background-repeat:no-repeat;
 background-position:right top;
 height:130px;
 padding-top:15px;
}

#footer_bottom {
 border-top: 1px solid #333;
 padding-top:4px;
 clear:both;
 text-align:center;
 font-family:monospace;
}

nav ul li a:hover{
 padding-top:10px;
 padding-bottom:10px;
 box-shadow: 0 0 30px #FEE100;
}

nav ul li a {
 -webkit-transition: all 0.2s ease-in-out;
 -moz-transition: all 0.2s ease-in-out;
 -o-transition: all 0.2s ease-in-out;
 -ms-transition: all 0.2s ease-in-out;
 transition: all 0.2s ease-in-out;
}
</pre>
<p>This is where the magic happens. It&#8217;s amazing how much some lines of CSS can change how the HTML is styled within the browser. As you may see, I have tried to keep the CSS in somewhat same structure as HTML in the sense of the place in the document. I&#8217;ve added some global rules at the bottom that applies to all links within a nav-element list. If you been working with CSS before you probably recognise the techniques chosen. I will now comment on some of the choices I made while authoring this stylesheet.</p>
<p>For this project I thought it could be cool with some stripes in the background, this really emphasises the transparency in the alpha layering supported by the new rgba and hsla tags. To get stripes as a background I chose to repeat the basic structure of the background using the background-repeat property. I crated the image used at <a href="http://www.stripegenerator.com/">Stripegenerator</a>. For colours I prefer to use <a href="http://kuler.adobe.com/">Adobe Kuler</a>.</p>
<p>The new CSS3 features I have used includes: <strong>gradients</strong>, <strong>border-radius</strong>, <strong>transition</strong>, <strong>shadows</strong> and the <strong>new colour tags</strong>. CSS3 is not yet a fully implemented standard and many of the functions are only available through vendor prefixes (such as -moz- or -webkit-) but why wait for the future? Most of the CSS3 modules are working and not likely to go through major changes, other things are still in blueprints. The stuff I&#8217;m been using here seems to be widely adapted and let alone the gradients are all using simliar syntax across browsers. An important argument for adapting and using new standards you are also playing an active role in defining how these can be used and their popularity, so you can in fact be a part of defining your own future.</p>
<h4>Gradients</h4>
<p>The gradients as you can see are here located within the background image. The syntax diverge between webkit-browsers (e.g Safari and Chrome) and non-webkit-browsers. The most commonly used syntax includes the type of gradient in the title, while webkit takes it as an argument. Webkit does also needs clearly defined start and stop position while other syntax just need the defined start location. In the code here I have used the rgba elements (which we will return to later) and colour stops. When these are defined will they work as absolute stops which the browser interpolates between. The percentage defines where the stops will be. I am only applying gradients to the header, but if I chose a higher element the gradients would be equally distributed. For this example I have also changed the version without a vendor-prefix to the bottom, this may be a good idea as the browsers will drop prefixes as the function becomes a standard, the browsers adapts the rule last defined and will skip the rules without the prefixes for the specific browser. The syntax can be a little hard to type with many parentesis and commas so to save time and worries I can recommend you to use a <a href="http://gradients.glrzad.com/">CSS3 gradient generator</a>.</p>
<pre class="brush: css; title: ; notranslate">

background-image: -o-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);

background-image: -moz-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);

background-image: -webkit-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
 background-image: -ms-linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
 background-image: -webkit-gradient(
 linear,
 left bottom,
 left top,
 color-stop(0.04, rgba(244,250,240,.3)),
 color-stop(0.52, rgba(102,168,204,.3)),
 color-stop(0.76, rgba(92,131,209,.3))
 );

background-image: linear-gradient(bottom, rgba(244,250,240,.3) 4%, rgba(102,168,204,.8) 52%, rgba(92,131,209,.8) 76%);
</pre>
<p>The <strong>vendor prefixes </strong>are o for Opera, moz for mozilla which Firefox is the most known in the family, webkit is used by webkit browsers which have gained popularity trough Chrome and Safari. The built-in browser on iOS and Android devices are also built on the webkit engine. Ms is short for Microsoft and is the vendor prefix for the widely used Internet Explorer browser. IE is supposedly getting better in newer versions so let hope that users upgrade.</p>
<h4>New Colour Tags</h4>
<p>Traditionally colours have been expressed with three or six hexadecimal numbers or name constants. Opacity has been available since CSS2 through the opacity function, but it is all brought together in the rgb, hsl, rgba and hsla tags. The two first takes three values and the two latter four. The RGB colours (Red, Green, Blue) constitutes the additive colour model, while the HSL (Hue, Saturation, Lightness ) makes up the colour wheel variables. To use of the models call either of the rules with the appropriate number of argument such as:</p>
<pre class="brush: css; title: ; notranslate">

background-color: #FFF;
 background-color: rgba(255,255,255,.92);
</pre>
<p>In the excerpt above the first background-color tag is sent the three hexadecimals as a concatenation of the six hexadecimal version #FFFFFF. This can also be expressed as rbg(255, 255, 255) and if you&#8217;re into maths you may see why. The first two &#8216;F&#8217;s correspond to 255 and the same goes for the subsequent. The range between  0 and 255 corresponds to what can be distinguished in a byte. The HSL version has another range. Since it is based on the colour wheel the first argument corresponds to the degree or the circular point on the wheel; the accepted range leads from this and is somewhere between 0 and 360. The second and third arguments are stated in percentage (and the syntax is a number between 0 and 100 followed by the percentage sign). If you choose to add some transparency you add an a to hsl or rgb so it becomes hsla and rgba. In addition you will need to add a fourth argument which takes a number between 0 and 1 where 0 is totally transparent.</p>
<h4>Border-radius</h4>
<p>Boxes in the web browsers may seem a bit hard from time to time, so to make them more visually friendly you can round the angles using th<em>e border-radius</em> rule. This is easy to use either if you want to create a subtle visual effect or going wild with round boxes. I like to add this feature to buttons in order to make them more click friendly but I also think it looks good on boxes. In the little code above I have used a 4 pixel border radius on buttons and also on the wrapper.</p>
<pre class="brush: css; title: ; notranslate">

border-radius: 4px;
</pre>
<h4>Shadows</h4>
<p>You have probably noticed the heavily use of shadows in various graphical user interface the last years. Shadows make a subtle three dimensional feel on the screen, adding depth and give visual cues of what information should stand out. There are two shadows I have applied to this little page: box and text shadows. In the header h1 element I add a text shadow to make the text a bit more crispy:</p>
<pre class="brush: css; title: ; notranslate">

text-shadow: 0 1px 0 #FFF;
</pre>
<p>In this example I keep the x-axis of the light source straight on the text, but I move the y-axis one pixel down. I do not want to blur the shadow, and I set its colour to  white.</p>
<p>I use the box shadow function in more sections. Perhaps the most apparent shadow is the one applied to the wrapper, but also on the link elements are shadows used for an effect. When the user  hover an anchor tag in the nav section is a subtle box shadow applied. Here are the two examples in the CSS markup:</p>
<pre class="brush: css; title: ; notranslate">

box-shadow:2px 2px 15px #000;

box-shadow: 0 0 30px #FEE100;
</pre>
<p>The first line is the box-shadow from the wrapper element, and the second is from the light effect I try to emulate applied to the buttons when the user is hovering them. The idea is for the light to look like the radiation around a light source hidden by the button. These two implementations of the same function are just a little example on all the effects which can be accomplished using the new shadow functions.</p>
<h4>Animation</h4>
<p>The last piece of code I want to comment upon is the animation. This is a new element providing visual effects without having to apply Javascript.</p>
<pre class="brush: css; title: ; notranslate">

nav ul li a {
 -webkit-transition: all 0.2s ease-in-out;
 -moz-transition: all 0.2s ease-in-out;
 -o-transition: all 0.2s ease-in-out;
 -ms-transition: all 0.2s ease-in-out;
 transition: all 0.2s ease-in-out;
}
</pre>
<p>For all the a tags used in a unordered list within a nav section (pretty much all navigational links) I apply a transition element. This is used to interpolate an animation when the visual state of the element is changed. The code excerpt above is quite long due to the vendor-prefixes, but one line will, in the future, be enough. The syntax as you can see is three arguments: the first is a selector for what should be included in this rule. I choose to include all. In a case where you a using CSS transformations  you can here choose which of the transformations it should apply to, which is great in case you plan to make something advance. The second and third argument is the timing and interpolation approach. I choose a rather short time 0.2 seconds from the animation starts until it is finished, I also choose an ease-in-out interpolation. A short demonstration of the various interpolation approaches can be found <a href="http://css3.bradshawenterprises.com/transitions/">here.</a></p>
<p>I hope this post has been useful and perhaps provided you with some new knowledge or ideas. Please tell if anything is unclear or if you would have chosen another approach. At a later point I hope to take this page, or a similar one, and apply some Javascript magic and a little back-end providing some text or data. Well, until next time.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2011/12/17/behind-the-scenes-a-css3-page-in-the-making/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2011/12/17/behind-the-scenes-a-css3-page-in-the-making/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graduation</title>
		<link>http://www.lovholm.net/2011/12/07/graduation/</link>
		<comments>http://www.lovholm.net/2011/12/07/graduation/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 17:03:15 +0000</pubDate>
		<dc:creator>Ola Løvholm</dc:creator>
				<category><![CDATA[studies]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[graduation]]></category>
		<category><![CDATA[master studies]]></category>
		<category><![CDATA[personal reflection]]></category>

		<guid isPermaLink="false">http://www.lovholm.net/?p=1524</guid>
		<description><![CDATA[The 23rd of November mom, Jules and I went to Scotland to attend my graduation at the University of Edinburgh. In McEwan Hall I meet with most of my old study colleagues and we were in turn hit by the hat which graduates us and...]]></description>
			<content:encoded><![CDATA[<p>The 23rd of November mom, Jules and I went to Scotland to attend my graduation at the University of Edinburgh. In McEwan Hall I meet with most of my old study colleagues and we were in turn hit by the hat which graduates us and bestow our academic titles upon us. This could have been a nice introduction to John Searle and his speech acts, but I will save that for later.</p>
<p>Anyhow, this marks the end of my second round of formal education, and the start of a new era in which I hope to bring with me the ideals and inspiration I&#8217;ve accumulated through five years at universities in Oslo, Stuttgart and Edinburgh. It&#8217;s been five interesting years, and I meet a good deal of great people which I hope I will be lucky enough to work with at a later occasion.</p>
<p>I try to keep my blog semi-professional and I try to write more about various topics than about myself. However, as I use this little place as a way of keeping track of what I think, care about and do from year to year I think I should mention my newest little achievement. On the continuous line of life, which is dived into past and future by the razor-thin present I think it&#8217;s important to think back and hopefully this can be a little personal milestone for future me.</p>
<p>I do hope that I can put my studies to use, and that I can still learn and develop my skills and thoughts. Learning is not just formal degrees, nor a profession, or an intrest, it is a life-long process which enrich me, and hopefully you as well. There are still big questions to be explored, questions to be answered and arguments to be presented. I look forward to the next challenge</p>
<p><a href="http://www.lovholm.net/wp-content/uploads/2011/12/master.png"><img class="aligncenter size-full wp-image-1528" title="Graduation in Edinburgh" src="http://www.lovholm.net/wp-content/uploads/2011/12/master.png" alt="" width="700" height="480" /></a></p>
<p>&nbsp;</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://www.lovholm.net/2011/12/07/graduation/">{lang: 'en-GB'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://www.lovholm.net/2011/12/07/graduation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

