<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>peter.athega.se - Hem</title>
  <id>tag:peter.athega.se,2010:mephisto/</id>
  <generator version="0.8.0" uri="http://mephistoblog.com">Mephisto Drax</generator>
  <link href="http://peter.athega.se/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://peter.athega.se/" rel="alternate" type="text/html"/>
  <updated>2010-04-09T17:41:32Z</updated>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2010-04-09:91</id>
    <published>2010-04-09T17:30:00Z</published>
    <updated>2010-04-09T17:41:32Z</updated>
    <category term="bok"/>
    <category term="f&#246;retagande"/>
    <category term="jobb"/>
    <category term="tips"/>
    <link href="http://peter.athega.se/2010/4/9/rework" rel="alternate" type="text/html"/>
    <title>Rework</title>
<content type="html">
            &lt;p&gt;Det har än en gång blivit dags för en bokrekommendation och denna gång har jag läst &lt;a href=&quot;http://37signals.com/rework&quot;&gt;Rework&lt;/a&gt; vilket är &lt;a href=&quot;http://37signals.com&quot;&gt;37signals&lt;/a&gt; andra bok. Deras första bok, Getting Real har jag &lt;a href=&quot;http://peter.athega.se/2008/5/18/getting-real&quot;&gt;bloggat om tidigare&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/4505800814/&quot; title=&quot;Rework by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4042/4505800814_89b02bae59.jpg&quot; height=&quot;500&quot; alt=&quot;Rework&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Med undertiteln  “Change the way you work forever” sätter de genast tonen för boken och om man som jag har följt deras blogg &lt;a href=&quot;http://37signals.com/svn/&quot;&gt;Signal vs. Noise&lt;/a&gt; så kommer man att känna igen mycket av det som sägs i boken.&lt;/p&gt;

&lt;div class=&quot;note&quot;&gt;
“The real world isn’t a place, it’s an excuse. It’s a justification for not trying” &lt;div&gt;— Ignore the real world (Takedowns)&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Jason och David har lyckats samla ihop ett imponerande antal riktlinjer och tips för hur de tycker att man ska starta, driva och växa (eller inte växa) ett hållbart företag. &lt;/p&gt;

&lt;p&gt;Boken är uppdelad i de övergripande sektionerna Takedowns, Go, Progress, Productivity, Competitors, Evolution, Promotion, Hiring, Damage Control, Culture och Conclusion.&lt;/p&gt;

&lt;p&gt;Som en liten extra bonus så har &lt;a href=&quot;http://rohdesign.com&quot;&gt;Mike Rohde&lt;/a&gt; illustrerat varje kapitel med sin mycket uppskattade &lt;a href=&quot;http://www.flickr.com/photos/tags/sketchnote/&quot;&gt;sketchnote&lt;/a&gt;-stil.  &lt;/p&gt;

&lt;div class=&quot;note&quot;&gt;
“Don’t be afraid to show your flaws. Imperfections are real and people respond to real.” &lt;div&gt;— Nobody likes plastic flowers (Promotion)&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Även fast boken innehåller så mycket information går den lätt att läsa igenom på en kväll.&lt;/p&gt;

&lt;p&gt;Jag kan absolut rekomendera mina kollegor på &lt;a href=&quot;http://athega.se&quot;&gt;Athega&lt;/a&gt; att läsa den.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-08-27:86</id>
    <published>2009-08-27T00:00:00Z</published>
    <updated>2009-08-27T00:53:58Z</updated>
    <category term="bok"/>
    <category term="jobb"/>
    <category term="passion"/>
    <category term="programmering"/>
    <category term="tips"/>
    <link href="http://peter.athega.se/2009/8/27/the-passionate-programmer" rel="alternate" type="text/html"/>
    <title>The Passionate Programmer</title>
<content type="html">
            &lt;p&gt;Det har blivit dags för en bokrekommendation och denna gång har jag läst &lt;a href=&quot;http://www.pragprog.com/titles/cfcar2/the-passionate-programmer&quot;&gt;The Passionate Programmer&lt;/a&gt; av &lt;a href=&quot;http://chadfowler.com/&quot;&gt;Chad Fowler&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/3840599608/&quot; title=&quot;New books from AdLibris by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3454/3840599608_2cb3663077.jpg&quot; height=&quot;375&quot; alt=&quot;New books from AdLibris&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Med undertiteln “Creating a Remarkable Career in Software Development” så är det inte konstigt om man förväntar sig rätt mycket och jag tycker att Chad har lyckats bra med detta. &lt;/p&gt;

&lt;div class=&quot;note&quot;&gt;
“Too many of us seem to believe that specializing in something simply means not knowing about other things.” &lt;div&gt;— Be a Specialist (Kap. 8)&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Något man bör uppmärksamma är att detta är en reviderad version av &lt;i&gt;My Job Went to India: 52 Ways to Save Your Job&lt;/i&gt;, så om du redan läst den kanske det inte finns så mycket nytt att hämta.&lt;/p&gt;

&lt;p&gt;Bokens (korta) förord är skrivet av &lt;a href=&quot;http://www.loudthinking.com/&quot;&gt;David Heinemeier Hansson&lt;/a&gt; (Mest känd som skaparen av &lt;a href=&quot;http://rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Även om de flesta tipsen i boken är relativt självklara så är det trevligt att få dem uppradade på detta sätt. Varje kapitel avslutas med sektionen &lt;strong&gt;Act On It!&lt;/strong&gt; där man får konkreta tips om hur man ska applicera det man lärt sig i kapitlet på sitt eget arbete.&lt;/p&gt;

&lt;div class=&quot;note&quot;&gt;
“To find out whether you really know something, try teaching it to someone else.” &lt;div&gt;— Be a Mentor (Kap. 14)&lt;/div&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-08-26:85</id>
    <published>2009-08-26T23:00:00Z</published>
    <updated>2009-08-27T00:53:52Z</updated>
    <link href="http://peter.athega.se/2009/8/26/gott-och-blandat-7" rel="alternate" type="text/html"/>
    <title>Gott och Blandat #7</title>
<content type="html">
            &lt;p&gt;Den 19:e Augusti hände något oväntat, en av de största konstnärerna i Ruby-communityt, &lt;a href=&quot;http://en.wikipedia.org/wiki/Why_the_lucky_stiff&quot;&gt;why the lucky stiff&lt;/a&gt; raderade större delen av sin online identitet. Oväntat kanske är fel ord, då _why alltid har varit en smula oberäknelig.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2009/8/26/the.foxes-4d.png&quot; alt=&quot;Chunky Bacon!&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Som tur var så startades &lt;a href=&quot;http://github.com/whymirror&quot;&gt;whymirror&lt;/a&gt; relativt omedelbart. (Syftet är att samla alla _whys projekt)&lt;/p&gt;

&lt;h2&gt;MagickWand&lt;/h2&gt;

