<?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 version="2.0"><channel><title>Dave Verwer's Blog</title><link>http://blog.daveverwer.com</link><description>I write Mac and iPhone software.</description><language>en</language><lastBuildDate>Wed, 14 Apr 2010 23:49:06 PDT</lastBuildDate><generator>http://wordpress.org/?v=2.9.2</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="daveverwer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://blog.daveverwer.com/feed/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fblog.daveverwer.com%2Ffeed%2F" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fblog.daveverwer.com%2Ffeed%2F" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://blog.daveverwer.com/feed/" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fblog.daveverwer.com%2Ffeed%2F" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><item><title>NSManchester Site</title><link>http://blog.daveverwer.com/user-groups/nsmanchester-site/</link><category>User Groups</category><category>cocoa</category><category>cocoa-touch</category><category>iphone</category><category>nsmanchester</category><category>user group</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Wed, 14 Apr 2010 23:47:50 PDT</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=213</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://nsmanchester.com"><img src="http://blog.daveverwer.com/wp-content/uploads/2010/04/Screen-shot-2010-04-15-at-08.23.51-250x217.png" alt="" title="NSManchester Site" width="250" height="217" class="alignright size-medium wp-image-214" /></a>I have been announcing all of the NSManchester meetings here on the blog because the site itself was just a static page with some basic information on it.</p>
<p>That is no longer the case! It is now a static page with some basic information <strong>and a calendar!</strong>. Baby steps.</p>
<p>So, if you were subscribed here for NSManchester announcements then the best place to look now is our <a href="http://twitter.com/nsmanchester">Twitter feed</a> which will always get a post when I post the announcement or the <a href="http://nsmanchester.com">web site itself</a> which will always have the latest event listed.</p>
]]></content:encoded><description>I have been announcing all of the NSManchester meetings here on the blog because the site itself was just a static page with some basic information on it.
That is no longer the case! It is now a static page with some basic information and a calendar!. Baby steps.
So, if you were subscribed here for NSManchester [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/user-groups/nsmanchester-site/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments></item><item><title>NSManchester, March 2010 – WebObjects and Reverse Engineering Cocoa</title><link>http://blog.daveverwer.com/user-groups/nsmanchester-march-2010-webobjects-and-reverse-engineering-cocoa/</link><category>User Groups</category><category>cocoa</category><category>cocoa-touch</category><category>iphone</category><category>nsmanchester</category><category>user group</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Wed, 03 Mar 2010 03:49:24 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=209</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Back to Apple topics this month with a couple of talks on WebObjects and Reverse Engineering Cocoa applications. The meeting is at our new regular venue of Madlab on the 8th March. I am not going to be able to attend this month unfortunately so Ciaran Walsh will be hosting (and talking at) the meeting so we have him to thank for it going ahead as scheduled! Anyway, on to the details:</p>
<blockquote><p><strong><em>Introduction to WebObjects, Alan Zebchuck</em></strong><br />
Alan will be giving an introduction to WebObjects, Apple&#8217;s somewhat forgotten Java-based web frameworks and will be demonstrating why they are still used by large and small organizations around the world.  </p>
<p><strong><em>Reverse Engineering Cocoa Apps, Ciarán Walsh</em></strong><br />
Ciarán will be talking about techniques for inspecting and reverse-engineering Cocoa applications and frameworks, including class-dump, otool and F-Script. He will talk about what can be learned from doing this, and also demo the making of a simple SIMBL hack using the information revealed. </p>
<p>The meeting will be held at 6:30pm (talks start at 7pm) on Monday 8th March at <a href="http://madlab.org.uk">MadLab</a> (<a href="http://bit.ly/madlab">map</a>). <em><strong>If you would like to attend, please <a href="http://nsmanchester-mar2010.eventbrite.com/">register for a free ticket</a>!</strong></em></p></blockquote>
]]></content:encoded><description>Back to Apple topics this month with a couple of talks on WebObjects and Reverse Engineering Cocoa applications. The meeting is at our new regular venue of Madlab on the 8th March. I am not going to be able to attend this month unfortunately so Ciaran Walsh will be hosting (and talking at) the meeting [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/user-groups/nsmanchester-march-2010-webobjects-and-reverse-engineering-cocoa/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments></item><item><title>NSManchester, February 2010 – Nokia and the Ovi Store</title><link>http://blog.daveverwer.com/user-groups/nsmanchester-february-2010-nokia-and-the-ovi-store/</link><category>User Groups</category><category>iphone</category><category>mac</category><category>nsmanchester</category><category>shiny development</category><category>user group</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Fri, 22 Jan 2010 01:01:10 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=205</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>We have a special event this month at NSManchester as Nokia are flying over from Finland to come and talk to us about developing for Nokia platforms along with information on how to make some money on it with the Ovi Store!</p>
<blockquote><p><strong><em>Nokia and the Ovi Store, Nokia Finland.</em></strong><br />
<strong><em><small>8th February 2010</small></em></strong><br />
This is a fantastic opportunity to get to talk personally with Nokia staff who are flying in from Finland especially for this event. Come along and get an insight into doing business on the Nokia platform.</p>
<ul>
<li>Discover the growing business opportunity with the rapidly growing Ovi Store from Nokia. Now the most international of all the apps stores, putting your apps in front of more consumers on more devices in more territories than any other.</li>
<li>Find out how we support you through Forum Nokia at a local and Global level to maximise your opportunity.</li>
<li>Learn about the building blocks to Nokia Ovi Store success such as Qt and WRT.</li>
</ul>
<p>The meeting will be held at 6:30pm (talks start at 7pm) on Monday 8th February at <a href="http://madlab.org.uk">MadLab</a> (<a href="http://bit.ly/madlab">map</a>). <em><strong>If you would like to attend, please <a href="http://nsmanchester-feb2010.eventbrite.com/">register for a free ticket</a>!</strong></em></p></blockquote>
]]></content:encoded><description>We have a special event this month at NSManchester as Nokia are flying over from Finland to come and talk to us about developing for Nokia platforms along with information on how to make some money on it with the Ovi Store!
Nokia and the Ovi Store, Nokia Finland.
8th February 2010
This is a fantastic opportunity to [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/user-groups/nsmanchester-february-2010-nokia-and-the-ovi-store/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments></item><item><title>NSManchester – January 2010 – Take 2</title><link>http://blog.daveverwer.com/user-groups/nsmanchester-january-2010-take-2/</link><category>User Groups</category><category>nsmanchester</category><category>user group</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Wed, 06 Jan 2010 09:09:09 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=191</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>They say to bring the new year in with change and so that is what we are doing by changing the agenda completely for the January NSManchester meeting! :)</p>
<p>Our January meeting is now <strong>not</strong> going to be the Nokia meeting that we originally had planned but weather permitting we are still going ahead with the meeting, just with different content!</p>
<p>So, we will still be meeting at our new location of <a href="http://madlab.org.uk">MadLab</a> (<a href="http://bit.ly/madlab">map</a>) on the 11th January at 6:30pm. What will we be talking about? Let&#8217;s see!</p>
<blockquote><p><strong><em>New Year&#8217;s Resolutions for Freelancers and Cocoa Developers, Matt West</em></strong><br />
Matt will be sharing his thoughts about what he is going to try to do more of, or less of this year! He will cover learning in general, having to make difficult business decisions, and observations on using social media for promotion!</p>
<p><strong><em>Launching Balloons!, Dave Verwer</em></strong><br />
Dave will be talking about the steps leading up to the release of Balloons! and Balloons! Lite. Covering the steps that he took to prepare for the release, the successes and the lessons learned. He will also be talking about the plan to continue the marketing and PR for the app now that it is released.</p>
<p><em><strong>The meeting will be held at 6:30pm (talks start at 7pm) on Monday 11th January at <a href="http://madlab.org.uk">MadLab</a> (<a href="http://bit.ly/madlab">map</a>). If you would like to attend, please <a href="https://spreadsheets.google.com/viewform?formkey=dDRidy1tSU1paUhtNWd4T0pOYm03YlE6MA">sign up</a>!</strong></em></p></blockquote>
<p>If you had previously <a href="https://spreadsheets.google.com/viewform?formkey=dDRidy1tSU1paUhtNWd4T0pOYm03YlE6MA">signed up</a> for this meeting, you do not need to sign up again. If you no longer wish to attend, <a href="mailto:dave.verwer@shinydevelopment.com">drop me a line</a> and I will remove you from the list. The Nokia meeting is now going to happen on February 8th but will be announced separately with a much more detailed description!</p>
]]></content:encoded><description>They say to bring the new year in with change and so that is what we are doing by changing the agenda completely for the January NSManchester meeting! :)
Our January meeting is now not going to be the Nokia meeting that we originally had planned but weather permitting we are still going ahead with the [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/user-groups/nsmanchester-january-2010-take-2/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments></item><item><title>Best Albums of the 00’s</title><link>http://blog.daveverwer.com/personal/best-albums-of-the-00s/</link><category>Personal</category><category>music</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Mon, 04 Jan 2010 14:29:18 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=183</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>So I read <a href="http://mibly.com/2010/01/04/my-top-10-albums-2000-2009/">Andy&#8217;s list of his albums of 2000 &#8211; 2009</a> and while it is a great list I basically thought that I could do better! It was also an excuse to spend an evening listening to awesome music and making a <a href="http://open.spotify.com/user/dv/playlist/3SqGi1tjnuvEzU3Wq8UzI5">Spotify playlist</a>.</p>
<p>So, my top 10 albums of 2000 &#8211; 2009:</p>
<ul>
<li>Antony &amp; The Johnsons - <a href="http://open.spotify.com/album/0hiJeb1ycFFXyW12j61sfB">I Am a Bird Now</a>.</li>
<li>Arcade Fire &#8211; Funeral (not on Spotify).</li>
<li>Arctic Monkeys - <a href="http://open.spotify.com/album/6FtFDkoN0Ih0pry7apNPby">Whatever People Say I Am, That&#8217;s What I&#8217;m Not</a>.</li>
<li>Daft Punk - <a href="http://open.spotify.com/album/2noRn2Aes5aoNVsU6iWThc">Discovery</a>.</li>
<li>Dan Le Sac &amp; Scroobius Pip - <a href="http://open.spotify.com/album/0JtSGYCRw11Ls9N2iV2dFF">Angles</a>.</li>
<li>Kings of Leon &#8211; <a href="http://open.spotify.com/album/43DNPjzCFuRfQRJcoCg9Ec">Youth and Young Manhood</a>.</li>
<li>Maximo Park - <a href="http://open.spotify.com/album/6mDHmXgvy79alh2CwEmMxJ">Our Earthly Pleasures</a>.</li>
<li>Regina Spektor - <a href="http://open.spotify.com/album/42HDFVV3reQnsgDtVTrrkT">Soviet Kitsch</a>.</li>
<li>St. Thomas - <a href="http://open.spotify.com/album/4DjtMe832hgfLpq6D5ZXOj">Hey Harmony</a>.</li>
<li>The Streets - <a href="http://open.spotify.com/album/2lmbMjip4pKeTLB1a6j6sD">Original Pirate Material</a>.</li>
</ul>
<p>I have seen more than half of these bands live this decade too, but that figure should probably be higher ;)</p>
<p>If you do one, track back to me and I will check it out.</p>
]]></content:encoded><description>So I read Andy&amp;#8217;s list of his albums of 2000 &amp;#8211; 2009 and while it is a great list I basically thought that I could do better! It was also an excuse to spend an evening listening to awesome music and making a Spotify playlist.
So, my top 10 albums of 2000 &amp;#8211; 2009:

