<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Niklas Saers' blog</title>
	
	<link>http://blog.saers.com</link>
	<description />
	<lastBuildDate>Sat, 28 Apr 2012 15:19:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/saers" /><feedburner:info uri="saers" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Alertview steps</title>
		<link>http://feedproxy.google.com/~r/saers/~3/ttQpWTLgGj0/</link>
		<comments>http://blog.saers.com/archives/2012/04/28/alertview-steps/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 15:19:41 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[Calabash]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1130</guid>
		<description><![CDATA[Today I needed to work with an alertview, so here are two steps for pressing them: Given /^I press alert button (\d+)$/ do &#124;index&#124; touch("view:'UIAlertButton'")[index] end Given /^I press alert button named "([^"]*)"$/ do &#124;text&#124; touch("view:'UIAlertButton' label text:'#{text}'") end Share and Enjoy:]]></description>
			<content:encoded><![CDATA[<p>Today I needed to work with an alertview, so here are two steps for pressing them:</p>
<p><code>Given /^I press alert button (\d+)$/ do |index|<br />
  touch("view:'UIAlertButton'")[index]<br />
end</p>
<p>Given /^I press alert button named "([^"]*)"$/ do |text|<br />
  touch("view:'UIAlertButton' label text:'#{text}'")<br />
end<br />
</code></p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F04%2F28%2Falertview-steps%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F04%2F28%2Falertview-steps%2F&amp;title=Alertview%20steps&amp;notes=Today%20I%20needed%20to%20work%20with%20an%20alertview%2C%20so%20here%20are%20two%20steps%20for%20pressing%20them%3A%0D%0A%0D%0A%0D%0AGiven%20%2F%5EI%20press%20alert%20button%20%28%5Cd%2B%29%24%2F%20do%20%7Cindex%7C%0D%0A%20%20touch%28%22view%3A%27UIAlertButton%27%22%29%5Bindex%5D%0D%0Aend%0D%0A%0D%0AGiven%20%2F%5EI%20press%20alert%20button%20named%20%22%28%5B%5E%22%5D%2A%29%22%24%2F%20do%20%7Ctext%7C%0D%0A%20%20touch%28" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F04%2F28%2Falertview-steps%2F&amp;t=Alertview%20steps" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F04%2F28%2Falertview-steps%2F&amp;title=Alertview%20steps&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=Today%20I%20needed%20to%20work%20with%20an%20alertview%2C%20so%20here%20are%20two%20steps%20for%20pressing%20them%3A%0D%0A%0D%0A%0D%0AGiven%20%2F%5EI%20press%20alert%20button%20%28%5Cd%2B%29%24%2F%20do%20%7Cindex%7C%0D%0A%20%20touch%28%22view%3A%27UIAlertButton%27%22%29%5Bindex%5D%0D%0Aend%0D%0A%0D%0AGiven%20%2F%5EI%20press%20alert%20button%20named%20%22%28%5B%5E%22%5D%2A%29%22%24%2F%20do%20%7Ctext%7C%0D%0A%20%20touch%28" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F04%2F28%2Falertview-steps%2F&amp;title=Alertview%20steps" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F04%2F28%2Falertview-steps%2F&amp;t=Alertview%20steps&amp;s=Today%20I%20needed%20to%20work%20with%20an%20alertview%2C%20so%20here%20are%20two%20steps%20for%20pressing%20them%3A%0D%0A%0D%0A%0D%0AGiven%20%2F%5EI%20press%20alert%20button%20%28%5Cd%2B%29%24%2F%20do%20%7Cindex%7C%0D%0A%20%20touch%28%22view%3A%27UIAlertButton%27%22%29%5Bindex%5D%0D%0Aend%0D%0A%0D%0AGiven%20%2F%5EI%20press%20alert%20button%20named%20%22%28%5B%5E%22%5D%2A%29%22%24%2F%20do%20%7Ctext%7C%0D%0A%20%20touch%28" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Alertview%20steps%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F04%2F28%2Falertview-steps%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/ttQpWTLgGj0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2012/04/28/alertview-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2012/04/28/alertview-steps/</feedburner:origLink></item>
		<item>
		<title>My reusable Calabash steps</title>
		<link>http://feedproxy.google.com/~r/saers/~3/AaF06CtZRtI/</link>
		<comments>http://blog.saers.com/archives/2012/03/24/my-reusable-calabash-steps/#comments</comments>
		<pubDate>Sat, 24 Mar 2012 21:28:35 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[Calabash]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1127</guid>
		<description><![CDATA[As promised, here are my reusable Calabash steps. Now, some of these are probably more inspirational than reusable (or ignorable, if you like ), but this is ALL the steps I use SO FAR apart from the standard steps. Like I said before, there are so many great steps already defined, so check them out. <a href='http://blog.saers.com/archives/2012/03/24/my-reusable-calabash-steps/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>As promised, here are my reusable Calabash steps. Now, some of these are probably more inspirational than reusable (or ignorable, if you like <img src='http://blog.saers.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ), but this is ALL the steps I use SO FAR apart from the standard steps. Like I said before, there are so many great steps already defined, so check them out. Anyway, here they are, all 134 lines:</p>
<p><code>Given /^I press the "([^\"]*)" tableviewcell button$/ do |cell|<br />
  touch("tableViewCell button marked:'" + cell + "'")<br />
end</p>
<p>Given /^I press the "([^"]*)" label$/ do |label|<br />
  touch("view label text:'#{label}'")<br />
end</p>
<p>Then /^I enter "([^\"]*)" in the "([^\"]*)" (?:text|input) field$/ do |text_to_type, field_name|<br />
  set_text("textField placeholder:'#{field_name}'", text_to_type)<br />
  sleep(STEP_PAUSE)<br />
end</p>
<p>Given /^I press the "([^"]*)" segment$/ do |label|<br />
	touch("segmentedControl segment marked:'#{label}'")<br />