&lt;p&gt;Om man är ute efter ett alternativ till &lt;a href=&quot;http://rmagick.rubyforge.org/&quot;&gt;RMagick&lt;/a&gt; så kan man kika på &lt;a href=&quot;http://magickwand.rubyforge.org/&quot;&gt;MagickWand&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Exempel: Att skapa en tumnagel&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;require &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;magickwand&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;wand = &lt;span class=&quot;co&quot;&gt;MagickWand&lt;/span&gt;::&lt;span class=&quot;co&quot;&gt;Wand&lt;/span&gt;.new&lt;tt&gt;
&lt;/tt&gt;wand.read &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;shamrock.jpg&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;wand.resize_to_fill &lt;span class=&quot;i&quot;&gt;75&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;wand.modulate &lt;span class=&quot;i&quot;&gt;100&lt;/span&gt;, &lt;span class=&quot;i&quot;&gt;115&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;wand.write &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;thumbnail.jpg&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h2&gt;Compass&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://wiki.github.com/chriseppstein/compass&quot;&gt;Compass&lt;/a&gt; är ett meta-ramverk för CSS (Använder sig av &lt;a href=&quot;http://sass-lang.com/&quot;&gt;SASS&lt;/a&gt;) med stöd för &lt;a href=&quot;http://en.wikipedia.org/wiki/Mixin&quot;&gt;Mixins&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;ART &amp;amp;&amp;amp; CODE&lt;/h2&gt;

&lt;p&gt;Om &lt;a href=&quot;http://vvvv.org&quot;&gt;vvvv&lt;/a&gt;, &lt;a href=&quot;http://processing.org/&quot;&gt;Processing&lt;/a&gt;, &lt;a href=&quot;http://www.cycling74.com/products/max5&quot;&gt;Max/MSP/Jitter&lt;/a&gt; och &lt;a href=&quot;http://puredata.info&quot;&gt;Pure Data&lt;/a&gt; låter intressant så kan jag rekomendera &lt;a href=&quot;http://vimeo.com/sfci/videos/search:CODE/sort:newest&quot;&gt;videoklippen&lt;/a&gt; från konferensen ART &amp;amp;&amp;amp; CODE.&lt;/p&gt;

&lt;h2&gt;qTip&lt;/h2&gt;

&lt;p&gt;I veckan som gick behövde jag lägga till hjälpinformation i en applikation. Mitt önskemål var att hitta ett plugin till &lt;a href=&quot;http://jquery.com/&quot;&gt;jQuery&lt;/a&gt; för att göra pratbubblor och efter en stunds letande hittade jag &lt;a href=&quot;http://craigsworks.com/projects/qtip/&quot;&gt;qTip&lt;/a&gt;. Jag blev helt klart mäkta imponerad, speciellt av deras &lt;a href=&quot;http://craigsworks.com/projects/qtip/demos/&quot;&gt;demos&lt;/a&gt; och &lt;a href=&quot;http://craigsworks.com/projects/qtip/docs/&quot;&gt;dokumentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Exempel: Pratbubblor på alla länkar med title attribut&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;a[title]&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).qtip({ style: { name: &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;cream&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;, tip: &lt;span class=&quot;pc&quot;&gt;true&lt;/span&gt; } })&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h2&gt;&lt;a href=&quot;http://twitter.com/search?q=%23songsincode&quot;&gt;#songsincode&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Tweet meme som vägrar dö, nördigt men ganska kul :)&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;while&lt;/span&gt;(i++&amp;lt;&lt;span class=&quot;i&quot;&gt;100&lt;/span&gt;){ (new Balloon(&lt;span class=&quot;co&quot;&gt;Color&lt;/span&gt;.&lt;span class=&quot;co&quot;&gt;Red&lt;/span&gt;)).Go(); }&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;var u = {&lt;span class=&quot;r&quot;&gt;do&lt;/span&gt;(&lt;span class=&quot;co&quot;&gt;They&lt;/span&gt;.told==&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;ya&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;){ kill InNameOf(&lt;span class=&quot;co&quot;&gt;They&lt;/span&gt;); }&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;fear(&lt;span class=&quot;co&quot;&gt;REAPER&lt;/span&gt;);^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;^&lt;span class=&quot;co&quot;&gt;H&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;if&lt;/span&gt; status =&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;ready&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;co&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;not&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;co&quot;&gt;THEN&lt;/span&gt; getgps.localpos [&lt;span class=&quot;co&quot;&gt;TAB&lt;/span&gt;]&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;public bool &lt;span class=&quot;co&quot;&gt;NoSatisfaction&lt;/span&gt; { set { _noSatisfaction = value; } }&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-07-27:84</id>
    <published>2009-07-27T13:15:00Z</published>
    <updated>2009-07-27T13:37:19Z</updated>
    <category term="korg"/>
    <category term="nanopad"/>
    <category term="rails"/>
    <category term="sinatra"/>
    <category term="tips"/>
    <link href="http://peter.athega.se/2009/7/27/gott-och-blandat-6" rel="alternate" type="text/html"/>
    <title>Gott och Blandat #6</title>
<content type="html">
            &lt;h2&gt;Sinatra och Rails uppdaterade&lt;/h2&gt;

&lt;p&gt;För ett tag sedan uppdaterades &lt;a href=&quot;http://rubyonrails.org&quot;&gt;Ruby on Rails&lt;/a&gt; (2.3.3) och nu 
har även Sinatra fått en mindre uppdatering (0.9.4).&lt;/p&gt;

&lt;p&gt;Du kan läsa om förändringarna i Sinatra &lt;a href=&quot;http://groups.google.com/group/sinatrarb/browse_thread/thread/9dd996674da36833&quot;&gt;här&lt;/a&gt; 
och förändringarna i Rails &lt;a href=&quot;http://weblog.rubyonrails.org/2009/7/20/rails-2-3-3-touching-faster-json-bug-fixes&quot;&gt;här&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;KORG nanoPad&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;http://peter.athega.se/assets/2009/7/27/korg-nanopad.png&quot; alt=&quot;KORG Nanopad&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Jag har skaffat en &lt;a href=&quot;http://www.korgnano.com/&quot;&gt;KORG nanoPAD&lt;/a&gt; som som jag tänker 
kombinera med en KORG nanoKONTROL alternativt en &lt;a href=&quot;http://www.akaipro.com/lpd8&quot;&gt;AKAI LPD8&lt;/a&gt; 
även om den senare saknar faders.&lt;/p&gt;

&lt;p&gt;Ett tips är att mappa om X-axeln på touchplattan från Pitch Bend till CC0 
och sedan använda den för crossfade i till exempel 
&lt;a href=&quot;http://www.native-instruments.com/en/products/dj/traktor-pro/&quot;&gt;Native Instruments Traktor&lt;/a&gt; 
eller &lt;a href=&quot;http://www.ableton.com/&quot;&gt;Ableton Live&lt;/a&gt;, jag skulle dock föredragit om 
X/Y-plattan ersatts med en fader och några vridreglage.&lt;/p&gt;

&lt;h2&gt;Rekomenderad läsning&lt;/h2&gt;

&lt;h3&gt;Testning&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pathf.com/blogs/2009/07/elements-of-testing-style/&quot;&gt;Elements of Testing Style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://giantrobots.thoughtbot.com/2009/7/24/make-your-test-suite-uncomfortably-fast&quot;&gt;Make your test suite UNCOMFORTABLY FAST!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://themomorohoax.com/2009/04/22/8-tips-for-testing-rails-apps-with-cucumber&quot;&gt;8 tips for testing Rails apps with Cucumber&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Utvecklingsmiljö&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity&quot;&gt;Continuous Integration Testing for Ruby on Rails with Integrity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tagaholic.me/2009/07/16/bond-from-irb-with-completion-love.html&quot;&gt;Bond - From Irb With Completion Love&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://eizesus.com/2009/7/the-lazy-developer-tweak-your-mysql&quot;&gt;The Lazy developer: Tweak your MySQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Applikationer/Bibliotek&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://outoftime.github.com/sunspot/&quot;&gt;Sunspot: Solr-powered search for Ruby objects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Design&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.webdesignerdepot.com/2009/07/massive-compilation-of-designer-tools/&quot;&gt;Massive Compilation of Designer Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://carsonified.com/blog/design/30-essential-css3-resources/&quot;&gt;30 Essential CSS3 Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Ny skärm&lt;/h2&gt;