Antony &amp;#38; The [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/personal/best-albums-of-the-00s/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">7</slash:comments></item><item><title>How and Why do Balloons Pop?</title><link>http://blog.daveverwer.com/iphone-development/how-and-why-do-balloons-pop/</link><category>iPhone Development</category><category>balloons</category><category>iphone</category><category>popping</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Mon, 14 Dec 2009 09:53:32 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=164</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>One of the biggest problems we have had to deal with since <a href="http://balloonsapp.com">Balloons!</a> went live on the app store is the issues around how and why Balloons pop so I thought I would write up some of the experiences and explain some of the reasoning behind popping balloons!</p>
<h2>First Problem: Misunderstanding</h2>
<p>I <a href="http://blog.daveverwer.com/iphone-development/the-moderation-problem/">talked about moderation</a> before but there has been another, even more serious problem with the process of moderation. People who have never actually had a balloon reported (and therefore have never seen the &#8220;Reported!&#8221; badge in their balloon tracker) sometimes think that when balloons show a &#8220;Popped!&#8221; badge, that they have been popped as a result of someone else reporting them.</p>
<p>Before I go any further I would like to say that <strong>this is absolutely</strong><strong> our fault</strong> and we should have made it clearer why balloons pop. <a href="http://twitter.com/balloonsapp/status/6659108221">We recently did this with the v1.1.1 update</a> of Balloons! However this has been a real problem for our users and has resulted in a significant amount of bad reviews from people assuming we are censoring their balloons no matter how benign the content.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-166" title="BadFeedbackFromAppViz" src="http://blog.daveverwer.com/wp-content/uploads/2009/12/BadFeedbackFromAppViz.png" alt="BadFeedbackFromAppViz" width="532" height="114" /></p>
<p>It is crippling to iPhone developers that <a href="http://www.openradar.appspot.com/6069285">we can not reply to these reviews</a> and have no way to contact the disappointed customer (are you listening, Apple?) but I am really hoping the reviews on this subject will calm down now that we have made it clearer in the app UI.</p>
<h2>Second Problem: Why Pop at All?</h2>
<p>People don&#8217;t particularly like that their balloons pop for any reason and want them to fly around for years gathering hundreds of responses, this would be wonderful but unfortunately the reality of it is that with more and more balloons being launched every day, unless we also pop some every day, the probability of balloons being caught and replied to at all sharply decreases.</p>
<p>To explain that, let&#8217;s say that balloons are being launched at a constant rate of 1,000 balloons per day and let&#8217;s ignore the geographical constraints of where balloons travel for now and say that all balloons are available for catching anywhere on the earth. At the end of day one, you would have a 1 in 1,000 chance of having your balloon caught and replied to by someone else. Day two comes and another 1,000 balloons go up, by the end of day two your chances of having your balloon caught are now 1 in 2,000. As you can see, this would very quickly lead to a disaster where it could take weeks before your balloon is caught. Combine this with the fact that on average a balloon is caught between 5 and 10 times before someone decides to reply and the odds sink even lower.</p>
<p>So, we have to pop balloons if we want the service to survive.</p>
<h2>Third Problem: Which Balloons Should be Popped?</h2>
<p>So once we agreed that it was going to be necessary to pop balloons to keep the game fun, the question came of which balloons to pop. The popping algorithm has changed many times over the last month and has become significantly more sophisticated as we have learned more about how people are using the app.</p>
<p>As a starting point, when the service first launched we only popped balloons that had 7 replies on them but predictably this became unmanageable very quickly as some less interesting balloons never got replied to and so never actually popped and would hang around forever being caught and abandoned by everyone they met. The population of flying balloons got significantly bigger every day and it was clear that a fixed number of tags was a fatally flawed way to pop balloons.</p>
<p>Over the last month we have tried various methods of choosing which balloons to pop but the method that we implemented last week seems to be working very well and so here is a rough guide on how it works. I guess this is as close to a spoiler as you are ever likely to get with Balloons! so if you would rather believe it is all magic then look away now!</p>
<h2>Solution: Work Out how Interesting a Balloon is!</h2>
<p>So the algorithm of which balloons to pop now works based on an automatically calculated &#8220;interestingness&#8221; rating (thanks, flickr!) of each balloon. Interestingness is in no way a science and so don&#8217;t think we are doing anything clever, how interesting your balloon is is based on the following factors:</p>
<ul>
<li><strong>Distance</strong> &#8211; Balloons that cross more continents are more likely to have met a diverse, interesting set of people. If your balloon has travelled further, it is seen to be more interesting.</li>
<li><strong>Photos</strong> &#8211; Everyone loves to look at pictures on balloons. The percentage of tags which include pictures makes a balloon more interesting.</li>
<li><strong>Words</strong> &#8211; Balloons that have one word messages or even one character messages (yes, it happens) are probably less interesting than those that have a fully formed sentence. More words is more interesting (note, not more characters, more words).</li>
<li><strong>Views</strong> &#8211; We count how many times people catch every balloon and then how many times people actually reply. If the ratio of catches to replies is high, people are abandoning your balloon without replying to it more often and so it is probably less interesting.</li>
<li><strong>Time Since Last Reply</strong> &#8211; If your balloon has been in the air for a long time since someone replied to it then the last tag may be something people are finding difficult to reply to and so it loses a few points.</li>
</ul>
<p>Each factor is weighted slightly but I am not going to the specific weightings but we have tweaked them a few times now and they are giving good results right now.</p>
<p>One thing to mention is that this interestingness rating is much less reliable before we have a couple of days worth of data to work with and we also never want to pop a balloon before it has been flying at least a couple of days so any balloon which is less than 2 days old is excluded from ever being popped.</p>
<p>So, how do we actually decide how many balloons to pop every night? We pop a known number of balloons based roughly on the number of balloons launched on the previous day with a modification factor based on whether we want the balloon population to increase or decrease on a day to day basis.</p>
<p>We do not just indiscriminately pop the least interesting balloons though, there is a level of randomness to it so your balloon can still be lucky and get another 24 hours to become more interesting. Generally though, this system means that less interesting balloons get popped first to give the more interesting balloons a chance to fly further.</p>
<p>Another long post! Comments and discussion are very welcome.</p>
]]></content:encoded><description>One of the biggest problems we have had to deal with since Balloons! went live on the app store is the issues around how and why Balloons pop so I thought I would write up some of the experiences and explain some of the reasoning behind popping balloons!
First Problem: Misunderstanding
I talked about moderation before but there [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/iphone-development/how-and-why-do-balloons-pop/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments></item><item><title>Balloons everywhere, but which is your favourite?</title><link>http://blog.daveverwer.com/iphone-development/balloons-everywhere-but-which-is-your-favourite/</link><category>iPhone Development</category><category>balloons</category><category>iphone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Sun, 22 Nov 2009 00:58:59 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=152</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>They say that a picture is worth a thousand words, so I will keep this brief and get to the picture!</p>
<div id="attachment_153" class="wp-caption aligncenter" style="width: 517px"><img class="size-full wp-image-153" title="Balloon Popularity" src="http://blog.daveverwer.com/wp-content/uploads/2009/11/BalloonUsageStatistics.png" alt="Balloon Popularity" width="507" height="249" /><p class="wp-caption-text">Popularity of balloon types across all balloons since launch.</p></div>
<h2>Thoughts on this</h2>
<ul>
<li>There is a predictable skew towards the balloons included with the free version of Balloons!</li>
<li>The star balloons are very popular, not surprising really as they are positioned front and centre when picking a balloon.</li>
<li>Is it surprising that the bright green balloon is more popular than the classic red balloon? I thought people would go for the classic.</li>
<li>The animal balloons don&#8217;t seem to be very popular! Interesting because people really loved them in beta. (The cat being the most popular animal is no shock though, it is my favourite balloon type)</li>
</ul>
<p>I am not going to try and read too much into this but I thought it might be fun to share ;)</p>
]]></content:encoded><description>They say that a picture is worth a thousand words, so I will keep this brief and get to the picture!
Thoughts on this

