<?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>BEKK Open &#187; openid</title>
	<atom:link href="http://open.bekk.no/tag/openid/feed/" rel="self" type="application/rss+xml" />
	<link>http://open.bekk.no</link>
	<description>Et innblikk i hva som skjer i BEKK</description>
	<lastBuildDate>Mon, 26 Jul 2010 10:52:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>GMail and Google Calendar with OpenID and OAuth</title>
		<link>http://open.bekk.no/2009/12/18/gmail-and-google-calendar-with-openid-and-oauth/</link>
		<comments>http://open.bekk.no/2009/12/18/gmail-and-google-calendar-with-openid-and-oauth/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 09:34:58 +0000</pubDate>
		<dc:creator>Aslak Hellesøy</dc:creator>
				<category><![CDATA[Fri Programvare]]></category>
		<category><![CDATA[Sikkerhet]]></category>
		<category><![CDATA[Virksomhet 2.0]]></category>
		<category><![CDATA[Webarkitektur]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[friprog]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[nith]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://open.bekk.no/?p=2242</guid>
		<description><![CDATA[
Have you ever wondered how you can display email and calendar events from Google in your own web site? Or how you can log in to your site using your Google account? Both staff and students at Norwegian School of Information Technology (NITH) use GMail and Google Calendar for internal communication. They hired BEKK to [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="alignnone size-full wp-image-2267" title="openid_oauth" src="http://open.bekk.no/wp-content/uploads/2009/12/openid_oauth.png" alt="openid_oauth" width="300" height="83" /></p>
<p style="text-align: left;">Have you ever wondered how you can display email and calendar events from Google in your own web site? Or how you can log in to your site using your Google account? Both staff and students at <a href="http://nith.no/">Norwegian School of Information Technology</a> (NITH) use GMail and Google Calendar for internal communication. They hired BEKK to implement a new web site and intranet application. One of the features they wanted was GMail and Google Calendar integrated into their intranet, with a custom visual styling.</p>
<p style="text-align: left;">To achieve this we decided to use Google&#8217;s <a href="http://code.google.com/apis/accounts/docs/OpenID.html">OpenID+OAuth hybrid protocol</a> &#8211; a  <a href="http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html">draft specification</a> proposed by Google.</p>
<p style="text-align: left;"><a href="http://openid.net/">OpenID</a> is an open standard for web site <em>authentication</em>. An <em>OpenID consumer</em> web site (for example an intranet or a wiki) can delegate user authentication to a centralised <em>OpenID provider</em> web site (for example MyOpenID.com or Google). This means less usernames and passwords to remember for end-users and single-sign-on (SSO) becomes easy to implement.</p>
<p style="text-align: left;"><a href="http://oauth.net/">OAuth</a> is an open standard for web site <em>authorisation</em>. This lets an <em>OAuth consumer</em> web site send and retrieve private information to/from an <em>OAuth provider</em> web site on behalf of an end-user.</p>
<p style="text-align: left;">NITH was kind enough to let us share some of the code we developed for them to illustrate how all of this works. The result is a <a href="http://oo-demo.heroku.com/">simple web application</a> that you can try out with your own Google account. The source code is available under the MIT license and you can download it from <a href="http://github.com/thormarius/oo">GitHub</a>. Both the sample application and the NITH.no site are hosted on <a href="http://heroku.com/">Heroku</a>, a top-notch hosting provider for <a href="http://rubyonrails.org/">Ruby on Rails</a> running on top of Amazon&#8217;s EC2 cloud. The applications are written in Ruby on Rails, but you can easily implement similar functionality on other platforms such as JEE, .NET, PHP etc using freely available OpenID and OAuth libraries.</p>
<p style="text-align: left;">Let&#8217;s first look at the user workflow. (The workflow illustrated here is a slight modification of how NITH&#8217;s intranet works).</p>
<p><strong>1) The user follows the Login link on the front page of the consumer application.</strong></p>
<p><strong> </strong><img class="alignnone size-full wp-image-2261" style="border: 1px solid black" title="internet" src="http://open.bekk.no/wp-content/uploads/2009/12/internet1.png" alt="internet" width="700" height="135" /></p>
<p><strong>2) The user is redirected to Google&#8217;s login page and logs in (OpenID authentication).</strong></p>
<p><img class="alignnone size-full wp-image-2249" style="border: 1px solid black" title="openid" src="http://open.bekk.no/wp-content/uploads/2009/12/openid.png" alt="openid" width="700" height="316" /></p>
<p><strong>3) The user authorises the Intranet application to access GMail and Google Calendar (OAuth).</strong></p>
<p><img class="alignnone size-full wp-image-2250" style="border: 1px solid black" title="oauth" src="http://open.bekk.no/wp-content/uploads/2009/12/oauth2.png" alt="oauth" width="700" height="313" /></p>
<p><strong>4) The user is redirected back to the consumer application which displays GMail and Google Calendar.</strong></p>
<p><img class="alignnone size-full wp-image-2292" style="border: 1px solid black" title="intranet" src="http://open.bekk.no/wp-content/uploads/2009/12/intranet1.png" alt="intranet" width="700" height="374" /></p>
<p style="text-align: left;">If the user checks the &#8220;remember me&#8221; checkboxes, step 2 and 3 will be skipped in the future.</p>
<p style="text-align: left;">If you want to implement a similar integration with Google in your own application, here are the main steps:</p>
<p style="text-align: left;"><strong>Register your domain at Google</strong></p>
<p style="text-align: left;">Google&#8217;s OAuth service requires any OAuth consumer to be pre-registered before it can use the service. To do this, go to <a href="https://www.google.com/accounts/ManageDomains">Google&#8217;s Domain registration page</a> and register information about your site. You only have to register the domain name.</p>
<p style="text-align: left;">Google will then provide you with a static HTML file that you must serve from your domain. When you have uploaded this HTML file, click &#8220;verify domain&#8221; on Google&#8217;s registration page.</p>
<p style="text-align: left;"><strong>Use your OAuth consumer secret</strong></p>
<p style="text-align: left;">When you register your domain with Google, you will also be given an OAuth consumer secret (a simple String token) that your consumer application must use when connecting to Google. This consumer secret is bound to the domain name, so it cannot be used from any other host, including localhost.</p>
<p style="text-align: left;"><strong>Find an OpenID library that supports Google&#8217;s OpenID+OAuth hybrid protocol</strong></p>
<p style="text-align: left;">This is the hardest part. The natural choice for a Rails application using OpenID is to use the &#8220;official&#8221; <a href="http://openidenabled.com/ruby-openid/">ruby-openid</a> library. However, this library doesn&#8217;t support the hybrid protocol, so we had to use <a href="http://github.com/aslakhellesoy/ruby-openid">Aslak&#8217;s fork</a> of <a href="http://github.com/pelle/ruby-openid">Pelle Braendgaard&#8217;s ruby-openid fork</a>. We also had to use Pelle&#8217;s slightly modified fork of Rails&#8217; <a href="http://github.com/pelle/open_id_authentication/network">open_id_authentication</a> library.</p>
<p style="text-align: left;">Until the OpenID+OAuth hybrid protocol becomes an official extension to the OpenID protocol you will not find support for it in all OpenID libraries, but they are all open source &#8211; so you have the freedom to add this yourself. Open source wins again.</p>
<p style="text-align: left;"><strong>Summing up</strong></p>
<p style="text-align: left;">OpenID and OAuth are supported by an increasing number of libraries and web sites. Google is by no means the only site supporting the protocols (and to be honest &#8211; Google&#8217;s implementation deviates a little from the standard). If you are considering implementing some kind of single sign on we recommend you consider these protocols.</p>
]]></content:encoded>
			<wfw:commentRss>http://open.bekk.no/2009/12/18/gmail-and-google-calendar-with-openid-and-oauth/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Facebook og/eller Twitter som login-modul</title>
		<link>http://open.bekk.no/2009/06/17/facebook-ogeller-twitter-som-login-modul/</link>
		<comments>http://open.bekk.no/2009/06/17/facebook-ogeller-twitter-som-login-modul/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 13:01:19 +0000</pubDate>
		<dc:creator>Torbjørn Vatn</dc:creator>
				<category><![CDATA[BEKK]]></category>
		<category><![CDATA[Fri Programvare]]></category>
		<category><![CDATA[Teknologi]]></category>
		<category><![CDATA[Virksomhet 2.0]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[sosiale nettverk]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://open.bekk.no/?p=631</guid>
		<description><![CDATA[Folk flest, meg selv inkludert, har et stadig økende antall kontoer rundt omkring på nettet. Passord er vanskelig å huske og derfor har man en tendens til å bruke et enkelt et som er felles for alle disse kontoene som man signer opp på helt ukritisk. Eller man prøver å ha forskjellige og gode passord, men glemmer dem med en gang man trykker SignUp-knappen. Så hvorfor ikke bruke et brukernavn og passord som man allered har? Både Facebook (FB) og Twitter har funksjonalitet som lar eksterne nettsteder bruke dem som en såkalt “delegated sign-in provider”. La oss se litt på hvor enkelt det er å ta i bruk.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Kan alle som har en konto på enten Facbook eller Twitter holde opp en hånd? Nå kan jeg riktignok ikke se hvor mange hender som holdes opp, men i følge <a title="tvitre.no" href="tvitre.no" target="_blank">tvitre.no</a> og <a title="checkfacebook.com" href="checkfacebook.com" target="_blank">checkfacebook.com</a> er det en hel del.</p>
<p><img class="size-full wp-image-634 alignleft" title="facebookers" src="http://open.bekk.no/wp-content/uploads/2009/06/facebookers.png" alt="facebookers" width="308" height="93" /></p>
<p><img class="size-full wp-image-635 aligneleft" title="twittrere" src="http://open.bekk.no/wp-content/uploads/2009/06/twittrere.png" alt="twittrere" width="277" height="44" /></p>
<p style="text-align: left;">Folk flest, meg selv inkludert, har et stadig økende antall kontoer rundt omkring på nettet. Passord er vanskelig å huske og derfor har man en tendens til å bruke et enkelt et som er felles for alle disse kontoene som man signer opp på helt ukritisk. Eller man prøver å ha forskjellige og gode passord, men glemmer dem med en gang man trykker SignUp-knappen. Så hvorfor ikke bruke et brukernavn og passord som man allered har? Både Facebook (FB) og Twitter har funksjonalitet som lar eksterne nettsteder bruke dem som en såkalt <em>&#8220;delegated sign-in provider&#8221;. </em>La oss se litt på hvor enkelt det er å ta i bruk.</p>
<h2>Facebook Connect</h2>
<p style="text-align: left;">Facebook Connect er en tjeneste fra FB som lar deg gjøre flere ting, som f.eks. identitetssjekking, linking til FB-venner, FB-deling og <strong>autentisering</strong>.</p>
<p><strong>Autentiseringen</strong> kan integreres i andre nettløsninger og logger inn brukerne med fire enkle steg:</p>
<ol>
<li>Når en bruker går til nettsiden, kan man bruke FB Connect sitt javascriptbibliotek for å sjekke om brukeren allerede er logget inn på FB</li>
<li>Hvis det er tilfellet kan man enten redirecte brukeren til et &#8220;innlogget&#8221;-view eller oppdaterer siden inline med Javascript (sikkert det smootheste)</li>
<li>Hvis brukeren ikke er logget inn kan man enten vise <img src="http://wiki.developers.facebook.com/images/a/ac/Connect_light_medium_short.gif" alt="connect" /> på den nåværende siden eller redirecte til en egen loginside</li>
<li>Når <img src="http://wiki.developers.facebook.com/images/a/ac/Connect_light_medium_short.gif" alt="connect" /> trykkes starter login-prosessen og den vil i sin tur igjen kalle et javascript-callback som man har registrert</li>
</ol>
<p style="text-align: left;"><strong>Og det var det! </strong></p>
<p style="text-align: left;">FB Connect kan brukes direkte i en hel bråte programmeringsspråk via forskjellige <a href="http://wiki.developers.facebook.com/index.php/Client_Libraries">klientbiblioteker</a> (både offisielle og tredjeparts). Jeg nevner i fleng Java, Python, Ruby on Rails, og til og med Lisp og Erlang.</p>
<p>Nettet florerer med nettsteder som bruker Facebook Connect enten som bare autentisering eller også med mer avansert FB-funksjonalitet, men <a href="http://posterous.com/">posterous</a> og den nye <a href="http://digg.com/tools/diggbar/">diggbar</a> er gode eksempler på en velykket integrasjon.</p>
<p><a href="http://posterous.com"><img class="size-full wp-image-662 alignleft" title="posterous" src="http://open.bekk.no/wp-content/uploads/2009/06/posterous.png" alt="posterous" width="368" height="219" /></a></p>
<p><a href="http://digg.com/open.bekk.no"><img class="size-full wp-image-661 alignleft" title="diggbar" src="http://open.bekk.no/wp-content/uploads/2009/06/diggbar.png" alt="diggbar" width="689" height="72" /></a></p>
<p style="text-align: left;">Som om ikke det var nok har FB blitt medlem av <a href="http://openid.net/">OpenID</a> Foundation og støtter OpenID-innlogging med kontoer fra bl.a. Google, Yahoo og Myopenid.</p>
<p style="text-align: left;">Se Facebooks <a href="http://wiki.developers.facebook.com/index.php/Authenticating_Users_with_Facebook_Connect">dokumentasjon</a> for flere detaljer</p>
<h2>Logg inn med Twitter, OAuth-Style</h2>
<p>Twitter er heller ikke dårligere enn at de har lansert sin egen delegerte login-løsning, Sign-in with Twitter.</p>
<p>I motsetning til Facebooks løsning som er proprietær, er dette helt standard <a href="http://oauth.net/">OAuth</a>.OAuth er i følge <a href="http://oauth.net/">oauth.net</a>:</p>
<blockquote><p>An open protocol to allow secure API authorization  in a simple and standard method from desktop and web applications.</p></blockquote>
<p>Måten man blir logget inn på er så og si identisk med den 4-stegsprosessen beskrevet i avsnittet om Facebook så jeg skal ikke repetere det, og i praksis kan man bruke dem på samme måte og i samme løsning.</p>
<p>Twitters løsning har nok alle de tusenvis av tredjeparts twitter-applikasjoner og -nettsider som finnes som hovedmålgruppe, og autentiseringen er en innebygget del av det åpne API&#8217;et som brukes ved utvikling av slike tredjeparts-tjenester. Eksemplene under på løsninger som bruker Twitter OAuth er også twitterrelaterte.</p>
<p><span style="text-decoration: line-through;"><strong>DestroyTwitter</strong></span></p>
<p><strong><span style="text-decoration: line-through;">twitpic</span></strong></p>
<p><strong>Edit:</strong></p>
<p>Jeg ble spurt om følgende av en kollega i et annet fora:</p>
<blockquote><p>&#8220;Bruker destroytwitter og twitpic egentlig oauth? Mulig jeg har misforstått, men jeg trodde hensikten var at en tredjepart ikke skulle motta passordet i det hele tatt.&#8221;</p></blockquote>
<p>Og svaret er: Nei dessverre ikke! Disse to tjenestene bruker ikke OAuth, de benytter seg bare av muligheten i Twitters API til å logge inn utenfra med brukernavn og passord.</p>
<p>Det er ikke så lett å finne &#8220;real life&#8221;-eksempler på nettløsninger som bruker Twitters OAuth slik den skal, men min favoritt microblog-tjeneste <a href="http://posterous.com/">posterous<br />
</a> har også denne innenfor beltet.</p>
<div id="attachment_838" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-838" title="Twitter OAuth" src="http://open.bekk.no/wp-content/uploads/2009/06/Twitter-OAuth-300x193.png" alt="posterous.com bruker ekte Twitter OAuth" width="300" height="193" /><p class="wp-caption-text">posterous.com bruker ekte Twitter OAuth</p></div>
<p style="text-align: left;">Min kollegas (berettigede) frykt for løsningene <a href="destroytwitter.com" target="_blank">DestoryTwitter</a> og <a href="twitpic.com" target="_blank">twitpic</a> bruker:</p>
<blockquote>
<p style="text-align: left;">&#8220;Jeg liker ikke å oppgi passordet for en tjenteste til andre tjenester. Da går man lett i phishing-fella.&#8221;</p>
</blockquote>
<p style="text-align: left;">Denne <a title="twitter-and-the-password-anti-pattern" href="http://factoryjoe.com/blog/2009/01/02/twitter-and-the-password-anti-pattern/" target="_blank">artikkelen</a> på blogen til Cris Messina forklarer på en meget god måte hvorfor det er en dårlig idé å bruke login-integrasjon hvor brukeren må oppgi brukernavn og passord til en tredjepart.</p>
<p style="text-align: left;">Twitters API har en egen <a href="http://apiwiki.twitter.com/">wiki</a> hvor det står mer om Twitter OAuth.</p>
<h2>Gjør det enklest mulig for brukeren</h2>
<p style="text-align: left;">Konklusjonen blir, enten man velger Facebook Conect, Twitter OAuth, OpenID eller alle tre, at en slik delegert login-løsning forbedrer brukeropplevelsen. Man synes det er lettvint og trygt å logge seg på via en kjent logo (f.eks. Facebook). Kanskje man til og med senker terskelen for å faktisk opprette en konto på nettop dette nettstedet og ta dets tjenester i bruk. Og det er jo nettopp det vi som utviklere ønsker og oppnå!</p>
<h3>Kilder og ressurser</h3>
<ul>
<li><a href="http://tvitre.no">tvitre.no</a></li>
<li><a href="http://checkfacebook.com">checkfacebook.com</a></li>
<li><a href="http://http://www.hueniverse.com/hueniverse/2009/04/twitter-connect.html">http://www.hueniverse.com/hueniverse/2009/04/twitter-connect.html</a></li>
<li><a href="http://wiki.developers.facebook.com/index.php/Authenticating_Users_with_Facebook_Connect">http://wiki.developers.facebook.com/index.php/Authenticating_Users_with_Facebook_Connect</a></li>
<li><a href="http://wiki.developers.facebook.com/index.php/Client_Libraries">http://wiki.developers.facebook.com/index.php/Client_Libraries</a></li>
<li><a href="http://posterous.com/">http://posterous.com</a></li>
<li><a href="http://digg.com/tools/diggbar/">http://digg.com/tools/diggbar/</a></li>
<li><a href="http://openid.net/">http://openid.net/</a></li>
<li><a href="http://oauth.net/">http://oauth.net/</a></li>
<li><a href="http://destroytwitter.com/">http://destroytwitter.com/</a></li>
<li><a href="http://twitpic.com">http://twitpic.com/</a></li>
<li><a href="http://apiwiki.twitter.com/">http://apiwiki.twitter.com/</a></li>
<li><a href="http://factoryjoe.com/blog/2009/01/02/twitter-and-the-password-anti-pattern/">http://factoryjoe.com/blog/2009/01/02/twitter-and-the-password-anti-pattern/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://open.bekk.no/2009/06/17/facebook-ogeller-twitter-som-login-modul/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introduksjon til Pinax — en plattform for å bygge sosiale nettsider</title>
		<link>http://open.bekk.no/2009/05/20/introduksjon-til-pinax-%e2%80%94-en-plattform-for-a-bygge-sosiale-nettsider/</link>
		<comments>http://open.bekk.no/2009/05/20/introduksjon-til-pinax-%e2%80%94-en-plattform-for-a-bygge-sosiale-nettsider/#comments</comments>
		<pubDate>Wed, 20 May 2009 09:08:53 +0000</pubDate>
		<dc:creator>Eivind Uggedal</dc:creator>
				<category><![CDATA[BEKK]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[installasjon]]></category>
		<category><![CDATA[oembed]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[pinax]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sosiale nettverk]]></category>
		<category><![CDATA[tagging]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://open.bekk.no/?p=34</guid>
		<description><![CDATA[Pinax er en samling av små applikasjoner som implementerer funksjonalitet som ofte er felles for sosiale nettsider. Pinax bygger på et prinsipp hvor man lager enkle løst koblede applikasjoner som håndterer et konsept på en god måte. Per i dag finnes det applikasjoner som støtter følgende funksjonalitet:

OpenID støtte for en samlet digital identitet
Epost kontroll (sjekke [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pinaxproject.com">Pinax</a> er en samling av små applikasjoner som implementerer funksjonalitet som ofte er felles for sosiale nettsider. Pinax bygger på et prinsipp hvor man lager enkle løst koblede applikasjoner som håndterer et konsept på en god måte. Per i dag finnes det applikasjoner som støtter følgende funksjonalitet:</p>
<ul class="simple">
<li><a href="http://openid.net">OpenID</a> støtte for en samlet digital identitet</li>
<li>Epost kontroll (sjekke at brukeren virkelig eier en gitt adresse)</li>
<li>Passord administrasjon</li>
<li>Globale utlysninger</li>
<li>Rammeverk for å sende beskjeder til brukere</li>
<li>Bruker-til-bruker meldinger</li>
<li>Invitasjon av venner (både eksternt og internt)</li>
<li>Twitter mikroblogg klon</li>
<li><a href="http://oembed.com">Oembed</a> støtte for å integrere objekter fra tredjeparts sider (Flickr bilder, Youtube videoer, presentasjoner fra 280slides, osv.)</li>
<li><a href="http://gravatar.com">Gravatar</a> støtte for globale avatarer bunnet til din epost adresse.</li>
<li>Interessegrupper (tribes)</li>
<li>Prosjekter med oppgaver og oppgavelister</li>
<li>Diskusjoner</li>
<li>Wiki</li>
<li>Blogging</li>
<li>Bokmerker</li>
<li>Tagging</li>
<li>Kontakt import fra vCard, Google eller Yahoo</li>
<li>Bildeadministrasjon</li>
<li>Geografisk plassering av brukere</li>
</ul>
<p>Når man bruker Pinax kan man derfor velge hvilke av disse applikasjonene man vil bruke basert på hva slags funksjonalitet man ønsker å eksponere sine brukere for. Med en slik sammensying av applikasjoner vil man forhåpentligvis ha et godt utgangspunkt for å kunne implementere de elementene som skiller ditt sosiale nettsted fra alle andre.</p>
<p>I denne artikkelen vil vi gi en installasjonsbeskrivelse av Pinax og en beskrivelse av hva dette produktet tilbyr &#8220;out of the box&#8221;. I senere artikler vil vi kunne beskrive hvordan man både tilpasser Pinax og utvider plattformen.</p>
<h3>Forutsetnginger</h3>
<p>Pinax og dens avhengigheter installeres enklest på en UNIX-basert plattform. Vi vil i denne introduksjonen fokusere på <a href="http://debian.org">Debian GNU/Linux</a>, men plattformspesifike inststruksjoner kan lett oversettes til andre Linux distribusjoner eller operativsystem  som <a href="http://ubuntu.com">Ubuntu</a>, <a href="http://fedora.org">Fedora</a>, <a href="http://freebsd.org">FreeBSD</a> eller <a href="http://apple.com/macosx">OS X</a>.</p>
<p>Man bør ikke være redd for kommandolinjen da mesteparten av installasjonsprosessen vil foregå her. I tillegg kan det være nyttig å kjenne til progammeringsspråket <a href="http://python.org">Python</a> samt rammeverket <a href="http://djangoproject.org">Django</a> som begge er brukt for å utvikle Pinax.</p>
<h3>Installasjon</h3>
<p>Pinax sin egen kode samt enkelte av dens avhengigheter finnes direkte i versjonskontrollsiloer. Man må derfor installere <a href="http://subversion.tigris.org/">Subversion</a> og <a href="http://git-scm.com">Git</a>:</p>
<p><code><br />
apt-get install git-core subversion<br />
</code></p>
<p>Pinax krever at man har Python installert samt en database for å kunne lagre innhold. <a href="http://sqlite.org">Sqlite</a> er enklest å bruke under uttesting:</p>
<p><code><br />
apt-get install python sqlite3</code></p>
<p>Deretter lager vi en folder (vi har kalt den <a href="http://http://www.online-dictionary.biz/latin/english/vocabulary/reference/pariter.asp">pariter</a>) hvor vi kan installere Pinax samt alle avhengigheter:</p>
<p><code><br />
mkdr pariter<br />
</code></p>
<p>Deretter laster vi ned og starter installasjonen av Pinax ved hjelp av at bootstrap script:</p>
<p>cd pariter<br />
<a class="linkification-ext" title="Linkification: http://svn.pinaxproject.com/pinax/trunk/scripts/pinax-boot.py" href="http://svn.pinaxproject.com/pinax/trunk/scripts/pinax-boot.py">http://svn.pinaxproject.com/pinax/trunk/scripts/pinax-boot.py</a></p>
<p><code><br />
python bootstrap.py pinax<br />
</code></p>
<p>Dette har gitt oss Pinax (uten spesifikke applikasjoner) samt Django. Disse har blitt installert i et virtuelt miljø. For å bruke Pinax må man derfor aktivere dette miljøet for hver sesjon:</p>
<p><code><br />
cd pinax</code><br />
<code> source bin/activate<br />
</code></p>
<p>Pinax bruker <a href="http://pip.openplans.org/">pip</a> som verktøy for å installere eksterne pakker utenom Pinax selv og Django.  Man bruker enkle tekstfiler som beskriver hvor disse avhengighetene finnes og eventuelt hvilke versjoner man vil bruke. Pinax kommer med en slik fil som er satt opp til å hente alle avhengigheter inklusive de ulike applikasjonene som bygger opp Pinax sin funksjonalitet. For å installere alle disse gjør man som følger:</p>
<p><code><br />
pip install -r src/pinax/requirements/external_apps.txt</code></p>
<p>Installasjonen av alle avhengighetene kan ta en del tid. Hvis man får feilmeldinger underveis (mest sannsynlig på grunn av nettverksproblemer) er det bare å starte prosessen igjen. Den eneste avhengigheten som ikke blir installert med pip er PIL (Python Imaging Library). Dette gjøres heldigvis enkelt i Debian med apt-get:</p>
<p><code><br />
apt-get install python-imaging<br />
</code></p>
<p>Pinax kommer med flere ferdiglagede prosjekter som setter sammen flere eller alle av Pinax sine applikasjoner. Man kan basert på disse prosjektene lage sine egne og velge akkurat hva slags funksjonalitet man velger å tilby.</p>
<p>Vi vil nå teste ut et fullstendig prosjekt som inkluderer alle applikasjonene til Pinax. Det kan være lurt å gjøre dette først for å danne seg et bilde av hva slags funksjonalitet Pinax kan tilby og dereter luke ut det man ikke har behov for. Dette fullstendige prosjektet finner man i Pinax sin kildekode som ble lastet ned i bootsrapp prosessen i begynnelsen av installasjonen:</p>
<p><code><br />
cd src/pinax/pinax/projects/complete_project<br />
</code></p>
<p>I denne folderen finner man manage.py, et script som håndterer det meste av interaksjonen med Pinax. Denne filen er standard for alle Django prosjekter. Siste steget vi må utføre før vi kan starte opp Pinax er å sette opp databasen med initiell data og tabellstrukturer:</p>
<p><code><br />
python manage.py syncdb<br />
</code></p>
<p>Man vi bli spurt om man vil opprette en superbruker for denne installasjonen av Django/Pinax. Skriv yes og følg instruksjonene for å gjøre dette.</p>
<p>Når databasen er ferdig satt opp er det bare å starte Pinax. Vi bruker en HTTP server som kommer med Django for å lett teste ut prosjektet vi nå har satt opp:</p>
<p><code><br />
python manage.py runserver</code></p>
<p>Serveren lytter nå på port 8000. Åpn opp din favoritt nettleser og gå til <a class="linkification-ext" title="Linkification: http://localhost:8000" href="http://localhost:8000">http://localhost:8000</a>. Under vil du finne utvalgte skjermskudd av en standard Pinax installasjon.</p>
<div id="attachment_83" class="wp-caption aligncenter" style="width: 632px"><img class="size-full wp-image-83" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintroopenid.png" alt="pinaxintroopenid" width="622" height="137" /><p class="wp-caption-text">Man kan logge på eller registrere både med tradisjonelt brukernavn og passord eller OpenID</p></div>
<div id="attachment_86" class="wp-caption aligncenter" style="width: 608px"><img class="size-full wp-image-86" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintrowelcome.png" alt="pinaxintrowelcome" width="598" height="429" /><p class="wp-caption-text">Etter registrering blir man tatt til en velkomstside som informerer deg om de neste stegene du kan ta for å involvere deg i siden</p></div>
<div id="attachment_88" class="wp-caption aligncenter" style="width: 767px"><img class="size-full wp-image-88" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintronavigation.png" alt="pinaxintronavigation" width="757" height="67" /><p class="wp-caption-text">Navigasjonen med alle applikasjoner installert har en tendens til å bli litt uryddig</p></div>
<div id="attachment_90" class="wp-caption aligncenter" style="width: 704px"><img class="size-full wp-image-90" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintronotices.png" alt="pinaxintronotices" width="694" height="381" /><p class="wp-caption-text">Man får beskjed om forskjellige hendelser som bruker av nettsiden og har også mulighet til å styre hva man vil bli påminnet om</p></div>
<div id="attachment_91" class="wp-caption aligncenter" style="width: 588px"><img class="size-full wp-image-91" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintrophotos.png" alt="pinaxintrophotos" width="578" height="417" /><p class="wp-caption-text">Man kan laste opp bilder samt gi de tagger og kommentarer</p></div>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 537px"><img class="size-full wp-image-92" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintrotweets.png" alt="pinaxintrotweets" width="527" height="356" /><p class="wp-caption-text">En liten Twitter klon har også fått plass i standardapplikasjonene</p></div>
<div id="attachment_93" class="wp-caption aligncenter" style="width: 588px"><img class="size-full wp-image-93" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintrogeotagging.png" alt="pinaxintrogeotagging" width="578" height="188" /><p class="wp-caption-text">Man har mulighet for å indentifisere hvor man befinner seg geografisk ved hjelp av søk og kart</p></div>
<div id="attachment_94" class="wp-caption aligncenter" style="width: 655px"><img class="size-full wp-image-94" src="http://open.bekk.no/wp-content/uploads/2009/03/pinaxintroi18n.png" alt="pinaxintroi18n" width="645" height="185" /><p class="wp-caption-text">Pinax er i varierende grad oversatt til en håndfull språk</p></div>
<p style="text-align: center;"><img alt="" /><br />
<img alt="" /><br />
<img alt="" /><br />
<img alt="" /><br />
<img alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://open.bekk.no/2009/05/20/introduksjon-til-pinax-%e2%80%94-en-plattform-for-a-bygge-sosiale-nettsider/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