&lt;p&gt;Jag har äntligen tagit och skaffat en ny skärm, det blev en 23.6&#8221; (16:9, 1920x1080) 
BenQ G2412HD som både har DVI-D och HDMI, det enda som saknas nu är en 
DisplayPort → HDMI sladd, om det nu finns sådana.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/3752262881/&quot; title=&quot;New toys by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2464/3752262881_7b8c846b06.jpg&quot; height=&quot;375&quot; alt=&quot;New toys&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-03-05:81</id>
    <published>2009-03-05T03:17:00Z</published>
    <updated>2009-03-05T03:19:24Z</updated>
    <category term="Kod"/>
    <category term="datavisualisering"/>
    <category term="grafer"/>
    <category term="kod"/>
    <category term="ruby"/>
    <link href="http://peter.athega.se/2009/3/5/spent-per-day" rel="alternate" type="text/html"/>
    <title>Spent Per Day</title>
<content type="html">
            &lt;p&gt;Scriptet jag bloggade om tidigare är nu klart och jag kallar det &lt;a href=&quot;http://c7.se/code/spend-per-day/&quot;&gt;spent-per-day&lt;/a&gt;. Jag har använt mig av &lt;a href=&quot;http://nubyonrails.com/pages/gruff&quot;&gt;Gruff&lt;/a&gt; för att generera graferna och slutresultatet blev rätt stiligt.&lt;/p&gt;

&lt;p&gt;Det ligger självklart på &lt;a href=&quot;http://github.com/c7/spend-per-day&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Vad gör scriptet?&lt;/h2&gt;

&lt;p&gt;Genererar grafer utifrån datat på översiktssidan på &lt;a href=&quot;http://www.swedbank.se&quot;&gt;swedbank.se&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Hur ser graferna ut?&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://c7.se/code/spend-per-day&quot;&gt;&lt;img src=&quot;http://c7.se/code/spend-per-day/balance.png&quot; alt=&quot;Balance&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://c7.se/code/spend-per-day&quot;&gt;&lt;img src=&quot;http://c7.se/code/spend-per-day/spend-per-day.png&quot; alt=&quot;Spend Per Day&quot;&gt;&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-03-04:80</id>
    <published>2009-03-04T22:55:00Z</published>
    <updated>2009-03-04T22:55:43Z</updated>
    <category term="imagemagick"/>
    <category term="rmagick"/>
    <category term="ruby"/>
    <category term="script"/>
    <link href="http://peter.athega.se/2009/3/4/rmagick-pa-osx" rel="alternate" type="text/html"/>
    <title>RMagick p&#229; OS X</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://rmagick.rubyforge.org/&quot;&gt;&lt;img src=&quot;http://rmagick.rubyforge.org/decorations/logo-big.gif&quot; alt=&quot;RMagick&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Har suttit och kodat i några timmar och när jag nästan är klar så märker jag att jag inte hade installerat  &lt;a href=&quot;http://rmagick.rubyforge.org/&quot;&gt;RMagick&lt;/a&gt; på datorn. Och för att RMagick ska fungera så måste man såklart ha en fungerande &lt;a href=&quot;http://www.imagemagick.org/&quot;&gt;ImageMagick&lt;/a&gt; installation (eller &lt;a href=&quot;http://www.graphicsmagick.org/&quot;&gt;GraphicsMagick&lt;/a&gt; om man kör RMagick 1), detta har tidigare varit en aning krångligt. Även om man använt sig av &lt;a href=&quot;http://www.macports.org/&quot;&gt;MacPorts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Men nu är det bara att köra Rubyscriptet &lt;a href=&quot;http://rubyforge.org/projects/rmagick/&quot;&gt;rmagick-osx-installer&lt;/a&gt; för att få allt installerat som det ska.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090304-xak2wb4439665jk7th2hwgtb27.png&quot; alt=&quot;rmagick-osx-installer&quot; /&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-03-04:79</id>
    <published>2009-03-04T13:54:00Z</published>
    <updated>2009-03-04T14:01:29Z</updated>
    <category term="athega"/>
    <category term="blogg"/>
    <link href="http://peter.athega.se/2009/3/4/athegas-nya-blogg" rel="alternate" type="text/html"/>
    <title>Athegas nya blogg</title>
<content type="html">
            &lt;p&gt;Nu har jag satt upp &lt;a href=&quot;http://blogg.athega.se&quot;&gt;Athegas blogg&lt;/a&gt; och ni kommer att kunna läsa mina inlägg på &lt;a href=&quot;http://blogg.athega.se/author/peter/&quot;&gt;http://blogg.athega.se/author/peter/&lt;/a&gt;. Jag kommer fortsätta att blogga här men Athega-specifika poster kommer jag att skriva på sin rätta plats så att säga.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-02-27:78</id>
    <published>2009-02-27T17:01:00Z</published>
    <updated>2009-02-27T17:06:35Z</updated>
    <category term="Kod"/>
    <category term="yahoo"/>
    <category term="yql"/>
    <link href="http://peter.athega.se/2009/2/27/yahoo-query-language" rel="alternate" type="text/html"/>
    <title>Yahoo! Query Language</title>
<content type="html">
            &lt;p&gt;YQL gör det möjligt att hämta data från en mängd olika källor med ett SQL-liknande frågespråk. Man kan även använda det för sina egna applikationer.&lt;/p&gt;

&lt;h2&gt;Yahoo! kallar det:&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;&#8220;mediator service&#8221;&lt;/strong&gt; that enables developers to &lt;strong&gt;query&lt;/strong&gt;, &lt;strong&gt;filter&lt;/strong&gt;, and &lt;strong&gt;combine&lt;/strong&gt; data across Yahoo! and beyond.&lt;/p&gt;

&lt;div class=&quot;note&quot;&gt;&#8220;YQL går att beskriva som ett API för den publika webben&#8221;&lt;/div&gt;

&lt;h2&gt;Exempel&lt;/h2&gt;

&lt;h3&gt;YQL Fråga&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;SELECT url,title,abstract FROM &lt;span class=&quot;fu&quot;&gt;search&lt;/span&gt;.web WHERE query=&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;pizza&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h3&gt;REST URL (Returnerar JSONP)&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;http://query.yahooapis.com/v1/&lt;span class=&quot;r&quot;&gt;public&lt;/span&gt;/yql?q=select%20url%2Ctitle%2Cabstract&lt;tt&gt;
&lt;/tt&gt;%20from%20&lt;span class=&quot;fu&quot;&gt;search&lt;/span&gt;.web%20where%20query%3D%22pizza%22&amp;amp;format=json&amp;amp;callback=?&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Ersätt det avslutande frågetecknet med din callback-metod. Om du använder jQuery kommer den att sköta det åt dig.&lt;/p&gt;

&lt;h2&gt;Kod&lt;/h2&gt;