There is a predictable skew towards the balloons included with the free version of Balloons!
The star balloons are very popular, not surprising really as they are positioned front and centre when picking a [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/iphone-development/balloons-everywhere-but-which-is-your-favourite/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments></item><item><title>NSManchester – December 2009</title><link>http://blog.daveverwer.com/user-groups/nsmanchester-december-2009/</link><category>User Groups</category><category>cocoa</category><category>cocoa-touch</category><category>iphone</category><category>nsmanchester</category><category>user group</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Sun, 22 Nov 2009 00:22:27 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=147</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I am happy to be able to announce the next meeting of NSManchester will be on the 7th December at BBC Manchester!  We are going to keep the same format from the last meeting of having two shorter talks and then a discussion/Q&amp;A/show and tell session afterwards.</p>
<p>So, what do we have planned? Two awesome talks! That&#8217;s what!</p>
<blockquote><p><strong><em>Recent Advances in WebKit, Andy Shearer</em></strong><br />
Andy will be talking about how WebKit has advanced in the past few years.  Notably with mobile, HTML5 and 3D (CSS and WebGL).  I&#8217;ll demo a few of the more exciting features, and explain why such developments could radically change what we think is possible with web technologies.</p>
<p><strong><em>Augmented Reality on the iPhone, Sam Easterby-Smith</em></strong><br />
Sam will tell the story of how he ended up creating an OpenGL based augmented reality solution for the iPhone. The inspiration, the intense weekend of remembering how to do trigonometry, the silly hacks to make it work (and how 3.1 did and didn&#8217;t help). He will be soliciting input on how the toolkit can potentially be taken forward (and possibly open-sourced) as well as how it compares with other offerings. Furthermore this will be a chance to discuss AR technologies, their use and potential impact on mobile applications in general.</p>
<p><em><strong>The meeting will be held at 7pm on Monday 7th December at <a href="http://bit.ly/bbcmanchester">BBC Manchester, Oxford Road</a>. If you would like to attend, plea</strong><strong>se <a href="https://spreadsheets.google.com/viewform?formkey=dFJmQ3dRZjdDajlhbUxLLUR4NGJGeVE6MA">sign up</a>!</strong></em></p></blockquote>
<p>If you would like to attend the meeting, it is important to <a href="https://spreadsheets.google.com/viewform?formkey=dFJmQ3dRZjdDajlhbUxLLUR4NGJGeVE6MA">sign up</a> so that we can let the venue know who is coming. The BBC building is not a public building so if you don&#8217;t sign up you won&#8217;t be able to get in!</p>
]]></content:encoded><description>I am happy to be able to announce the next meeting of NSManchester will be on the 7th December at BBC Manchester!  We are going to keep the same format from the last meeting of having two shorter talks and then a discussion/Q&amp;#38;A/show and tell session afterwards.
So, what do we have planned? Two awesome talks! [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/user-groups/nsmanchester-december-2009/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments></item><item><title>Optimisations to the Balloons! servers</title><link>http://blog.daveverwer.com/iphone-development/optimisations-to-the-balloons-servers/</link><category>iPhone Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Fri, 13 Nov 2009 10:49:32 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=141</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>It didn&#8217;t get bad enough to cause a noticeable slowdown to users but as usage of Balloons! has ramped up this week the servers were gradually slowing down:</p>
<div id="attachment_142" class="wp-caption aligncenter" style="width: 424px"><img class="size-full wp-image-142 " title="Last 7 Days" src="http://blog.daveverwer.com/wp-content/uploads/2009/11/Last-7-Days.png" alt="Balloons! server response times over the last 7 days" width="414" height="164" /><p class="wp-caption-text">Balloons! server response times over the last 7 days</p></div>
<p>The advantage of being at the end of a cellular data connection is that even with response times occasionally going over 1000ms! it never got bad enough to notice while using the application.</p>
<p>Anyway, I deployed some optimisations to the server today and am very happy with the results.</p>
<div id="attachment_143" class="wp-caption aligncenter" style="width: 427px"><img class="size-full wp-image-143 " title="Last 6 Hours" src="http://blog.daveverwer.com/wp-content/uploads/2009/11/Last-6-Hours.png" alt="Balloons! server response over the last 6 hours" width="417" height="165" /><p class="wp-caption-text">Balloons! server response times over the last 6 hours</p></div>
<p>That should keep us going for a while!</p>
]]></content:encoded><description>It didn&amp;#8217;t get bad enough to cause a noticeable slowdown to users but as usage of Balloons! has ramped up this week the servers were gradually slowing down:
The advantage of being at the end of a cellular data connection is that even with response times occasionally going over 1000ms! it never got bad enough to [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/iphone-development/optimisations-to-the-balloons-servers/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments></item><item><title>The Moderation Problem?</title><link>http://blog.daveverwer.com/iphone-development/the-moderation-problem/</link><category>iPhone Development</category><category>balloons</category><category>iphone</category><category>moderation</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Verwer</dc:creator><pubDate>Thu, 12 Nov 2009 08:38:16 PST</pubDate><guid isPermaLink="false">http://blog.daveverwer.com/?p=119</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>During the development of <a href="http://balloonsapp.com">Balloons!</a> I would tell people about the idea and they would occasionally come back with &#8220;But what about abuse? Isn&#8217;t it going to be filled up with porn/spam/etc&#8230; within a few days?&#8221;. We also got the similar concerns when reviews started appearing, in fact the first comment on the <a href="http://www.tuaw.com/2009/11/08/balloons-sending-out-a-mystery-message-on-your-iphone/">TUAW review</a> was:</p>
<blockquote><p>How long until porn ruins it?</p></blockquote>
<p>With the immediate follow up being:</p>
<blockquote><p>Or spam?</p></blockquote>
<p>So, we are now one week in to being live on the app store and with over 11,000 balloons launched I thought I would give an update on what has happened on this subject. The good news is that so far it has not been the huge problem that people predicted. In total, about 1.2% of all balloons have been reported and we ended up popping about 0.5% of all balloons and virtually all of them have been spam rather than inappropriate content.</p>
<h2>Why isn&#8217;t it full of porn?</h2>
<p>I believe that it is at least partly because of the design decision to only allow photos taken with the onboard camera to be attached to a balloon rather than images from the library. This has frustrated some users but I believe it was the right decision to make. Mainly because we wanted the photos to be taken in the here and now while you were launching a balloon, but also because of this issue.</p>
<p>So, no problems then?</p>
<p>I wouldn&#8217;t go that far but it is not an unmanageable problem so far but even so it has certainly been the subject of many conversations here in Shiny HQ this week. Sure enough even before we came out of beta we had our first spam balloon which was kinda depressing with it being from a beta tester. After launch, we continued to get a few spam balloons here and there but nothing really serious.</p>
<h2>The spammers arrive.</h2>
<p><img class="size-large wp-image-120  alignright" title="Reporting a balloon" src="http://blog.daveverwer.com/wp-content/uploads/2009/11/Picture-2-403x750.png" alt="Reporting a balloon in Balloons! for iPhone" width="226" height="420" /></p>
<p>The first problem we had was a couple of users who were just catching every balloon they could find, taking a picture of their spam web site and adding a link. This was our first serious problem and had the potential to easily ruin the service for the other 99.9% of our lovely users. What did we do? We decided that if someone has proven that their only use of the app is going to be for abuse and are repeatedly launching balloons with spam tags then we really have no option but to permanently ban their device from accessing the service. The iPhone is an expensive device and that is the only way to launch balloons at the moment, so banning a device should be very effective. This is absolutely a last resort but we felt it was the right decision to take to make the service sustainable. The bigger problem at the time was that we unfortunately did not have the ability to ban devices at the time so, it was time to get my head down and it was hastily implemented and deployed and the offending users banned.</p>
<p>On the subject of banning, we decided to make the server pretend that a balloon launched or re-launched by a banned user was successfully launched but just to drop the information before it gets written to the database. The alternative was to let the server return an error message to the user which would have only resulted in support queries and we would rather not waste time on people who choose to abuse the service. With all of that said, we have had to ban only three users so far so this kind of abuse is far from widespread.</p>
<p>So, banning was implemented for persistent abusers and moderation is in progress for everyone else. Everything is good, right?</p>
<p><img class="size-large wp-image-128 alignleft" title="Reporting a balloon prompt" src="http://blog.daveverwer.com/wp-content/uploads/2009/11/Picture-3-403x750.png" alt="Reporting a balloon in Balloons! for iPhone" width="226" height="420" /></p>
<h2>One bad apple spoils the bunch?</h2>
<p>Unfortunately there was another small problem with our moderation system. Because we were doing moderation at the level of an entire balloon rather than an individual tag, people could completely ruin an entire balloon with just one inappropriate tag. This causes the original launcher of the balloon to be confused as to why their completely innocent balloon has been reported for seemingly no reason and it was just plain sad when an amazing balloon was ruined by an idiot attaching a spam link as the last tag.</p>
<p>So over the last couple of days, I have implemented a new moderation system on our back end that allows individual tags to be removed as well as entire balloons and so we have a much more granular choice of whether to pop or re-launch a balloon. So, if all goes well with final testing we will have a new moderation system by the end of the day. At this point, we will re-moderate all of the flagged balloons so that we can re-launch those balloons that were ruined by a single bad tag.</p>
<p>So banning is implemented, moderation is now finely grained. That&#8217;s it now, right?</p>
<h2>False positives.</h2>
<p>Not quite! We also have some balloons being reported for seemingly no reason with no spam or inappropriate content to be found. Why? Well sometimes users are not personally happy with the content that they submitted (either location, text or photo) at the time when they launched a balloon and so they report their own balloon, simply to take it out of the sky. This is absolutely reasonable but not something we thought would happen. The problem is that it is incredibly hard for us to tell a balloon that has been accidentally reported from one that has been reported for something like this.</p>
<p>The solution to this one is not quite as simple as the others unfortunately and to really solve it in a satisfactory way we need to give people the ability to write us a little comment when they report a balloon. We are going to try and push out a new version of the client ASAP that asks for a reason when reporting a balloon allowing people to explain the problem with a balloon and solve this one too.</p>
<h2>Summary</h2>
<p>This ended up being a long post so here is the TLDR.</p>
<ul>
<li>The decision to not allow users to attach photos from their library seems to be sound.</li>
<li>Spam is the biggest moderation problem so far and we have received almost no inappropriate content at all.</li>
<li>Farming the moderation out to the users by letting them flag balloons for moderation is working well.</li>
<li>The effort required to moderate the system at the moment is very manageable (a few minutes a day).</li>
<li>Banning users is a last resort, but we do occasionally have to do it.</li>
<li>We should have thought more about how our moderation system would work before we launched.</li>
<li>We are going to be pushing out a maintenance release of the balloons client that asks for a reason for reporting a balloon.</li>
</ul>
]]></content:encoded><description>During the development of Balloons! I would tell people about the idea and they would occasionally come back with &amp;#8220;But what about abuse? Isn&amp;#8217;t it going to be filled up with porn/spam/etc&amp;#8230; within a few days?&amp;#8221;. We also got the similar concerns when reviews started appearing, in fact the first comment on the TUAW review [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.daveverwer.com/iphone-development/the-moderation-problem/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">14</slash:comments></item></channel></rss>
