<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>E.Data Studios</title>
	
	<link>http://emerslund.no</link>
	<description />
	<lastBuildDate>Tue, 31 May 2011 19:54:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EdataStudios" /><feedburner:info uri="edatastudios" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>What’s the difference between designers and developers?</title>
		<link>http://feedproxy.google.com/~r/EdataStudios/~3/LbLZM03WwmI/</link>
		<comments>http://emerslund.no/whats-the-difference-between-designers-and-developers/#comments</comments>
		<pubDate>Tue, 31 May 2011 19:54:40 +0000</pubDate>
		<dc:creator>jorgen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emerslund.no/?p=607</guid>
		<description><![CDATA[When in the web domain, I find that the sought after skill is connected to what the user sees. Be it graphical elements, css art, user interface design, content strategies, copywriting or mobile adaption, to mention some examples – when looking for help, a buyer tends to view the needs from the perspective of the [...]]]></description>
			<content:encoded><![CDATA[<p>When in the web domain, I find that the sought after skill is connected to what the user sees. Be it graphical elements, css art, user interface design, content strategies, copywriting or mobile adaption, to mention some examples – when looking for help, a buyer tends to view the needs from the perspective of the user.</p>
<p>This is, of course, a necessary and good thing. But it poses some challenges for those of us working as developers.</p>
<p><a href="http://www.37signals.com">37Signals</a> advocates that everybody should be writers, and makes sure that the designers are the team leaders. I think this makes sense, especially for a distributed company. You will need to communicate, and the better you do it, the better off you are, and the more you get done. And last but not least, the better you communicate, the better you are at enabling others to get stuff done.</p>
<p>Designers as team leaders are a sensible idea. They are in charge of the communication. They might not always be the ones that are capable of implementing a complex algorithm, but they are the ones that bind together users and developers.</p>
<p>But I digress.</p>
<p>If you look at how the terms are used in everyday-lingo, the separation is even simpler. Developers make software, or web pages. Designers make them look good.</p>
<p>The lines are more blurry that that. Designers often implement their designs, and developers more times than not need to implement designs without support of artists. The skills aren’t mutually exclusive either.</p>
<p>But you’ll need to know what you are looking for. Know that more times than not creating a website is more than a single-person job, if it is to be done well. And, even though most is able to a certain degree to do both, be specific. Do you want a search interface, or the algorithm?</p>
<img src="http://feeds.feedburner.com/~r/EdataStudios/~4/LbLZM03WwmI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://emerslund.no/whats-the-difference-between-designers-and-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://emerslund.no/whats-the-difference-between-designers-and-developers/</feedburner:origLink></item>
		<item>
		<title>Lessons learned @ Grensesnittet Javascript meetup</title>
		<link>http://feedproxy.google.com/~r/EdataStudios/~3/nEMbLkcXBkY/</link>
		<comments>http://emerslund.no/lessons-learned-grensesnittet-javascript-meetup/#comments</comments>
		<pubDate>Fri, 13 May 2011 18:47:07 +0000</pubDate>
		<dc:creator>jorgen</dc:creator>
				<category><![CDATA[Technote]]></category>

		<guid isPermaLink="false">http://emerslund.no/?p=604</guid>
		<description><![CDATA[Two days ago, I attended the &#8220;Skriv bedre javascript&#8221; meetup in Trondheim. 7 quick lectures, 10 minutes each. One half broken iPhone as a notepad. parseInt has not one, but two parameters. Pass 10, and you&#8217;ll avoid silly problems because the passed string is interpreted as the wrong numeric system. If you use (for something [...]]]></description>
			<content:encoded><![CDATA[<p>Two days ago, I attended the &#8220;<a href="http://www.meetup.com/grensesnittet/events/17140842/">Skriv bedre javascript</a>&#8221; meetup in Trondheim.</p>
<p>7 quick lectures, 10 minutes each. One half broken iPhone as a notepad.</p>
<ul>
<li>parseInt has not one, but two parameters. Pass 10, and you&#8217;ll avoid silly problems because the passed string is interpreted as the wrong numeric system.</li>
<li>If you use (for something in yourarray), you&#8217;ll most likely end up with tons more of entries than expected. Better use <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty">HasOwnProperty</a>, or a regular for loop.</li>
<li>If you skip on the semi colons, the parser will guess what you were trying to say.</li>
<li>If you loop strings, string[i] == &#8216;A&#8217; is&#8230;. unstabile. Use string.charAt(i) == &#8216;A&#8217;</li>
<li>If your function takes time to complete, setInterval will get you into trouble, queuing calls to your function. Rewrite to use setTimeout at the end of the function instead.</li>
<li>eval is evil</li>
<li>Be aware of <a href="http://jibbering.com/faq/notes/closures/">closures</a></li>
<li>Javascript has packages</li>
<li><a href="http://javascript.crockford.com/">Douglas Crockford</a> knows javascript better than both you and I. No, really!</li>
<li>Javascript has global scope and function scope, but not block scope. Srry.</li>
<li>Hoisting has some rules about parsing variable declarations. If you run into weirdness problems, that might be the answer. Declare your variables at the top, please.</li>
<li>jsLint checks the quality of your code according to some criterias, but isn&#8217;t the one-stop solution.</li>
<li>Avoid alert and console.log. Both suck in all or some browsers (I&#8217;m looking at you, IE). Use a debugger framework, such as <a href="http://log4js.berlios.de/">log4js</a>, <a href="http://www.gscottolson.com/blackbirdjs/">blackbird</a> or <a href="http://benalman.com/projects/javascript-debug-console-log/">Ben Alman javascript debugger</a>.</li>
<li>Easy jquery plugins are&#8230;. well&#8230;. as easy as &#8230;. erhm&#8230;. let&#8217;s just say they are simple to implement.</li>
<li><a href="http://docs.jquery.com/UI_Developer_Guide#The_widget_factory">jquery UI Widget Factory</a> structures a way to create plugins. Part of <a href="http://jqueryui.com/">jquery UI</a>.</li>
<li>Cool stuff in the HTML5 js library: a few new calls, web storage, offline application cache api, web workers, web sockets, drag/drop, geo location, canvas and audio manipulation.</li>
<li>Same origin policy could have been a problem for js-based twitter clients, except for the entry of json-p.</li>
<li>Prezi is nice for presentations.</li>
<li><a href="http://ejohn.org/blog/javascript-micro-templating/">Microtemplates</a>, by a guy named John Reisig.</li>
</ul>
<p>And, at the top of this, some more details about Canvas and some of the stuff named here, that I just decided to Google when I need it. Two hours well spent.</p>
<p>This post is for the technical oriented among us. For the rest of you, sorry &#8211; we&#8217;ll get back to the regular broadcasting soon enough!</p>
<img src="http://feeds.feedburner.com/~r/EdataStudios/~4/nEMbLkcXBkY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://emerslund.no/lessons-learned-grensesnittet-javascript-meetup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://emerslund.no/lessons-learned-grensesnittet-javascript-meetup/</feedburner:origLink></item>
		<item>
		<title>Ta det piano</title>
		<link>http://feedproxy.google.com/~r/EdataStudios/~3/n-9oUnWEJeU/</link>
		<comments>http://emerslund.no/ta-det-piano/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 11:59:54 +0000</pubDate>
		<dc:creator>jorgen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emerslund.no/?p=501</guid>
		<description><![CDATA[Denne gangen tenkte jeg å kun vise et eksempel på bruk av jQuery. &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&#62; &#60;head&#62; &#60;title&#62;jQuery - ta det piano&#60;/title&#62; &#60;meta http-equiv="content-type" content="text/html; charset=utf-8"/&#62; &#60;script type="text/javascript" src="jquery-1.4.2.js"&#62;&#60;/script&#62; &#60;script type="text/javascript"&#62; $(document).ready(function() { displayKeys(); }); $(window).resize(function() { displayKeys(); }); function displayKeys() { $("body").html(''); // Piano layout coped [...]]]></description>
			<content:encoded><![CDATA[<p>Denne gangen tenkte jeg å kun vise et eksempel på bruk av jQuery.</p>
<pre class="php">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;jQuery - ta det piano&lt;/title&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&gt;
&lt;script type="text/javascript" src="jquery-1.4.2.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready(function() {
displayKeys();
});

$(window).resize(function() {
displayKeys();
});

function displayKeys() {
$("body").html('');

// Piano layout coped from the following image: http://en.wikipedia.org/wiki/File:D274.jpg,
// through the follwing article: http://en.wikipedia.org/wiki/Musical_keyboard

// Set up the keyboard container, which should hold all the keys
$("body").append('&lt;div id="pianocontainer"&gt;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
for(var i=1; i&lt;=7;i++) {
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');
}
$("#pianocontainer").append('&lt;div&gt;&amp;nbsp;&lt;/div&gt;');

// Style the container and the keys. This should be done through regular css in most of the cases,
// but we're using jquery, since this is what the tutorial is all about

// Doing static css assignments first, so these can be used in the calculations later
$("#pianocontainer").css('border', '1px solid gray');
$("div.pianokey").not("div.minorkey").css('float', 'left');
$("div.pianokey").not("div.minorkey").css('border', '1px solid lightgray');
$("div.minorkey").css('background-color', 'black');
$("div.minorkey").css('position', 'absolute');
$("#pianocontainer, div.pianokey").css('height', Math.min(200, $(document).height() * 2 / 3));

// Setting the width of each of the piano keys
$("div.pianokey").not("div.minorkey").css('width', ($("#pianocontainer").width() - 2) / $("div.pianokey").not("div.minorkey").length - 2 * $("div.pianokey").css('border').substring(0, $("div.pianokey").css('border').indexOf("px"))); // Requires the border to be specified in format of ("border: Xpx ..."), where X is the border width. Subtracting the left and right border in the width calculation

// Height and width of the minor keys
$("div.minorkey").css('height', $("#pianocontainer").height() * (2 / 3));                    // 2/3 of regular height
$("div.minorkey").css('width', $("div.pianokey").not("div.minorkey").width() * (2 / 3));    // 2/3 of regular width

// Each minor key is absolutely positioned - need to set left attribute based on their siblings
$.each($("div.minorkey"), function(key, element) {
$(element).css('left', $(element).next().position().left - $(element).width() / 2);
});
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Kopier koden over til et html-dokument, og vis det i nettleseren din.  Du skal da få se et piano. Foreløpig gjør dette pianoet ikke spesielt  mye, det skal vi prøve å få til etter hvert.</p>
<img src="http://feeds.feedburner.com/~r/EdataStudios/~4/n-9oUnWEJeU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://emerslund.no/ta-det-piano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://emerslund.no/ta-det-piano/</feedburner:origLink></item>
		<item>
		<title>$(“kaffe eller te”): Om å velge elementer med jQuery</title>
		<link>http://feedproxy.google.com/~r/EdataStudios/~3/sgsh47xlveQ/</link>
		<comments>http://emerslund.no/%e2%80%9ckaffe-eller-te%e2%80%9d-om-a-velge-elementer-med-jquery/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 12:00:42 +0000</pubDate>
		<dc:creator>jorgen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emerslund.no/?p=504</guid>
		<description><![CDATA[En av de viktigste… Den viktigste tingen du kan lære deg hvis du skal jobbe med jQuery – den viktigste tingen du må lære deg – er å bruke såkalte selectors. Det er ikke i nærheten av å være så skummelt som det kan høres ut – selectors er egentlig bare jQuery-språk for et uttrykk [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: line-through;">En av de viktigste…</span> Den viktigste tingen du kan lære deg hvis du skal jobbe med jQuery – den viktigste tingen <strong>du må lære deg</strong> – er å bruke såkalte selectors. Det er ikke i nærheten av å være så  skummelt som det kan høres ut – selectors er egentlig bare jQuery-språk  for et uttrykk som bestemmer hvilke html-element du vil jobbe med.</p>
<p>Jeg var såvidt innom selectors i forrige ukes introduksjonspost, men  det er et så viktig tema at det fortjener en egen uke. Hvis vi tar koden  vi lagde sist:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;Å begynne med jQuery&lt;/title&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&gt;
&lt;script type="text/javascript" src="jquery-1.4.2.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready(function() {
$("body").css('background-color', 'yellow');
});
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;Denne teksten skal bli grønn.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>I dette eksempelet bruker vi to selectors. document er den første, og  “body” er den andre. document står, sammen med window, litt i  særstilling – de fleste selectors skal stå i anførselstegn.</p>
<p>De gode nyhetene er at hvis du har drevet litt med css, så kjenner du  tegningen allerede – jQuery har gjort en veldig god innsats for å bruke  samme måte for å la oss velge et eller flere element som det css har.</p>
<p>De viktigste tingene å huske på:</p>
<ul>
<li>$(“.klassenavn”): Hvis du skal velge elementer med en gitt klasse, så velger du klassenavnet med et punktum foran.</li>
<li>$(“#id”): Hvis du skal velge et element med en gitt id, så velg med  en skigard (#) foran. Men husk på at hvis du bruker id-er, og det gjør  du fort, så må det bare være en av hver id i dokumentet ditt. Hvis ikke  blir den første valgt, og du blir forvirret <img src="../wp-includes/images/smilies/icon_smile.gif" alt=":)" /></li>
<li>Skal du velge et barn, for eksempel et p-element inni et  div-element, begge med gitt id, så kan du gjøre slik: $(“#div-element  &gt; #p-element”)</li>
<li>Hvis du ville velge begge to, så fungerer “(#div-element, #p-element”)</li>
<li>Du kan gjøre vanvittig mye, til og med en del ting du ikke kan i css – <a href="http://api.jquery.com/category/selectors/">jQuery Selectors-dokumentasjonen</a> har mye snadder du kan lese deg opp på.</li>
</ul>
<p>Så da modifiserer vi litt på forrige ukes kode, så skal du få et  eksempel å teste deg på – det kan godt hende du vil trenger  dokumentasjonen for å finne svaret.</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;Å begynne med jQuery&lt;/title&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&gt;
&lt;script type="text/javascript" src="jquery-1.4.2.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready(function() {
// Sett inn koden din her
});
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;Denne teksten skal bli grønn.&lt;/p&gt;
&lt;p&gt;Denne teksten skal bli blå.&lt;/p&gt;
&lt;p&gt;Denne teksten skal bli grønn.&lt;/p&gt;
&lt;p&gt;Denne teksten skal bli blå.&lt;/p&gt;
&lt;p&gt;Denne teksten skal bli grønn.&lt;/p&gt;
&lt;p&gt;Denne teksten skal bli blå.&lt;/p&gt;
&lt;p&gt;Denne teksten skal bli grønn.&lt;/p&gt;
&lt;p&gt;Denne teksten skal bli blå.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Kan du – uten å endre på selve html-koden – sørge for at de  forskjellige tekstavsnittene får de fargene de skal, og ikke blir  stående ufargelagt og flau. Det er flere måter å løse dette på.</p>
<p>Hvis du har lyst til å prøve deg, så post gjerne svar eller spørsmål i kommentarfeltet.</p>
<img src="http://feeds.feedburner.com/~r/EdataStudios/~4/sgsh47xlveQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://emerslund.no/%e2%80%9ckaffe-eller-te%e2%80%9d-om-a-velge-elementer-med-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://emerslund.no/%e2%80%9ckaffe-eller-te%e2%80%9d-om-a-velge-elementer-med-jquery/</feedburner:origLink></item>
		<item>
		<title>TechTips: Roundcube Webmail</title>
		<link>http://feedproxy.google.com/~r/EdataStudios/~3/VKy1P2EMEis/</link>
		<comments>http://emerslund.no/techtips-roundcube-webmail/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 18:04:30 +0000</pubDate>
		<dc:creator>jorgen</dc:creator>
				<category><![CDATA[TechTips]]></category>

		<guid isPermaLink="false">http://jorgenemerslund.blog.emerslund.no/?p=274</guid>
		<description><![CDATA[Et enkelt tips til deg som kjører din egen mailserver – særlig på Windows. Jeg har gjort dette et års tid nå, og lurer egnetlig på hvorfor jeg har brukt så lang tid på å sette opp webmail, sånn at det er mulig å sjekke mail uansett om jeg er ved min egen datamaskin eller [...]]]></description>
			<content:encoded><![CDATA[<p>Et enkelt tips til deg som kjører din egen mailserver – særlig på Windows. Jeg har gjort dette et års tid nå, og lurer egnetlig på hvorfor jeg har brukt så lang tid på å sette opp webmail, sånn at det er mulig å sjekke mail uansett om jeg er ved min egen datamaskin eller ikke.</p>
<p>RoundCube er en enkel, men veldig elegant webmailløsning. Installasjonen består av å dumpe filene på rett plass, konfigurere databasetilkoblingen, kjøre noen ferdiglagde databasespørringer og en 3-trinns enkel installasjon hvor stort sett alt går ut på å sjekke at man har de påkrevde php-modulene.</p>
<p>En av grunnene for at jeg valgte Roundcube var det enkle oppsettet – spesialdesignet for hMailServer som jeg kjører. I utgangspunktet så jeg på både Horde og SquirrelMail, men begge har oppsett som – kort oppsummert – er veldig mye mer klønete når jeg utvikler på Mac og kjører en Windows server.  Når jeg i tillegg ikke har spesielt store behov utover å kunne sjekke og svare på mail, var den ajax-baserte Roundcube et valg som falt naturlig.</p>
<p>Når det er sagt, dette er et førsteinntrykksomtale – jeg har hatt Roundcube installert i ca 1 døgn. Hvis jeg – mot formodning – skulle forandre mening så skal jeg selvfølgelig omtale dette senere.</p>
<img src="http://feeds.feedburner.com/~r/EdataStudios/~4/VKy1P2EMEis" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://emerslund.no/techtips-roundcube-webmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://emerslund.no/techtips-roundcube-webmail/</feedburner:origLink></item>
	</channel>
</rss>

