<?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>Blogg - Athega AB &#187; Selenium</title>
	<atom:link href="http://blogg.athega.se/tagg/selenium/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogg.athega.se</link>
	<description>...</description>
	<lastBuildDate>Thu, 18 Nov 2010 22:17:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Mountain.rb &#8211; Dag 3</title>
		<link>http://blogg.athega.se/2010/10/19/mountain-rb-3/</link>
		<comments>http://blogg.athega.se/2010/10/19/mountain-rb-3/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 16:42:21 +0000</pubDate>
		<dc:creator>Andrew Crookston</dc:creator>
				<category><![CDATA[Konferens]]></category>
		<category><![CDATA[Programmeringsspråk]]></category>
		<category><![CDATA[Öppen källkod]]></category>
		<category><![CDATA[Böcker]]></category>
		<category><![CDATA[Capybara]]></category>
		<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Evergreen]]></category>
		<category><![CDATA[Funktionellt]]></category>
		<category><![CDATA[Objektorienterat]]></category>
		<category><![CDATA[Parprogrammering]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Selenium]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=793</guid>
		<description><![CDATA[Keynote: Aaron Patterson (@tenderlove) - &#8221;Fear Driven Development&#8221;. Aaron öppnade med en kort presentation om hans professionella liv som utvecklare där han började med Perl 1999 och blev mer eller mindre tvingad att byta till Java 2002 som fortsatte till 2007 då han började använda Ruby. I och med att Aarons kunskaper kring Ruby ökade, ökade även [...]]]></description>
			<content:encoded><![CDATA[<h2>Keynote: Aaron Patterson (<a href="http://twitter.com/tenderlove"><span style="color: #000000;"><span style="color: #888888;">@tenderlove</span></span></a>) - &#8221;Fear Driven Development&#8221;.</h2>
<p><img class="alignright size-medium wp-image-898" title="mountain-rb-buddy-system" src="/wp-content/uploads/2010/10/mountain-rb-buddy-system-300x162.png" alt="" width="300" height="162" />Aaron öppnade med en kort presentation om hans professionella liv som utvecklare där han började med Perl 1999 och blev mer eller mindre tvingad att byta till Java 2002 som fortsatte till 2007 då han började använda Ruby.</p>
<p>I och med att Aarons kunskaper kring Ruby ökade, ökade även hans rädsla för att han inte kunde tillräckligt mycket – kanske något många kan relatera till? Detta var i alla fall ämnet för hans tal.</p>
<p>Hans tips för att motverka den känslan är att <em>&#8221;Läsa, Läsa, Läsa&#8221;</em> – varje dag, samt vad han gärna kallar <em>&#8221;The Buddy System&#8221;</em> eller i en något mer <img class="size-medium wp-image-899 alignright" title="mountain-rb-fear-exp" src="/wp-content/uploads/2010/10/mountain-rb-fear-exp-300x118.png" alt="" width="270" height="106" />bekant term Pair Programming. I Aarons fall fortsatte han lite längre och gick med i e-post listor för ruby-talk och ruby-core, började gå på massor av konferenser och även undervisa på ett lokalt universitet i Seattle.</p>
<p>En fras som är viktig i Aarons vardag är <em>&#8221;I don&#8217;t know&#8221;,</em> om man inte förstår något hjälper oftast personen du pratar med att lära dig och hjälpa dig förstå.</p>
<h2 style="display: block; clear: both; margin-top: 2em;">Jonathan Dahl (<a href="http://twitter.com/jondahl"><span style="color: #000000;"><span style="color: #888888;">@jondahl</span></span></a>) &#8211; &#8221;Programming and minimalism: lessons from Orwell and the Clash&#8221;.</h2>
<p>Jons presentation började med liknelser mellan programmerare och andra professioner. Bland annat:</p>
<ul>
<li>Ingenjörer: <em>&#8221;Not about building things – about building processes&#8221;</em> och <em>&#8221;Designing solutions to direct problems&#8221;</em></li>
<li>Hantverkare: Att ha rätt verktyg, kunskaper, jobbar i små team och att ha rätt vanor och rutiner.</li>
<li>Författare: Skriv, skriv, refaktorera</li>
</ul>
<p>Presentationen fortsatte med att antal musikdemonstrationer genom tiderna med exempel som Bach, Mozart, Mahler till lite mer nutida pop musik med Beatles och även punk musik. Han ville med dessa exempel demonstrera hur</p>
<p>Hans tips för att bli en bättre programmare är:</p>
<ul>
<li>Konsumera: Läs mycket och inte bara om det du gör</li>
<li>Studera &#8211; hur skriver andra?</li>
<li>Producera &#8211; ju mer du skriver desto bättre blir du</li>
</ul>
<blockquote><p><em>Not only is bad writing impossible to understand, it is buggy.</em></p></blockquote>
<h2>Tech Block #2</h2>
<p>Ett Tech Block består av tre kortare presentationer.</p>
<h3>Jim Remsick (<a href="http://twitter.com/jremsikjr"><span style="color: #888888;">@jremsikjr</span></a>) - &#8221;Functionally Equivalent&#8221;</h3>
<p><img class="alignright size-thumbnail wp-image-804" title="mountain-rb-bugs" src="http://blogg.athega.se/wp-content/uploads/2010/10/mountain-rb-bugs-150x150.png" alt="" width="150" height="150" />Jims tal var något kortare men med ett direkt budskap att förklara fördelarna med funktionell programmering som letade sig ner till dessa tre punkter:</p>
<ul>
<li>Kortfattat (mer koncist)</li>
<li>Trådbarhet (<em>Concurrency</em>)</li>
<li>Inga buggar<span style="color: #ff0000;">*</span> &#8211; Går att bevisa matematiskt</li>
</ul>
<p>Ruby är ett objektorienterat språk men det är inte helt ovanligt att skriva det i funktionell stil. Jim avslutade med en uppmaning</p>
<blockquote><p><em>Gå ut och prova något du inte är bekväm med.</em></p></blockquote>
<h3>CJ Kihlbom (<a href="http://twitter.com/cjkihlbom"><span style="color: #888888;">@cjkihlbom</span></a>) &#8211; &#8221;Frontend Testing Frontier&#8221;</h3>
<p>Det var extra kul att höra CJ tala då han kommer från Göteborg och driver firman Elabs. CJ/Elabs var också initiativtagarna till konferensen Nordic Ruby som Athega sponsrade och vi har bloggat om tidigare.</p>
<p>Elabs har länge lagt ett stort fokus på frontend testning där Elabs, Jonas Nicklas (<a href="http://twitter.com/jncoward"><span style="color: #888888;">@jncoward</span></a>) bland annat har gjort ett par stora bidrag till Ruby commityn via <a href="http://github.com/jnicklas/capybara">Capybara</a> och <a href="http://github.com/jnicklas/evergreen">Evergreen</a>. Detta var fokus för CJs tal.</p>
<p>CJ pratade om verktyg för integrationstestning:</p>
<ul>
<li><a href="http://cukes.info/">cucumber</a></li>
<li><a href="http://github.com/cavalle/steak">steak</a></li>
<li><a href="http://github.com/jnicklas/capybara">capybara</a></li>
</ul>
<p>Capybara är &#8221;driver agnostic&#8221; vilket innebär att man kan köra Capybara med hjälp av annan mjukvara som:</p>
<ul>
<li><a href="http://github.com/brynary/rack-test">rack-test</a></li>
<li><a href="http://selenium.rubyforge.org/">selenium</a></li>
<li><a href="http://htmlunit.sourceforge.net/">HTMLUnit</a> via <a href="http://celerity.rubyforge.org/">celerity</a>/<a href="http://github.com/langalex/culerity/">culerity</a>/<a href="http://github.com/bernerdschaefer/akephalos">akephalos</a></li>
<li><a href="http://www.envjs.com/">envjs</a> via <a href="http://github.com/smparkes/capybara-envjs">capybara-envjs</a></li>
</ul>
<p>JavaScript unit testing är inte så vanligt så CJ tog tillfället att berätta om ett bra alternativ nämligen <a href="http://github.com/pivotal/jasmine-gem">Jasmine</a> av Pivotal Labs, tillsammans med <a href="http://github.com/jnicklas/evergreen">Evergreen</a> av Jonas Nicklas. En riktigt bra feature med Evergreen är att man kan skriva sina JavaScript tester i <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a>. CoffeeScript är för JavaScript vad HAML/SASS är för HTML/CSS.</p>
<blockquote><p><em>Front end testing is NOT hard</em></p></blockquote>
<h3>Paul Sadauskas (<a href="http://twitter.com/theamazingrando"><span style="color: #888888;">@theamazingrando</span></a>) &#8211; Forms Don&#8217;t Have to be this Complicated</h3>
<blockquote><p><em>Forms Suck</em></p></blockquote>
<p>Paul pratade om hur krångliga fomulär kan vara i Rails, framförallt om man har <abbr title="has and belongs to many">HABTM</abbr> relationer mellan sina modeller. Eller ännu värre, nästlade formulär.</p>
<p><img class="alignright size-medium wp-image-809" title="mountain-rb-nested-forms-are-bad" src="http://blogg.athega.se/wp-content/uploads/2010/10/mountain-rb-nested-forms-are-bad-300x149.png" alt="" width="300" height="149" /></p>
<p>Paul visade exempel på krångliga formulär och olika lösningar, de inkluderade bland annat att ladda om hela sidan, olika sidor för olika formulärdelar eller att generera direkt från JavaScript.</p>
<p>Paul&#8217;s förslag till slut var att använda progressiv förbättring som laddar om sidan om man inte har JavaScript aktiverat men endast hämtar en partial via AJAX om man har JS aktiverat. Denna metod blir dessutom ganska enkel att testa.</p>
<h2>Blake Mizerany (<a href="http://twitter.com/bmizerany"><span style="color: #888888;"><span style="color: #000000;"><span style="color: #888888;">@bmizerany</span></span></span></a>) &#8211; 1000 ways to kill a Buffalo</h2>
<p><img class="alignright size-medium wp-image-911" title="Killing Buffalo" src="http://blogg.athega.se/wp-content/uploads/2010/10/killing_buffalo-300x210.jpg" alt="Killing Buffalo" width="300" height="210" /></p>
<p>Blake är uppfinnaren av <a href="http://sinatrarb.com">Sinatra</a> och jobbar till vardags på <a href="http://heroku.com/">Heroku</a> som har en intressant och mycket flexibel Rails</p>
<p>hosting med enkel Add-on arkitektur.</p>
<p>Blakes presentation tillhörde definitivt en av de mer humoristiska. I princip hela presentationen bestod av en serie tecknade figurer (&#8221;Ugh&#8221; grottmannen, hans familj och en buffel) ritade på en iPad i en rad olika situationer.</p>
<p>Presentationen (som kunde vart en säljpitch för Heroku) ville få oss att fokusera på problem istället för idéer, hur problem i vår vardag driver innovation och utveckling. För att knyta ihop med titeln var Blakes exempel på hur Ugh försökte jaga buffel på stenåldern.</p>
<p>Han pratade om hur man som Ruby on Rails utvecklare kan skriva små problemlösande add-ons till Heroku som andra utvecklare kan dra nytta av (och på så vis tjäna pengar).</p>
<p><img class="alignright size-medium wp-image-815" title="mountain-rb-thousands-of-developers" src="http://blogg.athega.se/wp-content/uploads/2010/10/mountain-rb-thousands-of-developers-300x141.png" alt="" width="240" height="113" />Heroku add-ons är små självständiga tjänster som man laddar upp i Heroku som i läggs på en Amazon EC2 instans. EC2 arkitekturen var ett starkt argument eftersom alla Heroku appar ligger i EC2 så är det extremt låg latens mellan instanserna (add-ons/appar), även internationellt och mellan kontinenter.</p>
<h2>Lightning talks</h2>
<p>Lightning talks är snabba presentationer, man har 5-7 minuter att lära ut något. Det var många snabbpresentationer men en som jag tycker var värd att nämna.</p>
<h3>Neal Enssle (<a href="http://twitter.com/nealenssle"><span style="color: #888888;">@nealenssle</span></a>) &#8211; How to be a better developer in 90 days</h3>
<p>Denna presentation var tre bok rekommendationer för alla som vill bli bättre utvecklare (inte bara Ruby/Rails). Tanken är att man ska läsa en bok per månad.</p>
<p><strong><a href="http://amzn.com/1934356344">The Passionate Programmer</a></strong><strong> &#8211; Chad Fowler</strong></p>
<ul>
<li>Om du inte bryr dig kommer det att märkas.</li>
<li>Var en generalist.</li>
<li>Gör det du kan &#8211; klaga inte, lös problem.</li>
<li>Kom ihåg vem du arbetar för &#8211; hur mycket värde tillför du?</li>
<li>Daglig framgång &#8211; vad åstadkom du idag?</li>
<li>Är du bättre idag än igår? (n + 1)</li>
</ul>
<p><strong><a href="http://amzn.com/0132350882">Clean Code</a> &#8211; Robert C. Martin</strong></p>
<ul>
<li>Semi-objektiv och praktisk.</li>
<li>Storleken spelar roll.</li>
<li>Gör en sak, på ett enda ställe.</li>
<li>Scout-regeln, lämna koden bättre än du hittade den.</li>
</ul>
<p><strong><a href="http://amzn.com/0321603508">Refactoring: Ruby edition</a> &#8211; Martin Fowler (m.fl.)</strong></p>
<ul>
<li>Koda för att öka förtroende för gammal kod</li>
<li><em>&#8221;Smells in code&#8221; </em>- motverka dålig kod, duplicering, långa funktioner m.m.</li>
<li>Självförklarande variabelnamn</li>
<li>60 refaktoreringsmönster</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2010/10/19/mountain-rb-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Den produktive programmeraren</title>
		<link>http://blogg.athega.se/2009/11/10/den-produktive-programmeraren/</link>
		<comments>http://blogg.athega.se/2009/11/10/den-produktive-programmeraren/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 22:14:26 +0000</pubDate>
		<dc:creator>Christian Lizell</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[Konferens]]></category>
		<category><![CDATA[Produktivitet]]></category>
		<category><![CDATA[clcl]]></category>
		<category><![CDATA[Doodim]]></category>
		<category><![CDATA[Google Desktop]]></category>
		<category><![CDATA[Jedi Concentrate]]></category>
		<category><![CDATA[Jumpcut]]></category>
		<category><![CDATA[Locus of Attention]]></category>
		<category><![CDATA[Neal Ford]]></category>
		<category><![CDATA[QuickSilver]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Textexpander]]></category>
		<category><![CDATA[The Productive Programmer]]></category>
		<category><![CDATA[Øredev]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=504</guid>
		<description><![CDATA[Ett sammandrag av Neal Ford's dragning "The Productive Programmer" på Øredev 2009. Detta är en rad tips, som alla syftar till att hjälpa dig bli en mer produktiv programmerare, oavsett om du använder emacs, notepad eller Eclipse.]]></description>
			<content:encoded><![CDATA[<p><a href="http://oreilly.com/catalog/9780596519544/"><img class="alignright" title="The Productive Programmer" src="http://covers.oreilly.com/images/9780596519544/lrg.jpg" alt="" width="108" height="142" /></a>En av de bättre dragningarna på årets <a href="http://www.oredev.org/">Øredev</a> var <a href="http://www.nealford.com/">Neal Ford</a>&#8216;s ”The Productive Programmer: Mechanics”. Neal har skrivit en <a href="http://oreilly.com/catalog/9780596519780/">bok</a> med samma namn, som jag hört litet blandad kritik om. Därför hade jag inga större förväntningar när jag klev in i rummet. Efter orden <em>”Graphical tools are med for novices”</em> visste jag att detta var något för mig!</p>
<p>Nedan följer en rad tips, som alla syftar till att hjälpa dig bli en mer produktiv programmerare, oavsett om du använder <a href="http://www.gnu.org/software/emacs/">emacs</a>, <a href="http://en.wikipedia.org/wiki/Notepad_%28Windows%29">notepad</a> eller <a href="http://www.eclipse.org/">Eclipse</a>.</p>
<h2>Urklippshanteraren (eller clipboard)</h2>
<p>Varför, varför finns det bara plats för ett urklipp i taget i dagens moderna operativsystem (*nix-dialekter undantagna)?</p>
<p>Det är ju helt tokigt att inte kunna gå tillbaka och ta fram något man kopierade eller klippte ut för bara några minuter sedan, bara för att man råkat svara på ett mail, mitt i ett enhetstest eller liknande. Lösningen finns i form av några hjälpprogram:</p>
<ul>
<li><a href="http://jumpcut.sourceforge.net/">Jumpcut</a> (Mac)</li>
<li><a href="http://www.nakka.com/soft/clcl/index_eng.html">clcl</a> (Windows)</li>
</ul>
<h2>Lär dig kortkommandon</h2>
<p>Tiden det tar att lära sig även det mest obskyra kortkommando är väl investerad tid. Varje gång dina fingrar måste lämna tangentbord slösar du med tid. Hitta en bra partner att parprogrammera med och be honom/henne raljera över hur långsam du är varje gång du använder musen.</p>
<h2>Scripta dina vanligast kommandon/texter</h2>
<p>Om du märker att du ofta skriver samma sak, skriver samma fel eller skriver samma sekvens av kommandon i en terminal, finns det hjälp. <a href="http://www.smileonmymac.com/TextExpander/">Textexpander</a> är ett litet makroverktyg som verkligen sparar tid. Du kan använda det till allt från epostsignaturer till kod-&#8221;snippets&#8221;.</p>
<p>Tyvärr kostar det pengar och finns det bara för Mac, men jag är övertygad om att det finns ett Windowsalternativ.</p>
<h2>”Locus of Attention”</h2>
<p>Att kunna fokusera och komma in i flytet (”the Flow” eller ”<a href="http://blogg.athega.se/2009/08/12/in-i-zonen-som-systemutvecklare/">the Zone</a>”) är lika viktigt som verktygen du använder. Om du programmerar vill du att <em>platsen för din uppmärksamhet</em> (fritt översatt) ska vara din IDE. Inte din klienter för IM, Twitter eller email, etc. Med den mängd information vi utsätts för varje minut är detta svårare och svårare.</p>
<ul>
<li>Stäng av dina klienter för epost, twitter och IM och uppdatera dig då och då när du tar en paus från programmerandet</li>
<li>Använd hörlurar för att visa att du inte vill bli störd</li>
<li>Inför tysta timmar på kontoret, exempelvis mellan 14 och 16 varje dag då du verkligen kan fokusera</li>
</ul>
<p>Neal menar exempelvis att Windows är som en treåring som konstant stör dig med påpekanden som ”<em>Du har oanvända ikoner på ditt skrivbord</em>&#8221;, ”<em>Ditt virtuella minne håller på att ta slut</em>” eller ”<em>Det finns säkerhetsuppdateringar till din dator</em>”. För att ytterligare hjälpa dig att minska störande moment finns det verktyg, skärm-dimmers, som sakta släcker ner allt förutom ditt akiva fönster:</p>
<ul>
<li><a href="http://www.lachoseinteractive.net/en/products/doodim/">Doodim</a> (Mac)</li>
<li><a href="http://www.anappaday.com/downloads/2006/09/day-10-jedi-concentrate.html">Jedi Concentrate</a> (Windows)</li>
</ul>
<h2>Sök</h2>
<p>En sökning slår alltid navigation med mus eller till och med tangentbord. Se till att du har en bra lokal sökmotor för din dator, som <a href="http://desktop.google.com/mac/">Google Desktop</a> (Mac/Windows) eller <a href="http://docs.blacktree.com/quicksilver/what_is_quicksilver">QuickSilver</a> (Mac). Neal menar att navigera i en trädstruktur i utforskaren eller i din IDE är som att berätta för datorn att du vet hur du använder musen. Om du vet vad filen heter &#8211; sök!</p>
<h2>Automatisera</h2>
<p>Ett spiffigt användningsområde för <a href="http://seleniumhq.org/">Selenium</a> är faktiskt att automatisera ditt iterativa testande. Du kanske felsöker en funktion som kräver att du klickar dig igenom en sekvens, fyller i litet testdata och till slut når fram till funktionen du felsöker. Denna process kan bli ganska trist att upprepa om och om igen. Med <a href="http://seleniumhq.org/projects/ide/">Seleniums IDE</a>, som du installerar som ett plugin till Firefox, kan du enkelt spela in sekvensen en gång och sedan spela upp den varje gång du vill testa. Eller som Neal uttrycker det; ”<em>You should never manually interact with the thing you are building unless you want to</em>”.</p>
<p>Han avslutar med tänkvärda ”<em>Solving problems by hand, makes you dumber</em>”. Word!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2009/11/10/den-produktive-programmeraren/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