end</p>
<p>Given /^I see the text "([^"]*)" to the right of the text "([^"]*)"$/ do |right, left|<br />
  leftRect = query("label {text LIKE '#{left}*'} parent view:'PdfThumbnailView'", :frame)[0]<br />
  screenshot_and_raise "Text \"#{left}\" could not be found" if(leftRect == nil)<br />
  leftX = Integer(leftRect[/{(.*), (.*)}, {(.*), (.*)}/,1].split("{")[1])<br />
  leftY = Integer(leftRect[/{(.*), (.*)}, {(.*), (.*)}/,2])</p>
<p>  rightRect = query("label {text LIKE '#{right}*'} parent view:'PdfThumbnailView'", :frame)[0]<br />
  screenshot_and_raise "Text \"#{right}\" could not be found" if(rightRect == nil)<br />
  rightX = Integer(rightRect[/{(.*), (.*)}, {(.*), (.*)}/,1].split("{")[1])<br />
  rightY = Integer(rightRect[/{(.*), (.*)}, {(.*), (.*)}/,2])</p>
<p>  screenshot_and_raise "The following texts should be on the same horizontal line: \"#{left}\" \"#{right}\"" if(leftY != rightY)<br />
  screenshot_and_raise "The text \"#{right}\" is not to the right of the text \"#{left}\"" if(leftX >= rightX)<br />
end</p>
<p>Given /^I see the text "([^"]*)" beneath the text "([^"]*)"$/ do |bottom, top|<br />
  bottomRect = query("label {text LIKE '#{bottom}*'} parent view:'PdfThumbnailView'", :frame)[0]<br />
  screenshot_and_raise "Text \"#{bottom}\" could not be found" if(bottomRect == nil)<br />
  bottomX = Integer(bottomRect[/{(.*), (.*)}, {(.*), (.*)}/,1].split("{")[1])<br />
  bottomY = Integer(bottomRect[/{(.*), (.*)}, {(.*), (.*)}/,2])</p>
<p>  topRect = query("label {text LIKE '#{top}*'} parent view:'PdfThumbnailView'", :frame)[0]<br />
  screenshot_and_raise "Text \"#{top}\" could not be found" if(topRect == nil)<br />
  topX = Integer(topRect[/{(.*), (.*)}, {(.*), (.*)}/,1].split("{")[1])<br />
  topY = Integer(topRect[/{(.*), (.*)}, {(.*), (.*)}/,2])</p>
<p>  screenshot_and_raise "The following texts should be on the same vertical line: \"#{top}\" \"#{bottom}\"" if(topX != bottomX)<br />
  screenshot_and_raise "The text \"#{bottom}\" is not beneath the text \"#{top}\"" if(topY >= bottomY)<br />
end</p>
<p>Given /^I don't see the "([^"]*)" button$/ do |expected_mark|<br />
  res = query "button", :accessibilityLabel<br />
  index = res.find_index {|s| s == expected_mark}<br />
  screenshot_and_raise "Index should be nil (was: #{index})" if (index != nil)<br />
end</p>
<p>Given /^I scroll to "([^"]*)"$/ do |searchText|<br />
  res = query "TableView index:1 TableViewCell label", :text<br />
  row = res.find_index {|s| s == searchText}<br />
  scroll_to_row :tableView, row<br />
  sleep(STEP_PAUSE)<br />
end</p>
<p>Given /^given I import "([^"]*)", "([^"]*)", "([^"]*)", "([^"]*)"$/ do |datasource, maindir, subdir, file|<br />
  touch("tableViewCell label text:'All files'")<br />
  sleep(STEP_PAUSE)<br />
  touch("tableViewCell label text:'#{datasource}'")<br />
  macro %Q|I wait until I don't see "Loading..."|<br />
  touch("tableViewCell label text:'#{maindir}'")<br />
  macro %Q|I wait until I don't see "Loading..."|<br />
  touch("tableViewCell label text:'#{subdir}'")<br />
  macro %Q|I wait until I don't see "Loading..."|<br />
  touch("tableViewCell label text:'#{file}'")<br />
  sleep(STEP_PAUSE)<br />
  touch("tableViewCell label text:'All files'")<br />
  sleep(STEP_PAUSE)<br />
end</p>
<p>Given /^given I import "([^"]*)", "([^"]*)", "([^"]*)"$/ do |datasource, maindir, file|<br />
  touch("tableViewCell label text:'All files'")<br />
  sleep(STEP_PAUSE)<br />
  touch("tableViewCell label text:'#{datasource}'")<br />
  macro %Q|I wait until I don't see "Loading..."|<br />
  touch("tableViewCell label text:'#{maindir}'")<br />
  macro %Q|I wait until I don't see "Loading..."|<br />
  touch("tableViewCell label text:'#{file}'")<br />
  sleep(STEP_PAUSE)<br />
  touch("tableViewCell label text:'All files'")<br />
  sleep(STEP_PAUSE)<br />
end</p>
<p>Given /^I remove all my documents$/ do<br />
  docs = query("view:'PdfThumbnailView'")<br />
  docs.each do |pdfView|<br />
    touch("button marked:'EditCards'")<br />
  sleep(STEP_PAUSE)<br />
    touch("view:'PdfThumbnailView' index:0 button marked:'card function delete'")<br />
  sleep(STEP_PAUSE)<br />
    touch("button marked:'Delete file'")<br />
  sleep(STEP_PAUSE)<br />
    touch("button marked:'EditCards'")<br />
  sleep(STEP_PAUSE)<br />
  end<br />
end</p>
<p>Given /^I remove all my folders$/ do<br />
  if(query("label marked:'My folders'").count > 0)<br />
      titleRect = query("label marked:'My folders' parent view", :frame)[0]<br />
      titleX = Integer(titleRect[/{(.*), (.*)}, {(.*), (.*)}/,1].split("{")[1])<br />
      titleY = Integer(titleRect[/{(.*), (.*)}, {(.*), (.*)}/,2])</p>