&lt;p&gt;Övningsuppgiften på gårdagens Athegatorsdag bestod i att man med data returnerat av en &lt;a href=&quot;http://developer.yahoo.com/yql/&quot;&gt;YQL&lt;/a&gt; sökning på &lt;a href=&quot;http://flickr.com&quot;&gt;Flickr&lt;/a&gt; samt jQuery skulle skapa ett bildgalleri.&lt;/p&gt;

&lt;h3&gt;Ett enkelt exempel:&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;15&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;25&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;26&lt;tt&gt;
&lt;/tt&gt;27&lt;tt&gt;
&lt;/tt&gt;28&lt;tt&gt;
&lt;/tt&gt;29&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;31&lt;tt&gt;
&lt;/tt&gt;32&lt;tt&gt;
&lt;/tt&gt;33&lt;tt&gt;
&lt;/tt&gt;34&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;35&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;36&lt;tt&gt;
&lt;/tt&gt;37&lt;tt&gt;
&lt;/tt&gt;38&lt;tt&gt;
&lt;/tt&gt;39&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;40&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;41&lt;tt&gt;
&lt;/tt&gt;42&lt;tt&gt;
&lt;/tt&gt;43&lt;tt&gt;
&lt;/tt&gt;44&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;45&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;46&lt;tt&gt;
&lt;/tt&gt;47&lt;tt&gt;
&lt;/tt&gt;48&lt;tt&gt;
&lt;/tt&gt;49&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&amp;lt;!DOCTYPE html PUBLIC &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;-//W3C//DTD XHTML 1.1//EN&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;tt&gt;
&lt;/tt&gt;&amp;lt;html xmlns=&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;http://www.w3.org/1999/xhtml&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;tt&gt;
&lt;/tt&gt;  &amp;lt;head&amp;gt;&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;title&amp;gt;Latest images tagged Athega&amp;lt;/title&amp;gt;&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;script &lt;span class=&quot;r&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;tt&gt;
&lt;/tt&gt;      src=&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;/script&amp;gt;&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;script &lt;span class=&quot;r&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;c&quot;&gt;// We don't want any conflicts&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      jQuery.noConflict();&lt;tt&gt;
&lt;/tt&gt;      &lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;c&quot;&gt;// SELECT * FROM flickr.photos.search &lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;c&quot;&gt;// WHERE text='Athega' LIMIT 8&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;r&quot;&gt;var&lt;/span&gt; query = &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;http://query.yahooapis.com/v1/public/yql?q=&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; + &lt;tt&gt;
&lt;/tt&gt;                  &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;select%20*%20from%20flickr.photos.search%20&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; +&lt;tt&gt;
&lt;/tt&gt;                  &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;where%20text%3D%22Athega%22%20limit%208&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; +&lt;tt&gt;
&lt;/tt&gt;                  &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;&amp;amp;format=json&amp;amp;callback=?&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;;&lt;tt&gt;
&lt;/tt&gt;      &lt;tt&gt;
&lt;/tt&gt;      &lt;span class=&quot;c&quot;&gt;// Get the data&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      (&lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;($) {&lt;tt&gt;
&lt;/tt&gt;        $.getJSON(query, &lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;(yql) {&lt;tt&gt;
&lt;/tt&gt;          $.each(yql.query.results.photo, &lt;tt&gt;
&lt;/tt&gt;          &lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;(index, photo) {&lt;tt&gt;
&lt;/tt&gt;            &lt;span class=&quot;c&quot;&gt;// Build the url&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;            photo.url = &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;http://farm&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; + photo.farm + &lt;tt&gt;
&lt;/tt&gt;                        &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;.static.flickr.com/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; + photo.server + &lt;tt&gt;
&lt;/tt&gt;                        &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; + photo.id + &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt; + photo.secret + &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;_s.jpg&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;;&lt;tt&gt;
&lt;/tt&gt;            &lt;tt&gt;
&lt;/tt&gt;            &lt;span class=&quot;c&quot;&gt;// Create and append the img to the #images div&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;            $(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;&amp;lt;img /&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).attr({ &lt;tt&gt;
&lt;/tt&gt;              src: photo.url, &lt;tt&gt;
&lt;/tt&gt;              title: photo.title&lt;tt&gt;
&lt;/tt&gt;            }).appendTo(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;#images&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;            &lt;tt&gt;
&lt;/tt&gt;          });&lt;tt&gt;
&lt;/tt&gt;        });&lt;tt&gt;
&lt;/tt&gt;      })(jQuery);&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;/script&amp;gt;&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;style &lt;span class=&quot;r&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;text/css&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;tt&gt;
&lt;/tt&gt;      #images {&lt;tt&gt;
&lt;/tt&gt;        width: 300px;&lt;tt&gt;
&lt;/tt&gt;      }&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;/style&amp;gt;&lt;tt&gt;
&lt;/tt&gt;  &amp;lt;/head&amp;gt;&lt;tt&gt;
&lt;/tt&gt;  &amp;lt;body&amp;gt;&lt;tt&gt;
&lt;/tt&gt;    &amp;lt;div id=&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;images&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;tt&gt;
&lt;/tt&gt;  &amp;lt;/body&amp;gt;&lt;tt&gt;
&lt;/tt&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h2&gt;Mer information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.yahoo.com/yql/&quot;&gt;Yahoo! Query Language&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ajaxian.com/archives/yql-converting-the-web-to-json-with-mock-sql&quot;&gt;Ajaxian&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-02-27:77</id>
    <published>2009-02-27T15:30:00Z</published>
    <updated>2009-02-27T15:49:19Z</updated>
    <category term="Kod"/>
    <category term="javascript"/>
    <category term="jquery"/>
    <link href="http://peter.athega.se/2009/2/27/introduktion-till-jquery" rel="alternate" type="text/html"/>
    <title>Introduktion till jQuery</title>
<content type="html">
            &lt;h2&gt;Vad är jQuery?&lt;/h2&gt;

&lt;p&gt;Ett open source JavaScript bibliotek som förenklar interaktionen mellan HTML och JavaScript.&lt;/p&gt;

&lt;p&gt;jQuery är byggt runt CSS selektorer (CSS 1, 2 och 3) och sedan en tid använder man motorn Sizzler för att hantera de tunga lyften.&lt;/p&gt;

&lt;p&gt;jQuery fyllde tre år den 14:e januari, version 1.3 släpptes samma dag.&lt;/p&gt;

&lt;h2&gt;Lätt att använda&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Helt unobtrusive&lt;/li&gt;
&lt;li&gt;Använder CSS för att applicera funktionalitet&lt;/li&gt;
&lt;li&gt;Lätt att separera beteende&lt;/li&gt;
&lt;li&gt;Snabb, &#8220;kärnfull&#8221; syntax&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;note&quot;&gt;&#8220;Fokus för jQuery är att &lt;strong&gt;hitta några element&lt;/strong&gt;, och sedan &lt;strong&gt;göra något med dem&lt;/strong&gt;&#8221;&lt;/div&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).addClass(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;special&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h2&gt;Varför jQuery?&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Väldokumenterat&lt;/li&gt;
&lt;li&gt;Vältestat (1500+ tester)&lt;/li&gt;
&lt;li&gt;Gratis, öppen källkod
&lt;ul&gt;
&lt;li&gt;GPL eller MIT (dubbellicensierad)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Lättviktigt
&lt;ul&gt;
&lt;li&gt;19kB (Minifierad och Gzippad)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Massor av plugins&lt;/li&gt;
&lt;li&gt;Fri hosting hos Google (vafritt)&lt;/li&gt;
&lt;li&gt;Fantastisk community&lt;/li&gt;
&lt;li&gt;Allt fungerar i IE 6+, FF 2+, Safari 3+, Opera 9+ samt Chrome.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Vem använder jQuery?&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Projekt
&lt;ul&gt;
&lt;li&gt;Wordpress, Drupal, CakePHP, Textpattern, Mozilla&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Företag
&lt;ul&gt;
&lt;li&gt;Google, IBM, Amazon, Digg, Netflix, Dell, HP, Bank of America, Intel, NBC, CBS, BBC, Reuters, Newsweek, Boston Globe, Fler..&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Många fler&#8230;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Prestanda&lt;/h2&gt;

