<?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>Andreas Karlsson</title>
	<atom:link href="http://andreask.se/feed/" rel="self" type="application/rss+xml" />
	<link>http://andreask.se</link>
	<description>Om webbutveckling</description>
	<lastBuildDate>Sun, 29 May 2011 10:12:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>4-7 juni 2011: Magento Developers Paradise på Ibiza</title>
		<link>http://andreask.se/4-7-juni-2011-magento-developers-paradise-pa-ibiza/</link>
		<comments>http://andreask.se/4-7-juni-2011-magento-developers-paradise-pa-ibiza/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 21:37:29 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[e-handel]]></category>
		<category><![CDATA[evenemang]]></category>
		<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://andreask.se/?p=1235</guid>
		<description><![CDATA[Några dagar efter att jag började på Improove försvann en av mina nya kollegor till Mallorca på ett Magento-evenemang som gick under namnet Magento Developers Paradise. Det han hade berätta när han kom tillbaka till kontoret några dagar senare gör att det nu känns högaktuellt att ta sig iväg till Ibiza 4-7 juni när nästa [...]]]></description>
			<content:encoded><![CDATA[<p>Några dagar efter att jag började på <a href="http://www.improove.se">Improove</a> försvann <a href="http://www.improove.se/medarbetare/maroun-sleiman/">en av mina nya kollegor</a> till Mallorca på ett <a href="http://www.magentocommerce.com/">Magento</a>-evenemang som gick under namnet <a href="http://www.magento-developers-paradise.com/">Magento Developers Paradise</a>. Det han hade berätta när han kom tillbaka till kontoret några dagar senare gör att det nu känns högaktuellt att ta sig iväg till Ibiza 4-7 juni när nästa <a href="http://www.magento-developers-paradise.com/">Magento Developers Paradise</a> går av stapeln igen. Saxat från hemsidan:</p>
<blockquote><p>&#8221;&#8230; learn and exchange ideas about Magento development, working with the Magento code base, creating extensions and sneak peaks into what the future holds. Join together with your peers, partners and Magento team members to learn the tips, tricks and techniques that have helped them succeed. Get insights into future versions of the Magento platform and get a head start on leveraging Magento for your success. Present your own ideas during our BarCamp and get instant feedback from your peers. Team up with other developers and develop new ideas together.&#8221;</p></blockquote>
<p>Evenemanget kostar €550 fram till 10 april, därefter kostar det €750. I priset ingår det dessutom boende och mat. Flygresa tur och retur från Stockholm går att hitta från cirka 3000 kr just nu.</p>
<p>Jag ska dit, på ett eller annat sätt.</p>
<p><strong>Uppdatering:</strong> jag kommer åka dit för jobbets räkning och rapportera på <a href="http://www.improove.se/blogg/">Improoves blogg</a>.</p>
<p><iframe title="YouTube video player" width="528" height="327" src="http://www.youtube.com/embed/Hq7dn-P93Fs" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/4-7-juni-2011-magento-developers-paradise-pa-ibiza/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>passwd.it &#8211; en minimalistisk lösenordsgenerator</title>
		<link>http://andreask.se/passwd-it-en-minimalistisk-losenordsgenerator/</link>
		<comments>http://andreask.se/passwd-it-en-minimalistisk-losenordsgenerator/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 19:36:17 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[passwd.it]]></category>

		<guid isPermaLink="false">http://andreask.se/?p=1186</guid>
		<description><![CDATA[Jag har länge funderat på att bygga en enkel lösenordsgenerator med samma minimalistiska grepp som ex. vecka.nu och mittip.se. Idag tog jag tag i saken, registrerade domänen passwd.it och byggde den första versionen av sajten. Just nu går det att styra längden med hjälp av GET-variabeln length: http://passwd.it/?length=7. Om man skulle vilja ha flera lösenord [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://passwd.it"><img class="size-medium wp-image-1200 alignleft" title="passwd.it" src="http://uploads.andreask.se/2011/03/passwdit-200x300.jpg" alt="" width="200" height="300" /></a> Jag har länge funderat på att bygga en enkel lösenordsgenerator med samma minimalistiska grepp som ex. <a href="http://vecka.nu">vecka.nu</a> och <a href="http://mittip.se">mittip.se</a>. Idag tog jag tag i saken, registrerade domänen <a href="http://passwd.it">passwd.it</a> och byggde den första versionen av sajten.</p>
<p>Just nu går det att styra längden med hjälp av GET-variabeln <code>length</code>: <a href="http://passwd.it/?length=7">http://passwd.it/?length=7</a>. Om man skulle vilja ha flera lösenord genererade så kan man få det i JSON-format genom att använda GET-variabelerna <code>count</code> och <code>json</code>: <a href="http://passwd.it/?json=1&amp;length=21&amp;count=10">http://passwd.it/?json=1&amp;length=21&amp;count=10</a>.</p>
<p>Vilka funktioner skulle ni vilja se?</p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/passwd-it-en-minimalistisk-losenordsgenerator/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>URL-förkortare för Systembolagets varor</title>
		<link>http://andreask.se/url-forkortare-for-systembolagets-varor/</link>
		<comments>http://andreask.se/url-forkortare-for-systembolagets-varor/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 19:37:27 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>

		<guid isPermaLink="false">http://andreask.se/?p=1172</guid>
		<description><![CDATA[Sitter med en Liberty Ale och ser Niklas Jakobsen twittra om en URL-förkortare för Systembolagets varor som han byggt. Triggad av Systembolagets fula länkar kodade han ihop systmt.se på ett par timmar. Jämför följande länkar: http://systmt.se/1593 http://systembolaget.se/SokDrycker/Produkt?VaruNr=1593 Lysande i all sin enkelhet.]]></description>
			<content:encoded><![CDATA[<p>Sitter med en <a href="http://systmt.se/1593">Liberty Ale</a> och ser <a href="http://niklasjakobsen.se/">Niklas Jakobsen</a> <a href="https://twitter.com/nij/status/38657048484921344">twittra</a> om en <a href="http://systmt.se/">URL-förkortare för Systembolagets varor</a> som han byggt. Triggad av <a href="http://systembolaget.se/">Systembolagets</a> fula länkar kodade han ihop <a href="http://systmt.se/">systmt.se</a> på ett par timmar. Jämför följande länkar: </p>
<ul>
<li><a href="http://systmt.se/1593">http://systmt.se/1593</a></li>
<li><a href="http://systembolaget.se/SokDrycker/Produkt?VaruNr=1593">http://systembolaget.se/SokDrycker/Produkt?VaruNr=1593</a></li>
</ul>
<p>Lysande i all sin enkelhet.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/url-forkortare-for-systembolagets-varor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress blir större</title>
		<link>http://andreask.se/wordpress-blir-storre/</link>
		<comments>http://andreask.se/wordpress-blir-storre/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 09:26:29 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[Google Chart Tools]]></category>
		<category><![CDATA[Memcached]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://andreask.se/?p=1150</guid>
		<description><![CDATA[För ett par helger sedan började jag fundera på hur WordPress storlek på disk har förändrats från de första versionerna fram till idag. Det ledde till att jag registrerade domänen wpsize.com och byggde en enkel visualisering av storleksutvecklingen. Inte så mycket för den stora nyttan som för att det helt enkelt gick. Sidan håller ett [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1155" class="wp-caption alignleft" style="width: 310px"><a rel="attachment wp-att-1155" href="http://andreask.se/wordpress-blir-storre/wpsize/"><img class="size-medium wp-image-1155  " title="WordPress Size" src="http://uploads.andreask.se/2011/02/wpsize-300x300.png" alt="" width="300" height="300" /></a><p class="wp-caption-text">WordPress storleksutveckling på wpsize.com</p></div>
<p>För ett par helger sedan började jag fundera på hur <a href="http://wordpress.org">WordPress</a> storlek på disk har förändrats från de första versionerna fram till idag. Det ledde till att jag registrerade domänen <a href="http://wpsize.com">wpsize.com</a> och byggde en enkel visualisering av storleksutvecklingen. Inte så mycket för den stora nyttan som <a href="http://www.improove.se/2011/01/22/wpsize-com-ett-hobbyprojekt-fran-improove-folket/">för att det helt enkelt gick</a>.</p>
<p>Sidan håller ett vakande öga på <a href="http://svn.automattic.com/wordpress/tags/">alla tags i WordPress SVN-repository</a> och uppdaterar sig själv när så behövs. Detta sker genom ett par schemalagda skript som förbereder all data som sedan formateras och cachas med <a href="http://memcached.org/">Memcached</a>.</p>
<p>Innan WordPress 1.5 använde man inte SVN, så de första versionerna (som jag kunde hitta) har jag fått lägga till manuellt. Detsamma gäller för Spotify-länkarna till de <a href="http://www.bloggingpro.com/archives/2010/10/06/wordpress-by-jazz-legends-an-infographic-about-the-wp-history/">jazzartisterna som versionerna har namngetts efter</a>.</p>
<p>Grafen på sajten ritas ut med <a href="http://code.google.com/intl/sv-SE/apis/visualization/documentation/gallery/linechart.html">Google Chart Tools</a> och matas med innehåll från tabellen med hjälp av <a href="http://www.prototypejs.org/">Prototype</a>.</p>
<p>Jag tar tacksamt emot idéer och förslag på förbättringar för wpsize.com, lämna en kommentar till inlägget eller <a href="http://twitter.com/andk">kontakta mig på Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/wordpress-blir-storre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery eller Prototype från Google Libraries API</title>
		<link>http://andreask.se/jquery-eller-prototype-fran-google-libraries-api/</link>
		<comments>http://andreask.se/jquery-eller-prototype-fran-google-libraries-api/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 12:00:55 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[Google Libraries API]]></category>
		<category><![CDATA[HTML5 Boilerplate]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://andreask.se/?p=1104</guid>
		<description><![CDATA[Bland annat HTML5 Boilerplate använder sig av ett snyggt sätt att ladda in jQuery, där man primärt försöker ladda biblioteket från Google Libraries API. Men skulle det av någon anledning inte fungera så laddas istället en lokal kopia av biblioteket: &#60;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"&#62;&#60;/script&#62; &#60;script&#62;!window.jQuery &#38;&#38; document.write(unescape('%3Cscript src="js/libs/jquery-1.4.4.js"%3E%3C/script%3E'))&#60;/script&#62; För att ladda Prototype på samma sätt: &#60;script src="http://ajax.googleapis.com/ajax/libs/prototype/1.7/prototype.js"&#62;&#60;/script&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Bland annat <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a> använder sig av ett snyggt sätt att ladda in <a href="http://jquery.com">jQuery</a>, där man primärt försöker ladda biblioteket från <a href="http://code.google.com/apis/libraries">Google Libraries API</a>. Men skulle det av någon anledning inte fungera så laddas istället en lokal kopia av biblioteket:</p>
<pre class="highlight javascript"><code>&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"&gt;&lt;/script&gt;
&lt;script&gt;!window.jQuery &amp;&amp; document.write(unescape('%3Cscript src="js/libs/jquery-1.4.4.js"%3E%3C/script%3E'))&lt;/script&gt;</code></pre>
<p>För att ladda <a href="http://prototypejs.org/">Prototype</a> på samma sätt:</p>
<pre class="highlight javascript"><code>&lt;script src="http://ajax.googleapis.com/ajax/libs/prototype/1.7/prototype.js"&gt;&lt;/script&gt;
&lt;script&gt;!window.Prototype &amp;&amp; document.write(unescape('%3Cscript src="js/libs/prototype.js"%3E%3C/script%3E'))&lt;/script&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/jquery-eller-prototype-fran-google-libraries-api/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ett bra verktyg för regular expressions</title>
		<link>http://andreask.se/regular-expressions/</link>
		<comments>http://andreask.se/regular-expressions/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 19:31:52 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[RegExr]]></category>
		<category><![CDATA[reguljära uttryck]]></category>

		<guid isPermaLink="false">http://andreask.se/?p=1090</guid>
		<description><![CDATA[Jag hör till skaran som älskar reguljära uttryck, eller på engelska regular expressions, men har lite svårt att få grepp om dem och blir därför nästintill förvånad när de väl fungerar och gör det jag vill. Via Twitter hittade jag i veckan artikeln Regular Expressions for Dummies: Screencast Series av Jeffrey Way. NetTuts+-artikeln innehåller fem [...]]]></description>
			<content:encoded><![CDATA[<p>Jag hör till skaran som älskar <a href="http://sv.wikipedia.org/wiki/Regulj%C3%A4ra_uttryck">reguljära uttryck</a>, eller på engelska <strong>regular expressions</strong>, men har lite svårt att få grepp om dem och blir därför nästintill förvånad när de väl fungerar och gör det jag vill. <a href="http://twitter.com/tutsplus/status/5987709401">Via Twitter</a> hittade jag i veckan artikeln <em><a href="http://net.tutsplus.com/videos/screencasts/regular-expressions-for-dummies-screencast-series/">Regular Expressions for Dummies: Screencast Series</a></em> av <a href="http://jeffrey-way.com/">Jeffrey Way</a>. <a href="http://net.tutsplus.com/">NetTuts+</a>-artikeln innehåller fem screencasts som går igenom, ja &#8211; vad vet jag&#8230; För när jag ögnade artikeln hade jag ganska snart tappat intresset för den och istället letat reda på det verktyg som används i åtminstone den första av filmerna.</p>
<div id="attachment_1098" class="wp-caption aligncenter" style="width: 310px"><a href="http://andreask.se/regular-expressions/regexr/" rel="attachment wp-att-1098"><img src="http://uploads.andreask.se/2009/11/regexr-300x217.png" alt="" title="RegExr underlättar arbetet med reguljära uttryck" width="300" height="217" class="size-medium wp-image-1098" /></a><p class="wp-caption-text">RegExr</p></div>
<p>Verktyget heter <a href="http://www.gskinner.com/blog/archives/2008/03/regexr_free_onl.html">RegExr</a> och är utvecklat av <a href="http://gskinner.com">GSkinner</a>. Det är helt gratis och finns både i <a href="http://gskinner.com/RegExr/">en webbaserad version</a> och <a href="http://www.gskinner.com/RegExr/desktop/">en <span style="text-decoration: line-through;">vanlig</span> som du laddar ner, installerar och kör från din egen dator</a> (byggt på <a href="http://www.adobe.com/se/products/air/">Adobe Air</a> och fungerar på OS X/Windows/Linux). Med hjälp av RegExr kan man snabbt och enkelt skriva, redigera och laserslipa sina reguljära uttryck och direkt se konsekvenserna av det man gör. Learning by doing at it&#8217;s best.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/regular-expressions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Snyggare länkar för dina användare</title>
		<link>http://andreask.se/snyggare-lankar-for-dina-anvandare/</link>
		<comments>http://andreask.se/snyggare-lankar-for-dina-anvandare/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 18:28:25 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[Dagens jazz]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.andreask.se/?p=1077</guid>
		<description><![CDATA[Jag har just installerat tilläggen Author Slug och Author Slug Field på WordPress-installationen för Dagens jazz. Varför? För att få snyggare permalänkar för användarsidorna. Author Slug låter dig ställa in http://example.com/author/author-name/ till att bli t.ex. http://example.com/medarbetare/author-name/. Det är en funktion jag kan tycka borde finnas med som standard i WordPress; det vore ett snyggt komplement [...]]]></description>
			<content:encoded><![CDATA[<p>Jag har just installerat tilläggen <a href="http://www.microkid.net/wordpress/author-slug/">Author Slug</a> och <a href="http://wordpress.org/extend/plugins/author-slug-field/">Author Slug Field </a>på WordPress-installationen för <a href="http://dagensjazz.se">Dagens jazz</a>. Varför? För att få snyggare permalänkar för användarsidorna.</p>
<p><strong>Author Slug</strong> låter dig ställa in <code>http://example.com/<strong>author</strong>/author-name/</code> till att bli t.ex. <code>http://example.com/<strong>medarbetare</strong>/author-name/</code>. Det är en funktion jag kan tycka borde finnas med som standard i WordPress; det vore ett snyggt komplement under Inställningar &#x2192; Permalänkar där man sedan tidigare kan ställa in egna värden för kategoribas och etikettbas.</p>
<p><strong>Author Slug Field</strong> lägger till ett fält under Användare &#x2192; Din profil där man får ställa in den sista delen av permalänken. <code>http://example.com/author/<strong>admin</strong>/</code> kan nu ställas in till att exepmelvis bli <code>http://example.com/author/<strong>fornamn-efternamn</strong>/</code>.</p>
<p>Se exempel på Dagens jazz: <a href="http://dagensjazz.se/medarbetare/jimmy-asklund/">http://dagensjazz.se/medarbetare/jimmy-asklund/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/snyggare-lankar-for-dina-anvandare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sätt upp en lokal utvecklingsmiljö i Leopard &#8211; steg för steg</title>
		<link>http://andreask.se/satt-upp-en-lokal-utvecklingsmiljo-i-leopard-steg-for-steg/</link>
		<comments>http://andreask.se/satt-upp-en-lokal-utvecklingsmiljo-i-leopard-steg-for-steg/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 12:13:14 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.andreask.se/?p=878</guid>
		<description><![CDATA[Sedan en tid tillbaka har jag jobbat väldigt mycket tillsammans med Dabber, en trevlig webbyrå med fokus på video. Just nu jobbar vi med ett väldigt stort projekt där jag har ansvar för utvecklingen och att saker blir klara i tid. Till min stora glädje låg det även på min lott att plocka in en [...]]]></description>
			<content:encoded><![CDATA[<p><span class="anfang">S</span><span class="caps">edan en tid tillbaka</span> har jag jobbat väldigt mycket tillsammans med <a href="http://dabber.tv">Dabber</a>, en trevlig webbyrå med fokus på video. Just nu jobbar vi med ett väldigt stort projekt där jag har ansvar för utvecklingen och att saker blir klara i tid. Till min stora glädje låg det även på min lott att plocka in en extern förmåga att hjälpa mig i utvecklingen. Så tidigare i veckan träffades jag och <a href="http://ptz0n.se">Erik Pettersson</a>, som är &#8211; förutom en klippa på webb &#8211; en god vän, för att planera upp sommaren och projektet.</p>
<p>Det första steget blev givetvis att se över våra lokala utvecklingsmiljöer. I Leopard. Det som har skapat frustration och ominstallationer för mig under en lång tid. Men tack vare att <a href="http://qvister.se">Anton Lindqvist</a> tipsade mig om hur han använt sig av <a href="http://www.macports.org/"><strong>MacPorts</strong></a> och hur han fått det att fungera bra så blev det inte fullt så krångligt som tidigare försök. Särskilt inte med tanke på att jag upptäckte hur man lätt avinstallerar <strong>allt</strong> man installerar med MacPorts. Efter ett par tre försök rullade allt på min ena dator, och med allt menar jag:</p>
<ul>
<li>Python</li>
<li>MySQL</li>
<li>Apache</li>
<li>Subversion</li>
<li>Django</li>
<li>PHP</li>
</ul>
<p>Fortsätt läsa så går jag igenom steg för steg hur jag gjorde. Om jag gjort fel någonstans, är otydlig, om det inte fungerar eller om det för den delen fungerar &#8211; <strong>lämna gärna en kommentar och hjälp mig på så sätt att förbättra det här inlägget</strong>.</p>
<p><strong>Observera:</strong> vid ett par tillfällen i inlägget när vi ska redigera filer förekommer kommandot <code><a href="http://manual.macromates.com/en/using_textmate_from_terminal.html">mate</a></code>, det kräver att du har <a href="http://macromates.com/">Textmate</a> installerat. Har du inte det kan du lika gärna använda dig av till exempel <a href="http://www.ss64.com/osx/pico.html"><code>pico</code></a> eller <a href="http://www.ss64.com/bash/vi.html"><code>vi</code></a>.</p>
<h2>Installera MacPorts</h2>
<p>Först av allt, se till att ha <a href="http://developer.apple.com/tools/xcode/"><strong>Xcode</strong></a> installerat, det krävs av MacPorts. Installera sedan MacPorts enligt <a href="http://www.macports.org/install.php">anvisningarna på deras hemsida</a>. När installationen är klar, öppna upp ett nytt Terminal-fönster för att vara säker på att <a href="http://guide.macports.org/#using.port">kommandot <code>port</code></a> har laddats in.</p>
<p>Det kan vara bra att notera att det vi installerar med hjälp av <code>port</code> hamnar som standard i <code>/opt/local/</code>, <a href="http://guide.macports.org/#internals.hierarchy">läs mer om det på deras hemsida</a>.</p>
<h2>Installera Python</h2>
<p>Leopard skeppas med Python 2.5, men för enkelhetens skull installerar vi Python på egen hand för att ha allt samlat på ett ställe och ha full koll på hela utvecklingsmiljön. Jag har valt att använda mig av <strong>Python 2.6</strong> här, men det ska gå lika bra med någon annan version. Man kan även installera flera Python-versioner och sedan enkelt växla mellan dem, till exempel med <strong>python_select</strong> som vi strax kommer att installera.</p>
<pre><code>$ sudo port install python26
$ sudo port install python_select</code></pre>
<p>Sätt Python-versionen som vi nyss installerade till standard med hjälp av <code>python_select</code> och kontrollera att det är korrekt Python-version som körs:</p>
<pre><code>$ sudo python_select python26
Selecting version "python26" for python
$ which python
/opt/local/bin/python</code></pre>
<h2>Installera MySQL</h2>
<pre><code>$ sudo port install mysql5-server</code></pre>
<p>För att MySQL ska startas automatiskt vid uppstart:</p>
<pre><code>$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5-server.plist</code></pre>
<p>Ta reda på var din server socket ligger och skapa följande symboliska länkar så att PHP och Pyhton fungerar med MySQL:</p>
<pre><code>$ mysql_config5 --socket
<strong>/opt/local/var/run/mysql5/mysqld.sock</strong>
$ sudo ln -s <strong>/opt/local/var/run/mysql5/mysqld.sock</strong> /tmp/mysql.sock
$ sudo mkdir /var/mysql
$ sudo ln -s <strong>/opt/local/var/run/mysql5/mysqld.sock</strong> /var/mysql/mysql.sock</code></pre>
<p>Slå av MySQL, skapa rotanvändare (root) och standarddatabasen och slå sedan på MySQL igen:</p>
<pre><code>$ sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5-server.plist
$ sudo /opt/local/lib/mysql5/bin/mysql_install_db --user=mysql
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5-server.plist</code></pre>
<p>Sätt ett lösenord för root:</p>
<pre><code>$ mysql5 -u root

mysql&gt; UPDATE mysql.user SET Password = PASSWORD('<strong>password</strong>') WHERE User = 'root';
mysql&gt; FLUSH PRIVILEGES;
mysql&gt; quit</code></pre>
<p>För att kontrollera att allt har gått bra, prova att logga in som root med det nya lösenordet:</p>
<pre><code>$ mysql5 -u root -p</code></pre>
<h3>Installera MySQL for Python</h3>
<p>För att MySQL och Python ska fungera tillsammans behöver vi installera följande koppling:</p>
<pre><code>$ sudo port install py26-mysql</code></pre>
<h2>Installera Apache</h2>
<p>Börja med att <strong>kontrollera att <em>Webbdelning</em> under <em>Systeminställningar » Delning</em> är inaktiverat</strong>. Annars riskerar vi konflikter mellan Leopards inbyggda <a href="http://httpd.apache.org/"><strong>Apache</strong></a> och vår installation. Sedan kan vi påbörja installationen:</p>
<pre><code>$ sudo port install apache2</code></pre>
<p>För att Apache ska startas automatiskt vid uppstart:</p>
<pre><code>$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist</code></pre>
<p>Genom att lägga till ett <a href="http://en.wikipedia.org/wiki/Unalias">alias</a> för <code>sudo /opt/local/apache2/bin/<a href="http://httpd.apache.org/docs/2.0/programs/apachectl.html">apachectl</a></code> kan vi underlätta hanteringen av Apache. Öppna <code>~/.profile</code>:</p>
<pre><code>$ mate ~/.profile</code></pre>
<p>Lägg till följande rad:</p>
<pre><code>alias apache2ctl='sudo /opt/local/apache2/bin/apachectl'</code></pre>
<p>När vi laddar om profilen ska vårt nyskapade alias börja fungera:</p>
<pre><code>$ source ~/.profile</code></pre>
<p>Efter omladdningen kan vi testa detta genom att exempelvis starta om Apache med:</p>
<pre><code>$ apache2ctl graceful</code></pre>
<h3>Installera mod_python</h3>
<p><a href="http://www.modpython.org/"><strong>mod_python</strong></a> är en Apache-modul som integrerar Python i servern. Installera den med:</p>
<pre><code>$ sudo port install mod_python26</code></pre>
<p>Innan modulen fungerar måste vi säga åt Apache att ladda in den, vilket vi gör senare i det här inlägget.</p>
<h2>Har du Subversion installerat?</h2>
<p><strong><a href="http://subversion.tigris.org/">Subversion</a></strong> finns som standard i Leopard, men för att dubbelkolla att vi har det installerat kör vi:</p>
<pre><code>$ svn --version</code></pre>
<p>Skulle du inte ha det kan du enkelt installera det med:</p>
<pre><code>$ sudo port install subversion</code></pre>
<h2>Installera Django</h2>
<p>Det finns <a href="http://docs.djangoproject.com/en/dev/intro/install/#s-install-django">flera sätt att installera <strong>Django</strong> på</a>, här kommer vi att använda oss av Subversion och kommandot <code>svn</code>.</p>
<p>Vi hämtar hem den absolut senaste (<em>trunk</em>) samt den senast stabila versionen till en lämplig mapp med hjälp av <code>svn</code>:</p>
<pre><code>mkdir ~/svn
svn co http://code.djangoproject.com/svn/django/trunk/ ~/svn/django_trunk
svn co http://code.djangoproject.com/svn/django/tags/releases/1.0.2/ ~/svn/django-1.0.2</code></pre>
<p>Sedan tar vi reda på var <code>site-packages</code> ligger:</p>
<pre><code>$ python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
<strong>/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages</strong></code></pre>
<p>Nu när vi vet det kan vi skapa en symbolisk där till den Django-version du vill använda dig av:</p>
<pre><code>$ sudo ln -s ~/svn/django_trunk/django <strong>/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django</strong></code></pre>
<p>Det sista steget vi gör för Django är att skapa ytterligare en symbolisk länk för kommandot <code>django-admin.py</code> så att vi lätt kan använda kommandot oavsett vilken mapp vi befinner oss i:</p>
<pre><code>$ sudo ln -s ~/svn/django_trunk/django/bin/django-admin.py /opt/local/bin/django-admin.py</code></pre>
<h2>Installera PHP</h2>
<pre><code>$ sudo port install php5 +apache2 +fastcgi +imap +tidy +mysql5 +sqlite +pear +readline +sockets +t1lib</code></pre>
<p>Innan PHP rullar som det ska med servern måste vi bland annat säga åt servern att ladda Apache-modulen för PHP, vilket är en av de sakerna vi ska göra härnäst&#8230;</p>
<h2>Konfigurera Apache genom httpd.conf</h2>
<pre><code>$ mate /opt/local/apache2/conf/httpd.conf</code></pre>
<p>Lägg till följande två rader i listan över moduler som Apache ska ladda, det är modulen för mod_python och för PHP:</p>
<pre><code><a href="http://httpd.apache.org/docs/2.2/mod/mod_so.html#loadmodule">LoadModule</a> python_module modules/mod_python.so
LoadModule php5_module modules/libphp5.so</code></pre>
<p>Leta reda på raden</p>
<pre><code>#<a href="http://httpd.apache.org/docs/2.2/mod/core.html#servername">ServerName</a> www.example.com:80</code></pre>
<p>avkommenterad den och ändra den till</p>
<pre><code>ServerName 127.0.0.1:80</code></pre>
<p>Som standard pekar din server mot <code>/opt/local/apache2/htdocs</code>, personligen föredrar jag att använda mappen <code>Sites</code> (översatt till <em>Webbsidor</em> i Leopards grafiska gränssnitt), därför ändrar vi följande rad</p>
<pre><code><a href="http://httpd.apache.org/docs/2.2/mod/core.html#documentroot">DocumentRoot</a> "/opt/local/apache2/htdocs"</code></pre>
<p>och pekar istället <code>DocumentRoot</code> mot <code>Sites</code>:</p>
<pre><code>DocumentRoot "/Users/<strong>username</strong>/Sites"</code></pre>
<p>Vi ändrar även raden</p>
<pre><code>&lt;<a href="http://httpd.apache.org/docs/2.2/mod/core.html#directory">Directory</a> "/opt/local/apache2/htdocs"&gt;</code></pre>
<p>till att peka på samma mapp:</p>
<pre><code>&lt;Directory "/Users/<strong>username</strong>/Sites"&gt;</code></pre>
<p>I det blocket sätter vi även</p>
<pre><code><a href="http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride">AllowOverride</a> None</code></pre>
<p>till</p>
<pre><code>AllowOverride All</code></pre>
<p>Som standard tittar vår server först och främst efter index.html när vi inte anger en specifik fil i vår sökväg. Där vill vi att Apache även ska titta efter index.php, sök reda på raden</p>
<pre><code><a href="http://httpd.apache.org/docs/2.2/mod/mod_dir.html#directoryindex">DirectoryIndex</a> index.html</code></pre>
<p>och lägg till index.php:</p>
<pre><code>DirectoryIndex index.php index.html</code></pre>
<p>I blocket <code>&lt;IfModule <a href="http://httpd.apache.org/docs/2.2/mod/mod_mime.html">mime_module</a>&gt;</code> ska vi även lägga till följande rader för att servern ska tolka våra PHP-filer korrekt:</p>
<pre><code><a href="http://httpd.apache.org/docs/2.2/mod/mod_mime.html#addtype">AddType</a> application/x-httpd-php .php
AddType application/x-httpd-php-source .phps</code></pre>
<p>Starta sedan om servern för att ändringarna ska börja gälla:</p>
<pre><code>$ apache2ctl graceful</code></pre>
<h2>Fortsatt läsning</h2>
<ul>
<li><a href="http://mark-kirby.co.uk/2008/setting-up-virtual-hosts-on-os-x-leopard/">Setting up virtual hosts on OS X Leopard</a></li>
<li><a href="http://docs.djangoproject.com/en/dev/howto/deployment/modpython/#howto-deployment-modpython">How to use Django with Apache and mod_python</a></li>
<li><a href="http://svnbook.red-bean.com/">Version Control with Subversion</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/satt-upp-en-lokal-utvecklingsmiljo-i-leopard-steg-for-steg/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>MacPorts &#8211; uninstall installed</title>
		<link>http://andreask.se/macports-uninstall-installed/</link>
		<comments>http://andreask.se/macports-uninstall-installed/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 21:51:17 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.andreask.se/?p=865</guid>
		<description><![CDATA[Ett djupt andetag, det är dags. Ibland är det läge att börja om helt från scratch; sudo port -f uninstall installed. Hur kommer det sig att det blev så mycket krångligare att få till en bra lokal utvecklingsmiljö under OS X i och med Leopard? Frustration, det kan inte vara för mycket begärt. Nu gör [...]]]></description>
			<content:encoded><![CDATA[<p><span class="anfang">E</span><span class="caps">tt djupt andetag</span>, det är dags. Ibland är det läge att börja om helt från scratch; <code>sudo port -f uninstall installed</code>. Hur kommer det sig att det blev så mycket krångligare att få till en bra lokal utvecklingsmiljö under OS X i och med Leopard? Frustration, det kan inte vara för mycket begärt. Nu gör vi ett nytt försök!</p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/macports-uninstall-installed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Thematic och sökrobotar</title>
		<link>http://andreask.se/thematic-och-sokrobotar/</link>
		<comments>http://andreask.se/thematic-och-sokrobotar/#comments</comments>
		<pubDate>Mon, 18 May 2009 21:33:50 +0000</pubDate>
		<dc:creator>Andreas Karlsson</dc:creator>
				<category><![CDATA[Webb]]></category>
		<category><![CDATA[sökmotoroptimering]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.andreask.se/?p=850</guid>
		<description><![CDATA[Nikke Lindqvists varning för WordPress-temat Thematic uppmärksammades bland annat av Computer Sweden och Tord Daniel Hedengren. Efter att ha träffat Nikke i helgen i samband med WP-Girls och återigen läst varningen bestämde jag mig för att ta en närmare titt på det. Nikke skriver i sitt blogginlägg: Magnus hade upptäckt att min kategorisida Sökmotoroptimering helt [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_861" class="wp-caption aligncenter" style="width: 310px"><a href="http://themeshaper.com/thematic/"><img class="size-full wp-image-861" title="Thematic" src="http://uploads.andreask.se/2009/05/screenshot.png" alt="Thematic" width="300" height="225" /></a><p class="wp-caption-text">Thematic</p></div>
<p><a href="http://www.lindqvist.com/b/varning-for-thematic"><span class="anfang">N</span><span class="caps">ikke Lindqvists varning för</span> WordPress-temat Thematic</a> uppmärksammades bland annat av <a href="http://www.idg.se/2.1085/1.224652/programmen-som-sanker-din-blogg">Computer Sweden</a> och <a href="http://tdh.se/2009/nikke-varnar-for-thematic/">Tord Daniel Hedengren</a>. Efter att ha träffat Nikke i helgen i samband med <a href="http://wpgirls.se/2009/04/nikke-kommer-och-delar-med-sig-av-sin-kunskap/">WP-Girls</a> och återigen läst varningen bestämde jag mig för att ta en närmare titt på det. Nikke skriver i sitt blogginlägg:</p>
<blockquote><p>Magnus hade upptäckt att min kategorisida <a href="http://www.lindqvist.com/b/om/sokmotoroptimering">Sökmotoroptimering</a> helt hade försvunnit från Google. Den syntes faktiskt inte över huvud taget på de 1000 första sökträffarna i Google. En stillsam panik utbröt förstås på Fleminggatan och jag började vilt leta anledningar.</p></blockquote>
<p>Vidare skriver han:</p>
<blockquote><p>Det visade sig dock att Thematic innehåller i högsta grad oönskad funktionalitet som innebär att man säger åt sökrobotar att inte indexera kategorisidor.</p></blockquote>
<p>I blogginlägget presenterar han en lösning som innebär att man måste grotta runt en del i temats källkod. Jag har hittat en alternativ lösning som jag anser vara bättre.</p>
<ol>
<li>Börja med att skapa en mapp för ditt nya tema i <code>wp-content/themes/</code> och döp den till något lämpligt.</li>
<li>Skapa filen <code>style.css</code> och spara följande information i den:
<pre class="highlight css"><code>/*
THEME NAME: My child theme for Thematic
TEMPLATE: thematic

This work, like WordPress, is released under GNU General Public License, version 2 (GPL).

http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

*/

@import url('../thematic/style.css');</code></pre>
<p><code>TEMPLATE: thematic</code> anger namnet på mappen för temat som vårt nya tema ska ärva av. När filen är sparad så är barnet skapat.</li>
<li>Skapa <code>functions.php</code> och spara följande kod i den:
<pre class="highlight php"><code>&lt;?php
function childtheme_create_robots() {
}
add_filter('thematic_create_robots','childtheme_create_robots');
?&gt;</code></pre>
<p>Med ovanstående kod skriver vi över Thematics <code>thematic_create_robots</code> så att sökrobotarna känner sig välkomna.</li>
</ol>
<p>Nu ska det bara vara att välja ditt nya tema från admin och <a href="http://wordpress.org/extend/themes/thematic">Thematics</a> källkod är fortfarande oförändrad.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreask.se/thematic-och-sokrobotar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

