<?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>Johannes Holmberg</title>
	<atom:link href="http://johannesholmberg.se/feed/" rel="self" type="application/rss+xml" />
	<link>http://johannesholmberg.se</link>
	<description></description>
	<lastBuildDate>Mon, 27 Jun 2011 18:25:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Postludium</title>
		<link>http://johannesholmberg.se/postludium/</link>
		<comments>http://johannesholmberg.se/postludium/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 10:00:19 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=3129</guid>
		<description><![CDATA[Det sista inlägget för kursen RIA Utveckling med Javascript. Applikationen är klar och jag har gjort en presentation av Web Storage i HTML5. Då var det dags att sammanfatta min insats, hur jag utvecklats och vad jag tyckte om kursen.]]></description>
			<content:encoded><![CDATA[<p>Det sista inlägget för kursen <a title="RIA utveckling med Javascript" href="http://johannesholmberg.se/ria-utveckling-med-javascript/">RIA Utveckling med Javascript</a>. <a title="Implementation" href="http://johannesholmberg.se/implementation/">Applikationen</a> är klar och jag har gjort en <a title="Fördjupning" href="http://johannesholmberg.se/fordjupning/">presentation av Web Storage i HTML5</a>. Då var det dags att sammanfatta min insats, hur jag utvecklats och vad jag tyckte om kursen.</p>
<p>Det svåraste inom kursen var nästan att sätta en applikationsidé, det brukar oftast vara så. Jag valde till slut att göra en kalender, det kändes från början som en ganska tuff uppgift då jag aldrig gjort en kalender tidigare och inte riktigt visste vart jag skulle börja. Som ramverk valde jag att använda jQuery UI och där lärde jag mig en hel del intressant.</p>
<p>Att sätta en struktursdesign tycker jag också oftast är ett knepigt område och det är först när man börjar utveckla en del som man ser vad som egentligen behövs, implementationen sedan tyckte jag gick väldigt bra och jag lärde mig mycket inom struktur för att skapa en jQuery UI Widget. Jag är nöjd med min kalender och själva grundfunktionaliteten överträffade faktiskt mina förväntningar, dock så var det mycket som jag skulle vilja implementera som jag inte riktigt hann med.</p>
<p>Personligen är det väl tiden som jag kämpat mot under hela kursens gång, eftersom jag har ett jobb som oftast är mer än ett heltidsjobb så har det blivit många sena kvällar och helger som fått ägnats åt kursen. Så skulle jag gjort om kursen så skulle jag ha sett till att jag haft mer tid avsatt för den.</p>
<p>Jag tar med mig många lärdomar från kursen, min relation till Javascript känns mycket mer gedigen nu och jag känner att jag kan behandla större Javascript applikationer. Jag har större koll på scope och känner mig säkrare på syntax (tack JSLint!). Jag fick även ordentlig koll på Web Storage och känner att jag vet ungefär till vad som det går bra att använda. Jag har fått prova på tjänster som jsFiddle som jag säkerligen kommer att använda mig av mer. Att även ha fått prova på att använda GIT tillsammans med GitHub är en stor erfarenhet som jag tar med mig.</p>
<p>Jag gillar verkligen den här kursen, det ges utrymme för att kolla på det man verkligen är intresserad av. Man är inte styrd så att alla ska arbeta med samma utvecklingsverktyg, ramverk och tekniker utan man serveras ett antal alternativ som man får välja mellan. Det tycker jag är kursens styrka. En annan sak som har varit kursens styrka är handledaren David Waller, otroligt kunnig inom området och står som stöd även under kvällstid och helger. Stort tack David!</p>
<p>Jag ser mig själv som frontendutvecklare och där ingår också Javascript så jag känner att den här kursen verkligen har gett mig ett större djup och jag är bättre förberedd på kommande utmaningar. Jag kan inte annat än att rekommendera den för framtida studenter.</p>
<p>P.S sedan tycker jag det är roligt att kalendern som jag utvecklat inom en snar framtid, efter lite vidareutveckling, kommer att köras på en relativt stor webbsajt.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/postludium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fördjupning</title>
		<link>http://johannesholmberg.se/fordjupning/</link>
		<comments>http://johannesholmberg.se/fordjupning/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 20:23:44 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=3124</guid>
		<description><![CDATA[I detta steg ska man fördjupa sig inom ett ämne som man jobbat med under utvecklingen av applikationen. Jag valde Web Storage i HTML5, jag gjorde en liten screencast där jag går igenom de fundamentala bitarna som man bör känna till.]]></description>
			<content:encoded><![CDATA[<p>I detta steg ska man fördjupa sig inom ett ämne som man jobbat med under utvecklingen av applikationen. Jag valde Web Storage i HTML5, jag gjorde en liten screencast där jag går igenom de fundamentala bitarna som man bör känna till.</p>
<p>Så varsågod här är genomgången om Web Storage där jag visar ett litet exempel som använder LocalStorage.</p>
<p><iframe title="YouTube video player" width="580" height="356" src="http://www.youtube.com/embed/cRShh7LPiI8" frameborder="0" allowfullscreen></iframe></p>
<p><img class="alignnone hidden size-thumbnail wp-image-3125" title="Fördjupning" src="http://johannesholmberg.se/wp-content/uploads/fordjupning-150x150.jpg" alt="Fördjupning" width="150" height="150" /></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/fordjupning/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Användargränssnitt</title>
		<link>http://johannesholmberg.se/anvandargranssnitt/</link>
		<comments>http://johannesholmberg.se/anvandargranssnitt/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 20:34:41 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=3085</guid>
		<description><![CDATA[Efter den tunga implementation var det tid att ägna sig lite åt att putsa ytan på applikationen. Användargränssnittet får fokus i det här inlägget och jag argumenterar för vissa val jag gjort när det gäller visuell design.]]></description>
			<content:encoded><![CDATA[<p>Efter den tunga implementation var det tid att ägna sig lite åt att putsa ytan på applikationen. Användargränssnittet får fokus i det här inlägget och jag argumenterar för vissa val jag gjort när det gäller visuell design.</p>
<h2>Inledning</h2>
<p>Jag fokuserade rätt mycket på den visuella designen redan under planeringsstadie och implementation. Jag ville helt enkelt få det rätt från början.</p>
<h3>Kognition</h3>
<p>Jag lät en del användare testa min kalender för att se ifall den var intuitiv och jag har i stort sett bara fått positiva responser. När man redigerar ett event så har jag använt HTML5 attributet &#8221;contenteditable&#8221; som gör att användaren direkt i texten kan redigera den utan att behöva klicka på några knappar eller nånting, den funktionen tyckte användarna väldigt mycket om. Vad de flesta saknar är funktionen för att bläddra mellan månader vilket jag även själv tycker är den största biten som saknas, tyvärr försvinner tiden snabbare än vad man vill och jag hann helt enkelt inte med att implementera det under steget.</p>
<h3>Design</h3>
<p>Jag ville ha en ganska stilren approach och har hämtat mycket inspiration från iCal. Färgschemat ville jag ha ganska subtilt och inte för utstickande, samtidigt skulle kalendern vara väldigt tydlig. Det är svårt att göra rätt eller fel inom design då alla tycker olika men jag är själv nöjd över stilen och har även här fått positiva kommentarer om den.</p>
<h3>Dynamisk grafik</h3>
<p>Jag har som jag nämnt tidigare använt jQuery för integrationen med kalendern och för att göra grafiken dynamisk (tex när man skapar ett event så markeras dagen på ett visst sätt) så sätts CSS klasser vid olika states.</p>
<h2>jQuery UI CSS Framework</h2>
<p>Det stora att kolla på i det här steget var dock template systemet som används av jQuery UI som kallas jQuery UI CSS Framework. Vad jQuery UI CSS Framework består av är helt enkelt en standard för att döpa css klasser som jQuery widgeten använder. Detta för att underlätta att skapa teman som går att använda till olika widgets. Så i det stora hela så vart det inga revolutionära ändringar som man ser utåt, istället ändrade jag vissa delar av min CSS för att följa reglerna som finns för jQuery UI CSS Framework.</p>
<p>Vad jag förstått det så ska man separera CSS:en över ett antal filer, det finns en CSS fil som tillhör widgeten och står för struktur som till exempel margin, padding, position mm. Sedan så finns det en CSS fil som ska vara utbytbar och som innehåller färger, typsnitt mm. Jag förstår tänket för att man ska kunna byta tema men jag tycker det blir väldigt omständigt ur redigeringssynpunkt. När jag började med CSS för en herrans massa år sedan så delade jag upp min CSS och hade filer för bland annat reset, typografi och positionering. Det här var något som jag sedan gick ifrån ganska fort då det blir ett rent ******* att göra ändringar i koden, då man inte vet var man ska börja leta. Därför gillar jag att ha en och endast en CSS fil för varje projekt.</p>
<p>Då jag också insåg att det skulle ta väldigt lång tid att göra om och anpassa efter de nya reglerna så valde jag att inte ändra om all min CSS kod till jQuery UI CSS Framework för den här applikationen. Jag valde istället att kolla på dokumentationen av ramverket och använda mig av klasser som det beskriver utan att behöva refaktorera för stora delar av koden, i övrigt kör jag på min egen anpassade approach. Jag tycker om när det sätts regler och struktur över hur något ska implementeras och om alla använder samma klasser som ramverket föreslår blir det enklare att förstå varandras kod och switcha mellan olika teman. Tyvärr hann jag inte ändra om all min CSS så det följer jQuery UI CSS Framework men åtminstone vissa delar, hade jag gjort om det här hade jag haft ramverket i åtanke under en tidigare process men då jag tidigare inte jobbat med jQuery UI Widgets så visste jag inte när det skulle in i processen. Jag tar med mig stora lärdomar av det här och nästa widget som jag bygger ska jag ha med ramverket i åtanke redan från steg ett.</p>
<h2>Sammanfattning</h2>
<p>Det här vart ett ganska teoretiskt steg för mig då jag redan satt det mesta av min design under föregående steg. Jag fick sätta mig in i jQuery UI CSS Framework vilket känns som en stor investering som jag kommer ha nytta av i framtiden. Nu får ni se framemot nästa steg då det kommer att dyka upp en liten fördjupning om LocalStorage i HTML5.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/anvandargranssnitt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Implementation</title>
		<link>http://johannesholmberg.se/implementation/</link>
		<comments>http://johannesholmberg.se/implementation/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 20:46:16 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=3061</guid>
		<description><![CDATA[Den roligaste delen i projektet. Det var dags för implementation av min kalender som fortfarande går under namnet CleanCal. Här kan du läsa mina tankar och slutsatser som pågick under utveckling.]]></description>
			<content:encoded><![CDATA[<p>Den roligaste delen i projektet. Det var dags för implementation av min kalender som fortfarande går under namnet CleanCal. Här kan du läsa mina tankar och slutsatser som pågick under utveckling.</p>
<h2>Dags att sätta igång</h2>
<p><a href="http://johannesholmberg.se/utvecklingsmiljo/">Utvecklingsmiljön</a> var redan satt och <a href="http://johannesholmberg.se/applikationside-och-design">koddesignen</a> var delvis spikad men jag kände att jag fortfarande hade för lite erfarenhet av jQuery UI så jag läste på lite olika tutorials och guider för att komma igång ordentligt.</p>
<p>För att sedan kickstarta projektet så var det första jag gjorde att webba upp skelettet baserat utifrån mina skisser och gav element klasser och id för att sedan stila upp dom med CSS. När detta var gjort hade jag en mall och visste ungefär vad jag ville uppnå och det var dags att slänga sig på Javascriptet. Jag ville börja på den djupaste nivån och då blev det ganska självfallet att börja titta på Web Storage och hur det fungerar i HTML5.</p>
<h2>Web Storage</h2>
<p>Web Storage är samlingsnamnet för API:et i HTML5 som låter dig spara data direkt hos klienten. Ingen serversidekod inblandad alltså. Det finns två sätt som man kan spara data på med Web Storage. Det första är SessionStorage som sparar datat för sessionen, det innebär att datat finns kvar hos användaren så länge den har webbläsaren igång. Skulle användaren stänga och starta om webbläsaren är datat således borta. Det andra är LocalStorage som sparar datat hos klienten och är inte beroende av sessionen, användaren kan stänga sin webbläsare och öppna den igen och datat är fortfarande kvar. Därför föll valet självfallet på LocalStorage.</p>
<h3>LocalStorage</h3>
<p>Så hur fungerar LocalStorage? Jag fick läsa på lite då jag aldrig tidigare använt mig av LocalStorage, och under tiden tyckte jag det var så pass intressant att jag tänkte att jag gör min fördjupning just om LocalStorage i HTML5. Så ni får hålla till godo men en djupare redogörelse kommer snart i en ny bloggpost.</p>
<h2>Javascript</h2>
<p>När jag hade någorlunda koll på hur LocalStorage fungerade så började jag fundera på hur jag skulle rita upp kalendern. Jag hade absolut ingen erfaranhet av att göra kalendrar tidigare så det blev lite research i best practices till att börja med. När man skapar widgets med hjälp av jQuery UI så använder man något som kallas <a href="http://docs.jquery.com/UI_Developer_Guide#The_widget_factory">The widget factory</a>. Det är denna factory som man anropar när man vill skapa en ny widget instans. När man skapar en ny instans finns några standard metoder som används:</p>
<ul>
<li>options &#8211; Här kan man definiera olika värden som användaren kan skicka in i widgeten.</li>
<li>_create &#8211; Körs när widgeten skapas, en konstruktorfunktion med andra ord.</li>
<li>destroy &#8211; Körs när widgeten plockas bort ur minnet.</li>
</ul>
<h3>Funktioner</h3>
<p>Jag började tänka om lite kring mina objekt och skapade istället funktioner för att sätta upp kalendern. Jag skapade en initCalendar funktion som satte upp allt av värde som man behövde för att skapa själva kalendern. Den funktionen tar ett år och en månad som parametrar (dessa kan man skicka in när man skapar widgeten, annars plockas aktuellt år och månad ut). Den funktionen sätter upp labels för månader, veckodagar, kollar längden på aktuell månad medmera. Den returnerar sedan de värden som behövs för att rita ut kalendern.</p>
<p>För att rita ut kalenderna skapade jag en funktion vilken jag kallar generateCalendarHTML. Det är den funktionen som visuellt ritar ut kalendern. Den skapar en grundläggande HTML struktur med hjälp av jQuery, den skapar headern för kalendern (Månadsnamn och år). Sedan skriver den ut veckodagarna, so far inga konstigheter.</p>
<p>Det är sedan när man ska loopa ut månadens dagar som det hela börjar bli lite tricky. Här kör jag en loop och kollar vilken dag som månaden startar på och ifall loopen gått så långt börjas isåfall datumen ritas ut, till dess ritas bara tomma dagar upp. I den if satsen så anropar jag funktionen generateDayHTML som skriver ut datumets siffra och lägger till formulär för att lägga till ett event. Här körs också en koll ifall datumet har ett event, isåfall ska det märkas ut.</p>
<h3>Interaktion</h3>
<p>För att sedan separera själva interaktionen med kalendern så skapade jag funktionen setupInteraction som innehåller jQuery kod för när användaren navigerar och interagerar med widgeten. Den här funktionen är till exempel den som tar hand om vad som händer när användaren postar formuläret för ett nytt event och ikoner som dyker upp när man för musen över dagar medmera.</p>
<h3>Events</h3>
<p>För att hantera events så skapade jag helt enkelt CRUD funktioner, en funktion för att hämta event, en för att skapa event, en för att uppdatera event och slutligen en för att ta bort ett event. Dessa funktioner använder sig av LocalStorage för att hantera datat och är då så pass separerat att man kan byta ut dessa till valfri datakälla om man så skulle vilja.</p>
<h2>Sammanfattning om implementeringen</h2>
<p>Phew! Det har varit två ordentligt hektiska veckor med implementering och jag har lärt mig väldigt mycket nytt. Främst Javascript syntax, struktur och har fått ett bra helhetsgrepp runt Javascript. Mycket funktionalitet fick också strypas då tiden tickade iväg lite för snabbt. Bland annat en funktion för att bläddra mellan månader och funktionalitet för att lägga till flera event på samma dag var några av mina idéer som fick ta ett steg tillbaka och får vänta in framtiden för att kanske bli implementerade.</p>
<p>Nu när du läst allt det här om kalendern kanske du är sugen på att testa lite och se hur det blev. All koden ligger på <a href="https://github.com/johannesholmberg/RIA">Github</a> och <a href="http://johannesholmberg.se/projekt/ria/">här finns ett exempel som du kan köra</a>. Se dock till att du använder en webbläsare som kör webkit som renderingsmotor (Google Chrome eller Safari) för att få en fullständig upplevelse.</p>
<p>Då väntar en vecka med fokus på användargränssnitt och putsa lite grann på ytan på kalendern.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/implementation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Applikationsidé och design</title>
		<link>http://johannesholmberg.se/applikationside-och-design/</link>
		<comments>http://johannesholmberg.se/applikationside-och-design/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 17:46:11 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=2967</guid>
		<description><![CDATA[Då var det dags att sätta en applikationsidé. Resurserna var inte så svåra att välja ut då jag idag använder jQuery i det mesta jag gör i Javascript väg. Desto svårare var att sätta själva idéen. Efter mycket bollande valde jag till slut att skapa en kalender utformad som en widget med hjälp av jQuery UI.]]></description>
			<content:encoded><![CDATA[<p>Då var det dags att sätta en applikationsidé. Resurserna var inte så svåra att välja ut då jag idag använder jQuery i det mesta jag gör i Javascript väg. Desto svårare var att sätta själva idéen. Efter mycket bollande valde jag till slut att skapa en kalender utformad som en widget med hjälp av jQuery UI.</p>
<p>Det fanns två vägar att gå på tekniker som jag ville kika på inom jQuery. Det ena var jQuery Mobile. Det andra jQuery UI. Det blev det senare då jag vill utforska vad man kan göra och hur man kan skapa egna widgets med hjälp av verktyget. Jag tänkte att skapa en kalender är ett lagom stort projekt där man kan se vad verktyget går för. Så första steget var att forska lite kring jQuery UI och hur man gör widgets.</p>
<p>Nästa steg var att börja fundera över min applikation och hur det är tänkt att kalendern ska utformas och vad man ska kunna göra. Jag har tänkt mig att kalendern visuellt ska presenteras som en månadsvy och att man ska kunna mata in event, tillsammans med en beskrivning, plats och tid. Datat ska sparas med hjälp av Web Storage API:et som finns i HTML5 och är det API som varit implementerat längst tid bland webbläsarna.</p>
<h2>Resurser</h2>
<p>Resurserna blir således följande:</p>
<ul>
<li>jQuery</li>
<li>jQuery UI</li>
<li>Web Storage (localstorage)</li>
</ul>
<p>Kalendern ska märka ut dagens datum och även visa en indikation på de dagar som har event knutna till sig. Jag funderade länge på att göra en enkel drag implementering där man skulle kunna dra ut nya event för varje dag men jag slopade den tanken då det krävs en hel del för att få det att fungera på ett tillfredställande sätt. Vid inmatning av event så finns det här även en tanke att det ska vara användarbaserat och att olika användare kan skapa olika event men det är för tidskrävande för den här kursen och således kommer datat som matas in komma från en och samma användare.</p>
<p>Jag har delat upp tiden för de olika projektdelarna på följande vis:</p>
<ul>
<li>25% &#8211; Research om hur jQuery UI fungerar.</li>
<li>25% &#8211; Research kring hur Web Storage API:et i HTML 5 fungerar.</li>
<li>50% &#8211; Implementation.</li>
</ul>
<h2>Usecase</h2>
<ul>
<li>Användaren startar applikationen och får fram kalendern med aktuell månad.</li>
<li>Användaren kan bläddra mellan månader och datum.</li>
<li>Man får en indikation av dagens datum.</li>
<li>Användaren kan mata in ett nytt event genom att klicka på ett plus som dyker upp för varje dag.</li>
<li>Datum som har ett event knytna till sig markeras på ett speciellt sätt.</li>
<li>Användaren för musen över ett datum med ett event och får fram information kring eventet.</li>
<li>Användaren kan ta bort ett event genom att klicka på en papperskorg knutet till eventet.</li>
<li>Användaren kan uppdatera ett event genom att klicka på någon av texten och helt enkelt skriva in ny text.</li>
</ul>
<h2>Grafiska skisser</h2>
<p>Jag insåg att det blir rätt svårt att sätta en struktursdesign innan man vet ungefär hur kalendern kommer te sig rent visuellt. Därför gjorde jag skisser på hur kalendern skulle se ut och hur den fungerar när man interagerar med den. Så skisserna skapades utifrån de usecases som jag definierade.</p>
<div class="image-holder"></p>
<p><a href="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-1.jpg"><img class="alignnone size-medium wp-image-3046" title="cleancal-skiss-1" src="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-1-460x383.jpg" alt="" width="460" height="383" /></a></p>
<p></div>
<div class="image-holder"></p>
<p><a href="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-2.jpg"><img class="alignnone size-medium wp-image-3047" title="cleancal-skiss-2" src="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-2-460x383.jpg" alt="" width="460" height="383" /></a></p>
<p></div>
<div class="image-holder"></p>
<p><a href="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-3.jpg"><img class="alignnone size-medium wp-image-3048" title="cleancal-skiss-3" src="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-3-460x383.jpg" alt="" width="460" height="383" /></a></p>
<p></div>
<div class="image-holder"></p>
<p><a href="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-4.jpg"><img class="alignnone size-medium wp-image-3049" title="cleancal-skiss-4" src="http://johannesholmberg.se/wp-content/uploads/cleancal-skiss-4-460x383.jpg" alt="" width="460" height="383" /></a></p>
<p></div>
<h2>Objekt</h2>
<p>Jag kommer att arbeta med två huvudsakliga objekt:</p>
<h3>Calendar</h3>
<p>Calendar objektet är det som kommer att visa själva kalendern, rita ut dagar och sköta navigeringen mellan månader. Det objektet kommer också ha funktioner för att skapa och hämta event. Calendar objektet innehåller följande privata variabler:</p>
<ul>
<li>id</li>
<li>year</li>
<li>month</li>
</ul>
<p>Funktionerna för objektet är för närvarande dessa:</p>
<ul>
<li>showCalendar()</li>
<li>getEvents()</li>
<li>createEvent()</li>
<li>deleteEvent(id)</li>
</ul>
<h3>Event</h3>
<p>Event objektet kommer sedan ha funktioner för att visa och dölja meddelanden som är knytna till ett event som i sin tur är knytna till ett datum i kalendern. Event objektet kommer att ha följande privata variabler:</p>
<ul>
<li>id</li>
<li>title</li>
<li>place</li>
<li>time</li>
</ul>
<p>Event objektets funktioner som jag kan komma på nu (kan dyka upp fler under utveckling):</p>
<ul>
<li>ShowEvent(id)</li>
<li>HideEvent(id)</li>
</ul>
<p>Det finns nu också ett enkelt kodskelett uppsatt på <a href="https://github.com/johannesholmberg/RIA">GitHub</a> för att sätta igång.</p>
<p>Nu kommer det att bli 2 intensiva veckor med massor av kodande, inlärning av nya tekniker, slita sig i håret när saker och ting inte går som man tänkt sig osv. Jag ser fram emot det.</p>
<p><img class="alignnone hidden size-thumbnail wp-image-2976" title="Applikationsidé och design" src="http://johannesholmberg.se/wp-content/uploads/applikationside-och-design-150x150.jpg" alt="Applikationsidé och design" width="150" height="150" /></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/applikationside-och-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Avancerad Javascript</title>
		<link>http://johannesholmberg.se/avancerad-javascript/</link>
		<comments>http://johannesholmberg.se/avancerad-javascript/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 12:26:55 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=2948</guid>
		<description><![CDATA[Okej då var det dags att skriva nästa inlägg i kursen RIA utveckling med Javascript. Det här steget innefattar att man ska sätta sig in i mer avancerade begrepp runt Javascript och reda ut dom. Begreppen är bland annat scope, closures, recursion medmera. Känner på mig att det här kan bli ett lite flummigt inlägg där jag mest diskuterar med mig själv och försöker reda ut en del saker, men det får ni köpa. Då kör vi.]]></description>
			<content:encoded><![CDATA[<p>Okej då var det dags att skriva nästa inlägg i <a href="http://johannesholmberg.se/ria-utveckling-med-javascript/">kursen RIA utveckling med Javascript</a>. Det här steget innefattar att man ska sätta sig in i mer avancerade begrepp runt Javascript och reda ut dom. Begreppen är bland annat scope, closures, recursion medmera. Känner på mig att det här kan bli ett lite flummigt inlägg där jag mest diskuterar med mig själv och försöker reda ut en del saker, men det får ni köpa. Då kör vi.</p>
<h2>Scope</h2>
<p>Scope är något som är relativt enkelt att förstå men däremot svårare att förklara. Varje del av Javascript koden körs i en specifik kontext. Säg till exempel att vi skapar en funktion och definierar en variabel i den funktionen, då går det inte att komma åt den variabeln utanför funktionen. Den kan man bara komma åt inuti funktionen, dess kontext. Det är det scopet vi befinner oss i när vi exekverar kod i den funktionen.</p>
<h3>This</h3>
<p>För att reda ut vad this hänvisar till gäller det att ha koll på i vilket scope man befinner sig. Vi kan titta på det här exemplet:</p>
<pre class="brush: jscript; title: ; notranslate">
var object = {
    number: 10,
    tellMeTheNumber: function() {
        document.write(this.number);
    }
};
object.tellMeTheNumber();
</pre>
<p><a href="http://www.jsfiddle.net/johannesholmberg/YYnCG/">Exempel på jsFiddle</a></p>
<p>Eftersom funktionen är en del av objektet object så hänvisar this till objektet. Så det vi hämtar ut är objektets egenskap number.</p>
<p><span style="font-family: 'Aller Light', Arial, sans-serif; font-size: 26px; line-height: normal;">Closures</span></p>
<p>Ska jag vara ärlig har jag aldrig riktigt förstått vad closures betytt i Javascript världen men efter lite läsning så börjar jag få insikt i det hela. Closures som jag har uppfattat det är en variant av scope och kan definieras som regional, den är mer än lokal men inte global. Till exempel om man definierar en funktion i en funktion så kan man ifrån den nästlade funktionen komma åt variablar definierade i förälderfunktionen. Vi tittar på följande kod som exempel:</p>
<pre class="brush: jscript; title: ; notranslate">
function tree(){
    this.leaf = 'Ett löv';
    this.leaf2 = 'Ett annat löv';
    var myLeaf = this.leaf;
    this.branch = function() {
        growMethod = myLeaf;
        return growMethod;
    }
}
var instance = new tree();
document.write(instance.branch());
</pre>
<p><a href="http://www.jsfiddle.net/johannesholmberg/GJQwX/">Exempel på jsFiddle</a></p>
<p>Som vi ser här så kommer den anonyma funktionen branch() åt värdet myLeaf i förälderfunktionen tree() när vi anropar den. Det här är den uppfattning som jag fått som definierar vad closures är.</p>
<p><span style="font-family: 'Aller Light', Arial, sans-serif; font-size: 26px; line-height: normal;">Prototypal inheritance</span></p>
<p>Jag hade absolut ingen aning om vad Prototypal inheritance stod för men efter att ha läst en <a href="http://javascript.crockford.com/prototypal.html">artikel av Douglas Crockford</a> börjar jag få lite insikt. Prototypal inheritance står för objekt som kan ärva ifrån objekt. Man kan skapa en funktion som tar ett objekt som argument och skapa en ny instans av objektet ifrån funktionen. Skulle man inte sätta alla egenskaper på den nya instansen så ärvs dessa ifrån originalobjektet. Så här ser koden ut som Crockford beskrev:</p>
<pre class="brush: jscript; title: ; notranslate">
function object(o) {
    function F() {}
    F.prototype = o;
    return new F();
}
</pre>
<p><a href="http://www.jsfiddle.net/johannesholmberg/ZH2Yv/">Exempel på jsFiddle</a></p>
<h2>Partial application</h2>
<p>Jag hade heller aldrig hört talas om partial application begreppet innan jag började läsa på. Som jag förstått definitionen av partial application så är det att skapa en funktion som returnerar en annan funktion där en del av argumenten är fördefinierade. Vi tar och kikar på ett exempel:</p>
<pre class="brush: jscript; title: ; notranslate">
function multiplier(number) {
    return function(n) {
        return n * number;
    };
}
var multiply5 = multiplier(5);
var sum = multiply5(10);
document.write(sum);
</pre>
<p><a href="http://www.jsfiddle.net/johannesholmberg/8FpBY/">Exempel på jsFiddle</a></p>
<p>Här har vi funktionen multiplier som returnerar en ny funktion. Lägg också märke till hur vi använder closure här för att få ut värdet av number i våran inneslutande funktion.</p>
<h2>Recursion</h2>
<p>Recursion eller rekursion som det heter på svenska står för funktioner som anropar sig själva. Jag har aldrig tidigare använt det i praktiken men ett exempel som man skulle kunna göra är att skapa en loop utan att behöva använda for eller foreach. Vi skulle kunna göra såhär:</p>
<pre class="brush: jscript; title: ; notranslate">
function recursion(number) {
    number++;
    if (number &lt;= 10) {
        document.write(number + '&lt;br /&gt;');
        recursion(number);
    }
}
recursion(0);
</pre>
<p><a href="http://www.jsfiddle.net/johannesholmberg/m7rt8/">Exempel på jsFiddle</a></p>
<h2>Unlimited arguments</h2>
<p>Ja det är alltså möjligt att skicka med argument till en funktion som inte tar några parametrar. Dessa kommer man sedan åt genom arguments variabeln.</p>
<pre class="brush: jscript; title: ; notranslate">
function renderView() {
    return arguments[1];
}
var view = renderView(1, 2, 3);
document.write(view);
</pre>
<p><a href="http://www.jsfiddle.net/johannesholmberg/w3SKe/">Exempel på jsFiddle</a></p>
<p>Här så skickar vi in några parametrar till funktionen renderView som sedan skickar tillbaka den andra parametern, detta till trots att renderView är definierad att inte ta några parametrar. Jag har svårt att se användningsområdet för detta men det är möjligt att jag kommer ställas inför situationer då jag finner funktionaliteten användbar.</p>
<h2>Sammanfattning</h2>
<p>Det här var ett riktigt intressant steg i kursen och det har blivit mycket läsning och forskning kring dessa begrepp, jag känner att jag lärt mig en hel del men samtidigt att det finns mycket kvar att lära. Jag har också provat på att använda jsFiddle för kodsnuttarna vilket jag tycker är ett riktigt gediget verktyg som jag kommer fortsätta använda under kursen.</p>
<p><img class="alignnone hidden size-thumbnail wp-image-2973" title="Avancerad Javacript" src="http://johannesholmberg.se/wp-content/uploads/avancerad-javascript-ny-150x150.jpg" alt="Avancerad Javacript" width="150" height="150" /></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/avancerad-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Utvecklingsmiljö</title>
		<link>http://johannesholmberg.se/utvecklingsmiljo/</link>
		<comments>http://johannesholmberg.se/utvecklingsmiljo/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 18:28:33 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=2910</guid>
		<description><![CDATA[Då var det dags för steg 1 i RIA kursen och det är läge att välja en utvecklingsmiljö som man känner sig bekväm i. Det här med utvecklingsmiljö är alltid klurigt och alla har sina för - repsektive nackdelar.]]></description>
			<content:encoded><![CDATA[<p>Då var det dags för steg 1 i RIA kursen och det är läge att välja en utvecklingsmiljö som man känner sig bekväm i. Det här med utvecklingsmiljö är alltid klurigt och alla har sina för &#8211; repsektive nackdelar.</p>
<h2>Skrivmiljö</h2>
<p>Eftersom jag ofta brukar hoppa lite mellan plattformar (Windows/Mac) så har jag lite olika editorer som jag är fäst vid. När jag kör Mac så är Coda helt oslagbar enligt mina ögon, den är väldigt enkel att använda, ser snygg och avskalad ut samtidigt som den är otroligt kraftfull och kan byggas på med plugins om man behöver mer funktionalitet. Jag har även hört mycket gott om TextMate men aldrig kommit över att pröva den då jag trivs så pass bra med Coda som den är.</p>
<h3>Dreamweaver</h3>
<p>När jag sitter på Windows har jag dock haft svårare att komma över en editor som jag trivs med. I tidiga dagar satt jag ofta med Dreamweaver men den försvann i mitt användande ganska snabbt, jag tycker att den är rätt krånglig och jag minns att det var massa onödigt jobb som behövde läggas bara för att lyckas utöka funktionaliteten med tillägg. Dessutom är den riktigt ful och känns seg att starta upp. Nej jag kommer inte att använda Dreamweaver.</p>
<h3>Visual Studio</h3>
<p>Sedan provade jag Visual Studio till stor del på grund av kurser inom .NET vilket gjorde användningen av nämnd editor obligatorisk. Jag fattade aldrig riktigt tycke för Visual Studio då jag tyckte installationen var rätt överväldigande och gränssnittet var alldeles för mycket Windows för min smak, inte så konstigt med tanke på att det är Microsofts programvara men ändå jag kommer inte att använda Visual Studio.</p>
<h3>Notepad++</h3>
<p>Jag har nu en tid kört Notepad++, främsta anledningen för att den är enkel och snabb. Jag saknar dock mycket funktioner som tex autocomplete mm som standard vilket gör att jag skulle vilja ha en mer gedigen editor men som ändå är snabb att sätta upp och enkel att använda.</p>
<h3>Aptana Studio</h3>
<p>Aptana är en editor som jag har hört mycket gott om för Windows miljö. Den är snabb att starta upp och det finns ordentligt med resurser för att installera tillägg och även det verkar vara en rätt enkel process. Med tanke på inbyggt stöd för <a href="http://www.jslint.com/">JSLint</a> och <a href="http://code.google.com/p/jsdoc-toolkit/">JsDoc</a> så blir den mitt val när jag sitter på Windows miljö.</p>
<h3>Kod i molnet</h3>
<p>Jag har även testat <a href="https://bespin.mozillalabs.com/">Mozillas Bespin</a> som är en kodeditor direkt i webbläsaren. En ganska häftig idé men det känns inte som att det håller för större projekt, användningsområdet känns mer för om man ska demonstrera något under en föreläsning eller liknande.</p>
<h3>Coda</h3>
<p>Som jag nämnt tidigare så är Coda min absoluta favoriteditor när jag sitter på Mac och man tänker inte ens på den när man utvecklar. Det är så en editor ska vara, så perfekt att man inte lägger märke till den. För att implementera JSLint så använder jag <a href="http://www.chipwreck.de/blog/2010/03/16/coda-php-web-toolkit-new-beta-with-jslint/">det här pluginet</a> (tack Michelle Sanver!).</p>
<h2>Testmiljö</h2>
<p>Firefox är verkligen min &#8221;top of the line&#8221; av webbläsarna vid utveckling. Resurserna som finns att tillgå är nästan oändliga tack vare dess mängd av gedigna tillägg som kan installeras. Google Chrome har dock seglat upp som en konkurrent på senaste tiden tack vare verktyg som Web Inspector och Pendule. Chrome slår dock Firefox rejält på fingrarna när det gäller snabbhet vilket gör att jag använder Chrome vid vanlig internetanvändning.</p>
<p>Givetvis testar jag också i Internet Explorer 7 och uppåt men det är inte direkt något primärt val vid utveckling. Safari testar jag väldigt sällan, det har blivit så eftersom både Chrome och Safari bygger på WebKit som renderingsmotor så de två fungerar oftast väldigt lika och behöver enligt min mening inte testas separat. Jag testade mycket i Opera tidigare men tack vare den dåliga globala användningen av webbläsaren har jag släppt den en hel del.</p>
<p>Så efter lite diskussion fram och tillbaka blir min testmiljöuppsättning således Firefox beväpnat med Firebug och Web Developer och Chrome med Web Inspector och Pendule som backup.</p>
<p>Var dock uppmärksam på att jag inte bestämt mig vilken typ av applikation jag vill göra än. Ifall det blir en desktopapplikation eller mobilapplikation så kommer givetvis testmiljön att ändras.</p>
<h2>Versionshanteringsmiljö</h2>
<p>Jag har hört mycket om Git och GitHub och hur bra det ska vara att använda, men jag har själv aldrig använt mig av det. Under kursen är det obligatoriskt att använda sig av dessa och det känns riktigt spännande faktiskt. Mitt GitHub konto hittar ni på <a href="https://github.com/johannesholmberg/RIA">johannesholmberg/RIA</a>.</p>
<h2>Filmiljö</h2>
<p>För att hantera filer kommer jag att använda mig av molntjänsten Dropbox. Dropbox är helt fantastiskt och när det visade sig att det var en obligatorisk del i kursen så var det nästan så att man gjorde ett glädjeskutt bakom tangentbordet. Jag har tidigare skrivit inlägg om <a href="/varfor-dropbox-ar-sa-bra/">varför Dropbox är så bra</a> att använda.</p>
<h2>Munsbitsmiljö</h2>
<p>Det här med att spara kodsnuttar tycker jag är en intressant aspekt och som kan spara mycket tid under utvecklingsfasen. Jag gillar Codas inbyggda funktion Clips för att lagra korta snuttar kod som jag återanvänder rätt ofta, nackdelen är att det sparas lokalt. Jag har även tittat på Mac programmet <a href="http://www.snippetsapp.com/">Snippets</a> som är mer gediget men fortfarande saknar jag funktionen att spara i molnet.</p>
<p>I samband med den här kursen tänkte jag ta och titta på <a href="http://jsfiddle.net/">jsFiddle</a> som verkar riktigt intressant, där kan man skapa ett konto, dela med sig och ta del av kodsnuttar från hela världen. Vi får se vad jag tycker om tjänsten efter lite användande.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/utvecklingsmiljo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RIA utveckling med Javascript</title>
		<link>http://johannesholmberg.se/ria-utveckling-med-javascript/</link>
		<comments>http://johannesholmberg.se/ria-utveckling-med-javascript/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 19:48:16 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[RIA utveckling med Javascript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=2880</guid>
		<description><![CDATA[Då var det dags för mig att läsa kursen RIA (Rich Internet Application) utveckling med Javascript på Linnéuniversitetet i Kalmar och en obligatorisk del i kursen är att blogga vilket kommer att göras här och under kategorin RIA. Det var kort om det, ja men då tar vi och sätter igång!]]></description>
			<content:encoded><![CDATA[<p>Då var det dags för mig att läsa kursen RIA (Rich Internet Application) utveckling med Javascript på Linnéuniversitetet i Kalmar och en obligatorisk del i kursen är att blogga vilket kommer att göras här och under kategorin <a href="http://johannesholmberg.se/kategori/ria/">RIA</a>. Det var kort om det, ja men då tar vi och sätter igång!</p>
<p>Det är så att kursen är uppdelad i 8 steg och för varje slutfört steg ska ett blogginlägg skrivas. Stegen ser ut som följer:</p>
<ul>
<li>Steg 0 &#8211; <strong>Hello World</strong> &#8211; Presentation.</li>
<li>Steg 1 &#8211; <strong>Utvecklingsmiljö</strong> &#8211; Sätt upp en fungerande utvecklingsmiljö.</li>
<li>Steg 2 &#8211; <strong>Avancerad Javascript</strong> &#8211; Forska kring avancerade Javascriptbegrepp.</li>
<li>Steg 3 &#8211; <strong>Applikationsidé och design</strong> &#8211; Börja skissa på en applikation.</li>
<li>Steg 4 &#8211; <strong>Implementation</strong> &#8211; Utveckla applikationen och dess funktionalitet.</li>
<li>Steg 5 &#8211; <strong>Användargränssnitt </strong>- Fokus på gränssnitt och design.</li>
<li>Steg 6 &#8211; <strong>Fördjupning</strong> &#8211; Presentation av ett ämne man valt att fördjupa sig inom.</li>
<li>Steg 7 &#8211; <strong>Postludium </strong>- Avslutande tankar och utvärdering.</li>
</ul>
<p>För er som vill veta mer om mig kan ni läsa <a href="http://johannesholmberg.se/bloggen-fyller-2-ar/">detta blogginlägg</a> eller kika i <a href="#footer">sidfoten</a>.</p>
<h2>Min relation till Javascript</h2>
<p>Jag har alltid varit fascinerad över vad man kan åstadkomma med Javascript och det är ett riktigt kraftfullt språk om man använder det korrekt. Oftast använder jag Javascript för att &#8221;krydda&#8221; webbsajterna i form av tex validering av formulär, dropdown menyer, göra ajax requests mm. Till min hjälp använder jag oftast ramverket <a href="http://jquery.com/">jQuery</a> som underlättar otroligt när man vill påverka element i DOM strukturen.</p>
<p>Senaste tiden har jag ofta tänkt att jag kan alldeles för lite om Javascript och vill verkligen lära mig mer. Därför är jag riktigt taggad nu när den här kursen sätter igång och hoppas att jag får många nya fina färdigheter när den väl är avslutad.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/ria-utveckling-med-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Varför Evernote är så bra</title>
		<link>http://johannesholmberg.se/varfor-evernote-ar-sa-bra/</link>
		<comments>http://johannesholmberg.se/varfor-evernote-ar-sa-bra/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 15:06:51 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[Övrigt]]></category>
		<category><![CDATA[Applikationer]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=2860</guid>
		<description><![CDATA[Evernote är en tjänst för att skapa och sortera anteckningar. Det finns ett antal små funktioner och finesser som gör den så smidig och bekväm att använda.]]></description>
			<content:encoded><![CDATA[<p>Evernote är en tjänst för att skapa och sortera anteckningar. Det finns ett antal små funktioner och finesser som gör den så smidig och bekväm att använda.</p>
<h2>Kort om Evernote</h2>
<p>Evernote lanserades under 2008 och var då helt enkelt en webbtjänst för att skapa anteckningar. Idag har Evernote verkligen växt på sig och är en riktigt komplett tjänst som jag har svårt för att vara utan. I Evernote kan man skapa olika anteckningsböcker för olika situationer, tex kan man ha en anteckningsbok för sitt arbete och en för privatliv.</p>
<div class="image-holder"></p>
<p><img title="evernote" src="http://johannesholmberg.se/wp-content/uploads/evernote.jpg" alt="" width="520" height="305" /></p>
<p></div>
<p>Det går även att tagga alla anteckningar så tex om man som jag har flertalet listor i min privata anteckningsbok så taggas dom med &#8221;Listor&#8221; och smidigt och enkelt kommer jag åt allt ifrån shoppinglistor till nyårslöften.</p>
<p>I anteckningarna sparas också positionen dom skrevs ifrån vilket gör att man kan sortera anteckningar utifrån platser dom skrev från också. Ljud, bilder och hela webbsidor kan man också spara direkt i Evernote. Ibland när jag inte hinner skriva en anteckning är det väldigt smidigt att spela in en snabb röstmemo för att komma ihåg en viss tanke eller idé.</p>
<p>Evernote är till och med så smart att det läser av text i de bilder du lägger in. Om du behöver komma ihåg något som tex står på en skylt så kan du fota skylten och lägga in i Evernote. Du kan sedan söka efter texten som står på skylten och Evernote hittar igen anteckningen. Suveränt!</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2876" title="evernote-devices" src="http://johannesholmberg.se/wp-content/uploads/evernote-devices.jpg" alt="" width="540" height="231" /></p>
<p></div>
<p>Det har även tillkommit funktionalitet för att dela anteckningar eller hela anteckningsböcker med andra Evernotekonton. Det innebär att man tex skulle kunna använda tjänsten i projekt där man är flera som ska kunna redigera samma texter.</p>
<h2>Det digitala konceptet</h2>
<p>Jag tycker det är beundransvärt det Evernote lyckats skapa, dom har verkligen gjort det fullständiga digitala konceptet &#8211; iPhone applikation, iPad applikation och Mac applikation. Och allt synkroniseras via molnet! Hur underbart är inte det?</p>
<h2>Sammanfattning om Evernote</h2>
<p>Evernote har idag ungefär 6 miljoner användare och är den anteckningstjänst som jag tror kommer växa än mer inom en kort framtid. Jag gillar Evernote!</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/varfor-evernote-ar-sa-bra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone applikationerna jag inte klarar mig utan</title>
		<link>http://johannesholmberg.se/iphone-applikationerna-jag-inte-klarar-mig-utan/</link>
		<comments>http://johannesholmberg.se/iphone-applikationerna-jag-inte-klarar-mig-utan/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 12:46:26 +0000</pubDate>
		<dc:creator>Johannes Holmberg</dc:creator>
				<category><![CDATA[Övrigt]]></category>
		<category><![CDATA[Applikationer]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://johannesholmberg.se/?p=2770</guid>
		<description><![CDATA[Ja kort och gott så serverar jag en lista på iPhone applikationer som jag helt enkelt inte kan klara mig utan. Kanske hittar du några guldkorn som du själv har missat på App Store.]]></description>
			<content:encoded><![CDATA[<p>Ja kort och gott så serverar jag en lista på iPhone applikationer som jag helt enkelt inte kan klara mig utan. Kanske hittar du några guldkorn som du själv har missat på App Store.</p>
<h2><a href="http://itunes.apple.com/se/app/evernote/id281796108?mt=8">Evernote</a></h2>
<p><a href="http://softtype.se/evernote-spara-noteringar-webbsidor-bilder-snabbt-och-enkelt/">Evernote är en fantastisk tjänst</a> som låter dig skapa anteckningar direkt i molnet. Jag använder deras iPhone applikation nästan dagligen för att skapa anteckningar och korta reminders när jag är ute och flänger.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2792 margin-right" title="evernote1" src="http://johannesholmberg.se/wp-content/uploads/evernote1.jpg" alt="" width="200" height="300" /><img class="alignnone size-full wp-image-2793" title="evernote2" src="http://johannesholmberg.se/wp-content/uploads/evernote2.jpg" alt="" width="200" height="300" /></p>
<p></div>
<h2><a href="http://itunes.apple.com/se/app/tv-nu/id284963557?mt=8">TV.nu</a></h2>
<p><a href="http://026media.se/tvnu-till-iphone/">Tv.nu är applikationen</a> som jag haft i princip sedan jag skaffade min iPhone. Det finns inget bättre sätt att kolla vad som går på tv än att slänga fram telefonen och dra igång appen. På några sekunder har jag full koll över tv-tablån.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2796 margin-right" title="tv1" src="http://johannesholmberg.se/wp-content/uploads/tv1.jpg" alt="" width="200" height="300" /><img class="alignnone size-full wp-image-2797" title="tv2" src="http://johannesholmberg.se/wp-content/uploads/tv2.jpg" alt="" width="200" height="300" /></p>
<p></div>
<h2><a href="http://itunes.apple.com/se/app/spotify/id324684580?mt=8">Spotify</a></h2>
<p><a href="http://johannesholmberg.se/nu-finns-spotify-for-iphone/">Så fort Spotify kom som en iPhone app</a> så blev jag premium användare hos tjänsten och det ångrar jag inte en sekund. Ni vet alla vad Spotify är och att kunna ha tillgång till all världens musik vart än du befinner dig är nästan för bra för att vara sant.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2806 margin-right" title="spotify1" src="http://johannesholmberg.se/wp-content/uploads/spotify1.jpg" alt="" width="200" height="287" /><img class="alignnone size-full wp-image-2807" title="spotify2" src="http://johannesholmberg.se/wp-content/uploads/spotify2.jpg" alt="" width="200" height="287" /></p>
<p></div>
<h2><a href="http://itunes.apple.com/us/app/cleartune-chromatic-tuner/id286799607?mt=8">Cleartune</a></h2>
<p>Så fort gitarren ska stämmas här hemma så kör jag igång Cleartune. Det är otroligt enkelt med en väldigt tydlig display och gitarren är stämd på ett par få sekunder.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2801 margin-right" title="cleatune1" src="http://johannesholmberg.se/wp-content/uploads/cleatune1.jpg" alt="" width="200" height="300" /><img class="alignnone size-full wp-image-2800" title="cleartune2" src="http://johannesholmberg.se/wp-content/uploads/cleartune2.jpg" alt="" width="200" height="300" /></p>
<p></div>
<h2><a href="http://itunes.apple.com/us/app/runkeeper-pro/id300235330?mt=8">Runkeeper PRO</a></h2>
<p>Ja det blir roligare att motionera när man använder <a href="http://runkeeper.com">Runkeeper</a>. Jag körde igång min löpträning under våren förra året och jag har Runkeeper att tacka för att jag än idag håller igång med min motion. Den är så enkel att använda, ett tryck i applikationen så är man igång. Runkeeper PRO kostar i vanliga fall 75 kr men under januari är den gratis (för att hjälpa människor infria sina nyårslöften <a href="http://blog.runkeeper.com/mobile-app/runkeeper-pro-is-free-through-the-month-of-january">säger Runkeeper själva</a>).</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2804 margin-right" title="runkeeperpro1" src="http://johannesholmberg.se/wp-content/uploads/runkeeperpro1.jpg" alt="runkeeperpro1" width="200" height="300" /><span style="font-size: 13px; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"><img class="alignnone size-full wp-image-2805" title="runkeeperpro2" src="http://johannesholmberg.se/wp-content/uploads/runkeeperpro2.jpg" alt="runkeeperpro2" width="200" height="300" /></span></p>
<p></div>
<h2><a href="http://itunes.apple.com/se/app/mina-utgifter/id358228999?mt=8">Mina utgifter</a></h2>
<p><a href="http://iphone24.se/bevaka-ekonomi-appmina-utgifter/">Den här iPhone applikationen</a> är väldigt bra för att hålla koll på hur du spenderar dina pengar. Jag kan säga att den har hjälpt mig att bland annat köpa mindre skräpmat eftersom jag svart på vitt kan se hur mycket jag lägger ut. Det ger en extra kick när man ser att det går åt rätt håll.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2802 margin-right" title="minautgifter1" src="http://johannesholmberg.se/wp-content/uploads/minautgifter1.jpg" alt="minautgifter1" width="200" height="300" /><img class="alignnone size-full wp-image-2803" title="minautgifter2" src="http://johannesholmberg.se/wp-content/uploads/minautgifter2.jpg" alt="minautgifter2" width="200" height="300" /></p>
<p></div>
<h2><a href="http://itunes.apple.com/us/app/target-weight-for-adults-personal/id338889966?mt=8">TargetWeight</a></h2>
<p>Det här är knappast den snyggaste applikationen för att hålla reda på din vikt men den gör verkligen det den ska och den har sporrat och hjälpt mig att gå ner de kilon som jag ville under förra året.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2810 margin-right" title="targetweight1" src="http://johannesholmberg.se/wp-content/uploads/targetweight1.jpg" alt="targetweight1" width="200" height="287" /><img class="alignnone size-full wp-image-2811" title="targetweight2" src="http://johannesholmberg.se/wp-content/uploads/targetweight2.jpg" alt="targetweight2" width="200" height="287" /></p>
<p></div>
<h2><a href="http://itunes.apple.com/us/app/wikiamo/id290882494?mt=8">Wikiamo</a></h2>
<p>Så fort det är något ämne som jag funderar över och vill veta mer om så använder jag Wikiamos iPhone app för att söka på Wikipedia. Jag gillar den, den är bara så smidig att använda.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2812" title="wikiamo1" src="http://johannesholmberg.se/wp-content/uploads/wikiamo1.jpg" alt="wikiamo1" width="200" height="288" /></p>
<p></div>
<h2><a href="http://itunes.apple.com/se/app/swedbank/id344161302?mt=8">Swedbank</a></h2>
<p><a href="http://iphone24.se/swedbank-forst-ut-med-bankapp/">Swedbanks applikation kom som en räddare i nöden</a> och har varit flitigt använd i min telefon. Det är så skönt att slippa fundera på ifall man har pengar på sitt betalkort innan man går hemifrån, jag kan föra över pengar medan jag är på väg till butiken istället.</p>
<div class="image-holder"></p>
<p><img class="alignnone size-full wp-image-2808 margin-right" title="swedbank1" src="http://johannesholmberg.se/wp-content/uploads/swedbank1.jpg" alt="swedbank1" width="200" height="300" /><img class="alignnone size-full wp-image-2809" title="swedbank2" src="http://johannesholmberg.se/wp-content/uploads/swedbank2.jpg" alt="swedbank2" width="200" height="300" /></p>
<p></div>
<p>Det här är de applikationer som jag använder i princip varje dag och som jag inte skulle klara mig utan. Har du några egna favoriter som är ett måste i din iOS enhet, dra en kommentar vetja!</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesholmberg.se/iphone-applikationerna-jag-inte-klarar-mig-utan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