&lt;p&gt;Den senaste versionen (&lt;a href=&quot;http://docs.jquery.com/Release:jQuery_1.3.2&quot;&gt;1.3.2&lt;/a&gt;) släpptes den 20:e februari och den innehåller ett flertal prestandaförbättringar:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://docs.jquery.com/Release:jQuery_1.3.2#Performance&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3469/3296388756_c97a76c574.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://docs.jquery.com/Release:jQuery_1.3.2#Performance&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3409/3296388660_8a9b9f0a2d.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://docs.jquery.com/Release:jQuery_1.3.2#Performance&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3316/3295562379_a135369a0f.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Tillgänglighet&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tangentbord&lt;/li&gt;
&lt;li&gt;Skärmläsare&lt;/li&gt;
&lt;li&gt;Bidrag från Mozilla Foundation för att implementera &lt;a href=&quot;http://www.w3.org/TR/wai-aria/&quot;&gt;WAI-ARIA&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Kod&lt;/h1&gt;

&lt;h2&gt;Plugins&lt;/h2&gt;

&lt;p&gt;jQuery är tänkt att byggas ut med hjälp av plugins.&lt;/p&gt;

&lt;p&gt;Att lägga på nya metoder:&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;jQuery(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).hideRemove();&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Trivialt att implementera:&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;jQuery.fn.hideRemove = &lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;(speed) {&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;r&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pc&quot;&gt;this&lt;/span&gt;.hide(speed, &lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;() {&lt;tt&gt;
&lt;/tt&gt;    jQuery(&lt;span class=&quot;pc&quot;&gt;this&lt;/span&gt;).remove();&lt;tt&gt;
&lt;/tt&gt;  });&lt;tt&gt;
&lt;/tt&gt;};&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Exempel på plugins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.jquery.com/Plugins:Forms&quot;&gt;Forms&lt;/a&gt;: bättre hantering av formulär&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.jquery.com/Plugins/dimensions&quot;&gt;Dimensions&lt;/a&gt;: mängder av mått på webbläsarfönstret&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jqueryui.com/&quot;&gt;UI&lt;/a&gt;: drag och släpp, widgets, teman&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plugins.jquery.com/project/jgcharts&quot;&gt;jQuery Google Charts&lt;/a&gt;: Wrapper runt Google Charts API:et&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mer information &lt;a href=&quot;http://plugins.jquery.com/&quot;&gt;http://plugins.jquery.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Konflikter&lt;/h2&gt;

&lt;p&gt;Till skillnad från många andra JavaScript ramverk så är utvecklarna av jQuery måna om att inte skräpa ner i det globala namnutrymmet. Man behöver inte ens exponera $-metoden om man inte vill.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;jQuery.noConflict();&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;jQuery(&lt;span class=&quot;pt&quot;&gt;document&lt;/span&gt;).ready(&lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;(){&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;c&quot;&gt;// Din egen kod&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;});&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Man kan dock fortfarande använda sig av $ om man skickar in jQuery i en anonym metod.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;(&lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;($) { &lt;span class=&quot;c&quot;&gt;/* Kod som använder sig av $ */&lt;/span&gt; })(jQuery)&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Mer information &lt;a href=&quot;http://docs.jquery.com/Using_jQuery_with_Other_Libraries&quot;&gt;http://docs.jquery.com/Using_jQuery_with_Other_Libraries&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Exempel&lt;/h2&gt;

&lt;h3&gt;jQuery() funktionen&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;jQuery(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div#intro h2&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;jQuery(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section &amp;gt; p&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;jQuery(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;input:radio&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div#intro h2&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h3&gt;jQuery kollektioner&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;); &lt;span class=&quot;c&quot;&gt;// returnerar en kollektion&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h4&gt;Man kan göra metodanrop till kollektioner&lt;/h4&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).size(); &lt;span class=&quot;c&quot;&gt;// Antal element som matchades av selektorn&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).each(&lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;(div) {&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;c&quot;&gt;// Manipulation av div elementet&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;});&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h4&gt;Manipulera hela kollektioner&lt;/h4&gt;

&lt;p&gt;De flesta jQuery metoderna opererar på alla matchade element i en kollektion.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).addClass(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;highlighted&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;img.photo&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).attr(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;/default.png&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;a.foo&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).html(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;&amp;lt;em&amp;gt;Click me now!&amp;lt;/em&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;p:odd&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).css(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;#ccc&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h3&gt;Hämta värden&lt;/h3&gt;

&lt;p&gt;Några metoder returnerar värdet på det &lt;em&gt;först&lt;/em&gt; matchade elementet.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;r&quot;&gt;var&lt;/span&gt; height = $(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div#intro&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).height();&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;var&lt;/span&gt; src = $(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;img.photo&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).attr(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;&lt;span class=&quot;r&quot;&gt;var&lt;/span&gt; lastP = $(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;p:last&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).html();&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h3&gt;Traversera DOM:en&lt;/h3&gt;

&lt;p&gt;jQuery tillhandahåller förbättrade metoder för att traversera DOM:en.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).next();&lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).prev();&lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).prev(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).parent();&lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div.section&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).parents();&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h3&gt;Hantera events&lt;/h3&gt;

&lt;p&gt;jQuery tillhandahåller metoder för att tilldela event handlers.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).click(&lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;(ev) {&lt;tt&gt;
&lt;/tt&gt;  $(&lt;span class=&quot;pc&quot;&gt;this&lt;/span&gt;).css({backgroundColor:&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;orange&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;});&lt;tt&gt;
&lt;/tt&gt;  ev.preventDefault();&lt;tt&gt;
&lt;/tt&gt;});&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h3&gt;Unobtrusive JavaScript&lt;/h3&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;pt&quot;&gt;document&lt;/span&gt;).ready(&lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;() {&lt;tt&gt;
&lt;/tt&gt;  &lt;span class=&quot;fu&quot;&gt;alert&lt;/span&gt;(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;The DOM is ready!&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;tt&gt;
&lt;/tt&gt;});&lt;tt&gt;
&lt;/tt&gt;    &lt;tt&gt;
&lt;/tt&gt;$(&lt;span class=&quot;r&quot;&gt;function&lt;/span&gt;() { &lt;span class=&quot;fu&quot;&gt;alert&lt;/span&gt;(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;This is a shortcut&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;) });&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Mer information &lt;a href=&quot;http://en.wikipedia.org/wiki/Unobtrusive_JavaScript&quot;&gt;http://en.wikipedia.org/wiki/Unobtrusive_JavaScript&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Kedja metodanrop&lt;/h3&gt;

&lt;p&gt;Alla jQuery metoder returnerar ett nytt jQuery objekt, detta gör att man kan kedja ihop metoderna efter varandra.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;h1&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).fadeOut().addClass(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;highlight&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).fadeIn();&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h3&gt;Ajax&lt;/h3&gt;