<p>      count = query("tableViewCell").count<br />
      i = 0<br />
      while i < count do<br />
        cellRect = query("view:'FolderTableViewCell' index:#{i} view", :frame)[0]<br />
        cellX = Integer(cellRect[/{(.*), (.*)}, {(.*), (.*)}/,1].split("{")[1])<br />
        cellY = Integer(cellRect[/{(.*), (.*)}, {(.*), (.*)}/,2])<br />
        if(cellX == titleX &#038;&#038; cellY > titleY)<br />
           touch("view:'FolderTableViewCell' index:#{i} view")<br />
           sleep(STEP_PAUSE)<br />
           touch("view:'FolderTableViewCell' index:#{i} button")<br />
           sleep(STEP_PAUSE)<br />
           touch("segmentedControl segment marked:'Delete folder'")<br />
           sleep(STEP_PAUSE)</p>
<p>		   break<br />
        end<br />
        i = i + 1<br />
      end<br />
  end</p>
<p>  macro %Q|I remove all my folders| if(query("label marked:'My folders'").count > 0)<br />
end</p>
<p>Given /^I playback recording "([^"]*)" at label "([^"]*)"$/ do |movie, label|<br />
  playback movie, {:query => "label text:'#{label}'"}<br />
end</code></p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F24%2Fmy-reusable-calabash-steps%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F24%2Fmy-reusable-calabash-steps%2F&amp;title=My%20reusable%20Calabash%20steps&amp;notes=As%20promised%2C%20here%20are%20my%20reusable%20Calabash%20steps.%20Now%2C%20some%20of%20these%20are%20probably%20more%20inspirational%20than%20reusable%20%28or%20ignorable%2C%20if%20you%20like%20%3B-%29%20%29%2C%20but%20this%20is%20ALL%20the%20steps%20I%20use%20SO%20FAR%20apart%20from%20the%20standard%20steps.%20Like%20I%20said%20before%2C%20there%20are%20s" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F24%2Fmy-reusable-calabash-steps%2F&amp;t=My%20reusable%20Calabash%20steps" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F24%2Fmy-reusable-calabash-steps%2F&amp;title=My%20reusable%20Calabash%20steps&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=As%20promised%2C%20here%20are%20my%20reusable%20Calabash%20steps.%20Now%2C%20some%20of%20these%20are%20probably%20more%20inspirational%20than%20reusable%20%28or%20ignorable%2C%20if%20you%20like%20%3B-%29%20%29%2C%20but%20this%20is%20ALL%20the%20steps%20I%20use%20SO%20FAR%20apart%20from%20the%20standard%20steps.%20Like%20I%20said%20before%2C%20there%20are%20s" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F24%2Fmy-reusable-calabash-steps%2F&amp;title=My%20reusable%20Calabash%20steps" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F24%2Fmy-reusable-calabash-steps%2F&amp;t=My%20reusable%20Calabash%20steps&amp;s=As%20promised%2C%20here%20are%20my%20reusable%20Calabash%20steps.%20Now%2C%20some%20of%20these%20are%20probably%20more%20inspirational%20than%20reusable%20%28or%20ignorable%2C%20if%20you%20like%20%3B-%29%20%29%2C%20but%20this%20is%20ALL%20the%20steps%20I%20use%20SO%20FAR%20apart%20from%20the%20standard%20steps.%20Like%20I%20said%20before%2C%20there%20are%20s" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=My%20reusable%20Calabash%20steps%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F24%2Fmy-reusable-calabash-steps%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/AaF06CtZRtI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2012/03/24/my-reusable-calabash-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2012/03/24/my-reusable-calabash-steps/</feedburner:origLink></item>
		<item>
		<title>Automatic UI Testing with Calabash from #nsconf</title>
		<link>http://feedproxy.google.com/~r/saers/~3/P0ymyF936rg/</link>
		<comments>http://blog.saers.com/archives/2012/03/21/automatic-ui-testing-with-calabash-from-nsconf/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 11:08:43 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1122</guid>
		<description><![CDATA[As promised, here&#8217;s the link from automatic UI testing. And here&#8217;s the PDF. Share and Enjoy:]]></description>
			<content:encoded><![CDATA[<p>As promised, <a href="http://blog.saers.com/wp-content/uploads/HelloWorldNSConf2012.tgz" title="HelloWorld.tgz">here&#8217;s the link</a> from automatic UI testing. And <a href="http://blog.saers.com/wp-content/uploads/NSConference_2012_-_UI_Testing.pdf">here&#8217;s the PDF</a>.</p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F21%2Fautomatic-ui-testing-with-calabash-from-nsconf%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F21%2Fautomatic-ui-testing-with-calabash-from-nsconf%2F&amp;title=Automatic%20UI%20Testing%20with%20Calabash%20from%20%23nsconf&amp;notes=As%20promised%2C%20here%27s%20the%20link%20from%20automatic%20UI%20testing.%20And%20here%27s%20the%20PDF." ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F21%2Fautomatic-ui-testing-with-calabash-from-nsconf%2F&amp;t=Automatic%20UI%20Testing%20with%20Calabash%20from%20%23nsconf" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F21%2Fautomatic-ui-testing-with-calabash-from-nsconf%2F&amp;title=Automatic%20UI%20Testing%20with%20Calabash%20from%20%23nsconf&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=As%20promised%2C%20here%27s%20the%20link%20from%20automatic%20UI%20testing.%20And%20here%27s%20the%20PDF." ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F21%2Fautomatic-ui-testing-with-calabash-from-nsconf%2F&amp;title=Automatic%20UI%20Testing%20with%20Calabash%20from%20%23nsconf" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F21%2Fautomatic-ui-testing-with-calabash-from-nsconf%2F&amp;t=Automatic%20UI%20Testing%20with%20Calabash%20from%20%23nsconf&amp;s=As%20promised%2C%20here%27s%20the%20link%20from%20automatic%20UI%20testing.%20And%20here%27s%20the%20PDF." ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Automatic%20UI%20Testing%20with%20Calabash%20from%20%23nsconf%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F21%2Fautomatic-ui-testing-with-calabash-from-nsconf%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/P0ymyF936rg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2012/03/21/automatic-ui-testing-with-calabash-from-nsconf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2012/03/21/automatic-ui-testing-with-calabash-from-nsconf/</feedburner:origLink></item>
		<item>
		<title>March iOS predictions</title>
		<link>http://feedproxy.google.com/~r/saers/~3/OIA6oU9YGKI/</link>
		<comments>http://blog.saers.com/archives/2012/03/04/march-ios-predictions/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 21:27:44 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1115</guid>
		<description><![CDATA[Everyone else is doing it, so I figured I could play &#8220;bingo&#8221; as well. My predictions begin with &#8220;one more thing&#8221; on the iPad event: iOS 6 and AppleTV are tightly linked. Developers will get access to iOS 6 betas within two weeks from the announcement, with another event where they go through all the <a href='http://blog.saers.com/archives/2012/03/04/march-ios-predictions/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Everyone else is doing it, so I figured I could play &#8220;bingo&#8221; as well. <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>My predictions begin with &#8220;one more thing&#8221; on the iPad event: iOS 6 and AppleTV are tightly linked. Developers will get access to iOS 6 betas within two weeks from the announcement, with another event where they go through all the cool stuff. But the AppleTV will be updated with an A5X processor and third party applications installed via the AppStore, and will sport Siri and iCloud integration in a way that makes it easier to use than ever.</p>
<p>The iPad 3 will be announced with an A6 processor, which has enough RAM to power the retina display. The A6 will be more or less identical to the Tegra 3. The iPad will ship with iOS 5.1, and will, together with the iPhone, get iOS 6.1 support this summer, iOS 6.0 will be AppleTV only. The iPad will of course get Siri support.</p>
<p>The main newcomer on the software platform will be Microsoft, shipping a full Office line (excluding MS Access) for iOS, multiplatform for iPhone and iPad, and with a tight AppleTV integration for presentation. The presentation will also focus on Microsoft and Apple having a great relation through iCloud.</p>
<p>iCloud will begin acting like more Dropbox in that it will let you share documents better between iOS apps and Mac apps, bringing iWork and iLife on the mac better integration with their iOS counterparts. This increases need for space, but the iCloud free space will rise. The iLife and iWork updates won&#8217;t be mentioned, but will come as a software update quietly a day or two after the show.</p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F04%2Fmarch-ios-predictions%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F04%2Fmarch-ios-predictions%2F&amp;title=March%20iOS%20predictions&amp;notes=Everyone%20else%20is%20doing%20it%2C%20so%20I%20figured%20I%20could%20play%20%22bingo%22%20as%20well.%20%3A-%29%0D%0A%0D%0AMy%20predictions%20begin%20with%20%22one%20more%20thing%22%20on%20the%20iPad%20event%3A%20iOS%206%20and%20AppleTV%20are%20tightly%20linked.%20Developers%20will%20get%20access%20to%20iOS%206%20betas%20within%20two%20weeks%20from%20the%20annou" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F04%2Fmarch-ios-predictions%2F&amp;t=March%20iOS%20predictions" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F04%2Fmarch-ios-predictions%2F&amp;title=March%20iOS%20predictions&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=Everyone%20else%20is%20doing%20it%2C%20so%20I%20figured%20I%20could%20play%20%22bingo%22%20as%20well.%20%3A-%29%0D%0A%0D%0AMy%20predictions%20begin%20with%20%22one%20more%20thing%22%20on%20the%20iPad%20event%3A%20iOS%206%20and%20AppleTV%20are%20tightly%20linked.%20Developers%20will%20get%20access%20to%20iOS%206%20betas%20within%20two%20weeks%20from%20the%20annou" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F04%2Fmarch-ios-predictions%2F&amp;title=March%20iOS%20predictions" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F04%2Fmarch-ios-predictions%2F&amp;t=March%20iOS%20predictions&amp;s=Everyone%20else%20is%20doing%20it%2C%20so%20I%20figured%20I%20could%20play%20%22bingo%22%20as%20well.%20%3A-%29%0D%0A%0D%0AMy%20predictions%20begin%20with%20%22one%20more%20thing%22%20on%20the%20iPad%20event%3A%20iOS%206%20and%20AppleTV%20are%20tightly%20linked.%20Developers%20will%20get%20access%20to%20iOS%206%20betas%20within%20two%20weeks%20from%20the%20annou" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=March%20iOS%20predictions%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F03%2F04%2Fmarch-ios-predictions%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/OIA6oU9YGKI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2012/03/04/march-ios-predictions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2012/03/04/march-ios-predictions/</feedburner:origLink></item>
		<item>
		<title>Compile Protobuf for iOS</title>
		<link>http://feedproxy.google.com/~r/saers/~3/F10jIc8jmIQ/</link>
		<comments>http://blog.saers.com/archives/2012/02/05/compile-protobuf-for-ios/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 11:01:51 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1109</guid>
		<description><![CDATA[For a project I&#8217;m doing at work, that I hope will eventually be open source, I needed to have protobuf compiled for iOS. A colleague of mine showed me how it had been compiled on iOS 4, using these scripts, but with iOS 5 I ended up with binaries compiled for the arm architecture instead <a href='http://blog.saers.com/archives/2012/02/05/compile-protobuf-for-ios/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>For a project I&#8217;m doing at work, that I hope will eventually be open source, I needed to have protobuf compiled for iOS. A colleague of mine showed me how it had been compiled on iOS 4, <a href="http://groups.google.com/group/protobuf/browse_thread/thread/a3d3b14ba5f88ef2/97c0babd3c64b00e?hl=en&amp;lnk=gst&amp;q=iphone+arch#97c0babd3c64b00e">using these scripts</a>, but with iOS 5 I ended up with binaries compiled for the arm architecture instead of the armv7 architecture.</p>
<p>Be aware that the iOS 5 SDK actually ships with a version of protobuf, but it&#8217;s a bit old, being version 2003001. And it only ships the binary, not the headers.</p>
<p>To compile protobuf, <a href="http://code.google.com/p/protobuf/downloads/list">grab the latest source</a> (which is 2.4.1 at the time of writing this) and run the following script (<a href="https://gist.github.com/gists/1744769/download">download script</a>):</p>
<p><script src="https://gist.github.com/1744769.js"> </script></p>
<p>After running this, you should have a directory called /tmp/protobuf/arm that is compiled for your iPhone or iPad with the armv7 architecture. Copy that into your project and start using protobuf <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F02%2F05%2Fcompile-protobuf-for-ios%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F02%2F05%2Fcompile-protobuf-for-ios%2F&amp;title=Compile%20Protobuf%20for%20iOS&amp;notes=For%20a%20project%20I%27m%20doing%20at%20work%2C%20that%20I%20hope%20will%20eventually%20be%20open%20source%2C%20I%20needed%20to%20have%20protobuf%20compiled%20for%20iOS.%20A%20colleague%20of%20mine%20showed%20me%20how%20it%20had%20been%20compiled%20on%20iOS%204%2C%20using%20these%20scripts%2C%20but%20with%20iOS%205%20I%20ended%20up%20with%20binaries%20com" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F02%2F05%2Fcompile-protobuf-for-ios%2F&amp;t=Compile%20Protobuf%20for%20iOS" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F02%2F05%2Fcompile-protobuf-for-ios%2F&amp;title=Compile%20Protobuf%20for%20iOS&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=For%20a%20project%20I%27m%20doing%20at%20work%2C%20that%20I%20hope%20will%20eventually%20be%20open%20source%2C%20I%20needed%20to%20have%20protobuf%20compiled%20for%20iOS.%20A%20colleague%20of%20mine%20showed%20me%20how%20it%20had%20been%20compiled%20on%20iOS%204%2C%20using%20these%20scripts%2C%20but%20with%20iOS%205%20I%20ended%20up%20with%20binaries%20com" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F02%2F05%2Fcompile-protobuf-for-ios%2F&amp;title=Compile%20Protobuf%20for%20iOS" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F02%2F05%2Fcompile-protobuf-for-ios%2F&amp;t=Compile%20Protobuf%20for%20iOS&amp;s=For%20a%20project%20I%27m%20doing%20at%20work%2C%20that%20I%20hope%20will%20eventually%20be%20open%20source%2C%20I%20needed%20to%20have%20protobuf%20compiled%20for%20iOS.%20A%20colleague%20of%20mine%20showed%20me%20how%20it%20had%20been%20compiled%20on%20iOS%204%2C%20using%20these%20scripts%2C%20but%20with%20iOS%205%20I%20ended%20up%20with%20binaries%20com" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Compile%20Protobuf%20for%20iOS%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2012%2F02%2F05%2Fcompile-protobuf-for-ios%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/F10jIc8jmIQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2012/02/05/compile-protobuf-for-ios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2012/02/05/compile-protobuf-for-ios/</feedburner:origLink></item>
		<item>
		<title>Glædelig jul og godt nytår</title>
		<link>http://feedproxy.google.com/~r/saers/~3/7bAAxxHT8NQ/</link>
		<comments>http://blog.saers.com/archives/2011/12/18/glaedelig-jul-og-godt-nytar/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 21:22:26 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[In Danish]]></category>
		<category><![CDATA[Christmas]]></category>
		<category><![CDATA[Jul]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1103</guid>
		<description><![CDATA[Kære alle Kalenderen viser tydeligt, at julen atter nærmer sig med raske skridt. Vi skriver i dag den 4. søndag i advent og der er nu mindre end en uge til juleaften. Julegaverne er da også indkøbt og juletræet er købt, sat på fod og pyntet, hvorefter Silver har pillet de kugler og julehjerter ned <a href='http://blog.saers.com/archives/2011/12/18/glaedelig-jul-og-godt-nytar/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Kære alle</p>
<p>Kalenderen viser tydeligt, at julen atter nærmer sig med raske skridt. Vi skriver i dag den 4. søndag i advent og der er nu mindre end en uge til juleaften. Julegaverne er da også indkøbt og juletræet er købt, sat på fod og pyntet, hvorefter Silver har pillet de kugler og julehjerter ned fra træet, som han kunne nå. Som et af billederne viser, er vores juletræ således mest pyntet fra toppen og ned til midt på træt. Men det ser nu også meget sjovt ud med en kat, som kommer rendende med et julehjerte i munden eller bruger en julekugle som bold <img src='http://blog.saers.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Silver er også en flittig gæst på klaveret, når vi spiler julesalmer, ligesom han elsker at sidde i sofaen sammen med os og se julekalender på tv. ”Ludvig og julemanden” har faktisk vist sig at være en overraskende god julekalender, og et par enkelte nostalgiske kig på Nissebanden på Grønland er det da også blevet til…</p>
<p>Den første weekend i december stod også i julehyggens tegn, da Niklas og jeg var på en weekendtur til Lübeck, hvor vi selvfølgelig  fik både smagt og købt en del hjem af det berømte Lübecker marcipan. Desuden erfarede vi, at tyskerne er rigtig glade for juledrikke med en del spiritus i, hvilket medførte, at vi måtte vente et par timer ekstra med at køre hjem fra Lübeck om søndagen, da stort set alle de drikkevarer vi fik fat i på julemarkedet om eftermiddagen havde en del alkoholprocenter…</p>
<p>Sidste weekend bød på julefrokost, tangoworkshop, juletræspyntning, familiebesøg og den næsten obligatoriske gåtur til dyreskoven for at fodre dådyrene og kronhjortene med æbler, gulerødder og rugbrød. Desuden gjorde Niklas en god gerning med julehjælp i JCI regi;  det er altid godt at kunne hjælpe de familier, som har det hårdt med lidt julevarer her i december.</p>
<p>I denne weekend har vi for alvor påbegyndt julefejringen, da Christinas mor og far, Hanne og Kjeld, havde inviteret os til ”førjul” i deres hyggelige sommerhus på Sjælland sammen med Christinas storebror Rasmus, svigerinde Anne og niecerne Freja og Emma samt vores tilsammen 2 katte og 1 hund. Dejligt at være samlet igen, og fint at kunne sprede julefejringen over flere dage.</p>
<p>Selve juleaften og 1. juledag tilbringer vi sammen med Hanne og Kjeld i Hjerting sammen med vores to katte, Dumbo og Silver. Den 27. december kører vi om morgenen af sted til Norge for at fortsætte julefejringen med Niklas’ familie og venner, som vi også fejrer nytårsaften med inden vi atter sætter kurs mod Danmark den 2. januar.</p>
<p>Det bliver dejligt med en lang juleferie efter et travlt år, der har budt på mange spændende oplevelser både privat og arbejdsmæssigt. På hjemmefronten med huset og vores ferier til Nice, Sardinien, Korsika og Norge samt vores fritidsinteresser, hvor dans fylder meget.  Arbejdsmæssigt har Niklas skriftet arbejde, og er nu i Århus et par gange om ugen, mens han i det nye år skal starte en Esbjerg afdeling op for IT-firmaet Trifork. For Christinas vedkommende har det i efteråret og i december stået på omorganisering i kulturafdelingen, og efter adskillige timers oprydning og flytning rundt på næsten alle personers arbejdspladser, bliver det spændende at se hvad det nye år bringer af nye samarbejdsrelationer og opgaver.</p>
<p>Ligeledes bliver det spændende om der kommer sne igen i år til jul eller om regnen og blæsten fortsætter? Om ikke andet kan vi vel håbe på en hvid nytårsfejren i Norge med gode skimuligheder <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Uanset om vi får tilført julestemning via sne eller ej, ønsker vi jer alle sammen en rigtig glædelig jul samt et godt og lykkebringende nytår.</p>
<p>På gensyn i det nye år!</p>
<p>Kærlig hilsen</p>
<p>Niklas og Christina</p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F12%2F18%2Fglaedelig-jul-og-godt-nytar%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F12%2F18%2Fglaedelig-jul-og-godt-nytar%2F&amp;title=Gl%C3%A6delig%20jul%20og%20godt%20nyt%C3%A5r&amp;notes=K%C3%A6re%20alle%0D%0A%0D%0AKalenderen%20viser%20tydeligt%2C%20at%20julen%20atter%20n%C3%A6rmer%20sig%20med%20raske%20skridt.%20Vi%20skriver%20i%20dag%20den%204.%20s%C3%B8ndag%20i%20advent%20og%20der%20er%20nu%20mindre%20end%20en%20uge%20til%20juleaften.%20Julegaverne%20er%20da%20ogs%C3%A5%20indk%C3%B8bt%20og%20juletr%C3%A6et%20er%20k%C3%B8bt%2C%20sat%20p%C3%A5%20fod%20og%20pynte" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F12%2F18%2Fglaedelig-jul-og-godt-nytar%2F&amp;t=Gl%C3%A6delig%20jul%20og%20godt%20nyt%C3%A5r" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F12%2F18%2Fglaedelig-jul-og-godt-nytar%2F&amp;title=Gl%C3%A6delig%20jul%20og%20godt%20nyt%C3%A5r&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=K%C3%A6re%20alle%0D%0A%0D%0AKalenderen%20viser%20tydeligt%2C%20at%20julen%20atter%20n%C3%A6rmer%20sig%20med%20raske%20skridt.%20Vi%20skriver%20i%20dag%20den%204.%20s%C3%B8ndag%20i%20advent%20og%20der%20er%20nu%20mindre%20end%20en%20uge%20til%20juleaften.%20Julegaverne%20er%20da%20ogs%C3%A5%20indk%C3%B8bt%20og%20juletr%C3%A6et%20er%20k%C3%B8bt%2C%20sat%20p%C3%A5%20fod%20og%20pynte" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F12%2F18%2Fglaedelig-jul-og-godt-nytar%2F&amp;title=Gl%C3%A6delig%20jul%20og%20godt%20nyt%C3%A5r" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F12%2F18%2Fglaedelig-jul-og-godt-nytar%2F&amp;t=Gl%C3%A6delig%20jul%20og%20godt%20nyt%C3%A5r&amp;s=K%C3%A6re%20alle%0D%0A%0D%0AKalenderen%20viser%20tydeligt%2C%20at%20julen%20atter%20n%C3%A6rmer%20sig%20med%20raske%20skridt.%20Vi%20skriver%20i%20dag%20den%204.%20s%C3%B8ndag%20i%20advent%20og%20der%20er%20nu%20mindre%20end%20en%20uge%20til%20juleaften.%20Julegaverne%20er%20da%20ogs%C3%A5%20indk%C3%B8bt%20og%20juletr%C3%A6et%20er%20k%C3%B8bt%2C%20sat%20p%C3%A5%20fod%20og%20pynte" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Gl%C3%A6delig%20jul%20og%20godt%20nyt%C3%A5r%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F12%2F18%2Fglaedelig-jul-og-godt-nytar%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/7bAAxxHT8NQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2011/12/18/glaedelig-jul-og-godt-nytar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2011/12/18/glaedelig-jul-og-godt-nytar/</feedburner:origLink></item>
		<item>
		<title>Application-switcher not responding</title>
		<link>http://feedproxy.google.com/~r/saers/~3/sqILFWQaePY/</link>
		<comments>http://blog.saers.com/archives/2011/11/22/application-switcher-not-responding/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 16:56:26 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1098</guid>
		<description><![CDATA[From time to time I get the same problem: the application switcher (command-tab) stops responding. It usually takes closing a lot of programs or restarting to get it working again. Today, I seem to have found the gangster: Screen Sharing. When I closed it, application switching started working again. It must have taken over the <a href='http://blog.saers.com/archives/2011/11/22/application-switcher-not-responding/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>From time to time I get the same problem: the application switcher (command-tab) stops responding. It usually takes closing a lot of programs or restarting to get it working again. Today, I seem to have found the gangster: Screen Sharing. When I closed it, application switching started working again. It must have taken over the control over a couple of keys too many.</p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F22%2Fapplication-switcher-not-responding%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F22%2Fapplication-switcher-not-responding%2F&amp;title=Application-switcher%20not%20responding&amp;notes=From%20time%20to%20time%20I%20get%20the%20same%20problem%3A%20the%20application%20switcher%20%28command-tab%29%20stops%20responding.%20It%20usually%20takes%20closing%20a%20lot%20of%20programs%20or%20restarting%20to%20get%20it%20working%20again.%20Today%2C%20I%20seem%20to%20have%20found%20the%20gangster%3A%20Screen%20Sharing.%20When%20I%20clos" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F22%2Fapplication-switcher-not-responding%2F&amp;t=Application-switcher%20not%20responding" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F22%2Fapplication-switcher-not-responding%2F&amp;title=Application-switcher%20not%20responding&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=From%20time%20to%20time%20I%20get%20the%20same%20problem%3A%20the%20application%20switcher%20%28command-tab%29%20stops%20responding.%20It%20usually%20takes%20closing%20a%20lot%20of%20programs%20or%20restarting%20to%20get%20it%20working%20again.%20Today%2C%20I%20seem%20to%20have%20found%20the%20gangster%3A%20Screen%20Sharing.%20When%20I%20clos" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F22%2Fapplication-switcher-not-responding%2F&amp;title=Application-switcher%20not%20responding" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F22%2Fapplication-switcher-not-responding%2F&amp;t=Application-switcher%20not%20responding&amp;s=From%20time%20to%20time%20I%20get%20the%20same%20problem%3A%20the%20application%20switcher%20%28command-tab%29%20stops%20responding.%20It%20usually%20takes%20closing%20a%20lot%20of%20programs%20or%20restarting%20to%20get%20it%20working%20again.%20Today%2C%20I%20seem%20to%20have%20found%20the%20gangster%3A%20Screen%20Sharing.%20When%20I%20clos" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Application-switcher%20not%20responding%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F22%2Fapplication-switcher-not-responding%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/sqILFWQaePY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2011/11/22/application-switcher-not-responding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2011/11/22/application-switcher-not-responding/</feedburner:origLink></item>
		<item>
		<title>Ubiquity.framework</title>
		<link>http://feedproxy.google.com/~r/saers/~3/fWkMAEd0KwM/</link>
		<comments>http://blog.saers.com/archives/2011/11/18/ubiquity-framework/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 19:00:23 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1096</guid>
		<description><![CDATA[ubd wanted to connect to windows.net, so I looked it up, and it belongs to Ubiquity.framework, that is a part of the iCloud integration. Hmm&#8230; The man-page says this: &#8220;ubd is the ubiquity server process. It is primarily used for &#8220;Mobile Documents. There are no configuration options to ubd, and users should not run ubd <a href='http://blog.saers.com/archives/2011/11/18/ubiquity-framework/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>ubd wanted to connect to windows.net, so I looked it up, and it belongs to Ubiquity.framework, that is a part of the iCloud integration. Hmm&#8230;</p>
<p>The man-page says this: &#8220;ubd is the ubiquity server process. It is primarily used for &#8220;Mobile Documents. There are no configuration options to ubd, and users should not run ubd manually.&#8221;</p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F18%2Fubiquity-framework%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F18%2Fubiquity-framework%2F&amp;title=Ubiquity.framework&amp;notes=ubd%20wanted%20to%20connect%20to%20windows.net%2C%20so%20I%20looked%20it%20up%2C%20and%20it%20belongs%20to%20Ubiquity.framework%2C%20that%20is%20a%20part%20of%20the%20iCloud%20integration.%20Hmm...%0D%0A%0D%0AThe%20man-page%20says%20this%3A%20%22ubd%20is%20the%20ubiquity%20server%20process.%20It%20is%20primarily%20used%20for%20%22Mobile%20Documents" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F18%2Fubiquity-framework%2F&amp;t=Ubiquity.framework" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F18%2Fubiquity-framework%2F&amp;title=Ubiquity.framework&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=ubd%20wanted%20to%20connect%20to%20windows.net%2C%20so%20I%20looked%20it%20up%2C%20and%20it%20belongs%20to%20Ubiquity.framework%2C%20that%20is%20a%20part%20of%20the%20iCloud%20integration.%20Hmm...%0D%0A%0D%0AThe%20man-page%20says%20this%3A%20%22ubd%20is%20the%20ubiquity%20server%20process.%20It%20is%20primarily%20used%20for%20%22Mobile%20Documents" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F18%2Fubiquity-framework%2F&amp;title=Ubiquity.framework" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F18%2Fubiquity-framework%2F&amp;t=Ubiquity.framework&amp;s=ubd%20wanted%20to%20connect%20to%20windows.net%2C%20so%20I%20looked%20it%20up%2C%20and%20it%20belongs%20to%20Ubiquity.framework%2C%20that%20is%20a%20part%20of%20the%20iCloud%20integration.%20Hmm...%0D%0A%0D%0AThe%20man-page%20says%20this%3A%20%22ubd%20is%20the%20ubiquity%20server%20process.%20It%20is%20primarily%20used%20for%20%22Mobile%20Documents" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Ubiquity.framework%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F18%2Fubiquity-framework%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/fWkMAEd0KwM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2011/11/18/ubiquity-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2011/11/18/ubiquity-framework/</feedburner:origLink></item>
		<item>
		<title>Silverkat</title>
		<link>http://feedproxy.google.com/~r/saers/~3/IMBfITXcT6A/</link>
		<comments>http://blog.saers.com/archives/2011/11/05/silverkat/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 21:35:35 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1092</guid>
		<description><![CDATA[Quick plug: my wife, Christina, just started her first blog, about our cat: Silver. Visit Silverkat and follow her blogging journey and our cat Share and Enjoy:]]></description>
			<content:encoded><![CDATA[<p>Quick plug: my wife, Christina, just started her first blog, about our cat: Silver. Visit <a href="http://silverkat.squarespace.com/">Silverkat</a> and follow her blogging journey and our cat <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F05%2Fsilverkat%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F05%2Fsilverkat%2F&amp;title=Silverkat&amp;notes=Quick%20plug%3A%20my%20wife%2C%20Christina%2C%20just%20started%20her%20first%20blog%2C%20about%20our%20cat%3A%20Silver.%20Visit%20Silverkat%20and%20follow%20her%20blogging%20journey%20and%20our%20cat%20%3A-%29" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F05%2Fsilverkat%2F&amp;t=Silverkat" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F05%2Fsilverkat%2F&amp;title=Silverkat&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=Quick%20plug%3A%20my%20wife%2C%20Christina%2C%20just%20started%20her%20first%20blog%2C%20about%20our%20cat%3A%20Silver.%20Visit%20Silverkat%20and%20follow%20her%20blogging%20journey%20and%20our%20cat%20%3A-%29" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F05%2Fsilverkat%2F&amp;title=Silverkat" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F05%2Fsilverkat%2F&amp;t=Silverkat&amp;s=Quick%20plug%3A%20my%20wife%2C%20Christina%2C%20just%20started%20her%20first%20blog%2C%20about%20our%20cat%3A%20Silver.%20Visit%20Silverkat%20and%20follow%20her%20blogging%20journey%20and%20our%20cat%20%3A-%29" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Silverkat%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F05%2Fsilverkat%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/IMBfITXcT6A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2011/11/05/silverkat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2011/11/05/silverkat/</feedburner:origLink></item>
		<item>
		<title>My build setup</title>
		<link>http://feedproxy.google.com/~r/saers/~3/VaikjWKKQTU/</link>
		<comments>http://blog.saers.com/archives/2011/11/01/my-build-setup/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 22:04:01 +0000</pubDate>
		<dc:creator>niklas</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.saers.com/?p=1093</guid>
		<description><![CDATA[Tomorrow I begin work at Trifork! There I&#8217;ll be doing iOS development, so before I begin I thought I&#8217;d like to share a bit about how I do my development now. First of all, I use GitHub and Beanstalk for source control, depending on what client the work is for (for my own projects, I <a href='http://blog.saers.com/archives/2011/11/01/my-build-setup/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Tomorrow I begin work at <a href="http://www.trifork.com">Trifork</a>! <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  There I&#8217;ll be doing iOS development, so before I begin I thought I&#8217;d like to share a bit about how I do my development now.</p>
<p>First of all, I use GitHub and Beanstalk for source control, depending on what client the work is for (for my own projects, I use GitHub). Mercurial is nice, but git and svn just work with XCode, so I stick to that.</p>
<p>Since I have source control, I can have continuous delivery. For that I use Jenkins. Jenkins is not good enough. It&#8217;s not great. It&#8217;s not beautiful. It&#8217;s not intelligent, easy, friendly, intuitive, or all those other nice words. But it works! I use the Clang Scan-Build, Github OAuth, Github, Pre SCM BuildStep, Redmine, SICCI, SSH Slaves and Xcode integration plugins, even though I&#8217;d get most things done by just adding a shell script. That gives me a build per commit, which is nice and reliable and brings the pain forward. Jay pain! <img src='http://blog.saers.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Of course, having this infrastructure in place begs for tests. Now I think tests for iPhone applications suck. Bigtime! The reason is that I hate deployment cycles. It takes time, and that time I&#8217;d rather use writing code, thinking about the application, solving real problems for my customer, preferably before he knows about them. If not that, I&#8217;d rather drink coffee, do chores in my home, or clean my pipes, rather than waiting for build cycles. It&#8217;s just an enormous waste of time. And tests for iOS drain time, as there&#8217;s no such thing as a unit test for iOS. Everything is an integration test or a user acceptability test. You always fire up the entire application before running any test.</p>
<p>So now I have that rant done, it&#8217;s great that I can leave my tests to Jenkins. It will perform them, and the output will get converted to what looks like a JUnit test so that it can get picked up by Jenkins&#8217; tooling and be presented nicely. Jay! <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Then we get to deployment. My clients communicate with me. A lot! This should be different like so, I changed my mind about this, I&#8217;ve found a bug if you do like this and that. It&#8217;s great! I love my users for this! It creates such a momentum! So how awful wouldn&#8217;t it be if I said &#8220;I&#8217;ll collect everything and give you a beta in three weeks&#8221;? Continuous delivery isn&#8217;t just delivery to me, it is to the users as well. For this I use <a href="http://www.hockeyapp.net/">HockeyApp</a>. They&#8217;re a great bunch and really responsive, and while they just don&#8217;t support iOS 5 well enough yet, there is so much good there. My app gets auto-deployed up there and my client sees the new release, hits install and boom! Now he&#8217;s running the latest build! <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Crash reports get sorted by build numbers, and the guys at HockeyApp have told me they&#8217;re working at making the crash reports even more awesome! Jay! <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So how do I follow up on these things? I have to admit, I&#8217;m a cheapskate, so I use Redmine. I would use Basecamp, and I hope to be using it, it&#8217;s so awesome, but so far it&#8217;s not been worth the extra cost. The day it is, I&#8217;ll run and buy it quickly. My problem with Basecamp and Redmine? I just haven&#8217;t seen how I&#8217;d integrate it with my scrum sprints. Yet. I&#8217;m sure they both can, and I hope to learn from people that are wiser than me in this regard.</p>
<p>Finally, after a deployment to the appstore, I use Flurry to keep track of where my users are at, both in version of the app (why don&#8217;t they upgrade! This new version is awesome! I need to tell them more about it!) and the OS (really? They&#8217;re still on iOS 4?? iOS 5 has been out a month now! Oh well, not everyone is like me). Also, I&#8217;ve rolled my own crash reporting that, should I have failed horribly, the users can get in touch with me or the client, with a detailed log of what went wrong.</p>
<p>So, that&#8217;s my work setup this far, and I&#8217;m quite happy with it. It still needs better scrum integration. It&#8217;s still too many pieces that don&#8217;t talk sensibly together. But it&#8217;s getting better knit together, and I&#8217;m looking forward to seeing how Trifork does it, how I can improve based on what they have to teach, and how I can improve the way they&#8217;re doing it. It&#8217;s going to be great! Those guys are brilliant, and I love working with brilliant people.</p>
<p>Finally, if you&#8217;re in the Esbjerg area, working with iOS, get in touch with me. If you&#8217;d love to start working with iOS, get in touch with me! There&#8217;s an NSCoder Night coming up soon, biweekly I hope. <img src='http://blog.saers.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
Share and Enjoy:<a rel="nofollow" target="_blank"  href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F01%2Fmy-build-setup%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow" target="_blank"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F01%2Fmy-build-setup%2F&amp;title=My%20build%20setup&amp;notes=Tomorrow%20I%20begin%20work%20at%20Trifork%21%20%3A-%29%20There%20I%27ll%20be%20doing%20iOS%20development%2C%20so%20before%20I%20begin%20I%20thought%20I%27d%20like%20to%20share%20a%20bit%20about%20how%20I%20do%20my%20development%20now.%0AFirst%20of%20all%2C%20I%20use%20GitHub%20and%20Beanstalk%20for%20source%20control%2C%20depending%20on%20what%20client%20th" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F01%2Fmy-build-setup%2F&amp;t=My%20build%20setup" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow" target="_blank"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F01%2Fmy-build-setup%2F&amp;title=My%20build%20setup&amp;source=Niklas+Saers%26%23039%3B+blog+&amp;summary=Tomorrow%20I%20begin%20work%20at%20Trifork%21%20%3A-%29%20There%20I%27ll%20be%20doing%20iOS%20development%2C%20so%20before%20I%20begin%20I%20thought%20I%27d%20like%20to%20share%20a%20bit%20about%20how%20I%20do%20my%20development%20now.%0AFirst%20of%20all%2C%20I%20use%20GitHub%20and%20Beanstalk%20for%20source%20control%2C%20depending%20on%20what%20client%20th" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F01%2Fmy-build-setup%2F&amp;title=My%20build%20setup" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow" target="_blank"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F01%2Fmy-build-setup%2F&amp;t=My%20build%20setup&amp;s=Tomorrow%20I%20begin%20work%20at%20Trifork%21%20%3A-%29%20There%20I%27ll%20be%20doing%20iOS%20development%2C%20so%20before%20I%20begin%20I%20thought%20I%27d%20like%20to%20share%20a%20bit%20about%20how%20I%20do%20my%20development%20now.%0AFirst%20of%20all%2C%20I%20use%20GitHub%20and%20Beanstalk%20for%20source%20control%2C%20depending%20on%20what%20client%20th" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/tumblr.png" class="sociable-img sociable-hovers" title="Tumblr" alt="Tumblr" /></a><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=My%20build%20setup%20-%20http%3A%2F%2Fblog.saers.com%2Farchives%2F2011%2F11%2F01%2Fmy-build-setup%2F" ><img src="http://blog.saers.com/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><br/><br/><img src="http://feeds.feedburner.com/~r/saers/~4/VaikjWKKQTU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.saers.com/archives/2011/11/01/my-build-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.saers.com/archives/2011/11/01/my-build-setup/</feedburner:origLink></item>
	</channel>
</rss>

