<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>We Are Team Rubber &#187; Blog</title>
	<atom:link href="http://www.teamrubber.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.teamrubber.com</link>
	<description>Team Rubber talks on the Internet in a blog</description>
	<lastBuildDate>Thu, 04 Mar 2010 10:41:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>My Google AI Tron Bot</title>
		<link>http://www.teamrubber.com/blog/my-google-ai-tron-bot/</link>
		<comments>http://www.teamrubber.com/blog/my-google-ai-tron-bot/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 10:40:41 +0000</pubDate>
		<dc:creator>Tim Wintle</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[We like this]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1524</guid>
		<description><![CDATA[Over the past few weeks I&#8217;ve been spending my free time taking part in the Google AI competition (organised by the university of waterloo).
While I didn&#8217;t end up doing so well (I was disqualified for taking just over the 1 second per move permitted in one of my games), I thought I&#8217;d post how I [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few weeks I&#8217;ve been spending my free time taking part in the<a href="http://csclub.uwaterloo.ca/contest/index.php"> Google AI competition</a> (organised by the university of waterloo).</p>
<p>While I didn&#8217;t end up doing so well (I was disqualified for taking just over the 1 second per move permitted in one of my games), I thought I&#8217;d post how I went about the problem. Many of the other contestants used similar algorithms, but for those who haven&#8217;t been following here&#8217;s the full thinking behind it:</p>
<p><span id="more-1524"></span></p>
<h2>The Game:</h2>
<p>The game was Tron &#8211; two light-cycles, controlled by player&#8217;s AIs, battle it out to be the last one standing (<a href="http://csclub.uwaterloo.ca/contest/visualizer.php?game_id=4087274">example game</a>).</p>
<h2>How I played it:</h2>
<p>My code (largely done in a blur very late at night) ended up having a couple of noticeable bugs &#8211; but here&#8217;s the algorithm I was going for.</p>
<p>Note &#8211; If the two players cannot reach each other, then it suffices to consider your own player alone &#8211; and in this situation you simply have to keep moving for as long as possible &#8211; creating the longest path you can.</p>
<p>That&#8217;s the strongest strategy when players are separated &#8211; I implemented the search for the strategy by emulating every step I could make, as many moves forward as I could go in the second (since you can make up to 3 different moves each step, the first step has 3 possible states, the second 9, the third 21, etc.).</p>
<p>At each possible state, I used a block-counting algorithm (described later) to see how many blocks I could reach from that point &#8211; and using all that information I could decide on which move would leave me with the best possible moves in the future.</p>
<p>Originally I wrote my code in Python, and could reach about 4 steps deep &#8211; but after porting to C (using a mixture of hand-written code and Cython) I found I was getting up to 15 steps deep &#8211; well enough for this algoritm to almost always find the perfect strategy.</p>
<h2>When they opponent is within Reach:</h2>
<p>When the two players are not separated, I (and most others) used a <a href="http://en.wikipedia.org/wiki/Minimax">minimax</a> algorithm. The idea behind it being that you generate all the possible moves of each player, and you assume that at each move you make the best move you can &#8211; and the opponent makes the best move they can. You calculate how good a game state is by calculating some heuristic function of that game state (described later)</p>
<p>The strategies generated by minimax are <a href="http://en.wikipedia.org/wiki/Nash_equilibrium">Nash equilibria</a> in games where the two players take alternate moves &#8211; however in games such as tron, where the two players take simultanious moves, this cannot be stated &#8211; and if you take a single pure minimax solution then it can be shown to be sub-optimal.</p>
<p>This fact caused a lot of discussion in IRC and on the game forums about wether there may be other algorithms that could achieve a better strategy &#8211; although it seems it didn&#8217;t effect the competition much, which was largely dominated by the choice of the heuristic function and the depth at which people could search.</p>
<p>Note that this time both players can move three directions, so after the first move you have 9 positions, the second you have 81, the third 729 etc. Even once I&#8217;d ported to C I could normally average only 4 steps deep.</p>
<p><!--more--></p>
<h2>Block Counting</h2>
<p>When considering a map like the following (&#8221;1&#8243; is your player):</p>
<pre>#######
#     #
####  1
#     #
#######</pre>
<p>The most basic algorithm for counting the number of possible blocks would be to perform a <a href="http://en.wikipedia.org/wiki/Flood_fill">flood fill</a> &#8211; but that clearly gives false results on the map above as the player cannot actually fill both the top and the bottom chambers (a flood fill gives the result as 12 blocks &#8211; the correct result is 8 blocks).</p>
<p>Half way through the competition, one player (dmj) pointed out that this problem is analagous to the &#8220;checkerboard problem&#8221; &#8211; i.e. since we can only move N,S,E,W the board forms a bipartite graph, and we can colour the entire board (here with &#8220;X&#8221; and &#8220;Y&#8221;).</p>
<p>The maximum number of fillable squares is then given an upper bound of MIN(number of X&#8217;s, number of Y&#8217;s)  (we can sometimes lower the bound by 1, but I&#8217;m ignoring that here)</p>
<pre>#######
#XYXYX#
####XY1
#XYXYX#
#######</pre>
<p>Now, as we can only move from an X to a Y (or v.v.) &#8211; we can count the number of &#8220;X&#8221;s (here 7), and the number of &#8220;Y&#8221;s (here 5) &#8211; and we return 10 blocks (closer to the correct 8, but still wrong). This has the advantage of being very efficient, but is still incorrect.</p>
<p>A better technique still is to separate the map into chambers: for example (using &#8220;A&#8221;, &#8220;B&#8221;, etc. for chambers):</p>
<pre>#######
#CCCAA#
####AA1
#BBBAA#
#######</pre>
<p>Next, these chambers need to be mapped into a chamber graph showing which chambers are reachable from each other. e.g.</p>
<pre>A--B
|
+--C</pre>
<p>We can now calculate the space in each chamber (using the block counting algorithm). In the above example, adding these up gives the correct result (8) &#8211; but not in the general case.</p>
<p>This was as far as I had time to get &#8211; but several contestants managed to look at the maximum length of paths within this chamber graph &#8211; giving even better results.</p>
<h2><!--more-->The Final Heuristic</h2>
<p>My final heuristic (for measuring how good a game&#8217;s state was for my player) ended up being something like this:</p>
<ul>
<li>If I have won -&gt; return 100</li>
<li>If I have lost -&gt; return -100</li>
<li>If the players draw -&gt; return 0</li>
<li>If the players are separated at this point -&gt; return (block_counting(my space) &#8211; block_counting(their space))</li>
<li>If the players are not separated at this point -&gt; split the remaining space into space they can reach first, and space I can reach first, then return the difference as above</li>
</ul>
<p>Well, that&#8217;s just about it (give or take a few minor tricks) &#8211; unfortunately all my unit tests were on 5*5 maps &#8211; so in my tiredness I never spotted a few serious bugs in time to fix them (or how much time it took to free memory as I rolled down the stack &#8211; hence my timeout) &#8211; but it was a huge amount of fun taking part.</p>
<p>Thanks go out to the organisers, and congratulations to the winner, Andy Sloane (&#8221;a1k0n_&#8221;) from Yahoo! <strong></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/my-google-ai-tron-bot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crowds keep your sysadmins awake</title>
		<link>http://www.teamrubber.com/blog/sysadmin-versus-crowd/</link>
		<comments>http://www.teamrubber.com/blog/sysadmin-versus-crowd/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 17:47:24 +0000</pubDate>
		<dc:creator>RichardB</dc:creator>
				<category><![CDATA[Shipping News]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1515</guid>
		<description><![CDATA[We host a number of clients&#8217; websites for them on our own servers. It&#8217;s convenient and it saves a lot of deployment headaches, since we know our machines like the backs of our hands.
Yesterday was one of those days.

This chart shows the load average for one of our webservers. It&#8217;s &#8211; roughly &#8211; a measure [...]]]></description>
			<content:encoded><![CDATA[<p>We host a number of clients&#8217; websites for them on our own servers. It&#8217;s convenient and it saves a lot of deployment headaches, since we know our machines like the backs of our hands.</p>
<p>Yesterday was one of <strong>those</strong> days.<br />
<img src="http://farm3.static.flickr.com/2759/4404175674_8b7a00f4d5.jpg" alt="Server load. Flat until yesterday, when a big spike appears. Another spike appears today." title="Crowds keep your sysadmins awake" /></p>
<p>This chart shows the load average for one of our webservers. It&#8217;s &#8211; roughly &#8211; a measure of how busy the machine is at any given time. As you can see, one of the sites being hosted by that server suddenly started getting hammered around lunchtime yesterday. All very exciting.</p>
<p>If that weren&#8217;t excitement enough, the load surfaced a concurrency issue in the site, which had lain dormant until that point. It wasn&#8217;t causing data corruption (thankfully &#8211; professional ethics would require that I commit seppuku right now if it had), but it was slowing the site down and causing exceptions to get returned in full sight of innocent users.</p>
<p>Cue an immediate dive into the sources to find out what was wrong. By seven o&#8217;clock we&#8217;d tracked down the issue and designed and tested a viable fix, which both sped the site up and made it possible to spread the load to a second server. Too late for the initial flood, unfortunately, but in plenty of time to help the second wave of visitors which started up this morning.</p>
<p>The final numbers aren&#8217;t in yet, but it appears that we&#8217;re seeing even more responses today than we did yesterday &#8211; and the servers are holding up far more smoothly, with much better response times. It&#8217;s stressful when the sky falls in on your head all at once. You feel more alive afterwards, though, for having survived it.</p>
<p>Incidentally, the above graph was generated by <a href="http://munin.projects.linpro.no/">Munin</a>, a truly beautiful piece of software. It&#8217;s like a heart monitor for servers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/sysadmin-versus-crowd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crash-Talk: David Gilroy from Conscious Solutions on effective selling</title>
		<link>http://www.teamrubber.com/blog/crash-talk-david-gilroy-from-conscious-solutions-on-effective-selling/</link>
		<comments>http://www.teamrubber.com/blog/crash-talk-david-gilroy-from-conscious-solutions-on-effective-selling/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 18:20:32 +0000</pubDate>
		<dc:creator>AdamC</dc:creator>
				<category><![CDATA[Bristol]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[How We Work]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1513</guid>
		<description><![CDATA[A couple of weeks ago, David Gilroy from Conscious Solutions came to give a select few of us at Team Rubber a crash-talk in selling. I won&#8217;t give away any of the secrets shared with us in this post, but it focused on the different approaches to sales that his company uses. Detailing to us [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, David Gilroy from <a href="http://www.conscious.co.uk/">Conscious Solutions</a> came to give a select few of us at Team Rubber a crash-talk in selling. I won&#8217;t give away any of the secrets shared with us in this post, but it focused on the different approaches to sales that his company uses. Detailing to us how his team is built in such a way to take prospects through the sales pipeline and underpinning attitudes enabling them to achieve their targets. Other, less obvious techniques <em>(all above board of course)</em> were equally intriguing, and those who were fortunate enough to be in the crash-talk certainly came away with heads buzzing. Even two weeks after, new ideas inside Team Rubber are still emerging from the talk and I think it&#8217;s safe to say that it really helped many of us.</p>
<p>Many thanks to David for taking the time to come and chat to us. Crash-talks are definitely of great use &#8211; more of the same please!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/crash-talk-david-gilroy-from-conscious-solutions-on-effective-selling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fibre in Paradise</title>
		<link>http://www.teamrubber.com/blog/fibre-in-paradise/</link>
		<comments>http://www.teamrubber.com/blog/fibre-in-paradise/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 11:13:41 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Bristol]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1511</guid>
		<description><![CDATA[&#8220;Bristol offers what 87% of America’s towns and counties lack: the optic-fibre internet.&#8221;
Right story, wrong Bristol.  
Interested in helping get fibre for Bristol, UK?  Try Connecting Bristol.
]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://www.economist.com/world/united-states/displaystory.cfm?story_id=15549324">Bristol offers what 87% of America’s towns and counties lack: the optic-fibre internet</a>.&#8221;</p>
<p>Right story, wrong Bristol.  </p>
<p>Interested in helping get fibre for Bristol, UK?  Try <a href="http://www.connectingbristol.org/category/connectivity/">Connecting Bristol</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/fibre-in-paradise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delib&#8217;s Dialogue App makes debut at GSA webinar</title>
		<link>http://www.teamrubber.com/blog/dialogue-app-makes-debut-at-gsa-webinar/</link>
		<comments>http://www.teamrubber.com/blog/dialogue-app-makes-debut-at-gsa-webinar/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 17:48:56 +0000</pubDate>
		<dc:creator>benw</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Shipping News]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1504</guid>
		<description><![CDATA[We were excited this week to have the opportunity to introduce Delib&#8217;s Dialogue App to a whole bunch of US government staff at a GSA webinar.  It was slightly strange talking to an audience that you can&#8217;t see or hear but I think it went well.  We set up a demo especially for [...]]]></description>
			<content:encoded><![CDATA[<p>We were excited this week to have the opportunity to introduce <a href="http://www.dialogue-app.com/">Delib&#8217;s Dialogue App</a> to a whole bunch of US government staff at a GSA webinar.  It was slightly strange talking to an audience that you can&#8217;t see or hear but I think it went well.  We set up a demo especially for the occasion – check it out at <a href="http://www.dialogue-app.com/gsa-demo">http://www.dialogue-app.com/gsa-demo</a></p>
<p>You can also take a look through our slideshow if you want:</p>
<div style="width:425px" id="__ss_3273199"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/DelibBen/a-bit-about-the-dialogue-app" title="A bit about the Dialogue App">A bit about the Dialogue App</a></strong><object width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gsapres-100225062348-phpapp02&#038;stripped_title=a-bit-about-the-dialogue-app" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gsapres-100225062348-phpapp02&#038;stripped_title=a-bit-about-the-dialogue-app" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px"></div>
</div>
<p>Hopefully, it got people thinking about how they can use the internet to improve their decision-making/policy processes anyway <img src='http://www.teamrubber.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="Delibs Dialogue App makes debut at GSA webinar" /><br />
&#8211;<br />
The Dialogue App is another cool thing built in the open source web framework <a href="http://plone.org/">Plone</a>.<br />
&#8211;<br />
Prefer to spell it <a href="http://www.dialog-app.com">Dialog App</a>?  We&#8217;ve got you covered <img src='http://www.teamrubber.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="Delibs Dialogue App makes debut at GSA webinar" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/dialogue-app-makes-debut-at-gsa-webinar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nice Space for Rent in Bristol</title>
		<link>http://www.teamrubber.com/blog/nice-space-for-rent-in-bristol/</link>
		<comments>http://www.teamrubber.com/blog/nice-space-for-rent-in-bristol/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 16:53:08 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Bristol]]></category>
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1496</guid>
		<description><![CDATA[There&#8217;s some nice space in our building coming up.  Easy-in, easy-out.
35 King Street, near the Old Vic.
It&#8217;s an awesome building, very close to St. Nick&#8217;s Market, the Apple, the Royal Navy Volunteer and other important amenities.  Plenty of bike parking!
See a picture!
Give me a shout if interested andy@teamrubber.com
View Larger Map
]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s some nice space in our building coming up.  Easy-in, easy-out.</p>
<p>35 King Street, near the Old Vic.</p>
<p>It&#8217;s an awesome building, very close to St. Nick&#8217;s Market, the Apple, the Royal Navy Volunteer and other important amenities.  Plenty of bike parking!</p>
<p><a href="http://www.teamrubber.com/blog/team-rubber-office/">See a picture!</a></p>
<p>Give me a shout if interested <a href="mailto:andy@teamrubber.com">andy@teamrubber.com</a></p>
<p><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;q=35+King+St,+Bristol,+City+of+Bristol+BS1+4,+United+Kingdom&amp;sll=37.0625,-95.677068&amp;sspn=32.748002,74.355469&amp;ie=UTF8&amp;cd=3&amp;geocode=FUQYEQMd9WvY_w&amp;split=0&amp;hq=&amp;hnear=35+King+St,+Bristol,+City+of+Bristol+BS1+4,+United+Kingdom&amp;ll=51.458981,-2.589598&amp;spn=0.003142,0.009077&amp;t=h&amp;z=14&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;q=35+King+St,+Bristol,+City+of+Bristol+BS1+4,+United+Kingdom&amp;sll=37.0625,-95.677068&amp;sspn=32.748002,74.355469&amp;ie=UTF8&amp;cd=3&amp;geocode=FUQYEQMd9WvY_w&amp;split=0&amp;hq=&amp;hnear=35+King+St,+Bristol,+City+of+Bristol+BS1+4,+United+Kingdom&amp;ll=51.458981,-2.589598&amp;spn=0.003142,0.009077&amp;t=h&amp;z=14" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/nice-space-for-rent-in-bristol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Review- Tony Hawk: Ride</title>
		<link>http://www.teamrubber.com/blog/game-review-tony-hawk-ride/</link>
		<comments>http://www.teamrubber.com/blog/game-review-tony-hawk-ride/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 16:34:09 +0000</pubDate>
		<dc:creator>Tim Wintle</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1492</guid>
		<description><![CDATA[Last week was my birthday, so I&#8217;m now the proud owner of the new Tony Hawk game &#8211; &#8220;Ride&#8221;.
I&#8217;d seen some really bad reviews on-line, so I wasn&#8217;t 100% sure what to expect, but having played it quite a bit now I&#8217;ve got to give it great marks &#8211; and for anyone considering buying it [...]]]></description>
			<content:encoded><![CDATA[<p>Last week was my birthday, so I&#8217;m now the proud owner of the new Tony Hawk game &#8211; &#8220;Ride&#8221;.</p>
<p>I&#8217;d seen some <strong>really</strong> bad reviews on-line, so I wasn&#8217;t 100% sure what to expect, but having played it quite a bit now I&#8217;ve got to give it great marks &#8211; and for anyone considering buying it I thought I&#8217;d post my feedback.</p>
<p>Several other reviews have cited difficulty in using the controller (a life-size skateboard), and a steep learning curve; I certainly haven&#8217;t found either any greater than a normal console game.</p>
<p>In fact, I can only assume that the poor reviews have come from gamers who have been playing with game controllers for so long that they can&#8217;t remember what it&#8217;s like to learn to control a game from scratch &#8211; Yeah, at first I had to think really carefully about how to perform moves &#8211; but I have to stop and think whenever another game says &#8220;press triangle&#8221; &#8211; so I can&#8217;t say it has a tougher learning curve than any other game.</p>
<p>Another problem I&#8217;ve read about is a couple of physics bugs &#8211; here I&#8217;ll admit I have had a couple of moments where the camera has got stuck in a weird position somehow (I&#8217;m assuming its&#8217; a problem with the normal on a couple of objects), although it&#8217;s fixed itself within a few seconds. In many hours of playing I&#8217;ve only seen this happen twice though &#8211; and I&#8217;m not sure I&#8217;d want a skateboarding game with absolutely perfect physics &#8211; it would be far too depressing <img src='http://www.teamrubber.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' title="Game Review  Tony Hawk: Ride" /> </p>
<p>All in all, I think the controller works great &#8211; and I feel like I&#8217;ve had a thorough workout after a long skate session. I haven&#8217;t found any time yet&#8230; but I&#8217;m hoping I can get the controller wired up to my laptop &#8211; Tux Racer could get a lot more fun <img src='http://www.teamrubber.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' title="Game Review  Tony Hawk: Ride" /> </p>
<p>With all that said, I&#8217;ll leave you with a video :</p>
<p><a href="http://www.teamrubber.com/blog/game-review-tony-hawk-ride/"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/game-review-tony-hawk-ride/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to make Mac Keynote presentations smaller? Top tip &#8211; Default to JPEG&#8230;</title>
		<link>http://www.teamrubber.com/blog/how-to-make-mac-keynote-presentations-smaller-top-tip-default-to-jpeg/</link>
		<comments>http://www.teamrubber.com/blog/how-to-make-mac-keynote-presentations-smaller-top-tip-default-to-jpeg/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 15:19:25 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Shipping News]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1488</guid>
		<description><![CDATA[Is your Keynote programme being a big fat c*ck pain in the neck?
At Team Rubber most of us use Mac&#8217;s all day every day. Ever use the Shift + Apple + 4 screenshot function? We all do. Ever noticed how sometimes Keynote presentations suddenly inflate in size to make you think &#8220;Have I accidentally embedded [...]]]></description>
			<content:encoded><![CDATA[<p>Is your Keynote programme being a big fat <span style="text-decoration: line-through;">c*ck</span> pain in the neck?</p>
<p>At Team Rubber most of us use Mac&#8217;s all day every day. Ever use the Shift + Apple + 4 screenshot function? We all do. Ever noticed how sometimes Keynote presentations suddenly inflate in size to make you think &#8220;Have I accidentally embedded the Beatles back catalog?&#8221;.</p>
<p>Well this seems to be one of those ridiculous quirks of macs. It seems to be because the screenshots on a mac create PNG files. And when you embed PNG files in Keynote they for some reason become huge. Upwards of 30Mb. Bit rude to e-mail.</p>
<p>So the solution is to make your mac take screenshots as JPEG&#8217;s. And its really easy.</p>
<p>1: Go to Application -&gt; Utilities and open Terminal.</p>
<p>2: Copy and paste this line of code (minus the arrows) in and hit enter.</p>
<p>&gt;&gt; defaults write com.apple.screencapture type jpg</p>
<p>3: Restart your computer.</p>
<p>Voila &#8211; your computer takes screenshots as JPEGs and Keynote stops being such a pain = &lt;10Mb presentations.</p>
<p>That has to be my geekiest blog post ever. I hope its useful. To balance the internet Karma here is a picture of Keith Richards.</p>
<div class="wp-caption aligncenter" style="width: 472px"><a href="http://farm4.static.flickr.com/3089/2309292175_30e8a92f3b.jpg"><img title="Keith" src="http://farm4.static.flickr.com/3089/2309292175_30e8a92f3b.jpg" alt="Keith" width="462" height="500" /></a><p class="wp-caption-text">Keith</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/how-to-make-mac-keynote-presentations-smaller-top-tip-default-to-jpeg/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iFeatures blogs launch</title>
		<link>http://www.teamrubber.com/blog/ifeatures-blogs-launch/</link>
		<comments>http://www.teamrubber.com/blog/ifeatures-blogs-launch/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 10:51:25 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Shipping News]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1483</guid>
		<description><![CDATA[The iFeatures blogs (which we&#8217;re in the finals of) have launched over at the iFeatures website. Check out our team blog here and all the teams in the iFeatures final here.
Our project is called &#8220;The Bristol Job&#8221; and is a family heist movie about an 11 year old girl who discovers her parents are too [...]]]></description>
			<content:encoded><![CDATA[<p>The iFeatures blogs (which we&#8217;re in the finals of) have launched over at the iFeatures website. <a href="http://ifeatures.swscreen.co.uk/home/ifeatures-12/436/437.html">Check out our team blog here</a> and <a href="http://ifeatures.swscreen.co.uk/home/ifeatures-12.html">all the teams in the iFeatures final here</a>.</p>
<p>Our project is called &#8220;<a href="http://ifeatures.swscreen.co.uk/home/ifeatures-12/436.html">The Bristol Job</a>&#8221; and is a family heist movie about an 11 year old girl who discovers her parents are too poor to pay for her last school trip so decides to rob a bank with her two best friends. </p>
<div style="text-align:center;"><img src="http://www.teamrubber.com/wp-content/uploads/2010/02/C08FEEA7-45B7-45AB-802B-E6EC7612688A.jpg" alt="C08FEEA7 45B7 45AB 802B E6EC7612688A iFeatures blogs launch" border="0" width="585" height="390" title="iFeatures blogs launch" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/ifeatures-blogs-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bath openMIC #4 &#8211; Mobile Web, HTML5 and CSS3</title>
		<link>http://www.teamrubber.com/blog/bath-openmic-4-mobile-web-html5-and-css3/</link>
		<comments>http://www.teamrubber.com/blog/bath-openmic-4-mobile-web-html5-and-css3/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 11:21:51 +0000</pubDate>
		<dc:creator>RobinG</dc:creator>
				<category><![CDATA[Bristol]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[We like this]]></category>

		<guid isPermaLink="false">http://www.teamrubber.com/?p=1473</guid>
		<description><![CDATA[
Yesterday, I attended the Open Mobile Innovation Camp at the innovation centre in Bath. The event was hosted by Chris Book and had talks from Giles Turnball (Freelance Journalist), Bruce Lawson and Patrick Lauke (both from Opera). The focus of the day revolved around the current trends in mobile app development and the tensions between [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-1475 aligncenter" title="openMIC" src="http://www.teamrubber.com/wp-content/uploads/2010/02/Picture-8.png" alt="openMIC" width="570" height="112" /></p>
<p>Yesterday, I attended the <a href="http://openmicamp.ning.com/" target="_blank">Open Mobile Innovation Camp</a> at the innovation centre in Bath. The event was hosted by <a href="http://twitter.com/bookmeister" target="_blank">Chris Book</a> and had talks from <a href="http://twitter.com/gilest" target="_blank">Giles Turnball</a> (Freelance Journalist), <a href="http://twitter.com/brucel" target="_blank">Bruce Lawson</a> and <a href="https://twitter.com/patrick_h_lauke" target="_blank">Patrick Lauke</a> (both from Opera). The focus of the day revolved around the current trends in mobile app development and the tensions between Native, Web and Widget apps.</p>
<p>The day kicked off with tech writer Giles Turnball talking about how technology has turned the press industry upside down. He recounted tales from the 90s of infra-red modems, Palm Pilots and GoType keyboards, and being one of the first journalists to actively embrace remote reporting and email. Although initially laughed at, remote journalism is now standard and Giles encouraged us not to neglect advancing technologies, but to learn about them and look to integrate them into our businesses and working lives.</p>
<p>Next up was <a href="http://twitter.com/spugamola" target="_blank">Richard Spence</a> who &#8216;controversially&#8217; spoke about non-iPhone development. He reminded us that only 8% of the mobile market is iPhone whereas 71% is browser based. Richard didn&#8217;t slag of the iPhone, on the contrary, he &#8220;thanked Apple from the bottom of his heart&#8221; and agreed with Stephen Fry&#8217;s eloquent observation:</p>
<blockquote><p>Does anybody seriously believe that Android, Nokia,  Samsung, Palm, BlackBerry and a dozen others would since have produced  the product line they have without the 100,000 volt taser shot up the  jacksie that the iPhone delivered to the entire market?</p></blockquote>
<p>Richard went on to give a brief history of mobile development platforms  and where they are at now. J2ME, Blackberry and Symbian were all covered  and commended for their recent improvements in the light of the &#8216;<a href="http://www.urbandictionary.com/define.php?term=iphone%20effect&amp;defid=4354603" target="_blank">iPhone  effect</a>&#8216;.</p>
<p>The final talk of the morning was from Bruce Lawson from Opera. Bruce was in jovial mood and was quick to evangelise <a href="http://www.opera.com/browser/next/" target="_blank">the latest Opera Beta</a> which claims to be <a href="http://www.theregister.co.uk/2010/02/11/opera/" target="_blank">the current fastest Javascript engine</a>. Bruce championed the <a href="http://www.w3.org/TR/2006/CR-mobile-bp-20060627/" target="_blank">W3C Mobile Web Best Practices</a> and also highlighted some of the UX and accessibility challenges that await. Bruce emphasized the importance of optimization and minimising HTTP requests. He went on to talk about future advancements in HTML5 and CSS3 and the features that the latest Opera already supports. One particular point of interest for me was the use of <a href="http://www.w3.org/TR/css3-mediaqueries/" target="_blank">Media Queries</a> to change CSS layouts dependent on screen size, without JS sniffing. Bruce finally talked about the potential of Widgets, that Opera are involved with in editing the <a href="http://www.w3.org/TR/widgets/" target="_blank">W3C standard</a>.</p>
<p>After a lunch at the local chinese and heated debate on technology, we broke into smaller groups for our barCamp sessions. The philosophy of barCamp is to create open group dialogues about an agreed topic and to work / explore collaboratively. I attended a discussion on HTML / CSS3 with the guys from Opera, and for my second session W3C Standards for Mobile Web. Both sessions were really insightful and was particularly interesting to hear peoples&#8217; comments from the mobile industry on mobile web.</p>
<p>I also picked up a couple of useful tools:</p>
<p><strong>Native Mobile Development Platforms for Web Developers</strong></p>
<p><a href="http://www.appcelerator.com/products/">Appcelerator Titanium</a></p>
<p><a href="http://phonegap.com/">PhoneGap</a></p>
<p><strong>W3C Mobile Validator</strong></p>
<p><a href="http://validator.w3.org/mobile/">http://validator.w3.org/mobile/</a></p>
<p>Perhaps most surprising, coming to the event as a pure Web Developer (with past dabblings in mobile), I certainly didn&#8217;t feel like an outsider or feel like the technology was flying over my head. In fact, I came away with an increasing awareness that, whether I like it or not, Web Development is not simply going to be solely about the Desktop. As hopes of an archaic browser death is on the horizon, another friend is also lurking. In our discussions on Mobile Web Standards, we were reminded that the largest mobile usage is not in China, the US, or Europe, but in developing countries. If the days of IE6 support is numbered, then the days of mobile WAP support may be coming back from the dead!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.teamrubber.com/blog/bath-openmic-4-mobile-web-html5-and-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