&lt;p&gt;jQuery har bra stöd för Ajax och Ajax-liknande funktionalitet som JSONP.&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;div#intro&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;).&lt;span class=&quot;fu&quot;&gt;load&lt;/span&gt;(&lt;span class=&quot;s&quot;&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;/some/file.html&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;/span&gt;);&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Några mer avancerade metoder:&lt;/p&gt;

&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;$.get(url, params, callback);&lt;tt&gt;
&lt;/tt&gt;$.post(url, params, callback);&lt;tt&gt;
&lt;/tt&gt;$.getJSON(url, params, callback);&lt;tt&gt;
&lt;/tt&gt;$.getScript(url, callback);&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;h1&gt;Övrigt&lt;/h1&gt;

&lt;h2&gt;Microsoft och Nokia &amp;lt;3 jQuery&lt;/h2&gt;

&lt;p&gt;Microsoft har beslutat att skeppa stöd för jQuery i kommande versioner av Visual Studio. 
Detta inkluderar officiellt stöd för jQuery Intellisense.&lt;/p&gt;

&lt;p&gt;Nokia har meddelat att de kommer att använda jQuery i sin WebKit-baserade &lt;a href=&quot;http://www.s60.com/life/thisiss60/s60indetail/technologiesandfeatures/webruntime&quot;&gt;Web Run-Time&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Mer information &lt;a href=&quot;http://blog.jquery.com/2008/09/28/jquery-microsoft-nokia/&quot;&gt;http://blog.jquery.com/2008/09/28/jquery-microsoft-nokia/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Google AJAX Libraries&lt;/h2&gt;

&lt;p&gt;Google tillhandahåller ett &lt;a href=&quot;http://en.wikipedia.org/wiki/Content_Delivery_Network&quot;&gt;CDN&lt;/a&gt; för ett flertal olika ramverk, jQuery är ett av dem.&lt;/p&gt;

&lt;p&gt;Mer information &lt;a href=&quot;http://code.google.com/apis/ajaxlibs/&quot;&gt;http://code.google.com/apis/ajaxlibs/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Dokumentation och presentationer&lt;/h2&gt;

&lt;p&gt;API Dokumentationen för jQuery hittar man på &lt;a href=&quot;http://api.jquery.com/&quot;&gt;http://api.jquery.com/&lt;/a&gt; där man även kan installera en AIR-version.&lt;/p&gt;

&lt;p&gt;John Resig&#8217;s presentation &lt;a href=&quot;http://www.slideshare.net/jeresig/learning-jquery-mit&quot;&gt;Learning jQuery @ MIT&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-02-23:76</id>
    <published>2009-02-23T11:21:00Z</published>
    <updated>2009-02-23T14:40:38Z</updated>
    <category term="iphone"/>
    <category term="kaffe"/>
    <category term="sn&#246;"/>
    <category term="thailand"/>
    <link href="http://peter.athega.se/2009/2/23/hemma-i-sverige" rel="alternate" type="text/html"/>
    <title>Hemma i Sverige</title>
<content type="html">
            &lt;p&gt;Efter en månad på Thailändska stränder och klippväggar har jag kommit hem till ett något  &lt;strong&gt;kyligare&lt;/strong&gt; Sverige. Chocken inleddes med -5°C och snörök i Helsingfors, väl hemma i Stockholm var det lite mildare.. bara -1°C.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/3302659189/&quot; title=&quot;The view from Hat Lao Liang by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3508/3302659189_efe29f7955.jpg&quot; height=&quot;375&quot; alt=&quot;The view from Hat Lao Liang&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;
&lt;small&gt;Utsikten från hängmattan på &lt;a href=&quot;http://www.laoliangresort.com/&quot;&gt;Lao Liang&lt;/a&gt;. (Fler &lt;a href=&quot;http://www.xsitediving.com/eng/gallery.asp&quot;&gt;bilder&lt;/a&gt; från stranden)&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;Nu har jag fullt upp med att komma ikapp med vad som hänt i Rails och Javascript-världen, vilka apps jag ska installera på min nya &lt;a href=&quot;http://www.apple.com/se/iphone/&quot;&gt;iPhone&lt;/a&gt; och att gå igenom vad jag ska jobba med den närmsta tiden.&lt;/p&gt;

&lt;p&gt;Min kompis &lt;a href=&quot;http://twitter.com/jlind&quot;&gt;Johan&lt;/a&gt; försökte förgäves att ladda ner screencasten &lt;a href=&quot;http://peepcode.com/products/objective-c-for-rubyists&quot;&gt;Objective-C for Rubyists&lt;/a&gt; från &lt;a href=&quot;http://peepcode.com&quot;&gt;PeepCode&lt;/a&gt; över wlanet på &lt;a href=&quot;http://countryside-resort.com&quot;&gt;Countryside Resort&lt;/a&gt; på Ton Sai. Av beskrivningen att dömma så verkar den passa mig rätt bra, men om någon har förslag på bra böcker om Objective-C så är det bara att kommentera eller ännu bättre att tweeta (&lt;a href=&quot;http://twitter.com/peterhellberg&quot;&gt;@peterhellberg&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/3303484508/&quot; title=&quot;Chillout coffee boat by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3511/3303484508_6c2f6aa5e9.jpg&quot; height=&quot;375&quot; alt=&quot;Chillout coffee boat&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;
&lt;small&gt;Mycket kan man säga om kaffet i Thailand, men bra.. det är det inte.&lt;/small&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-01-16:75</id>
    <published>2009-01-16T17:30:00Z</published>
    <updated>2009-01-16T17:43:45Z</updated>
    <category term="Fredagsrapporter"/>
    <category term="b&#246;cker"/>
    <category term="flickr"/>
    <category term="jquery"/>
    <category term="lokalisering"/>
    <category term="prototyp"/>
    <link href="http://peter.athega.se/2009/1/16/fredagsrapport-vecka-3-2009" rel="alternate" type="text/html"/>
    <title>Fredagsrapport vecka 3, 2009</title>
<content type="html">
            &lt;p&gt;Under veckan har jag och Micke 1 avslutat arbetet med prototypen, det kommer att ske en presentation den 3:e februari och sen får vi se om projektet blir av.&lt;/p&gt;

&lt;h2&gt;Vad skall jag jobba med nästa vecka&lt;/h2&gt;

&lt;p&gt;Jag kommer att kika på lokalisering till nytt språk av befintlig webbplats för en ny kund, vet inte så mycket mer om det projektet än.&lt;/p&gt;

&lt;h2&gt;Vad skall jag göra i helgen/vad händer privat&lt;/h2&gt;

&lt;p&gt;Jag kommer att fortsätta att försöka hitta en &lt;strong&gt;olåst&lt;/strong&gt; iPhone till vettigt pris och förhoppningsvis börja läsa någon av böckerna jag fick från Amazon igår.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/3198957351/&quot; title=&quot;New books by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3344/3198957351_dddc8079b2.jpg&quot; height=&quot;375&quot; alt=&quot;New books&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Övrigt&lt;/h2&gt;

&lt;h3&gt;jQuery 1.3.0&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://jquery.com&quot;&gt;&lt;img src=&quot;/assets/2009/1/16/jquery.png&quot; alt=&quot;jQuery&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;jQuery har fyllt tre år, och lagom till födelsedagen lanserade de en ny version. Versionen i fråga är jQuery 1.3, fylld med fixar och nyheter. Även hastigheten är avsevärt förbättrad.&lt;/p&gt;

