<?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>orres utvecklingsblogg &#187; Uncategorized</title>
	<atom:link href="http://dev.orre.io/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev.orre.io</link>
	<description>utveckling förnöjer</description>
	<lastBuildDate>Sat, 09 Jan 2010 22:27:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sen sist&#8230;</title>
		<link>http://dev.orre.io/sen-sist/</link>
		<comments>http://dev.orre.io/sen-sist/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 15:42:12 +0000</pubDate>
		<dc:creator>orre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dev.orre.io/?p=80</guid>
		<description><![CDATA[Sen jag senast skrev här har det hänt en del på utvecklingsfronten.
Jag har framförallt satt mig in designmönstret Dependency Injection för att kunna köra unit tests på min kod om det skulle bli aktuellt i framtiden. En annan av fördelarna med DI är att det blir ett väldigt tydligt API och det är enkelt att [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Sen jag senast skrev</strong> här har det hänt en del på utvecklingsfronten.<br />
Jag har framförallt satt mig in designmönstret <a href="http://en.wikipedia.org/wiki/Dependency_injection" target="_blank">Dependency Injection</a> för att kunna köra <a href="http://en.wikipedia.org/wiki/Unit_test" target="_blank">unit tests</a> på min kod om det skulle bli aktuellt i framtiden. En annan av fördelarna med DI är att det blir ett väldigt tydligt API och det är enkelt att se vilka beroenden en klass har.<br />
Tidigare använde jag mycket globala/statiska objekt för att smidigt kunna komma åt information och objekt inuti klasser. Men, det ger dolda beroenden som man måste gissa sig till och att göra tester med beroenden av statiska objekt är i stort sett omöjligt.<br />
Att jag gått över till att skriva allt i detta mönster har medfört att jag fått ommöblera (refactor) väldigt mycket kod för vår affiliateplattform. Deadline är om ett par veckor, det borde gå ändå.</p>
<p>Resultatet är däremot underbart. Bra hierarki bland filer/kataloger och rena, snygga klasser som enbart utför det de är tänkta för.</p>
<p><strong>Jag har blivit ett stort fan</strong> av <a href="http://fabien.potencier.org/" target="_blank">Fabien Potencier</a> som bl.a. ligger bakom PHP-ramverket <a href="http://www.symfony-project.org/" target="_blank">Symphony</a>. Därav använder jag en Dependency Injection Container han gjort, som är väldigt lättviktig och drar nytta av flera <a href="http://fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures">nyheter</a> som kommer i PHP 5.3. <a href="http://fabien.potencier.org/article/29/pimple-the-small-dependency-injection-container-for-php-5-3" target="_blank">Pimple</a> heter denna DIC.<br />
<img class="alignright size-medium wp-image-81" title="jQTouch" src="http://dev.orre.io/files/2009/11/Skärmavbild-2009-11-26-kl.-16.37.48-167x300.png" alt="jQTouch" width="167" height="300" /><br />
<strong>Vidare har jag</strong> sneglat lite på <a href="http://www.jqtouch.com/" target="_blank">jQTouch</a> vilket är ett plugin till <a href="http://jquery.com/" target="_blank">jQuery</a> som underlättar (och gör det på ett snyggt sätt) utveckling av webbsidor mot mobila enheter, framförallt riktiat mot Android och iPhone.<br />
Vi får se om det blir någon web-app framöver. Kanske en portning av <a href="http://gpsfoto.se" target="_blank">GPSFoto</a>.</p>
<p>Jag har för övrigt ett par halv-idéer som kan ha potential att bli något större, men de behöver tänkas igenom lite noggrannare innan jag gör något mer av dem.<br />
Mycket smådetalj i denna post, större tankar och planer kommer framöver.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.orre.io/sen-sist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Förenkla webbutvecklingen</title>
		<link>http://dev.orre.io/forenkla-webbutvecklingen/</link>
		<comments>http://dev.orre.io/forenkla-webbutvecklingen/#comments</comments>
		<pubDate>Mon, 11 May 2009 16:10:39 +0000</pubDate>
		<dc:creator>orre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[utveckling]]></category>

		<guid isPermaLink="false">http://dev.orre.io/?p=54</guid>
		<description><![CDATA[Alla som programmerar webapplikationer känner igen dessa steg (ordningen kan dock skilja)
1. Skapa en funktion i en klass som ska ta emot formulärdata
2. Skapa ett formulär där användaren kan fylla i data som ska till (1).
3. Skapa en fil som (2) postar till, och som sedan skickar data vidare till (1).
Det innebär att för varje [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Alla som programmerar</strong> webapplikationer känner igen dessa steg (ordningen kan dock skilja)<br />
1. Skapa en funktion i en klass som ska ta emot formulärdata<br />
2. Skapa ett formulär där användaren kan fylla i data som ska till (1).<br />
3. Skapa en fil som (2) postar till, och som sedan skickar data vidare till (1).</p>
<p><strong>Det innebär att</strong> för varje formulär som görs måste en ny fil göras i (3) för att man ska få någon som helst struktur på det hela. Vidare innebär det då även att någon katalog fullkommligt kommer att svämmas över av filer som bara skickar data vidare (det kanske görs någon sorts validering också).<br />
Säg sen att ett formulär ska ändras och ett nytt fält ska skickas vidare. Det innebär att det måste ändras på 4(!) ställen&#8230; Databasen, formuläret, klassfilen och i skicka-data-vidare-filen.</p>
<p>Därför tänkte jag framöver i några steg gå igenom hur jag löst (optimerat) detta så att steg (3) helt försvinner och hur en ändring bara behöver ske i formuläret och i databasen vid en ändring som i exemplet ovan.</p>
<p>Det blir ganska långa poster om detta, men det ska nog dyka upp någon under veckan.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.orre.io/forenkla-webbutvecklingen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Att byta till OS X</title>
		<link>http://dev.orre.io/att-byta-till-mac-os-x/</link>
		<comments>http://dev.orre.io/att-byta-till-mac-os-x/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 06:58:34 +0000</pubDate>
		<dc:creator>orre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mac osx]]></category>

		<guid isPermaLink="false">http://dev.orre.io/?p=17</guid>
		<description><![CDATA[I dagsläget är det fler och fler som inser att en bra dator är så mycket mer än prestanda på ett papper. Det är inte längre &#8220;längst spec för pengarna&#8221; som gäller, och jag välkomnar denna attitydändring.
I vårt företag kör nu 4 av 6 med Mac, och en av de två som fortfarande är kvar [...]]]></description>
			<content:encoded><![CDATA[<p>I dagsläget är det fler och fler som inser att en bra dator är så mycket mer än prestanda på ett papper. Det är inte längre &#8220;längst spec för pengarna&#8221; som gäller, och jag välkomnar denna attitydändring.<br />
I vårt företag kör nu 4 av 6 med Mac, och en av de två som fortfarande är kvar på Windows är på väg över.</p>
<p>Så, jag tänkte göra denna post till en liten switcher-guide!</p>
<h3>Först lite om vad som skiljer OS X från Windows</h3>
<ul>
<li> Oftast när man laddar ner program är det .dmg-filer. En .dmg-fil är en skivavbild (som t.ex. .iso). När man dubbelklickar på dmg-filen mountas filen som en disk och man kommer åt innehållet. När man är klar unmountar man diskavbilden genom att högerklicka och väljer &#8220;Mata ut&#8221;.</li>
<li>I <span class="il">OS</span> <span class="il">X</span> måste man mata ut alla typer av usb-minnen och sånt innan man kan dra ut dem ur datorn.</li>
<li>När man installerar ett program i <span class="il">OS</span> <span class="il">X</span> drar man bara ikonen till Programmappen. (Det finns undantag)</li>
<li>Ett program i <span class="il">OS</span> <span class="il">X</span> är en katalog som innehåller alla filer som behövs. I Windows är programmet en fil med massa filer utspridda överallt.</li>
<li>Samma sak när man avinstallerar ett program, man drar bara ikonen från programmappen till papperskorgen.</li>
<li>I <span class="il">OS</span> <span class="il">X</span> är programmen inte fönsterbundna. Du kan t.ex. stänga alla fönster i Firefox men programmet är ändå igång.</li>
<li>cmd+Q används för att stänga program, inte den röda knappen i fönstrets vänstra hörn (den stänger bara fönstret).</li>
<li>Vill du packa ihop filer till en zip-fil är det bara att markera filerna och högerklicka-&gt;Komprimera.</li>
<li>Att skapa PDF-filer i <span class="il">OS</span> <span class="il">X</span> är enkelt, välj bara &#8220;Skriv ut&#8221; och sedan PDF som ligger nere till vänster på dialogrutan som kommer upp. Från vilket program som helst.</li>
<li>Allt ni gjorde i Windows som innefattar Ctrl-knappen är lika i <span class="il">OS</span> <span class="il">X</span> fast med cmd-knappen istället. cmd+c (kopiera text), cmd+v (klistra in text)</li>
</ul>
<h3>Kortkommandon som är bra att kunna</h3>
<p><strong>Globala</strong></p>
<ul>
<li>cmd+Shift+3 &#8211; Ta screenshot på hela skärmen</li>
<li>cmd+Shift+4 &#8211; Ta screenshot genom att dra en yta med musen</li>
<li>cmd+Shift+4+Space &#8211; Ta screenshot på valt fönster</li>
<li>cmd+h &#8211; Gömmer det aktiva programmet (Det försvinner men är igång. Mycket smidigare än att minimera fönster)</li>
<li>cmd+tab &#8211; Växla mellan program (<span>Stor skillnad</span> från windows som växlar mellan fönster)</li>
<li>cmd+q &#8211; Stäng det aktiva programmet</li>
<li>cmd+w &#8211; Stäng det aktiva fönstret i programmet</li>
<li>cmd+space &#8211; Sök med spotlight (funkar även som miniräknare)</li>
</ul>
<p><strong>I Finder (OS X filhanterare)</strong></p>
<ul>
<li>Space &#8211; quicklook (Visa filen snabbt utan att öppna något program)</li>
<li>cmd+backspace &#8211; Radera filen</li>
<li>cmd+nerpil &#8211; Öppna markerad fil</li>
<li>Enter &#8211; Byt filnamn</li>
</ul>
<h3>Program som rekommenderas</h3>
<div>Om inget annat skrivs är programmet gratis.</div>
<div>Ni kommer att märka att gratisprogram till <span class="il">OS</span> <span class="il">X</span> är riktigt bra om man jämför med gratisprogram till Windows, de är mer välgjorda. Och att det skulle finnas färre gratisprogram till <span class="il">OS</span> <span class="il">X</span> är en myt.</div>
<div><strong>Mailklient</strong><br />
Apple&#8217;s inbyggda mail är riktigt bra.<br />
Själv kör jag <a href="http://fluidapp.com/" target="_blank">Fluid</a> som gör webbsidor till egna applikationer. Jag klickar på ikonen så öppnas min Gmail som ett eget program.</div>
<div><strong>FTP/SFTP/SCP</strong><br />
<a href="http://cyberduck.ch/" target="_blank">Cyberduck</a></div>
<div><strong>Programmering</strong><br />
<a href="http://www.panic.com/coda/" target="_blank">Coda</a> (kostar $99 men är överlägset bäst)<br />
<a href="http://www.barebones.com/products/textwrangler/" target="_blank">Textwrangler</a> (Gratis, men inte lika bra som Coda, dessutom ganska fult)<br />
Dreamweaver (Kostar en slant och är onödigt om man inte håller på mycket med HTML)</div>
<div><strong>RAR-upppackning</strong><br />
<span class="il">OS</span> <span class="il">X</span> packar upp det mesta direkt, men inte rar-filer.<br />
<a href="http://www.unrarx.com/" target="_blank">UnrarX</a></div>
<div><strong>MSN/GTalk/Jabber</strong><br />
För video, kör iChat.<br />
<a href="http://www.adiumx.com/" target="_blank">Adium</a> (Tar alla protokoll, men har inte video- eller ljud-stöd)</div>
<div><strong>Mysqlklient</strong><br />
<a href="http://mac.softpedia.com/get/Internet-Utilities/CocoaMySQL.shtml" target="_blank">CocoaMysql</a> (En betaversion som är hyfsat stabil)</div>
<div><strong>Filmkonvertering/DVD-rip</strong><br />
<a href="http://handbrake.fr/" target="_blank">Handbrake</a> (Fixar alla format samt rippar DVD&#8217;s. Kräver VLC i vissa fall)</div>
<div><strong>Filmuppspelning</strong><br />
<a href="http://www.videolan.org/vlc/download-macosx.html" target="_blank">VLC</a> (Klarar det mesta)<br />
<a href="http://perian.org/" target="_blank">Perian</a> (Lägger till codec&#8217;s till Quicktime så man kan spela upp allt där)<br />
<a href="http://www.microsoft.com/windows/windowsmedia/player/wmcomponents.mspx" target="_blank">Flip4MacWMV</a> (Ett program från M$ som gör så att man kan se .wmv-filer på webbsidor)</div>
<div><strong>Produktivitet</strong><br />
<a href="http://www.blacktree.com/" target="_blank">Quicksilver</a> (Det viktigaste programmet på en Mac. Starta vilket program som helst på 1 sek m.m.)<br />
<a href="http://www.app4mac.com/action_freeware.lasso?-token=7" target="_blank">RapidoWrite</a> (Om du kommer på dig själv med att skriva samma text om och om igen är detta program riktigt bra som ger dig genvägar. Om du t.ex. ofta skriver &#8220;Hej, jag är en stekare&#8221; så kan du binda ordet &#8220;stek&#8221; till den texten. Så varje gång du skriver &#8220;stek&#8221; kommer det att bytas ut mot &#8220;Hej, jag är en stekare&#8221;.</div>
<div><strong>Torrentklienter</strong><br />
<a href="http://www.vuze.com/app" target="_blank">Vuze</a></div>
<div><strong>Fotoredigering</strong><br />
Adobe Photoshop (kostar en slant)<br />
<a href="http://www.pixelmator.com/" target="_blank">Pixelmator</a> (Grymt gratisprogram som är i klass med Photoshop. Jag som fotograferar en del använder detta, och saknar aldrig Photoshop, alls finns här.)</div>
<div><strong>Twitter</strong><br />
<a href="https://destroytwitter.com/" target="_blank">DestroyTwitter</a></div>
]]></content:encoded>
			<wfw:commentRss>http://dev.orre.io/att-byta-till-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>htaccess rewrite</title>
		<link>http://dev.orre.io/htaccess-rewrite/</link>
		<comments>http://dev.orre.io/htaccess-rewrite/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 15:24:09 +0000</pubDate>
		<dc:creator>orre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://dev.orre.io/?p=10</guid>
		<description><![CDATA[Jag får ofta frågor om hur man ska skriva i .htaccess för att åstadkomma vissa saker.
Ett exempel kan vi ta, på en av mina sidor GPSFoto har jag länkar som ser ut såhär: http://gpsfoto.se/el/ev72k
Nå, hur går det till?
RewriteCond %{REQUEST_URI} ^(/[a-z]{2}/.*)$
RewriteRule ^(.*)$ /?entry=/$1 [L]
Den koden ovan säger är: Om den efterfrågade url&#8217;en (REQUEST_URI) börjar med / och sedan följs [...]]]></description>
			<content:encoded><![CDATA[<p>Jag får ofta frågor om hur man ska skriva i .htaccess för att åstadkomma vissa saker.</p>
<p>Ett exempel kan vi ta, på en av mina sidor <a href="http://gpsfoto.se">GPSFoto</a> har jag länkar som ser ut såhär: http://gpsfoto.se/el/ev72k<br />
Nå, hur går det till?</p>
<blockquote><p>RewriteCond %{REQUEST_URI} ^(/[a-z]{2}/.*)$<br />
RewriteRule ^(.*)$ /?entry=/$1 [L]</p></blockquote>
<p>Den koden ovan säger är: Om den efterfrågade url&#8217;en (REQUEST_URI) börjar med / och sedan följs av 2 st bokstäver och sedan en / till och efter det ett valfritt antal valfria tecken, ska index.php anropas och den matchande url&#8217;en ska skickas med som en variabel vid namn &#8220;entry&#8221;.</p>
<p>Regular expressions i sig är väldigt knivigt till en början, men när du kommit över den första tröskeln går det snabbt att kunna skriva och tolka själv.<br />
Ett annat exempel är att du kanske vill skicka besökare från en domän till en annan, då kan du göra såhär:</p>
<blockquote><p>RewriteCond %{HTTP_HOST} ^subdomain\.parkdomain\.net<br />
RewriteRule ^(.*)$ http://www.maindomain.com/$1 [R=permanent,L]</p></blockquote>
<p>Detta säger att: Om den efterfrågade host&#8217;en är subdomain.parkdomain.net så ska personen permanent skickas till maindomain.com.</p>
<p>Inte så svårt va?</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.orre.io/htaccess-rewrite/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Test från iPhone</title>
		<link>http://dev.orre.io/test-fran-iphone/</link>
		<comments>http://dev.orre.io/test-fran-iphone/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 14:32:24 +0000</pubDate>
		<dc:creator>orre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://dev.orre.io/test-fran-iphone/</guid>
		<description><![CDATA[Just testing

]]></description>
			<content:encoded><![CDATA[<p>Just testing</p>
<p><a href="http://dev.orre.io/files/2009/04/p-480-320-1d269aae-9d23-4d0d-a83d-6abb7dc72f23.jpeg" rel="lightbox[9]"><img src="http://dev.orre.io/files/2009/04/p-480-320-1d269aae-9d23-4d0d-a83d-6abb7dc72f23.jpeg" alt="" width="200" height="300" class="alignnone size-full wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.orre.io/test-fran-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