&lt;p&gt;Förutom själva biblioteket så har dokumentation i form av en Adobe AIR applikation släppts. Den går att ladda ner på &lt;a href=&quot;http://api.jquery.com/&quot;&gt;http://api.jquery.com/&lt;/a&gt; (Där man såklart även kan läsa dokumentationen)&lt;/p&gt;

&lt;h3&gt;Flickr: Nearby&lt;/h3&gt;

&lt;p&gt;Flickr har släppt en ny funktion för att hitta foton i närheten. Ett exempel hittar man på &lt;a href=&quot;http://flickr.com/photos/peterhellberg/2848071666/nearby&quot;&gt;http://flickr.com/photos/peterhellberg/2848071666/nearby&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://flickr.com/photos/peterhellberg/2848071666/nearby&quot;&gt;&lt;img src=&quot;/assets/2009/1/16/flickr_nearby.png&quot; alt=&quot;Flickr Nearby&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2009-01-09:74</id>
    <published>2009-01-09T18:05:00Z</published>
    <updated>2009-01-16T17:50:23Z</updated>
    <category term="Fredagsrapporter"/>
    <category term="asus"/>
    <category term="eee"/>
    <category term="f&#246;rkylning"/>
    <category term="jquery"/>
    <category term="keyboard"/>
    <category term="mod_rails"/>
    <category term="passenger"/>
    <category term="prototyp"/>
    <category term="rails"/>
    <link href="http://peter.athega.se/2009/1/9/fredagsrapport-vecka-2-2009" rel="alternate" type="text/html"/>
    <title>Fredagsrapport vecka 2, 2009</title>
<content type="html">
            &lt;p&gt;Under mellandagarna har jag jobbat vidare med projektet som till största delen bygger på en frontend skriven med hjälp av &lt;a href=&quot;http://jquery.com&quot;&gt;jQuery&lt;/a&gt; och &lt;a href=&quot;http://rubyonrails.org&quot;&gt;Rails&lt;/a&gt; som backend. Jag blir bara mer och mer förtjust i &lt;a href=&quot;http://jquery.com&quot;&gt;jQuery&lt;/a&gt; för varje dag som går och jag kommer absolut att kolla på &lt;a href=&quot;http://ennerchi.com/projects/jrails&quot;&gt;jRails&lt;/a&gt; nästa gång jag ska utveckla en &#8220;vanlig&#8221; webbplats. &lt;/p&gt;

&lt;p&gt;Jag hjälpt Stina och Robert med lite grundarbete inför offerten de ska skriva och diskuterat PDF-generering från HTML med Johan.&lt;/p&gt;

&lt;h2&gt;Vad skall jag jobba med nästa vecka&lt;/h2&gt;

&lt;p&gt;Kommer att jobba vidare med projektet tillsammans med Micke 1 och förhoppningsvis få det förlängt efter att vi presenterat prototypen.&lt;/p&gt;

&lt;h2&gt;Veckans svarta kamel&lt;/h2&gt;

&lt;p&gt;Min förkylning som vägrar att ge med sig. Förhoppningsvis så går den nog att bota med lite Thailändskt solsken. &lt;strong&gt;(2 veckor kvar nu)&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Vad skall jag göra i helgen/vad händer privat&lt;/h2&gt;

&lt;p&gt;I helgen har jag tänkt kurera mig bäst det går, koda lite och antagligen spela lite Extreme Team Deathmatch i Call of Duty 4: Modern Warfare. (Min gamertag är: &lt;strong&gt;c7 se&lt;/strong&gt;)&lt;/p&gt;

&lt;h2&gt;Övrigt&lt;/h2&gt;

&lt;h3&gt;Asus Eee Keyboard&lt;/h3&gt;

&lt;p&gt;Asus har presenterat sitt omåttligt häftiga &lt;a href=&quot;http://www.osnews.com/story/20736/Trends_Are_Cyclical_the_Asus_Eee_Keyboard&quot;&gt;Eee Keyboard&lt;/a&gt; vilket är en komplett dator med trådlös hdmi och pekskärm. Att det sedan är väldigt likt apples tangentbord skadar ju inte heller. Jag hoppas verkligen att &lt;a href=&quot;http://www.eeebuntu.org&quot;&gt;Eeebuntu&lt;/a&gt; kommer fungera bra.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2009/1/9/asus_eee_keyboard.jpg&quot; alt=&quot;Asus Eee Keyboard&quot; /&gt;
&lt;em&gt;Tycker som många andra att de borde döpa produkten till Keeeyboard.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Webbhotell med stöd för mod_rails&lt;/h3&gt;

&lt;p&gt;Fler och fler webbhotell börjar förstå grejen med Ruby on Rails, några som verkar bra är:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hostingrails.com/&quot;&gt;Hosting Rails&lt;/a&gt; (USA)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dreamhost.com/&quot;&gt;DreamHost&lt;/a&gt; (USA)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bluerail.nl/&quot;&gt;Bluerail&lt;/a&gt; (NL)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Skriva gärna en kommentar om du känner till fler hotell med schysst stöd för mod_rails.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2008-12-01:70</id>
    <published>2008-12-01T11:27:00Z</published>
    <updated>2008-12-01T13:00:44Z</updated>
    <category term="ajax"/>
    <category term="cross domain"/>
    <category term="json"/>
    <category term="proxy"/>
    <link href="http://peter.athega.se/2008/12/1/cross-domain-scripting" rel="alternate" type="text/html"/>
    <title>Cross Domain Scripting</title>
<content type="html">
            &lt;p&gt;Jag har tidigare nämnt att jag kikar på möjligheterna med Cross Domain Scripting och det verkar som om det finns tre olika lösningar på problemet: &lt;em&gt;Proxy&lt;/em&gt;, &lt;em&gt;JSON&lt;/em&gt; och &lt;em&gt;Flash&lt;/em&gt;. Den sistnämnda är dock inte intressant för vårt ändamål.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/813014126/&quot; title=&quot;Smile! by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1426/813014126_3964caff0e.jpg&quot; height=&quot;375&quot; alt=&quot;Smile!&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Proxy&lt;/h2&gt;

&lt;p&gt;Att använda sig av en &lt;a href=&quot;http://ajaxpatterns.org/Cross-Domain_Proxy&quot;&gt;Cross Domain Proxy&lt;/a&gt; verkar vara den vanligaste lösningen och den fungerar så att man skickar sina förfrågningar mot den egna servern som sedan ansluter till destinationsservern för att hämta resultatet.&lt;/p&gt;

&lt;h3&gt;Fördelar&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Driftsäkerhet (möjlighet att hantera fel innan de når klienten)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Nackdelar&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Kräver att man utvecklar en proxy per språk och/eller miljö.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;JSON&lt;/h2&gt;

&lt;p&gt;Med &lt;a href=&quot;http://json.org/&quot;&gt;JSON&lt;/a&gt; och dynamiskt skapade scripttaggar kan man uppnå XmlHttpRequest-liknande funktionalitet utan att begränsas av &lt;a href=&quot;https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript&quot;&gt;same origin policyn&lt;/a&gt;. Men inget gott som inte har något ont med sig, man blir av med möjligheten till att hantera HTTP-status, POST och HTTP headers. Blir det något fel på vägen så kommer scripttaggen helt enkelt inte att exekveras.&lt;/p&gt;

&lt;h3&gt;Fördelar&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Klarar att ansluta till en annan domän utan att man behöver ha några serverside script.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Nackdelar&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ingen HTTP-status, POST eller HTTP headers&lt;/li&gt;
&lt;li&gt;Ingen felhantering&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ska experimentera lite med JSON-lösningen för att se om den räcker för våra behov.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2008-11-28:69</id>
    <published>2008-11-28T14:56:00Z</published>
    <updated>2008-11-28T14:58:11Z</updated>
    <category term="axept"/>
    <category term="julfest"/>
    <category term="rails"/>
    <category term="thanksgiving"/>
    <link href="http://peter.athega.se/2008/11/28/fredagsrapport-vecka-48-2008" rel="alternate" type="text/html"/>
    <title>Fredagsrapport vecka 48, 2008</title>
<content type="html">
            &lt;p&gt;Under veckan som gått har jag kodat lite på &lt;a href=&quot;http://github.com/athega/axept&quot;&gt;Axept&lt;/a&gt;, gjort en liten Railsapp tillsammans med &lt;a href=&quot;http://twitter.com/rubbad&quot;&gt;Stina&lt;/a&gt; och &lt;a href=&quot;http://twitter.com/wobert&quot;&gt;Robert&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Nu sitter jag och undersöker möjligheterna med Cross Domain Scripting, och det verkar som om jag kommer att inrikta mig på någon form av JSONscriptRequest-lösning.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/3047489983/&quot; title=&quot;Athega, Lounge by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3174/3047489983_025724f419.jpg&quot; height=&quot;375&quot; alt=&quot;Athega, Lounge&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Vad skall jag jobba med nästa vecka&lt;/h2&gt;

&lt;p&gt;Lite osäkert just nu men jag och Micke har diskuterat lite spännande saker som kanske drar igång. Annars får vi se vad Fredda har på gång.&lt;/p&gt;

&lt;h2&gt;Vad skall jag göra i helgen/vad händer privat&lt;/h2&gt;

&lt;p&gt;Ikväll ska jag gå på Thanksgiving-middag hos en Amerikansk kompis tillsammans med större delen av Bandhagsgänget. På lördag är det dags för den årliga julfesten hemma hos en av mina kusiner och hans fru. Förutom det ska jag koda lite HTML och spela &lt;a href=&quot;http://l4d.com&quot;&gt;Left 4 Dead&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/warvan/3058629749/&quot; title=&quot;Left 4 Dead 02 by Warvan, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3003/3058629749_ae0b7d8876.jpg&quot; height=&quot;375&quot; alt=&quot;Left 4 Dead 02&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://peter.athega.se/">
    <author>
      <name>peter</name>
    </author>
    <id>tag:peter.athega.se,2008-11-07:67</id>
    <published>2008-11-07T16:32:00Z</published>
    <updated>2008-11-07T16:43:07Z</updated>
    <category term="Fredagsrapporter"/>
    <category term="couchdb"/>
    <category term="ejabberd"/>
    <link href="http://peter.athega.se/2008/11/7/fredagsrapport-vecka-45-2008" rel="alternate" type="text/html"/>
    <title>Fredagsrapport vecka 45, 2008</title>
<content type="html">
            &lt;p&gt;Under veckan som gått har jag gjort lite småsaker, planerat ett nytt projekt, gått på möte med Fredrik och uppdaterat &lt;a href=&quot;http://lunch.athega.se&quot;&gt;Lunch-applikationen&lt;/a&gt; [lösenord krävs], man kan nu ladda upp en bild till varje restaurangs profil.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/peterhellberg/2180639777/&quot; title=&quot;Mac mini and Logitech mouse by Peter Hellberg, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2029/2180639777_d230d0d059.jpg&quot; height=&quot;375&quot; alt=&quot;Mac mini and Logitech mouse&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Vad skall jag jobba med nästa vecka&lt;/h2&gt;

&lt;p&gt;Mockups för ett nytt projekt och förhoppningsvis kunna påbörja utvecklingen så smått. Nu är det äntligen dags för ett fullfjädrat Rails-projekt med allt vad det innebär. Jag tänker mig &lt;a href=&quot;http://github.com/fudgestudios/bort/tree/master&quot;&gt;Bort&lt;/a&gt; (eller någon av de andra varianterna) som grund till applikationen, deployment med &lt;a href=&quot;http://www.capify.org/&quot;&gt;Capistrano&lt;/a&gt; och &lt;a href=&quot;http://www.modrails.com/&quot;&gt;Phusion Passenger&lt;/a&gt; som applikationsserver.&lt;/p&gt;

&lt;p&gt;Det jag nu måste bestämma mig för är vilket CSS ramverk jag ska använda mig av, de tre jag väljer mellan är &lt;a href=&quot;http://960.gs/&quot;&gt;960 Grid System&lt;/a&gt;, &lt;a href=&quot;http://www.blueprintcss.org/&quot;&gt;Blueprint CSS&lt;/a&gt; och &lt;a href=&quot;http://developer.yahoo.com/yui/grids/&quot;&gt;YUI Grids CSS&lt;/a&gt;. Någon som har några preferenser? Då får ni gärna skriva en kommentar.&lt;/p&gt;

&lt;h2&gt;Vad skall jag göra i helgen/vad händer privat&lt;/h2&gt;

&lt;p&gt;I helgen ska jag spela &lt;a href=&quot;http://gearsofwar.xbox.com/default.htm&quot;&gt;Gears of War 2&lt;/a&gt; och antagligen gå på klätterfilmsfestivalen &lt;a href=&quot;http://crimper.se/&quot;&gt;CRIMPER&lt;/a&gt; som Jacob är med och arrangerar. Sen kommer min &lt;a href=&quot;http://www.mrproduktion.se/&quot;&gt;far&lt;/a&gt; på besök.&lt;/p&gt;

&lt;h2&gt;Övrigt&lt;/h2&gt;

&lt;p&gt;Några spännande &lt;a href=&quot;http://www.erlang.org/&quot;&gt;Erlang&lt;/a&gt;-projekt som jag vill kika mer på i framtiden är &lt;a href=&quot;http://incubator.apache.org/couchdb/&quot;&gt;Apache CouchDB&lt;/a&gt; och &lt;a href=&quot;http://www.ejabberd.im/&quot;&gt;ejabberd&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Apache CouchDB&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/2008/11/7/couchdb_sketch.png&quot; alt=&quot;Sketch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Apache CouchDB är en distibuerad, feltolerant och schemafri dokumentorienterad databas åtkomlig genom ett RESTful HTTP/JSON API.&lt;/p&gt;

&lt;h2&gt;ejabberd&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/&quot;&gt;ejabberd&lt;/a&gt; är en &lt;a href=&quot;http://www.jabber.org/&quot;&gt;Jabber&lt;/a&gt;/&lt;a href=&quot;http://www.xmpp.org/&quot;&gt;XMPP&lt;/a&gt; instant messaging server, licensierad under &lt;a href=&quot;http://www.gnu.org/licenses/old-licenses/gpl-2.0.html&quot;&gt;GPLv2&lt;/a&gt;, skriven i &lt;a href=&quot;http://www.erlang.org/&quot;&gt;Erlang/OTP&lt;/a&gt;. Bland annat är den platformsoberoende, klustringsbar och modulär.&lt;/p&gt;
          </content>  </entry>
</feed>
